EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——缩减运算符之战
9 g! H+ n/ X7 R1 J
3 T) Z, O, d2 @# i8 G d2 N9 L, L7 `缩减运算符是单目运算符,也有与或非运算。其与或非运算规则类似于位运算符的与或非运算规则,但其运算过程不同。位运算是对操作数的相应位进行与或非运算,操作数是几位数则运算结果也是几位数。而缩减运算则不同,缩减运算是对单个操作数进行与或非递推运算,最后的运算结果是一位的二进制数。缩减运算的具体运算过程是这样的:第一步先将操作数的第一位与第二位进行与或非运算,第二步将运算结果与第三位进行与或非运算,依次类推,直到最后一位。例如:
3 e1 h4 w2 U b; y0 l6 Y# ?9 {# t' `3 Z8 Q2 r/ H3 c
, `3 x- j+ P1 H$ E( e, u! q3 Nreg[3:0]B; reg C; C=&B; 相当于 C=((B[0]&B[1])&B[2])&B[3];
+ n: p7 x: J& j+ c/ q# w下面我们编写一个实例,通过仿真波形来验证运算结果是否如我们所说。可综合模块如下:
1 E/ I, A: _, Q2 _5 x 编写测试代码如下: , q" a. U+ F% [( f G. i6 }5 [* g
; K4 j6 r, g& j5 o
仿真波形如下: 3 F2 o) v# V9 C9 m/ e
0 ^7 X; O( ^9 P% }5 W3 Z$ n 通过该波形可以看出,当变量B的四个位全部为高时,由于是“逻辑与”的运算,所以最终输出的变量C为高电平。 那么如果我们在变量B中加入一个零,结果会如何呢?我们仿真如下: + D: w! N6 U; ~& q8 T3 a
8 A9 l5 P4 n- l/ r) v# D
可以看到,如果变量B中存在零,那么输出结果由于“逻辑与”会得到低电平。 ; q1 W+ B5 r' X! U
|