3、Verilog HDL--运算符和表达式

1、算术操作符

主要包括加“+”、减“-”、乘“x”、除“/”、取模“%”。

例:当 a = 4'b1111, b = 3'b011 时,即 a*b结果如下图所示:

3、Verilog HDL--运算符和表达式

二进制运算结果与十进制运算结果一致。比如,用十进制表示,a=15,b=3,即a*b=45,用二进制表示为101101。

因此,a/b=5,即为4'b0101。

2、关系操作符

主要包含大于“>”、小于“<”、大于等于“>=”、小于等于“<=”。

输出结果为1位,分为4类:0、1、未知状态x、高阻z。

3、相等关系操作符

主要包含等于“==”、不等于“!=”、全等于“===”、非全等“!==”。

输出结果为1位,分为4类:0、1、未知状态x、高阻z。

等于对有效数值有效,而全等于对未知状态x与高组态也有效。关系图如下:

3、Verilog HDL--运算符和表达式

当 a=4'b0011,b=2'b11时,a==b为真,a===b为假。

4、逻辑运算符

包含与“&&”、或“||”、非“!"。

不定状态的逻辑运算结果也是不定状态。

5、按位运算符

包含取反“~”、按位与“&”、按位或“/”、按位异或“^”、按位同或“^~”。

6、归约运算符

包含“&”、或“|”、异或“^”以及相应的非操作。

7、移位运算符

左移“<<”、右移“>>”。

例,a=6'101101,a<<2结果为6'b110100。移位后用“0”来填补空位。

8、条件运算符

<条件表达式>?<表达式1>:<表达式2>

条件表达式为1时,取表达式1的结果;条件表达式为0时,取表达式2的结果。

9、连接和复制运算符

连接运算符“{ }”:信号1的某几位,信号2的某几位,……,信号n的某几位。

复制运算符“{{ }}”:将一个表达式的放入双重花括号,复制倍数放在第一个括号中。

例,a=3'b101,b=4'b1110,d设为5位,e设为6位。

d={a[2:1],b[2:0]},其中,a取10,b取110,结果d为5'b10110。

e={2{a}},即e为6’b101101。