2.operators
Tags
Operator Types
Bit Manipulation
Assignment Statements
AI summary
本文介绍了基本运算符及其用法,包括与、或、非、异或、加减、条件运算、移位运算和比较运算符。还讨论了缩位运算符和赋值语句的规则,强调赋值语句中变量和表达式的位数匹配的重要性,并指出电路语句将在后续内容中讨论。
运算符
基本运算符
Operator | Description | Usage (a, b can be constants) | Output Value |
& | 与运算 | a[x-1:0] & b[x-1:0] | c[x-1:0] |
| | 或运算 | a[x-1:0] | b[x-1:0] | c[x-1:0] |
~ | 非运算 | ~a[x-1:0] | c[x-1:0] |
^ | 异或运算 | a[x-1:0] ^ b[x-1 : 0] | c[x-1:0] |
! | ㅤ | !a[x-1:0] | ? |
+, - | 加运算,减运算 | a[x-1:0] + b[x-1:0] | ? |
? : | 条件运算 | a[0:0] ? b[x-1:0] : c [x-1:0] | d[x-1:0] |
\>> | 逻辑右移 | a[$2^x-1$:0] >> b[x-1:0] | c[$2^x-1$:0] |
<< | 左移 | a[$2^x-1$:0] << b[x-1:0] | c[$2^x-1$:0] |
\>>> | 算术右移 | a[$2^x-1$:0] >>> b[x-1:0] | c[$2^x-1$:0] |
*, /, % | 乘运算,除运算,取模运算 | 少用 | ? |
<, <=, !=, >, >=, == | 比较运算 | a[x-1:0] op b[x-1:0] | ? |
缩位运算符
Operator | Description | Usage | Output Value |
& | 向量所有位相与运算 | &a[x-1:0] | b[0:0] |
| | 向量所有位相或运算 | |a[x-1:0] | b[0:0] |
运算符不能视作向量:
赋值语句
variable = expression
- 等号左边的variable,可以是单个变量,也可以是
{a, b}
, 但不能有常量或运算符
- 等号右边的expression,可以是单个变量或常量,也可以是
{a + b, 1'b1}
,要注意位数
- 等号左右两边位数不同,会发生什么?
电路语句(To be continued)
电路是由电路语句构成的,上述例子都不是电路语句!
Loading...