芯片設(shè)計(jì)進(jìn)階之路——門級(jí)優(yōu)化和多閾值電壓
低功耗深入理解(三)
在《芯片設(shè)計(jì)進(jìn)階之路——門控時(shí)鐘》里面介紹了門控時(shí)鐘。我們知道現(xiàn)在工具對(duì)門控時(shí)鐘的支持已經(jīng)十分成熟了,基本不需要我們?cè)O(shè)計(jì)上做任何改變,就能自動(dòng)實(shí)現(xiàn)。
還有兩種對(duì)設(shè)計(jì)影響小,而且比較成熟的低功耗技術(shù)是:
門級(jí)電路功耗優(yōu)化
多閾值電壓設(shè)計(jì)
這兩種技術(shù)和門控時(shí)鐘一樣,已經(jīng)被EDA工具支持的很好,基本不需要我們?cè)谠O(shè)計(jì)上額外做任何工作,就能很好的實(shí)現(xiàn)。我們只需要了解他們的概念和基本原理就行了。
1 門級(jí)電路的功耗優(yōu)化(Gate Level Power Optimization)
門級(jí)電路的功耗優(yōu)化(Gate Level Power Optimization,簡(jiǎn)稱GLPO)是從已經(jīng)映射的門級(jí)網(wǎng)表開始,對(duì)設(shè)計(jì)進(jìn)行功耗的優(yōu)化以滿足功耗的約束,同時(shí)設(shè)計(jì)保持其性能,即滿足設(shè)計(jì)規(guī)則和時(shí)序的要求。功耗優(yōu)化前的設(shè)計(jì)是已經(jīng)映射到工藝庫(kù)的電路,如下圖所示:

門級(jí)電路的功耗優(yōu)化包括了設(shè)計(jì)總功耗,動(dòng)態(tài)功耗以及漏電功耗的優(yōu)化。對(duì)設(shè)計(jì)做優(yōu)化時(shí),優(yōu)化的優(yōu)先次序如下:

從上到下,優(yōu)先級(jí)逐漸降低。優(yōu)化時(shí),所產(chǎn)生的電路首先要滿足設(shè)計(jì)規(guī)則的要求,然后滿足延遲(時(shí)序)約束的要求,在滿足時(shí)序性能要求的基礎(chǔ)上,進(jìn)行總功耗的優(yōu)化,再進(jìn)行動(dòng)態(tài)功耗的優(yōu)化和漏電功耗的優(yōu)化,最后對(duì)面積進(jìn)行優(yōu)化。
優(yōu)化時(shí)先滿足更高級(jí)優(yōu)先權(quán)的約束。進(jìn)行低級(jí)優(yōu)先權(quán)約束的優(yōu)化不能以犧牲更高優(yōu)先權(quán)的約束為代價(jià)。功耗的優(yōu)化不能降低設(shè)計(jì)的時(shí)序。為了有效地進(jìn)行功耗優(yōu)化,需要設(shè)計(jì)中有正的時(shí)間冗余(timing slacks)。功耗的減少以時(shí)序路徑的正時(shí)間冗余作為交換,即功耗優(yōu)化時(shí)會(huì)減少時(shí)序路徑上的正的時(shí)間冗余。因此,設(shè)計(jì)中正的時(shí)間冗余越多,就越有潛力降低功耗。
比如下面的例子:

在上圖中,與門輸出具有特別高的翻轉(zhuǎn)率。因?yàn)樗竺嬗幸粋€(gè)NOR門,所以可以將兩個(gè)門重新映射到一個(gè)AND-OR門加上一個(gè)反相器,這樣高翻轉(zhuǎn)的Net就變成了AND-OR內(nèi)部的信號(hào)線了。現(xiàn)在就不需在AND門后接一個(gè)大電容來支持高翻轉(zhuǎn)的輸出,有效降低了動(dòng)態(tài)功耗。
再看一個(gè)例子:

在上圖中,左邊多輸入與門中,高翻轉(zhuǎn)率的信號(hào)映射到了高功率輸入引腳,低翻轉(zhuǎn)信號(hào)映射到了低功率引腳。對(duì)于多輸入門,不同引腳的輸入電容可能差異很大——因此功率可能存在顯著差異。通過重新映射,使高翻轉(zhuǎn)信號(hào)映射到低功率輸入端,可以降低動(dòng)態(tài)功耗。
與時(shí)鐘門控一樣,門級(jí)功耗優(yōu)化由EDA工具來實(shí)現(xiàn),并且對(duì)于RTL設(shè)計(jì)人員是透明的。我們只需要了解這個(gè)概念,知道有這個(gè)優(yōu)化就足夠了。
2 多閾值電壓設(shè)計(jì)(Multi-Threshold Logic)
多閾值電壓指的是在工藝庫(kù)中,同一種功能的門會(huì)有多種閾值電壓的cell,這樣在不同的邏輯里就能通過選擇不同的閾值電壓來降低靜態(tài)功耗。
多閾值電壓是用來降低靜態(tài)功耗,也就是漏電功耗的。為什么多閾值電壓技術(shù)可以降低漏電功耗呢?
這是基于下面兩個(gè)結(jié)論:
1. 閾值電壓VT越高,泄露功耗越小;
2. 閾值電壓VT越高,門延時(shí)越大;
如下圖所示:

一個(gè)更直觀的圖如下:(一個(gè)90nm庫(kù)的數(shù)據(jù))

可以看到,泄露功耗隨著VT提高,呈指數(shù)級(jí)減少,有時(shí)LVT和HVT可以相差100倍。但是器件延時(shí)隨VT增加卻不是指數(shù)級(jí)的,但是還是VT越高,延時(shí)越大。
泄露功耗主要來源于亞閾值漏電流(Sub-threshold Leakage)引起的功耗(詳細(xì)描述可以參考之前的文章)。一個(gè)比較好的計(jì)算公式如下:

W/L是晶體管的尺寸,Vth是熱相關(guān)常量;Cox/Vth/W/L都是工藝相關(guān),不可以調(diào)整。VGS就是VDD;
VT是閾值電壓;可以看到,閾值電壓越高,漏電功耗就越低。但是閾值電壓越高,對(duì)應(yīng)的翻轉(zhuǎn)速度就會(huì)越慢,延時(shí)就會(huì)越大,性能就越差。
一般綜合時(shí),會(huì)先用HVT的cell去綜合,然后在critical path上如果有timing不過,再用LVT去修。但是一般會(huì)限制LVT的數(shù)量,防止泄露功耗太大。因?yàn)閬嗛撝敌孤╇娏麟S溫度呈指數(shù)增長(zhǎng)(Vth)。即使在室溫下的泄漏是可以接受的,在最壞的情況下,溫度會(huì)超過芯片的設(shè)計(jì)目標(biāo)。
后記
門控時(shí)鐘,門級(jí)優(yōu)化和多閾值電壓技術(shù)已經(jīng)是很常見,普遍使用的低功耗技術(shù)?,F(xiàn)在工具和Flow已經(jīng)能夠很好的支持。但是作為設(shè)計(jì)人員,還是需要了解其基本原理,文中的描述已經(jīng)足夠大多數(shù)人的需求了。