




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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硬件描述語(yǔ)言的發(fā)展趨勢(shì)
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)的要求,首先畫(huà)出系統(tǒng)的硬件流程圖,再根據(jù)功能將系統(tǒng)劃分成不同的模塊。設(shè)計(jì)過(guò)程一般從底層開(kāi)始,先要選擇具體的元器件,用所選擇的元器件組成各功能模塊的邏輯電路,手工畫(huà)出一張張的電路原理圖,再根據(jù)原理圖制作印刷電路板。每個(gè)功能模塊都調(diào)試通過(guò)后,再把各個(gè)模塊連接起來(lái)進(jìn)行系統(tǒng)的調(diào)試。對(duì)整個(gè)系統(tǒng)的仿真、調(diào)試只能在完成硬件設(shè)計(jì)以后才能進(jìn)行,因此系統(tǒng)設(shè)計(jì)中的問(wèn)題在調(diào)試的后期才能發(fā)現(xiàn)。如果出現(xiàn)設(shè)計(jì)中沒(méi)有考慮到的問(wèn)題,就要再?gòu)牡讓又匦略O(shè)計(jì),所以設(shè)計(jì)周期一般較長(zhǎng)。設(shè)計(jì)結(jié)果是若干張電路原理圖和信號(hào)的連接表,如果是一個(gè)大的系統(tǒng),將是一大摞圖紙,以后系統(tǒng)若出現(xiàn)問(wèn)題,查找、修改起來(lái)都很麻煩。上述過(guò)程是從底層開(kāi)始,或在已有的功能模塊的基礎(chǔ)上來(lái)搭建高層次的模塊直至整個(gè)系統(tǒng)的。因此這種傳統(tǒng)的電子系統(tǒng)的設(shè)計(jì)過(guò)程是一種自底向上(Bottom-Up)的設(shè)計(jì),設(shè)計(jì)過(guò)程必須從存在的基本單元模塊出發(fā),基本單元模塊必須是已經(jīng)設(shè)計(jì)成熟的標(biāo)準(zhǔn)單元模塊或其他項(xiàng)目已開(kāi)發(fā)好的單元模塊。在現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)中,現(xiàn)場(chǎng)可編程器件FPGA和CPLD的使用越來(lái)越廣泛。與此同時(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)行一些簡(jiǎn)單的數(shù)值計(jì)算等,隨后又出現(xiàn)了自動(dòng)布局布線工具,這類(lèi)軟件被稱為第一代EDA軟件。后來(lái)又出現(xiàn)了第二代EDA軟件,可以通過(guò)硬件描述語(yǔ)言輸入生成設(shè)計(jì),它包括邏輯綜合、仿真等。近年來(lái)又出現(xiàn)了第三代EDA軟件,稱為電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EsDA),可以通過(guò)概念輸入(框圖、公式等)自動(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)的過(guò)程首先是描述系統(tǒng),然后用EDA工具在計(jì)算機(jī)上進(jìn)行系統(tǒng)級(jí)仿真,設(shè)計(jì)適合自己用的ASIC芯片,用通用和專(zhuān)用芯片構(gòu)成系統(tǒng),進(jìn)行功能模擬和帶時(shí)延的仿真,布PCB板,對(duì)PCB板進(jìn)行仿真,最終生產(chǎn)調(diào)試成功。這種電子系統(tǒng)的設(shè)計(jì)過(guò)程是一種自頂向下(Top-Down)的設(shè)計(jì)。當(dāng)前,自頂向下的設(shè)計(jì)流程比較流行,其理想形式如圖1-1所示。系統(tǒng)設(shè)計(jì)者將系統(tǒng)細(xì)化為多個(gè)抽象級(jí)。在系統(tǒng)級(jí),設(shè)計(jì)者以某種語(yǔ)言(如C語(yǔ)言)來(lái)描述所需系統(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ī)器代碼和單用途處理器的邏輯門(mén)級(jí)網(wǎng)表。圖1-1理想的自頂向下設(shè)計(jì)流程通過(guò)圖1-1我們可以看出,若想改進(jìn)設(shè)計(jì)流程以提高設(shè)計(jì)效率,可以從編譯/綜合、庫(kù)/IP以及測(cè)試/驗(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ì)方法帶來(lái)了重大的變革,使得設(shè)計(jì)工程師們從繁雜而零亂的工作中解脫出來(lái),而把重點(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ò)誤通過(guò)仿真模擬波形就可以發(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è)過(guò)程中可分別進(jìn)行仿真,保證了設(shè)計(jì)的正確性,使得設(shè)計(jì)能夠一次成功;三是能夠根據(jù)實(shí)際需要來(lái)自行設(shè)計(jì)ASIC芯片。可編程邏輯器件和EDA技術(shù)給硬件系統(tǒng)設(shè)計(jì)者提供了強(qiáng)有力的工具。如今,只要擁有一臺(tái)計(jì)算機(jī)、一套相應(yīng)的EDA軟件和空白的可編程器件芯片,在實(shí)驗(yàn)室就可以完成數(shù)字系統(tǒng)的設(shè)計(jì)與生產(chǎn)。可以說(shuō),當(dāng)今的數(shù)字系統(tǒng)設(shè)計(jì)離不開(kāi)可編程器件和EDA設(shè)計(jì)工具。1.2數(shù)字系統(tǒng)典型設(shè)計(jì)流程
完整地了解利用EDA技術(shù)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)開(kāi)發(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)的流程一般來(lái)說(shuō),利用EDA技術(shù)進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì),最后實(shí)現(xiàn)的目標(biāo)主要有兩種:集成芯片IC和具有特定功能的FPGA。FPGA是英文FieldProgrammableGateArray(現(xiàn)場(chǎng)可編程門(mén)陣列)的縮寫(xiě),它是在PAL、GAL、PLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,是專(zhuā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)的特性,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改。作為專(zhuān)用集成電路(ASIC)領(lǐng)域中的一種半定制電路,F(xiàn)PGA既解決了定制電路的不足,又克服了原有可編程器件門(mén)電路數(shù)有限的缺點(diǎn)。FPGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路,都可以用FPGA來(lái)實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入法或是硬件描述語(yǔ)言自行設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。在PCB完成以后,還可以利用FPGA的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來(lái)開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。對(duì)同一片F(xiàn)PGA,不同的編程數(shù)據(jù)可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活??梢哉f(shuō),F(xiàn)PGA芯片是小批量應(yīng)用中提高系統(tǒng)集成度和系統(tǒng)可靠性的最佳選擇之一。本書(shū)所有設(shè)計(jì)最終的實(shí)現(xiàn)目標(biāo)主要定位于FPGA,因此下面重點(diǎn)介紹FPGA的開(kāi)發(fā)流程。FPGA的EDA開(kāi)發(fā)流程如圖1-3所示。圖1-3FPGA的EDA開(kāi)發(fā)流程從圖1-3可以看出,F(xiàn)PGA的開(kāi)發(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)上開(kāi)發(fā)FPGA/CPLD時(shí),首先要將電路系統(tǒng)以一定的表達(dá)方式輸入計(jì)算機(jī)。通常,EDA工具的設(shè)計(jì)輸入可分為以下兩種類(lèi)型:
(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ì)。原理圖輸入方法是一種類(lèi)似于傳統(tǒng)電子設(shè)計(jì)方法的原理圖編輯輸入方式,即在EDA軟件的圖形編輯界面上繪制能完成特定功能的電路原理圖。原理圖由邏輯器件(符號(hào))和連接線構(gòu)成,圖中的邏輯器件可以是EDA軟件庫(kù)中預(yù)制的功能模塊,如與門(mén)、非門(mén)、或門(mén)、觸發(fā)器、各種宏功能模塊,也可以是一些類(lèi)似于IP的功能塊。
(2)硬件描述語(yǔ)言文本輸入。這種方式與傳統(tǒng)的計(jì)算機(jī)軟件語(yǔ)言編輯輸入基本一致,就是將使用了某種硬件描述語(yǔ)言(HDL)的電路設(shè)計(jì)文本,如VHDL或Verilog的源程序進(jìn)行編輯輸入。
2.綜合綜合(Synthesis)就是把設(shè)計(jì)抽象層次中的一種表述轉(zhuǎn)化成另一種表述的過(guò)程。進(jìn)一步講,綜合就是將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為由低層次的便于具體實(shí)現(xiàn)的模塊組合而成的系統(tǒng)的過(guò)程。設(shè)計(jì)過(guò)程通常從高層次的行為描述開(kāi)始,以最底層的結(jié)構(gòu)描述結(jié)束,每個(gè)步驟都是一個(gè)綜合過(guò)程。這些步驟包括:
(1)從自然語(yǔ)言表述轉(zhuǎn)換到HDL算法表述,是自然語(yǔ)言綜合。
(2)從算法表述轉(zhuǎn)換到寄存器傳輸級(jí)(RegisterTransportLevel,RTL)表述,即從行為域到結(jié)構(gòu)域的綜合,是行為綜合。
(3)從RTL級(jí)表述轉(zhuǎn)換到邏輯門(mén)(包括觸發(fā)器)的表述,即邏輯綜合。
(4)從邏輯門(mén)表述轉(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)檫@一綜合過(guò)程將把軟件設(shè)計(jì)的HDL描述與硬件結(jié)構(gòu)聯(lián)系起來(lái),是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟,是文字描述與硬件實(shí)現(xiàn)的一座橋梁。因此,綜合就是將電路的高級(jí)語(yǔ)言(如行為描述)轉(zhuǎn)換成低級(jí)的、可與FPGA/CPLD的基本結(jié)構(gòu)相映射的網(wǎng)表文件或程序的過(guò)程。當(dāng)輸入的HDL文件在EDA工具中檢測(cè)無(wú)誤后,首先面臨的是邏輯綜合,因此要求HDL源文件中的語(yǔ)句都是可綜合的。在綜合之后,HDL綜合器一般都可以生成一種或多種文件格式的網(wǎng)表文件,如EDIF、VHDL、Verilog等標(biāo)準(zhǔn)格式,在網(wǎng)表文件中用各自的格式描述電路的結(jié)構(gòu),如在HDL網(wǎng)表文件中采用HDL的語(yǔ)法,用結(jié)構(gòu)描述的風(fēng)格重新詮釋綜合后的電路結(jié)構(gòu)。整個(gè)綜合過(guò)程就是將設(shè)計(jì)者在EDA平臺(tái)上編輯輸入的HDL文本、原理圖或狀態(tài)圖描述,依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門(mén)級(jí)電路甚至更底層的電路描述網(wǎng)表文件。由此可見(jiàn),綜合器工作前,必須給定最后實(shí)現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式對(duì)應(yīng)起來(lái),形成相應(yīng)的映射關(guān)系。如果把綜合理解為映射過(guò)程,那么顯然這種映射不是唯一的,并且綜合的優(yōu)化也不是單純的或一個(gè)方向的。為達(dá)到速度、面積、性能的要求,往往需要對(duì)綜合加以約束,稱為綜合約束。
3.布線布局(適配)適配器也稱結(jié)構(gòu)綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件,如sof、pof格式的文件。適配所選定的目標(biāo)器件必須屬于原綜合器指定的目標(biāo)器件系列。通常,EDA軟件中的綜合器可由專(zhuān)業(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ù)一定的算法和一定的仿真庫(kù)對(duì)EDA設(shè)計(jì)進(jìn)行模擬,以驗(yàn)證設(shè)計(jì),排除錯(cuò)誤。仿真是EDA設(shè)計(jì)過(guò)程中的重要步驟。圖1-3所示的時(shí)序與功能門(mén)級(jí)仿真通常由PLD公司的EDA開(kāi)發(fā)工具直接提供(當(dāng)然也可以選用第三方的專(zhuān)業(yè)仿真工具),它可以完成以下兩種不同級(jí)別的仿真測(cè)試:
(1)功能仿真,就是直接對(duì)HDL、原理圖描述或其他描述形式的邏輯功能進(jìn)行測(cè)試模擬,以了解其實(shí)現(xiàn)的功能是否滿足原設(shè)計(jì)要求的過(guò)程。功能仿真過(guò)程不涉及任何具體器件的硬件特性,不經(jīng)歷適配階段,在設(shè)計(jì)項(xiàng)目編輯、編譯(或綜合)后即可進(jìn)入門(mén)級(jí)仿真器進(jìn)行模擬測(cè)試。直接進(jìn)行功能仿真的好處是設(shè)計(jì)耗時(shí)短,對(duì)硬件庫(kù)、綜合器等沒(méi)有任何要求。
(2)時(shí)序仿真,就是接近真實(shí)器件運(yùn)行特性的仿真,仿真文件中已包含了器件的硬件特性參數(shù),因而仿真精度高。但時(shí)序仿真的仿真文件必須來(lái)自針對(duì)具體器件的適配器。綜合后所得的EDIF等網(wǎng)表文件通常作為FPGA適配器的輸入文件,F(xiàn)PGA適配器輸出的仿真網(wǎng)表文件中包含了精確的硬件延時(shí)信息。
5.下載和硬件測(cè)試把適配后生成的下載或配置文件,通過(guò)編程器或編程電纜向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硬件描述語(yǔ)言(HDL)是EDA技術(shù)的重要組成部分,常見(jiàn)的HDL主要有VHDL、VerilogHDL、ABEL、AHDL、SystemVerilog和SystemC。其中VHDL、VerilogHDL在現(xiàn)在的EDA設(shè)計(jì)中使用最多,也獲得了幾乎所有主流EDA工具的支持,而SystemVerilog和SystemC還處于完善過(guò)程中。下面重點(diǎn)介紹VerilogHDL和VHDL的區(qū)別與聯(lián)系。
1.?VerilogHDL
VerilogHDL是一種硬件描述語(yǔ)言,用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門(mén)和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。
VerilogHDL語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語(yǔ)言。此外,VerilogHDL語(yǔ)言提供了編程語(yǔ)言接口,通過(guò)該接口可以在模擬、驗(yàn)證期間從事外部訪問(wèn)設(shè)計(jì),包括模擬的具體控制和運(yùn)行。
VerilogHDL語(yǔ)言不僅定義了語(yǔ)法,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的模擬、仿真語(yǔ)義。因此,用這種語(yǔ)言編寫(xiě)的模型能夠使用Verilog仿真器進(jìn)行驗(yàn)證。
VerilogHDL語(yǔ)言從C編程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu)。VerilogHDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)已經(jīng)足夠了。當(dāng)然,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。
VerilogHDL語(yǔ)言最初是1983年由GatewayDesignAutomation公司為其模擬器產(chǎn)品開(kāi)發(fā)的硬件建模語(yǔ)言。那時(shí)它只是一種專(zhuān)用語(yǔ)言。由于該設(shè)計(jì)公司的模擬、仿真器產(chǎn)品被廣泛使用,VerilogHDL作為一種便于使用且實(shí)用的語(yǔ)言逐漸為眾多設(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年由美國(guó)國(guó)防部(DOD)發(fā)起創(chuàng)建,由IEEE(theInstituteofElectricalandElectronicsEngineers)進(jìn)一步發(fā)展,并在1987年作為“IEEEstd1076”發(fā)布。從此,VHDL成為硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本(IEEEStd1076)之后,各EDA公司相繼推出了自己的VHDL開(kāi)發(fā)環(huán)境,或宣布自己的設(shè)計(jì)工具支持VHDL。?此后,VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛應(yīng)用,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語(yǔ)言。
VHDL作為一個(gè)規(guī)范語(yǔ)言和建模語(yǔ)言,隨著它的標(biāo)準(zhǔn)化,出現(xiàn)了一些支持該語(yǔ)言的行為仿真器。創(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的部分語(yǔ)句描述轉(zhuǎn)化為具體電路實(shí)現(xiàn)的網(wǎng)表文件。
VHDL語(yǔ)言具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化硬件設(shè)計(jì)任務(wù),提高設(shè)計(jì)效率和可靠性。VHDL具有與具體硬件電路無(wú)關(guān)和與設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語(yǔ)言易讀性和層次化、結(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ì)者可以專(zhuān)心致力于其功能的實(shí)現(xiàn),而不需要對(duì)不影響功能的、與工藝有關(guān)的因素花費(fèi)過(guò)多的時(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)硬件描述語(yǔ)言,得到了眾多EDA公司的支持。在電子工程領(lǐng)域,它們已成為事實(shí)上的通用硬件描述語(yǔ)言。這兩種語(yǔ)言均可在不同的抽象層次對(duì)電路進(jìn)行描述。圖1-4中將抽象層次分為五個(gè)層次,分別為系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)、邏輯門(mén)級(jí)和開(kāi)關(guān)電路級(jí),并在這五個(gè)層次上比較了兩者的建模能力。圖1-4VerilogHDL與VHDL建模能力的比較除此之外,兩種語(yǔ)言還有以下區(qū)別:
VHDL:●比VerilogHDL早幾年成為IEEE標(biāo)準(zhǔn);●語(yǔ)法/結(jié)構(gòu)比較嚴(yán)格,因而編寫(xiě)出的模塊風(fēng)格比較清晰;●比較適合由較多的設(shè)計(jì)人員合作完成特大型項(xiàng)目(100萬(wàn)門(mén)以上)。
VerilogHDL:●獲得了較多的第三方工具的支持;●語(yǔ)法結(jié)構(gòu)比VHDL簡(jiǎn)單;●學(xué)習(xí)起來(lái)比VHDL容易;●測(cè)試激勵(lì)模塊容易編寫(xiě)。
對(duì)于初學(xué)者或者中小數(shù)字系統(tǒng)設(shè)計(jì)工程師來(lái)說(shuō),建議這兩種語(yǔ)言都學(xué)習(xí),并將其中一種語(yǔ)言作為自己設(shè)計(jì)數(shù)字系統(tǒng)的語(yǔ)言,另一種語(yǔ)言僅僅用于借鑒學(xué)習(xí)其他設(shè)計(jì)時(shí)使用。這樣做主要基于以下兩點(diǎn)認(rèn)識(shí):第一,VerilogHDL和VHDL的建模思想和建模方法基本上是一致的,最主要的區(qū)別是在語(yǔ)言結(jié)構(gòu)及一些語(yǔ)法細(xì)節(jié)上,只要掌握了這兩種語(yǔ)言的語(yǔ)法,將一種語(yǔ)言的數(shù)字系統(tǒng)設(shè)計(jì)轉(zhuǎn)化為另一種語(yǔ)言是非常簡(jiǎn)單的事情;第二,目前采用這兩種語(yǔ)言的設(shè)計(jì)項(xiàng)目都非常多,項(xiàng)目比例持平,掌握了兩種語(yǔ)言后可大大增加自己設(shè)計(jì)項(xiàng)目時(shí)可參考的資料數(shù),加快項(xiàng)目進(jìn)度。1.3.2VerilogHDL的特點(diǎn)下面列出了VerilogHDL的主要特點(diǎn):●設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開(kāi)關(guān)級(jí)、門(mén)級(jí)、寄存器傳送級(jí)(RTL)到算法級(jí)?!窨刹捎枚喾N不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式——使用過(guò)程語(yǔ)句建模;數(shù)據(jù)流方式——使用連續(xù)賦值語(yǔ)句建模;結(jié)構(gòu)化方式——使用門(mén)和模塊實(shí)例語(yǔ)句描述建模。VerilogHDL的混合方式建模能力是指在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模?!耖_(kāi)關(guān)級(jí)基本結(jié)構(gòu)模型,例如pmos和nmos等被內(nèi)置在語(yǔ)言中,能夠使用內(nèi)置開(kāi)關(guān)級(jí)原語(yǔ)在開(kāi)關(guān)級(jí)對(duì)設(shè)計(jì)完整建模。●基本邏輯門(mén),例如and、or和not等都內(nèi)置在語(yǔ)言中,能夠使用內(nèi)置門(mén)級(jí)原語(yǔ)在門(mén)級(jí)對(duì)設(shè)計(jì)完整建模。●用戶自定義原語(yǔ)(UDP)創(chuàng)建靈活。用戶定義的原語(yǔ)既可以是組合邏輯原語(yǔ),也可以是時(shí)序邏輯原語(yǔ)?!?VerilogHDL還具有內(nèi)置邏輯函數(shù),例如&(按位與)和|(按位或)。使用這些內(nèi)置邏輯函數(shù)可以在數(shù)據(jù)流級(jí)對(duì)設(shè)計(jì)完整建模?!駥?duì)高級(jí)編程語(yǔ)言結(jié)構(gòu),例如條件語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句,VerilogHDL中都可以使用??墒褂眠@些高級(jí)語(yǔ)言結(jié)構(gòu)在行為級(jí)對(duì)設(shè)計(jì)完整建模。●能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次?!裨O(shè)計(jì)的規(guī)??梢允侨我獾?。VerilogHDL不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制。●?VerilogHDL中有兩類(lèi)數(shù)據(jù)類(lèi)型:線網(wǎng)數(shù)據(jù)類(lèi)型和寄存器數(shù)據(jù)類(lèi)型。線網(wǎng)類(lèi)型表示元件間的物理連線,而寄存器類(lèi)型表示抽象的數(shù)據(jù)存儲(chǔ)元件?!窨梢燥@式地對(duì)并發(fā)和定時(shí)進(jìn)行建模。VerilogHDL提供顯式語(yǔ)言結(jié)構(gòu),指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。●同一語(yǔ)言可用于生成模擬激勵(lì)和指定測(cè)試的驗(yàn)證約束條件,例如輸入值的指定?!?VerilogHDL能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過(guò)程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值的比較,若不匹配,則打印報(bào)告消息?!裉峁?qiáng)有力的文件讀寫(xiě)能力?!?VerilogHDL語(yǔ)言的描述能力能夠通過(guò)使用編程語(yǔ)言接口(PLI)機(jī)制進(jìn)一步擴(kuò)展。PLI是允許外部函數(shù)訪問(wèn)Verilog
模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。●?VerilogHDL在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同的結(jié)果。例如,事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒(méi)有定義。1.3.3VerilogHDL的功能
VerilogHDL可以在各種抽象層次上描述數(shù)字電路,可以測(cè)試各種層次數(shù)字電路的行為,可以設(shè)計(jì)出正確有效的復(fù)雜電路結(jié)構(gòu),因此VerilogHDL功能非常強(qiáng)大。使用VerilogHDL設(shè)計(jì)數(shù)字系統(tǒng)是一種趨勢(shì),大到復(fù)雜的CPU,小到一些簡(jiǎn)單的邏輯門(mén),而數(shù)字化是技術(shù)發(fā)展的趨勢(shì),因此未來(lái)VerilogHDL的應(yīng)用領(lǐng)域會(huì)越來(lái)越廣。在設(shè)計(jì)中小型數(shù)字系統(tǒng)時(shí),采用VerilogHDL明顯優(yōu)于采用其他硬件描述語(yǔ)言。另外,VerilogHDL的語(yǔ)言現(xiàn)象非常類(lèi)似于C語(yǔ)言,非常靈活,易學(xué)易用,因此許多大型公司都采用VerilogHDL作為數(shù)字系統(tǒng)設(shè)計(jì)的首選語(yǔ)言。另外,VerilogHDL帶給我們的更重要的是編程思想,這點(diǎn)很重要。如果將來(lái)工作中用到其他語(yǔ)言,則在VerilogHDL語(yǔ)言的基礎(chǔ)上再學(xué)習(xí)其他硬件描述語(yǔ)言就會(huì)事半功倍。1.4QuartusⅡ概述
本書(shū)給出的示例和實(shí)驗(yàn)都是基于QuartusⅡ的,其應(yīng)用方法和設(shè)計(jì)流程對(duì)于其他流行EDA工具的使用具有一定的典型性和普遍性,所以在此對(duì)QuartusⅡ作一些介紹。
QuartusⅡ是Altera提供的FPGA/CPLD集成開(kāi)發(fā)環(huán)境。Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusⅡ在21世紀(jì)初推出,是Altera前一代FPGA/CPLD集成開(kāi)發(fā)環(huán)境MAX+plusⅡ的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在QuartusⅡ上可以完成本章1.2節(jié)所述的整個(gè)流程,它提供了一種與結(jié)構(gòu)無(wú)關(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)等。可以通過(guò)選擇StartCompilation來(lái)運(yùn)行所有的編譯器模塊,也可以通過(guò)選擇Start單獨(dú)運(yùn)行各個(gè)模塊。還可以通過(guò)選擇CompilerTool(Tools菜單),在CompilerTool窗口中運(yùn)行該模塊來(lái)啟動(dòng)編譯器模塊。在CompilerTool窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,或打開(kāi)其他相關(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特定器件的硬件功能,例如各類(lèi)片上存儲(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開(kāi)發(fā)流程。
QuartusⅡ支持層次化設(shè)計(jì),可以在一個(gè)新的編輯輸入環(huán)境中對(duì)使用不同輸入設(shè)計(jì)方式完成的模塊(元件)進(jìn)行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計(jì)的問(wèn)題。在設(shè)計(jì)輸入之后,QuartusⅡ的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告??梢允褂肣uartusⅡ帶有的RTLViewer觀察綜合后的RTL圖。圖1-5QuartusⅡ設(shè)計(jì)流程1.5硬件描述語(yǔ)言的發(fā)展趨勢(shì)
數(shù)字電路的速度和復(fù)雜性正在迅速地增長(zhǎng),這就要
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆師范大學(xué)《實(shí)驗(yàn)室安全與法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶市主城區(qū)七校聯(lián)考2025年高三教學(xué)質(zhì)量檢測(cè)試題試卷(二)物理試題含解析
- 公共交通運(yùn)營(yíng)服務(wù)收費(fèi)標(biāo)準(zhǔn)制度
- 第18課 清朝的邊疆治理 教案2024-2025學(xué)年七年級(jí)歷史下冊(cè)新課標(biāo)
- 內(nèi)圓形吊頂施工方案
- 護(hù)坡植草施工方案
- 路基修復(fù)夜間施工方案
- 工程資料與施工方案
- 汽車(chē)隔音施工方案范本
- 2025年搞笑考試面試試題及答案
- 江蘇省藥品上市許可持有人藥品生產(chǎn)質(zhì)量安全主體責(zé)任正面清單、負(fù)面清單(2023年版)
- 2024年GINA哮喘防治指南修訂解讀課件
- 木地板合同范本
- 2024中交二航局分包合同范本
- 2024年社區(qū)工作者考試必背1000題題庫(kù)必背(必刷)
- 教育改革與發(fā)展
- 《形體訓(xùn)練》課件-勾繃腳訓(xùn)練
- 醫(yī)療器械(耗材)項(xiàng)目投標(biāo)服務(wù)實(shí)施投標(biāo)方案(技術(shù)方案)
- 監(jiān)控系統(tǒng)維護(hù)保養(yǎng)方案
- 2023年國(guó)家廣播電視總局無(wú)線電臺(tái)管理局考試真題及答案
- 房屋修繕工程技術(shù)規(guī)程 DG-TJ08-207-2008
評(píng)論
0/150
提交評(píng)論