*******私信博主请加V:FPGA_GO*******
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1,FPGA_Verilog基础篇:Verilog发展进程-优快云博客
2,FPGA_Verilog基础篇:理解Verilog的四值逻辑-优快云博客
3,FPGA_Verilog基础篇:Verilog中数值的表示-优快云博客
4,FPGA_Verilog基础篇:信号声明类型-优快云博客
5,FPGA_Verilog基础篇:模块的端口声明-优快云博客
6,FPGA_Verilog基础篇:verilog语言的操作符-优快云博客
7,FPGA_Verilog基础篇:verilog基本逻辑运算-优快云博客
8,FPGA_Verilog基础篇:verilog关系操作的逻辑运算实现-优快云博客
9,FPGA_Verilog基础篇:veriolg算术运算-优快云博客
10,FPGA_Verilog基础篇:verilog移位操作-优快云博客
11,FPGA_Verilog基础篇:关系操作符简介-优快云博客
12,FPGA_Verilog基础篇:拼接运算符简介-优快云博客
13,FPGA_Verilog基础篇:verilog数值的位宽扩展规则-优快云博客
14,FPGA_Verilog基础篇:verilog移位与拼接实现-优快云博客
15,FPGA_Verilog基础篇:verilog双向inout接口表示_fpga inout端口-优快云博客
16,FPGA_Verilog基础篇:verilog之锁存器和触发器-优快云博客
17,FPGA_Verilog基础篇:verilog之for循环-优快云博客
18,FPGA_Verilog基础篇:verilog之函数用法-优快云博客
19,FPGA_Verilog基础篇:verilog之任务用法-优快云博客
20,FPGA_Verilog基础篇:verilog之任务与函数用法比较-优快云博客
21,FPGA_Verilog基础篇:verilog之宏define介绍-优快云博客
22,FPGA_Verilog基础篇:verilog之条件编译指令介绍-优快云博客
23,FPGA_Verilog基础篇:verilog之参数parameter介绍-优快云博客
24,FPGA_Verilog基础篇:verilog之本地参数localparam-优快云博客
25,FPGA_Verilog基础篇:verilog之generate生成块-优快云博客
26,FPGA_Verilog基础篇:verilog之常数规则-优快云博客
27,FPGA_Verilog基础篇:verilog中整数运算的位宽和符号规则-优快云博客
28,FPGA_Verilog基础篇:verilog中的字符串表示-优快云博客
29,FPGA_Verilog基础篇:verilog中带整数的算术表达式分析-优快云博客
30(结束篇),FPGA_Verilog基础篇:verilog中的数值运算规则总结-优快云博客
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
verilog对于1位宽标量的逻辑运算有以下几种:
逻辑取反(!)
对一个操作数进行逻辑取反,如果这个操作数是0,则结果为1。如果这个操作数为1,则结果为0;
逻辑与(&&)
对两个操作数进行逻辑与,如果两者都不为0,则结果为1。否则结果为0;
逻辑非(||)
对两个操作数进行逻辑或,如果两者其中至少有一个不为0,则结果为1,否则为0;
对于多位宽的向量,有两组信号按照比特操作(或称为“按位操作”)和单组信号各个比特一起操作(或称为“缩减操作”)这两个类型。
按位操作包含如下几种:
按位取反(~):
1个多位操作数按位取反。例如,a=4’b1011,则~a的结果为4’b0100。
按位与(&):
2个多位操作数按位进行与运算,各位的结果按顺序组成一个新的多位数。例如,a=2’b10,b=2’b11,则a&b的结果为2’b10;
按位或(|):
2个多位操作数按位进行或运算,各位的结果按顺序组成一个新的多位数。例如,a=2’b10,b=2’b11,则a|b的结果为2’b11;
按位异或(^):
2个多位操作数按位进行异或运算,各位的结果按顺序组成一个新的多位数。例如,a=2’b10,b=2’b11,则a|b的结果为2’b01;(相同为0,不同为1)
按位同或(~^或^~):
2个多位操作数按位进行同或运算,各位的结果按顺序组成一个新的多位数。例如,a=2’b10,b=2’b11,则a^~b的结果为2’b10;(相同为1,不同为0)
缩减操作都是对于一个向量,或者说对一个多比特信号进行操作的,包括以下几种:
缩减与(&):
对一个多位操作数进行缩减与操作,先将它的最高位与次高位进行与操作,其结果再与第二次高位进行与操作,直到最低位。例如,&(4’b1011)的结果为0;
缩减与非(~&):
对一个多位操作数进行缩减与非操作,先将它的最高位与次高位进行与非操作,其结果再与第二次高位进行与非操作,直到最低位。例如,~&(4’b1011)的结果为1;
缩减或(|):
对一个多位操作数进行缩减或操作,先将它的最高位与次高位进行或操作,其结果再与第二次高位进行或操作,直到最低位。例如,|(4’b1011)的结果为1;
缩减或非(~|):
对一个多位操作数进行缩减或非操作,先将它的最高位与次高位进行或非操作,其结果再与第二次高位进行或非操作,直到最低位。例如,~|(4’b1011)的结果为0;
缩减异或(^):
对一个多位操作数进行缩减异或操作,先将它的最高位与次高位进行异或操作,其结果再与第二次高位进行异或操作,直到最低位。例如,^(4’b1011)的结果为1;
缩减同或(~^或^~):
对一个多位操作数进行缩减同或操作,先将它的最高位与次高位进行同或操作,其结果再与第二次高位进行同或操作,直到最低位。例如,~^|(4’b1011)的结果为0;
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起学习、一起进步吧~