【发布时间】:2016-03-04 20:24:48
【问题描述】:
有没有办法让 ISIM 计算模拟期间给定时间段内从高到低的转换次数?
【问题讨论】:
标签: simulation fpga xilinx xilinx-ise
有没有办法让 ISIM 计算模拟期间给定时间段内从高到低的转换次数?
【问题讨论】:
标签: simulation fpga xilinx xilinx-ise
你不能在 iSim 中做到这一点,但在 VHDL 中。
每次信号更改都会在信号上触发'event。 rising_edge(clock) 使用此事件来测试clock'last_value 是否为'0' 和clock 是否为'1',反之亦然falling_edge(...)。
根据您的要求,您只是在寻找上升沿和下降沿,因此您可以使用正常的“时钟”过程:
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 发生变化时才检查它。
如果您想测量间隔内的转换,您可以设计一个在该期间为高电平的启用信号,或者您可以读取当前模拟时间并计算该时间点是否在该间隔内。
还有很多其他方法可以描述其他过程,但我认为这个最能解决您的问题。
【讨论】: