这是因为一些内部信号定义不一致之类的问题。
比如设计中有两个子模块A和B,A给B传递一个信号,但是A的输出端口和B的输入端口中,这个信号的类型、位宽等定义的不一致。
这样的代码在编译时是检查不到语法错误的,在启动仿真时才能检测到两个模块之间的这个信号对接不上,所以才会报错。
扩展资料:
出现错误的原因——
1、Missing instance name in instantiation of 'xxx'。
原因:xxx为模块名,这说明在testbench文件中调用的xxx模块,但是没有给实例名,查看文件为模块【添加实例名】。
2、near "initial": syntax error, unexpected initial, expecting ';'
原因:在initial模块附近缺少分号" ; "。
3、# ** Error: (vsim-3053) C:/Users/tlm/Desktop/cnt_8/prj/cnt_tb.v(19): Illegal output or inout port connection for "port 'RST_N'".
#
# Region: /cnt_tb/cnt_ins
# Error loading design
原因:指明了cnt_tb模块中实例名cnt_ins的信号RST_N没有连接,或者连接错误。
1、首先需要打开proteus
2、按照电路图,对元件进行布局和连线,完成电路图
3、点击如图,开始仿真
4、然后需要点击如图所示,暂停
5、然后需要点击如图所示,暂停,这样仿真时,就不会出现:Error loading design 错误了。
重新连接网络或者打开modelsim.ini,定位到VoptFlow,将其值设为0,具体操作方法如下:
1、首先断网可以解决一直卡在loading的问题,断开网络连接再重新连接,显示loading后会成功显示。
2、找到你的电脑modelsim安装目录搜索modelsim.ini打开,定位到VoptFlow,将其值设为0,即关闭设计的自动优化。
3、停止在22句上,下图中显示的第一行,手动修改成 vsim -novopt work.top就可以仿真。
4、一次性编译库(tool-launch EDA simulation Library Compiler ),然后返回仿真设计界面(Assignment-settingèsimulation-more Nativelink setting )设定好刚才编译好的库路径。
遇到过类似的问题,代码编译没问题,但modelsim启动仿真的时候会报错,说Error loading design。一般都是一些内部信号定义不一致之类的问题。比如设计中有两个子模块A和B,A给B传递一个信号,但是A的输出端口和B的输入端口中,这个信号的类型、位宽等定义的不一致。这样的代码在编译时是检查不到语法错误的,在启动仿真时才能检测到两个模块之间的这个信号对接不上,所以才会报错。你再检查一下modelsim的日志文件(工程目录下的transcript),一般都能找到出问题的模块。Ps:编译通过只是说明代码中没有语法错误了,所以编译通过不代表代码就没问题了。
在测试模块中,有一个design instance 要填测试模块实例名称,Name和top level这个则要天测试模块的名称即可。