《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > PLD/FPGA硬件編程語言Verilog HDL
PLD/FPGA硬件編程語言Verilog HDL
摘要: PLD/FPGA硬件語言設(shè)計(jì)verilogHDL,HDL概述隨著EDA技術(shù)的發(fā)展,使用硬件語言設(shè)計(jì)PLD/FPGA成為一種趨勢(shì)。目前最主要的硬件描述語言是VHDL和verilogHDL及SystemVerilog。VHDL發(fā)展的較早,語法嚴(yán)格;而VerilogHDL是在C語言的基礎(chǔ)上發(fā)展起來的一種硬
關(guān)鍵詞: 開發(fā)工具 Verilog HDL PLD FPGA
Abstract:
Key words :

HDL概述

  隨著EDA技術(shù)的發(fā)展,使用硬件語言設(shè)計(jì)PLD" title="PLD">PLD/FPGA" title="FPGA">FPGA成為一種趨勢(shì)。目前最主要的硬件描述語言是VHDL和verilog HDL" title="verilog HDL">verilog HDL及System Verilog。 VHDL發(fā)展的較早,語法嚴(yán)格;而Verilog HDL是在C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言,語法較自由;System Verilog可以看做是Verilog HDL的升級(jí)版本,她更接近C語言且支持多維數(shù)組。 VHDL和Verilog HDL兩者相比,VHDL的書寫規(guī)則和語法要求很嚴(yán)格,比如不同的數(shù)據(jù)類型之間不容許相互賦值而需要轉(zhuǎn)換,初學(xué)者寫的不規(guī)范代碼一般編譯會(huì)報(bào)錯(cuò);而 Verilog則比較靈活,而靈活在某些時(shí)候綜合的結(jié)果可能不是程序員想要的結(jié)果。 System Verilog由于資料不是很多,目前懂得人較少。據(jù)調(diào)查在我國(guó)使用Verilog HDL的公司比使用VHDL的公司多。從EDA技術(shù)的發(fā)展上看,已出現(xiàn)用于CPLD/FPGA設(shè)計(jì)的硬件C語言編譯軟件,雖然還不成熟,應(yīng)用極少,但它有可能會(huì)成為繼VHDL和Verilog之后,設(shè)計(jì)大規(guī)模CPLD/FPGA的又一種手段。

  選擇VHDL或者verilog HDL還是System Verilog?

  這是一個(gè)初學(xué)者最常見的問題。其實(shí)這三種語言的差別并不大,他們的描述能力也是類似的。掌握其中一種語言以后,可以通過短期的學(xué)習(xí),較快的學(xué)會(huì)另一種語言,掌握了verilog HDL學(xué)System Verilog則更是簡(jiǎn)單。選擇何種語言主要還是看周圍人群的使用習(xí)慣,這樣可以方便日后的學(xué)習(xí)交流。 當(dāng)然,如果您是集成電路(ASIC)設(shè)計(jì)人員,則必須首先掌握verilog,因?yàn)樵贗C設(shè)計(jì)領(lǐng)域,90%以上的公司都是采用verilog進(jìn)行IC設(shè)計(jì)。對(duì)于PLD/FPGA設(shè)計(jì)者而言,三種語言可以自由選擇。如果你熟悉C語言,則建議你學(xué)習(xí)verilog HDL,你會(huì)發(fā)現(xiàn)verilog HDL的許多語法和關(guān)鍵字和C語言中的相同,使你能夠很快突破語言障礙,快速入門。

  學(xué)習(xí)HDL的幾點(diǎn)重要提示

  1.了解HDL的可綜合性問題:

  HDL有兩種用途:系統(tǒng)仿真和硬件實(shí)現(xiàn)。 如果程序只用于仿真,那么幾乎所有的語法和編程方法都可以使用。 但如果我們的程序是用于硬件實(shí)現(xiàn)(例如:用于FPGA設(shè)計(jì)),那么我們就必須保證程序“可綜合”(程序的功能可以用硬件電路實(shí)現(xiàn))。 不可綜合的HDL語句在軟件綜合時(shí)將被忽略或者報(bào)錯(cuò)。 我們應(yīng)當(dāng)牢記一點(diǎn): “所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件實(shí)現(xiàn)。”

  2. 用硬件電路設(shè)計(jì)思想來編寫HDL:

  學(xué)好HDL的關(guān)鍵是充分理解HDL語句和硬件電路的關(guān)系。 編寫HDL,就是在描述一個(gè)電路,我們寫完一段程序以后,應(yīng)當(dāng)對(duì)生成的電路有一些大體上的了解, 而不能用純軟件的設(shè)計(jì)思路來編寫硬件描述語言。 要做到這一點(diǎn),需要我們多實(shí)踐,多思考,多總結(jié)。

  3.語法掌握貴在精,不在多

  20%的基本HDL語句就可以完成80%以上的電路設(shè)計(jì),30%的基本HDL語句就可以完成95%以上的電路設(shè)計(jì),很多生僻的語句并不能被所有的綜合軟件所支持,在程序移植或者更換軟件平臺(tái)時(shí),容易產(chǎn)生兼容性問題,也不利于其他人閱讀和修改。建議多用心鉆研常用語句,理解這些語句的硬件含義,這比多掌握幾個(gè)新語法要有用的多。

  HDL與原理圖輸入法的關(guān)系

  HDL和傳統(tǒng)的原理圖輸入方法的關(guān)系就好比是高級(jí)語言和匯編語言的關(guān)系。HDL的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設(shè)計(jì)大規(guī)模CPLD/FPGA時(shí)顯得很煩瑣,移植性差。在真正的PLD/FPGA設(shè)計(jì)中,通常建議采用原理圖和HDL結(jié)合的方法來設(shè)計(jì),適合用原理圖的地方就用原理圖,適合用HDL的地方就用HDL,并沒有強(qiáng)制的規(guī)定。在最短的時(shí)間內(nèi),用自己最熟悉的工具設(shè)計(jì)出高效,穩(wěn)定,符合設(shè)計(jì)要求的電路才是我們的最終目的。

  HDL開發(fā)流程

  用VHDL/VerilogHD語言開發(fā)PLD/FPGA的完整流程為:

  1.文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件

  2.功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對(duì)簡(jiǎn)單的設(shè)計(jì)可以跳過這一步,只在布線完成以后,進(jìn)行時(shí)序仿真)

  3.邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡(jiǎn)的布爾表達(dá)式和信號(hào)的連接關(guān)系。邏輯綜合軟件會(huì)生成.edf(edif)的EDA工業(yè)標(biāo)準(zhǔn)文件。

  4.布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到PLD/FPGA內(nèi)

  5.時(shí)序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗(yàn)證電路的時(shí)序。(也叫后仿真)

  6.編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中

  通常以上過程可以都在PLD/FPGA廠家提供的開發(fā)工具(如QuartusII,ISP,ISE)中完成,但許多集成的PLD開發(fā)軟件只支持VHDL /Verilog的子集,可能造成少數(shù)語法不能編譯,如果采用專用HDL工具分開執(zhí)行,效果會(huì)更好,否則這么多出售專用HDL開發(fā)工具的公司就沒有存在的理由了。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。