Vhdl 如何表示大于整数的整数';高的

Vhdl 如何表示大于整数的整数';高的,vhdl,Vhdl,是否有任何方法可以使用STD_LOGIC_1164或STD_NUMERIC中的预定义类型来表示从0到2^32-1的整数?(考虑到默认的整数类型范围为-2^31-1到2^31-1) 我需要实现32位计数器,并且正在寻找使用整数类型而不是std_逻辑_向量保存代码的方法。。这个有什么设计模式吗 或者,更好的问题是:使用整数类型声明支持操作>/的32位(无符号)整数的最佳方法是什么?您不能(至少,不可移植;可能有一些VHDL工具超出了最小值并提供64位整数) 使用IEEE.numeric_std,您可

是否有任何方法可以使用STD_LOGIC_1164或STD_NUMERIC中的预定义类型来表示从0到2^32-1的整数?(考虑到默认的整数类型范围为-2^31-1到2^31-1)

我需要实现32位计数器,并且正在寻找使用整数类型而不是std_逻辑_向量保存代码的方法。。这个有什么设计模式吗


或者,更好的问题是:使用整数类型声明支持操作>/的32位(无符号)整数的最佳方法是什么?您不能(至少,不可移植;可能有一些VHDL工具超出了最小值并提供64位整数)

使用IEEE.numeric_std,您可以声明一个具有完整32位范围(或53位,如果您愿意)的无符号函数,它应该可以满足您的所有需要,除非我误解了您的要求

use ieee.numeric_std.all;
然后使用
无符号
数据类型-它作为位向量进行运算,并定义了数学运算。你可以选择你想要多少比特。例如:

signal mynum : unsigned(234 downto 0)

这确实解决了问题。我将信号声明为无符号(31到0),现在它支持我需要的操作(有时使用std_logic_vector(计数器)映射到输出)。谢谢你的回答。如何使用write()和writeline()将大整数写入文本文件?通常,我将这样的整数转换为_integer(无符号(sig1))。我不敢相信我们使用的HDL不能在本地将大数字写入文件。在可以的情况下,更喜欢数字\u std而不是标准逻辑\u矢量。对于除以4(或2的幂)的情况,可以查看数值_std中的移位运算符,也可以自己切片向量。输出