Dynamic VHDL-动态标准逻辑向量大小

Dynamic VHDL-动态标准逻辑向量大小,dynamic,vector,logic,std,vhdl,Dynamic,Vector,Logic,Std,Vhdl,在VHDL中是否有一种方法可以声明一个std\u logic\u vector,使其大小根据输入的大小不断变化 我想做的是,输入一个8位的std_逻辑_向量,然后有一个存储输入值的动态std_逻辑_向量信号。然后,下次再次接收输入值时,我会将该值连接到动态信号的末尾,依此类推。您要查找的行为是不可能的。编译时必须知道std\u logic\u向量的大小。由于VHDL用于描述硬件,因此具有动态大小的std_logic_vector将对应于动态硬件(例如,在运行时实例化更多寄存器)。这是不可能的 你

在VHDL中是否有一种方法可以声明一个
std\u logic\u vector
,使其大小根据输入的大小不断变化


我想做的是,输入一个8位的
std_逻辑_向量
,然后有一个存储输入值的动态
std_逻辑_向量
信号。然后,下次再次接收输入值时,我会将该值连接到动态信号的末尾,依此类推。

您要查找的行为是不可能的。编译时必须知道
std\u logic\u向量的大小。由于VHDL用于描述硬件,因此具有动态大小的
std_logic_vector
将对应于动态硬件(例如,在运行时实例化更多寄存器)。这是不可能的


你所描述的听起来像移位寄存器。您可以定义一个
std\u logic\u向量(MAX\u LEN-1降到0)
,然后在收到新值时将每个字节移到更高的字节位置。

VHDL是一种硬件描述语言。实现std_逻辑_向量就像安装一束电线。导线数量不能动态更改!现在还不清楚你到底想要实现什么。如果您试图实现在编译和精化之后动态变化的std_逻辑_向量,那么您无法实现它。如果您希望它在精化时是动态的,那么这是可能的(通过不指定范围)。通常,如果您需要真正的“动态宽度”,则需要指定尽可能宽的宽度,然后填充其他输入(通常为0)。谢谢Josh,我将使用您的建议,用0填充无用的位。