硬體描述語言HDL(Hardware Describe Language)
HDL概述
隨著EDA技術的發展,使用硬體語言設計PLD/FPGA成為一種趨勢。目前最主要的硬體描述語言是
VHDL和Verilog HDL。
VHDL發展的顯紓 鋟ㄑ細瘢 鳹erilog HDL是在C語言的基礎上發展起來的一種硬體描述語言,文法較自由。
VHDL和Verilog HDL兩者相比,
VHDL的書寫規則比Verilog煩瑣一些,但verilog自由的文法也容易讓少數初學者出錯。國外電子專業很多會在本科階段教授
VHDL,在研究生階段教授verilog。從國內來看,
VHDL的參考書很多,便於尋找資料,而Verilog HDL的參考書相對較少,這給學習Verilog HDL帶來一些困難。從EDA技術的發展上看,已出現用於CPLD/FPGA設計的硬體C語言編譯軟體,雖然還不成熟,應用極少,但它有可能會成為繼
VHDL和Verilog之後,設計大規模CPLD/FPGA的又一種手段。
選擇VHDL還是verilog HDL?
這是一個初學者最常見的問題。其實兩種語言的差別並不大,他們的描述能力也是類似的。掌握其中一種語言以後,可以通過短期的學習,較快的學會另一種語言。選擇何種語言主要還是看周圍人群的使用習慣,這樣可以方便日後的學習交流。當然,如果您是整合電路(ASIC)設計人員,則必須首先掌握verilog,因為在IC設計領域,90%以上的公司都是採用verilog進行IC設計。對於PLD/FPGA設計者而言,兩種語言可以自由選擇。
學習HDL的幾點重要提示
1.瞭解HDL的可綜合性問題:
HDL有兩種用途:系統模擬和硬體實現。如果程式只用於模擬,那麼幾乎所有的文法和編程方法都可以使用。但如果我們的程式是用於硬體實現(例如:用於FPGA設計),那麼我們就必須保證程式“可綜合”(程式的功能可以用硬體電路實現)。不可綜合的HDL語句在軟體綜合時將被忽略或者報錯。我們應當牢記一點:“所有的HDL描述都可以用於模擬,但不是所有的HDL描述都能用硬體實現。”
2. 用硬體電路設計思想來編寫HDL:
學好HDL的關鍵是充分理解HDL語句和硬體電路的關係。編寫HDL,就是在描述一個電路,我們寫完一段程式以後,應當對產生的電路有一些大體上的瞭解,而不能用純軟體的設計思路來編寫硬體描述語言。要做到這一點,需要我們多實踐,多思考,多總結。
3.文法掌握貴在精,不在多
30%的基本HDL語句就可以完成95%以上的電路設計,很多生僻的語句並不能被所有的綜合軟體所支援,在程式移植或者更換軟體平台時,容易產生相容性問題,也不利於其他人閱讀和修改。建議多用心鑽研常用語句,理解這些語句的硬體含義,這比多掌握幾個新文法要有用的多。
HDL與原理圖IME的關係
HDL和傳統的原理圖輸入方法的關係就好比是進階語言和組合語言的關係。HDL的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設計大規模CPLD/FPGA時顯得很煩瑣,移植性差。在真正的PLD/FPGA設計中,通常建議採用原理圖和HDL結合的方法來設計,適合用原理圖的地方就用原理圖,適合用HDL的地方就用HDL,並沒有強制的規定。在最短的時間內,用自己最熟悉的工具設計出高效,穩定,符合設計要求的電路才是我們的最終目的。
HDL開發流程
用
VHDL/VerilogHD語言開發PLD/FPGA的完整流程為:
1.文本編輯:用任何文字編輯器都可以進行,也可以用專用的HDL編輯環境。通常
VHDL檔案儲存為.vhd檔案,Verilog檔案儲存為.v檔案
2.功能模擬:將檔案調入HDL模擬軟體進行功能模擬,檢查邏輯功能是否正確(也叫前模擬,對簡單的設計可以跳過這一步,只在布線完成以後,進行時序模擬)
3.邏輯綜合:將源檔案調入邏輯綜合軟體進行綜合,即把語言綜合成最簡的布林運算式和訊號的串連關係。邏輯綜合軟體會產生.edf(edif)的EDA工業標準檔案。
4.布局布線:將.edf檔案調入PLD廠家提供的軟體中進行布線,即把設計好的邏輯安放到PLD/FPGA內
5.時序模擬:需要利用在布局布線中獲得的精確參數,用模擬軟體驗證電路的時序。(也叫後模擬)
6.編程下載:確認模擬無誤後,將檔案下載到晶片中
通常以上過程可以都在PLD/FPGA廠家提供的開發工具(如MAXPLUSII,Foundation,ISE)中完成,但許多整合的PLD開發軟體只支援
VHDL/Verilog的子集,可能造成少數文法不能編譯,如果採用專用HDL工具分開執行,效果會更好,否則這麼多出售專用HDL開發工具的公司就沒有存在的理由了。