第1章EDA技術(shù)概述_第1頁
第1章EDA技術(shù)概述_第2頁
第1章EDA技術(shù)概述_第3頁
第1章EDA技術(shù)概述_第4頁
第1章EDA技術(shù)概述_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

QUARTUSIIEDA技術(shù)與VerilogHDL(第2版)QUARTUSIIEDA技術(shù)與VerilogHDL(第2版)EDA技術(shù)概述第1章EDA技術(shù)概述第1章·PAGE22··PAGE21·第1章EDA技術(shù)概述本章簡要介紹EDA技術(shù)、EDA工具、FPGA結(jié)構(gòu)原理及EDA的應(yīng)用情況和發(fā)展趨勢,其中重點介紹基于EDA的FPGA開發(fā)技術(shù)的概況??紤]到本章中出現(xiàn)的一些基本概念和名詞有可能涉及較多的基礎(chǔ)知識和更深入的EDA基礎(chǔ)理論,故對于本章的學(xué)習(xí)僅要求讀者做一般性的了解,無須深入探討。因為待讀者學(xué)習(xí)完本教程,并經(jīng)歷了本教材配置的必要實踐后,對許多問題就會自然而然地弄明白了。不過需要強調(diào)的是,本章的重要性并不能因此而被低估。1.1EDA技術(shù)現(xiàn)代電子設(shè)計技術(shù)的核心已日趨轉(zhuǎn)向基于計算機的電子設(shè)計自動化技術(shù),即EDA(ElectronicDesignAutomation)技術(shù)。EDA技術(shù)就是依賴功能強大的計算機,在EDA工具軟件平臺上,對以硬件描述語言(HardwareDescriptionLanguage,HDL)為系統(tǒng)邏輯描述手段完成的設(shè)計文件。它自動地完成邏輯編譯、化簡、分割、綜合、布局布線以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使得設(shè)計者的主要工作僅限于利用軟件的方式來完成對系統(tǒng)硬件功能的實現(xiàn),這是電子設(shè)計技術(shù)的一個巨大進步。EDA技術(shù)在硬件實現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù)、IC版圖設(shè)計、ASIC測試和封裝以及FPGA/CPLD(FieldProgrammableGateArray/ComplexProgrammableLogicDevice)編程下載和自動測試等技術(shù);在計算機輔助工程方面融合了計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、計算機輔助測試(CAT)、計算機輔助工程(CAE)技術(shù)以及多種計算機語言的設(shè)計概念;而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容,如電子線路設(shè)計理論、數(shù)字信號處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)等。因此EDA技術(shù)為現(xiàn)代電子理論和設(shè)計的表達與實現(xiàn)提供了可能性。正因為EDA技術(shù)豐富的內(nèi)容及其與電子技術(shù)各學(xué)科領(lǐng)域的相關(guān)性,其發(fā)展的歷程同大規(guī)模集成電路設(shè)計技術(shù)、計算機輔助工程、可編程邏輯器件,以及電子設(shè)計技術(shù)和工藝是同步的。就過去30年的電子技術(shù)的發(fā)展歷程,可大致將EDA技術(shù)的發(fā)展分為3個階段。第一階段:20世紀70年代,在集成電路制作方面,MOS工藝已得到廣泛的應(yīng)用。可編程邏輯技術(shù)及其器件已經(jīng)問世,計算機作為一種運算工具已在科研領(lǐng)域得到廣泛應(yīng)用。而在后期,CAD的概念已見雛形,這一階段人們開始利用計算機取代手工勞動,輔助進行集成電路版圖編輯、PCB布局布線等工作,這是EDA技術(shù)的雛形。第二階段:20世紀80年代,集成電路設(shè)計進入了CMOS(互補場效應(yīng)管)時代。復(fù)雜可編程邏輯器件已進入商業(yè)應(yīng)用,相應(yīng)的輔助設(shè)計軟件也已投入使用;在80年代末,出現(xiàn)了FPGA,CAE和CAD技術(shù)的應(yīng)用更為廣泛,它們在PCB設(shè)計方面的原理圖輸入、自動布局布線及PCB分析、邏輯設(shè)計、邏輯仿真、布爾代數(shù)綜合和化簡等方面擔任了重要的角色。特別是各種硬件描述語言的出現(xiàn)、應(yīng)用和標準化方面的重大進步,為電子設(shè)計自動化解決電子線路建模、標準文檔及仿真測試等問題奠定了基礎(chǔ)。第三階段:進入20世紀90年代,計算機輔助工程、輔助分析和輔助設(shè)計在電子技術(shù)領(lǐng)域獲得更加廣泛的應(yīng)用。與此同時,電子技術(shù)在通信、計算機及家電產(chǎn)品生產(chǎn)中的市場需求和技術(shù)需求,極大地推動了全新的電子設(shè)計自動化技術(shù)的應(yīng)用和發(fā)展。特別是集成電路設(shè)計工藝步入了超深亞微米階段,百萬門以上的大規(guī)??删幊踢壿嬈骷年懤m(xù)問世,以及基于計算機技術(shù)的面向用戶的低成本大規(guī)模ASIC設(shè)計技術(shù)的應(yīng)用,促進了EDA技術(shù)的形成。更為重要的是,各EDA公司致力于推出兼容各種硬件實現(xiàn)方案和支持標準硬件描述語言的EDA工具軟件的出現(xiàn),都有效地將EDA技術(shù)推向成熟和實用。EDA技術(shù)在進入21世紀后,得到了更大的發(fā)展,突出表現(xiàn)在以下幾個方面。在FPGA上實現(xiàn)DSP(數(shù)字信號處理)應(yīng)用成為可能,用純數(shù)字邏輯進行DSP模塊的設(shè)計,使得高速DSP的實現(xiàn)成為現(xiàn)實,并有力地推動了軟件無線電技術(shù)的實用化和發(fā)展?;贔PGA的DSP技術(shù),為高速數(shù)字信號處理算法提供了實現(xiàn)途徑。嵌入式處理器軟核的成熟,使得SOPC(SystemOnaProgrammableChip)步入大規(guī)模應(yīng)用階段,在一單片F(xiàn)PGA中實現(xiàn)一個完備的可隨意重構(gòu)的嵌入式系統(tǒng)成為可能。在仿真和設(shè)計兩方面支持標準硬件描述語言的功能強大的EDA軟件不斷推出。EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容:模擬與數(shù)字、軟件與硬件、系統(tǒng)與器件、ASIC與FPGA等。基于EDA的用于ASIC設(shè)計的標準單元已涵蓋大規(guī)模電子系統(tǒng)及復(fù)雜IP核模塊。軟硬IP(IntellectualProperty)核在電子行業(yè)的產(chǎn)業(yè)領(lǐng)域廣泛應(yīng)用。SOC高效低成本設(shè)計技術(shù)的成熟。系統(tǒng)級、行為驗證級硬件描述語言的出現(xiàn)(如SystemC),使復(fù)雜電子系統(tǒng)的設(shè)計和驗證趨于簡單。1.2EDA技術(shù)應(yīng)用對象一般地,利用EDA技術(shù)進行電子系統(tǒng)設(shè)計的最后目標,是完成專用集成電路(ASIC)或印制電路板(PCB)的設(shè)計和實現(xiàn)(如圖1-1所示)。其中,PCB設(shè)計指的是電子系統(tǒng)的印制電路板設(shè)計,從電路原理圖到PCB上元件的布局、布線、阻抗匹配、信號完整性分析及板級仿真,到最后的電路板機械加工文件生成,這些都需要相應(yīng)的計算機EDA工具軟件輔助設(shè)計者來完成,這僅是EDA技術(shù)應(yīng)用的一個重要方面,但本書限于篇幅不做展開。ASIC作為最終的物理平臺,集中容納了用戶通過EDA技術(shù)將電子應(yīng)用系統(tǒng)的既定功能和技術(shù)指標具體實現(xiàn)的硬件實體。專用集成電路就是具有專門用途和特定功能的獨立集成電路器件,根據(jù)這個定義,作為EDA技術(shù)最終實現(xiàn)目標的ASIC,可以通過3種途徑來完成(如圖1-1所示)。圖1-1EDA技術(shù)實現(xiàn)目標1.可編程邏輯器件FPGA和CPLD是實現(xiàn)這一途徑的主流器件,它們的特點是直接面向用戶、具有極大的靈活性和通用性、使用方便、硬件測試和實現(xiàn)快捷、開發(fā)效率高、成本低、上市時間短、技術(shù)維護簡單、工作可靠性好等。FPGA和CPLD的應(yīng)用是EDA技術(shù)有機融合軟硬件電子設(shè)計技術(shù)、SOC和ASIC設(shè)計,以及對自動設(shè)計與自動實現(xiàn)最典型的詮釋。由于FPGA和CPLD的開發(fā)工具、開發(fā)流程和使用方法與ASIC有類似之處,因此這類器件通常也被稱為可編程專用IC或可編程ASIC。2.半定制或全定制ASIC基于EDA技術(shù)的半定制或全定制ASIC,根據(jù)它們的實現(xiàn)工藝,可統(tǒng)稱為掩模(Mask)ASIC,或直接稱ASIC。可編程ASIC與掩模ASIC相比,不同之處在于前者具有面向用戶靈活多樣的可編程性,即硬件結(jié)構(gòu)的可重構(gòu)特性。3.混合ASIC混合ASIC(不是指數(shù)模混合ASIC)主要指既含有面向用戶的FPGA可編程功能和邏輯資源,同時也含有可方便調(diào)用和配置的硬件標準單元模塊,如CPU、RAM、ROM、硬件加法器、乘法器、鎖相環(huán)等。1.3常用HDL和VerilogHDL硬件描述語言(HDL)是EDA技術(shù)的重要組成部分,目前常用的HDL語言主要有VHDL、VerilogHDL、SystemVerilog和SystemC。其中VerilogHDL和VHDL在現(xiàn)在的EDA設(shè)計中使用最多,幾乎得到所有的主流EDA工具的支持。而SystemVerilog和SystemC這兩種HDL語言還處于不斷完善過程中,主要加強了系統(tǒng)驗證方面的功能。自從出現(xiàn)VHDL和VerilogHDL語言以來,對于選擇何種語言進行系統(tǒng)設(shè)計最好的爭論就從未停止過。多數(shù)偏好VerilogHDL的用戶能拿出的最有“說服力”的論據(jù)是VerilogHDL編程與C最接近。這似乎意味著對C熟練的人,更容易學(xué)好和掌握VerilogHDL。其實恰恰相反。事實證明,如果缺少硬件概念,越是熟悉C/C++等軟件描述語言的,越不容易學(xué)好、用好硬件描述語言。這是因為C和HDL本質(zhì)上是截然不同的計算機語言,這個結(jié)論并不會因為C的某些語句類同于VerilogHDL就有會所改變。因為HDL語言的編程風格、編程思路、編程目標、編程優(yōu)劣標準、程序驗證方法、對程序員知識結(jié)構(gòu)的要求等都有巨大差別。如果以這些標準來判別計算機語言的相似度,那么VerilogHDL與VHDL的相似度至少達90%,而與C或C++的相似度則遠低于5%。由此可見,絕對不能把C等語言的編程經(jīng)驗和編程風格帶到HDL的程序設(shè)計中,而是應(yīng)該緊密結(jié)合硬件電路基礎(chǔ)知識從一個全新的角度去了解、學(xué)習(xí)和掌握HDL,擺脫C等軟件描述語言編程習(xí)慣和風格的不良影響!VerilogHDL是電子設(shè)計主流硬件的描述語言之一,本書將重點介紹它的編程方法和使用技術(shù)。VerilogHDL(簡稱Verilog)最初由GatewayDesignAutomation公司(簡稱GDA)的PhilMoorby在1983年創(chuàng)建。起初,Verilog僅作為GDA公司的Verilog-XL仿真器的內(nèi)部語言,用于數(shù)字邏輯的建模、仿真和驗證。Verilog-XL推出后獲得了成功和認可,從而促進了VerilogHDL的發(fā)展。1989年GDA公司被Cadence公司收購,Verilog語言成為了Cadence公司的私有財產(chǎn)。1990年Cadence公司成立了OVI(OpenVerilogInternational)組織,公開了Verilog語言,并由OVI負責促進Verilog語言的發(fā)展。在OVI的努力下,1995年,IEEE制定了VerilogHDL的第一個國際標準——IEEEStd1364—1995,即Verilog1.0?!?001,簡稱為Verilog-2001標準。由于Cadence公司在集成電路設(shè)計領(lǐng)域的影響力和Verilog的易用性,Verilog成為基層電路建模與設(shè)計中最流行的硬件描述語言。Verilog的部分語法是參照C語言的語法設(shè)立的(但與C有本質(zhì)區(qū)別),因此,具有很多C語言的優(yōu)點,從形式表述上來看,代碼簡明扼要,使用靈活,且語法規(guī)定不是很嚴謹,很容易上手。Verilog具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性。在語言易讀性、層次化和結(jié)構(gòu)化設(shè)計方面表現(xiàn)了強大的生命力和應(yīng)用潛力。因此,Verilog支持各種模式的設(shè)計方法:自頂向下與自底向上或混合方法。在面對當今許多電子產(chǎn)品生命周期縮短,需要多次重新設(shè)計以融入最新技術(shù)、改變工藝等方面,Verilog具有良好的適應(yīng)性。用Verilog進行電子系統(tǒng)設(shè)計的一個很大的優(yōu)點是當設(shè)計邏輯功能時,設(shè)計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的、與工藝有關(guān)的因素花費過多的時間和精力;當需要仿真驗證時,可以很方便地從電路物理級、晶體管級、寄存器傳輸級乃至行為級等多個層次來做驗證。SystemVerilog是一種新的硬件描述語言,它基于Verilog-2001,是由Accellera開發(fā)的(Accellera的前身就是OVI)。SystemVerilog在Verilog-2001的基礎(chǔ)上做了擴展,將Verilog語言推向了系統(tǒng)級空間和驗證級空間,極大地改進了高密度、基于IP的、總線敏感的芯片設(shè)計效率。SystemVerilog主要定位于集成電路的實現(xiàn)和驗證流程,并為系統(tǒng)級設(shè)計流程提供了強大的鏈接能力。SystemVerilog改進了Verilog代碼的生產(chǎn)率、可讀性以及可重用性。SystemVerilog提供了更簡約的硬件描述,還為測試平臺開發(fā)、隨機約束的測試平臺開發(fā)、覆蓋驅(qū)動的驗證以及基于斷言的驗證提供了廣泛的支持。2005年,IEEE批準了SystemVerilog的語法標準,即IEEEP1800標準。SystemC是C++語言的硬件描述擴展,主要用于ESL(電子系統(tǒng)級)建模與驗證。由OSCI(OpenSystemCInitiative)組織進行發(fā)展。SystemC并非是好的RTL語言(即可綜合的、硬件可實現(xiàn)描述性質(zhì)的語言),而是一種系統(tǒng)級建模語言。將SystemC和SystemVerilog組合起來,能夠提供一套從ESL至RTL驗證的完整解決方案。SystemC源代碼可以使用任何標準C++編譯環(huán)境進行編譯,生成可執(zhí)行文件;運行可執(zhí)行文件,可生成VCD格式的波形文件。SystemC的綜合還不完善,但已經(jīng)有工具支持。Verilog語言的特點:(1)按照設(shè)計目的,Verilog程序可以劃分為面向仿真和面向綜合兩類,而可綜合的Verilog程序能分別面向FPGA和ASIC開發(fā)兩個領(lǐng)域。(2)能在多個層次上對所設(shè)計的系統(tǒng)加以描述,從開關(guān)級、門級、寄存器傳輸級(RTL)至行為級都可以加以描述。(3)靈活多樣的電路描述風格。1.4EDA技術(shù)的優(yōu)勢在傳統(tǒng)的數(shù)字電子系統(tǒng)或IC設(shè)計中,手工設(shè)計占了很大的比例。設(shè)計流程中,一般先按電子系統(tǒng)的具體功能要求進行功能劃分,然后對每個子模塊畫出真值表,用卡諾圖進行手工邏輯簡化,寫出布爾表達式,畫出相應(yīng)的邏輯線路圖,再據(jù)此選擇元器件,設(shè)計電路板,最后進行實測與調(diào)試。傳統(tǒng)數(shù)字技術(shù)的手工設(shè)計方法的缺點如下。復(fù)雜電路的設(shè)計、調(diào)試十分困難。由于無法進行硬件系統(tǒng)仿真,如果某一過程存在錯誤,查找和修改十分不便。設(shè)計過程中產(chǎn)生大量文檔,不易管理。對于IC設(shè)計而言,設(shè)計實現(xiàn)過程與具體生產(chǎn)工藝直接相關(guān),因此可移植性差。只有在設(shè)計出樣機或生產(chǎn)出芯片后才能進行實測。所能設(shè)計完成的系統(tǒng)規(guī)模通常很小,抗干擾能力差,工作速度也很低。相比之下,EDA技術(shù)有很大的不同。(1)用HDL對數(shù)字系統(tǒng)進行抽象的行為與功能描述到具體的內(nèi)部線路結(jié)構(gòu)描述,從而可以在電子設(shè)計的各個階段、各個層次進行計算機模擬驗證,保證設(shè)計過程的正確性,可以大大降低設(shè)計成本,縮短設(shè)計周期。(2)EDA工具之所以能夠完成各種自動設(shè)計過程,關(guān)鍵是有各類庫的支持,如邏輯仿真時的模擬庫、邏輯綜合時的綜合庫、版圖綜合時的版圖庫、測試綜合時的測試庫等。這些庫都是EDA公司與半導(dǎo)體生產(chǎn)廠商緊密合作、共同開發(fā)的。(3)某些HDL本身也是文檔型的語言(如Verilog),極大地簡化了設(shè)計文檔的管理。(4)EDA技術(shù)中最為矚目的功能,即最具現(xiàn)代電子設(shè)計技術(shù)特征的功能是日益強大的邏輯設(shè)計仿真測試技術(shù)。EDA仿真測試技術(shù)只需通過計算機就能對所設(shè)計的電子系統(tǒng)從各種不同層次的系統(tǒng)性能特點完成一系列準確的測試與仿真操作。在完成實際系統(tǒng)的安裝后,還能對系統(tǒng)上的目標器件進行所謂“邊界掃描測試”,及嵌入式邏輯分析儀的應(yīng)用。這一切都極大地提高了大規(guī)模系統(tǒng)電子設(shè)計的自動化程度。(5)無論傳統(tǒng)的應(yīng)用電子系統(tǒng)設(shè)計得如何完美、使用了多么先進的功能器件,都掩蓋不了一個無情的事實,即設(shè)計者對該系統(tǒng)沒有任何自主知識產(chǎn)權(quán),因為系統(tǒng)中的關(guān)鍵性的器件往往并非出自設(shè)計者之手,這將導(dǎo)致該系統(tǒng)在許多情況下的應(yīng)用直接受到限制?;贓DA技術(shù)的設(shè)計則不同,由于用HDL表達的成功的專用功能設(shè)計在實現(xiàn)目標方面有很大的可選性,它既可以用不同來源的通用FPGA/CPLD實現(xiàn),也可以直接以ASIC來實現(xiàn),設(shè)計者擁有完全的自主權(quán),再無受制于人之虞。(6)傳統(tǒng)的電子設(shè)計方法至今沒有任何標準規(guī)范加以約束,因此設(shè)計效率低、系統(tǒng)性能差、規(guī)模小、開發(fā)成本高、市場競爭能力小。相比之下,EDA技術(shù)的設(shè)計語言是標準化的,不會由于設(shè)計對象的不同而改變;它的開發(fā)工具是規(guī)范化的,EDA軟件平臺支持任何標準化的設(shè)計語言;它的設(shè)計成果是通用性的,IP核具有規(guī)范的接口協(xié)議;它具有良好的可移植與可測試性,為系統(tǒng)開發(fā)提供了可靠的保證。(7)從電子設(shè)計方法學(xué)來看,EDA技術(shù)最大的優(yōu)勢就是能將所有設(shè)計環(huán)節(jié)納入統(tǒng)一的自頂向下的設(shè)計方案中。(8)EDA不但在整個設(shè)計流程上充分利用計算機的自動設(shè)計能力、在各個設(shè)計層次上利用計算機完成不同內(nèi)容的仿真模擬,而且在系統(tǒng)板設(shè)計結(jié)束后仍可利用計算機對硬件系統(tǒng)進行完整的測試。1.5面向FPGA的EDA開發(fā)流程完整地了解利用EDA技術(shù)進行設(shè)計開發(fā)的流程對于正確地選擇和使用EDA軟件、優(yōu)化設(shè)計項目、提高設(shè)計效率十分有益。一個完整的、典型的EDA設(shè)計流程既是自頂向下設(shè)計方法的具體實施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。1.5.1設(shè)計輸入圖1-2是基于EDA軟件的FPGA開發(fā)流程框圖。以下將分別介紹各設(shè)計模塊的功能特點。對于目前流行的用于FPGA開發(fā)的EDA軟件,圖1-2的設(shè)計流程具有一般性。將電路系統(tǒng)以一定的表達方式輸入計算機,是在EDA軟件平臺上對FPGA/CPLD開發(fā)的最初步驟。通常,使用EDA工具的設(shè)計輸入可分為兩種類型。圖1-2基于EDA的FPGA開發(fā)流程1.圖形輸入圖形輸入通常包括電路原理圖輸入和狀態(tài)圖輸入。狀態(tài)圖輸入方法就是根據(jù)電路的控制條件和不同的轉(zhuǎn)換方式,用繪圖的方法在EDA軟件的狀態(tài)圖編輯器上繪出狀態(tài)圖,然后由EDA編譯器和綜合器將此狀態(tài)變化流程圖編譯綜合成電路網(wǎng)表。電路原理圖輸入方法是一種類似于傳統(tǒng)電子設(shè)計方法的原理圖編輯輸入方式,即在EDA軟件的圖形編輯界面上繪制能完成特定功能的電路原理圖。原理圖由邏輯器件(符號)和連接線構(gòu)成,圖中的邏輯器件可以是EDA軟件庫中預(yù)制的功能模塊,如與門、非門、或門、觸發(fā)器以及各種含74系列器件功能的宏功能塊,甚至還有一些類似于IP的宏功能塊。2.硬件描述語言代碼文本輸入這種方式與傳統(tǒng)的計算機軟件語言編輯輸入基本一致。就是將使用了某種硬件描述語言的電路設(shè)計代碼,如Verilog或VHDL的源程序,進行編輯輸入。1.5.2綜合綜合(Synthesis),就其字面含義應(yīng)該是:把抽象的實體結(jié)合成單個或統(tǒng)一的實體。因此,綜合就是把某些東西結(jié)合到一起,把設(shè)計抽象層次中的一種表述轉(zhuǎn)化成另一種表述的過程。在電子設(shè)計領(lǐng)域,綜合的概念可以表述為:將用行為和功能層次表達的電子系統(tǒng)轉(zhuǎn)換為低層次的、便于具體實現(xiàn)的模塊組合裝配的過程。事實上,自上而下的設(shè)計過程中的每一步都可稱為一個綜合環(huán)節(jié)?,F(xiàn)代電子設(shè)計過程通常從高層次的行為描述開始,以底層的結(jié)構(gòu)甚至更低層次描述結(jié)束,每個綜合步驟都是上一層次的轉(zhuǎn)換。(1)從自然語言轉(zhuǎn)換到Verilog語言算法表述,即自然語言綜合。(2)從算法表述轉(zhuǎn)換到寄存器傳輸級(RegisterTransportLevel,RTL)表述,即從行為域到結(jié)構(gòu)域的綜合,也稱行為綜合。(3)從RTL級表述轉(zhuǎn)換到邏輯門(包括觸發(fā)器)的表述,即邏輯綜合。(4)從邏輯門表述轉(zhuǎn)換到版圖級表述(如ASIC設(shè)計),或轉(zhuǎn)換到FPGA的配置網(wǎng)表文件,可稱為版圖綜合或結(jié)構(gòu)綜合。有了版圖信息就可以把芯片生產(chǎn)出來了。有了對應(yīng)的配置文件,就可以使對應(yīng)的FPGA變成具有專門功能的電路器件了。顯然,綜合器就是能夠?qū)⒁环N設(shè)計表述形式自動向另一種設(shè)計表述形式轉(zhuǎn)換的計算機程序,或協(xié)助進行手工轉(zhuǎn)換的程序。它可以將高層次的表述轉(zhuǎn)化為低層次的表述,可以將行為域轉(zhuǎn)化為結(jié)構(gòu)域,可以將高一級抽象的電路描述(如算法級)轉(zhuǎn)化為低一級的電路描述(如門級),并可以用某種特定的“技術(shù)”(如CMOS)實現(xiàn)。對設(shè)計者而言有兩種情況,一是在高抽象層次進行系統(tǒng)設(shè)計并利用綜合工具將設(shè)計轉(zhuǎn)化為低層次的表述;二是直接在低抽象層次上設(shè)計系統(tǒng)。這類似于一個程序員用高級語言編程并用編譯器將程序編譯成機器代碼和直接用機器代碼進行編程的情況。在前一種情況下,設(shè)計者可以將精力主要集中在系統(tǒng)級問題上,而不必關(guān)心低級結(jié)構(gòu)設(shè)計的細節(jié)問題。因此將減少設(shè)計和編程所花費的時間和精力,并且減少錯誤的發(fā)生。另一方面,盡管從表面上看,Verilog等硬件描述語言綜合器和軟件程序編譯器都是一種“翻譯器”,它們都能將高層次的設(shè)計表達轉(zhuǎn)化為低層次的設(shè)計表達,但它們卻具有許多本質(zhì)的區(qū)別。如圖1-3所示,編譯器將軟件程序翻譯成基于某種特定CPU的機器代碼,這種代碼僅限于這種CPU而不能移植,它并不代表硬件結(jié)構(gòu),更不能改變CPU的結(jié)構(gòu),只能被動地為其特定的硬件電路所利用。如果脫離了已有的硬件環(huán)境(CPU),機器代碼將失去意義。此外,編譯器作為一種軟件的運行,除了某種單一目標器件,即CPU的硬件結(jié)構(gòu)外,不需要任何與硬件相關(guān)的器件庫和工藝庫參與編譯。因而,編譯器的工作單純得多,編譯過程基本屬于一種一一對應(yīng)式的、機械轉(zhuǎn)換式的“翻譯”行為。圖1-3編譯器和綜合的功能比較(b)(a)綜合器則不同,同樣是類似的軟件代碼(如Verilog程序代碼),綜合器轉(zhuǎn)化的目標是底層的電路結(jié)構(gòu)網(wǎng)表文件,這種滿足原設(shè)計程序功能描述的電路結(jié)構(gòu)不依賴于任何特定硬件環(huán)境,因此可以獨立地存在,并能輕易地被移植到任何通用硬件環(huán)境中,如ASIC、FPGA等。換言之,電路網(wǎng)表代表了特定的且可獨立存在和具有實際功能的硬件結(jié)構(gòu),因此具備了隨時改變硬件結(jié)構(gòu)的依據(jù),綜合的結(jié)果具有相對獨立性。另一方面,綜合器在將硬件描述語言表達的電路功能轉(zhuǎn)化成具體的電路結(jié)構(gòu)網(wǎng)表過程中,具有明顯的能動性(例如狀態(tài)機的優(yōu)化),它不是機械的一一對應(yīng)式的“翻譯”,而是根據(jù)設(shè)計庫、工藝庫以及預(yù)先設(shè)置的各類約束條件,(b)(a)圖1-4HDL綜合器運行流程如圖1-4所示,與編譯器相比,綜合器具有更復(fù)雜的工作環(huán)境。綜合器在接收Verilog程序并準備對其綜合前,必須獲得與最終實現(xiàn)設(shè)計電路硬件特征相關(guān)的工藝庫的信息,以及獲得優(yōu)化綜合的諸多約束條件。一般地,約束條件有多種,如設(shè)計規(guī)則、時間約束(包括速度約束)、面積約束等。通常,時間約束的優(yōu)先級高于面積約束。設(shè)計優(yōu)化要求當綜合器把Verilog源碼翻譯成通用原理圖時,將識別狀態(tài)機、加法器、乘法器、多路選擇器和寄存器等。這些運算功能根據(jù)Verilog源碼中的符號(如加、減、乘、除),都可用多種方法實現(xiàn)。如加法可實現(xiàn)的方案有多種,有的面積小,速度慢;有的速度快,面積大。Verilog行為描述強調(diào)的是電路的行為和功能,而不是電路如何實現(xiàn)。而選擇電路的實現(xiàn)方案正是綜合器的任務(wù)。綜合器選擇一種能充分滿足各項約束條件且成本最低的實現(xiàn)方案。圖1-4HDL綜合器運行流程現(xiàn)在的許多綜合器還允許設(shè)計者指定在做映射優(yōu)化時綜合器應(yīng)付出多大“努力”。“努力”一般可分為低、中、高3檔。需要注意的是,Verilog(也包括VHDL、SystemVerilog)方面的IEEE標準,主要指的是文檔的表述、行為建模及其仿真,至于在電子線路的設(shè)計方面,Verilog并沒有得到全面的標準化支持。這就是說,HDL綜合器并不能支持IEEE標準的Verilog的全集(全部語句程序),而只能支持其子集,即部分語句,并且不同的HDL綜合器所支持的Verilog子集也不完全相同。這樣一來,對于相同的Verilog源代碼,不同的HDL綜合器可能綜合出在結(jié)構(gòu)和功能上并不完全相同的電路系統(tǒng)。對此,設(shè)計者應(yīng)給予充分注意:對于不同的綜合結(jié)果,不應(yīng)對綜合器的特性貿(mào)然做出評價,而應(yīng)在設(shè)計過程中,盡可能全面了解所使用的綜合工具的特性。當然,隨著EDA技術(shù)的不斷進步,可綜合的Verilog正逐漸走向標準化。目前已經(jīng)推出的IEEEStd1364[1].1—2002標準正為VerilogHDL的RTL級(即可綜合級)綜合定義一系列的建模準則。1.5.3適配(布線布局)適配器(Fitter)也稱結(jié)構(gòu)綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標器件中,使之產(chǎn)生最終的下載文件,如JEDEC、JAM、POF、SOF等格式的文件。適配所選定的目標器件必須屬于原綜合器指定的目標器件系列。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應(yīng)商提供。因為適配器的適配對象直接與器件的結(jié)構(gòu)細節(jié)相對應(yīng)。適配器就是將綜合后的網(wǎng)表文件針對某一具體的目標器件進行邏輯映射操作,其中包括底層器件配置、邏輯分割、優(yōu)化、布局布線等操作。適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時序仿真,同時產(chǎn)生可用于對目標器件進行編程的文件。1.5.4仿真在編程下載前必須利用EDA工具對適配生成的結(jié)果進行模擬測試,就是所謂的仿真(Simulation)。仿真就是讓計算機根據(jù)一定的算法和一定的仿真庫對EDA設(shè)計進行模擬,驗證設(shè)計的正確性,以便排除錯誤,它是EDA設(shè)計過程中的重要步驟。圖1-2所示的時序與功能門級仿真通常由FPGA公司的EDA開發(fā)工具直接提供(當然也可以選用第三方的專業(yè)仿真工具),它可以完成兩種不同級別的仿真測試。(1)時序仿真。即接近真實器件時序性能運行特性的仿真。仿真文件中已包含了器件硬件特性參數(shù),因而仿真精度高。但時序仿真的仿真文件必須來自針對具體器件的適配器。綜合后所得的EDIF等網(wǎng)表文件通常作為FPGA適配器的輸入文件,產(chǎn)生的仿真網(wǎng)表文件中包含了精確的硬件延遲信息。(2)功能仿真。即直接對HDL、原理圖描述或其他描述形式的邏輯功能進行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計要求的過程。仿真過程不涉及任何具體器件的硬件特性。不經(jīng)歷適配階段,在設(shè)計項目編輯、編譯(或綜合)后即可進入門級仿真器進行模擬測試。直接進行功能仿真的好處是設(shè)計耗時短,對硬件庫、綜合器等沒有任何要求。本教材主要介紹基于QuartusII的時序仿真工具。對于使用第三方的ModelSim仿真工具完成testbench程序的仿真,將在第10章中介紹。1.5.5RTL描述RTL(RegisterTransportLevel)的概念會經(jīng)常出現(xiàn),這里對它做一些說明。RTL的概念最初產(chǎn)生于對某類電路的描述。RTL描述是以規(guī)定設(shè)計中的各種寄存器形式為特征,然后在寄存器之間插入組合邏輯。這類寄存器或者顯式地通過元件具體裝配,或者通過推論做隱含的描述。傳統(tǒng)概念下的RTL電路的構(gòu)建特色是由一系列組合電路模塊和寄存器模塊相間級聯(lián)而成,即組合電路與時序電路各自獨立且級聯(lián),而信號的通過有一種逐級傳輸?shù)奶卣鳎史Q此類電路為寄存器傳輸級電路。此后,這個概念進一步泛化,便引申為一切用各種獨立的組合電路模塊和獨立的寄存器模塊,但不涉及低層具體邏輯門結(jié)構(gòu)或觸發(fā)器電路細節(jié)(所謂技術(shù)級:Technology),來構(gòu)建描述數(shù)字電路的形式都稱之為RTL描述,而且即使不包含時序模塊,或只有寄存器模塊的同類描述形式也都泛稱為RTL描述。所以現(xiàn)在所謂的RTL仿真,即功能仿真就是指不涉及電路細節(jié)(如門級細節(jié))的RTL模塊級構(gòu)建的系統(tǒng)的仿真;而涉及電路細節(jié)和時序性能的時序仿真就稱為門級仿真。此概念進入EDA技術(shù)領(lǐng)域后,又有了進一步的引申,且向兩個不同的方向分化。(1)RTL描述的電路就是“實際存在的電路”或“真實的電路”的表述。而硬件描述語言HDL中包含可綜合與不可綜合(主要用于仿真)的語句,用可綜合的語句構(gòu)建的電路描述代碼可以通過HDL綜合器生成可實現(xiàn)的電路,于是就把一切用可綜合的語句表述的、可由綜合器生成實際電路的HDL代碼形式稱為RTL描述?,F(xiàn)在許多文獻中干脆將RTL當成了可綜合的硬件描述語言代碼的代名詞,即把一個完整的、可綜合的HDL代碼對電路的表述稱為RTL描述(綜合出的電路未必包含寄存器)。(2)但另一方面,相對于RTL的傳統(tǒng)含義(即由一系列獨立的、宏觀的組合電路模塊和寄存器模塊表述的電路系統(tǒng)),更多的情況是組合電路和時序電路,當然包括各類寄存器處于相互交錯融合的狀態(tài)(盡管完全可以歸并和分類出RTL結(jié)構(gòu)),人們便以其他名稱來表述此類電路的特點。于是就將RTL表述確定為數(shù)字系統(tǒng)表述的某一層次級別,即RTL級(可用電路模塊表述的電路層次,此對應(yīng)的電路就稱為RTL電路),在其之上分別是行為級(只能用HDL語言表述)和系統(tǒng)級(最高級);在RTL下,依次還有門級(也稱技術(shù)級,即對應(yīng)集成電路底層基本電路單元)、晶體管級和物理級。由此可見,對名稱RTL的理解和解釋也要看其所處的具體背景。1.6可編程邏輯器件可編程邏輯器件(ProgrammableLogicDevices,PLD)是20世紀70年代發(fā)展起來的一種新的集成器件。PLD是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,是一種半定制的集成電路,結(jié)合EDA技術(shù)可以快速、方便地構(gòu)建數(shù)字系統(tǒng)。數(shù)字電路基礎(chǔ)知識表明,數(shù)字電路系統(tǒng)都是由基本門來構(gòu)成的,如與門、或門、非門、傳輸門等。由基本門可構(gòu)成兩類數(shù)字電路:一類是組合電路;另一類是時序電路,它含有存儲元件。事實上,不是所有的基本門都是必需的,如用與非門單一基本門就可以構(gòu)成其他的基本門。任何的組合邏輯函數(shù)都可以化為“與?或”表達式,即任何的組合電路可以用“與門?或門”二級電路實現(xiàn)。同樣,任何時序電路都可由組合電路加上存儲元件,即鎖存器、觸發(fā)器來構(gòu)成。由此,人們提出了一種可編程電路結(jié)構(gòu),即可重構(gòu)的電路結(jié)構(gòu)。1.6.1PLD的分類可編程邏輯器件的種類很多,幾乎每個大的可編程邏輯器件供應(yīng)商都能提供具有自身結(jié)構(gòu)特點的PLD器件。由于歷史的原因,可編程邏輯器件的命名各異,在詳細介紹可編程邏輯器件之前,有必要介紹幾種PLD的分類方法。以集成度分,一般可分為兩大類器件。(1)低集成度芯片。早期出現(xiàn)的PROM(ProgrammableReadOnlyMemory)、PAL(ProgrammableArrayLogic)、可重復(fù)編程的GAL(GenericArrayLogic)都屬于這類。一般而言,可重構(gòu)使用的邏輯門數(shù)大約在500門以下,稱為簡單PLD。(2)高集成度芯片。如現(xiàn)在大量使用的CPLD、FPGA器件,稱為復(fù)雜PLD。從結(jié)構(gòu)上可分為兩大類器件。(1)乘積項結(jié)構(gòu)器件。其基本結(jié)構(gòu)為“與?或陣列”的器件,大部分簡單PLD和CPLD都屬于這個范疇。(2)查找表結(jié)構(gòu)器件。由簡單的查找表組成可編程門,再構(gòu)成陣列形式。大多數(shù)FPGA是屬于此類器件。第三種分類方法是從編程工藝上劃分,可分為如下幾種類型。(1)熔絲(Fuse)型。早期的PROM器件就是采用熔絲結(jié)構(gòu)的,編程過程就是根據(jù)設(shè)計的熔絲圖文件來燒斷對應(yīng)的熔絲,以達到編程的目的。(2)反熔絲(Anti-fuse)型。是對熔絲技術(shù)的改進,在編程處通過擊穿漏層使得兩點之間獲得導(dǎo)通,這與熔絲燒斷獲得開路正好相反。(3)EPROM型。稱為紫外線擦除電可編程邏輯器件,是用較高的編程電壓進行編程,當需要再次編程時,用紫外線進行擦除。Atmel公司曾經(jīng)有過此類PLD,目前已淘汰。(4)EEPROM型。即電可擦寫編程器件,現(xiàn)有部分CPLD及GAL器件采用此類結(jié)構(gòu)。它是對EPROM的工藝改進,不需要紫外線擦除,而是直接用電擦除。(5)SRAM型。即SRAM查找表結(jié)構(gòu)的器件。大部分的FPGA器件都是采用此種編程工藝,如Xilinx和Altera的FPGA器件采用的即SRAM編程方式。這種方式在編程速度、編程要求上要優(yōu)于前4種器件,不過SRAM型器件的編程信息存放在RAM中,在斷電后就丟失了,再次上電需要再次編程(配置),因而需要專用器件來完成這類自動配置操作。(6)Flash型。Actel公司為了解決上述反熔絲器件的不足之處,推出了采用Flash工藝的FPGA,可以實現(xiàn)多次可編程,同時做到掉電后不需要重新配置?,F(xiàn)在Xilinx和Altera的多個系列CPLD也采用Flash型。在習(xí)慣上,還有另外一種分類方法,即掉電后是否需要重新配置的器件。CPLD不需要重新配置,而FPGA(大多數(shù))需要重新配置。1.6.2PROM可編程原理介紹PLD器件的可編程原理之前,在此首先介紹具有典型性的PROM結(jié)構(gòu)。但在此之前有必要熟悉一些常用的邏輯電路符號及常用的描述PLD內(nèi)部結(jié)構(gòu)的專用電路符號。通常,邏輯符號之“國標”是指我國的國家標準,但目前流行于國內(nèi)高校數(shù)字電路教材中的所謂“國標”邏輯符號原本是全盤照搬ANSI/IEEE-1984版的IEC國際標準符號,且至今并沒有升級。然而由于此類符號表達形式過于復(fù)雜,即用矩形圖型邏輯符號(RectangularOutlineSymbols)來標志邏輯功能,故被公認為不適合表述PLD中復(fù)雜的邏輯結(jié)構(gòu)。因此數(shù)年后,IEEE又推出了ANSI/IEEE-1991標準,于是國際上幾乎所有技術(shù)資料和相關(guān)教材很快就廢棄了原標準(84標準)的應(yīng)用,繼而普遍采用了1991版本的國際標準邏輯符號(DistinctiveShapeSymbols)。該版本符號的優(yōu)勢和特點是,用圖形的不同形狀來標志邏輯模塊的功能,即使圖形畫面很小也能十分容易地辨認出模塊的邏輯功能。本書全部采用IEEE-1991標準符號,故在圖1-5中作了比較。圖1-5即ANSI/IEEE-1991版與ANSI/IEEE-1984版(與中國國標相同)的IEC國際標準邏輯門符號對照表。邏輯表達式IEEE1991版

