引言 21世紀是電子信息產(chǎn)業(yè)主導的知識經(jīng)濟時(shí)代,信息領(lǐng)域正在發(fā)生一場(chǎng)巨大變革,其先導力量和決定性因素正是微電子集成電路。硅片技術(shù)的日益成熟,特別是深亞微米(DSM,Deep Sub-Micron)和超深亞微米(VDSM,Very Deep Sub-Micron)技術(shù),極大促進(jìn)了集成電路產(chǎn)業(yè)的快速發(fā)展。 集成電路發(fā)展經(jīng)歷了電路集成、功能集成、技術(shù)集成,直至今天基于計算機軟硬件的知識集成,這標志著(zhù)傳統電子系統已全面進(jìn)入現代電子系統階段,這也被譽(yù)為進(jìn)入3G時(shí)代,即單片集成度達到1G個(gè)晶體管、器件工作速度達到1GHz、數據傳輸速率達到1Gbps。 EDA(Electronic Design Automation,電子設計自動(dòng)化)技術(shù)基于計算機輔助設計,它融合了應用電子技術(shù)、計算機技術(shù)、信息處理技術(shù)、智能化技術(shù)的最新成果,以實(shí)現電子產(chǎn)品的自動(dòng)設計。EDA是現代電子設計技術(shù)的核心,在現代集成電路設計中占據重要地位。FPGA(Field Programmable Gate Array,現場(chǎng)可編程門(mén)陣列)作為可編程邏輯器件的典型代表,它的出現及日益完善適應了當今時(shí)代的數字化發(fā)展浪潮,它正廣泛應用在現代數字系統設計中。 EDA技術(shù)與FPGA原理 1.EDA技術(shù)特征 EDA是電子設計領(lǐng)域的一場(chǎng)革命,它源于計算機輔助設計(CAD,Computer Aided Design)、計算機輔助制造(CAM,Computer Aided Made)、計算機輔助測試(CAT,Computer Aided Test)和計算機輔助工程(CAE,Computer Aided Engineering)。利用EDA工具,電子設計師從概念、算法、協(xié)議開(kāi)始設計電子系統,從電路設計、性能分析直到IC版圖或PCB版圖生成的全過(guò)程均可在計算機上自動(dòng)完成。 EDA代表了當今電子設計技術(shù)的最新發(fā)展方向,其基本特征是設計人員以計算機為工具,按照自頂向下的設計方法,對整個(gè)系統進(jìn)行方案設計和功能劃分,由硬件描述語(yǔ)言完成系統行為級設計,利用先進(jìn)的開(kāi)發(fā)工具自動(dòng)完成邏輯編譯、化簡(jiǎn)、分割、綜合、優(yōu)化、布局布線(xiàn)(PAR,Place And Route)、仿真及特定目標芯片的適配編譯和編程下載,這被稱(chēng)為數字邏輯電路的高層次設計方法。 作為現代電子系統設計的主導技術(shù),EDA具有兩個(gè)明顯特征:即并行工程(Concurrent Engineering)設計和自頂向下(Top-down)設計。其基本思想是從系統總體要求出發(fā),分為行為描述(Behaviour Description)、寄存器傳輸級(RTL,Register Transfer Level)描述、邏輯綜合(Logic Synthesis)三個(gè)層次,將設計內容逐步細化,最后完成整體設計,這是一種全新的設計思想與設計理念。 2.FPGA原理 今天,數字電子系統的設計方法及設計手段都發(fā)生了根本性變化,正由分立數字電路向可編程邏輯器件(PLD,Programmable Logic Device)及專(zhuān)用集成電路(ASIC,Application Specific Integrated Circuit)轉變。FPGA與CPLD(Programmable Logic Device,復雜可編程邏輯器件)都屬于PLD的范疇,它們在現代數字系統設計中正占據越來(lái)越重要的地位。 FPGA是由用戶(hù)編程來(lái)實(shí)現所需邏輯功能的數字集成電路,它不僅具有設計靈活、性能高、速度快等優(yōu)勢,而且上市周期短、成本低廉。FPGA設計與ASIC前端設計十分類(lèi)似,在半導體領(lǐng)域中FPGA應用日益普及,已成為集成電路中最具活力和前途的產(chǎn)業(yè)。同時(shí),隨著(zhù)設計技術(shù)和制造工藝的完善,器件性能、集成度、工作頻率等指標不斷提升,FPGA已越來(lái)越多地成為系統級芯片設計的首選。 FPGA由PAL(可編程陣列邏輯)、GAL(通用陣列邏輯)發(fā)展而來(lái),其基本設計思想是借助于EDA開(kāi)發(fā)工具,用原理圖、狀態(tài)機、布爾表達式、硬件描述語(yǔ)言等方法進(jìn)行系統功能及算法描述,設計實(shí)現并生成編程文件,最后通過(guò)編程器或下載電纜用目標器件來(lái)實(shí)現。 FPGA器件采用邏輯單元陣列(LCA,Logic Cell Array)結構、SDRAM工藝,其中LCA由三類(lèi)可編程單元組成。 (1)可配置邏輯塊(CLB,Configurable Logic Block):被稱(chēng)為核心陣列,是實(shí)現自定義邏輯功能的基本單元,散布于整個(gè)芯片; (2)輸入/輸出模塊(IOB,Input/Output Block):排列于芯片四周,為內部邏輯與器件封裝引腳之間提供可編程接口; (3)可編程互連資源(PI,Programmable Interconnect):包括不同長(cháng)度的連線(xiàn)線(xiàn)段及連接開(kāi)關(guān),其功能是將各個(gè)可編程邏輯塊或I/O塊連接起來(lái)以構成特定電路。 全球生產(chǎn)FPGA的廠(chǎng)家很多,但影響力最大的是Xilinx公司和Altera公司,世界上第一片FPGA是在20世紀80年代中期Xilinx公司率先推出的。不同廠(chǎng)家生產(chǎn)的FPGA在可編程邏輯塊的規模、內部互連線(xiàn)結構及所采用的可編程元件上存在較大差異,實(shí)際使用時(shí)應注意區分。 FPGA設計應用及優(yōu)化策略 1.FPGA設計層次分析 FPGA設計包括描述層次及描述領(lǐng)域兩方面內容。通常設計描述分為6個(gè)抽象層次,從高到低依次為:系統層、算法層、寄存器傳輸層、邏輯層、電路層和版圖層。對每一層又分別有三種不同領(lǐng)域的描述:行為域描述、結構域描述和物理域描述。 系統層是系統最高層次的抽象描述,針對于電子系統整體性能。算法層又稱(chēng)為行為層,它是在系統級性能分析和結構劃分后對每個(gè)模塊的功能描述。算法層所描述的功能、行為最終要用數字電路來(lái)實(shí)現。而數字電路本質(zhì)上可視為由寄存器和組合邏輯電路組成,其中寄存器負責信號存儲,組合邏輯電路負責信號傳輸。寄存器傳輸層描述正是從信號存儲、傳輸的角度去描述整個(gè)系統。寄存器和組合邏輯本質(zhì)上是由邏輯門(mén)構成,邏輯層正是從邏輯門(mén)組合及連接角度去描述整個(gè)系統。 FPGA各個(gè)描述層次及綜合技術(shù)關(guān)系如圖1所示。傳統的綜合工具是將寄存器傳輸級(RTL)的描述轉化為門(mén)級描述。隨著(zhù)以行為設計為主要標志的新一代系統設計理論的不斷成熟,能夠將系統行為級描述轉化為RTL描述的高層次綜合技術(shù)不斷涌現。 作為現代集成電路設計的重點(diǎn)與熱點(diǎn),FPGA設計一般采用自頂向下、由粗到細、逐步求精的方法。設計最頂層是指系統的整體要求,最下層是指具體的邏輯電路實(shí)現。自頂向下是將數字系統的整體逐步分解為各個(gè)子系統和模塊,若子系統規模較大則進(jìn)一步分解為更小的子系統和模塊,層層分解,直至整個(gè)系統中各子模塊關(guān)系合理、便于設計實(shí)現為止。 2.VHDL在FPGA設計中的應用 集成電路設計規模及復雜度不斷增大,用傳統原理圖方法進(jìn)行系統級芯片設計已不能滿(mǎn)足設計要求,而硬件描述語(yǔ)言(HDL,Hardware Description Language)在進(jìn)行大規模數字系統設計時(shí)具有諸多優(yōu)勢,因此利用硬件描述語(yǔ)言進(jìn)行系統行為級設計已成為FPGA與ASIC設計的主流。目前最流行、最具代表性的硬件描述語(yǔ)言是美國國防部(DOD)開(kāi)發(fā)的VHDL(VHSIC Hardware Description Language)和GDA(Gateway Design Automation)公司開(kāi)發(fā)的Verilog HDL。 VHSIC代表Very High Speed Integrated Circuit,因此VHDL即甚高速集成電路硬件描述語(yǔ)言。VHDL語(yǔ)法嚴格,1987年即成為IEEE標準,即IEEE STD 1076-1987,1993年進(jìn)一步修訂成為IEEE STD 1076-1993。 VHDL作為IEEE標準,已得到眾多EDA公司支持,其主要優(yōu)點(diǎn)有: ● 描述能力強,支持系統行為級、寄存器傳輸級和門(mén)級三個(gè)層次設計; ● 可讀性好、移植性強,其源文件既是程序又是文檔,便于復用和交流; ● 支持自頂向下的設計和基于庫(Library-based)的設計; ● 支持同步、異步及隨機電路的設計; ● 與工藝無(wú)關(guān),生命周期長(cháng)。 VHDL語(yǔ)言主要應用在行為層和寄存器傳輸層,這兩層可充分發(fā)揮出VHDL面向高層的優(yōu)勢。利用VHDL實(shí)現數字電路的實(shí)質(zhì)是利用綜合工具將高層次描述轉化為低層次門(mén)級描述,其中綜合可分為三個(gè)層次:高層次綜合(High-Level Synthesis)、邏輯綜合(Logic Synthesis)和版圖綜合(Layout Synthesis)。 3.基于VHDL的FPGA系統行為級設計 基于VHDL的FPGA設計基本流程及詳細流程分別如圖2和圖3所示,具體包括以下重要環(huán)節:設計輸入(Design Entry)、設計綜合(Design Synthesis)、設計約束(Design Constraints)、設計實(shí)現(Design Implement)、設計仿真(Design Simulation)和器件編程(Device Programming)。 設計輸入主要采用HDL(硬件描述語(yǔ)言)、ECS(Engineering Schematic Capture,原理圖編輯器)和FSM(Finite State Machine,有限狀態(tài)機); 設計綜合就是依據邏輯設計描述和約束條件,利用開(kāi)發(fā)工具進(jìn)行優(yōu)化處理,將HDL文件轉變?yōu)橛布娐穼?shí)現方案,其實(shí)質(zhì)就是優(yōu)化設計目標的過(guò)程; 設計約束主要包括設計規則約束、時(shí)間約束、面積約束三種,通常時(shí)間約束的優(yōu)先級高于面積約束; 設計實(shí)現對于FPGA分為編譯規劃、布局布線(xiàn)(PAR,Place And Route)、程序比特流文件產(chǎn)生;對于CPLD則是編譯、配置、比特流文件產(chǎn)生; 設計仿真分為功能仿真和時(shí)序時(shí)延仿真。功能仿真在設計輸入之后、綜合之前進(jìn)行,只進(jìn)行功能驗證,又稱(chēng)為前仿真。時(shí)序時(shí)延仿真在綜合和布局布線(xiàn)之后進(jìn)行,能夠得到目標器件的詳細時(shí)序時(shí)延信息,又稱(chēng)為后仿真; 器件編程是指在功能仿真與時(shí)序時(shí)延仿真正確的前提下,將綜合后形成的位流編程下載到具體的FPGA/CPLD芯片中,又稱(chēng)芯片配置。FPGA/CPLD編程下載通?墒褂肑TAG編程器、PROM文件格式器和硬件調試器三種方式,其中JTAG(Joint Test Action Group,聯(lián)合測試行動(dòng)組)是工業(yè)標準的IEEE 1149.1邊界掃描測試的訪(fǎng)問(wèn)接口,用作編程功能可省去專(zhuān)用的編程接口,減少系統引出線(xiàn),有利于各可編程邏輯器件編程接口的統一,因此應用廣泛。 4.FPGA設計優(yōu)化及方案改進(jìn) 在FPGA設計中,必須首先明確HDL源代碼編寫(xiě)非常重要;不同綜合工具包含的綜合子集不同致使有些HDL語(yǔ)句在某些綜合工具中不能綜合;同一邏輯功能可用不同HDL語(yǔ)句進(jìn)行描述,但占用資源卻可能差別很大。同時(shí)應當深刻理解并發(fā)性是硬件描述語(yǔ)言與普通高級語(yǔ)言的根本區別,因而設計硬件電路不能受傳統順序執行思維的束縛。 此外,我們應當清楚速度優(yōu)化與面積優(yōu)化在FPGA設計中占有重要地位。對于大多數數字系統設計而言,速度常常是第一要求,但FPGA結構特性、綜合工具性能、系統電路構成、PCB制版情況及HDL代碼表述都會(huì )對工作速度產(chǎn)生重要影響。我們通過(guò)在電路結構設計中采用流水線(xiàn)設計、寄存器配平、關(guān)鍵路徑法可以進(jìn)行速度優(yōu)化。 (1)流水線(xiàn)設計 流水線(xiàn)(Pipelining)技術(shù)在速度優(yōu)化中相當流行,它能顯著(zhù)提高系統設計的運行速度上限,在現代微處理器、數字信號處理器、MCU單片機、高速數字系統設計中都離不開(kāi)流水線(xiàn)技術(shù)。圖4與圖5是流水線(xiàn)設計的典型圖示,其中圖4未使用流水線(xiàn)設計,圖5采用了2級流水線(xiàn)設計,在設計中將延時(shí)較大的組合邏輯塊切割成兩塊延時(shí)大致相等的組合邏輯塊,并在這兩個(gè)邏輯塊中插入了觸發(fā)器,即滿(mǎn)足以下關(guān)系式:Ta=T1+T2,T1≈T2。通過(guò)分析可知,圖4中Fmax≈1/Ta;圖5中流水線(xiàn)第1級最高工作頻率Fmax1≈1/T1,流水線(xiàn)第2級最高工作頻率Fmax2≈1/T2≈1/T1,總設計最高頻率為Fmax≈Fmax1≈Fmax2≈1/T1,因此圖5設計速度較圖4提升了近一倍。流水線(xiàn)工作原理可用圖6表示。 (2)寄存器配平(Register Balancing) 寄存器配平是通過(guò)配平寄存器之間的組合延時(shí)邏輯塊來(lái)實(shí)現速度優(yōu)化,如圖7、圖8所示。圖7中兩個(gè)組合邏輯塊延時(shí)差別過(guò)大,導致設計總體工作頻率Fmax取決于T1,即最大的延時(shí)模塊,從而使設計整體性能受限。通過(guò)對圖7設計進(jìn)行改進(jìn),將延時(shí)較大的組合邏輯1的部分邏輯轉移到組合邏輯2中,成為圖8結構,以減小延時(shí)T1,使t1≈t2,且滿(mǎn)足T1+T2=t1+t2。寄存器配平后的圖8結構中Fmax≈1/t1>1/T1,從而提高了設計速度。 (3)關(guān)鍵路徑法 關(guān)鍵路徑是指設計中從輸入到輸出經(jīng)過(guò)的延時(shí)最長(cháng)的邏輯路徑,優(yōu)化關(guān)鍵路徑是提高設計工作速度的有效方法。圖9中Td1>Td2,Td1>Td3,關(guān)鍵路徑為延時(shí)Td1的模塊,由于從輸入到輸出的延時(shí)取決于延時(shí)最長(cháng)路徑,而與其他延時(shí)較小的路徑無(wú)關(guān),因此減少Td1則能改善輸入到輸出的總延時(shí)。 在優(yōu)化設計過(guò)程中關(guān)鍵路徑法可反復使用,直到不可能減少關(guān)鍵路徑延時(shí)為止。許多EDA開(kāi)發(fā)工具都提供時(shí)序分析器可以幫助找到延時(shí)最長(cháng)的關(guān)鍵路徑,以便設計者改進(jìn)設計。對于結構固定的設計,關(guān)鍵路徑法是進(jìn)行速度優(yōu)化的首選方法,可與其他方法配合使用。 在FPGA設計中,面積優(yōu)化實(shí)質(zhì)上就是資源利用優(yōu)化,面積優(yōu)化有多種實(shí)現方法,諸如資源共享、邏輯優(yōu)化、串行化,其中資源共享使用較多,下面舉例說(shuō)明。 在利用FPGA設計數字系統時(shí)經(jīng)常遇到同一模塊需要反復被調用,例如多位乘法器、快速進(jìn)位加法器等算術(shù)模塊,它們占用芯片資源很多,使系統成本及器件功耗大幅上升,因而使用資源共享技術(shù)能夠顯著(zhù)優(yōu)化資源。圖10和圖11是資源共享的一個(gè)典型實(shí)例,由圖可見(jiàn)使用資源共享技術(shù)節省了一個(gè)多位乘法器,從而達到減少資源消耗、優(yōu)化面積的目的。 最后針對FPGA的設計實(shí)現提出一些改進(jìn)方案,FPGA實(shí)現分為編譯規劃、布局布線(xiàn)(PAR,Place And Route)、程序比特流文件生成三個(gè)階段,當設計不滿(mǎn)足性能指標或不能完全布線(xiàn)時(shí),可進(jìn)行以下改進(jìn)工作: ● 使用定時(shí)約束(Timing Constraints); ● 增大布局布線(xiàn)級別(PAR Effort); ● 對關(guān)鍵通路(Critical Paths)的數字邏輯重新設計; ● 運行重布線(xiàn)(Re-entrant Routing); ● 運行MPPR(Multi-Pass Place & Route,多通路布局布線(xiàn)); ● 運行平面布局(Floorplan)查看布局圖及連通性。 下面重點(diǎn)介紹Re-entrant Routing與MPPR,它們都可改進(jìn)布局布線(xiàn)結果,提高系統性能。其中Re-entrant Routing是指已運行過(guò)PAR后再次運行PAR,但跳過(guò)布局過(guò)程直接進(jìn)行布線(xiàn),如圖12所示。MPPR則是根據不同功耗表(Cost tables)來(lái)運行PAR多次,通過(guò)對每一個(gè)PAR迭代評分來(lái)確定最好路徑并保留,其中評分依據是未布線(xiàn)的連線(xiàn)個(gè)數、連線(xiàn)延遲與時(shí)序約束,如圖13所示。 結束語(yǔ) 當今社會(huì ),集成電路產(chǎn)業(yè)已成為高技術(shù)產(chǎn)業(yè)群的核心戰略產(chǎn)業(yè),已逐漸演化為設計、制造、封裝、測試協(xié)調發(fā)展的產(chǎn)業(yè)結構,它正進(jìn)入以知識產(chǎn)權為創(chuàng )新核心的新時(shí)期。這標志著(zhù)集成電路產(chǎn)業(yè)的競爭已由技術(shù)競爭、資本競爭進(jìn)入到智力和知識產(chǎn)權競爭的高級階段。 FPGA在集成電路設計應用中占有重要地位,現場(chǎng)可編程性是FPGA最突出的優(yōu)點(diǎn)。用戶(hù)通過(guò)利用強大的開(kāi)發(fā)工具,能在最短時(shí)間內對FPGA內部邏輯進(jìn)行反復設計及修改,直至滿(mǎn)意為止,這大大縮短了產(chǎn)品設計開(kāi)發(fā)周期,提高了最終產(chǎn)品性能。因而FPGA以其獨有的技術(shù)優(yōu)勢在電子設計領(lǐng)域得到越來(lái)越廣泛的應用。隨著(zhù)科學(xué)發(fā)展及工藝進(jìn)步,作為重中之重的集成電路設計業(yè)必將遇到更大的挑戰及發(fā)展機遇。 參考文獻 1 王鎖萍,龔建榮等. 電子設計自動(dòng)化教程. 成都: 電子科技大學(xué)出版社, 2000.2 2 褚振勇,翁木云. FPGA設計及應用. 西安: 西安電子科技大學(xué)出版社, 2002.7 3 潘松,黃繼業(yè). EDA技術(shù)實(shí)用教程. 北京: 科學(xué)出版社. 2002,10 4 http://www.xilinx.com 5 http://www.altera.com |