用移位法在VHDL中除负数
我有一个负数(MSB=1)。如何用VHDL中的移位将数字除以,比如说2 6档换档应该给我2档 我怎样才能概括除法/移位法 例:--6->-3用移位法在VHDL中除负数,vhdl,Vhdl,我有一个负数(MSB=1)。如何用VHDL中的移位将数字除以,比如说2 6档换档应该给我2档 我怎样才能概括除法/移位法 例:--6->-3 6->3对于使用ieee.numeric_std.signed在2的补码中除以2的数字(负数和正数),可以使用shift和: res <= std_logic_vector(shift_right(signed(arg), 1)); 操作上的区别是: Shift(Shift\u right):向下取整,因此为-7/2=-4 除法(/):向零舍入,
6->3对于使用ieee.numeric_std.signed在2的补码中除以2的数字(负数和正数),可以使用shift和:
res <= std_logic_vector(shift_right(signed(arg), 1));
操作上的区别是:
- Shift(
):向下取整,因此为-7/2=-4Shift\u right
- 除法(
):向零舍入,因此-7/2=-3/
- 移位(
):尺寸和速度均为零,因为只需布线Shift\u right
- 除法(
):由于四舍五入需要逻辑运算,因此在大小和速度上需要一些成本/
res <= std_logic_vector(shift_right(signed(arg), 1));
操作上的区别是:
- Shift(
):向下舍入,因此-7/2=-4Shift\u right
- 除法(
):向零舍入,因此-7/2=-3/
- 移位(
):尺寸和速度均为零,因为只需布线Shift\u right
- 除法(
):由于四舍五入需要逻辑运算,因此在大小和速度上需要一些成本/