【问题标题】:How to use multiple outputs over time?随着时间的推移如何使用多个输出?
【发布时间】:2016-07-01 13:02:08
【问题描述】:

我正在设计一个四位加法器,我希望用三个输入 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

【问题讨论】:

  • 您如何观察结果?如果你改用“#100”会发生什么?
  • 你到底是什么意思?我将寄存器和电线连接到有源 HDL 中的波形发生器。如果我使用 #100,我会得到相同的结果
  • 你能用你的驱动输入和模块的输出显示波形吗?还包括您应用刺激的块的代码将很有用。目前没有足够的信息来诊断问题。
  • 我无法获取波形。这就是我问这个问题的原因。代码正常工作。我只是在问如何随时间改变值,这样我实际上可能在波形中有多个结果,而不仅仅是一条直线。因为上面的代码没有这样做。
  • 您无法获得波形或波形中的值没有变化?因为输入确实会随着时间而变化,这就是您的初始块所做的。还有为什么我建议将其设为#100,以便以波形形式更容易看到它们。您是否以$finish(); 结束模拟,这应该告诉模拟器将所有数据刷新到文件中,这对于如此短的模拟可能是必需的。到目前为止您显示的内容没有任何问题,您需要提供更多信息。

标签: verilog hardware


【解决方案1】:

使用这个简单的测试平台,

initial 
begin
  repeat(2)
  begin
      a = $random;
      b = $random;
      op = $random;
      #1;
  end
  #100 $finish;
end

只需根据您的意愿将数字 2 更改为,您就会生成这么多的测试向量。

这不是你问题的答案,但你可以从上面的代码中增加向量的数量,也请改变你的时间尺度。

【讨论】:

  • 没有什么不同,它是一种以结构化方式生成多个向量的有效方法。
  • 你说得对,但问题是它为什么不起作用。我敢打赌,如果 OP 将其设置为重复 1000 次,他们实际上可能会开始看到一些波形,但不确定这是否直接回答了问题,部分原因是问题缺少足够的信息来了解问题所在。
  • 是的,这个问题需要进一步澄清,确切地说,受激系统是由什么组成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多