VHDL 算术 shift_left

mah*_*ood 6 vhdl

使用 的shift_left功能ieee.numeric_std,我想将信号向左移动并插入10从右侧插入。

signal qo: signed (3 downto 0) := (others=>'0');
qo <= shift_left(qo,1);
Run Code Online (Sandbox Code Playgroud)

那只会0从右边插入。我想1在某些条件下插入。

Mat*_*lor 5

不使用shift_left函数,如何使用切片连接

qo <= qo(2 downto 0) & '1';
Run Code Online (Sandbox Code Playgroud)

或者

qo <= qo(2 downto 0) & '0';
Run Code Online (Sandbox Code Playgroud)

就个人而言,我建议使用切片和串联进行移位和旋转。运算符(sra等)存在问题,如您所见,使用切片和连接可以让您完全控制。