標準邏輯符號邏輯表達式IEEE1991版

標準邏輯符號IEEE1984版

標準邏輯符號圖1-5兩種不同版本的國際標準邏輯門符號對照表在目前流行的EDA軟件中,原理圖中的邏輯符號也都采用了ANSI/IEEE-1991標準。由于PLD的復(fù)雜結(jié)構(gòu),用1991版本的符號的好處是能十分容易地衍生出一套用于描述PLD復(fù)雜邏輯結(jié)構(gòu)的簡化符號來。如圖1-6所示,接入PLD內(nèi)部的“與?或”陣列輸入緩沖器電路,一般采用互補結(jié)構(gòu),它等效于圖1-7的邏輯結(jié)構(gòu),即當信號輸入PLD后,分別以其同相和反相信號接入。圖1-8是PLD中“與”陣列的簡化圖形,表示可以選擇A、B、C和D4個信號中的任一組或全部輸入與門。在這里用以形象地表示“與”陣列,這是在原理上的等效。當采用某種硬件實現(xiàn)方法時(如NMOS電路),在圖中的與門可能根本不存在。但NMOS構(gòu)成的連接陣列中卻含有了“與”的邏輯。同樣的道理,“或”陣列也用類似的方式表示。圖

1-9是PLD中“或”陣列的簡化圖形表示。圖1-10是在陣列中連接關(guān)系的表示。十字交叉線表示兩條線未連接;交叉線的交點上打黑點,表示固定連接,即在PLD出廠時已連接;交叉線的交點上打叉,表示該點可編程,在PLD出廠后通過編程,其連接可隨時改變。 圖1-6PLD的互補緩沖器圖1-7PLD的互補輸入圖1-8PLD中“與”陣列的表示圖1-9PLD中“或”陣列的表示

