VHDL整数范围是否包括在内?FPGA与仿真的差异

罗伯

我是FPGA的新手。我一直在做一些简单的测试,但发现一个我不完全了解的问题。

我有一个50MHz的时钟源。

我有一个信号定义为:

SIGNAL ledCounter : integer range 0 to 25000000 := 0;

当ledCounter达到25,000,000时,我切换LED并重置计数器。直接在FPGA上可以很好地工作。

IF (rising_edge(CLK)) THEN
    ledCounter <= ledCounter + 1;

    IF (ledCounter = 25000000) THEN
        ledCounter <= 0;
        toggle <= not toggle;
        LED(0) <= toggle;
    END IF;
END IF;

在ModelSim中运行时,当计数器达到25000000时会出现错误。要使其在模拟器中运行,我必须将范围定义为:

SIGNAL ledCounter : integer range 0 to 25000001 := 0;

有谁对为什么会这样有任何见解?该代码可以在FPGA上很好地运行,但是如果不进行上述修改,就不会在模拟器中运行。

编辑:modelsim错误是非描述性的:由于致命错误而无法继续。HDL呼叫顺序。在C:/Users/robert/Documents/fpga/testsim/test.vhd停止20流程行__17

乔纳森·德罗特

这是因为行ledCounter <= ledCounter + 1发生在比较之前。即使ledCounter的值实际上不会达到25000001(由于被以下语句覆盖),目前仍计划达到该值,从而导致模拟错误。您可以通过在else分支中移动增量轻松解决它:

IF (rising_edge(CLK)) THEN
    IF (ledCounter = 25000000) THEN
        ledCounter <= 0;
        toggle <= not toggle;
        LED(0) <= toggle;
    ELSE
        ledCounter <= ledCounter + 1;
    END IF;
END IF;

这样,ledCounter永远不会计划为25000001,并且不会发生任何错误。请注意,两个代码的行为完全相同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何为包括sudo在内的用户启用系统范围的功能?

来自分类Dev

淘汰的范围是否也包含在内?

来自分类Dev

VHDL仿真时序行为

来自分类Dev

VHDL Testbench仿真

来自分类Dev

检查变量是否为正整数的最紧凑/ Python方法,可能的变量类型是包括布尔值在内的任何变量类型

来自分类Dev

`curl -v`是否显示包括主体在内的完整HTTP请求?

来自分类Dev

检查包括4G在内的Internet是否可用

来自分类Dev

就尺寸和质量而言,是否可以进行逼真的n体太阳系仿真?

来自分类Dev

爪哇 - 测试仿真的Mockito

来自分类Dev

CSS的范围是否包括特殊元素?

来自分类Dev

VHDL中的整数超出范围时会发生什么?

来自分类Dev

输出上的VHDL仿真错误

来自分类Dev

输出上的VHDL仿真错误

来自分类Dev

使用JavaScript []文字的数组长度是否真的反映了其在内存中的物理大小?

来自分类Dev

Python的可迭代对象是否真的将所有值存储在内存中?

来自分类Dev

Python的可迭代对象是否真的将所有值存储在内存中?

来自分类Dev

返回数组,包括输入整数的加/减范围

来自分类Dev

sqlite包括0在内

来自分类Dev

SQL:跨多个表联接对一个范围进行分组,返回包括0在内的计数

来自分类Dev

str,double和complex的完整值范围是多少,包括它们在内存中的大小?

来自分类Dev

jQuery onclick关闭按钮,隐藏包括关闭按钮在内的整个范围

来自分类Dev

SQL:跨多个表联接对一个范围进行分组,返回包括0在内的计数

来自分类Dev

在Visual Studio监视窗口中显示包括特殊字符在内的数组范围。

来自分类Dev

通过电子邮件发送包括图表在内的Excel范围

来自分类Dev

使用elasticsearch中的脚本来查找两个整数字段之间的差异并检查其是否在特定范围内

来自分类Dev

检查是否为整数范围的字典键

来自分类Dev

检查整数是否在范围之一内

来自分类Dev

加快Xilinx ISim仿真的速度

来自分类Dev

范围内的非重复整数(不包括 0)产生重复的整数序列

Related 相关文章

  1. 1

    如何为包括sudo在内的用户启用系统范围的功能?

  2. 2

    淘汰的范围是否也包含在内?

  3. 3

    VHDL仿真时序行为

  4. 4

    VHDL Testbench仿真

  5. 5

    检查变量是否为正整数的最紧凑/ Python方法,可能的变量类型是包括布尔值在内的任何变量类型

  6. 6

    `curl -v`是否显示包括主体在内的完整HTTP请求?

  7. 7

    检查包括4G在内的Internet是否可用

  8. 8

    就尺寸和质量而言,是否可以进行逼真的n体太阳系仿真?

  9. 9

    爪哇 - 测试仿真的Mockito

  10. 10

    CSS的范围是否包括特殊元素?

  11. 11

    VHDL中的整数超出范围时会发生什么?

  12. 12

    输出上的VHDL仿真错误

  13. 13

    输出上的VHDL仿真错误

  14. 14

    使用JavaScript []文字的数组长度是否真的反映了其在内存中的物理大小?

  15. 15

    Python的可迭代对象是否真的将所有值存储在内存中?

  16. 16

    Python的可迭代对象是否真的将所有值存储在内存中?

  17. 17

    返回数组,包括输入整数的加/减范围

  18. 18

    sqlite包括0在内

  19. 19

    SQL:跨多个表联接对一个范围进行分组,返回包括0在内的计数

  20. 20

    str,double和complex的完整值范围是多少,包括它们在内存中的大小?

  21. 21

    jQuery onclick关闭按钮,隐藏包括关闭按钮在内的整个范围

  22. 22

    SQL:跨多个表联接对一个范围进行分组,返回包括0在内的计数

  23. 23

    在Visual Studio监视窗口中显示包括特殊字符在内的数组范围。

  24. 24

    通过电子邮件发送包括图表在内的Excel范围

  25. 25

    使用elasticsearch中的脚本来查找两个整数字段之间的差异并检查其是否在特定范围内

  26. 26

    检查是否为整数范围的字典键

  27. 27

    检查整数是否在范围之一内

  28. 28

    加快Xilinx ISim仿真的速度

  29. 29

    范围内的非重复整数(不包括 0)产生重复的整数序列

热门标签

归档