Verilog—运算符、赋值语句、结构说明语句

引言:


一、运算符

1. 逻辑运算符

(1) && 逻辑与;

(2) || 逻辑或;

(3) ! 逻辑非。

注意:

  • 返回的运算值是一位的 1 或 0 ,代表真或者假。返回值也可能是 x 值,表示不确定,这种情况下,0 和 x 的效果一样。(即非真即假)
  • 出现多位信号的直接逻辑判断,需要近似处理:“操作数是确定值且不全为 0 ,则等价为逻辑 1;不是逻辑 1 则等价为逻辑 0”
    eg.
a = 4'b0010; 
b = !a;
// a的操作数是确定值,且不全为 0 ,所以 a 认定为逻辑真,则 b 认定为逻辑假。
a = 4'b0010;
b = 4'b000x;
c = a | b;
// a 为逻辑真, b 中包含了 x ,虽然不全为 0 ,但也不是确定值,所以 b 不能等价为逻辑真,按非真即假的原则,b 被认为逻辑假,所以 c 为逻辑真。

2. 关系运算符

>     <      >=     <=

注意:

  • 返回的运算值是一位的 1 或 0 ,代表真或者假。返回值也可能是 x 值,表示不确定,这种情况下,0 和 x 的效果一样。(即非真即假)
  • 算数运算符优先级 高于 关系运算符
a < size - 1        // 先算 (size - 1)
size - (1 < a)  // 先判断 1 与 a 的大小关系,返回 1 or 0 ,再用size-1 or size-0

3. 等式运算符

(1) ==  等于;

(2) !=  不等于;

(3) ===  等于;

(4) !==  不等于。

注意:

  • 返回逻辑值 1 或 0 。
  • 前两个运算符只对 0 和 1 进行比较,相同为 1 ,不同为 0 。如果出现 x 或 z ,则逻辑值为 x 。
  • 后两个运算符对 x 和 z 也进行判断,完全一样为 1 ,有不同即为 0 。
    eg.
1 == x;    // 逻辑值为 x
1 === x;  //逻辑值为 0
x == x;   //逻辑值为 x
x === x;  //逻辑值为 1
  • 后两个运算符不可综合。实际电路中避免使用 z 或 x 这些高阻或不定态,尤其是 x 的影响,所以一般使用前两个进行建模。使用前两个运算符尽量避免出现不定态 x 。

4. 移位运算符

(1) >>  逻辑右移。

(2) <<  逻辑左移。

(3) >>>  算数右移。

(4) <<<  算数左移。

注意:

  • 逻辑移位,空缺位补 0 。
  • 算数移位,符号位也要跟着动。正数左右移空位补 0 ;负数左移低位补 0 ,右移高位补 1

5. 位拼接运算符

注意:

  • 每个部分可以是信号,或者信号的某一位或某几位,也可以是确切的数值。但是,位拼接运算符的信号宽度必须指明!
reg [3:0] a,b,c;
a = 4'b0000;
b = 4'b1111;
c = 4'b0101;

x1 = {a, b, c};                  //0000_1111_0101
x2 = {a[3], b, c};               //0_1111_0101
x3 = {a[2:0], b[0], c};          //000_1_0101
x4 = {a[0], b[0], c[0], 2'b00};  //01100

错误代码如下:

x5 = {a[0], b[0], c[0], 'b0};  //error:未指明最后一个信号的宽度
x6 = {a[0], b[0], c[0], 0};    //error:未指明最后一个信号的宽度

6. 缩减运算符

&   |    ^    ^~

a = 4'b0101;
&a      // 执行 0&1&0&1,结果为0
|a      // 执行 0|1|0|1,结果为1
^a      // 执行 0^1^0^1,结果为0
^~a     // 执行 0^~1^~0^~1,结果为1

注意:

  • 把数据的每一位按从左至右的顺序一次操作,并得到一个 1 位的运算结果。
  • 区别于按位运算符是双目运算符,缩减运算符是单目操作符(只带一个操作数),一般出现在操作数的最前方。

7. 条件运算符

条件表达式? 真时执行语句:假时执行语句;

8. 优先级

操作 操作符号 优先级
按位取反、逻辑非 ! ~ 最高
算数运算符 *   /  %  +  -
移位运算符 <<   >>
关系运算符 <  <=  >  >=
等式运算符 ==  !=  ===  !==
缩减、按位 (1)& ~&  (2)^ ^~  (3) ~
逻辑运算符 &&与   或
条件运算符 ?: 最低
posted @ 2022-04-22 16:23  烤冷面多加醋  阅读(1024)  评论(0)    收藏  举报