【发布时间】:2014-04-05 13:10:04
【问题描述】:
我对 VHDL 很陌生,所以我遇到了这个问题。
我的程序的一部分是测量电容器充电所需的时间,然后查看充电时间属于哪个范围。 我想看看计数是否在 H43044 - H 43238 或 H8c424 - H8c618 范围内
if ((count >= x"43044") and (count <= x"43238"))then
d3 <= '1'; --enable output
elsif ((count >= x"8c424") and (count <= x"8c618")) then
d4 <= '1';
end if;
我确保计数属于这些语句之一,但我根本没有得到任何输出。我想知道这是否是解决这个问题的正确方法。
【问题讨论】:
-
我尝试使用 OR 而不是 and ,它给了我一个输出但不是我需要的。
-
那么要么在这个片段之外有什么问题,要么在这个片段执行的任何时候计数都没有进入这些狭窄的范围。
-
很难说没有更多的代码。计数的类型是什么?你有哪些可见的包裹?根据代码中隐含的内容,我的期望是您已经有一个可见的数学包,它支持 ">=" 信号计数,但如果您不这样做,那就可以解释了。
-
你能告诉我们
count的声明吗? -
感谢大家的回复,问题正如Brian所说,我的测试时间完全错过了窗口。需要明确的是,范围是用 20ns 的时钟周期计算的,但我使用的是 2ns 测试台,因此所有计数都没有达到范围。
标签: if-statement vhdl counter rc