赞
踩
平时的vivado自带的仿真用得多(下文会说,用finish也不会出问题的。。。)
最近用TD需要仿真它的IP核,就只能用modelsim了。。。。。
结果我在modelsim里,compile all之后,一点击start simulation就闪退。。。。
提示:一般你写testbench的时候不会去写最后这个initial语句,这是vscode的插件自动生成的模板~
注意最后的initial语句中:$finish;
//~ `New testbench `timescale 1ns / 1ps module tb_top1; // top Parameters parameter PERIOD = 10; // top Inputs reg clk = 0 ; reg rst = 1 ; reg [23:0] di = 1 ; reg re = 0 ; reg we = 0 ; // top Outputs wire [23:0] do ; wire empty_flag ; wire full_flag ; glbl glbl(); initial begin forever #(PERIOD/2) clk=~clk; end initial begin #(PERIOD*2) rst = 0; #(PERIOD*2.5); we=1'b1;//di=24'd9; #(PERIOD) di=24'd2;// re=1'b1;//读使能 #(PERIOD) di=24'd3; #(PERIOD) di=24'd4; we=1'b0; #(PERIOD) di=24'd0; #(PERIOD*0.2) re=1'b0; //#(PERIOD*0.5) end top u_top ( .clk ( clk ), .rst ( rst ), .di ( di [23:0] ), .re ( re ), .we ( we ), .do ( do [23:0] ), .empty_flag ( empty_flag ), .full_flag ( full_flag ) ); initial begin $finish; end endmodule
如果你去百度orCSDN搜索,有关“modelsim仿真闪退”相关的关键词,大致会得到的原因&解决方案:
华为管家,退出
安全模式
爱奇艺等启动选项(我觉得很玄学)
甚至我也责怪了我的荣耀笔记本一段时间。。。。
发现小丑竟是我自己!!!!(请继续阅读下去~)
还是在于自己忽略了 $ stop和$ finish的作用。。。verilog基础不牢,地动山摇~
其实,从Are you sure you want to finish?; 其实也应该反应过来,啊 ,我用的是“$finish”
简单来说,
f
i
n
i
s
h
就
是
退
出
,
finish就是退出,
finish就是退出,stop就是退出
;
(其实个人建议不用 $ stop那一段话)
如果用了,你第一次点击仿真就会新打开Tb的文件,停留在$stop这个地方,确实就是“停止仿真”的意思
然后回到仿真界面,再点一次运行多少s,波形就出来了~
我还会整理其他相关的modelsim相关的使用技巧~
(待更新)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。