2014-04-05 86 views
1

我对VHDL很陌生,所以我在这个问题上遇到了麻烦。vhdl用if语句检查范围

我的程序的一部分是测量电容器充电所需的时间,然后查看充电时间所处的范围。 我希望看到的是,如果计数的范围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; 

我确信这些语句的下一个计数下降,但我得到任何输出。我想知道这是否是解决这个问题的正确方法。

+0

我试图用OR代替和,它给了我一个输出,但不是我所需要的。 – EcEng

+0

然后,无论这个片段外面有什么问题,或者在执行这个片段时,count都不会进入这些窄范围中的任何一个。 –

+0

很难说没有更多的代码。什么是计数类型?你有什么包可见?根据代码中隐含的内容,我的期望是,您已经有一个数学包可见,支持信号计数的“> =”,但如果您不这样做,则可以解释事情。 –

回答

1

只是为了关闭这个问题,事实证明我在我的测试平台中使用了错误的时钟,我推测我的错误是因为我在上面的段中呈现了逻辑,因为所有其他代码都工作得很好。现在我知道这是检查范围的正确方法。感谢大家。