Vhdl 如何对lsb进行零填充

Vhdl 如何对lsb进行零填充,vhdl,Vhdl,我想在lsb(零填充)处添加零。我的意见是 m : IN STD_LOGIC_VECTOR (31 DOWNTO 0); 另一个向量(假设a)表示他的长度一直在变化。 我没有通过使用按位或“来做到这一点,因为长度总是不一样的。假设您不知道a的长度,但希望将结果向量b的LSB归零,使其长度为b b(b'left downto b'left - a'left) <= a; b(b'left - a'left - 1 downto 0) <= (others => '0')

我想在lsb(零填充)处添加零。我的意见是

 m  :   IN STD_LOGIC_VECTOR (31 DOWNTO 0);
另一个向量(假设a)表示他的长度一直在变化。

我没有通过使用按位
或“
来做到这一点,因为长度总是不一样的。

假设您不知道a的长度,但希望将结果向量b的LSB归零,使其长度为b

b(b'left downto b'left - a'left) <= a;
b(b'left - a'left - 1 downto 0) <= (others => '0');

b(b'left down到b'left-a'left)你说a的长度一直在变化是什么意思?a是另一个向量。每次我使用这部分代码时,他的长度都是diffrenet。第一次是5位len,第二次是22位len,等等。最快的解决方案是左移模式下的桶形移位器。有关此主题,请参阅其他帖子:例如。