资源描述:
《modelsim 错误及解决方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、这几天学习了下modelsim6.5SE,做些总结以便复习。不一定正确,请浏览者不吝纠正指教。软件:modelsim6.5SE代码来源:王金明:《VerilogHDL程序设计教程》1、文件夹Adder4中,adder_tb.v的$monitor($time,,,"%d+%d+%b={%b,%d}",a,b,cin,cout,sum);没有现象,出现警告:Warning:(vsim-PLI-3003)E:/modelsim65SE/wangjinming/adder4/adder_tb.v(30):[TOFD]-Systemtaskorfunction'$minitor'isnotd
2、efined. 2、调用顶层文件的例化语句出现错误:adder4adder(.cout(cout),.sum(sum),.a(ina),.b(inb),.cin(cin));错误原因:没分清调用和被调用模块的端口放置位置,正确的写法如下:adder4adder(.cout(cout),.sum(sum),.ina(a),.inb(b),.cin(cin)); 3、在做counter4的时候,刚开始没信号,如图:原来以为是sourceinsight的问题,删掉sourceinsight的文件只保留counter4.v和counter4_tb.v之后,仍然是这个问题。经排查是因为在点击
3、startsimulation后没有去掉Enableoptimization。 改正方法:去点红圈处的钩。或者如下图,右击要仿真的文件,选中SimulaitonwithoutOptimization.改正之后,Objects中出现了信号:2011.7.44、发现了initial$monitor($time,,,"clk=%dreset=%dout=%d",clk,reset,out);的作用,仿真运行后,在Transcript中显示:0 clk=0reset=0out=x# 50 clk=1reset=0out=x#
4、 100 clk=0reset=1out=x# 150 clk=1reset=1out=0# 200 clk=0reset=0out=0# 250 clk=1reset=0out=1# 300 clk=0reset=0out=1# 350 clk=1reset=0out=2# 400 clk=0reset=0out=2# 450 clk=1reset=0out=
5、3# 500 clk=0reset=0out=3 5、在做好一个工程后,想要对另一个文件夹内的文件进行仿真,必须选择ChangeDirectory。可是,选项是暗色的,不能选。我只有关掉modelsim,再打开,才可以选。后来发现,之所以之前不能选是因为还在仿真。只要关掉仿真就可以了。做法如下:选中Simulate->EndSimulation。 6、常用指令总结:vlibworkvmapworkworkvlogxxx.vvcomxxx.vhdaddwave/name/*vsimxxxxrunxxxnsquit–f 7、语法错误parameter
6、delay10;错因:忘记= 改为:parameterdelay=10;语法错误AOIoi(.A(A),B(B),.C(C),D(D),.F(F));错因:忘记.改为AOIoi(.A(A),.B(B),.C(C),.D(D),.F(F)); 8、做AOI.v,编译后出现错误**Error:E:/modelsim65SE/wangjinming/AOI/AOI_tb.v(13):(vlog-2110)Illegalreferencetonet"A".错因:原来以为是A=0; B=0;C=0;D=0;两边没加beginend,加上后编译仍有此错误。后来才发现测试文件的信号定义错误。源文
7、件端口定义是:inputA,B,C,D;outputF;测试文件的信号定义应该是:regA,B,C,D;wireF;即:源文件的输入端在测试文件中定义为reg,源文件的输出端在测试文件中定义为wire. 9、仿真mux4_1时,我用指令vsimmux4_1_tb,现象objects中没有信号,即没有去掉EnableOptimization。不知道怎么用命令进行不加EnableOptimization的操作,暂时还用鼠标点击选项吧。 10、对一个语法的理解之前我使用的时