目录
ModelSim/QuestaSim 使用中遇到的问题
1、ModelSim 读取不了数据文件(iverilog 语法问题)
iverilog 是一个十分方便的,且 Win/Linux 都可以使用的 verilog 仿真器。但是它的语法要求很不严格,有时候用 iverilog 仿真通过的代码,换个仿真器就出现异常。
for 语句
C语言中,for 循环经常会用到 i++,这样的自增运算,但是 Verilog 不支持。问题是,iverilog 支持。一般其它仿真器会对这个问题报错。
$readmemh语句
在 iverilog 的仿真中,数据文件内容是:
@00
0x12345679
0xa1a2a3a4
0xb1b2b3b4
0xc1c2c3c4
0xd1d2d3d4
0xe1e2e3e4
0xf1f2f3f4
0x9C4A93CE
仿真结果正常。但是拿到 Modelsim 或者 QuestaSim 仿真,读出的数据全是x,即没有读出数据。仿真程序会报 Warning。把十六进制前缀0x去掉就可以了。
2、ModelSim/QuestaSim 仿真运行run -all自动退出图形界面
因为以前做仿真,都是使用的 VCS,在 Testbench 里结束仿真用的是$finish,

在使用ModelSim/QuestaSim时遇到了仿真问题,包括数据文件无法正确读取和仿真运行时图形界面自动退出。针对数据文件问题,由于iverilog对某些Verilog语法的宽松处理,导致在ModelSim中读取数据时出现x值,解决方法是移除十六进制前缀。而图形界面退出的问题,是因为使用了结束仿真的指令,这在ModelSim中会导致仿真程序完全退出。

8640

被折叠的 条评论
为什么被折叠?



