我做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仿真软件 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网