2013-11-26 110 views
0

我試圖採取50 MHz的時鐘在lab7tb產生(),並將其與一週期的6微秒,或接近轉換爲一個。當我運行波形時鐘是紅色的,不知道爲什麼。Verilog的基地2時鐘分頻器

`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; 

    [email protected](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

寄存器count需要在sim開始時重置。

當模塊權力,計數的值是未知的。如果你不斷向未知值加1,它將永遠保持不變。

您可以使用初始語句來設置,如果這是針對一個FPGA計數爲0,或以其他方式把你的復位信號成塊,並設置計數爲0時,復位有效。

相關問題