




已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
電子設(shè)計自動化技術(shù)20世紀(jì)末,電子設(shè)計技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透到社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也變得越來越快。微電子技術(shù)的進(jìn)步表現(xiàn)在大規(guī)模集成電路加工技術(shù)即半導(dǎo)體工藝技術(shù)的發(fā)展上,使得表征半導(dǎo)體工藝水平的線寬已經(jīng)達(dá)到了90nm,并還在不斷地縮小,在硅片單位面積上,集成了更多的晶體管。集成電路設(shè)計正在不斷地向超大規(guī)模、極低功耗和超高速的方向發(fā)展;專用集成電路ASIC(Application Specific Integrated Circuit)的設(shè)計成本不斷降低,在功能上,現(xiàn)代的集成電路已能夠?qū)崿F(xiàn)單片電子系統(tǒng)SOC(System On a Chip)。現(xiàn)代電子設(shè)計技術(shù)的核心已日趨轉(zhuǎn)向基于計算機(jī)的電子設(shè)計自動化技術(shù),即EDA(Electronic Design Automation)技術(shù)。EDA技術(shù)就是依賴功能強(qiáng)大的計算機(jī),在EDA工具軟件平臺上,對以硬件描述語言HDL(Hardware Description Language)為系統(tǒng)邏輯描述手段完成的設(shè)計文件,自動地完成邏輯編譯、邏輯化簡、邏輯分割、邏輯綜合、結(jié)構(gòu)綜合(布局布線),以及邏輯優(yōu)化和仿真測試,直至實現(xiàn)既定的電子線路系統(tǒng)功能。EDA技術(shù)使得設(shè)計者的工作僅限于利用軟件的方式,即利用硬件描述語言和EDA軟件來完成對系統(tǒng)硬件功能的實現(xiàn),這是電子設(shè)計技術(shù)的一個巨大進(jìn)步。另一方面,在現(xiàn)代高新電子產(chǎn)品的設(shè)計和生產(chǎn)中,微電子技術(shù)和現(xiàn)代電子設(shè)計技術(shù)是相互促進(jìn)、相互推動又相互制約的兩個環(huán)節(jié);前者代表了物理層在廣度和深度上硬件電路實現(xiàn)的發(fā)展,后者則反映了現(xiàn)代先進(jìn)的電子理論、電子技術(shù)、仿真技術(shù)、設(shè)計工藝和設(shè)計技術(shù)與最新的計算機(jī)軟件技術(shù)有機(jī)的融合和升華。因此,嚴(yán)格地說,EDA技術(shù)應(yīng)該是這二者的結(jié)合,是這兩個技術(shù)領(lǐng)域共同孕育的奇葩。EDA技術(shù)在硬件實現(xiàn)方面融合了大規(guī)模集成電路制造技術(shù),IC版圖設(shè)計技術(shù)、ASIC測試和封裝技術(shù)、FPGA/CPLD編程下載技術(shù)、自動測試技術(shù)等;在計算機(jī)輔助工程方面融合了計算機(jī)輔助設(shè)計(CAD)、計算機(jī)輔助制造(CAM)、計算機(jī)輔助測試(CAT)、計算機(jī)輔助工程(CAE)技術(shù)以及多種計算機(jī)語言的設(shè)計概念;而在現(xiàn)代電子學(xué)方面則容納了更多的內(nèi)容,如電子線路設(shè)計理論、數(shù)字信號處理技術(shù)、數(shù)字系統(tǒng)建模和優(yōu)化技術(shù)及長線技術(shù)理論等。因此EDA技術(shù)為現(xiàn)代電子理論和設(shè)計的表達(dá)與實現(xiàn)提供了可能性。在現(xiàn)代技術(shù)的所有領(lǐng)域中,縱觀許多得以飛速發(fā)展的科學(xué)技術(shù),多為計算機(jī)輔助設(shè)計,而非自動化設(shè)計。顯然,最早進(jìn)入設(shè)計自動化的技術(shù)領(lǐng)域之一是電子技術(shù),這就是為什么電子技術(shù)始終處于所有科學(xué)技術(shù)發(fā)展最前列的原因之一。不難理解,EDA技術(shù)已不是某一學(xué)科的分支,或某種新的技能技術(shù),而應(yīng)該是一門綜合性學(xué)科。它融合多學(xué)科于一體,又滲透于各學(xué)科之中,打破了軟件和硬件間的壁壘,使計算機(jī)的軟件技術(shù)與硬件實現(xiàn)、設(shè)計效率和產(chǎn)品性能合二為一,它代表了電子設(shè)計技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。正因為EDA技術(shù)豐富的內(nèi)容以及與電子技術(shù)各學(xué)科領(lǐng)域的相關(guān)性,其發(fā)展的歷程同大規(guī)模集成電路設(shè)計技術(shù)、計算機(jī)輔助工程、可編程邏輯器件,以及電子設(shè)計技術(shù)和工藝的發(fā)展是同步的。就過去近30年的電子技術(shù)的發(fā)展歷程,可大致將EDA技術(shù)的發(fā)展分為三個階段。20世紀(jì)70年代,在集成電路制作方面,MOS工藝已得到廣泛的應(yīng)用??删幊踢壿嫾夹g(shù)及其器件已經(jīng)問世,計算機(jī)作為一種運算工具已在科研領(lǐng)域得到廣泛應(yīng)用。而在后期,CAD的概念已見雛形,這一階段人們開始利用計算機(jī)取代手工勞動,輔助進(jìn)行集成電路版圖編輯、PCB布局布線等工作。20世紀(jì)80年代,集成電路設(shè)計進(jìn)入了CMOS(互補場效應(yīng)管)時代。復(fù)雜可編程邏輯器件已進(jìn)入商業(yè)應(yīng)用,相應(yīng)的輔助設(shè)計軟件也已投入使用;而在80年代末,出現(xiàn)了FPGA(Field Programmable Gate Array),CAE和CAD技術(shù)的應(yīng)用更為廣泛,它們在PCB設(shè)計方面的原理圖輸入、自動布局布線及PCB分析,以及邏輯設(shè)計、邏輯仿真、布爾方程綜合和化簡等方面擔(dān)任了重要的角色。特別是各種硬件描述語言的出現(xiàn)、應(yīng)用和標(biāo)準(zhǔn)化方面的重大進(jìn)步,為電子設(shè)計自動化必須解決的電路建模、標(biāo)準(zhǔn)文檔及仿真測試奠定了基礎(chǔ)。進(jìn)入20世紀(jì)90年代,隨著硬件描述語言的標(biāo)準(zhǔn)化得到進(jìn)一步的確立,計算機(jī)輔助工程、輔助分析和輔助設(shè)計在電子技術(shù)領(lǐng)域獲得更加廣泛的應(yīng)用,與此同時,電子技術(shù)在通信、計算機(jī)及家電產(chǎn)品生產(chǎn)中的市場需求和技術(shù)需求,也極大地推動了全新的電子設(shè)計自動化技術(shù)的應(yīng)用和發(fā)展。特別是集成電路設(shè)計工藝步入了超深亞微米階段,百萬門以上的大規(guī)??删幊踢壿嬈骷年懤m(xù)面世,以及基于計算機(jī)技術(shù)的面向用戶的低成本大規(guī)模ASIC設(shè)計技術(shù)的應(yīng)用,促進(jìn)了EDA技術(shù)的形成。更為重要的是各EDA公司致力于推出兼容各種硬件實現(xiàn)方案和支持標(biāo)準(zhǔn)硬件描述語言的EDA工具軟件的研究,都有效地將EDA技術(shù)推向成熟和實用。EDA技術(shù)在進(jìn)入21世紀(jì)后,得到了更大的發(fā)展,突出表現(xiàn)在以下幾個方面。 在FPGA上實現(xiàn)DSP(數(shù)字信號處理)應(yīng)用成為可能,用純數(shù)字邏輯進(jìn)行DSP模塊的設(shè)計,使得高速DSP實現(xiàn)成為現(xiàn)實,并有力地推動了軟件無線電技術(shù)的實用化和發(fā)展?;贔PGA的DSP技術(shù),為高速數(shù)字信號處理算法提供了實現(xiàn)途徑。 嵌入式處理器軟核的成熟,使得SOPC(System On a Programmable Chip)步入大規(guī)模應(yīng)用階段,在一片F(xiàn)PGA中實現(xiàn)一個完備的數(shù)字處理系統(tǒng)成為可能。 使電子設(shè)計成果以自主知識產(chǎn)權(quán)的方式得以明確表達(dá)和確認(rèn)成為可能。 在仿真和設(shè)計兩方面支持標(biāo)準(zhǔn)硬件描述語言且功能強(qiáng)大的EDA軟件不斷推出。 電子技術(shù)領(lǐng)域全方位融入EDA技術(shù),除了日益成熟的數(shù)字技術(shù)外,傳統(tǒng)的電路系統(tǒng)設(shè)計建模理念發(fā)生了重大的變化:軟件無線電技術(shù)的崛起,模擬電路系統(tǒng)硬件描述語言的表達(dá)和設(shè)計的標(biāo)準(zhǔn)化,系統(tǒng)可編程模擬器件的出現(xiàn),數(shù)字信號處理和圖像處理的全硬件實現(xiàn)方案的普遍接受,軟硬件技術(shù)的進(jìn)一步融合等。 EDA使得電子領(lǐng)域各學(xué)科的界限更加模糊,更加互為包容:模擬與數(shù)字、軟件與硬件、系統(tǒng)與器件、ASIC與FPGA、行為與結(jié)構(gòu)等。 更大規(guī)模的FPGA和CPLD器件的不斷推出。 基于EDA的用于ASIC設(shè)計的標(biāo)準(zhǔn)單元已涵蓋大規(guī)模電子系統(tǒng)及復(fù)雜IP核模塊。 軟硬IP(Intellectual Property)核在電子行業(yè)的產(chǎn)業(yè)領(lǐng)域廣泛應(yīng)用。 SOC高效低成本設(shè)計技術(shù)的成熟。 系統(tǒng)級、行為驗證級硬件描述語言出現(xiàn)(如System C),使復(fù)雜電子系統(tǒng)的設(shè)計和驗證趨于簡單。1.2 電子設(shè)計自動化應(yīng)用對象一般地說,利用EDA技術(shù)進(jìn)行電子系統(tǒng)設(shè)計,最后實現(xiàn)的目標(biāo)是以下3種。 全定制或半定制ASIC。 FPGA/CPLD(或稱可編程ASIC)開發(fā)應(yīng)用。 PCB(印制電路板)。實現(xiàn)目標(biāo)的前面兩項可以歸結(jié)為專用集成電路ASIC的設(shè)計和實現(xiàn)(如圖1-1所示),ASIC是最終的物理平臺,集中容納了用戶通過EDA技術(shù)將電子應(yīng)用系統(tǒng)的既定功能和技術(shù)指標(biāo)具體實現(xiàn)的硬件實體。一般而言,專用集成電路就是具有專門用途和特定功能的獨立集成電路器件,根據(jù)這個定義,作為EDA技術(shù)最終實現(xiàn)目標(biāo)的ASIC,可以通過3種途徑來完成,這可以通過圖1-1來說明。圖1-1 EDA技術(shù)實現(xiàn)目標(biāo)圖1-1中所標(biāo)的另外一個EDA技術(shù)實現(xiàn)目標(biāo)PCB,指的是印制電路板的布局布線設(shè)計及驗證分析,由于不涉及芯片層面上的設(shè)計,故不擬展開。下面主要介紹FPGA/CPLD與ASIC。1超大規(guī)??删幊踢壿嬈骷﨔PGA(Field Programmable Gate Array)和CPLD(Complex Programmable Logic Device)是實現(xiàn)這一途徑的主流器件,它們的特點是直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測試和實現(xiàn)快捷,開發(fā)效率高,成本低,上市時間短,技術(shù)維護(hù)簡單,工作可靠性好等。FPGA和CPLD的應(yīng)用是EDA技術(shù)有機(jī)融合軟硬件電子設(shè)計技術(shù)以及對自動化設(shè)計與自動化實現(xiàn)最典型的詮釋。由于FPGA和CPLD的開發(fā)工具、開發(fā)流程和使用方法與ASIC有類似之處,因此這類器件通常也被稱為可編程專用IC,或可編程ASIC。2半定制或全定制ASIC根據(jù)實現(xiàn)的工藝,基于EDA設(shè)計技術(shù)的半定制或全定制ASIC可統(tǒng)稱為掩膜(MASK)ASIC,或直接稱ASIC。ASIC大致分為門陣列ASIC、標(biāo)準(zhǔn)單元ASIC和全定制ASIC。門陣列ASIC門陣列芯片包括預(yù)定制相連的PMOS和NMOS晶體管行。設(shè)計中,用戶可以借助EDA工具將原理圖或硬件描述語言模型映像為相應(yīng)門陣列晶體管配置,創(chuàng)建一個指定金屬互連路徑文件,從而完成門陣列ASIC開發(fā)。由于有掩膜的創(chuàng)建過程,門陣列有時也稱掩膜可編程門陣列(MPGA)。但是 MPGA與FPGA完全不同,它不是用戶可編程的,也不屬于可編程邏輯范疇,而是實際的ASIC。MPGA出現(xiàn)在FPGA之前,F(xiàn)PGA技術(shù)則源自MPGA?,F(xiàn)在,Altera的HardCopy、HardCopy II技術(shù)可以提供一種把FPGA的設(shè)計轉(zhuǎn)化為結(jié)構(gòu)化ASIC的途徑。標(biāo)準(zhǔn)單元ASIC目前大部分ASIC是使用庫中的不同大小的標(biāo)準(zhǔn)單元設(shè)計的,這類芯片一般稱作基于單元的集成電路(Cell-based Integrated Circuits,CBIC)。在設(shè)計者一級,庫包括不同復(fù)雜性的邏輯組件:SSI邏輯塊、MSI邏輯塊、數(shù)據(jù)通道模塊、存儲器、IP,以及系統(tǒng)級模塊。庫包含每個邏輯單元在硅片級的完整布局,使用者只需利用EDA軟件工具與邏輯塊描述打交道即可,完全不必關(guān)心電路布局的細(xì)節(jié)。標(biāo)準(zhǔn)單元布局中,所有擴(kuò)散、接觸點、過孔、多晶信道及金屬信道都已完全確定。當(dāng)該單元用于設(shè)計時,通過EDA軟件產(chǎn)生的網(wǎng)表文件將單元布局塊“粘貼”到芯片布局之上的單元行上。標(biāo)準(zhǔn)單元ASIC設(shè)計與FPGA設(shè)計開發(fā)的流程相近。全定制芯片全定制芯片中,在針對特定工藝建立的設(shè)計規(guī)則下,設(shè)計者對于電路的設(shè)計有完全的控制權(quán),如線的間隔和晶體管大小的確定。該領(lǐng)域的一個例外是混合信號設(shè)計,使用通信電路的ASIC可以定制設(shè)計其模擬部分。3混合ASIC混合ASIC(不是指數(shù)模混合ASIC)主要指既具有面向用戶的FPGA可編程功能和邏輯資源,同時也含有可方便調(diào)用和配置的硬件標(biāo)準(zhǔn)單元模塊,如CPU、RAM、ROM、硬件加法器、乘法器、鎖相環(huán)等。Xilinx、Atmel和Altera公司已經(jīng)推出了這方面的器件,如Virtex-4系列、Excalibur(含ARM核)和Stratix II系列等?;旌螦SIC為SOC和SOPC(System On a Programmable Chip)的設(shè)計實現(xiàn)成為便捷的途徑。1.3 硬件描述語言硬件描述語言HDL是EDA技術(shù)的重要組成部分,常見的HDL主要有VHDL、Verilog HDL、ABEL、AHDL、SystemVerilog和SystemC。其中VHDL、Verilog在現(xiàn)在EDA設(shè)計中使用最多,也擁有幾乎所有的主流EDA工具的支持。而SystemVerilog和SystemC這兩種HDL語言還處于完善過程中。VHDL是作為電子設(shè)計主流硬件的描述語言之一,本書將重點介紹它的編程方法和使用技術(shù)。1.3.1 硬件描述語言VHDLVHDL的英文全名是VHSIC(Very High Speed Integrated CircuitHardware Description Language),于1983年由美國國防部(DOD)發(fā)起創(chuàng)建,由IEEE(The Institute of Electrical and Electronics Engineers)進(jìn)一步發(fā)展,并在1987年作為“IEEE標(biāo)準(zhǔn)1076”發(fā)布。從此,VHDL成為硬件描述語言的業(yè)界標(biāo)準(zhǔn)之一。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本(IEEE Std 1076)之后,各EDA公司相繼推出了自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具支持VHDL。此后VHDL在電子設(shè)計領(lǐng)域得到了廣泛應(yīng)用,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語言。VHDL作為一個規(guī)范語言和建模語言,隨著它的標(biāo)準(zhǔn)化,出現(xiàn)了一些支持該語言的行為仿真器。由于創(chuàng)建VHDL的最初目標(biāo)是用于標(biāo)準(zhǔn)文檔的建立和電路功能模擬,其基本想法是在高層次上描述系統(tǒng)和組件的行為。但到了20世紀(jì)90年代初,人們發(fā)現(xiàn),VHDL不僅可以作為系統(tǒng)模擬的建模工具,而且可以作為電路系統(tǒng)的設(shè)計工具;可以利用軟件工具將VHDL源碼自動地轉(zhuǎn)化為文本方式表達(dá)的基本邏輯組件連接圖,即網(wǎng)表文件。這種方法顯然對于電路自動設(shè)計是一個極大的推進(jìn)。很快,電子設(shè)計領(lǐng)域出現(xiàn)了第一個軟件設(shè)計工具,即VHDL邏輯綜合器,它可以標(biāo)準(zhǔn)地將VHDL的部分語句描述轉(zhuǎn)化為具體電路實現(xiàn)的網(wǎng)表文件。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展了VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言?,F(xiàn)在公布的最新VHDL標(biāo)準(zhǔn)版本是IEEE 1076-2002。VHDL語言具有很強(qiáng)的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡化了硬件設(shè)計任務(wù),提高了設(shè)計效率和可靠性。VHDL具有與具體硬件電路無關(guān)和與設(shè)計平臺無關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化結(jié)構(gòu)化設(shè)計方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。因此,VHDL在支持各種模式的設(shè)計方法、自頂向下與自底向上或混合方法方面,在面對當(dāng)今許多電子產(chǎn)品生命周期的縮短,需要多次重新設(shè)計以融入最新技術(shù),改變工藝等方面都表現(xiàn)了良好的適應(yīng)性。用VHDL進(jìn)行電子系統(tǒng)設(shè)計的一個很大的優(yōu)點是設(shè)計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的與工藝有關(guān)的因素花費過多的時間和精力。1.3.2 硬件描述語言的綜合綜合(Synthesis),就其字面含義應(yīng)該為:把抽象的實體結(jié)合成單個或統(tǒng)一的實體。因此,綜合就是把某些東西結(jié)合到一起,把設(shè)計抽象層次中的一種表述轉(zhuǎn)化成另一種表述的過程。對于電子設(shè)計領(lǐng)域的綜合概念可以表示為:將用行為和功能層次表達(dá)的電子系統(tǒng)轉(zhuǎn)換為低層次的便于具體實現(xiàn)的模塊組合裝配而成的過程。事實上,設(shè)計過程中的每一步都可稱為一個綜合環(huán)節(jié)。設(shè)計過程通常從高層次的行為描述開始,以最低層的結(jié)構(gòu)描述結(jié)束,每個綜合步驟都是上一層次的轉(zhuǎn)換。 從自然語言表述轉(zhuǎn)換到VHDL語言算法表述,是自然語言綜合。 從算法表述轉(zhuǎn)換到寄存器傳輸級(Register Transfer Level,RTL)表述,即從行為域到結(jié)構(gòu)域的綜合,是行為綜合。 從RTL級表述轉(zhuǎn)換到邏輯門(包括觸發(fā)器)的表述,即邏輯綜合。 從邏輯門表述轉(zhuǎn)換到版圖表述(ASIC設(shè)計),或轉(zhuǎn)換到FPGA的配置網(wǎng)表文件,可稱為版圖綜合或結(jié)構(gòu)綜合。有了版圖信息就可以把芯片生產(chǎn)出來了。有了對應(yīng)的配置文件,就可以使對應(yīng)的FPGA變成具有專門功能的電路器件。顯然,綜合器就是能夠自動將一種設(shè)計表示形式向另一種設(shè)計表示形式轉(zhuǎn)換的計算機(jī)程序,或協(xié)助進(jìn)行手工轉(zhuǎn)換的程序。它可以將高層次的表述轉(zhuǎn)化為低層次的表述,可以從行為域轉(zhuǎn)化為結(jié)構(gòu)域,可以將高一級抽象的電路表述(如算法級)轉(zhuǎn)化為低一級的表述(如門級),并可以用某種特定的硬件技術(shù)實現(xiàn)(如CMOS)。對設(shè)計者而言,在高抽象層次進(jìn)行系統(tǒng)設(shè)計,再利用綜合工具將設(shè)計轉(zhuǎn)化為低層次的表示,與直接在低抽象層次來設(shè)計系統(tǒng)的情況相比,類似于一個程序員用高級語言編程并用編譯器將程序編譯成機(jī)器代碼和直接用機(jī)器代碼進(jìn)行編程時的情況。前一種情況在于設(shè)計者可以將精力主要集中于系統(tǒng)級問題上,而由于不必關(guān)心低級層次的設(shè)計所面臨的細(xì)節(jié)問題,在高抽象層次上進(jìn)行設(shè)計和編程將花費較少的時間和精力,并且減少錯誤的發(fā)生。另一方面,盡管(如圖1-2所示)從表面上看,VHDL等硬件描述語言綜合器和軟件程序編譯器都不過是一種“翻譯器”,它們都能將高層次的設(shè)計表達(dá)轉(zhuǎn)化為低層次的表達(dá),但它們卻具有許多本質(zhì)的區(qū)別。編譯器將軟件程序翻譯成基于某種特定CPU的機(jī)器代碼,這種代碼僅限于這種CPU而不能移植,并且機(jī)器代碼不代表硬件結(jié)構(gòu),更不能改變CPU的硬件結(jié)構(gòu),只能被動地為其特定的硬件電路結(jié)構(gòu)所利用。如果脫離了已有的硬件環(huán)境(CPU),機(jī)器代碼將失去意義。此外,編譯器作為一種軟件的運行,除了某種單一目標(biāo)器件,即CPU的硬件結(jié)構(gòu)外,不需要任何與硬件相關(guān)的器件庫和工藝庫參與編譯。因而,編譯器的工作單純得多,編譯過程基本屬于一種一一對應(yīng)式的“翻譯”行為。綜合器則不同,同樣是類似的軟件代碼(如VHDL程序),綜合器轉(zhuǎn)化的目標(biāo)是底層的電路結(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é)果具有相對獨立性。另一方面,綜合器在將硬件描述語言表達(dá)的電路功能轉(zhuǎn)化成具體的電路結(jié)構(gòu)網(wǎng)表過程中,具有明顯的能動性和創(chuàng)造性,它不是機(jī)械的一一對應(yīng)式的“翻譯”,而是根據(jù)設(shè)計庫、工藝庫以及預(yù)先設(shè)置的各類約束條件,選擇最優(yōu)的方式完成電路結(jié)構(gòu)的形成。這就是說,對于相同的VHDL表述,綜合器可以用不同的電路結(jié)構(gòu)實現(xiàn)相同的功能。如圖1-3所示,與編譯器相比,綜合器具有更復(fù)雜的工作環(huán)境,綜合器在接受VHDL程序并準(zhǔn)備對其綜合前,必須獲得最終實現(xiàn)設(shè)計電路硬件特征相關(guān)的工藝庫的信息,以及獲得優(yōu)化綜合的諸多約束條件。一般地,約束條件可以分為3種,即設(shè)計規(guī)則、時間約束、面積約束。通常,時間約束的優(yōu)先級高于面積約束。設(shè)計優(yōu)化要求,當(dāng)綜合器把VHDL源碼翻譯成通用原理圖時,將識別狀態(tài)機(jī)、加法器、乘法器、多路選擇器和寄存器等。這些運算功能根據(jù)VHDL源碼中的符號,如加減乘除。每種運算都可用多種方法實現(xiàn),如加法可實現(xiàn)方案有多種,有的面積小,速度慢;有的速度快,面積大。VHDL行為描述強(qiáng)調(diào)的是電路的行為和功能,而不是電路如何實現(xiàn)。選擇電路的實現(xiàn)方案正是綜合器的任務(wù)。綜合器選擇一種能充分滿足各項約束條件且成本最低的實現(xiàn)方案?,F(xiàn)在的許多綜合器還允許設(shè)計者指定在做映像優(yōu)化時綜合器應(yīng)付出多大“努力”;“努力”一般可分為低、中、高三檔。圖1-2 編譯器和綜合功能比較 圖1-3 VHDL綜合器運行流程需要注意的是,VHDL(和Verilog)方面的IEEE標(biāo)準(zhǔn)主要指的是文檔的表述、行為建模及其仿真,至于在電子線路的設(shè)計方面,VHDL(和Verilog)并沒有得到全面的支持和標(biāo)準(zhǔn)化。這就是說,VHDL綜合器并不能支持標(biāo)準(zhǔn)VHDL的全集(全部語句程序),而只能支持其子集,即部分語句,并且不同的VHDL綜合器所支持的VHDL子集也不完全相同。這樣一來,對于相同VHDL源代碼,不同的VHDL綜合器可能綜合出在結(jié)構(gòu)和功能上并不完全相同的電路系統(tǒng)。對此,設(shè)計者應(yīng)給予充分的注意。因此,對于不同的綜合結(jié)果,不應(yīng)對綜合器的特性貿(mào)然作出評價,同時在設(shè)計過程中,必須盡可能全面了解所使用的綜合工具的基本特性。1.3.3 自頂向下設(shè)計方法傳統(tǒng)的電子設(shè)計流程通常是自底向上的,即首先確定構(gòu)成系統(tǒng)的最底層的電路模塊或組件的結(jié)構(gòu)和功能,然后根據(jù)主系統(tǒng)的功能要求,將它們組合成更大的功能塊,使它們的結(jié)構(gòu)和功能滿足高層系統(tǒng)的要求。以此流程,逐步向上遞推,直至完成整個目標(biāo)系統(tǒng)的設(shè)計。例如,對于一般電子系統(tǒng)的設(shè)計,使用自底向上的設(shè)計方法,必須首先決定使用的器件類別和規(guī)格,如74系列的器件、某種RAM和ROM、某類CPU或單片機(jī)以及某些專用功能芯片等;然后是構(gòu)成多個功能模塊,如數(shù)據(jù)采集控制模塊、信號處理模塊、數(shù)據(jù)交換和接口模塊等,直至最后利用它們完成整個系統(tǒng)的設(shè)計。對于ASIC設(shè)計,則是根據(jù)系統(tǒng)的功能要求,首先從繪制硅片版圖開始,逐級向上完成版圖級、門級、RTL級、行為級、功能級,直至系統(tǒng)級的設(shè)計。在這個過程中,任何一級發(fā)生問題,通常都不得不返工重來。自底向上的設(shè)計方法的特點是必須首先關(guān)注并致力于解決系統(tǒng)最底層硬件的可獲得性,以及它們的功能特性方面的諸多細(xì)節(jié)問題;在整個逐級設(shè)計和測試過程中,始終必須顧及具體目標(biāo)器件的技術(shù)細(xì)節(jié)。在這個設(shè)計過程中的任一時刻,最底層目標(biāo)器件的更換,或某些技術(shù)參數(shù)不滿足總體要求,或缺貨,或由于市場競爭的變化,臨時提出降低系統(tǒng)成本,提高運行速度等不可預(yù)測的外部因素,都將可能使前面的工作前功盡棄。由此可見,在某些情況下,自底向上的設(shè)計方法是一種低效、低可靠性、費時費力,且成本高昂的設(shè)計方法。在電子設(shè)計領(lǐng)域,自頂向下設(shè)計方法只有在EDA技術(shù)得到快速發(fā)展和成熟應(yīng)用的今天才成為可能。自頂向下設(shè)計方法的有效應(yīng)用必須基于功能強(qiáng)大的EDA工具、具備集系統(tǒng)描述、行為描述和結(jié)構(gòu)描述功能為一體的VHDL硬件描述語言,以及先進(jìn)的ASIC制造工藝和FPGA開發(fā)技術(shù)。當(dāng)今,自頂向下的設(shè)計方法已經(jīng)是EDA技術(shù)的首選設(shè)計方法,是ASIC或FPGA開發(fā)的主要設(shè)計手段。在EDA技術(shù)應(yīng)用中,自頂向下的設(shè)計方法就是在整個設(shè)計流程中各設(shè)計環(huán)節(jié)逐步求精的過程。一個項目的設(shè)計過程包括從自然語言說明到VHDL的系統(tǒng)行為描述、系統(tǒng)的分解、RTL模型的建立、門級模型產(chǎn)生,到最終的可以物理布線實現(xiàn)的底層電路,就是從高抽象級別到低抽象級別的整個設(shè)計周期。后端設(shè)計還必須包括涉及硬件的物理結(jié)構(gòu)實現(xiàn)方法和測試(仍然利用計算機(jī)完成)。應(yīng)用VHDL進(jìn)行自頂向下的設(shè)計,就是使用VHDL模型在所有綜合級別上對硬件設(shè)計進(jìn)行說明、建模和仿真測試。主系統(tǒng)及子系統(tǒng)最初的功能要求在VHDL里體現(xiàn)為可以被VHDL仿真程序驗證的可執(zhí)行程序。由于綜合工具可以將高級別的模型轉(zhuǎn)化為門級模型,所以整個設(shè)計過程基本是由計算機(jī)自動完成的。人為介入的方式主要是根據(jù)仿真的結(jié)果和優(yōu)化的指標(biāo)來控制邏輯綜合的方式和指向。因此,在設(shè)計周期中,要根據(jù)仿真的結(jié)果進(jìn)行優(yōu)化和升級,以及對模型及時的修改,以改進(jìn)系統(tǒng)或子系統(tǒng)的功能,更正設(shè)計錯誤,提高目標(biāo)系統(tǒng)的工作速度,減小面積耗用,降低功耗和成本等?;蛘邌⒂眯录夹g(shù)器件或新的IP核。在這些過程中,由于設(shè)計的下一步是基于當(dāng)前的設(shè)計,即使發(fā)現(xiàn)問題或作新的修改而需從頭開始設(shè)計,也不妨礙整體的設(shè)計效率。此外,VHDL優(yōu)秀的可移植性、EDA平臺的通用性以及與具體硬件結(jié)構(gòu)的無關(guān)性,使得前期的設(shè)計可以容易地應(yīng)用于新的設(shè)計項目,則項目設(shè)計的周期可以顯著縮短。因此,EDA設(shè)計方法里十分強(qiáng)調(diào)將前一個VHDL模型重用的方法。此外隨著設(shè)計層次的降低,在低級別上使用高級別的測試包來測試模型也很重要并有效。自頂而下的設(shè)計方法能使系統(tǒng)被分解為各個模塊的集合之后,可以對設(shè)計的每個獨立模塊指派不同的工作小組。這些小組可以工作在不同地點,甚至可以分屬不同的單位,最后將不同的模塊集成為最終的系統(tǒng)模型,并對其進(jìn)行綜合測試和評估。1.3.4 EDA技術(shù)設(shè)計流程圖1-4給出了自頂向下設(shè)計流程的框圖說明,它包括以下設(shè)計階段:(1)提出設(shè)計說明書,即用自然語言表達(dá)系統(tǒng)項目的功能特點和技術(shù)參數(shù)等。(2)建立VHDL行為模型,這一步是將設(shè)計說明書轉(zhuǎn)化為VHDL行為模型。在這一項目的表達(dá)中,可以使用滿足IEEE標(biāo)準(zhǔn)的VHDL的所有語句而不必考慮可綜合性。這一建模行為的目標(biāo)是通過VHDL仿真器對整個系統(tǒng)進(jìn)行系統(tǒng)行為仿真和性能評估。在行為模型的建立過程中,如果最終的系統(tǒng)中包括目標(biāo)ASIC或FPGA以外的電路器件,如RAM、ROM、接口器件或某種單片機(jī),也同樣能建立一個完整統(tǒng)一的系統(tǒng)行為模型而進(jìn)行整體仿真。這是因為可以根據(jù)這些外部器件的功能特性設(shè)計出VHDL的仿真模型,然后將它們并入主系統(tǒng)的VHDL模型中。事實上,現(xiàn)在有許多公司可提供各類流行器件的VHDL模型,如8051單片機(jī)模型、PIC16C5X模型、80386模型等。利用這些模型可以將整個電路系統(tǒng)組裝起來。有的VHDL模型既可用來仿真,也可作為實際電路的一部分。例如,現(xiàn)有的PCI總線模型大多是既可仿真又可綜合的。(3)VHDL行為仿真。這一階段可以利用VHDL仿真器(如ModelSim)對頂層系統(tǒng)的行為模型進(jìn)行仿真測試,檢查模擬結(jié)果,繼而進(jìn)行修改和完善。這一過程與最終實現(xiàn)的硬件沒有任何關(guān)系,也不考慮硬件實現(xiàn)中的技術(shù)細(xì)節(jié),測試結(jié)果主要是對系統(tǒng)純功能行為的考察,其中許多VHDL的語句表達(dá)主要為了方便了解系統(tǒng)在各種條件下的功能特性,而不可能用真實的硬件來實現(xiàn)。(4)VHDL-RTL級建模。如上所述,VHDL只有部分語句集合可用于硬件功能行為的建模,因此在這一階段,必須將VHDL的行為模型表達(dá)為VHDL行為代碼(或稱VHDL-RTL級模型)。這里應(yīng)該注意的是,VHDL行為代碼是用VHDL中可綜合子集中的語句完成的,即可以最終實現(xiàn)目標(biāo)器件的描述。因為利用VHDL的可綜合的語句同樣可以對電路方便地進(jìn)行行為描述,而目前許多主流的VHDL綜合器都能將其綜合成RTL級,乃至門級模型。從第3步到第4步,人工介入的內(nèi)容比較多,設(shè)計者需要給予更多的關(guān)注。(5)前端功能仿真。在這一階段對VHDL-RTL級模型進(jìn)行仿真,稱為功能仿真。盡管VHDL-RTL級模型是可綜合的,但對它的功能仿真仍然與硬件無關(guān),仿真結(jié)果表達(dá)的是可綜合模型的邏輯功能。(6)邏輯綜合。使用邏輯綜合工具將VHDL行為級描述轉(zhuǎn)化為結(jié)構(gòu)化的門級電路。在ASIC設(shè)計中,門級電路可以由ASIC庫中的基本單元組成。(7)測試向量生成。這一階段主要是針對ASIC設(shè)計的。FPGA設(shè)計的時序測試文件主要產(chǎn)生于適配器。對ASIC的測試向量文件是綜合器結(jié)合含有版圖硬件特性的工藝庫后產(chǎn)生的,用于對ASIC的功能測試。(8)功能仿真。利用獲得的測試向量對ASIC的設(shè)計系統(tǒng)和子系統(tǒng)的功能進(jìn)行仿真。(9)結(jié)構(gòu)綜合。主要將綜合產(chǎn)生的表達(dá)邏輯連接關(guān)系的網(wǎng)表文件,結(jié)合具體的目標(biāo)硬件環(huán)境進(jìn)行標(biāo)準(zhǔn)單元調(diào)用、布局、布線和滿足約束條件的結(jié)構(gòu)優(yōu)化配置,即結(jié)構(gòu)綜合。(10)門級時序仿真。在這一級中將使用門級仿真器或仍然使用VHDL仿真器(因為結(jié)構(gòu)綜合后能同步生成VHDL格式的時序仿真文件)進(jìn)行門級時序仿真,在計算機(jī)上了解更接近硬件目標(biāo)器件工作的功能時序。對于ASIC設(shè)計,被稱為布局后仿真。在這一步,將帶有從布局布線得到的精確時序信息映射到門級電路重新進(jìn)行仿真,以檢查電路時序,并對電路功能進(jìn)行最后檢查。這些仿真的成功完成稱為ASIC sign off。接下去的工作就可以將設(shè)計提供給硅鑄造生產(chǎn)工序了。(11)硬件測試。這是對最后完成的硬件系統(tǒng)(如ASIC或FPGA)進(jìn)行檢查和測試。與其它的硬件描述語言相比,VHDL具有較強(qiáng)的行為仿真級與綜合級的建模功能,這種能遠(yuǎn)離具體硬件,基于行為描述方式的硬件描述語言恰好滿足典型的自頂向下設(shè)計方法,因而能順應(yīng)EDA技術(shù)發(fā)展的趨勢,解決現(xiàn)代電子設(shè)計應(yīng)用中出現(xiàn)的各類問題。圖1-4 自頂向下的設(shè)計流程1.4 EDA技術(shù)的優(yōu)勢在傳統(tǒng)的數(shù)字電子系統(tǒng)或IC設(shè)計中,手工設(shè)計占了較大的比例。一般先按電子系統(tǒng)的具體功能要求進(jìn)行功能劃分,然后對每個子模塊畫出真值表,用卡諾圖進(jìn)行手工邏輯簡化,寫出布爾表達(dá)式,畫出相應(yīng)的邏輯線路圖,再據(jù)此選擇元器件,設(shè)計電路板,最后進(jìn)行實測與調(diào)試。手工設(shè)計方法主要有以下缺點。 復(fù)雜電路的設(shè)計、調(diào)試十分困難。 由于無法進(jìn)行硬件系統(tǒng)功能仿真,如果某一過程存在錯誤,查找和修改十分不便。 設(shè)計過程中產(chǎn)生大量文檔,不易管理。 對于IC設(shè)計而言,設(shè)計實現(xiàn)過程與具體生產(chǎn)工藝直接相關(guān),因此可移植性差。 只有在設(shè)計出樣機(jī)或生產(chǎn)出芯片后才能進(jìn)行實測。相比之下,EDA技術(shù)有很大不同:(1)用HDL對數(shù)字電子系統(tǒng)進(jìn)行抽象的行為與功能描述到具體的內(nèi)部線路結(jié)構(gòu)描述,從而可以在電子設(shè)計的各個階段、各個層次進(jìn)行計算機(jī)模擬驗證,保證設(shè)計過程的正確性,可以大大降低設(shè)計成本,縮短設(shè)計周期。(2)EDA工具之所以能夠完成各種自動設(shè)計過程,關(guān)鍵是有各類庫的支持,如邏輯仿真時的模擬庫、邏輯綜合時的綜合庫、版圖綜合時的版圖庫、測試綜合時的測試庫等。這些庫都是EDA公司與半導(dǎo)體生產(chǎn)廠商緊密合作、共同開發(fā)的。(3)某些HDL語言也是文檔型的語言(如VHDL),極大地簡化設(shè)計文檔的管理。(4)EDA技術(shù)中最為矚目的功能,即最具現(xiàn)代電子設(shè)計技術(shù)特征的功能是日益強(qiáng)大的邏輯設(shè)計仿真測試技術(shù)。EDA仿真測試技術(shù)只需通過計算機(jī)就能對所設(shè)計的電子系統(tǒng)從各種不同層次的系統(tǒng)性能特點完成一系列準(zhǔn)確的測試與仿真操作,在完成實際系統(tǒng)的安裝后,還能對系統(tǒng)上的目標(biāo)器件進(jìn)行所謂邊界掃描測試,嵌入式邏輯分析儀的應(yīng)用。這一切都極大地提高了大規(guī)模系統(tǒng)電子設(shè)計的自動化程度。(5)無論傳統(tǒng)的應(yīng)用電子系統(tǒng)設(shè)計得如何完美,使用了多么先進(jìn)的功能器件,都掩蓋不了一個無情的事實,即該系統(tǒng)對于設(shè)計者來說,沒有任何自主知識產(chǎn)權(quán)可言,因為系統(tǒng)中的關(guān)鍵性的器件往往并非出自設(shè)計者之手,這將導(dǎo)致該系統(tǒng)在許多情況下的應(yīng)用直接受到限制?;贓DA技術(shù)的設(shè)計則不同,由于用HDL表達(dá)的成功的專用功能設(shè)計在實現(xiàn)目標(biāo)方面有很大的可選性,它既可以用不同來源的通用FPGA/CPLD實現(xiàn),也可以直接以ASIC來實現(xiàn),設(shè)計者擁有完全的自主權(quán),再無受制于人之虞。(6)傳統(tǒng)的電子設(shè)計方法自今沒有任何標(biāo)準(zhǔn)規(guī)范加以約束,因此,設(shè)計效率低,系統(tǒng)性能差,開發(fā)成本高,市場競爭能力小。EDA技術(shù)的設(shè)計語言是標(biāo)準(zhǔn)化的,不會由于設(shè)計對象的不同而改變;它的開發(fā)工具是規(guī)范化的,EDA軟件平臺支持任何標(biāo)準(zhǔn)化的設(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è)計流程上充分利用計算機(jī)的自動設(shè)計能力,在各個設(shè)計層次上利用計算機(jī)完成不同內(nèi)容的仿真模擬,而且在系統(tǒng)板設(shè)計結(jié)束后仍可利用計算機(jī)對硬件系統(tǒng)進(jìn)行完整的測試。對于傳統(tǒng)的設(shè)計方法,如單片機(jī)仿真器的使用僅僅只能在最后完成的系統(tǒng)上進(jìn)行局部的軟件仿真調(diào)試,在整個設(shè)計的中間過程是無能為力的。至于硬件系統(tǒng)測試,由于現(xiàn)在的許多系統(tǒng)主板不但層數(shù)多,而且許多器件都是BGA(Ball-Grid Array)封裝,所有引腳都在芯片的底面,焊接后普通的儀器儀表無法接觸到所需要的信號點,因此無法測試。1.5 面向FPGA的EDA開發(fā)流程完整地了解利用EDA技術(shù)進(jìn)行設(shè)計開發(fā)的流程對于正確地選擇和使用EDA軟件,優(yōu)化設(shè)計項目,提高設(shè)計效率十分有益。一個完整的、典型的EDA設(shè)計流程既是自頂向下設(shè)計方法的具體實施途徑,也是EDA工具軟件本身的組成結(jié)構(gòu)。1.5.1 設(shè)計輸入圖1-5所示是基于EDA軟件的FPGA開發(fā)流程框圖,以下將分別介紹各設(shè)計模塊的功能特點。對于目前流行的用于FPGA開發(fā)的EDA軟件,圖1-5所示的設(shè)計流程具有一般性。圖1-5 FPGA的EDA開發(fā)流程將電路系統(tǒng)以一定的表達(dá)方式輸入計算機(jī),是在EDA軟件平臺上對FPGA/CPLD開發(fā)的最初步驟。通常,使用EDA工具的設(shè)計輸入可分為兩種類型。1圖形輸入圖形輸入通常包括原理圖輸入、狀態(tài)圖輸入和波形圖輸入等方法。狀態(tài)圖輸入方法就是根據(jù)電路的控制條件和不同的轉(zhuǎn)換方式,用繪圖的方法,在EDA工具的狀態(tài)圖編輯器上繪出狀態(tài)圖,然后由EDA編譯器和綜合器將此狀態(tài)變化流程圖形編譯綜合成電路網(wǎng)表。波形圖輸入方法則是將待設(shè)計的電路看成是一個黑盒子,只需告訴EDA工具該黑盒子電路的輸入和輸出時序波形圖,EDA工具即能據(jù)此完成黑盒子電路的設(shè)計。原理圖輸入方法是一種類似于傳統(tǒng)電子設(shè)計方法的原理圖編輯輸入方式,即在EDA軟件的圖形編輯界面上繪制能完成特定功能的電路原理圖。原理圖由邏輯器件(符號)和連接線構(gòu)成,圖中的邏輯器件可以是EDA軟件庫中預(yù)制的功能模塊,如與門、非門、或門、觸發(fā)器以及各種含74系列器件功能的宏功能塊,甚至還有一些類似于IP的功能塊。用原理圖表達(dá)的輸入方法的優(yōu)點是顯而易見的,如設(shè)計者進(jìn)行電子線路設(shè)計不需要增加新的諸如HDL等的相關(guān)知識;設(shè)計過程形象直觀,適用于初學(xué)或教學(xué)演示;對于較小的電路模型,其結(jié)構(gòu)與實際電路十分接近,設(shè)計者易于把握電路全局;由于設(shè)計方式接近于底層電路布局,因此易于控制邏輯資源的耗用,節(jié)省面積。然而,使用原理圖輸入的設(shè)計方法的缺點同樣是十分明顯的,如由于圖形設(shè)計方式并沒有得到標(biāo)準(zhǔn)化,不同的EDA軟件中的圖形處理工具對圖形的設(shè)計規(guī)則、存檔格式和圖形編譯方式都不同,因此圖形文件兼容性差,難以交換和管理;隨著電路設(shè)計規(guī)模的擴(kuò)大,原理圖輸入描述方式必然引起一系列難以克服的困難,如電路功能原理的易讀性下降,錯誤排查困難,整體調(diào)整和結(jié)構(gòu)升級困難。例如,將一個4位的單片機(jī)設(shè)計升級為8位單片機(jī)幾乎難以在短期內(nèi)準(zhǔn)確無誤地實現(xiàn);由于圖形文件的不兼容性,性能優(yōu)秀的電路模塊移植和再利用十分困難;由于在原理圖中已確定了設(shè)計系統(tǒng)的基本電路結(jié)構(gòu)和組件,留給綜合器和適配器的優(yōu)化選擇的空間已十分有限,因此難以實現(xiàn)用戶所希望的面積、速度以及不同風(fēng)格的綜合優(yōu)化,顯然,原理圖的設(shè)計方法明顯偏離了電子設(shè)計自動化最本質(zhì)的涵義;在設(shè)計中,由于必須直接面對硬件模塊的選用,因此行為模型的建立將無從談起,從而無法實現(xiàn)真實意義上的自頂向下的設(shè)計方案。2硬件描述語言文本輸入這種方式與傳統(tǒng)的計算機(jī)軟件語言編輯輸入基本一致,就是將使用了某種硬件描述語言(HDL)的電路設(shè)計文本,如VHDL或Verilog的源程序,進(jìn)行編輯輸入??梢哉f,應(yīng)用HDL的文本輸入方法克服了上述原理圖輸入法存在的所有弊端,為EDA技術(shù)的應(yīng)用和發(fā)展打開了一個廣闊的天地。1.5.2 HDL綜合一般地,綜合是僅對應(yīng)于HDL而言的。利用HDL綜合器對設(shè)計進(jìn)行綜合是十分重要的一步,因為綜合過程將把軟件設(shè)計的HDL描述與硬件結(jié)構(gòu)掛鉤,是將軟件轉(zhuǎn)化為硬件電路的關(guān)鍵步驟,是文字描述與硬件實現(xiàn)的一座橋梁。綜合就是將電路的高級語言(如行為描述)轉(zhuǎn)換成低級的,可與FPGACPLD的基本結(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)。如在VHDL網(wǎng)表文件采用VHDL的語法,用結(jié)構(gòu)描述的風(fēng)格重新詮釋綜合后的電路結(jié)構(gòu)。整個綜合過程就是將設(shè)計者在EDA平臺上編輯輸入的HDL文本、原理圖或狀態(tài)圖形描述,依據(jù)給定的硬件結(jié)構(gòu)組件和約束控制條件進(jìn)行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得門級電路甚至更底層的電路描述網(wǎng)表文件。由此可見,綜合器工作前,必須給定最后實現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用某種網(wǎng)表文件的方式對應(yīng)起來,成為相應(yīng)的映射關(guān)系。如果把綜合理解為映射過程,那么顯然這種映射不是惟一的,并且綜合的優(yōu)化也不是單純的或一個方向的。為達(dá)到速度、面積、性能的要求,往往需要對綜合加以約束,稱為綜合約束。1.5.3 布線布局(適配)適配器也稱結(jié)構(gòu)綜合器,它的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件,如JEDEC、Jam格式的文件。適配所選定的目標(biāo)器件(FPGA/CPLD芯片)必須屬于原綜合器指定的目標(biāo)器件系列。通常,EDA軟件中的綜合器可由專業(yè)的第三方EDA公司提供,而適配器則需由FPGA/CPLD供應(yīng)商提供。因為適配器的適配對象直接與器件的結(jié)構(gòu)細(xì)節(jié)相對應(yīng)。邏輯綜合通過后必須利用適配器將綜合后網(wǎng)表文件針對某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,其中包括底層器件配置、邏輯分割、邏輯優(yōu)化、邏輯布局布線操作。適配完成后可以利用適配所產(chǎn)生的仿真文件作精確的時序仿真,同時產(chǎn)生可用于編程的文件。1.5.4 仿真在編程下載前必須利用EDA工具對適配生成的結(jié)果進(jìn)行模擬測試,就是所謂的仿真。仿真就是讓計算機(jī)根據(jù)一定的算法和一定的仿真庫對EDA設(shè)計進(jìn)行模擬,以驗證設(shè)計,排除錯誤。仿真是在EDA設(shè)計過程中的重要步驟。圖1-5所示的時序與功能門級仿真通常由PLD公司的EDA開發(fā)工具直接提供(當(dāng)然也可以選用第三方的專業(yè)仿真工具),它可以完成兩種不同級別的仿真測試。(1)時序仿真。就是接近真實器件運行特性的仿真,仿真文件中已包含了器件硬件特性參數(shù),因而,仿真精度高。但時序仿真的仿真文件必須來自針對具體器件的適配器。綜合后所得的EDIF等網(wǎng)表文件通常作為FPGA適配器的輸入文件,產(chǎn)生的仿真網(wǎng)表文件中包含了精確的硬件延遲信息。(2)功能仿真。它是直接對VHDL、原理圖描述或其它描述形式的邏輯功能進(jìn)行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計要求的過程,仿真過程不涉及任何具體器件的硬件特性。不經(jīng)歷適配階段,在設(shè)計項目編輯編譯(或綜合)后即可進(jìn)入門級仿真器進(jìn)行模擬測試。直接進(jìn)行功能仿真的好處是設(shè)計耗時短,對硬件庫、綜合器等沒有任何要求。對于規(guī)模比較大的設(shè)計項目,綜合與適配在計算機(jī)上的耗時是十分可觀的,如果每一次修改后的模擬都必須進(jìn)行時序仿真,顯然會極大地降低開發(fā)效率。因此,通常的做法是,首先進(jìn)行功能仿真,待確認(rèn)設(shè)計文件所表達(dá)的功能滿足設(shè)計者原有意圖時,即邏輯功能滿足要求后,再進(jìn)行綜合、適配和時序仿真,以便把握設(shè)計項目在硬件條件下的運行情況。1.5.5 下載和硬件測試把適配后生成的下載或配置文件,通過編程器或編程電纜向FPGA或CPLD進(jìn)行下載,以便進(jìn)行硬件調(diào)試和驗證(Hardware Debugging)。通常,將對CPLD的下載稱為編程(Program),對FPGA中的SRAM進(jìn)行直接下載的方式稱為配置(Configure),但對于反熔絲結(jié)構(gòu)和Flash結(jié)構(gòu)的FPGA的下載和對FPGA的專用配置ROM的下載仍稱為編程。FPGA與CPLD的辨別和分類主要是根據(jù)其結(jié)構(gòu)特點和工作原理。通常的分類方法是:(1)以乘積項結(jié)構(gòu)方式構(gòu)成邏輯行為的器件稱為CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。(2)以查表法結(jié)構(gòu)方式構(gòu)成邏輯行為的器件稱為FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K、ACEX1K或Cyclone系列等。當(dāng)然也有從下載方式上分的。有關(guān)FPGA/CPLD下載的詳細(xì)情況將在第2章中介紹。最后是將含有載入了設(shè)計的FPGA或CPLD的硬件系統(tǒng)進(jìn)行統(tǒng)一測試,以便最終驗證設(shè)計項目在目標(biāo)系統(tǒng)上的實際工作情況,以排除錯誤,改進(jìn)設(shè)計。1.6 專用集成電路設(shè)計流程專用集成電路ASIC(Application Specific Integrated Circuits)是相對于通用集成電路而言的,ASIC主要指用于某一專門用途的集成電路器件。ASIC分類大致如圖1-6所示,分為數(shù)字ASIC、模擬ASIC和數(shù)?;旌螦SIC。1.6.1 專用集成電路ASIC設(shè)計方法對于數(shù)字ASIC,其設(shè)計方法有多種。按版圖結(jié)構(gòu)及制造方法分,有半定制(Semi- custom)和全定制(Full-custom)兩種實現(xiàn)方法,如圖1-7所示。ASIC的全定制方法是一種基于晶體管級的,手工設(shè)計版圖的制造方法。設(shè)計者需要使用全定制版圖設(shè)計工具來完成,設(shè)計者必須考慮晶體管版圖的尺寸、位置、互連線等技術(shù)細(xì)節(jié),并據(jù)此確定整個電路的布局布線,以使設(shè)計的芯片的性能、面積、功耗、成本達(dá)到最優(yōu)。顯然,在全定制設(shè)計中,人工參與的工作量大,設(shè)計周期長,而且容易出錯。 圖1-6 ASIC分類 圖1-7 ASIC實現(xiàn)方法然而利用全定制方法設(shè)計的電路,面積利用率最高,性能較好,功耗較低,有利于降低設(shè)計成本,提高芯片的集成度和工作速度,以及降低功耗。在通用中小規(guī)模集成電路設(shè)計、模擬集成電路,包括射頻級集成器件的設(shè)計,以及有特殊性能要求和功耗要求的電路或處理器中的特殊功能模塊電路的設(shè)計中被廣泛采用。ASIC的半定制法是一種約束性設(shè)計方式,約束的目的是簡化設(shè)計,縮短設(shè)計周期,降低設(shè)計成本,提高設(shè)計正確率。半定制法按邏輯實現(xiàn)的方式不同,可再分為門陣列法、標(biāo)準(zhǔn)單元法和可編程邏輯器件法。門陣列(Gate Array)法是較早使用的一種ASIC設(shè)計方法,又稱為母片(Master Slice)法。需預(yù)先設(shè)計和制造好各種規(guī)模的母片,其內(nèi)部成行成列,并等間距地排列著基本單元的陣列。除金屬連線及引線孔以外的各層版圖圖形均固定不變,只剩下一層或兩層金屬鋁連線及孔的掩膜需要根據(jù)用戶電路的不同而定制。每個基本單元是以三對或五對晶體管組成,基本單元的高度和寬度都是相等的,并按行排列。設(shè)計人員只需要設(shè)計到電路一級,將電路的網(wǎng)表文件交給IC廠家即可。IC廠家根據(jù)網(wǎng)表文件描述的電路連接關(guān)系,完成母片上電路單元的布局及單元間的連線,然后對這部分金屬線及引線孔的圖形進(jìn)行制版和流片。這種設(shè)計方式涉及的工藝少、模式規(guī)范、設(shè)計自動化程度高、設(shè)計周期短、造價低,且適合于小批量的ASIC設(shè)計。所有這些都有賴于事先制備母片及庫單元,并經(jīng)過驗證。門陣列法的缺點是芯片面積利用率低,靈活性差,對設(shè)計限制得過多。標(biāo)準(zhǔn)單元(Standard Cell)法必須預(yù)建完善的版圖單元庫,庫中包括以物理版圖級表達(dá)的各種電路組件和電路模塊“標(biāo)準(zhǔn)單元”,可供用戶調(diào)用以設(shè)計不同的芯片。這些單元的邏輯功能、電性能及幾何設(shè)計規(guī)則等都已經(jīng)過分析和驗證。與門陣列庫單元不同的是,標(biāo)準(zhǔn)單元的物理版圖將從最低層至最高層的各層版圖設(shè)計圖形都包括在內(nèi)。在設(shè)計布圖時,從單元庫中調(diào)出標(biāo)準(zhǔn)單元按行排列,行與行之間留有布線通道,同行或相鄰行的單元相連可通過單元行的上、下通道完成。隔行單元之間的垂直方向互連則必須借用事先預(yù)留在“標(biāo)準(zhǔn)單元”內(nèi)部的走線道(feed-through)或在兩單元間設(shè)置的“走線道單元”(feed-through cell)或“空單元”(empty cell)來完成連接。標(biāo)準(zhǔn)單元法設(shè)計ASIC的優(yōu)點是:(1)比門陣列法具有更加靈活的布圖方式。(2)“標(biāo)準(zhǔn)單元”預(yù)先存在單元庫中,可以極大地提高設(shè)計效率。(3)可以從根本上解決布通率問題,達(dá)到100%的布通率。(4)可以使設(shè)計者更多地從設(shè)計項目的高層次關(guān)注電路的優(yōu)化和性能問題。(5)標(biāo)準(zhǔn)單元設(shè)計模式自動化程度高、設(shè)計周期短、設(shè)計效率高,十分適合利用功能強(qiáng)大的EDA工具進(jìn)行ASIC的設(shè)計。因此標(biāo)準(zhǔn)單元法是目前ASIC設(shè)計中應(yīng)用最廣泛的設(shè)計方法之一。標(biāo)準(zhǔn)單元法還有一個重要的優(yōu)勢,即它與可編程邏輯器件法的應(yīng)用有相似點,它們都是建立在標(biāo)準(zhǔn)單元庫
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年石家莊市稅務(wù)系統(tǒng)遴選面試真題附帶題目詳解含答案
- 2024年移動互聯(lián)網(wǎng)行業(yè)市場前景及投資研究報告-培訓(xùn)課件
- 麻醉學(xué)中級題庫(附答案)
- 老年居家安全課件
- 老師職業(yè)介紹課件下載
- 2025年搬運車行業(yè)市場突圍建議及需求分析報告
- 鏟車司機(jī)職業(yè)病防治及健康保障協(xié)議
- 財務(wù)分析智能財務(wù)咨詢顧問解決方案軟件合同
- 廠房搬遷與智能化生產(chǎn)系統(tǒng)合同
- 高新技術(shù)企業(yè)廠房租賃中介服務(wù)合同樣本
- 工程物探-第五章電法勘探課件
- 婦產(chǎn)科護(hù)理學(xué)教材(課后思考題參考答案)
- 二年級數(shù)學(xué)無紙化監(jiān)測試題
- 臺區(qū)線損綜合分析臺區(qū)線損分類及計算方法
- 全同態(tài)加密算法概述
- 【酒店管理系統(tǒng)的設(shè)計與開發(fā)(論文)】
- 電流、電壓指針儀表校驗報告
- 六年級下冊英語素材-Unit-6-General-revision-3-知識點-人教精通版
- 2023年云南玉溪市直事業(yè)單位選調(diào)45人筆試備考試題及答案解析
- BS2000標(biāo)準(zhǔn)操作規(guī)程
- 中等職業(yè)學(xué)校英語課程標(biāo)準(zhǔn)(2020年版)(word精排版)
評論
0/150
提交評論