Xilinx ISIM:计算转换次数

Xilinx ISIM: Count the Number of Transitions

有没有一种方法可以让 ISIM 计算仿真期间给定时间段内从高到低的转换次数,反之亦然?

你不能在 iSim 中做到这一点,但在 VHDL 中。

每个信号变化都会触发信号 'eventrising_edge(clock) 使用此事件来测试 clock'last_value 是否为 '0'clock 是否为 '1',反之亦然 falling_edge(...).

正如你所要求的,你只是在寻找上升沿和下降沿,所以你可以使用正常的"clocked"过程:

process(mySignal)
begin
  if rising_edge(mySignal) then
    RisingEdgeCount_us := RisingEdgeCount_us + 1;
  elsif falling_edge(mySignal) then
    FallingEdgeCount_us := FallingEdgeCount_us + 1;
  end if;
end process;

带有敏感列表的进程的优点是,它只在 mySignal 改变时才被检查。

如果您想测量一个时间间隔内的转换,您可以设计一个在此期间为高的使能信号,或者您可以读取当前仿真时间并计算该时间点是否在该时间间隔内。

还有许多其他方法可以描述其他过程,但我认为这种方法最能解决您的问题。