VHDL - 动态std_logic_vector大小

时间:2013-04-12 10:37:13

标签: dynamic vector logic std vhdl

在VHDL中是否有一种方法可以声明std_logic_vector,使其大小不断变化,具体取决于输入的大小?

我想要做的是,输入一个8位的std_logic_vector,然后有一个存储输入值的动态std_logic_vector信号。然后,下次再次接收输入值时,我将值连接到动态信号的末尾,依此类推。

1 个答案:

答案 0 :(得分:3)

您正在寻找的行为是不可能的。必须在编译时知道std_logic_vector的大小。因为VHDL用于描述硬件,所以具有动态大小的std_logic_vector将对应于动态硬件(例如,在运行时期间实例化更多寄存器)。这是不可能的。

你所描述的内容听起来像一个移位寄存器。您可以定义std_logic_vector(MAX_LEN-1 downto 0),然后在收到新值时将每个字节移到更高位的字节位置。