首页 理论教育 FPGA系统设计:利用缩减运算符提升性能

FPGA系统设计:利用缩减运算符提升性能

时间:2023-10-20 理论教育 版权反馈
【摘要】:例6.30:缩减运算符。缩减运算符有6种,本例子中举了其中2种。缩位运算符一般把缩位运算符又称为归约运算符。比如alpha为0001,则&alpha是缩位运算符的运算,结果为0&0&0&1,为0。表6.7运算符的归类续 表

FPGA系统设计:利用缩减运算符提升性能

缩减运算符只有一个操作数。缩减运算符就是把操作数的各个位依次做运算符所对应的运算,运算结果赋值给左边,为1位。

例6.30:缩减运算符。

缩减运算符有6种,本例子中举了其中2种。

在以上这些运算符中,有那么几种非常容易的混淆,我们下面专门把它们集中在一起,做个针对性的比较分析。

这三种分别是位运算符、缩位运算符和逻辑运算符。

(1)位运算符

按位运算的运算符是位运算符,原来的操作数有几位,运算的结果就有几位。如果两个操作数位数不同,则位数短的操作数左端会自动补0。

包括:按位取反~、按位与&、按位或|、按位异或^、按位同或^~或~^。比如alpha等于0000,beta等于1111,则alpha&beta的结果是按位与,即alpha[0]和beta[0]与,alpha[1]和beta[1]与,等等。结果即0000。

(2)缩位运算符

一般把缩位运算符又称为归约运算符。缩位运算符是单目运算符,按位进行逻辑运算,结果是1位值。这一点尤其要注意。缩位运算符与位运算符的区别在于,缩位运算符是单目的,也就是只有一个操作数。

包括:与缩位运算符&、或缩位运算符|、异或缩位运算符^、与,或,异或运算符和非运算符组成的复合运算符~&、~|、~^。

比如alpha为0001,则&alpha是缩位运算符的运算,结果为0&0&0&1,为0。(www.xing528.com)

位运算符有运算符&,缩位运算符也有运算符&,那到底哪个是哪个呢?这就看操作数了。&的两边都有操作数,则是位运算符,即把&两边的操作数各对应位进行与。其他运算符也类似。

(3)逻辑运算符

逻辑运算符也叫作逻辑关系运算符。其中,逻辑与和逻辑或是双目运算符,逻辑非是单目运算符。逻辑运算符,看名字,就知道,这种运算符是把操作数看作真或者看作假。如果操作数是多位的,则将操作数看作整体。如果操作数中每一位都是0,则为逻辑0(假或者false);若操作数当中有1(哪怕只有一个位为1),则视作逻辑1(真或者true)。

包括:逻辑与&&、逻辑或||和逻辑非!。

比如,alpha为0001,beta为0010,alpha&&beta的结果是什么?因为alpha不是全0,则把alpha视作1,同理也把beta视作1,于是alpha&&beta等于1和1相与,结果为1。

再比如gamma为0000,delta为1010,gamma||delta的结果是什么呢?gamma被视作逻辑0,delta被视作逻辑1,于是gamma||delta等于0和1相或,结果为1。

其他还有一些运算符,可能用的场合不是太多,这里不做介绍。

如表6.7所示,我们把以上几种运算符做了个归类。

表6.7 运算符的归类

续 表

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

我要反馈