马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
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,然后就可以仿真了。 |