首页 理论教育 位运算符详解-FPGA系统设计

位运算符详解-FPGA系统设计

时间:2023-10-20 理论教育 版权反馈
【摘要】:表6.3按位或的计算规则按位异或^^是个双目运算符,就是将^运算符两边的操作数按位进行异或计算。比如有一个向量信号in,in有16位,其中也许有个别位为x,假设想知道该位是否为x。然后对这一位异或的结果进行if条件判断是否为x,则可实现某些特殊位的x状态检测。所谓按位同或计算,就是指将两个操作数的相应位先做异或,然后按位取反。如果a、b两个值相同,则同或结果为1。表6.6取反的计算规则例6.22:

位运算符详解-FPGA系统设计

在大规模集成电路里,硬件电路存在的信号有4种可能性:0、1、x、z。有些变量也许有很多比特位,有时候需要把不同变量的某些比特位进行数字操作。这就涉及位运算。

Verilog有5种位运算符:

(1)按位与&

&是个双目运算符,就是将&运算符两边的操作数按位进行与计算。具体的计算规则看表6.2。

表6.2 按位与的计算规则

(2)按位或|

|是个双目运算符,就是将|运算符两边的操作数按位进行|计算。具体的计算规则看表6.3。

表6.3 按位或的计算规则

(3)按位异或^

^是个双目运算符,就是将^运算符两边的操作数按位进行异或计算。

如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,则异或结果为0。

具体的计算规则看表6.4。

表6.4 按位异或的计算规则

(www.xing528.com)

例6.21:异或操作符的用法。

异或操作符可以用来做某些特殊位的检测。比如有一个向量信号in,in有16位,其中也许有个别位为x,假设想知道该位是否为x。那么我们可以把该向量与它自己做异或。x与x做异或的结果依然为x。然后对这一位异或的结果进行if条件判断是否为x,则可实现某些特殊位的x状态检测。

异或还有一个用得比较多的地方。比如在奇偶校验位的添加上,就可以考虑使用异或操作符。

(4)按位同或^~

^~是个双目运算符,就是将^~运算符两边的操作数按位进行同或计算。

所谓按位同或计算,就是指将两个操作数的相应位先做异或,然后按位取反。

如果a、b两个值相同,则同或结果为1。如果a、b两个值不同,则同或结果为0。具体的计算规则看表6.5。

表6.5 按位同或的计算规则

(5)取反~

~是个单目运算符,就是将~右边的操作数按位进行取反。具体的计算规则看表6.6。

表6.6 取反的计算规则

例6.22:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