![4f6d3fe0dc830578f40081dfc2a5e5ca.png](https://i-blog.csdnimg.cn/blog_migrate/2683f655ecd13656fa860a772057cc4a.jpeg)
1.运算符及表达式
![01cf6f403496366d278ca1f8a0c7e6a1.png](https://i-blog.csdnimg.cn/blog_migrate/624b1e88e2ac7fc03fbdddee301b93f6.jpeg)
在Verilog HDL语言中运算符所带的操作数是不同的,按其所带
操作数的个数运算符可分为三种:
a)单目运算符(unary operator):可以带一个操作数,操作数放在运算符的右边。
b)二目运算符(binary operator):可以带二个操作数,操作数放在运算符的两边。
c)三目运算符(ternary operator):可以带三个操作,这三个操作数用三目运算符分隔开。
例:
clock = ~clock;// ~是一个单目取反运算符, clock是操作数。
c = a | b; // 是一个二目按位或运算符, a 和 b是操作数。
r = s ? t : u; // ?: 是一个三目条件运算符, s,t,u是操作数。
1)算数运算
![a22312ba2b55af6427ddaef929c4079a.png](https://i-blog.csdnimg.cn/blog_migrate/114d506181ea055fd4cf7b653c70935d.png)
将负数赋值给reg或其它无符号变量使用2的补码算术。如果操作数的某一位是x或z,则结果为x。在整数除法中,余数舍弃。模运算中使用第一个操作数的符号。注意integer和reg类型在算术运算时的差别。integer是有符号数,而reg是无符号数。
2)位运算
![39bdf24544eae45424c44810b2c42896.png](https://i-blog.csdnimg.cn/blog_migrate/9900e15be645d61fa61cf5eec7046267.png)