我试图获取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
答案 0 :(得分:1)
寄存器count
需要在sim开头重置。
当模块打开电源时,计数值未知。如果你继续将1添加到未知值,它将永远保持未知。
如果这是针对FPGA的,可以使用初始语句将count设置为0,或者将复位信号带入块中,并在置位复位时将count设置为0。