圖1-10陣列線連接表示 PROM作為可編程只讀存儲器。其ROM除了用作只讀存儲器外,還可作為PLD使用。一個ROM器件主要由地址譯碼部分、ROM單元陣列和輸出緩沖部分構(gòu)成。對PROM也可以從可編程邏輯器件的角度來分析其基本結(jié)構(gòu)。為了更清晰直觀地表示PROM中固定的“與”陣列和可編程的“或”陣列,PROM可以表示為PLD陣列圖,以4×2PROM為例,如圖1-11所示。以下二式是已知半加器的邏輯表達式,可用4×2PROM編程實現(xiàn)。 , 圖1-12的連接結(jié)構(gòu)表達的是半加器邏輯陣列: , 此二式是圖1-12結(jié)構(gòu)的布爾表達式,即所謂的“乘積項”方式。式中的A1和A0分別是加數(shù)和被加數(shù),F(xiàn)0為和,F(xiàn)1為進位。反之,根據(jù)半加器的邏輯關(guān)系,也可以得到圖1-12的陣列點連接關(guān)系,從而可以形成陣列點文件,這個文件對于一般的PLD器件稱為熔絲圖文件(Fusemap)。對于PROM,則為存儲單元的編程數(shù)據(jù)文件。圖1-11PROM表達的PLD陣列圖圖1-12用PROM完成半加器邏輯陣列PROM只能用于組合電路的可編程上。輸入變量的增加會引起存儲容量的增加,這種增加是按2的冪次增加的,多輸入變量的組合電路函數(shù)是不適合用單個PROM來編程表達的。1.6.3GAL1985年,美國Lattice公司在PAL的基礎(chǔ)上,設(shè)計出了GAL器件,即通用陣列邏輯器件。GAL首次在PLD上采用了EEPROM工藝,使得GAL具有電可擦除重復(fù)編程的特點,徹底解決了熔絲型可編程器件的一次可編程問題。GAL在“與-或”陣列結(jié)構(gòu)上沿用了PROM的與陣列可編程、或陣列固定的結(jié)構(gòu)(見圖1-13),但對PROM的I/O結(jié)構(gòu)進行了較大的改進,在GAL的輸出部分增加了輸出邏輯宏單元(OutputLogicMacroCell,OLMC),此結(jié)構(gòu)使得PLD器件在組合邏輯和時序邏輯中的可編程或可重構(gòu)性能都成為可能。圖1-13所示的是GAL16V8型號的器件,它包含了8個邏輯宏單元OLMC,每一個OLMC可實現(xiàn)時序電路可編程,而其左側(cè)的電路結(jié)構(gòu)是與陣列可編程的組合邏輯可編程結(jié)構(gòu)。專業(yè)習(xí)慣是將OLMC及左側(cè)的可編程與陣列合稱一個邏輯宏單元,即標志PLD器件邏輯資源的最小單元,由此可以認為GAL16V8器件的邏輯資源是8個邏輯宏單元,而目前最大的FPGA的邏輯資源達數(shù)十萬個邏輯宏單元。也有將邏輯門的數(shù)量作為衡量邏輯器件資源的最小單元,如某CPLD的資源約2000門等,但此類劃分方法誤差較大。GAL的OLMC單元設(shè)有多種組態(tài),可配置成專用組合輸出、專用輸入、組合輸出雙向口、寄存器輸出、寄存器輸出雙向口等,為邏輯電路設(shè)計提供了極大的靈活性。由于具有結(jié)構(gòu)重構(gòu)和輸出端的功能均可移到另一輸出引腳上的功能,在一定程度上簡化了電路板的布局布線,使系統(tǒng)的可靠性進一步提高。圖1-13GAL16V8的結(jié)構(gòu)圖圖1-13中,GAL的輸出邏輯宏單元OLMC中含有4個多路選擇器,通過不同的選擇方式可以產(chǎn)生多種輸出結(jié)構(gòu),分別屬于3種模式,一旦確定了某種模式,所有的OLMC都將工作在同一種模式下。圖1-14即為其中一種輸出模式對應(yīng)的結(jié)構(gòu)。圖1-14寄存器輸出結(jié)構(gòu)1.7CPLD的結(jié)構(gòu)與可編程原理CPLD即復(fù)雜可編程邏輯器件(ComplexProgrammableLogicDevice)。早期CPLD是從GAL的結(jié)構(gòu)擴展而來,但針對GAL的缺點進行了改進。在流行的CPLD中,Altera的MAX7000S系列器件具有一定典型性,在這里以此為例介紹CPLD的結(jié)構(gòu)和工作原理,其中的許多結(jié)構(gòu)(如I/O結(jié)構(gòu))與FPGA也類似,望讀者關(guān)注,并注意比較。相比于FPGA,CPLD的邏輯資源要小得多。MAX7000S系列器件包含32~256個邏輯宏單元(LogicCell,LC),其單個邏輯宏單元結(jié)構(gòu)如圖1-15所示。每16個邏輯宏單元組成一個邏輯陣列塊(LogicArrayBlock,LAB)。與GAL類似,每個邏輯宏單元含有一個可編程的“與”陣列和固定的“或”陣列,以及一個可配置寄存器,每個宏單元共享擴展乘積項和高速并聯(lián)擴展乘積項,它們可向每個邏輯宏單元提供多達32個乘積項,以構(gòu)成復(fù)雜的邏輯函數(shù)。MAX7000S結(jié)構(gòu)中包含有5個主要部分,即邏輯陣列塊、邏輯宏單元、擴展乘積項(共享和并聯(lián))、可編程連線陣列、I/O控制塊。以下簡要介紹相關(guān)模塊。1.邏輯陣列塊陣列以及它們之間的連線構(gòu)成。多個LAB通過可編程連線陣(ProgrammableInterconnectArray,PIA)和全局總線連接在一起(見圖1-16),全局總線從所有的專用輸入、I/O引腳和宏單元饋入信號。對于每個LAB,輸入信號來自3部分:(1)來自作為通用邏輯輸入的PIA的36個信號;(2)來自全局控制信號,用于寄存器輔助功能;(3)從I/O引腳到寄存器的直接輸入通道。

