在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5187|回复: 8

[解决] MODELSIM+WIN环境下SYSTEMVERILOG调用C函数

[复制链接]
发表于 2016-2-26 15:14:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

最近为了验证一个ip,需要将ip的输出数据与c model的数据比对,之前采用的是将仿真结果输出,用perl读取结果,与c的输出结果比对,这样做也可以,但是在做遍历测试时,由于数据量较大,就显得不方便了。因此想要在testbench里调用c函数,直接对结果进行测试,如果两边结果不一致再报错。

操作系统是win10,modelsim是10.4版本,tb用system verilog写,调用c函数用DPI接口,非常方便。

如只需要写 import "DPI-C" function int my_function(input int fp);

my_function是我的c函数名,括号里是参数。这样就可以了,这比verilog的vpi的方便很多。

tb写好之后,将所有设计文档包括C,添加到modelsim工程中,在编译时,遇到了问题。

报错:# couldn't execute "D:\modeltech64_10.4\win64\sccom": no such file or directory

这里就是问题所在,google了大量资料也没有搞通,最后查看modelsim的user manual解决了问题。

首先,如果将c函数的设计文档添加到了工程中,在编译的时候肯定需要一个c编译器,猜想这个sccom应该就是相应的c编译器,可是modelsim安装的时候根本就没有这个东西,google了很多资料也没有说明这个东西怎么弄出来,在modelsim.ini文档里倒是找到了说明,后面也做了更改,还是没有解决问题,放弃。

既然modelsim自带的sccom没有,那我需要自己下一个编译器,就是modelsim-gcc-4.5.0-mingw64.zip,他可以帮忙编译c,在modelsim的用户手册里有提到这个,但是注意软件要相互搭配使用,gcc4.5.0的版本是可以搭配modelsim10.4的,亲测没问题,modelsim6.x的版本应该是搭配gcc4.2.x的,没有测试过。

下好该编译器,解压缩,将解压后的gcc-4.5.0-mingw64,放在modelsim安装目录下,我的是D:\modeltech64_10.4。其实个人感觉放在哪里都可以,只要后面把路径设置对就可以。弄好之后想着是否可以在modelsim.ini里面将相关的c compiler的默认路径改为gcc的bin的路径,但是改完之后仍然不work,放弃。个人感觉应该是哪里没改对,应该work的,希望有兴趣的同学继续试试。

最后,注意要将下好的gcc编译器写入环境变量path里,我的是D:\modeltech64_10.4\gcc-4.5.0-mingw64\bin。

之后不需要将c添加到mdelsim工程目录里,只要在modelsim工程中使用命令行输入vlog E:/xwork/design/test.c ,注意路径写对就可以编译成功,成功后是这样的:

# Model Technology ModelSim SE-64 vlog 10.4 Compiler 2014.12 Dec 3 2014
# Start time: 09:52:28 on Jan 15,2016
# vlog -reportprogress 300 E:/xwork/design/test.c  
# -- Compiling DPI/PLI C file E:/xwork/design/test.c
# End time: 09:52:29 on Jan 15,2016, Elapsed time: 0:00:01
# Errors: 0, Warnings: 0

然后,就可以正常的仿真了。

总的来说,过程很简单,自己装一个相关的编译器,设好环境变量,然后用命令vlog编译对应的c,然后就可以仿真了。

发表于 2017-11-8 15:14:41 | 显示全部楼层
没看懂
发表于 2017-11-8 15:40:42 | 显示全部楼层
buzhidao
发表于 2018-3-14 16:42:13 | 显示全部楼层
不错哦,谢谢
发表于 2018-10-10 10:01:35 | 显示全部楼层
不错,感谢分享,现在去尝试一下.....
发表于 2018-11-9 17:17:06 | 显示全部楼层
楼主分享一下modelsim-gcc-4.5.0-mingw64.tar,找不到
发表于 2018-12-16 11:55:36 | 显示全部楼层
发表于 2019-7-10 09:55:21 | 显示全部楼层
同找不到
发表于 2019-7-10 12:03:50 | 显示全部楼层
本帖最后由 saipolo 于 2019-7-10 12:06 编辑

所以说说Win版的ModelSim/QuestaSim跑c或者sc的相当费事!要相关的gcc没有,然后自己安装,版本不对也相当烦人!后来在Linux下搞VCS/IUS完全没有这么麻烦,根本不需要考虑gcc的事情,当然你也可以使用-cc编译选项自己指定gcc/g++/cc编译器,相当easy并且愉快!
大型工程都是用VCS或者IUS的,做数字IC验证基本不用ModelSim/QuestaSim,现实情况就是也就做FPGA的和在校学生用ModelSim吧。数字逻辑仿真VCS用得比IUS多,对SV稀奇古怪的语法现象的支持比IUS要好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-6-6 08:54 , Processed in 0.026187 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表