Verilog 與 VHDL 的差異:兩種硬體描述語言比較

Verilog 與 VHDL 是為了模擬與邏輯合成而描述數位電路的兩種主要硬體描述語言(HDL)。Verilog 的語法簡短,類似 C 語言,容易入門。VHDL 的描述較長,型別嚴格,因此容易及早發現錯誤。兩者都能描述相同的電路,選擇的依據多半是業界、公司與既有的程式碼。

項目Verilog(含 SystemVerilog)VHDL
來歷1980 年代由 Gateway Design Automation 開發,標準化為 IEEE 1364為美國國防部而開發,1987 年標準化為 IEEE 1076
語法的特徵簡潔,類似 C 語言描述較長,類似 Ada
型別弱型別。隱含的型別轉換很方便,但可能掩蓋錯誤強型別。需要明確的型別轉換,可在編譯時發現錯誤
大小寫區分不區分
學習的難易度容易入門起初較難,但習慣後很安全
驗證功能單靠 Verilog 有所限制。SystemVerilog 加入了類別、限制式隨機測試、斷言與 UVMVHDL-2008 加上 OSVVM 或 UVVM 等函式庫
語言的抽象化較少。模組與參數豐富。套件、泛型、記錄、列舉型別
工具的支援主要的模擬器與邏輯合成工具全都支援主要的模擬器與邏輯合成工具全都支援。也可以進行混合語言的模擬
主要使用者ASIC 與 SoC 的設計。尤其是美國與亞洲歐洲、航太與國防、許多 FPGA 開發

數值為具代表性的大致參考值,會因世代或產品而異。

適用於什麼情況

Verilog / SystemVerilog
在晶片的設計與驗證上,先選這個較為穩當。因為業界的工具與函式庫是以 SystemVerilog 為中心製作的。
VHDL
適合重視嚴格型別與長期維護容易性的場合。例如安全攸關的開發與國防相關等。
實際上
很多時候也會需要閱讀兩者。其基本觀念(模組或實體、並行運作的訊號、以時脈運作的程序)是相同的。

常見問題

Verilog 與 VHDL 哪一個比較容易學?

Verilog。因為語法簡短,類似 C 語言。VHDL 的描述較長,型別也嚴格,起初較難,但可以在編譯時發現更多錯誤。

業界比較常用哪一個?

在 ASIC 與 SoC 的設計與驗證上,尤其是美國與亞洲,以 SystemVerilog 為主流。VHDL 則用於歐洲、航太與國防,以及許多 FPGA 開發。

Verilog 與 VHDL 可以在一個專案中混用嗎?

可以。主要的模擬器與邏輯合成工具支援混合語言的設計,以其中一種語言撰寫的模組,可以在另一種語言中使用。

什麼是 SystemVerilog?

是擴充 Verilog 的語言,加入了類別、限制式隨機測試、斷言與 UVM 的方法。已成為晶片驗證的標準。

相關名詞的解說

Verilog
廣泛用於數位電路設計與驗證的硬體描述語言。以 module 為單位撰寫電路,並以 assign 與 always 表示行為。
SystemVerilog
擴充 Verilog 的語言。具有 logic 型別與 always_ff、always_comb 等設計功能,以及類別、受限隨機、斷言等驗證功能。
硬體描述語言(Hardware description language, HDL)
以文字描述數位電路結構與行為的語言。HDL。有 Verilog、SystemVerilog、VHDL,並藉由邏輯合成轉換為電路。
RTL(暫存器傳輸層級)
以資料如何在暫存器之間傳輸與處理來描述電路的設計抽象層級。以Verilog或VHDL撰寫,是邏輯合成的輸入。

相關的比較