算術運算子
運算子 |
說明 |
+ |
加法 |
- |
減法 |
* |
乘法 |
** |
次方 |
/ |
除法 |
% |
取餘數 |
在這裡的 "/" 以及 "%" 撰寫時盡量少用,因為會非常耗硬體資源
二元運算子
運算子 |
說明 |
~ |
NOT |
& |
AND |
/(直的) |
OR |
^ |
XOR |
邏輯運算子
運算子 |
說明 |
! |
邏輯NOT |
&& |
邏輯AND |
//(也是直的) |
邏輯OR |
比較用的運算子
運算子 |
說明 |
> |
大於 |
< |
小於 |
>= |
大於等於 |
<= |
小於等於 |
== |
等於 |
!= |
不等於 |
左移及右移運算子
運算子 |
說明 |
>> |
邏輯右移 |
<< |
邏輯左移 |
>>> |
算術右移 |
<<< |
算術左移 |
在做二的次方倍的乘除法時,我們會使用左移及右移來避免使用乘法器
而邏輯移位跟算術移位的差別在於,邏輯移位不管左移還是右移,都會移 "0" 進來,而算術移位在右移時則會去依照數字的正負號來決定移入 "0" 還是 "1",正的話移入 "0",負則移入 "1"。
連結運算子
EX:
a = {1'b0, 3'd7} //a = 4'b0111
b = {4{1'b1}}; //b = 4'b1111;
c = {4{1'b1}, 3{1'b0}}; //c = 7'b1111000;
條件運算子
EX:
c = (a==1'b1)?1'b0:1'b1;//等效c = !a,不過合成出來的電路不相同