炼狱传奇-缩减运算符之战
缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算则不同,缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,依次类推,直到最后一位。例如:
reg[3:0]B;
reg C;
C=B;
相当于
C=((B[0]B[1])B[2])B[3];
下面我们编写一个实例,通过仿真波形来验证运算结果是否如我们所说。可综合模块如下:
![](/d/file/201505/2220e2a80039433fed8f82264f6ce70a.png.thumb.jpg)
编写测试代码如下:
![](/d/file/201505/8155c829856f889ed943bb5a62747688.png.thumb.jpg)
仿真波形如下:
![](/d/file/201505/cda07d3da95cf15c7b630c4e2d569e25.png.thumb.jpg)
通过该波形可以看出,当变量B的四个位全部为高时,由于是“逻辑与”的运算,所以最终输出的变量C为高电平。
那么如果我们在变量B中加入一个零,结果会如何呢?我们仿真如下:
![](/d/file/201505/42f5d592f205dab6437d7bafde54b005.png.thumb.jpg)
可以看到,如果变量B中存在零,那么输出结果由于“逻辑与”会得到低电平。
![](https://webstorage.eepw.com.cn/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码