圖1-15MAX7000S系列的單個邏輯宏單元結(jié)構(gòu)圖1-16MAX7000S的結(jié)構(gòu)2.邏輯宏單元MAX7000S系列中的邏輯宏單元由3個功能塊組成:邏輯陣列、乘積項選擇矩陣和可編程寄存器,它們可以被單獨地配置為時序邏輯和組合邏輯工作方式。其中邏輯陣列實現(xiàn)組合邏輯,可以給每個邏輯宏單元提供5個乘積項?!俺朔e項選擇矩陣”分配這些乘積項作為到“或門”和“異或門”的主要邏輯輸入,以實現(xiàn)組合邏輯函數(shù);或者把這些乘積項作為宏單元中寄存器的輔助輸入:清零(Clear)、置位(Preset)、時鐘(Clock)和時鐘使能控制(ClockEnable)。每個邏輯宏單元中有一個“共享擴展”乘積項經(jīng)非門后回饋到邏輯陣列中,邏輯宏單元中還存在“并行擴展”乘積項,從鄰近邏輯宏單元借位而來。邏輯宏單元中的可配置寄存器可以單獨地被配置為帶有可編程時鐘控制的D、T、JK或SR觸發(fā)器工作方式,也可以將寄存器旁路掉,以實現(xiàn)組合邏輯工作方式。每個可編程寄存器可以按3種時鐘輸入模式工作。全局時鐘信號。該模式能實現(xiàn)最快的時鐘到輸出(ClocktoOutput)性能,這時全局時鐘輸入直接連向每一個寄存器的CLK端。全局時鐘信號由高電平有效的時鐘信號使能。這種模式提供每個觸發(fā)器的時鐘使能信號,由于仍使用全局時鐘,輸出速度較快。用乘積項實現(xiàn)一個陣列時鐘。在這種模式下,觸發(fā)器由來自隱埋的邏輯宏單元或I/O引腳的信號進行鐘控,其速度稍慢。每個寄存器都支持異步清零和異步置位功能。乘積項選擇矩陣負責分配和控制這些操作。雖然乘積項驅(qū)動寄存器的置位和復(fù)位信號是高電平有效,但在邏輯陣列中將信號取反可得到低電平有效的效果。此外,每一個寄存器的復(fù)位端可以由低電平有效的全局復(fù)位專用引腳GCLRn信號來驅(qū)動。3.擴展乘積項雖然大部分邏輯函數(shù)能夠由在每個宏單元中的5個乘積項實現(xiàn),但更復(fù)雜的邏輯函數(shù)需要附加乘積項。可以利用其他宏單元以提供所需的邏輯資源,對于MAX7000S系列,還可以利用其結(jié)構(gòu)中具有的共享和并聯(lián)擴展乘積項,即“擴展項”。這兩種擴展項作為附加的乘積項直接送到本LAB的任意一個宏單元中。利用擴展項可保證在實現(xiàn)邏輯綜合時,用盡可能少的邏輯資源,得到盡可能快的工作速度。4.可編程連線陣列不同的LAB通過在可編程連線陣列(PIA)上布線,以相互連接構(gòu)成所需的邏輯。這個全局總線是一種可編程的通道,可以把器件中任何信號連接到用戶希望的目的地。所有MAX7000S器件的專用輸入、I/O引腳和邏輯宏單元輸出都連接到PIA,而PIA可把這些信號送到整個器件內(nèi)的各個地方。只有每個LAB需要的信號才布置從PIA到該LAB的連線。由圖1-17可看出PIA信號布線到LAB的方式。圖1-17顯示,通過EEPROM單元控制與門的一個輸入端,以便選擇驅(qū)動LAB的PIA信號。由于MAX7000S的PIA有固定的延時,因此使得器件延時性能容易預(yù)測。5.I/O控制塊I/O控制塊允許每個I/O引腳被單獨配置為輸入、輸出和雙向3種工作方式。所有I/O引腳都有一個三態(tài)緩沖器,它的控制端信號來自一個多路選擇器,可以選擇用全局輸出使能信號其中之一進行控制,或者直接連到地(GND)或電源(VCC)上。圖1-18表示的是EPM7128S器件的I/O控制塊,它共有6個全局輸出使能信號。這6個使能信號可來自兩個輸出使能信號(OE1、OE2)、I/O引腳的子集或I/O宏單元的子集,并且也可以是這些信號取反后的信號。當三態(tài)緩沖器的控制端接地(GND)時,其輸出為高阻態(tài),這時I/O引腳可作為專用輸入引腳使用。當三態(tài)緩沖器控制端接電源VCC時,輸出被一直使能,作為普通輸出引腳。MAX7000S結(jié)構(gòu)提供雙I/O反饋,其邏輯宏單元和I/O引腳的反饋是獨立的。當I/O引腳被配置成輸入引腳時,與其相聯(lián)的宏單元可以作為隱埋邏輯使用。對于I/O工作電壓,MAX7000S(S系列)器件有多種不同特性的系列。其中E、S系列為5.0V工作電壓,A和AE系列為3.3V工作電壓,B系列為2.5V工作電壓。圖1-17PIA信號布線到LAB的方式圖1-18EPM7128S器件的I/O控制塊1.8FPGA的結(jié)構(gòu)與工作原理FPGA是大規(guī)模可編程邏輯器件的另一大類PLD器件,而且其邏輯規(guī)模比CPLD大得多,應(yīng)用領(lǐng)域也要寬得多。以下介紹最常用的FPGA的結(jié)構(gòu)及其工作原理。1.8.1查找表邏輯結(jié)構(gòu)前面提到的可編程邏輯器件,諸如GAL、CPLD之類都是基于乘積項的可編程結(jié)構(gòu),即由可編程的“與”陣列和固定的“或”陣列組成。而在本節(jié)中將要介紹的FPGA,使用了另一種可編程邏輯的形成方法,即可編程的查找表(LookUpTable,LUT)結(jié)構(gòu),LUT是可編程的最小邏輯構(gòu)成單元。大部分FPGA采用基于SRAM(靜態(tài)隨機存儲器)的查找表邏輯形成結(jié)構(gòu),即用SRAM來構(gòu)成邏輯函數(shù)發(fā)生器。一個N輸入LUT可以實現(xiàn)N個輸入變量的任何邏輯功能,如N輸入“與”、N輸入“異或”等。圖1-19是4輸入LUT,其內(nèi)部結(jié)構(gòu)如圖1-20所示。圖1-19FPGA查找表單元圖1-20FPGA查找表單元內(nèi)部結(jié)構(gòu) 一個N輸入的查找表,需要SRAM存儲N個輸入構(gòu)成的真值表,需要用2N次冪個位的SRAM單元。顯然N不可能很大,否則LUT的利用率很低,輸入多于N個的邏輯函數(shù),必須用數(shù)個查找表分開實現(xiàn)。Xilinx的Virtex-6系列、Spartan-3E系列、Spartan-6系列,Altera的Cyclone、CycloneI/II/III/IV/V、Stratix-3、Stratix-4等系列都采用SRAM查找表形式構(gòu)成,是典型的FPGA器件。1.8.2CycloneIII系列器件的結(jié)構(gòu)原理考慮到本書此后給出的實驗項目主要以CycloneIII系列FPGA為主,且其結(jié)構(gòu)和工作原理也具有典型性,故在此簡要介紹此類器件的結(jié)構(gòu)與工作原理。CycloneIII系列器件是Altera公司近年推出的一款低功耗、高性價比的FPGA,它主要由邏輯陣列塊(LogicArrayBlock,LAB)、嵌入式存儲器塊、嵌入式硬件乘法器、I/O單元和嵌入式PLL等模塊構(gòu)成,在各個模塊之間存在著豐富的互連線和時鐘網(wǎng)絡(luò)。CycloneIII器件的可編程資源主要來自邏輯陣列塊LAB,而每個LAB都由多個邏輯宏單元(LogicElement,LE)構(gòu)成。LE是CycloneIIIFPGA器件的最基本的可編程單元,圖1-21顯示了CycloneIIIFPGA的LE的內(nèi)部結(jié)構(gòu)。觀察圖1-21可以發(fā)現(xiàn),LE主要由一個4輸入的查找表LUT、進位鏈邏輯、寄存器鏈邏輯和一個可編程的寄存器構(gòu)成。4輸入的LUT可以完成所有的4輸入1輸出的組合邏輯功能。每一個LE的輸出都可以連接到行、列、直連通路、進位鏈、寄存器鏈等布線資源。每個LE中的可編程寄存器可以被配置成D觸發(fā)器、T觸發(fā)器、JK觸發(fā)器和RS寄存器模式。每個可編程寄存器具有數(shù)據(jù)、時鐘、時鐘使能、清零等輸入信號。全局時鐘網(wǎng)絡(luò)、通用I/O口以及內(nèi)部邏輯可以靈活配置寄存器的時鐘和清零信號。任何一個通用I/O和內(nèi)部邏輯都可以驅(qū)動時鐘使能信號。在一些只需要組合電路的應(yīng)用中,對于組合邏輯的實現(xiàn),可將該可配置寄存器旁路,LUT的輸出可作為LE的輸出。LE有3個輸出驅(qū)動內(nèi)部互連、一個驅(qū)動局部互連、另兩個驅(qū)動行或列的互連資源。LUT和寄存器的輸出可以單獨控制,可以實現(xiàn)在一個LE中,LUT驅(qū)動一個輸出,而寄存器驅(qū)動另一個輸出(這種技術(shù)稱為寄存器打包)。因而在一個LE中的寄存器和LUT能夠用來完成不相關(guān)的功能,因此能夠提高LE的資源利用率。圖1-21CycloneIII的LE結(jié)構(gòu)圖寄存器反饋模式允許在一個LE中寄存器的輸出作為反饋信號,加到LUT的一個輸入上,在一個LE中就完成反饋。除上述的3個輸出外,在一個邏輯陣列塊中的LE還可以通過寄存器鏈進行級聯(lián)。在同一個LAB中的LE里的寄存器可以通過寄存器鏈級聯(lián)在一起,構(gòu)成一個移位寄存器,那些LE中的LUT資源可以單獨實現(xiàn)組合邏輯功能,兩者互不相關(guān)。CycloneIII的LE可以工作在兩種操作模式下,即普通模式和算術(shù)模式。普通模式下的LE適合通用邏輯應(yīng)用和組合邏輯的實現(xiàn)。在該模式下,來自LAB局部互連的4個輸入將作為一個4輸入1輸出的LUT的輸入端口??梢赃x擇進位輸入(cin)信號或者data3信號作為LUT中的一個輸入信號。每一個LE都可以通過LUT鏈直接連接到(在同一個LAB中的)下一個LE。在普通模式下,LE的輸入信號可以作為LE中寄存器的異步裝載信號。普通模式下的LE也支持寄存器打包與寄存器反饋。在CycloneIII器件中的LE還可以工作在算術(shù)模式下。在這種模式下,可以更好地實現(xiàn)加法器、計數(shù)器、累加器和比較器。在算術(shù)模式下的單個LE內(nèi)有兩個3輸入LUT,可被配置成一位全加器和基本進位鏈結(jié)構(gòu)。其中一個3輸入LUT用于計算,另外一個3輸入LUT用來生成進位輸出信號cout。在算術(shù)模式下,LE支持寄存器打包與寄存器反饋。邏輯陣列塊LAB是由一系列相鄰的LE構(gòu)成的。每個CycloneIII的LAB包含16個LE,在LAB中、LAB之間存在著行互連、列互連、直連通路互連、LAB局部互連、LE進位鏈和寄存器鏈。在CycloneIIIFPGA器件中所包含的嵌入式存儲器(EmbeddedMemory),由數(shù)十個M9K的存儲器塊構(gòu)成。每個M9K存儲器塊具有很強的伸縮性,可以實現(xiàn)的功能有8192位RAM(單端口、雙端口、帶校驗、字節(jié)使能)、ROM、移位寄存器、FIFO等。CycloneIIIFPGA中的嵌入式存儲器可以通過多種連線與可編程資源實現(xiàn)連接,這大大增強了FPGA的性能,擴大了FPGA的應(yīng)用范圍。在CycloneIII系列器件中還有嵌入式乘法器(EmbeddedMultiplier),這種硬件乘法器的存在可以大大提高FPGA在完成DSP(數(shù)字信號處理)任務(wù)時的能力。嵌入式乘法器可以實現(xiàn)9×9乘法器或者18×18乘法器,乘法器的輸入與輸出可以選擇是寄存的還是非寄存的(即組合輸入輸出);可以與FPGA中的其他資源靈活地構(gòu)成適合DSP算法的MAC(乘加單元)。在數(shù)字邏輯電路的設(shè)計中,時鐘、復(fù)位信號往往需要同步作用于系統(tǒng)中的每個時序邏輯單元,因此在CycloneIII器件中設(shè)置有全局控制信號。由于系統(tǒng)的時鐘延時會嚴重影響系統(tǒng)的性能,故在CycloneIII中設(shè)置了復(fù)雜的全局時鐘網(wǎng)絡(luò),以減少時鐘信號的傳輸延遲。另外,在CycloneIIIFPGA中還含有2~4個獨立的嵌入式鎖相環(huán)PLL,可以用來調(diào)整時鐘信號的波形、頻率和相位。PLL的使用方法將在第6章中介紹。CycloneIII的I/O支持多種I/O接口,符合多種I/O標準,可以支持差分的I/O標準,比如LVDS(低壓差分串行)和RSDS(去抖動差分信號)、SSTL-2、SSTL-18、HSTL-18、HSTL-15、HSTL-12、PPDS、差分LVPECL,當然也支持普通單端的I/O標準,比如LVTTL、LVCMOS、PCI和PCI-XI/O等,通過這些常用的端口與板上的其他芯片溝通。CycloneIII器件還可以支持多個通道的LVDS和RSDS。CycloneIII器件內(nèi)的LVDS緩沖器可以支持高達875Mbps的數(shù)據(jù)傳輸速度。與單端的I/O標準相比,這些內(nèi)置于CycloneIII器件內(nèi)部的LVDS緩沖器保持了信號的完整性,并具有更低的電磁干擾、更好的電磁兼容性(EMI)及更低的電源功耗。圖1-22為CycloneIII器件內(nèi)部的LVDS接口電路示意圖。圖1-22LVDS接口電路CycloneIII系列器件除了片上的嵌入式存儲器資源外,還可以外接多種外部存儲器,比如SRAM、NAND、SDRAM、DDRSDRAM、DDR2SDRAM等。CycloneIII的電源支持采用內(nèi)核電壓和I/O電壓(3.3V)分開供電的方式,I/O電壓取決于使用時需要的I/O標準,而內(nèi)核電壓使用1.2V供電,內(nèi)部PLL使用2.5V供電。CycloneIII系列中有一個子系列是Cyclone3LS系列,該系列器件可以支持加密功能,使用AES加密算法對FPGA上的數(shù)據(jù)做保護。1.9硬件測試技術(shù)進入21世紀,集成電路技術(shù)的飛速發(fā)展,推動了半導(dǎo)體存儲、微處理器等相關(guān)技術(shù)的飛速發(fā)展,CPLD/FPGA也在其列。CPLD、FPGA和ASIC的規(guī)模和復(fù)雜程度同步增加。在CPLD/FPGA應(yīng)用中,測試顯得越來越重要。由于其本身技術(shù)的復(fù)雜性,測試也分多個部分:在“軟”的方面,邏輯設(shè)計的正確性需要驗證,這不僅在功能這一級上,對于具體的CPLD/FPGA還要考慮種種內(nèi)部或I/O上的時延特性;在“硬”的方面,首先在PCB板級引腳的連接需要測試,其次是I/O的功能也需要專門的測試。1.9.1內(nèi)部邏輯測試對FPGA/CPLD的內(nèi)部邏輯測試是應(yīng)用設(shè)計可靠性的重要保證。由于設(shè)計的復(fù)雜性,內(nèi)部邏輯測試面臨越來越多的問題。設(shè)計者通常不可能考慮周全,這就需要在設(shè)計時加入用于測試的部分邏輯,即進行可測性設(shè)計(DesignForTest,DFT),在設(shè)計完成后用來測試關(guān)鍵邏輯。在ASIC設(shè)計中的掃描寄存器,是可測性設(shè)計的一種,其原理是把ASIC中關(guān)鍵邏輯部分的普通寄存器用測試掃描寄存器來代替,在測試中可以動態(tài)地測試、分析設(shè)計其中寄存器所處的狀態(tài),甚至對某個寄存器加以激勵信號,改變該寄存器的狀態(tài)。有的FPGA/CPLD廠商提供一種技術(shù),即在可編程邏輯器件中嵌入某種邏輯功能模塊,與EDA工具軟件相配合提供一種嵌入式邏輯分析儀,以幫助測試工程師發(fā)現(xiàn)內(nèi)部邏輯問題。本書將要介紹的基于JTAG端口的Altera的嵌入式邏輯分析儀SignalTapII、存儲器內(nèi)容在系統(tǒng)編輯器In-SystemMemoryContentEditor以及源和探測端口在系統(tǒng)編輯器In-SystemSourcesandProbesEditor等都是這方面的代表。在內(nèi)部邏輯測試時,還會涉及測試的覆蓋率問題。對于小型邏輯電路,邏輯測試的覆蓋率可以很高,甚至達到100%;可是對于一個復(fù)雜數(shù)字系統(tǒng)設(shè)計,內(nèi)部邏輯覆蓋率不可能達到100%,這就必須尋求別更有效的方法來解決。1.9.2JTAG邊界掃描測試在20世紀80年代,聯(lián)合測試行動組(JointTestActionGroup,JTAG)開發(fā)了IEEE1149.1—1990邊界掃描測試技術(shù)規(guī)范。該規(guī)范提供了有效的測試引線間隔致密的電路板上集成電路芯片的能力。大多數(shù)的FPGA/CPLD廠家的器件遵守IEEE規(guī)范,并為輸入引腳和輸出引腳以及專用配置引腳提供了邊界掃描測試(BoardScanTest,BST)的能力。邊界掃描測試標準IEEE1149.1BST的結(jié)構(gòu),即當器件工作在JTAGBST模式時,使用4個I/O引腳和一個可選引腳TRST作為JTAG引腳。4個I/O引腳是TDI、TDO、TMS和TCK。表1-1概括了這些引腳的功能。表1-1邊界掃描I/O引腳功能引腳描述功能TDI測試數(shù)據(jù)輸入(TestDataInput)測試指令和編程數(shù)據(jù)的串行輸入引腳。數(shù)據(jù)在TCK的上升沿移入TDO測試數(shù)據(jù)輸出(TestDataOutput)測試指令和編程數(shù)據(jù)的串行輸出引腳,數(shù)據(jù)在TCK的下降沿移出。如果數(shù)據(jù)沒有被移出時,該引腳處于高阻態(tài)TMS測試模式選擇(TestModeSelect)控制信號輸入引腳,負責TAP控制器的轉(zhuǎn)換。TMS必須在TCK的上升沿到來之前穩(wěn)定TCK測試時鐘輸入(TestClockInput)時鐘輸入到BST電路,一些操作發(fā)生在上升沿,而另一些發(fā)生在下降沿TRST測試復(fù)位輸入(TestResetInput)低電平有效,異步復(fù)位邊界掃描電路(在IEEE規(guī)范中,該引腳可選)其實,現(xiàn)在FPGA和CPLD上的JTAG端口多數(shù)情況下作為編程下載口或其他信息通信口,如以上提到的內(nèi)部存儲器通信口或嵌入式邏輯分析儀的數(shù)據(jù)通信口等。1.10編程與配置在大規(guī)??删幊踢壿嬈骷霈F(xiàn)以前,人們在設(shè)計數(shù)字系統(tǒng)時,把器件焊接在電路板上是設(shè)計的最后一個步驟。當設(shè)計存在問題并得到解決后,設(shè)計者往往不得不重新設(shè)計印制電路板。設(shè)計周期被無謂地延長了,設(shè)計效率變得很低。CPLD和FPGA的出現(xiàn)改變了這一切?,F(xiàn)在,人們在未設(shè)計具體電路時,就把CPLD或FPGA焊接在印制電路板上,然后在設(shè)計調(diào)試時可以一次又一次隨心所欲地改變整個電路的硬件邏輯關(guān)系,而不必改變電路板的結(jié)構(gòu)。這一切都有賴于FPGA和CPLD的在系統(tǒng)下載或重新配置功能。目前常見的大規(guī)??删幊踢壿嬈骷木幊坦に囉?種。(1)基于電可擦除存儲單元的EEPROM或Flash技術(shù)。CPLD一般使用此技術(shù)進行編FPGA也采用Flash工藝,如Actel的ProASICplus系列FPGA、Lattice的LatticeXP系列FPGA。(2)基于SRAM查找表的編程單元。對該類器件,編程信息是保存在SRAM中的,掉電后編程信息立即丟失,在下次上電后,還需要重新載入編程信息。大部分FPGA采用該種編程工藝。所以對于SRAM型FPGA,在實用中必須利用專用配置器件來存儲編程信息,以便在上電后,該器件能對FPGA自動編程配置。(3)基于反熔絲編程單元。Actel的FPGA;Xilinx的部分早期的FPGA采用此種結(jié)構(gòu)。相比之下,電可擦除編程工藝的優(yōu)點是編程后信息不會因掉電而丟失,但編程次數(shù)有限,編程的速度不快。對于SRAM型FPGA來說,配置次數(shù)為無限,在加電時可隨時更改邏輯,但掉電后芯片中的信息立即丟失,每次上電時必須重新載入信息。Altera的FPGA器件有兩類配置下載方式:主動配置方式和被動配置方式。主動配置方式由FPGA器件引導(dǎo)配置操作過程,它控制著外部存儲器和初始化過程,而被動配置方式則由外部計算機或控制器控制配置過程。FPGA在正常工作時,它的配置數(shù)據(jù)(下載進去的邏輯信息)存儲在SRAM中。由于SRAM的易失性,每次加電時,配置數(shù)據(jù)都必須重新下載。在實驗系統(tǒng)中,通常用計算機或控制器進行調(diào)試,因此可以使用被動配置方式。而實用系統(tǒng)中,多數(shù)情況下必須由FPGA主動引導(dǎo)配置操作過程,這時FPGA將主動從外圍專用存儲芯片中獲得配置數(shù)據(jù),而此芯片中的FPGA配置信息是用普通編程器將設(shè)計所得的POF或JIC等格式的文件燒錄進去的。EPC器件中的EPC2型號的器件是采用Flash存儲工藝制作的具有可多次編程特性的配置器件。EPC2器件通過符合IEEE標準的JTAG接口可以提供3.3/5V的在系統(tǒng)編程能力;具有內(nèi)置的JTAG邊界掃描測試(BST)電路,可通過USB-Blaster或ByteBlasterMV等下載電纜,使用串行矢量格式文件pof或JamByte-Code(.jbc)等格式文件對其進行編程。EPC1/1441等器件屬OTP器件。對于Cyclone、Cyclone2/3/4/5等系列器件,Altera還提供AS方式的配置器件、EPCS系列專用配置器件。EPCS系列(如EPCS1/4/16等)配置器件也是串行編程的。1.11QuartusII由于本書給出的實驗和設(shè)計多是基于QuartusII的,其應(yīng)用方法和設(shè)計流程對于其他流行的EDA工具而言具有一定的典型性和一般性,所以在此對它做一些介紹。QuartusII是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII在21世紀初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX+plusII的更新?lián)Q代產(chǎn)品,其在QuartusII上可以完成1.5節(jié)所述的整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。Altera的QuartusII提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為AlteraDSP開發(fā)包進行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境。QuartusII設(shè)計工具完全支持Verilog、VHDL的設(shè)計流程,其內(nèi)部嵌有Verilog、VHDL和SystemVerilog邏輯綜合器。QuartusII也可以利用第三方的綜合工具,如LeonardoSpectrum、SynplifyPro、DC-FPGA,并能直接調(diào)用這些工具。同樣,QuartusII具備仿真功能,同時也支持第三方的仿真工具,如ModelSim。此外QuartusII與MATLAB和DSPBuilder結(jié)合,可以進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關(guān)鍵EDA工具。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis&Synthesis)、適配器(Fitter)、裝配器(Assembler)、時序分析器(TimingAnalyzer)、設(shè)計輔助模塊(DesignAssistant)、EDA網(wǎng)表文件生成器(EDANetlistWriter)、編輯數(shù)據(jù)接口(CompilerDatabaseInterface)等??梢酝ㄟ^選擇StartCompilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。還可以通過選擇CompilerTool(Tools菜單)命令,在CompilerTool窗口中運行相應(yīng)的功能模塊。在CompilerTool窗口中,可以打開相應(yīng)的功能模塊所包含的設(shè)置文件或報告文件,或打開其他相關(guān)窗口。此外,QuartusII還包含許多十分有用的LPM(LibraryofParameterizedModules)模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部分,也可在Quartus

II中與普通設(shè)計文件一起使用(第6章中將詳細介紹這部分內(nèi)容)。Altera提供的LPM函數(shù)均基于Altera器件的結(jié)構(gòu)做了優(yōu)化設(shè)計。圖1-23上排所示的是QuartusII編譯設(shè)計主控界面,它顯示了QuartusII自動設(shè)計的各主要處理環(huán)節(jié)和設(shè)計流程,包括設(shè)計輸入編輯、設(shè)計分析與綜合、適配、編程文件匯編(裝配)、時序參數(shù)提取以及編程下載等幾個步驟;圖1-23下排的流程框圖,是與上面的QuartusII設(shè)計流程相對照的標準的EDA開發(fā)流程。圖1-23QuartusII設(shè)計流程QuartusII編譯器支持的硬件描述語言有VHDL、Verilog、SystemVerilog及AHDL。AHDL是Altera公司自己設(shè)計、制定的硬件描述語言,是一種以結(jié)構(gòu)描述方式為主的硬件描述語言,只有企業(yè)標準。QuartusII允許第三方的EDIF、VQM文件輸入,并提供了很多EDA軟件的接口。QuartusII支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊(元件)進行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論