代码基本上如下: Value 将时钟周期计数为 150,然后重置为 0,VOutReg 计算 Value 达到 150 的次数,当 VOutReg 达到 50 次时,它重置为 0。就是这样。但是,当我只使用以下代码编写测试夹具时:永远#20 时钟 = 不是时钟,我得到的结果是时钟在变化,而不是 ValueOut。
代码:
module Asd(
input CLK,
output [8:0] ValueOut
);
reg [9:0] Value;
reg [8:0] VOutReg;
initial Value = 0;
initial VOutReg = 0;
always@(posedge CLK) begin
if (Value == 150)
Value <= 0;
else
Value <= Value + 1;
end
always@(posedge CLK) begin
if (VOutReg == 50)
VOutReg <= 0;
else begin
if (Value == 150)
VOutReg <= VOutReg + 1;
end
end
assign ValueOut = VOutReg;
endmodule