什么是硬件描述語言
什么是硬件描述語言
什么是硬件描述語言,你知道嗎?今天就讓學(xué)習(xí)啦小編來教下大家吧,快來看看吧,希望能讓大家有所收獲!
什么是硬件描述語言
硬件描述語言HDL是一種用形式化方法描述數(shù)字電路和系統(tǒng)的語言。利用這種語言,數(shù)字電路系統(tǒng)的設(shè)計(jì)可以從上層到下層(從抽象到具體)逐層描述自己的設(shè)計(jì)思想,用一系列分層次的模塊來表示極其復(fù)雜的數(shù)字系統(tǒng)。然后,利用電子設(shè)計(jì)自動化(EDA)工具,逐層進(jìn)行仿真驗(yàn)證,再把其中需要變?yōu)閷?shí)際電路的模塊組合,經(jīng)過自動綜合工具轉(zhuǎn)換到門級電路網(wǎng)表。接下去,再用專用集成電路ASIC或現(xiàn)場可編程門陣列FPGA自動布局布線工具,把網(wǎng)表轉(zhuǎn)換為要實(shí)現(xiàn)的具體電路布線結(jié)構(gòu)。
硬件描述語言的概述
隨著EDA技術(shù)的發(fā)展,使用硬件語言設(shè)計(jì)PLD/FPGA成為一種趨勢。目前最主要的硬件描述語言是VHDL和Verilog HDL。 VHDL發(fā)展的較早,語法嚴(yán)格,而Verilog HDL是在C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言,語法較自由。 VHDL和Verilog HDL兩者相比,VHDL的書寫規(guī)則比Verilog煩瑣一些,但verilog自由的語法也容易讓少數(shù)初學(xué)者出錯。 國外電子專業(yè)很多會在本科階段教授VHDL,在研究生階段教授verilog。從國內(nèi)來看,VHDL的參考書很多,便于查找資料,而Verilog HDL的參考書相對較少,這給學(xué)習(xí)Verilog HDL帶來一些困難。 從EDA技術(shù)的發(fā)展上看,已出現(xiàn)用于CPLD/FPGA設(shè)計(jì)的硬件C語言編譯軟件,雖然還不成熟,應(yīng)用極少,但它有可能會成為繼VHDL和Verilog之后,設(shè)計(jì)大規(guī)模CPLD/FPGA的又一種手段。硬件描述語言的結(jié)構(gòu)
硬件描述語言的優(yōu)點(diǎn)
(1)與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。
(2)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時可對設(shè)計(jì)進(jìn)行仿真模擬。
(3)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效, 高速的完成必須有多人甚至多個代發(fā)組共同并行工作才能實(shí)現(xiàn)。
(4)對于用VHDL完成的一個確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級網(wǎng)表。
(5)VHDL對設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。硬件描述語言的用途 HDL有兩種用途:系統(tǒng)仿真和硬件實(shí)現(xiàn)。 如果程序只用于仿真,那么幾乎所有的語法和編程方法都可以使用。 但如果我們的程序是用于硬件實(shí)現(xiàn)(例如:用于FPGA設(shè)計(jì)),那么我們就必須保證程序"可綜合"(程序的功能可以用硬件電路實(shí)現(xiàn))。 不可綜合的HDL語句在軟件綜合時將被忽略或者報(bào)錯。 我們應(yīng)當(dāng)牢記一點(diǎn):"所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件實(shí)現(xiàn)。
硬件描述語言開發(fā)流程
用VHDL/VerilogHD語言開發(fā)PLD/FPGA的完整流程為:
1.文本編輯:用任何文本編輯器都可以進(jìn)行,也可以用專用的HDL編輯環(huán)境。通常VHDL文件保存為.vhd文件,Verilog文件保存為.v文件
2.功能仿真:將文件調(diào)入HDL仿真軟件進(jìn)行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計(jì)可以跳過這一步,只在布線完成以后,進(jìn)行時序仿真)
3.邏輯綜合:將源文件調(diào)入邏輯綜合軟件進(jìn)行綜合,即把語言綜合成最簡的布爾表達(dá)式和信號的連接關(guān)系。邏輯綜合軟件會生成.edf(edif)的EDA工業(yè)標(biāo)準(zhǔn)文件。
4.布局布線:將.edf文件調(diào)入PLD廠家提供的軟件中進(jìn)行布線,即把設(shè)計(jì)好的邏輯安放到PLD/FPGA內(nèi)
5.時序仿真:需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗(yàn)證電路的時序。(也叫后仿真)
6.編程下載:確認(rèn)仿真無誤后,將文件下載到芯片中
硬件描述語言與原理圖輸入法的關(guān)系
HDL和傳統(tǒng)的原理圖輸入方法的關(guān)系就好比是高級語言和匯編語言的關(guān)系。HDL的可移植性好,使用方便,但效率不如原理圖;原理圖輸入的可控性好,效率高,比較直觀,但設(shè)計(jì)大規(guī)模CPLD/FPGA時顯得很煩瑣,移植性差。在真正的PLD/FPGA設(shè)計(jì)中,通常建議采用原理圖和HDL結(jié)合的方法來設(shè)計(jì),適合用原理圖的地方就用原理圖,適合用HDL的地方就用HDL,并沒有強(qiáng)制的規(guī)定。在最短的時間內(nèi),用自己最熟悉的工具設(shè)計(jì)出高效,穩(wěn)定,符合設(shè)計(jì)要求的電路才是我們的最終目的。
硬件描述語言的發(fā)展
硬件描述語言HDL的發(fā)展至今已有20多年的歷史,并成功地應(yīng)用于設(shè)計(jì)的各個階段:建模、仿真、驗(yàn)證和綜合等。到20世紀(jì)80年代,已出現(xiàn)了上百種硬件描述語言,對設(shè)計(jì)自動化曾起到了極大的促進(jìn)和推動作用。但是,這些語言一般各自面向特定的設(shè)計(jì)領(lǐng)域和層次,而且眾多的語言使用戶無所適從。因此,急需一種面向設(shè)計(jì)的多領(lǐng)域、多層次并得到普遍認(rèn)同的標(biāo)準(zhǔn)硬件描述語言。20世紀(jì)80年代后期,VHDL和Verilog HDL語言適應(yīng)了這種趨勢的要求,先后成為IEEE標(biāo)準(zhǔn)。
現(xiàn)在,隨著系統(tǒng)級FPGA以及系統(tǒng)芯片的出現(xiàn),軟硬件協(xié)調(diào)設(shè)計(jì)和系統(tǒng)設(shè)計(jì)變得越來越重要。傳統(tǒng)意義上的硬件設(shè)計(jì)越來越傾向于與系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì)結(jié)合。硬件描述語言為適應(yīng)新的情況,迅速發(fā)展,出現(xiàn)了很多新的硬件描述語言,像Superlog、SystemC、Cynlib C++等等。