主模块内的模块实例化

时间:2018-06-14 21:47:11

标签: verilog quartus

义务:我是Verilog的新手。 我有两个单独的工作verilog模块:一个nios-ii ADC和一个计数器模块。 nios-ii控制的ADC qsys在主模块中正确实例化。我也试图在主模块中实例化计数器。 Quartus不会抛出任何错误,但计数器应该输出的输出上没有任何内容。 主要模块代码如下:

module niosADCv2(

    input CLOCK,

    input ADC1IN1,          // Voltage Level 2.5 V
    input ADC1IN2,          // Voltage Level 2.5 V 

    input RESET_N               // Voltage Level 2.5 V
    );

niosADCv2_qsys u0 (
        .clk_clk       (CLOCK),       //   clk.clk
        .reset_reset_n (RESET_N)  // reset.reset_n
    );

verilog_counter verilog_counter_c0(
        .CLOCK          (CLOCK),
        .usec           (usec),
        .nsec           (nsec)
    );

endmodule

在一个单独的verilog文件中是我的verliog_counter模块:

module verilog_counter(CLOCK, usec, nsec);

input CLOCK;
output reg [7:0] usec; 
output reg [5:0] nsec; //counts by 20nsecs (50MHz clock)
wire CLOCK;

always @ (posedge CLOCK) 
if (nsec == 6'b110001) begin //if count is 49 (980ns)
nsec <= 7'b0; //reset 20nsec count
usec <= usec + 7'b1; //incriment usec count
end 
else nsec <= nsec + 8'b1; //if a usec not reached, incriment 20ns counter

endmodule 

为什么没有出现计数器输出的想法?我是否错误地将计数器模块实例化,或者我不能将它们放在单独的文件中?任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

您应该在顶层模块中添加usec和nsec的声明。比如

并将文件verilog_counter.v添加到项目中。