Verilog中的運算符及其相關基礎知識


一、基本運算符

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM