在VHDL中是否有一种方法可以声明std_logic_vector
,使其大小不断变化,具体取决于输入的大小?
我想要做的是,输入一个8位的std_logic_vector
,然后有一个存储输入值的动态std_logic_vector
信号。然后,下次再次接收输入值时,我将值连接到动态信号的末尾,依此类推。
答案 0 :(得分:3)
您正在寻找的行为是不可能的。必须在编译时知道std_logic_vector
的大小。因为VHDL用于描述硬件,所以具有动态大小的std_logic_vector
将对应于动态硬件(例如,在运行时期间实例化更多寄存器)。这是不可能的。
你所描述的内容听起来像一个移位寄存器。您可以定义std_logic_vector(MAX_LEN-1 downto 0)
,然后在收到新值时将每个字节移到更高位的字节位置。