版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1.1電子系統(tǒng)設(shè)計(jì)技術(shù)的發(fā)展1.2數(shù)字系統(tǒng)典型設(shè)計(jì)流程1.3HDL的發(fā)展、特點(diǎn)與應(yīng)用
1.4QuartusⅡ概述
1.5硬件描述語言的發(fā)展趨勢
1.6小結(jié)
習(xí)題11.1電子系統(tǒng)設(shè)計(jì)技術(shù)的發(fā)展
設(shè)計(jì)實(shí)現(xiàn)是指如何利用設(shè)計(jì)技術(shù)將所需的系統(tǒng)功能從概念轉(zhuǎn)變成現(xiàn)實(shí)。設(shè)計(jì)實(shí)現(xiàn)不僅要達(dá)到設(shè)計(jì)指標(biāo)的最佳化,而且還要有較高的設(shè)計(jì)速度。傳統(tǒng)的電子系統(tǒng)設(shè)計(jì)采用的是手工設(shè)計(jì)方法。手工設(shè)計(jì)方法一般是根據(jù)系統(tǒng)的要求,首先畫出系統(tǒng)的硬件流程圖,再根據(jù)功能將系統(tǒng)劃分成不同的模塊。設(shè)計(jì)過程一般從底層開始,先要選擇具體的元器件,用所選擇的元器件組成各功能模塊的邏輯電路,手工畫出一張張的電路原理圖,再根據(jù)原理圖制作印刷電路板。每個(gè)功能模塊都調(diào)試通過后,再把各個(gè)模塊連接起來進(jìn)行系統(tǒng)的調(diào)試。對(duì)整個(gè)系統(tǒng)的仿真、調(diào)試只能在完成硬件設(shè)計(jì)以后才能進(jìn)行,因此系統(tǒng)設(shè)計(jì)中的問題在調(diào)試的后期才能發(fā)現(xiàn)。如果出現(xiàn)設(shè)計(jì)中沒有考慮到的問題,就要再從底層重新設(shè)計(jì),所以設(shè)計(jì)周期一般較長。設(shè)計(jì)結(jié)果是若干張電路原理圖和信號(hào)的連接表,如果是一個(gè)大的系統(tǒng),將是一大摞圖紙,以后系統(tǒng)若出現(xiàn)問題,查找、修改起來都很麻煩。上述過程是從底層開始,或在已有的功能模塊的基礎(chǔ)上來搭建高層次的模塊直至整個(gè)系統(tǒng)的。因此這種傳統(tǒng)的電子系統(tǒng)的設(shè)計(jì)過程是一種自底向上(Bottom-Up)的設(shè)計(jì),設(shè)計(jì)過程必須從存在的基本單元模塊出發(fā),基本單元模塊必須是已經(jīng)設(shè)計(jì)成熟的標(biāo)準(zhǔn)單元模塊或其他項(xiàng)目已開發(fā)好的單元模塊。在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)中,現(xiàn)場可編程器件FPGA和CPLD的使用越來越廣泛。與此同時(shí),基于大規(guī)??删幊踢壿嬈骷碾娮釉O(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation,EDA)硬件解決方案也被廣泛采用。這使得電子電路的設(shè)計(jì)方法發(fā)生了根本性的變化,即從手工設(shè)計(jì)向電子設(shè)計(jì)自動(dòng)化的方向發(fā)展。最早的電子設(shè)計(jì)自動(dòng)化軟件僅僅是一些繪圖軟件,包括繪制電路原理圖、印刷電路板圖、集成電路芯片板圖的軟件,并能進(jìn)行一些簡單的數(shù)值計(jì)算等,隨后又出現(xiàn)了自動(dòng)布局布線工具,這類軟件被稱為第一代EDA軟件。后來又出現(xiàn)了第二代EDA軟件,可以通過硬件描述語言輸入生成設(shè)計(jì),它包括邏輯綜合、仿真等。近年來又出現(xiàn)了第三代EDA軟件,稱為電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EsDA),可以通過概念輸入(框圖、公式等)自動(dòng)生成各種設(shè)計(jì)結(jié)果,包括ASIC芯片設(shè)計(jì)結(jié)果、電路原理圖、PCB板圖以及軟件等,并且可以進(jìn)行機(jī)電一體化設(shè)計(jì)。與傳統(tǒng)的設(shè)計(jì)方法不同,現(xiàn)代電子工程師們?cè)O(shè)計(jì)系統(tǒng)的過程首先是描述系統(tǒng),然后用EDA工具在計(jì)算機(jī)上進(jìn)行系統(tǒng)級(jí)仿真,設(shè)計(jì)適合自己用的ASIC芯片,用通用和專用芯片構(gòu)成系統(tǒng),進(jìn)行功能模擬和帶時(shí)延的仿真,布PCB板,對(duì)PCB板進(jìn)行仿真,最終生產(chǎn)調(diào)試成功。這種電子系統(tǒng)的設(shè)計(jì)過程是一種自頂向下(Top-Down)的設(shè)計(jì)。當(dāng)前,自頂向下的設(shè)計(jì)流程比較流行,其理想形式如圖1-1所示。系統(tǒng)設(shè)計(jì)者將系統(tǒng)細(xì)化為多個(gè)抽象級(jí)。在系統(tǒng)級(jí),設(shè)計(jì)者以某種語言(如C語言)來描述所需系統(tǒng),稱為系統(tǒng)規(guī)范;設(shè)計(jì)者把這個(gè)規(guī)范進(jìn)一步細(xì)分,將其各部分分散到幾個(gè)通用或?qū)S锰幚砥?,產(chǎn)生各處理器的行為規(guī)范;然后,設(shè)計(jì)者再把這些行為規(guī)范細(xì)分為寄存器傳輸規(guī)范(RT規(guī)范),即對(duì)于通用處理器而言,是將行為規(guī)范轉(zhuǎn)換為匯編軟件代碼,而對(duì)于單用途處理器而言,則轉(zhuǎn)換為連接寄存器元件與狀態(tài)機(jī)的硬件;下一步,對(duì)于軟件匯編代碼則不需要進(jìn)一步細(xì)化,而對(duì)于硬件則需要進(jìn)一步將寄存器傳輸規(guī)范轉(zhuǎn)變成由布爾公式組成的邏輯規(guī)范;最后,設(shè)計(jì)者將所得規(guī)范轉(zhuǎn)換成最終實(shí)現(xiàn),包括通用處理器的機(jī)器代碼和單用途處理器的邏輯門級(jí)網(wǎng)表。圖1-1理想的自頂向下設(shè)計(jì)流程通過圖1-1我們可以看出,若想改進(jìn)設(shè)計(jì)流程以提高設(shè)計(jì)效率,可以從編譯/綜合、庫/IP以及測試/驗(yàn)證三個(gè)方面著手。當(dāng)前EDA工具的發(fā)展方向也主要著眼于這三個(gè)方面。電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)利用計(jì)算機(jī)完成電子系統(tǒng)設(shè)計(jì),是一種節(jié)省時(shí)間而又高效率的現(xiàn)代設(shè)計(jì)理念,現(xiàn)在已經(jīng)逐漸成為電子系統(tǒng)的主要設(shè)計(jì)手段。尤其是可編程器件和軟件仿真模擬方法的使用,給傳統(tǒng)的電路設(shè)計(jì)方法帶來了重大的變革,使得設(shè)計(jì)工程師們從繁雜而零亂的工作中解脫出來,而把重點(diǎn)放在電路的設(shè)計(jì)上。
EDA技術(shù)以計(jì)算機(jī)為工具,設(shè)計(jì)者只需要完成對(duì)系統(tǒng)功能的描述,就可以由計(jì)算機(jī)軟件完成數(shù)字系統(tǒng)的邏輯綜合、仿真模擬和布局布線等工作。其中模擬硬件電路在實(shí)際工作時(shí)的時(shí)序關(guān)系是相當(dāng)重要的,因?yàn)橄到y(tǒng)設(shè)計(jì)上的錯(cuò)誤通過仿真模擬波形就可以發(fā)現(xiàn),而不必等到線路板調(diào)試時(shí)才發(fā)現(xiàn)。即使在線路板調(diào)試時(shí)又發(fā)現(xiàn)新錯(cuò)誤,在外部連接線已經(jīng)固定的情況下,只要對(duì)內(nèi)部的軟件設(shè)計(jì)進(jìn)行改進(jìn),就可達(dá)到修改設(shè)計(jì)方案的目的。當(dāng)今的硬件設(shè)計(jì)方法有幾大優(yōu)點(diǎn):一是設(shè)計(jì)方法由手工設(shè)計(jì)變?yōu)樽詣?dòng)設(shè)計(jì),可以大大提高設(shè)計(jì)效率和設(shè)計(jì)質(zhì)量,縮短設(shè)計(jì)周期;二是在系統(tǒng)設(shè)計(jì)的各個(gè)過程中可分別進(jìn)行仿真,保證了設(shè)計(jì)的正確性,使得設(shè)計(jì)能夠一次成功;三是能夠根據(jù)實(shí)際需要來自行設(shè)計(jì)ASIC芯片??删幊踢壿嬈骷虴DA技術(shù)給硬件系統(tǒng)設(shè)計(jì)者提供了強(qiáng)有力的工具。如今,只要擁有一臺(tái)計(jì)算機(jī)、一套相應(yīng)的EDA軟件和空白的可編程器件芯片,在實(shí)驗(yàn)室就可以完成數(shù)字系統(tǒng)的設(shè)計(jì)與生產(chǎn)。可以說,當(dāng)今的數(shù)字系統(tǒng)設(shè)計(jì)離不開可編程器件和EDA設(shè)計(jì)工具。1.2數(shù)字系統(tǒng)典型設(shè)計(jì)流程
完整地了解利用EDA技術(shù)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)開發(fā)的流程對(duì)于正確地選擇和使用EDA軟件、優(yōu)化設(shè)計(jì)項(xiàng)目、提高設(shè)計(jì)效率十分有益。一個(gè)完整的、典型的EDA設(shè)計(jì)流程既是自頂向下設(shè)計(jì)方法的具體實(shí)施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。數(shù)字系統(tǒng)典型的設(shè)計(jì)流程如圖1-2所示。圖1-2用EDA工具設(shè)計(jì)數(shù)字系統(tǒng)的流程一般來說,利用EDA技術(shù)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),最后實(shí)現(xiàn)的目標(biāo)主要有兩種:集成芯片IC和具有特定功能的FPGA。FPGA是英文FieldProgrammableGateArray(現(xiàn)場可編程門陣列)的縮寫,它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是專用集成電路(ASIC)中集成度最高的一種。FPGA采用了邏輯單元陣列(LogicCellArray,LCA)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊(ConfigurableLogicBlock,CLB)、輸出輸入模塊(InputOutputBlock,IOB)和內(nèi)部連線(Interconnect)三個(gè)部分。用戶可對(duì)FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實(shí)現(xiàn)用戶的邏輯。它還具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,使得硬件的功能可以像軟件一樣通過編程來修改。作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,F(xiàn)PGA既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路,都可以用FPGA來實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法或是硬件描述語言自行設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。對(duì)同一片F(xiàn)PGA,不同的編程數(shù)據(jù)可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。可以說,F(xiàn)PGA芯片是小批量應(yīng)用中提高系統(tǒng)集成度和系統(tǒng)可靠性的最佳選擇之一。本書所有設(shè)計(jì)最終的實(shí)現(xiàn)目標(biāo)主要定位于FPGA,因此下面重點(diǎn)介紹FPGA的開發(fā)流程。FPGA的EDA開發(fā)流程如圖1-3所示。圖1-3FPGA的EDA開發(fā)流程從圖1-3可以看出,F(xiàn)PGA的開發(fā)流程與圖1-2所示的用EDA工具設(shè)計(jì)數(shù)字系統(tǒng)的流程基本相同,都需要設(shè)計(jì)輸入、功能仿真、邏輯綜合、布局布線(適配)、時(shí)序仿真、物理實(shí)現(xiàn)等幾個(gè)步驟。下面將分別介紹主要設(shè)計(jì)模塊的功能特點(diǎn)。
1.設(shè)計(jì)輸入在EDA軟件平臺(tái)上開發(fā)FPGA/CPLD時(shí),首先要將電路系統(tǒng)以一定的表達(dá)方式輸入計(jì)算機(jī)。通常,EDA工具的設(shè)計(jì)輸入可分為以下兩種類型:
(1)圖形輸入。圖形輸入通常包括原理圖輸入、狀態(tài)圖輸入和波形圖輸入等方法。狀態(tài)圖輸入方法就是根據(jù)電路的控制條件和不同的轉(zhuǎn)換方式,用繪圖的方法在EDA工具的狀態(tài)圖編輯器上繪出狀態(tài)圖,然后由EDA編譯器和綜合器將此狀態(tài)圖編譯、綜合成電路網(wǎng)表。波形圖輸入方法則是將待設(shè)計(jì)的電路看成是一個(gè)黑盒子,只需告訴EDA工具該黑盒子電路的輸入和輸出時(shí)序波形圖,EDA工具就可以完成黑盒子電路的設(shè)計(jì)。原理圖輸入方法是一種類似于傳統(tǒng)電子設(shè)計(jì)方法的原理圖編輯輸入方式,即在EDA軟件的圖形編輯界面上繪制能完成特定功能的電路原理圖。原理圖由邏輯器件(符號(hào))和連接線構(gòu)成,圖中的邏輯器件可以是EDA軟件庫中預(yù)制的功能模塊,如與門、非門、或門、觸發(fā)器、各種宏功能模塊,也可以是一些類似于IP的功能塊。
(2)硬件描述語言文本輸入。這種方式與傳統(tǒng)的計(jì)算機(jī)軟件語言編輯輸入基本一致,就是將使用了某種硬件描述語言(HDL)的電路設(shè)計(jì)文本,如VHDL或Verilog的源程序進(jìn)行編輯輸入。
2.綜合綜合(Synthesis)就是把設(shè)計(jì)抽象層次中的一種表述轉(zhuǎn)化成另一種表述的過程。進(jìn)一步講,綜合就是將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為由低層次的便于具體實(shí)現(xiàn)的模塊組合而成的系統(tǒng)的過程。設(shè)計(jì)過程通常從高層次的行為描述開始,以最底層的結(jié)構(gòu)描述結(jié)束,每個(gè)步驟都是一個(gè)綜合過程。這些步驟包括:
(1)從自然語言表述轉(zhuǎn)換到HDL算法表述,是自然語言綜合。
(2)從算法表述轉(zhuǎn)換到寄存器傳輸級(jí)(RegisterTransportLevel,RTL)表述,即從行為域到結(jié)構(gòu)域的綜合,是行為綜合。
(3)從RTL級(jí)表述轉(zhuǎn)換到邏輯門(包括觸發(fā)器)的表述,即邏輯綜合。
(4)從邏輯門表述轉(zhuǎn)換到版圖表述(ASIC設(shè)計(jì)),或轉(zhuǎn)換到FPGA的配置網(wǎng)表文件,可稱為版圖綜合或結(jié)構(gòu)綜合。一般地,綜合是僅對(duì)應(yīng)于HDL而言的。利用HDL綜合器對(duì)設(shè)計(jì)進(jìn)行綜合是十分重要的一步,因?yàn)檫@一綜合過程將把軟件設(shè)計(jì)的HDL描述與硬件結(jié)構(gòu)聯(lián)系起來,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟,是文字描述與硬件實(shí)現(xiàn)的一座橋梁。因此,綜合就是將電路的高級(jí)語言(如行為描述)轉(zhuǎn)換成低級(jí)的、可與FPGA/CPLD的基本結(jié)構(gòu)相映射的網(wǎng)表文件或程序的過程。當(dāng)輸入的HDL文件在EDA工具中檢測無誤后,首先面臨的是邏輯綜合,因此要求HDL源文件中的語句都是可綜合的。在綜合之后,HDL綜合器一般都可以生成一種或多種文件格式的網(wǎng)表文件,如EDIF、VHDL、Verilog等標(biāo)準(zhǔn)格式,在網(wǎng)表文件中用各自的格式描述電路的結(jié)構(gòu),如在HDL網(wǎng)表文件中采用HDL的語法,用結(jié)構(gòu)描述的風(fēng)格重新詮釋綜合后的電路結(jié)構(gòu)。整個(gè)綜合過程就是將設(shè)計(jì)者在EDA平臺(tái)上編輯輸入的HDL文本、原理圖或狀態(tài)圖描述,依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級(jí)電路甚至更底層的電路描述網(wǎng)表文件。由此可見,綜合器工作前,必須給定最后實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式對(duì)應(yīng)起來,形成相應(yīng)的映射關(guān)系。如果把綜合理解為映射過程,那么顯然這種映射不是唯一的,并且綜合的優(yōu)化也不是單純的或一個(gè)方向的。為達(dá)到速度、面積、性能的要求,往往需要對(duì)綜合加以約束,稱為綜合約束。
3.布線布局(適配)適配器也稱結(jié)構(gòu)綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件,如sof、pof格式的文件。適配所選定的目標(biāo)器件必須屬于原綜合器指定的目標(biāo)器件系列。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應(yīng)商提供,因?yàn)檫m配器的適配對(duì)象直接與器件的結(jié)構(gòu)細(xì)節(jié)相對(duì)應(yīng)。適配器的功能就是將綜合后的網(wǎng)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、優(yōu)化、布局布線操作。適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時(shí)序仿真,同時(shí)產(chǎn)生可用于編程的文件。
4.仿真仿真就是讓計(jì)算機(jī)根據(jù)一定的算法和一定的仿真庫對(duì)EDA設(shè)計(jì)進(jìn)行模擬,以驗(yàn)證設(shè)計(jì),排除錯(cuò)誤。仿真是EDA設(shè)計(jì)過程中的重要步驟。圖1-3所示的時(shí)序與功能門級(jí)仿真通常由PLD公司的EDA開發(fā)工具直接提供(當(dāng)然也可以選用第三方的專業(yè)仿真工具),它可以完成以下兩種不同級(jí)別的仿真測試:
(1)功能仿真,就是直接對(duì)HDL、原理圖描述或其他描述形式的邏輯功能進(jìn)行測試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)要求的過程。功能仿真過程不涉及任何具體器件的硬件特性,不經(jīng)歷適配階段,在設(shè)計(jì)項(xiàng)目編輯、編譯(或綜合)后即可進(jìn)入門級(jí)仿真器進(jìn)行模擬測試。直接進(jìn)行功能仿真的好處是設(shè)計(jì)耗時(shí)短,對(duì)硬件庫、綜合器等沒有任何要求。
(2)時(shí)序仿真,就是接近真實(shí)器件運(yùn)行特性的仿真,仿真文件中已包含了器件的硬件特性參數(shù),因而仿真精度高。但時(shí)序仿真的仿真文件必須來自針對(duì)具體器件的適配器。綜合后所得的EDIF等網(wǎng)表文件通常作為FPGA適配器的輸入文件,F(xiàn)PGA適配器輸出的仿真網(wǎng)表文件中包含了精確的硬件延時(shí)信息。
5.下載和硬件測試把適配后生成的下載或配置文件,通過編程器或編程電纜向FPGA或CPLD進(jìn)行下載,以便最終驗(yàn)證設(shè)計(jì)項(xiàng)目在目標(biāo)系統(tǒng)上的實(shí)際工作情況,以排除錯(cuò)誤,改進(jìn)設(shè)計(jì)。1.3HDL的發(fā)展、特點(diǎn)與應(yīng)用
1.3.1什么是HDL硬件描述語言(HDL)是EDA技術(shù)的重要組成部分,常見的HDL主要有VHDL、VerilogHDL、ABEL、AHDL、SystemVerilog和SystemC。其中VHDL、VerilogHDL在現(xiàn)在的EDA設(shè)計(jì)中使用最多,也獲得了幾乎所有主流EDA工具的支持,而SystemVerilog和SystemC還處于完善過程中。下面重點(diǎn)介紹VerilogHDL和VHDL的區(qū)別與聯(lián)系。
1.?VerilogHDL
VerilogHDL是一種硬件描述語言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。
VerilogHDL語言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語言。此外,VerilogHDL語言提供了編程語言接口,通過該接口可以在模擬、驗(yàn)證期間從事外部訪問設(shè)計(jì),包括模擬的具體控制和運(yùn)行。
VerilogHDL語言不僅定義了語法,而且對(duì)每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義。因此,用這種語言編寫的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。
VerilogHDL語言從C編程語言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL語言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來說已經(jīng)足夠了。當(dāng)然,完整的硬件描述語言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。
VerilogHDL語言最初是1983年由GatewayDesignAutomation公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時(shí)它只是一種專用語言。由于該設(shè)計(jì)公司的模擬、仿真器產(chǎn)品被廣泛使用,VerilogHDL作為一種便于使用且實(shí)用的語言逐漸為眾多設(shè)計(jì)者所接受。目前,VerilogHDL已經(jīng)是公認(rèn)的IEEE標(biāo)準(zhǔn)。VerilogHDL的第一個(gè)標(biāo)準(zhǔn)(IEEEStd1364-1995)是在1995年被批準(zhǔn)的。最新的IEEEStd1364-2001標(biāo)準(zhǔn)與原標(biāo)準(zhǔn)相比有了顯著的改進(jìn)。
2.?VHDL
VHDL的英文全名是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage,它于1983年由美國國防部(DOD)發(fā)起創(chuàng)建,由IEEE(theInstituteofElectricalandElectronicsEngineers)進(jìn)一步發(fā)展,并在1987年作為“IEEEstd1076”發(fā)布。從此,VHDL成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本(IEEEStd1076)之后,各EDA公司相繼推出了自己的VHDL開發(fā)環(huán)境,或宣布自己的設(shè)計(jì)工具支持VHDL。?此后,VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛應(yīng)用,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語言。
VHDL作為一個(gè)規(guī)范語言和建模語言,隨著它的標(biāo)準(zhǔn)化,出現(xiàn)了一些支持該語言的行為仿真器。創(chuàng)建VHDL的最初目標(biāo)是用于標(biāo)準(zhǔn)文檔的建立和電路功能模擬,其基本想法是在高層次上描述系統(tǒng)和元件的行為。但到了20世紀(jì)90年代初,VHDL不僅可以作為系統(tǒng)模擬的建模工具,而且可以作為電路系統(tǒng)的設(shè)計(jì)工具,可以利用軟件工具將VHDL源碼自動(dòng)地轉(zhuǎn)化為以文本方式表達(dá)的基本邏輯元件連接圖,即網(wǎng)表文件。這種方法對(duì)于電路自動(dòng)設(shè)計(jì)顯然是一個(gè)極大的推進(jìn)。很快,電子設(shè)計(jì)領(lǐng)域出現(xiàn)了第一個(gè)軟件設(shè)計(jì)工具,即VHDL邏輯綜合器,它可以標(biāo)準(zhǔn)地將VHDL的部分語句描述轉(zhuǎn)化為具體電路實(shí)現(xiàn)的網(wǎng)表文件。
VHDL語言具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡化硬件設(shè)計(jì)任務(wù),提高設(shè)計(jì)效率和可靠性。VHDL具有與具體硬件電路無關(guān)和與設(shè)計(jì)平臺(tái)無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結(jié)構(gòu)化設(shè)計(jì)方面表現(xiàn)出了強(qiáng)大的生命力和應(yīng)用潛力。因此,VHDL在支持各種模式的設(shè)計(jì)方法,如自頂向下與自底向上或混合方法方面,以及在面對(duì)當(dāng)今許多電子產(chǎn)品生命周期縮短,需要多次重新設(shè)計(jì)以融入最新技術(shù)、改變工藝等方面都表現(xiàn)出了良好的適應(yīng)性。用VHDL進(jìn)行電子系統(tǒng)設(shè)計(jì)的一個(gè)很大的優(yōu)點(diǎn)是設(shè)計(jì)者可以專心致力于其功能的實(shí)現(xiàn),而不需要對(duì)不影響功能的、與工藝有關(guān)的因素花費(fèi)過多的時(shí)間和精力。
1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL的內(nèi)容,公布了新版本的VHDL,即IEEEStd1076-1993版本。最新的VHDL標(biāo)準(zhǔn)版本是IEEEStd1076-2002。
3.?VerilogHDL和VHDL的區(qū)別與聯(lián)系現(xiàn)在,VerilogHDL和VHDL作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到了眾多EDA公司的支持。在電子工程領(lǐng)域,它們已成為事實(shí)上的通用硬件描述語言。這兩種語言均可在不同的抽象層次對(duì)電路進(jìn)行描述。圖1-4中將抽象層次分為五個(gè)層次,分別為系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)、邏輯門級(jí)和開關(guān)電路級(jí),并在這五個(gè)層次上比較了兩者的建模能力。圖1-4VerilogHDL與VHDL建模能力的比較除此之外,兩種語言還有以下區(qū)別:
VHDL:●比VerilogHDL早幾年成為IEEE標(biāo)準(zhǔn);●語法/結(jié)構(gòu)比較嚴(yán)格,因而編寫出的模塊風(fēng)格比較清晰;●比較適合由較多的設(shè)計(jì)人員合作完成特大型項(xiàng)目(100萬門以上)。
VerilogHDL:●獲得了較多的第三方工具的支持;●語法結(jié)構(gòu)比VHDL簡單;●學(xué)習(xí)起來比VHDL容易;●測試激勵(lì)模塊容易編寫。
對(duì)于初學(xué)者或者中小數(shù)字系統(tǒng)設(shè)計(jì)工程師來說,建議這兩種語言都學(xué)習(xí),并將其中一種語言作為自己設(shè)計(jì)數(shù)字系統(tǒng)的語言,另一種語言僅僅用于借鑒學(xué)習(xí)其他設(shè)計(jì)時(shí)使用。這樣做主要基于以下兩點(diǎn)認(rèn)識(shí):第一,VerilogHDL和VHDL的建模思想和建模方法基本上是一致的,最主要的區(qū)別是在語言結(jié)構(gòu)及一些語法細(xì)節(jié)上,只要掌握了這兩種語言的語法,將一種語言的數(shù)字系統(tǒng)設(shè)計(jì)轉(zhuǎn)化為另一種語言是非常簡單的事情;第二,目前采用這兩種語言的設(shè)計(jì)項(xiàng)目都非常多,項(xiàng)目比例持平,掌握了兩種語言后可大大增加自己設(shè)計(jì)項(xiàng)目時(shí)可參考的資料數(shù),加快項(xiàng)目進(jìn)度。1.3.2VerilogHDL的特點(diǎn)下面列出了VerilogHDL的主要特點(diǎn):●設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí)?!窨刹捎枚喾N不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式——使用過程語句建模;數(shù)據(jù)流方式——使用連續(xù)賦值語句建模;結(jié)構(gòu)化方式——使用門和模塊實(shí)例語句描述建模。VerilogHDL的混合方式建模能力是指在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模?!耖_關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos和nmos等被內(nèi)置在語言中,能夠使用內(nèi)置開關(guān)級(jí)原語在開關(guān)級(jí)對(duì)設(shè)計(jì)完整建模?!窕具壿嬮T,例如and、or和not等都內(nèi)置在語言中,能夠使用內(nèi)置門級(jí)原語在門級(jí)對(duì)設(shè)計(jì)完整建模?!裼脩糇远x原語(UDP)創(chuàng)建靈活。用戶定義的原語既可以是組合邏輯原語,也可以是時(shí)序邏輯原語?!?VerilogHDL還具有內(nèi)置邏輯函數(shù),例如&(按位與)和|(按位或)。使用這些內(nèi)置邏輯函數(shù)可以在數(shù)據(jù)流級(jí)對(duì)設(shè)計(jì)完整建模?!駥?duì)高級(jí)編程語言結(jié)構(gòu),例如條件語句、選擇語句和循環(huán)語句,VerilogHDL中都可以使用??墒褂眠@些高級(jí)語言結(jié)構(gòu)在行為級(jí)對(duì)設(shè)計(jì)完整建模。●能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。●設(shè)計(jì)的規(guī)??梢允侨我獾?。VerilogHDL不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制?!?VerilogHDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示元件間的物理連線,而寄存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件?!窨梢燥@式地對(duì)并發(fā)和定時(shí)進(jìn)行建模。VerilogHDL提供顯式語言結(jié)構(gòu),指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查?!裢徽Z言可用于生成模擬激勵(lì)和指定測試的驗(yàn)證約束條件,例如輸入值的指定?!?VerilogHDL能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值的比較,若不匹配,則打印報(bào)告消息?!裉峁?qiáng)有力的文件讀寫能力?!?VerilogHDL語言的描述能力能夠通過使用編程語言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問Verilog
模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合?!?VerilogHDL在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果。例如,事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒有定義。1.3.3VerilogHDL的功能
VerilogHDL可以在各種抽象層次上描述數(shù)字電路,可以測試各種層次數(shù)字電路的行為,可以設(shè)計(jì)出正確有效的復(fù)雜電路結(jié)構(gòu),因此VerilogHDL功能非常強(qiáng)大。使用VerilogHDL設(shè)計(jì)數(shù)字系統(tǒng)是一種趨勢,大到復(fù)雜的CPU,小到一些簡單的邏輯門,而數(shù)字化是技術(shù)發(fā)展的趨勢,因此未來VerilogHDL的應(yīng)用領(lǐng)域會(huì)越來越廣。在設(shè)計(jì)中小型數(shù)字系統(tǒng)時(shí),采用VerilogHDL明顯優(yōu)于采用其他硬件描述語言。另外,VerilogHDL的語言現(xiàn)象非常類似于C語言,非常靈活,易學(xué)易用,因此許多大型公司都采用VerilogHDL作為數(shù)字系統(tǒng)設(shè)計(jì)的首選語言。另外,VerilogHDL帶給我們的更重要的是編程思想,這點(diǎn)很重要。如果將來工作中用到其他語言,則在VerilogHDL語言的基礎(chǔ)上再學(xué)習(xí)其他硬件描述語言就會(huì)事半功倍。1.4QuartusⅡ概述
本書給出的示例和實(shí)驗(yàn)都是基于QuartusⅡ的,其應(yīng)用方法和設(shè)計(jì)流程對(duì)于其他流行EDA工具的使用具有一定的典型性和普遍性,所以在此對(duì)QuartusⅡ作一些介紹。
QuartusⅡ是Altera提供的FPGA/CPLD集成開發(fā)環(huán)境。Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusⅡ在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+plusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在QuartusⅡ上可以完成本章1.2節(jié)所述的整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、綜合、適配和器件編程。
Altera的QuartusⅡ設(shè)計(jì)工具完全支持VHDL和VerilogHDL,其內(nèi)部嵌有VHDL、VerilogHDL邏輯綜合器。QuartusⅡ也可以利用第三方的綜合工具,如LeonardoSpectrum、SynplifyPro、FPGACompilerⅡ,并能直接調(diào)用這些工具。同樣,Quartus
Ⅱ具備仿真功能,同時(shí)也支持第三方的仿真工具,如ModelSim、NCSim等。
QuartusⅡ包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis&Synthesis)、適配器(Fitter)、裝配器(Assembler)、時(shí)序分析器(TimingAnalyzer)、設(shè)計(jì)輔助模塊(DesignAssistant)、EDA網(wǎng)表文件生成器(EDANetlistWriter)、編輯數(shù)據(jù)接口(CompilerDatabaseInterface)等??梢酝ㄟ^選擇StartCompilation來運(yùn)行所有的編譯器模塊,也可以通過選擇Start單獨(dú)運(yùn)行各個(gè)模塊。還可以通過選擇CompilerTool(Tools菜單),在CompilerTool窗口中運(yùn)行該模塊來啟動(dòng)編譯器模塊。在CompilerTool窗口中,可以打開該模塊的設(shè)置文件或報(bào)告文件,或打開其他相關(guān)窗口。此外,QuartusⅡ還包含許多十分有用的LPM(LibraryofParameterizedModules)宏功能模塊,它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,也可與QuartusⅡ普通設(shè)計(jì)文件一起使用。Altera提供的LPM均基于Altera器件的結(jié)構(gòu)作了優(yōu)化設(shè)計(jì)。在許多實(shí)際情況中,只有使用了宏功能模塊才可以使用一些Altera特定器件的硬件功能,例如各類片上存儲(chǔ)器、PLL等。圖1-5中,上排是QuartusⅡ編譯設(shè)計(jì)主控界面,它顯示了QuartusⅡ自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編(裝配)、時(shí)序參數(shù)提取以及編程下載等幾個(gè)步驟。圖1-5中下排的流程框圖是與上面的QuartusⅡ設(shè)計(jì)流程相對(duì)應(yīng)的標(biāo)準(zhǔn)FPGA的EDA開發(fā)流程。
QuartusⅡ支持層次化設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊(元件)進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計(jì)的問題。在設(shè)計(jì)輸入之后,QuartusⅡ的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。可以使用QuartusⅡ帶有的RTLViewer觀察綜合后的RTL圖。圖1-5QuartusⅡ設(shè)計(jì)流程1.5硬件描述語言的發(fā)展趨勢
數(shù)字電路的速度和復(fù)雜性正在迅速地增長,這就要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44491.1-2024地理信息數(shù)字?jǐn)?shù)據(jù)和元數(shù)據(jù)保存第1部分:基礎(chǔ)
- 標(biāo)準(zhǔn)房地產(chǎn)買賣居間合同文本
- 延遲支付合同范本-合同范本
- 工廠合并協(xié)議書
- 2024年知識(shí)產(chǎn)權(quán)共享承諾協(xié)議書
- 家政工合同協(xié)議書
- 個(gè)人融資協(xié)議書范本一
- 標(biāo)準(zhǔn)產(chǎn)品銷售合同
- 建筑施工合同書的內(nèi)容詳解
- 年度銷售代理合同樣本
- 系統(tǒng)更換可行性方案
- 煙花爆竹經(jīng)營與使用的消防安全規(guī)范
- 頭療手法培訓(xùn)課件
- 班級(jí)中的規(guī)訓(xùn)與懲罰基于班級(jí)要素的社會(huì)學(xué)分析
- 樹消防意識(shí) 創(chuàng)平安校園課件
- 砂石資源專項(xiàng)整治工作措施
- 醫(yī)院食堂經(jīng)營方案寫
- 鍋爐煤粉細(xì)度
- 《防治校園霸凌》課件
- 小學(xué)各年級(jí)小學(xué)一年級(jí)提高思維能力的方法主題班會(huì)
- SOAP病歷冠心病介紹
評(píng)論
0/150
提交評(píng)論