Verilog語言與數字系統設計
技術標籤:晶片設計與EDA
Verilog語言是硬體描述語言(Hardware Description Language, HDL),用於描述數字系統。例如,它可以用於描述網路交換機、微處理器、儲存器或簡單的觸發器等。Verilog可以用於描述任意的數字系統以及各種抽象級別的硬體。
D觸發器用Verilog語言,可以描述如下:
// D flip-flop Code module d_ff ( d, clk, q, q_bar); input d ,clk; output q, q_bar; wire d ,clk; reg q, q_bar; always @ (posedge clk) begin q <= d; q_bar <= !d; end endmodule
數字系統的抽象級別
一般而言,數字系統包含有以下的抽象級別:
System Level
Behavioral Level
Register-Transfer Level
Gate Level
Switch Level
Mask Level
Verilog語言支援的級別
Behavioral Level
Register-Transfer Level
Gate Level
Switch Level
Verilog語言的用途
描述各種抽象層次數位電路
測試各個層次數位電路行為
設計正確有效的複雜電路
用於ASIC和FPGA設計
支援高層次模擬
支援模組功能驗證
支援器件庫(Cell)的設計
行為功能級(Behavioral Level)
這個級別描述一個系統的併發演算法。每個演算法本身是順序,即由順序指令集合組成。功能、任務、組合邏輯是其主要元素。不考慮設計的結構實現。
暫存器傳輸級(Register-Transfer Level)
這個級別規定暫存器間的資料傳送和操作。RTL設計包含精確的時間界定,即哪個操作在哪個時間點發生。現在的RTL程式碼定義是“任何可綜合的程式碼都稱為RTL程式碼”。
門級(Gate Level)
這個級別,系統的特性由邏輯電路及其時序特性來描述。所有訊號都是離散訊號。它們只能有明確的邏輯值(0',
1’,X',
Z`)。可用的操作是預定義的邏輯原語(AND、OR、NOT等門)。使用門級建模對於任何邏輯設計級別來說都不是一個好主意。門級程式碼由綜合工具等生成,其網表用於門級模擬和後續處理。
數字系統設計
Verilog設計風格(Design Styles)也和其他硬體描述語言一樣,可以採用自底向上(Bottom-up)或自頂向下(Top-down)的方法來設計。
數字系統的設計,詳細說起來,過程更加冗長,遠比這裡描述的要複雜。在這裡只能做一個簡單的介紹。
Verilog語言與VHDL語言
Verilog語言最早是由Gateway Design Automation公司提出,該公司於1989年被Cadence公司收購。
目前支援抽象硬體各個抽象級別描述的語言有2個,分別是Verilog語言和VHDL語言,而Verilog語言得到工業界與學術屆的廣泛支援和使用。