Verilog 如何随时间推移使用多个输出?

Verilog 如何随时间推移使用多个输出?,verilog,hardware,Verilog,Hardware,我正在设计一个四位加法器,我希望用三个输入a、b和op测试电路。我试图随着时间的推移改变这些输入,这样我就可以用有源hdl获得波形,但我只得到最后的结果。在这种情况下,a=1111和b=0000,而不是a=0001和b=0000。如何随时间改变这些值 initial begin a = 4'b0001; b = 4'b0000; op = 3'b010; #1; a = 4'b1111; b = 4'b0000; op = 3'b010; #1; end 使用这个简单的测试台

我正在设计一个四位加法器,我希望用三个输入a、b和op测试电路。我试图随着时间的推移改变这些输入,这样我就可以用有源hdl获得波形,但我只得到最后的结果。在这种情况下,a=1111和b=0000,而不是a=0001和b=0000。如何随时间改变这些值

initial begin
a = 4'b0001;
b = 4'b0000;

op = 3'b010;
#1;  

a = 4'b1111;
b = 4'b0000;

op = 3'b010;   
#1;
end

使用这个简单的测试台

initial 
begin
  repeat(2)
  begin
      a = $random;
      b = $random;
      op = $random;
      #1;
  end
  #100 $finish;
end
只需根据您的意愿将数字2更改为,您将得到生成的测试向量


这不是您问题的答案,但您可以从上述代码中增加向量的数量,请也更改您的时间刻度。

您如何观察结果?如果你用“#100”来代替,会发生什么?你的确切意思是什么?我把寄存器和电线连接到有源HDL中的波形发生器上。如果我使用#100,我会得到相同的结果,你可以用驱动输入和块输出显示波形。还包括你应用刺激的块的代码将是有用的。目前没有足够的信息来诊断这个问题。我无法得到波形。这就是我问这个问题的原因。代码工作正常。我只是问如何随时间改变值,以便在波形中实际得到多个结果,而不仅仅是一条直线。因为上面的代码没有这样做。你不能得到波形或者波形中的值没有变化?因为输入会随时间变化,这就是初始块的作用。这也是为什么我建议将其设置为
#100
,以便更容易在波形中看到它们。您是否以
$finish()结束sim卡
应该告诉模拟器将所有数据刷新到文件中,这对于如此短的sim卡可能是必需的。到目前为止,您所展示的内容没有问题,您需要提供更多的信息。这没有什么不同,它是以结构化方式生成多个向量的有效方法。您的回答是正确的,但问题是它为什么不起作用。我敢打赌,如果OP将其设置为重复1000次,他们可能真的开始看到一些波形,但不确定这是否直接回答了部分问题,因为问题缺少足够的信息,无法知道问题是什么。是的,问题需要更多的澄清,确切地说,刺激系统是如何组成的。