减缩运算符是单目运算符,也有与或非运算。其与或非运算规矩类似于位运算符的与或非运算规矩,但其运算进程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算成果也是几位数。而减缩运算则不同,减缩运算是对单个操作数进行与或非递推运算,终究的运算成果是一位的二进制数。减缩运算的详细运算进程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算成果与第三位进行与或非运算,顺次类推,直到终究一位。例如:
reg[3:0]B;
reg C;
C=B;
相当于
C=((B[0]B[1])B[2])B[3];
下面咱们编写一个实例,经过仿真波形来验证运算成果是否如咱们所说。可归纳模块如下:
编写测验代码如下:
仿真波形如下:
经过该波形能够看出,当变量B的四个位悉数为高时,由所以“逻辑与”的运算,所以终究输出的变量C为高电平。
那么假如咱们在变量B中参加一个零,成果会怎么呢?咱们仿真如下:
能够看到,假如变量B中存在零,那么输出成果因为“逻辑与”会得到低电平。