运算符

基本运算符:+ - * / %

  • 进行算数运算操作时,若其中某一个操作数为x,整个结果为x

位运算符:~ & | ^ ^~

  • 对不同长度的数据进行位运算,默认按照右端对齐,高位用0填充

逻辑运算符:&& || !

关系运算符:< > <= >=

  • false - 0, true -1, 某个操作数值不定 - x

等式运算符:== != === !==

  • == != 为逻辑等式运算符,当操作数中存在x, z时返回x;=== !==可对x, z进行判断,完全相同返回1,不同返回0(case等式运算符)

移位运算符:<< >>

  • 用0填充空位

拼接运算符:{}

{信号1的某几位, 信号2的某几位 ,... ,信号n的某几位}

  • 例:{a, b[3:0], w, 3'b101}等价于{a, b[3], b[2], b[1], b[0], w, 1'b1, 1'b0, 1'b1}
  • 不允许存在没有指明位数的信号
  • 重复法:{4{w}}({w, w, w, w}), {b, {3{a, b}}}({b, a, b, a, b, a, b}),其中重复次数必须是常数表达式

缩减运算符:对单个操作数每一位进行与、或、非的递归运算,结果为1位二进制数

  • 例:reg [3:0] B;C = &B;相当于C = ((B[0] & B[1]) & B[2]) & B[3];