一、基本運算符
1.算術運算符:加(+) 減( -) 乘(*) 除(/) 取模(%) 求冪(**)。
(1)%是取模運算符:a % b 按照a 和 b中的長度長的補齊。兩個參數都為有符號數結果為有符號數,否則為無符號數;
(2)**是求冪運算符:a**b表示a的b次方,即a表示底數,b表示指數;
(3)除法只能取整數;
2.關系運算符:大於(>) 小於(<) 小於等於(<=) 大於等於(>=)
(1)(==)參與比較的兩個操作數必須逐位相對,其結果才為1,如果某些值是不定態X或高阻態Z,那么得到的結果是不定值X;
(2)(===)參與運算的操作數中不定態X或高阻態Z的位也進行比較,兩個操作數必須完全一致,其結果才為1,否則結果為0;
(3)(!=)和(!==)的用法類似;
3.邏輯運算符:邏輯非(!) 邏輯與(&&) 邏輯或(||)
4.位運算符:按位非(~) 按位與(&) 按位或(|) 異或(^) 同或(~^)
(1)異或(^)舉例:0+0=0 1+0=1 1+1=0
(2)同或(~^)舉例:0+0=1 1+0=0 1+1=1
5.歸約運算符:歸約與(&) 歸約與非(~&) 歸約或(|) 歸約或非(~|) 歸約異或(~^)
注意:歸約運算符的操作數只有一個,並只產生一位結果:舉例a=0101,則&a=0(a中的所有位進行與操作); |a=1(a中的所有位進行或操作);
6.條件操作符(C語言中的三目運算符):a ? b :c 該式中a為條件表達式,b和c為待選的執行表達式:如果a為真,則選擇執行b,否則執行c;
7.移位運算符:邏輯左移(<<) 邏輯右移(>>) 算術左移(<<<) 算術右移(>>>)
(1)邏輯左移和算術左移相同,都是在最低位補0,忽略操作數的符號;
(2)邏輯右移在最高位補0,忽略操作數的符號;算術右移對於有符號數,高位補充值和符號位相同,對於無符號數,高位補0;
8.拼接運算符:{a,b} 把位於大括號“{ }”中的兩個及以上用“,”分隔的小表達式連接在一起,形成一個大表達式
9.賦值運算符:
(1)阻塞型(=):常用於組合邏輯電路和時序邏輯電路;在該語句結束時就立即完成賦值操作;語句順序執行
(2)非阻塞型(<=):常用於時序邏輯電路,在整個過程語句結束時才會完成賦值操作;語句並列執行
注意:同一module中不能同時出現這兩種賦值運算符;
10.特殊運算符:
(1)a+:b為片選,即從a開始到a+b的位(舉例:reg q [2+:5]類似於reg q [6:2])
二、運算符的優先級:
三、邏輯符號和邏輯圖形符號
四、基礎知識
1.電平狀態:高電平(1) 低電平(0) 未知電平(X) 高阻態(Z)
(1)高阻態是一個數字電路里常見的術語,指的是電路的一種輸出狀態,既不是高電平也不是低電平,如果高阻態再輸入下一級電路的話,對下級電路無任何影響,和沒接一樣,如果用萬用表測的話有可能是高電平也有可能是低電平,隨它后面接的東西定的.
2.進制: 二進制(b) 八進制(o) 十進制(d) 十六進制(h)
舉例:4’hf:表示4位十六進制的f,即1111. 4‘b1010:表示4位二進制的1010,即1010.
3.變量:
4.獨熱碼:One-Hot編碼,又稱為一位有效編碼,主要是采用n位狀態寄存器來n個狀態進行編碼,每個狀態都由他獨立的寄存器位,並且在任意時候只有一位有效。
https://blog.csdn.net/baidu_31437863/article/details/83788786