Verilog Base 2时钟分频器

时间:2013-11-26 03:14:37

标签: verilog

我试图获取lab7tb()中生成的50 Mhz时钟,并将其转换为周期为6微秒或接近的时钟。当我运行波形时,时钟输出为红色,不知道为什么。

`timescale 1 ns/1 ns //time scale for the test bench


module p2divider(clockin, clockout); 
    input clockin; 
    output wire clockout; 

    parameter n = 9; 
    reg [n:0] count; 

    always@(posedge clockin) 
    begin 
        count <= count + 1; 
    end 

    assign clockout = count[n]; 
endmodule 


module lab7tb(); // the test bench module

    reg clock_sig;
    wire clock_out;



    // Instantiate the Unit Under Test (UUT)
    p2divider a (clock_sig, clock_out);


    integer i; 
    initial begin
        for(i=0; i<100; i=i+1)
        begin
            clock_sig <=1;
            #10;
            clock_sig <=0;
            #10;
        end
    end

endmodule

1 个答案:

答案 0 :(得分:1)

寄存器count需要在sim开头重置。

当模块打开电源时,计数值未知。如果你继续将1添加到未知值,它将永远保持未知。

如果这是针对FPGA的,可以使用初始语句将count设置为0,或者将复位信号带入块中,并在置位复位时将count设置为0。