1. 程式人生 > >LPMM閱讀筆記(3)

LPMM閱讀筆記(3)

rsh 公式 分享 比較 === ddl 運行時 適應 縮放

3 多電壓域設計

在現代的SoC設計中,不同的模塊有不同的性能和約束;舉例來說,CPU在系統中可需要以最快的速度運行,這樣的前提下,CPU就需要較高的電源電壓,對於另一個模塊USB而言,它只需要以一個比協議要求的基本頻率稍高一點且相對固定的頻率去運行就可以,這種情況下,USB就可以以一個比CPU的電壓低的電源來供電;從前面的章節我們可以知道,低電壓意味著更低的動態功耗和靜態功耗。

多電壓域設計是將芯片內部的邏輯分為多個部分,每個部分由其對應的電源電壓進行供電。脫離只有一種電壓的電源為芯片供電的思想後,有以下幾種技術可以應用。

1) 靜態電壓縮放(Static Voltage Scaling),簡稱為SVS:系統中的模塊采用固定的但電壓值不同的電源進行供電。

2) 多電壓縮放(Multi-level Voltage Scaling),簡稱MVS:系統中的同一個模塊根據不同的應用場景,可在兩級或多級電壓的電源上進行切換。

3) 動態電壓和頻率縮放(Dynamic Voltage and Frequency Scaling),簡稱DVFS:這是MVS的一種拓展應用,是通過控制電路實時的將不同模塊的工作電壓及工作頻率降低到恰好滿足系統最低要求來降低系統中不同模塊功耗的方法。

4) 自適應電壓縮放(Adaptive Voltage Scaling),簡稱AVS:可以說這又是DVFS的一種拓展應用,該技術采用閉環的控制電路,實時的對各模塊的電壓進行自動的調整。

3.1 多電壓域設計的挑戰

多電壓域設計對於設計人員而言,主要有以下幾個方面的挑戰:

1) 電壓轉換器:各級電壓域之間的有信號交互時,信號不能直接從一個電壓域跨越到另一個電壓域,需要在兩個電壓域之間增加一個電壓轉換器。

2) 靜態時序分析:當整個芯片只有一個電壓供電時,時序分析時只需要使用一個特征電壓的庫,工具可以直接進行分析;當芯片的多個模塊工作在不同的電壓下時,需要用到庫裏的多個電壓特征,某些電壓下,庫裏面可能還沒相應的信息,這樣的話可能需要通過折算/間接計算的方式進行時序分析,如此便使得多電壓域設計的靜態時序分析比較復雜。

3) 布局:多電壓域設計中對於布局有會增加一些約束,所以布局方面需要仔細的考慮一番。

4) 板級電源:多電壓設計要求板級設計上有更多電壓的電源來為芯片供電,增加了板級設計的復雜度。

5) 各模塊的上下電順序:多電壓域設計中,各模塊的上下電順序不恰當時,可能造成系統死鎖,為了避免這種情況,在上電順序上也需要設計人員仔細考慮。

3.2 電壓縮放接口——電壓轉換器(Level Shifters)

這一節主要回答下面幾個問題:

1) 為什麽需要電壓轉換器?

2) 電壓轉換器有幾種?

3) 電壓轉換器放在什麽地方?

4) 什麽時候需要電壓轉換器?

從上面的問題就可以看出電壓轉換器在多電壓域設計中是個至關重要的器件,下面對這幾個問題進行一一解答,先來看一下為什麽需要電壓轉換器?

假如我們用一個1.2V的信號去驅動一個0.9V的COMS門,理論上不用插入特別的接口單元,但這樣的話0.9V目標時鐘域的所有timing都會發生變化,需要重新建模,工作量很大。反過來,如果我們用一個0.9V的信號去驅動一個1.2V COMS門,除了時序上的問題外,還會導致CMOS上面的PMOS管和下面的NMOS管同時導通,產生短路電流;為了解決這些問題,我們有必要在兩個電壓域間交互的信號上插入電壓轉換器。

3.2.1 電壓轉換器的方向

電壓轉換器是采用模擬電路來實現的,其方向是固定的,無論是從高電壓域到低電壓域還是從低電壓域到高電壓域的轉換方向都是固定的,所以對應的有兩種電壓轉換器,分別是從高到低的電壓轉換器和從低到高的電壓轉換器。這個約束對於SVS來說可能不是什麽大的問題,但是對於其他電壓縮放技術來說可能是一個挑戰,因為電源電壓可能會在操作過程中發生變化,所以設計人員需要保證兩個電壓域之間的關系是確定的,要麽一直為高電壓域到低電壓域,要麽始終為低電壓域到高電壓域,或者始終一致。

3.2.2 高電壓域到低電壓域的電壓轉換器

高電壓域到低電壓域的電壓轉換器是采用兩個反相器串聯在一起來實現的,如圖 1所示,一個從高到低的電壓轉換器只會引入一個buf的延遲,所以它對timing的影響很小。

