Verilog HDL模型的不同抽象級別


所謂不同的抽象類別,實際上是指同一個物理電路,可以在不同層次上用Verilog語言來描述。如果只從行為功能的角度來描述某一電路模塊,就稱作行為模塊。如果從電路結構的角度來描述該電路模塊,就稱作結構模塊。根據抽象的級別將Verilog的模塊分為5種不同的等級:

1)系統級 2)算法級 3)RTL級(register-transfer-level)4)門級 5)開關級。

對於數字系統的邏輯設計工程師而言:熟練地掌握門級、RTL級、算法級、系統級的描述是非常重要的。

對於電路基本元部件的設計者而言,則需要掌握用戶自定義原語(UDP)和開關級的描述。

Verilog中有關門類型的關鍵字有26個,這里簡單介紹其中8種:

and-與門;nand-與非門;or-或門;nor-或非門;xor-異或門;xnor-異或非門;buf-緩沖器;not-非門。

用戶定義原語:

 用戶定義原語是從英語User Defined Primitive直接翻譯過來的,簡稱UDP。利用用戶定義原語可以自己定義自己設計的基本邏輯器件的功能,由於UDP是用查表的方法來確定輸出的,在用仿真器進行仿真時,對他的處理較對一般用戶編寫的模塊和組合邏輯快得多。UDP的定義和一般模塊類似,只是不用module而是改用primitive作為關鍵詞,不用endmodule而是endprimitive關鍵詞結束。

語法:primitive 元件名(輸出端口,輸入端口1,輸入端口2,....);      //書上沒有分號?

              output   輸出端口名;

              input     輸入端口1,輸入端口2....;

              reg    輸出端口;

              initial

                begin 輸出端口寄存器或者時序邏輯內部寄存器初始化0; end

              table

                //輸入1  輸入2  輸入3  ... :輸出

                  邏輯1  邏輯2  邏輯3  ... :邏輯值;

                  邏輯1  邏輯2  邏輯3  ... :邏輯值;

                  邏輯1  邏輯2  邏輯3  ... :邏輯值;

                  ...          .... ... ... ..... ...........;

             endtable

      endprimitive

注意:

1)UDP只能有一個輸出量,而且必須是端口說明的第一項;

2)UDP可以有多個輸入端,最多允許有10個輸入端;

3)UDP所有端口變量必須是標量,即必須是1位的;

4)在UDP的邏輯表中只允許出現0,1,x三種邏輯值,高阻狀態z不允許出現。

5)只有輸出端可以定義為reg寄存器類型變量;

6)initial語句用於為時序電路內部寄存器賦初值,只允許賦0,1,x的三種邏輯值,默認值為X。


免責聲明!

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



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