VHDL和 verilogHDL的區別

2021-04-24 15:03:50 字數 2280 閱讀 6247

硬體描述語言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與原理圖輸入法的關係

hdl和傳統的原理圖輸入方法的關係就好比是高階語言和組合語言的關係。hdl的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設計大規模cpld/fpga時顯得很煩瑣,移植性差。在真正的pld/fpga設計中,通常建議採用原理圖和hdl結合的方法來設計,適合用原理圖的地方就用原理圖,適合用hdl的地方就用hdl,並沒有強制的規定。在最短的時間內,用自己最熟悉的工具設計出高效,穩定,符合設計要求的電路才是我們的最終目的。

hdl開發流程

vhdl/veriloghd語言開發pld/fpga的完整流程為:vhdl檔案儲存為.vhd檔案,verilog檔案儲存為.v檔案

2.功能**:將檔案調入hdl**軟體進行功能**,檢查邏輯功能是否正確(也叫前**,對簡單的設計可以跳過這一步,只在佈線完成以後,進行時序**)

3.邏輯綜合:將原始檔調入邏輯綜合軟體進行綜合,即把語言綜合成最簡的布林表示式和訊號的連線關係。邏輯綜合軟體會生成.edf(edif)的eda工業標準檔案。

4.布局佈線:將.edf檔案調入pld廠家提供的軟體中進行佈線,即把設計好的邏輯安放到pld/fpga內

5.時序**:需要利用在布局佈線中獲得的精確引數,用**軟體驗證電路的時序。(也叫後**)

通常以上過程可以都在pld/fpga廠家提供的開發工具(如maxplusii,foundation,ise)中完成,但許多整合的pld開發軟體只支援vhdl/verilog的子集,可能造成少數語法不能編譯,如果採用專用hdl工具分開執行,效果會更好,否則這麼多**專用hdl開發工具的公司就沒有存在的理由了。

可能學VHDL比VerilogHDL好吧?

今天做了幾個xilinx大學計畫裡的spartan 3e starter 的例子,在lab4中有個很有趣的synthesize report minimum period verilog 12 ns maximum frequency 83 mhz minimum period vhdl 10.5 ...

Verilog HDL的任務和函式

任務和函式只能實現組合邏輯,而對時序邏輯無能為力。一 任務 任務就是一段封裝在 task endtask 之間的程式。任務可以彼此呼叫,而且任務內還可以呼叫函式。1 任務定義 形式如下 task task id 任務名 declaration 埠定義 procedural statement 任務的...

VHDL和Verilog的區別

這兩種語言都是用於數字電子系統設計的硬體描述語言,而且都已經是 ieee 的標準。vhdl 1987 年成為標準,而 verilog 是 1995 年才成為標準的。這個是因為 vhdl 是美 方組織開發的,而 verilog 是乙個公司的私有財產轉化而來的。為什麼 verilog 能成為 ieee ...