///
1,FPGA_Verilog基础篇:Verilog发展进程-CSDN博客
2,FPGA_Verilog基础篇:理解Verilog的四值逻辑-CSDN博客
3,FPGA_Verilog基础篇:Verilog中数值的表示-CSDN博客
4,FPGA_Verilog基础篇:信号声明类型-CSDN博客
5,FPGA_Verilog基础篇:模块的端口声明-CSDN博客
6,FPGA_Verilog基础篇:verilog语言的操作符-CSDN博客
7,FPGA_Verilog基础篇:verilog基本逻辑运算-CSDN博客
8,FPGA_Verilog基础篇:verilog关系操作的逻辑运算实现-CSDN博客
9,FPGA_Verilog基础篇:veriolg算术运算-CSDN博客
10,FPGA_Verilog基础篇:verilog移位操作-CSDN博客
11,FPGA_Verilog基础篇:关系操作符简介-CSDN博客
12,FPGA_Verilog基础篇:拼接运算符简介-CSDN博客
13,FPGA_Verilog基础篇:verilog数值的位宽扩展规则-CSDN博客
14,FPGA_Verilog基础篇:verilog移位与拼接实现-CSDN博客
15,FPGA_Verilog基础篇:verilog双向inout接口表示_fpga inout端口-CSDN博客
16,FPGA_Verilog基础篇:verilog之锁存器和触发器-CSDN博客
17,FPGA_Verilog基础篇:verilog之for循环-CSDN博客
18,FPGA_Verilog基础篇:verilog之函数用法-CSDN博客
19,FPGA_Verilog基础篇:verilog之任务用法-CSDN博客
20,FPGA_Verilog基础篇:verilog之任务与函数用法比较-CSDN博客
21,FPGA_Verilog基础篇:verilog之宏define介绍-CSDN博客
22,FPGA_Verilog基础篇:verilog之条件编译指令介绍-CSDN博客
23,FPGA_Verilog基础篇:verilog之参数parameter介绍-CSDN博客
24,FPGA_Verilog基础篇:verilog之本地参数localparam-CSDN博客
25,FPGA_Verilog基础篇:verilog之generate生成块-CSDN博客
26,FPGA_Verilog基础篇:verilog之常数规则-CSDN博客
27,FPGA_Verilog基础篇:verilog中整数运算的位宽和符号规则-CSDN博客
28,FPGA_Verilog基础篇:verilog中的字符串表示-CSDN博客
29,FPGA_Verilog基础篇:verilog中带整数的算术表达式分析-CSDN博客
30(结束篇),FPGA_Verilog基础篇:verilog中的数值运算规则总结-CSDN博客
///
Verilog中的移位操作有两类:逻辑移位和算术移位。
- 逻辑右移(>>):1个操作数向右移位,产生的空位用0填充;
- 逻辑左移(<<):1个操作数向左移位,产生的空位用0填充;
- 算术右移(>>>):1个操作数向右移位。如果是无符号数,则产生的空位用0填充,有符号数则用其符号位填充;
- 算数左移(<<<):1个操作数向左移位,产生的空位用0填充;
另外,需要注意不管是上述的哪种移位操作,移位的位数必须是常数值。
移位操作的例子如下:
表达式 | 结果 | 说明 |
8’b1000_1101 >> 8’d2 | 8’b0010_0011 | 无符号数逻辑右移 |
8’b1000_1101 << 8’d4 | 8’b1101_0000 | 无符号数逻辑左移 |
8’b1000_1101 << x,x为变量 | 语法错误 | 不可综合 |
8’b1000_1101 >>> 8’d2 | 8’b0010_0011 | 无符号数算术右移 |
8’sb1000_1101 >>> 8’d2 | 8’sb1110_0011 | 有符号数算术左移 |
8’b1000_1101 << 8’d4 | 8’b1101_0000 | 无符号数逻辑左移 |
8’sb1000_1101 << 8’d4 | 8’sb1101_0000 | 有符号数逻辑左移 |
另外,操作数左移n位相当于乘以2的n次幂,操作数右移n位相当于除以2的n次幂,这种特性在实际应用中非常有用!
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~