最近在学习verilog编程
今天在做时延与门逻辑仿真时,Modelsim怎么也出不来仿真波形,一直显示错误
Error loading design
# Error: Error loading design
# Pausing macro execution
# MACRO ./time_delay_module_run_msim_rtl_verilog.do PAUSED at line 12
我上上下下检查了好多遍,也在网上查找了许多信息。
pass掉了许多问题以及解决方案。包括:
下载路径不能有任何的空格、中文、以及特殊字符。
没有导入错误的testbench文件。
模块名和文件名一致。
端口配置,参数数据没有问题。
还有的解决方案是:
点击向上图标,进行上一步的重新编译。
以上方面都仔仔细细的检查了,但是仍然没什么用。
真的很想说一句,Modelsim! 你是懂娇气的。
but!家人们,还是有提示的,只不过它非常狡猾的藏在上面。你往上巴拉巴拉,会看到蓝色的字体。
Error:后面有错误的解释,我这个大致就是说time_delay_module这个程序文件中没有时间单位,但是其他文件有。
为了更清晰的表现我的问题,下面我把代码写出来。
主文件
module time_delay_module(
input ai, bi,
output so_lose, so_get, so_normal);
assign #20 so_lose = ai & bi ;
assign #5 so_get = ai & bi ;
assign so_normal = ai & bi ;
endmodule
对应的testbench文件
`timescale 1ns/1ns
module test ;
reg ai, bi ;
wire so_lose, so_get, so_normal ;
initial begin
ai = 0 ;
#25 ; ai = 1 ;
#35 ; ai = 0 ; //60ns
#40 ; ai = 1 ; //100ns
#10 ; ai = 0 ; //110ns
end
initial begin
bi = 1 ;
#70 ; bi = 0 ;
#20 ; bi = 1 ;
end
time_delay_module u_wire_delay(
.ai (ai),
.bi (bi),
.so_lose (so_lose),
.so_get (so_get),
.so_normal (so_normal));
initial begin
forever begin
#100;
//$display("---gyc---%d", $time);
if ($time >= 1000) begin
$finish ;
end
end
end
endmodule
大家看主文件里面的连续赋值语句,涉及到了延时,但是程序中并没有定义时间单位及精度,这就是错误的原因!
只要在第一行加上:
`timescale 1ns/1ns
就可以啦!
这小小的错误竟然折腾了我一个下午,哭。
我是在学习网站学习的代码,也是看着网站上的代码打到quartus上的。也就是说其实这里本来给出的代码是有错误的。咳咳......某菜鸟某教程我就不点名批评了哈。😜
大家以后遇到这种问题,一定要往上巴拉巴拉,看看错误解释,会省好多时间的!文章来源:https://www.toymoban.com/news/detail-770919.html
本人新学菜鸟,如果有错误地方,感谢大家多多指正,共同进步哈。文章来源地址https://www.toymoban.com/news/detail-770919.html
到了这里,关于QuartusⅡ+Modelsim:error loading design错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!