我做verilog HDL的练习题,简单时序逻辑电路的设计,在quartus中做的代码在modelsim仿真时出现了错误!

我做verilog HDL的练习题,简单时序逻辑电路的设计,在quartus中做的代码在modelsim仿真时出现了错误!,第1张

首先,在测试模块下,你的输入时钟为clk_in,而不是clk,所以应该把   clk = ~clk;替换为clk_in=~clk_in;在initial下把clk=0改成clk_in=0;另外,在modelsim下创建testbench的时候,由source——>show language templates可以得到测试模块的模板,只需对输入进行定义和初始化,以下是我做修改后在modelsim62下的测试模块的程序:

`timescale 1ns/100ps

`define clk_cycle 50

module half_clk_tb  ;

reg    clk_in   ;

wire    clk_out   ;

reg    reset   ;

always  #`clk_cycle  clk_in = ~clk_in;

initial

begin

clk_in = 0;

reset = 1;

#100 reset = 0;

#100 reset = 1;

#10000 $stop;

end

half_clk

half_clk   (

clk_in (clk_in ) ,

clk_out (clk_out ) ,

reset (reset ) );

endmodule

以下插图是我仿真后的结果:

module clk(clk,sclk);

input clk;

output sclk;

reg sclk;

initial begin

sclk = 1‘b0;

end

always @(posedge clk)

begin sclk<=~sclk;

end

endmodule

这样添加就可以了

你写testcase应该是想写个测试程序,那么对变量mask赋值应该放到initial块里面:

initial

begin

mask=8'bx0x0x0x0;

end

记住:测试程序里,对任何变量赋初值,都要放到initial块里。

说一下我的想法:仿真速度并不一定都是可以提高的

如果你的程序复杂,时钟频率高,测试向量多都会导致较长的仿真时间,这是难以避免的

当然有一些小技巧可以在一定程度上缩短仿真时间(不考虑是否改善计算机硬件配置)比如设计的工作时钟频率为80MHz,即周期为125ns,原则上同步时序电路进行功能仿真的时间步进单位就是625ns,timescale为001ns因为同步时序逻辑一般都只使用时钟的上升沿 所以不需要严格要求时钟其他指标的具体实现 这样就可以把时钟信号设置为非1:1的占空比 即高电平65ns 低电平6ns 此时的timescale变为01ns 仿真速度可以加快一些 另外如果通过让testbench输出仿真结果文件而不是直接察看波形窗口的话 仿真速度可有较明显提高

以上就是关于我做verilog HDL的练习题,简单时序逻辑电路的设计,在quartus中做的代码在modelsim仿真时出现了错误!全部的内容,包括:我做verilog HDL的练习题,简单时序逻辑电路的设计,在quartus中做的代码在modelsim仿真时出现了错误!、1.用modelsim-altera 6.5e仿真的时候 显示 no data 2.signaltap ii 选择signal clock时出现错误、verilog HDL程序 modelsim 仿真报错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10107815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存