Verilog-移位操作(算术右移与逻辑右移)

Verilog-移位操作(算术右移与逻辑右移)

  • 写在前面
  • MIPS文档中的指令介绍
  • 算术右移与逻辑右移及其Verilog语言区别
  • 算术左移与逻辑左移

写在前面

计算机组成原理课程设计-VerilogHDL流水线处理器开发中涉及到了如下两条指令:SRAV与SRLV,分别是向量算术右移(Shift Word Right Arithmetic Variable)与向量逻辑右移(Shift Word Right Logical Variable),这里做一些简单说明。

MIPS文档中的指令介绍

SRAV(Shift Word Right Arithmetic Variable)
Verilog-移位操作(算术右移与逻辑右移)_第1张图片
SRLV(Shift Word Right Logical Variable)
Verilog-移位操作(算术右移与逻辑右移)_第2张图片

算术右移与逻辑右移及其Verilog语言区别

算术右移将操作数右移s位,并且在左边空出来的位置补s位操作数的符号,对于算术右移操作来说,将二进制的数值左移n位等同于将原来的数值除 2 n 2^n 2n
逻辑右移将操作数右移s位,并且在左边空出来的位置补s位0,忽略操作数的符号。

例如,要对4位二进制数1100( 4 ′ b 1100 4'b1100 4b1100)执行右移一位的操作。执行逻辑右移运算得到的结果为0110,而执行算术右移就是运算得到的结果为1110。

在Verilog语言中,操作符>>>执行算术右移操作,而操作符>>执行逻辑右移操作。

算术左移与逻辑左移

算​术左移和逻辑左移相同,都是在以为后右边空出的位置补0,忽略操作数的符号。将二进制的数值左移n位等同于将原来的数值乘以 2 n 2^n 2n

例如,要对4位二进制数1100( 4 ′ b 1100 4' b1100 4b1100)执行左移一位的操作。执行逻辑左移运算以及算术左移运算得到的结果均为1000

你可能感兴趣的:(Verilog,逻辑右移,算术右移,流水线处理器设计)