通過功耗驅(qū)動的新型后端流程可降低 Virtex-4,、Virtex-5 和 Spartan-3 設(shè)計中的功耗。
自從 Xilinx 推出 FPGA 二十多年來,,研發(fā)工作大大提高了 FPGA 的速度和面積效率,,縮小了 FPGA 與 ASIC 之間的差距,,使 FPGA 成為實(shí)現(xiàn)數(shù)字電路的優(yōu)選平臺。今天,,功耗日益成為 FPGA 供應(yīng)商及其客戶關(guān)注的問題,。
降低 FPGA 功耗是縮減封裝和散熱成本、提高器件可靠性以及打開移動電子設(shè)備等新興市場之門的關(guān)鍵,。
Xilinx 在提供低功耗 FPGA 解決方案方面一馬當(dāng)先,。本文說明如何應(yīng)用計算機(jī)輔助設(shè)計 (CAD) 技術(shù),如 Xilinx® ISE™ 9.2i 軟件中采納的技術(shù),,來有效降低功耗,。
CMOS 電路中的功耗由靜態(tài)(漏電)功耗和動態(tài)功耗兩部分組成。動態(tài)功耗是由電路信號上的躍遷所致,,符合以下公式:
其中,,Ci 表示信號 i 的電容;fi 稱為“開關(guān)活動率”,,表示信號 i 上的躍遷速率,;V 是電源電壓。
靜態(tài)功耗是電路在靜止,、空閑狀態(tài)下的功耗,。靜態(tài)功耗是由截止晶體管中的漏電流引起,主要是亞閾值漏電流和柵極氧化層漏電流,。截止 MOS 晶體管屬不完全絕緣體,,允許其漏極與源極之間有亞閥值漏電流。柵極氧化層漏電流是由通過晶體管柵極流向其管體,、漏極和源極的隧道電流所致,。
工藝尺寸縮小(如近期采納 65 納米工藝的趨勢)意味著更低的電源電壓和更小的晶體管尺寸,,致使導(dǎo)線長度縮短,、電容量減小以及總體動態(tài)功耗降低。較小的工藝幾何尺寸還意味著較短的晶體管溝道和較薄的柵極氧化層,,致使靜態(tài)功耗隨著工藝尺寸縮小而增加,。
FPGA 中的功耗
對于實(shí)現(xiàn)給定的邏輯電路而言,F(xiàn)PGA 的可編程性和靈活性使其功耗效率比定制 ASIC 要低,。FPGA 的配置電路和配置存儲器占用硅片面積,,致使導(dǎo)線延長和互連電容增加。在 FPGA 中,,預(yù)制金屬導(dǎo)線段上附加的可編程布線開關(guān)產(chǎn)生互連,,從而加重了信號產(chǎn)生的電容性負(fù)載。
FPGA 中的動態(tài)功耗大部分消耗在可編程布線架構(gòu)中,。同理,,靜態(tài)功耗與晶體管總寬度成正比,。FPGA 的晶體管有相當(dāng)一部分是互連架構(gòu),這是造成漏電流的主要因素,。因此,,互連架構(gòu)應(yīng)該是 FPGA 功耗優(yōu)化的主要攻關(guān)目標(biāo)。
當(dāng)然,,可以通過工藝技術(shù),、硬件架構(gòu)或電路級修改來解決功耗問題。例如,,Virtex™-5 FPGA 含有“對角線”互連資源,,允許用較少的布線導(dǎo)體構(gòu)成連接,從而減少互連電容,。在晶體管級,,Virtex-4 和 Virtex-5 兩種 FPGA 都是采用三柵極氧化層工藝技術(shù)來抑制漏電流。根據(jù)其速度,、功耗和可靠性要求,,可以為每個晶體管使用三倍氧化層厚度。與在標(biāo)準(zhǔn) FPGA 架構(gòu)中實(shí)現(xiàn)同樣功能相比,,DSP 和處理器等硬 IP 模塊的數(shù)量激增和推廣使用也可以降低功耗,。
也有可能,不必耗費(fèi)巨資更改硬件,,就可以降低功耗,。您可以通過功耗驅(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è)計布局開始,,然后使用強(qiáng)行抽象法從高度擁擠區(qū)去除邏輯塊,,最終形成可行的無重疊布局。一旦完成解析布局,,便在已布局的設(shè)計上運(yùn)行交換式局部優(yōu)化,,以進(jìn)一步細(xì)化布局。本布局器中使用的傳統(tǒng)成本函數(shù)按以下公式考慮導(dǎo)線長度和時間:
其中,,W 和 T 分別是導(dǎo)線長度成本和時間成本,,a 和 b 是標(biāo)量加權(quán)系數(shù)。a 和 b 的值可以根據(jù)時間對導(dǎo)線長度的相對優(yōu)先級設(shè)定,。布局器的成本核算方案如圖 1 所示,。
因?yàn)檫M(jìn)行布局時還沒有實(shí)際線路,所以導(dǎo)線長度成本是依據(jù)導(dǎo)線長度估算。同理,,時間成本是依據(jù)用戶提供的限制條件和連接延遲的估算值,。為了優(yōu)化功耗,,我們用為成本函數(shù)增加功耗成分的方法擴(kuò)展了解析布局和局部優(yōu)化,,如圖 1 右側(cè)所示。修改后的成本函數(shù)如下:
其中,,Pdynamic 是估算的動態(tài)功耗(如前述定義),,c 是標(biāo)量加權(quán)系數(shù)??梢詮姆抡嬷刑崛⌒盘栭_關(guān)活動率數(shù)據(jù),,然后將其提供給工具。反之,,如果不提供任何開關(guān)活動率數(shù)據(jù),,則工具根據(jù)邏輯功能為初始輸入和后續(xù)輸出假定一個默認(rèn)的開關(guān)活動率,并且將活動率推廣到其余信號,。要獲得最佳結(jié)果,,需要有用戶提供的開關(guān)活動率數(shù)據(jù)。
本文討論的布局和布線優(yōu)化旨在降低互連架構(gòu)中的功耗,。
在布局過程中,,信號的電容是未知的,因此必須估算,。根據(jù)布局過程中已有的信號參數(shù),,我們建立了一個電容估算經(jīng)驗(yàn)?zāi)P停?/p>
其中,f 表示普通數(shù)學(xué)函數(shù),;Ci 是信號 i 的電容,;FOi 是信號 i 的扇出數(shù);XSi 和 YSi 分別是布局中信號 i 的 X 跨度和 Y 跨度,。這些參數(shù)獨(dú)立于架構(gòu),,并且在布局過程中已經(jīng)具備。
為建立此模型,,我們提取了從 Xilinx 的客戶那里收集的一組設(shè)計中每個信號的電容,、扇出數(shù)、X 跨度和 Y 跨度,。
然后,,我們用最小平方回歸分析法將電容整理成模型參數(shù)的一個二次函數(shù)。就各種設(shè)計平均而言,,該解析公式的誤差為 30%,。
布線
一旦將邏輯塊分配到 FPGA 上的物理位置,我們就必須為各塊之間的連接進(jìn)行布線。布線器采用一種協(xié)商擁塞布線算法,,該算法在初始迭代中允許信號間短路,。在后續(xù)迭代中,對短路的產(chǎn)生逐漸加大處罰,,直到僅剩一個信號使用布線導(dǎo)體,。對時間關(guān)鍵型連接布線的方式,應(yīng)盡量縮短其延遲,,這涉及到計算密集型 RC 延時計算,。不過,大多數(shù)連接并非時間關(guān)鍵型,。
在功耗監(jiān)控型布線器中,,我們選擇優(yōu)化這類非關(guān)鍵型連接的電容。為達(dá)到這一目的,,我們針對非時間關(guān)鍵型連接修改了布線器的成本函數(shù),,以便考慮電容,這與上述根據(jù)其他因素(如估算的延遲或不足)的方法截然相反,。為了解這種算法,,請看圖 2 中的布線圖。
該布線圖中的每個節(jié)點(diǎn)表示一個布線導(dǎo)體或邏輯塊引腳,,每條邊線表示一個可編程布線開關(guān),。布線器必須在源引腳和目標(biāo)引腳之間選擇一條路徑。圖中各節(jié)點(diǎn)內(nèi)部所示為該節(jié)點(diǎn)的原始成本和電容成本,。若要盡量降低原始成本,,源引腳和目標(biāo)引腳之間的布線就應(yīng)采納藍(lán)色路徑。然而,,在功耗監(jiān)控型流程中,,布線器會使用綠色路徑,因?yàn)檫@條路徑的總體電容較低,。
功耗監(jiān)控型布局與布線的結(jié)果
我們使用傳統(tǒng)布局布線流程和上述功耗型流程兩種方法對一組工業(yè)設(shè)計進(jìn)行了布局布線,。這些設(shè)計的初始輸入附加一個基于線性反饋移位寄存器 (LFSR-based) 的偽隨機(jī)矢量生成器,從而增加了內(nèi)置的自動輸入矢量生成功能,。這樣,,我們無需大量使用外部波形就能完成動態(tài)功耗的板級測量。
我們把這些工業(yè)設(shè)計映射到了 Spartan-3,、Virtex-4 和 Virtex-5 器件中,。結(jié)果顯示,動態(tài)功耗降低率對于 Spartan-3 FPGA 達(dá) 14%,,對于 Virtex-4 FPGA 達(dá) 11%,,對于 Virtex-5 FPGA 達(dá) 12%,。就所有設(shè)計平均而言,動態(tài)功耗降低率對于 Spartan-3 FPGA 為 12%,,對于 Virtex-4 FPGA 為 5%,,對于 Virtex-5 FPGA 為 7%。就所有系列平均而言,,速度性能下降在 3% 和 4% 之間,,我們認(rèn)為這樣小的性能損失在注重功耗的設(shè)計中是可以接受的??紤]到這些僅僅是軟件修改的初始結(jié)果,,我們認(rèn)為所取得的功耗效益是令人振奮的,。
降低邏輯塊內(nèi)部功耗
本文討論的布局和布線優(yōu)化旨在降低互連架構(gòu)中的功耗,。我們還設(shè)計了一種降低邏輯塊內(nèi)部功耗的方法,尤其是在未使用全部查找表 (LUT) 時,,降低 LUT 中的功耗(圖 3),。K 輸入 LUT 是一種小存儲器,用區(qū)區(qū)幾 K 輸入即可實(shí)現(xiàn)任意邏輯功能,。圖 3 所示為用一個假設(shè)的三輸入 LUT(具有輸入 A1,、A2 和 A3)實(shí)現(xiàn)二輸入邏輯“與”功能的過程。多路復(fù)用器樹左側(cè)的 LUT SRAM 所示內(nèi)容為邏輯“與”的真值表,。
請注意,,圖 3 中的輸入 A3 未使用。通常,,未使用的輸入作為“無關(guān)項(xiàng)”處理,,假設(shè)為 0 或 1。所以,,為了在圖 3 所示的情況下說明這一點(diǎn),,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ù)用器的下半部輸入就永遠(yuǎn)不會被選中。不過,,因?yàn)檫壿嫻δ茉?LUT 存儲器內(nèi)容的上下兩半部分重復(fù),,所以內(nèi)部多路復(fù)用器節(jié)點(diǎn) n1 和 n2 會根據(jù)信號輸入 A1 和 A2 的變化發(fā)生翻轉(zhuǎn),。這種翻轉(zhuǎn)白白耗費(fèi)動態(tài)功率,因?yàn)?n1 和 n2 上的躍遷永遠(yuǎn)不會傳輸?shù)?LUT 的輸出端,。
這種優(yōu)化需要在后期布線階段檢測未使用的 LUT 輸入,,并且將 LUT 存儲器內(nèi)容設(shè)置為邏輯 0,從而在不破壞邏輯功能的情況下排除不必要的內(nèi)部翻轉(zhuǎn),?;氐綀D 3 的例子,LUT 存儲器內(nèi)容的下半部分將設(shè)置為邏輯 0,。內(nèi)部節(jié)點(diǎn) n1 和 n2 上不會發(fā)生翻轉(zhuǎn),,因此不會由于對 n1 和 n2 充放電而消耗動態(tài)功耗。
為了評價在工業(yè)設(shè)計上進(jìn)行的這一優(yōu)化,,我們進(jìn)行了板級功耗測量,,發(fā)現(xiàn)動態(tài)功耗節(jié)省了若干個百分點(diǎn)。這些結(jié)果說明大有前途,,因?yàn)榭梢栽诓季€后進(jìn)行優(yōu)化,,不會造成面積或性能損失,從這種意義上講,,這種優(yōu)化是“免費(fèi)”的,。
結(jié)論
在用設(shè)計工具進(jìn)一步降低功耗方面,存在著多種發(fā)展趨勢,。在前端 HDL 綜合中,,F(xiàn)PGA 可以借鑒 ASIC 領(lǐng)域中成熟的優(yōu)化方法,如時鐘門控法和運(yùn)算元隔離法,。也可以使用針對 FPGA 的功耗優(yōu)化方法,,例如,將邏輯映射到可用的 Block RAM(可以用作大型 ROM)中,,以此取代使用 LUT 和普通架構(gòu)的方法,。
將功耗監(jiān)控型邏輯綜合和活動率驅(qū)動的工藝映射到 LUT 的方法在文獻(xiàn)中已有充分報道,這些方法將使 Xilinx FPGA 大大降低功耗,。在布局方面,,電容估算精度的提高會更大幅度地降低功耗。
我們感覺特別有潛力的兩個方面是偽信號優(yōu)化和漏電流優(yōu)化,。偽信號是由電路中路徑延遲不均衡所致在信號上發(fā)生的偽躍遷,。這種躍遷是不必要的,但在動態(tài)功耗中卻占據(jù)著重要位置,。抑制偽信號的 CAD 技術(shù)包括均衡路徑延遲或者沿偽信號最多的路徑插入寄存器,。數(shù)字 CMOS 電路中的漏電路在很大程度上取決于電路使用的輸入狀態(tài)。因此,,在 CAD 中減少漏電流的一種方法是自動修改電路,,使其信號值在漏電流狀態(tài)下保持較長時間,。
結(jié)果顯示,在通過 ISE 設(shè)計工具降低功耗方面已經(jīng)取得長足的進(jìn)步,。在用軟件進(jìn)一步降低功耗方面,,我們認(rèn)為前景一片光明。注重功耗的解決方案由功耗監(jiān)控型 CAD 算法和功耗優(yōu)化器件(如 Virtex-5 FPGA)組成,,這一成功故事本身就頗為耐人尋味,。低功耗軟硬件的不斷進(jìn)步將為 Xilinx FPGA 打開進(jìn)入新興功耗敏感型市場的大門。