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