---系統(tǒng)層是系統(tǒng)最高層次的抽象描述,針對于電子系統(tǒng)整體性能。算法層又稱為行為層,它是在系統(tǒng)級性能分析和結(jié)構(gòu)劃分后對每個模塊的功能描述。算法層所描述的功能、行為最終要用數(shù)字電路來實現(xiàn)。而數(shù)字電路本質(zhì)上可視為由寄存器和組合邏輯電路組成,其中寄存器負(fù)責(zé)信號存儲,組合邏輯電路負(fù)責(zé)信號傳輸。寄存器傳輸層描述正是從信號存儲、傳輸?shù)慕嵌热ッ枋稣麄系統(tǒng)。寄存器和組合邏輯本質(zhì)上是由邏輯門構(gòu)成,邏輯層正是從邏輯門組合及連接角度去描述整個系統(tǒng)。---FPGA各個描述層次及綜合技術(shù)關(guān)系如圖1所示。傳統(tǒng)的綜合工具是將寄存器傳輸級(RTL)的描述轉(zhuǎn)化為門級描述。隨著以行為設(shè)計為主要標(biāo)志的新一代系統(tǒng)設(shè)計理論的不斷成熟,能夠?qū)⑾到y(tǒng)行為級描述轉(zhuǎn)化為RTL描述的高層次綜合技術(shù)不斷涌現(xiàn)。
---作為現(xiàn)代集成電路設(shè)計的重點與熱點,FPGA設(shè)計一般采用自頂向下、由粗到細(xì)、逐步求精的方法。設(shè)計最頂層是指系統(tǒng)的整體要求,最下層是指具體的邏輯電路實現(xiàn)。自頂向下是將數(shù)字系統(tǒng)的整體逐步分解為各個子系統(tǒng)和模塊,若子系統(tǒng)規(guī)模較大則進一步分解為更小的子系統(tǒng)和模塊,層層分解,直至整個系統(tǒng)中各子模塊關(guān)系合理、便于設(shè)計實現(xiàn)為止。
2.VHDL在FPGA設(shè)計中的應(yīng)用
---集成電路設(shè)計規(guī)模及復(fù)雜度不斷增大,用傳統(tǒng)原理圖方法進行系統(tǒng)級芯片設(shè)計已不能滿足設(shè)計要求,而硬件描述語言(HDL,Hardware Description Language)在進行大規(guī)模數(shù)字系統(tǒng)設(shè)計時具有諸多優(yōu)勢,因此利用硬件描述語言進行系統(tǒng)行為級設(shè)計已成為FPGA與ASIC設(shè)計的主流。目前最流行、最具代表性的硬件描述語言是美國國防部(DOD)開發(fā)的VHDL(VHSIC Hardware Description Language)和GDA(Gateway Design Automation)公司開發(fā)的Verilog HDL。
---VHSIC代表Very High Speed Integrated Circuit,因此VHDL即甚高速集成電路硬件描述語言。VHDL語法嚴(yán)格,1987年即成為IEEE標(biāo)準(zhǔn),即IEEE STD 1076-1987,1993年進一步修訂成為IEEE STD 1076-1993。
---VHDL作為IEEE標(biāo)準(zhǔn),已得到眾多EDA公司支持,其主要優(yōu)點有:
● 描述能力強,支持系統(tǒng)行為級、寄存器傳輸級和門級三個層次設(shè)計;
● 可讀性好、移植性強,其源文件既是程序又是文檔,便于復(fù)用和交流;
● 支持自頂向下的設(shè)計和基于庫(Library-based)的設(shè)計;
● 支持同步、異步及隨機電路的設(shè)計;
● 與工藝無關(guān),生命周期長。
---VHDL語言主要應(yīng)用在行為層和寄存器傳輸層,這兩層可充分發(fā)揮出VHDL面向高層的優(yōu)勢。利用VHDL實現(xiàn)數(shù)字電路的實質(zhì)是利用綜合工具將高層次描述轉(zhuǎn)化為低層次門級描述,其中綜合可分為三個層次:高層次綜合(High-Level Synthesis)、邏輯綜合(Logic Synthesis)和版圖綜合(Layout Synthesis)。
3.基于VHDL的FPGA系統(tǒng)行為級設(shè)計
---基于VHDL的FPGA設(shè)計基本流程及詳細(xì)流程分別如圖2和圖3所示,具體包括以下重要環(huán)節(jié):設(shè)計輸入(Design Entry)、設(shè)計綜合(Design Synthesis)、設(shè)計約束(Design Constraints)、設(shè)計實現(xiàn)(Design Implement)、設(shè)計仿真(Design Simulation)和器件編程(Device Programming)。---設(shè)計輸入主要采用HDL(硬件描述語言)、ECS(Engineering Schematic Capture,原理圖編輯器)和FSM(Finite State Machine,有限狀態(tài)機);
---設(shè)計綜合就是依據(jù)邏輯設(shè)計描述和約束條件,利用開發(fā)工具進行優(yōu)化處理,將HDL文件轉(zhuǎn)變?yōu)橛布娐穼崿F(xiàn)方案,其實質(zhì)就是優(yōu)化設(shè)計目標(biāo)的過程;
---設(shè)計約束主要包括設(shè)計規(guī)則約束、時間約束、面積約束三種,通常時間約束的優(yōu)先級高于面積約束;
---設(shè)計實現(xiàn)對于FPGA分為編譯規(guī)劃、布局布線(PAR,Place And Route)、程序比特流文件產(chǎn)生;對于CPLD則是編譯、配置、比特流文件產(chǎn)生;---設(shè)計仿真分為功能仿真和時序時延仿真。功能仿真在設(shè)計輸入之后、綜合之前進行,只進行功能驗證,又稱為前仿真。時序時延仿真在綜合和布局布線之后進行,能夠得到目標(biāo)器件的詳細(xì)時序時延信息,又稱為后仿真;
---器件編程是指在功能仿真與時序時延仿真正確的前提下,將綜合后形成的位流編程下載到具體的FPGA/CPLD芯片中,又稱芯片配置。FPGA/CPLD編程下載通?墒褂肑TAG編程器、PROM文件格式器和硬件調(diào)試器三種方式,其中JTAG(Joint Test Action Group,聯(lián)合測試行動組)是工業(yè)標(biāo)準(zhǔn)的IEEE 1149.1邊界掃描測試的訪問接口,用作編程功能可省去專用的編程接口,減少系統(tǒng)引出線,有利于各可編程邏輯器件編程接口的統(tǒng)一,因此應(yīng)用廣泛。
4.FPGA設(shè)計優(yōu)化及方案改進
---在FPGA設(shè)計中,必須首先明確HDL源代碼編寫非常重要;不同綜合工具包含的綜合子集不同致使有些HDL語句在某些綜合工具中不能綜合;同一邏輯功能可用不同HDL語句進行描述,但占用資源卻可能差別很大。同時應(yīng)當(dāng)深刻理解并發(fā)性是硬件描述語言與普通高級語言的根本區(qū)別,因而設(shè)計硬件電路不能受傳統(tǒng)順序執(zhí)行思維的束縛。---此外,我們應(yīng)當(dāng)清楚速度優(yōu)化與面積優(yōu)化在FPGA設(shè)計中占有重要地位。
對于大多數(shù)數(shù)字系統(tǒng)設(shè)計而言,速度常常是第一要求,但FPGA結(jié)構(gòu)特性、綜合工具性能、系統(tǒng)電路構(gòu)成、PCB制版情況及HDL代碼表述都會對工作速度產(chǎn)生重要影響。我們通過在電路結(jié)構(gòu)設(shè)計中采用流水線設(shè)計、寄存器配平、關(guān)鍵路徑法可以進行速度優(yōu)化。---(1)流水線設(shè)計
---流水線(Pipelining)技術(shù)在速度優(yōu)化中相當(dāng)流行,它能顯著提高系統(tǒng)設(shè)計的運行速度上限,在現(xiàn)代微處理器、數(shù)字信號處理器、MCU單片機、高速數(shù)字系統(tǒng)設(shè)計中都離不開流水線技術(shù)。圖4與圖5是流水線設(shè)計的典型圖示,其中圖4未使用流水線設(shè)計,圖5采用了2級流水線設(shè)計,在設(shè)計中將延時較大的組合邏輯塊切割成兩塊延時大致相等的組合邏輯塊,并在這兩個邏輯塊中插入了觸發(fā)器,即滿足以下關(guān)系式:Ta=T1+T2,T1≈T2。通過分析可知,圖4中Fmax≈1/Ta;圖5中流水線第1級最高工作頻率Fmax1≈1/T1,流水線第2級最高工作頻率Fmax2≈1/T2≈1/T1,總設(shè)計最高頻率為Fmax≈Fmax1≈Fmax2≈1/T1,因此圖5設(shè)計速度較圖4提升了近一倍。流水線工作原理可用圖6表示。

