我做verilog HDL的练习题,简单时序逻辑电路的设计,在quartus中做的代码在modelsim仿真时出现了错误! 写了一个简易电子琴verilog hdl 代码在Quartu...
\u6c42\u6551\u6c42\u6551~~~~\u5173\u4e8e\u7f16\u7a0b\u7684\u95ee\u9898\uff0c\u6c42\u5404\u4f4d\u8fbe\u4eba\u6551\u6551\u6211\u5144\u5f1f\uff1a
\u628a\u8fd9\u4e2a\uff1a\u201cmodule clk_Top.v\u201d
\u6539\u6210\uff1a\u201cmodule clk_Top\uff1b\u201d
\u5c31OK\u5566\uff5e
\u6d4b\u8bd5\u7a0b\u5e8f\u4e2d\u4f7f\u7528Initial \u5bf9\u8f93\u51fa\u4fe1\u53f7\u521d\u59cb\u5316\u3002initial\u4e2d\u7684begin\u5230end\u4e4b\u95f4\u7684\u8bed\u53e5\u53ea\u4f1a\u6267\u884c\u4e00\u6b21\u3002
首先,在测试模块下,你的输入时钟为clk_in,而不是clk,所以应该把 clk = ~clk;替换为clk_in=~clk_in;在initial下把clk=0改成clk_in=0;另外,在modelsim下创建testbench的时候,由source——>show language templates可以得到测试模块的模板,只需对输入进行定义和初始化,以下是我做修改后在modelsim6.2下的测试模块的程序:
`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
以下插图是我仿真后的结果:
half_clk half_clk_new(.reset(reset),.clk_in(clk),.clk_out(clk_out));
换个名字试试
你这里的标点符号不是在中文状态下输入的吧?
错误已经报出是在调用的 half_clk_Top.v 代码第六行出现语法错误,你找到这段代码看看第六行的前后有没有落下一个分号。
module clk_Top.v 改成 module clk_Top;
扩展阅读:vhdl variable ... 英转中翻译器 ... vhdl signal ... verilog hdl流水灯 ... 免费的翻译器 ... verilog hdl入门书籍推荐 ... verilog hdl综合 ... verilog hdl和vhdl的区别 ... verilog hdl仿真软件 ...