Xilinx(賽靈思)是全球領(lǐng)先的可編程邏輯完整解決方案的供應(yīng)商。Xilinx研發(fā)、制造并銷售范圍廣泛的高級集成電路、軟件設(shè)計工具以及作為預(yù)定義系統(tǒng)級功能的IP(Intellectual Property)核??蛻羰褂肵ilinx及其合作伙伴的自動化軟件工具和IP核對器件進行編程,從而完成特定的邏輯操作。Xilinx公司成立于 1984年,Xilinx首創(chuàng)了現(xiàn)場可編程邏輯陣列(FPGA)這一創(chuàng)新性的技術(shù),并于1985年首次推出商業(yè)化產(chǎn)品。目前Xilinx滿足了全世界對FPGA產(chǎn)品一半以上的需求。
自從Xilinx推出FPGA二十多年來,研發(fā)工作大大提高了FPGA的速度和面積效率,縮小了FPGA與ASIC(Application Specific Integrated Circuit的英文縮寫,在集成電路界被認為是一種為專門目的而設(shè)計的集成電路)之間的差距,使FPGA成為實現(xiàn)數(shù)字電路的優(yōu)選平臺?,F(xiàn)如今FPGA在各種電路設(shè)計中廣泛應(yīng)用,如何對FPGA系統(tǒng)進行低功耗優(yōu)化成為一個重要的現(xiàn)實問題。從最早的FPGA功耗模型的建,到較完善的FPGA功耗估算模型,再到現(xiàn)在功耗估算工具的出現(xiàn),F(xiàn)PGA設(shè)計時對功耗的預(yù)估已經(jīng)越來越準確,節(jié)約功耗的方法也越來越多樣降低 FPGA 功耗是縮減封裝和散熱成本、提高器件可靠性以及打開移動電子設(shè)備等新興市場之門的關(guān)鍵。Xilinx在提供低功耗 FPGA 解決方案方面一馬當(dāng)先。本文說明如何應(yīng)用計算機輔助設(shè)計(CAD,CAD-Computer Aided Design)利用計算機及其圖形設(shè)備幫助設(shè)計人員進行設(shè)計工作) 技術(shù),如 Xilinx? ISE? 9.2i 軟件中采納的技術(shù),來有效降低功耗。
ISE是使用XILINX的FPGA的必備的設(shè)計工具,它可以完成FPGA開發(fā)的全部流程,包括設(shè)計輸入、仿真、綜合、布局布線、生成BIT文件、配置以及在線調(diào)試等,功能非常強大。ISE除了我們功能完整,使用方便外,它的設(shè)計性能也非常好,拿ISE 9.x來說,其設(shè)計性能比其他解決方案平均快30%,它集成的時序收斂流程整合了增強性物理綜合優(yōu)化,提供最佳的時鐘布局、更好的封裝和時序收斂映射,從而獲得更高的設(shè)計性能。先進的綜合和實現(xiàn)算法將動態(tài)功耗降低了10%。
CMOS(Complementary Metal Oxide Semiconductor,互補金屬氧化物半導(dǎo)體,電壓控制的一種放大器件。是組成CMOS數(shù)字集成電路的基本單元) 電路中的功耗由靜態(tài)(漏電)功耗和動態(tài)功耗兩部分組成。靜態(tài)功耗主要由晶體管的泄漏電流和FPGA偏置電流引起,它與工藝技術(shù)、晶體管特性、晶體管個數(shù)、采用的絕緣介質(zhì)等因素有關(guān),這些是由FPGA本身決定的,與電路活動無關(guān)。晶體管的泄漏電流主要由三部分組成:亞閾值漏電流、柵極漏電流和源漏極反偏漏電流動態(tài)功耗是指電容充放電功耗和短路功耗,是由電路的翻轉(zhuǎn)造成的,符合以下公式:
其中,Ci 表示信號 i 的電容;fi 稱為“開關(guān)活動率”,表示信號 i 上的躍遷速率;V 是電源電壓。
靜態(tài)功耗是指漏電流功耗,是電路狀態(tài)穩(wěn)定時的功耗,其數(shù)量級很小,主要是亞閾值漏電流和柵極氧化層漏電流。截止 MOS 晶體管屬不完全絕緣體,允許其漏極與源極之間有亞閥值漏電流。柵極氧化層漏電流是由通過晶體管柵極流向其管體、漏極和源極的隧道電流所致。
工藝尺寸縮小(如近期采納 65 納米工藝的趨勢)意味著更低的電源電壓和更小的晶體管尺寸,致使導(dǎo)線長度縮短、電容量減小以及總體動態(tài)功耗降低。較小的工藝幾何尺寸還意味著較短的晶體管溝道和較薄的柵極氧化層,致使靜態(tài)功耗隨著工藝尺寸縮小而增加。
FPGA工作原理
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來實現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了即可實現(xiàn)組合邏輯功能又可實現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲單元加載編程數(shù)據(jù)來實現(xiàn)的,存儲在存儲器單元中的值決定了邏輯單元的邏輯功能以及個模塊之間或模塊與I/O間的連接方式,并最終決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。
FPGA中的功耗
對于實現(xiàn)給定的邏輯電路而言,F(xiàn)PGA的可編程性和靈活性使其功耗效率比定制ASIC要低。目前,在集成電路界ASIC被認為是一種為專門目的而設(shè)計的集成電路。是指應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計、制造的集成電路。ASIC的特點是面向特定用戶的需求,ASIC在批量生產(chǎn)時與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優(yōu)點。FPGA的配置電路和配置存儲器占用硅片面積,致使導(dǎo)線延長和互連電容增加。在FPGA中,預(yù)制金屬導(dǎo)線段上附加的可編程布線開關(guān)產(chǎn)生互連,從而加重了信號產(chǎn)生的電容性負載。
雖然靜態(tài)電流與動態(tài)電流相比可以忽略不計,然而對電池供電的手持設(shè)備就顯得十分重要,在設(shè)備通電而不工作時更是如此。靜態(tài)電流的因素眾多,包括處于沒有完全關(guān)斷或接通的狀態(tài)下的I/O以及內(nèi)部晶體管的工作電流、內(nèi)部連線的電阻、輸入與三態(tài)電驅(qū)動器的上拉或下拉電阻。在易失性技術(shù)中,保持編程信息也需一定的靜態(tài)功率???a target="_blank">熔斷是一種非易失性技術(shù),因此信息存儲不消耗靜態(tài)電流。動態(tài)功耗是在時鐘工作且輸入正在開關(guān)時的功耗。對CMOS電路,動態(tài)功耗基本上確定了總功耗。動態(tài)功耗包括幾個成分,主要是電容負載充電與放電(內(nèi)部與I/O)以及短路電流。如果器件驅(qū)動多個I/O負載,大量的動態(tài)電流構(gòu)成總功耗的主要部分。
FPGA中的動態(tài)功耗大部分消耗在可編程布線架構(gòu)中。同理,靜態(tài)功耗與晶體管總寬度成正比。FPGA的晶體管有相當(dāng)一部分是互連架構(gòu),這是造成漏電流的主要因素。因此,互連架構(gòu)應(yīng)該是FPGA功耗優(yōu)化的主要攻關(guān)目標。
當(dāng)然,可以通過工藝技術(shù)、硬件架構(gòu)或電路級修改來解決功耗問題。例如,Virtex?-5 FPGA 含有“對角線”互連資源,允許用較少的布線導(dǎo)體構(gòu)成連接,從而減少互連電容。在晶體管級,Virtex-4 和 Virtex-5 兩種 FPGA 都是采用三柵極氧化層工藝技術(shù)來抑制漏電流。根據(jù)其速度、功耗和可靠性要求,可以為每個晶體管使用三倍氧化層厚度。與在標準 FPGA 架構(gòu)中實現(xiàn)同樣功能相比,DSP 和處理器等硬 IP 模塊的數(shù)量激增和推廣使用也可以降低功耗。
也有可能,不必耗費巨資更改硬件,就可以降低功耗??梢酝ㄟ^功耗驅(qū)動的新型CAD算法和設(shè)計流程(如 ISE 9.2i 軟件中采納的算法和設(shè)計流程)來解決功耗問題。
ISE 9.2i 設(shè)計工具中的功耗優(yōu)化
ISE 9.2i 軟件在布局布線中體現(xiàn)了功耗優(yōu)化,并且通過一種后期布線技術(shù)來降低邏輯塊的內(nèi)部功耗。
布局
Xilinx布局器中的核心算法采用了解析(數(shù)學(xué))技術(shù)。這種算法以有重疊的初始設(shè)計布局開始,然后使用強行抽象法從高度擁擠區(qū)去除邏輯塊,最終形成可行的無重疊布局。一旦完成解析布局,便在已布局的設(shè)計上運行交換式局部優(yōu)化,以進一步細化布局。本布局器中使用的傳統(tǒng)成本函數(shù)按以下公式考慮導(dǎo)線長度和時間:
其中,W 和 T 分別是導(dǎo)線長度成本和時間成本,a和b是標量加權(quán)系數(shù)。a和b的值可以根據(jù)時間對導(dǎo)線長度的相對優(yōu)先級設(shè)定。布局器的成本核算方案如圖1所示。
因為進行布局時還沒有實際線路,所以導(dǎo)線長度成本是依據(jù)導(dǎo)線長度估算。同理,時間成本是依據(jù)用戶提供的限制條件和連接延遲的估算值。為了優(yōu)化功耗,我們用為成本函數(shù)增加功耗成分的方法擴展了解析布局和局部優(yōu)化,如圖 1 右側(cè)所示。修改后的成本函數(shù)如下:
其中,Pdynamic是估算的動態(tài)功耗(如前述定義),c是標量加權(quán)系數(shù)??梢詮姆抡嬷刑崛⌒盘栭_關(guān)活動率數(shù)據(jù),然后將其提供給工具。反之,如果不提供任何開關(guān)活動率數(shù)據(jù),則工具根據(jù)邏輯功能為初始輸入和后續(xù)輸出假定一個默認的開關(guān)活動率,并且將活動率推廣到其余信號。要獲得最佳結(jié)果,需要有用戶提供的開關(guān)活動率數(shù)據(jù)。
本文討論的布局和布線優(yōu)化旨在降低互連架構(gòu)中的功耗。
在布局過程中,信號的電容是未知的,因此必須估算。根據(jù)布局過程中已有的信號參數(shù),我們建立了一個電容估算經(jīng)驗?zāi)P停?/p>
其中,f表示普通數(shù)學(xué)函數(shù);Ci是信號i的電容;FOi 是信號i的扇出數(shù);XSi和YSi分別是布局中信號i的X跨度和Y跨度。這些參數(shù)獨立于架構(gòu),并且在布局過程中已經(jīng)具備。
為建立此模型,我們提取了從Xilinx的客戶那里收集的一組設(shè)計中每個信號的電容、扇出數(shù)、X跨度和Y跨度。
然后,我們用最小平方回歸分析法將電容整理成模型參數(shù)的一個二次函數(shù)。就各種設(shè)計平均而言,該解析公式的誤差為30%。
布線
布線意思是元器件間導(dǎo)線連接的布置,先布好線,將導(dǎo)線穿過有電氣連接的引腳所在的孔,這樣可以在焊接元件的同時,實現(xiàn)元件間的連接。
一旦將邏輯塊分配到FPGA上的物理位置,我們就必須為各塊之間的連接進行布線。布線器采用一種協(xié)商擁塞布線算法,該算法在初始迭代中允許信號間短路。在后續(xù)迭代中,對短路的產(chǎn)生逐漸加大處罰,直到僅剩一個信號使用布線導(dǎo)體。對時間關(guān)鍵型連接布線的方式,應(yīng)盡量縮短其延遲,這涉及到計算密集型RC延時計算。不過,大多數(shù)連接并非時間關(guān)鍵型。
在功耗監(jiān)控型布線器中,我們選擇優(yōu)化這類非關(guān)鍵型連接的電容。為達到這一目的,我們針對非時間關(guān)鍵型連接修改了布線器的成本函數(shù),以便考慮電容,這與上述根據(jù)其他因素(如估算的延遲或不足)的方法截然相反。為了解這種算法,請看圖2中的布線圖。
該布線圖中的每個節(jié)點表示一個布線導(dǎo)體或邏輯塊引腳,每條邊線表示一個可編程布線開關(guān)。布線器必須在源引腳和目標引腳之間選擇一條路徑。圖中各節(jié)點內(nèi)部所示為該節(jié)點的原始成本和電容成本。若要盡量降低原始成本,源引腳和目標引腳之間的布線就應(yīng)采納藍色路徑。然而,在功耗監(jiān)控型流程中,布線器會使用綠色路徑,因為這條路徑的總體電容較低。
功耗監(jiān)控型布局與布線的結(jié)果
我們使用傳統(tǒng)布局布線流程和上述功耗型流程兩種方法對一組工業(yè)設(shè)計進行了布局布線。這些設(shè)計的初始輸入附加一個基于線性反饋移位寄存器(LFSR-based)的偽隨機矢量生成器,從而增加了內(nèi)置的自動輸入矢量生成功能。這樣,我們無需大量使用外部波形就能完成動態(tài)功耗的板級測量。
我們把這些工業(yè)設(shè)計映射到了Spartan-3、Virtex-4和Virtex-5器件中。結(jié)果顯示,動態(tài)功耗降低率對于Spartan-3 FPGA達14%,對于Virtex-4 FPGA達11%,對于Virtex-5 FPGA達12%。就所有設(shè)計平均而言,動態(tài)功耗降低率對于Spartan-3 FPGA為12%,對于Virtex-4 FPGA為5%,對于Virtex-5 FPGA為7%。就所有系列平均而言,速度性能下降在3%和4%之間,我們認為這樣小的性能損失在注重功耗的設(shè)計中是可以接受的??紤]到這些僅僅是軟件修改的初始結(jié)果,我們認為所取得的功耗效益是令人振奮的。
降低邏輯塊內(nèi)部功耗
本文討論的布局和布線優(yōu)化旨在降低互連架構(gòu)中的功耗。我們還設(shè)計了一種降低邏輯塊內(nèi)部功耗的方法,尤其是在未使用全部查找表(LUT)時,降低LUT中的功耗(圖3)。K輸入LUT是一種小存儲器,用區(qū)區(qū)幾K輸入即可實現(xiàn)任意邏輯功能。圖3所示為用一個假設(shè)的三輸入LUT(具有輸入A1、A2和A3)實現(xiàn)二輸入邏輯“與”功能的過程。多路復(fù)用器樹左側(cè)的LUT SRAM所示內(nèi)容為邏輯“與”的真值表。
請注意,圖3中的輸入A3未使用。通常,未使用的輸入作為“無關(guān)項”處理,假設(shè)為0或1。所以,為了在圖3所示的情況下說明這一點,Xilinx 軟件在LUT SRAM存儲器內(nèi)容的上下兩半部分中“重復(fù)”了該邏輯功能??蛻粼O(shè)計中經(jīng)常出現(xiàn)未使用的LUT輸入,特別是Virtex-5設(shè)計,其中的LUT有六個輸入。
在Virtex-5硬件中,把未使用的LUT提升為邏輯 1;這一特性是我們優(yōu)化的根本。如果把A3提升為邏輯1,那么對樹中最深層二輸入多路復(fù)用器的下半部輸入就永遠不會被選中。不過,因為邏輯功能在LUT存儲器內(nèi)容的上下兩半部分重復(fù),所以內(nèi)部多路復(fù)用器節(jié)點n1和n2會根據(jù)信號輸入A1和A2的變化發(fā)生翻轉(zhuǎn)。這種翻轉(zhuǎn)白白耗費動態(tài)功率,因為n1和 n2上的躍遷永遠不會傳輸?shù)絃UT的輸出端。
這種優(yōu)化需要在后期布線階段檢測未使用的LUT輸入,并且將LUT存儲器內(nèi)容設(shè)置為邏輯0,從而在不破壞邏輯功能的情況下排除不必要的內(nèi)部翻轉(zhuǎn)。回到圖3的例子,LUT存儲器內(nèi)容的下半部分將設(shè)置為邏輯0。內(nèi)部節(jié)點n1和n2上不會發(fā)生翻轉(zhuǎn),因此不會由于對n1和n2充放電而消耗動態(tài)功耗。
為了評價在工業(yè)設(shè)計上進行的這一優(yōu)化,我們進行了板級功耗測量,發(fā)現(xiàn)動態(tài)功耗節(jié)省了若干個百分點。這些結(jié)果說明大有前途,因為可以在布線后進行優(yōu)化,不會造成面積或性能損失,從這種意義上講,這種優(yōu)化是“免費”的。
結(jié)論
在用設(shè)計工具進一步降低功耗方面,存在著多種發(fā)展趨勢。在前端HDL(Hardware Description Language,是硬件描述語言。顧名思義,硬件描述語言就是指對硬件電路進行行為描述、寄存器傳輸描述或者結(jié)構(gòu)化描述的一種新興語言)綜合中,F(xiàn)PGA可以借鑒ASIC領(lǐng)域中成熟的優(yōu)化方法,如時鐘門控法和運算元隔離法。也可以使用針對FPGA的功耗優(yōu)化方法,例如,將邏輯映射到可用的Block RAM(可以用作大型ROM)中,以此取代使用 LUT(顯示查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個RAM。它把數(shù)據(jù)事先寫入RAM后,每當(dāng)輸入一個信號就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出) 和普通架構(gòu)的方法。
將功耗監(jiān)控型邏輯綜合和活動率驅(qū)動的工藝映射到 LUT 的方法在文獻中已有充分報道,這些方法將使Xilinx FPGA 大大降低功耗。在布局方面,電容估算精度的提高會更大幅度地降低功耗。
我們感覺特別有潛力的兩個方面是偽信號優(yōu)化和漏電流優(yōu)化。偽信號是由電路中路徑延遲不均衡所致在信號上發(fā)生的偽躍遷。這種躍遷是不必要的,但在動態(tài)功耗中卻占據(jù)著重要位置。抑制偽信號的CAD技術(shù)包括均衡路徑延遲或者沿偽信號最多的路徑插入寄存器。數(shù)字CMOS電路中的漏電路在很大程度上取決于電路使用的輸入狀態(tài)。因此,在CAD中減少漏電流的一種方法是自動修改電路,使其信號值在漏電流狀態(tài)下保持較長時間。
結(jié)果顯示,在通過ISE設(shè)計工具降低功耗方面已經(jīng)取得長足的進步。對電子系統(tǒng)來說,減少功耗可以帶來很多好處,除了簡化系統(tǒng)的散熱處理及系統(tǒng)集成方面的工序、節(jié)約成本外,還能提高系統(tǒng)可靠性、降低熱噪聲干擾等。對便攜式儀器、野外工作儀器等電池供電的系統(tǒng)來說,還能延長電池壽命,減少更換電池的麻煩。在用軟件進一步降低功耗方面,我們認為前景一片光明。注重功耗的解決方案由功耗監(jiān)控型CAD算法和功耗優(yōu)化器件(如 Virtex-5 FPGA)組成,這一成功故事本身就頗為耐人尋味。低功耗軟硬件的不斷進步將為Xilinx FPGA打開進入新興功耗敏感型市場的大門。
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598923 -
CAD
+關(guān)注
關(guān)注
17文章
1067瀏覽量
72031 -
可編程邏輯
+關(guān)注
關(guān)注
7文章
514瀏覽量
44009
發(fā)布評論請先 登錄
相關(guān)推薦
評論