---(2)寄存器配平(Register Balancing)
---寄存器配平是通過配平寄存器之間的組合延時邏輯塊來實現(xiàn)速度優(yōu)化,如圖7、圖8所示。圖7中兩個組合邏輯塊延時差別過大,導(dǎo)致設(shè)計總體工作頻率Fmax取決于T1,即最大的延時模塊,從而使設(shè)計整體性能受限。通過對圖7設(shè)計進行改進,將延時較大的組合邏輯1的部分邏輯轉(zhuǎn)移到組合邏輯2中,成為圖8結(jié)構(gòu),以減小延時T1,使t1≈t2,且滿足T1+T2=t1+t2。寄存器配平后的圖8結(jié)構(gòu)中Fmax≈1/t1>1/T1,從而提高了設(shè)計速度。
---(3)關(guān)鍵路徑法
---關(guān)鍵路徑是指設(shè)計中從輸入到輸出經(jīng)過的延時最長的邏輯路徑,優(yōu)化關(guān)鍵路徑是提高設(shè)計工作速度的有效方法。圖9中Td1>Td2,Td1>Td3,關(guān)鍵路徑為延時Td1的模塊,由于從輸入到輸出的延時取決于延時最長路徑,而與其他延時較小的路徑無關(guān),因此減少Td1則能改善輸入到輸出的總延時。
---在優(yōu)化設(shè)計過程中關(guān)鍵路徑法可反復(fù)使用,直到不可能減少關(guān)鍵路徑延時為止。
許多EDA開發(fā)工具都提供時序分析器可以幫助找到延時最長的關(guān)鍵路徑,以便設(shè)計者改進設(shè)計。對于結(jié)構(gòu)固定的設(shè)計,關(guān)鍵路徑法是進行速度優(yōu)化的首選方法,可與其他方法配合使用。---在FPGA設(shè)計中,面積優(yōu)化實質(zhì)上就是資源利用優(yōu)化,面積優(yōu)化有多種實現(xiàn)方法,諸如資源共享、邏輯優(yōu)化、串行化,其中資源共享使用較多,下面舉例說明。
---在利用FPGA設(shè)計數(shù)字系統(tǒng)時經(jīng)常遇到同一模塊需要反復(fù)被調(diào)用,例如多位乘法器、快速進位加法器等算術(shù)模塊,它們占用芯片資源很多,使系統(tǒng)成本及器件功耗大幅上升,因而使用資源共享技術(shù)能夠顯著優(yōu)化資源。圖10和圖11是資源共享的一個典型實例,由圖可見使用資源共享技術(shù)節(jié)省了一個多位乘法器,從而達到減少資源消耗、優(yōu)化面積的目的。
---最后針對FPGA的設(shè)計實現(xiàn)提出一些改進方案,FPGA實現(xiàn)分為編譯規(guī)劃、布局布線(PAR,Place And Route)、程序比特流文件生成三個階段,當(dāng)設(shè)計不滿足性能指標(biāo)或不能完全布線時,可進行以下改進工作:● 使用定時約束(Timing Constraints);
● 增大布局布線級別(PAR Effort);
● 對關(guān)鍵通路(Critical Paths)的數(shù)字邏輯重新設(shè)計;
● 運行重布線(Re-entrant Routing);
● 運行MPPR(Multi-Pass Place & Route,多通路布局布線);
● 運行平面布局(Floorplan)查看布局圖及連通性。---下面重點介紹Re-entrant Routing與MPPR,它們都可改進布局布線結(jié)果,提高系統(tǒng)性能。其中Re-entrant Routing是指已運行過PAR后再次運行PAR,但跳過布局過程直接進行布線,如圖12所示。MPPR則是根據(jù)不同功耗表(Cost tables)來運行PAR多次,通過對每一個PAR迭代評分來確定最好路徑并保留,其中評分依據(jù)是未布線的連線個數(shù)、連線延遲與時序約束,如圖13所示。
結(jié)束語
---當(dāng)今社會,集成電路產(chǎn)業(yè)已成為高技術(shù)產(chǎn)業(yè)群的核心戰(zhàn)略產(chǎn)業(yè),已逐漸演化為設(shè)計、制造、封裝、測試協(xié)調(diào)發(fā)展的產(chǎn)業(yè)結(jié)構(gòu),它正進入以知識產(chǎn)權(quán)為創(chuàng)新核心的新時期。這標(biāo)志著集成電路產(chǎn)業(yè)的競爭已由技術(shù)競爭、資本競爭進入到智力和知識產(chǎn)權(quán)競爭的高級階段。
---FPGA在集成電路設(shè)計應(yīng)用中占有重要地位,現(xiàn)場可編程性是FPGA最突出的優(yōu)點。用戶通過利用強大的開發(fā)工具,能在最短時間內(nèi)對FPGA內(nèi)部邏輯進行反復(fù)設(shè)計及修改,直至滿意為止,這大大縮短了產(chǎn)品設(shè)計開發(fā)周期,提高了最終產(chǎn)品性能。因而FPGA以其獨有的技術(shù)優(yōu)勢在電子設(shè)計領(lǐng)域得到越來越廣泛的應(yīng)用。隨著科學(xué)發(fā)展及工藝進步,作為重中之重的集成電路設(shè)計業(yè)必將遇到更大的挑戰(zhàn)及發(fā)展機遇。
參考文獻
1 王鎖萍,龔建榮等. 電子設(shè)計自動化教程. 成都: 電子科技大學(xué)出版社, 2000.2
2 褚振勇,翁木云. FPGA設(shè)計及應(yīng)用. 西安: 西安電子科技大學(xué)出版社, 2002.7
3 潘松,黃繼業(yè). EDA技術(shù)實用教程. 北京: 科學(xué)出版社. 2002,10
4 http://www.xilinx.com
5 http://www.altera.com