技術分享圖片

圖 1 High to Low Level Shifters

3.2.3 低電壓域到高電壓域的電壓轉換器

用一個來自低電壓域的信號去驅動一個高電壓域的cell時,有一個關鍵的問題是欠驅動力的信號增加了接收輸入端的上升時間和下降時間,如此便會增加短路電流的持續時間,還使得時序變差,采用如圖 2所示的專用電壓轉換器可以解決上述問題。

技術分享圖片

圖 2 Low to High Level Shifters

為了加深理解和便於說明,我在圖 2上的關鍵節點加上了標號,各個點對應的真值表如表 1所示,當輸入端INL為0時,A點為1,使得VT1導通,C點通過VT1接地為0,則VT2導通,D點為1,經反相器後OUTH輸出為0;當輸入端INL為1時,A點為0,B點為1,使得的VT3導通,D點通過VT3接地為0,經反相器後OUTH輸出為1;

表 1 低到高電壓域轉換器的真值表

技術分享圖片

低到高的電壓轉換器需要兩個電源,而且是共地的,相對於高到低的電壓轉換器,低到高的電壓轉換器引入的延遲明顯更長。

3.2.4 電壓轉換器的布局問題

多電壓域設計在布局方面對設計人員來說有較大的挑戰,通常將高到低的電壓轉換器放在低電壓域中,如圖 3的例子所示。

技術分享圖片

圖 3 電壓轉換器放在目標電壓域

若圖 3中1.2V電壓域和0.9V電壓域間的距離很小,且1.2V電壓域輸出信號的驅動能力足夠時,兩個電源域中間可以不需要額外的buf,但是,若兩個電源域間的距離較遠,或者輸出信號的驅動能力不足的呢?

上述問題可以考慮如圖 4所示的解決方法,在1.1V的電源域內插入buf,但是這樣就意味著1.2V的電源可能要想信號一樣在1.1V的電壓域內布線,這種復雜的電源布線是實現多電壓設計的關鍵挑戰之一。

技術分享圖片

圖 4 電壓域間插入buf

從低到高電壓域的電壓轉換器不論放在低電壓域還是高電壓域,都存在上述問題,因為低到高的電壓轉換器需要兩個電源,所以必然會有一個電源需要穿越到另一個電源域中,通常我們將低到高的電壓轉換器放在高電壓域中,例如圖 5所示的放置,因為輸出比輸入需要更大的電流驅動。

技術分享圖片

圖 5 低到高電壓轉換器的放置

3.2.5 電壓轉換器的自動實現

從邏輯的角度來看,電壓轉換器只是buf,所以電壓轉換器不會影響功能設計,現在的工具可以指定電壓轉換器的插入位置,但書中建議按照前面的兩種做法,將電壓轉換器放在目標電壓域,高到低的電壓轉換器可以根據時序約束來決定是否插入,低到高應該根據功耗和時序兩個方面來考慮,工程上,根據下述公式來確定是否插入電壓轉換器。

VDDH ?VDDL >VTPMOS ? (0.1*VDDH )

其中,VTPMOS是PMOS管的閾值電壓。

3.3 多電壓域設計中的時序問題

時鐘跨越不同的電壓域意味著時鐘需要通過電壓轉換器,對於MVS技術而言,時鐘分配會變得更加復雜,如圖 6中的buf有時工作在0.9V的電壓下,有時則工作在1.1V的電壓下,這樣的情況下,如何最大限度的減少可變電壓域相對於1.2V電源域的clock skew是一個問題,書上提出對於這個問題的解決辦法是對兩種情況的電壓都進行時序分析和優化,確保兩種情況都能滿足時序要求。

技術分享圖片

圖 6 多電壓域設計的時鐘分配

3.4 MVS對系統的設計的影響

3.4.1 上電順序

由於各模塊分別由不同的電源驅動,所以各個模塊間應該保持一個上電順序,以確保電路的功能正常,通常情況下,CPU會等待某些模塊(例如I/O,PLL)上電完成後才啟動。特別的,我們應該保證所有的電源域在完成上電復位前已經完全上電。

3.4.2 電壓過沖

多電壓系統運行時,電壓經常會發生變化,需要仔細控制電壓的上升/下降時間,以免出現overshoot 或undershoot,因為電壓上升到目標電壓以上或明顯低於目標電壓時,系統可能會發生故障或鎖死。

最後一點,電源電壓控制通常由CPU實現,所以電源電壓控制一般需要在軟件系統設計中考慮到。

關於多電壓域設計書中在這一章節主要講了上面的這些內容,看了下目錄,在後續章節中有Frequency and Voltage Scaling Design、Examples of Voltage and Frequency Scaling Design和Implementing Multi-Voltage, Power Gated Designs這三個章節與這一章的內容是相關的。

============正文結束===========

掃描下面的二維碼,閱讀其他章節。

技術分享圖片

LPMM閱讀筆記(3)