Verilog HDL和VHDL的區別


VHDLVerilog HDL 的區別

低層次建模

VHDLVerilog HDL都可以描述硬件,然后,在低層次硬件描述上VERILOG HDL好於VHDL。這是因為Verilog HDL最初就是用來創建和仿真邏輯門電路的。實際上,Verilog HDL有內置的門或者是低層次的邏輯門,因此,設計者能夠用Verilog代碼實例門電路而在VHDL中不可以。

Verilog的門級元件有:and, nand, or, nor, xor, xnor, buf, not, bufif0, notif0, bufif1, notif1, pullup, pulldown.Verilog的開關級元件有:pmos, nmos, rpmos, rnmos, cmos, rcmos, tran, rtran, tranif0, rtranif0, tranif1, rtranif1.

更加重要的是,Verilog支持用戶自定義元件,因此,設計者可以定義他們自己的單元元件。這個特點對於ASIC的設計者來說必須和受歡迎

VHDL同樣有一些低層次的嵌入式的邏輯門,如NOT, AND, NAND, OR, NOR, XOR, XNOR.

舉例如下:

or u1(x,y,z);      (in Verilog)       <=>         x <= y OR z; in VHDL

and u2(i1,i2,i3);     (in Verilog)    <=>    i3 <= i2 AND i3; in VHDL

高層次建模

另一方面,在高層次硬件建模方面,VHDLVerilog HDL要強。VHDLVerilog HDL提供了更多的特點和構造結構,這些使得VHDL更適合高層次建模。在比較VHDLVerilog后,以下幾個主要不同的特點來支撐高層次建模。

1、VHDL中,用戶自定義數據類型

Verilog有非常簡單的數據類型,這些數據類型全部由Verilog語言自己定義(用戶不能自己定義數據類型)。Verilog有兩大數據類型,包括網格(net)數據類型和變量數據數據類型。網格數據類型主要用來連接元件,如wire(最受歡迎)、worwandtritrior等;變量數據類型用來暫時存儲數據如reg(最受歡迎)、integertimereal realtime

VHDL支持許多不同的數據類型,包括預定義數據類型和自定義數據類型。預定義數據類型包括 bit, bit_vector, string, time, boolean, character, and numeric (real or integer).VHDL允許設計者在預定義數據類型的基礎上,定義不同的數據類型。對於可能會用許多不同的數據類型的復雜和高層次的系統來說,這是一個好的特征。

2、在VHDL中,用於設計復用的包(package

VHDL中,包通常會被用來聲明數據類型和子程序。被聲明在包中的數據類型和子程序能被不同的實體或者結構體引用。

Verilog中沒有包的定義,最接近VHDL包的是include指令函數或者定義能被單獨存在另外的文件,用的時候用include指令。

3、在VHDL中的配置語句

一個VHDL設計能包含許多設計實體,每一個設計實體可以有許多不同的結構體。在設計中,配置語句能給設計單元分配具體的結構體。在VHDL設計中需要管理一個大的高層次設計時,這個特點非常有幫助。

4、在vhdl中庫管理

當同時看VHDLVerilog代碼時,最明顯的區別是Verilog沒有庫調用,而VHDL在代碼前面有庫調用。VHDL庫包含結構體、實體、包和配置語句。當管理大型設計結構是,這些特點非常有用。

總之,VHDL在高層次建模時,比Verilog好。如果我是一個FPGA設計者,因為FPGA設計不要求低成次硬件建模,所以我更喜歡VHDL

值得一提是, 通過加入和VHDL一樣的高層次特點和結構,提高Verilog在高層次建模方面的弱點,提出來SystemVerilog語言。SystemVerilog現在被廣泛應用到IC驗證中。

 


免責聲明!

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



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