windows下modelsim调用DPI仿真C

本文详细记录了解决Windows 10环境下ModelSim 10.4使用SystemVerilog DPI接口调用C函数时遇到的常见问题,包括编译错误、链接失败、环境配置等,并提供了针对性的解决方案。
摘要由CSDN通过智能技术生成


操作系统是win10,modelsim是10.4版本,tb用system verilog写,调用c函数用DPI接口,非常方便。
首先可以直接运行Modelsim安装目录下的例子 ./modelsim10_4/examples/c_windows/dpi, 直接运行里面的vsim-vs.do文件,如果可以正常运行并输出结果,说明没有问题。
如果报错,我说一下我遇到的问题

问题1:报错:# couldn’t execute “D:\modeltech64_10.4\win64\sccom”: no such file or directory

解决方案:添加C和C++编译器
第一步:下载modelsim-gcc-4.5.0-mingw64.zip,他可以帮忙编译c,在modelsim的用户手册里有提到这个,但是注意软件要相互搭配使用,gcc4.5.0的版本是可以搭配modelsim10.4的,亲测没问题
第二步:把里面g++的路径添加到系统的环境变量PATH中
第三步:在modelsim终端输入g++ —version看能不能输出版本号,如果输出则说明正常
##问题2:编译并没有报错,但是最后vlog failed
image.png

这个问题我找了好久原因,因为它并没有显示出现问题的原因,我当时是怀疑G++的版本和modelsim的版本问题,我的电脑刚好又装了modelsim10_6,所以我直接相同的方法,测试安装路径下10.6的vsim-vs,结果出现不同的问题,vlog正常,但是vsim的时候显示在C:\Program Files (x86)\Microsoft Visual Studio\VC98\bin里没有ml64.exe,之后又下载ml64.exe;但是接下来又报错Link.exe出现了问题,但是那个路径下明明有link.exe,然后我就下载link.exe替换,但是还是不行。我就想这个路径是文件是怎么来的,发现是安装VC6来的,我就想是不是VC的版本不对,然后就卸载了VC,也就是删除了COMMON和VC98文件的内容,果然完美了,两个版本都可以用了。

  • 解决方案:我的是安装了VC6的问题,通过删除COMMON和VC98文件解决了

问题3:编译.cpp文件时总是在vsim的时候报错

  • 解决方案:g++版本太低,不支持std=c++11,所以重新下载了MinGW,安装了最新版本的g++.注意安装MinGW的时候选64位,因为我的电脑是64位的

问题4:编译.cpp文件时link不了

  • 解决方案:就是一个.c和.cpp联合编译的问题,需要在.cpp的头文件上声明extern “C”

问题5:vlog正常,但是vsim的时候错误

image.png
解决方案:降低gcc的版本,亲测gcc4.5.0是可以的

小结

  1. vlog最后一定是接顶层的.sv文件,可以分多行写多个vlog
  2. vlog .c文件时也有一定的顺序,注意如果是多个.c/cpp文件,都需要vlog,不然在vsim的时候会找不到ref 对应的函数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值