【问题标题】:vhdl checking a range with if statementsvhdl 使用 if 语句检查范围
【发布时间】: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


【解决方案1】:

只是为了结束这个问题,结果我在测试台上使用了错误的时钟,我认为我的错误在于我在上面的部分中呈现逻辑的方式,因为所有其他代码都工作得很好。现在我知道这是检查范围的正确方法。谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-09
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多