基于IEEE1801(UPF)的低功耗設(shè)計流程_第1頁
基于IEEE1801(UPF)的低功耗設(shè)計流程_第2頁
基于IEEE1801(UPF)的低功耗設(shè)計流程_第3頁
基于IEEE1801(UPF)的低功耗設(shè)計流程_第4頁
基于IEEE1801(UPF)的低功耗設(shè)計流程_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于IEEE1801(UPF)標(biāo)準(zhǔn)的低功耗設(shè)計實現(xiàn)流程摘要目前除了時序和面積,功耗已經(jīng)成為集成電路設(shè)計中日益關(guān)注的因素。當(dāng)前有很多種降低功耗的方法,為了在設(shè)計實現(xiàn)流程中更加 有效的利用各種低功耗的設(shè)計方法,我們在最近一款芯片的設(shè)計實現(xiàn)以及驗證流程中,使用了基于IEEE1801標(biāo)準(zhǔn)Unified Power Format(UPF)的完整技術(shù),成功的完成了從RTL到GDSII的全部過程,并且芯片制造回來成功的完成了測試。本文就其中的設(shè)計實現(xiàn)部分進(jìn)行了詳 細(xì)探討,重點介紹如何用UPF把我們的低功耗意圖描述出來以及如何用Synopsys工具實現(xiàn)整個流程,希望給大家以啟發(fā)。本文先介紹目前常用的低功耗設(shè)

2、計的一些方法特別是用power-gating的方法來控制靜態(tài)功耗以及UPF的實現(xiàn)方法,然后闡述UPF在我們設(shè)計流程中的應(yīng)用,并在介紹中引入了一些 我們的設(shè)計經(jīng)驗,最后給出我們的結(jié)論。關(guān)鍵字:IEEE1801, UPF,低功耗, 電源關(guān)斷,Power-Gating, Isolation, IC-Compiler1. 簡介1.1 深亞微米設(shè)計面臨的挑戰(zhàn)隨著工藝特征尺寸的縮小以及復(fù)雜度的提高,IC設(shè)計面臨了很多挑戰(zhàn):速度越來越高,面積不斷增大,噪聲現(xiàn)象更加嚴(yán)重等。其 中,功耗問題尤為突出,工藝進(jìn)入130nm以下節(jié)點后,單位面積上的功耗密度急劇上升,已經(jīng)達(dá)到封裝、散熱、以及底層設(shè)備所能支持的極限。隨著

3、工藝進(jìn)一步 達(dá)到90nm以下,漏電流呈指數(shù)級增加(如圖所示),在某些65nm設(shè)計中,漏電流已經(jīng)和動態(tài)電流一樣大,曾經(jīng)可以忽略的靜態(tài)功耗成為功耗的主要部分。 功耗已成為繼傳統(tǒng)二維要素(速度、面積)之后的第三維要素。圖1: 靜態(tài)功耗與工藝特征尺寸的關(guān)系 另外,目前飛速發(fā)展的手持電子設(shè)備市場,為了增強(qiáng)自身產(chǎn)品的競爭力,也對低功耗提出了越來越高的要求;其次散熱問題、可靠 性問題也要求IC的功耗越小越好;最后全球都在倡導(dǎo)綠色環(huán)保科技理念,保護(hù)環(huán)境,節(jié)約能源。這些都要求IC設(shè)計時必須采用低功耗技術(shù),以有效應(yīng)對這些挑 戰(zhàn)。1.2 目前低功耗設(shè)計常用的方法如圖所示,影響功耗的因素有電壓、漏電流、工作

4、頻率、有效電容等??梢酝ㄟ^降低工作電壓、減少翻轉(zhuǎn)負(fù)載以及降低電路翻轉(zhuǎn) 率等來降低動態(tài)功耗;通過減少工作電壓以及減少漏圖2: 影響功耗的因素 電流來降低靜態(tài)功耗。當(dāng)前,業(yè)界采用了各種方法來降低芯片的動態(tài)功耗和靜態(tài)功耗。如圖3所示,傳統(tǒng)的低功耗技術(shù)有時鐘關(guān)斷 (Clock-Gating),多域值電壓庫(Multi-threshold libraries)等;較新的技術(shù)有多電壓(Multi-Voltage),電源關(guān)斷(MTCMOS Power Gating),帶狀態(tài)保持功能的電源關(guān)斷(Power Gating with State Retention),動態(tài)電壓頻率調(diào)整(Dynamic V

5、oltage and Frequency Scaling),低電壓待機(jī)(Low-Vdd Standby)等。圖3: 低功耗技術(shù)示例 1.3 控制靜態(tài)漏電的方法1.3.1 電路優(yōu)化(Gate-level Optimization)在設(shè)計實現(xiàn)過程中,自動化的綜合和布局布線工具可以根據(jù)電路的時序特征,來綜合優(yōu)化每條路徑中用到的所有標(biāo)準(zhǔn)單元的時序, 面積以及功耗。根據(jù)負(fù)載將非關(guān)鍵路徑中的標(biāo)準(zhǔn)單元切換到具有較小驅(qū)動能力的單元,由于輸出電容減小,可以減小動態(tài)功耗;同時,由于標(biāo)準(zhǔn)單元MOS管和電容 變小,靜態(tài)漏電流也同時減小。除了變化驅(qū)動能力之外,還可以通過優(yōu)化電路中的邏輯單元、移動單元物理位置等

6、方法來達(dá)到降低功耗的目的。1.3.2 多域值電壓庫 (Multi-Threshold)如圖所示,高域值電壓的標(biāo)準(zhǔn)單元漏電流小但速度慢,低域值電壓的標(biāo)準(zhǔn)單元則速度快但漏電流大。所以采用多域值電壓庫作為 設(shè)計實現(xiàn)的目標(biāo)庫,在設(shè)計中盡可能多地用高域值電壓的標(biāo)準(zhǔn)單元,僅在關(guān)鍵路徑上為了滿足時序要求采用低域值電壓的標(biāo)準(zhǔn)單元,這樣就可以最大限度地減小標(biāo)準(zhǔn) 單元的漏電流,從而降低靜態(tài)功耗。圖4: 漏電流、單元速度與閾值電壓三者之間的關(guān)系 1.3.3 電源關(guān)斷 (Power-Gating)芯片中某些模塊在不工作時,可以關(guān)斷其電源,在需要工作時,再將其電源導(dǎo)通,這就是電源關(guān)斷技術(shù)。它可以使電源關(guān)斷區(qū)域

7、的 漏電流降至接近零,極大的減小芯片的靜態(tài)功耗?,F(xiàn)在電源關(guān)斷的技術(shù)也很多,有片內(nèi)關(guān)斷、片外關(guān)斷。顧名思義,片外關(guān)斷就是在芯片外部通過切斷電源來關(guān)斷芯 片內(nèi)部的某些模塊。片內(nèi)關(guān)斷又分為精細(xì)關(guān)斷(fine-grain)和粗糙關(guān)斷(coarse-grain),精細(xì)關(guān)斷需要特別庫的支持,可以實現(xiàn)每個標(biāo) 準(zhǔn)單元的精細(xì)關(guān)斷;而粗糙關(guān)斷只需要一些門控單元就可以實現(xiàn)對某些模塊的電源或地的控制,如圖所示,用pmos來控制電源,用nmos來控制地。圖5: 電源關(guān)斷(Power-Gating)的原理圖 2. UPF的設(shè)計實現(xiàn)流程IEEE1801標(biāo)準(zhǔn)Unified Power Format(UPF)是一個真

8、正意義統(tǒng)一的,被廣泛采用的低功耗實現(xiàn)標(biāo)準(zhǔn)。它用一些標(biāo)準(zhǔn)的語句描述用戶的低功耗設(shè)計意圖(Power Intent)。如圖所示,圖6: UPF的應(yīng)用流程 有了這樣一個統(tǒng)一的UPF文件,邏輯綜合、物理實現(xiàn)、仿真驗證、等效性檢查以及最后的sign-off流程就可以按照 UPF中對低功耗設(shè)計意圖的描述來完成整個IC設(shè)計實現(xiàn)驗證流程。這樣貫穿于整個流程的低功耗意圖來源于同一個文件,這種一致性可以大大降低低功耗設(shè)計的 風(fēng)險性。并且UPF對低功耗設(shè)計提供了開放的,多廠商工具支持的流程和解決方案。眾多支持UPF標(biāo)準(zhǔn)的EDA供應(yīng)商的產(chǎn)品證明了它是一個互操作性強(qiáng)的標(biāo) 準(zhǔn)。2.1 Synopsys基于UPF

9、的低功耗設(shè)計流程Synopsys公司提供了完整的基于UPF的低功耗綜合、物理實現(xiàn)和驗證流程,如圖7所示。該流程始于寄存器傳輸級 (RTL)描述的邏輯設(shè)計,加上一個獨(dú)立的描述低功耗設(shè)計意圖的UPF文件。RTL和UPF描述分別放在獨(dú)立的文件中,使他們可以單獨(dú)維護(hù)和修改。在這個 示例中,最初的UPF文件標(biāo)志為UPF。圖7: UPF Flow With Synopsys Tools Design Compiler讀入RTL和初始UPF描述文件,基于它們綜合出門級網(wǎng)表并產(chǎn)生一個更新了的UPF文件,這個Design Compiler輸出的UPF文件在示例圖中標(biāo)志為UPF。UPF文件中包含了原始U

10、PF文件的內(nèi)容,并添加了綜合時加入的對某些特殊cell(比如 isolation cells、level shifters)的電源和地的連接關(guān)系。綜合輸出的門級網(wǎng)表已經(jīng)被工具根據(jù)UPF的相應(yīng)描述插入了一些低功耗所需的特殊電路單元,比如Level- Shifter,Isolation cells,Retention Register等。IC Compiler讀入綜合輸出的門級網(wǎng)表和UPF描述文件,基于它們進(jìn)行物理實現(xiàn),包括:布局和布線以及電源關(guān)斷特殊單元(Power-Gating cell)的插入、擺放和控制信號線的連接等步驟。輸出一個新的門級網(wǎng)表,一個包括所有cell的電源和地連接關(guān)系的網(wǎng)表(

11、俗稱pg網(wǎng)表),以及一個更新 了的UPF文件,標(biāo)志為UPF。UPF文件包含了UPF的內(nèi)容,并添加了在物理實現(xiàn)階段對低功耗電路結(jié)構(gòu)的改變,比如添加了Power Switches(俗稱MTCMOS)的連接關(guān)系。這個flow中產(chǎn)生的數(shù)據(jù)可以用于做功能仿真(利用MVSIM、VCS),插入的低功耗單元的正確性檢查(利用 MVRC),形式驗證(利用Formality),以及時序功耗檢查(利用Prime Time-PX)和電壓降(IR-Drop)(利用Prime Rail)的驗證。VCS仿真器和MVSIM多電壓仿真工具可以在幾個階段用來做多電壓的功能仿真:RTL級,綜合后加入了低功耗相關(guān)器件 (比如Isol

12、ation cell)的門級,以及PR之后加入了Power Switches的門級。MVRC用于檢查多電壓設(shè)計的規(guī)則是否正確實現(xiàn),包括電源連接關(guān)系、電源結(jié)構(gòu)、電源一致性等等,也適用于流程中的各個步驟。Prime Time讀入DC或ICC輸出的門級網(wǎng)表以及對應(yīng)的UPF文件。它利用UPF文件中的信息建立一個虛擬的電源網(wǎng)絡(luò)模型,并將電壓值反標(biāo)到每個器件的電源端 口,進(jìn)行帶電源信息的時序檢查。Prime Rail是基于帶UPF信息的版圖進(jìn)行電壓降以及電遷移的分析。如果設(shè)計中有電源關(guān)斷單元,它還可以分析相關(guān)關(guān)斷電路的瞬態(tài)電流以及動態(tài)的電壓降分布。來 幫助判斷這些電源關(guān)斷單元是否插入合理以及是否需要插入D

13、e-cap單元。2.2 UPF所需要的特殊單元庫基于UPF的設(shè)計流程與傳統(tǒng)流程相比,需要一些庫中特殊單元的支持以及對傳統(tǒng)的DB時序庫添加電源地的信息。特殊單元包括 Level-shifter,Isolation Cell,電源關(guān)斷單元(Power Gating, 也叫MTCMOS),Retention-Register,以及Always-on單元。下面分別闡述:2.2.1 Level-Shifter和Isolation Cell對于多電壓設(shè)計,需要用Level-shifter來實現(xiàn)不同電壓域之間信號的電平轉(zhuǎn)換。根據(jù)信號電平由高到低和由低到高 的轉(zhuǎn)換,Level-shifter分為兩類,其結(jié)構(gòu)分

14、別如圖8和圖9所示。圖8: High to Low Level-shifters 圖9: Low to High Level-shifters對于電源關(guān)斷技術(shù),電源關(guān)斷區(qū)域的輸出信號在電源關(guān)斷時處于不定態(tài),這種不定態(tài)會導(dǎo)致其負(fù)載單元出現(xiàn)內(nèi)部電流,從而導(dǎo)致不 期望的功耗。所以需要在電源關(guān)斷區(qū)域的輸出信號上插入Isolation Cell來實現(xiàn)對不定態(tài)的隔離。Isolation cell根據(jù)鉗位值不同分為與型和或型結(jié)構(gòu),其結(jié)構(gòu)如圖10所示。圖10: Basic Isolation Cells 2.2.2 Power-Gating cell,Retention-Register和

15、 Always-on單元對于電源關(guān)斷技術(shù),需要Power-Gating Cell(也稱MTCMOS)來實現(xiàn)電源的關(guān)斷。可以選擇斷開電源(VDD)或地(VSS)的連接來實現(xiàn)Power-Gating,這兩種Power- Gating Cell被形象的稱為Header-Switch和Footer-Switch。它們的結(jié)構(gòu)如圖11所示。圖11: Basic Header-Switch structure and Footer-Switch structure在電源關(guān)斷模塊有可能要求register對關(guān)斷前的數(shù)據(jù)進(jìn)行鎖存或者在電源打開后要求對鎖存的數(shù)據(jù)進(jìn)行恢復(fù),這就需要特 殊的單元Retention-R

16、egister。如圖12所示,它有兩個電源,一個用于模塊電源未關(guān)斷時的工作用電,一個用于模塊電源關(guān)斷時的用電。它還 有兩個控制信號save和restore,用于控制是否鎖存數(shù)據(jù)或者恢復(fù)數(shù)據(jù)。圖12: Retention-Register 在電源關(guān)斷模塊還有可能需要有些信號線或邏輯長期工作,比如MTCMOS單元的控制信號線,Retention- register的save/restore控制信號,isolation cell的控制信號等。為了實現(xiàn)這種功能,這就需要另外的特殊單元叫always-on cell。如圖13所示。圖13 Aways-on單元的應(yīng)用場合 2.2.3 P

17、G library的準(zhǔn)備除了上述這些特殊單元外,UPF流程的實現(xiàn)還需要用到的logical library(db庫)是帶PG(Power&Ground)信息的,與傳統(tǒng)流程相比要多出下面與PG相關(guān)的信息: pg_pin 的名稱,pg_pin 的類型 (如primary, backup 等); 每個信號管腳(signal pin)與pg_pin的對應(yīng)關(guān)系; 每個輸出信號管腳中power_down_function的定義; 每個pg-pin的電壓數(shù)值。有了上述信息,工具就可以根據(jù)UPF里面的描述自動地完成電源網(wǎng)絡(luò)的連接,電源關(guān)斷電路的驗證,基于UPF里面電源狀態(tài)表 的綜合和優(yōu)化,以及最后輸出

18、帶PG信息的網(wǎng)表的驗證等。其直接帶來的好處就是使得流程更完整,更簡單,更自動化。由于UPF應(yīng)用還不是很普及,F(xiàn)oundry及第三方IP提供商目前提供的db庫基本上還沒有完全更新到帶PG信息的版 本,所以需要用戶在使用前先轉(zhuǎn)換。ICC和DC都提供了轉(zhuǎn)換PG db庫的命令:add_pg _pin_to_db,可以將不帶PG信息的db庫轉(zhuǎn)換成帶PG信息的db庫。ICC0809以上版本還提供了add_pg _pin_to_lib命令,可以將不帶PG信息的lib庫轉(zhuǎn)換成帶PG信息的lib庫,這樣可以更清晰的知道PG庫中具體都添加了什么信息。3. UPF在本芯片設(shè)計實現(xiàn)中的應(yīng)用本款芯片的設(shè)計實現(xiàn)以及驗證流

19、程完全采用了如圖7中所示的所有Synopsys工具,并且所有實現(xiàn)和驗證流程都使用了基于 IEEE1801標(biāo)準(zhǔn)Unified Power Format(UPF)的完整技術(shù),成功的完成了從RTL到GDSII的全部過程,并且芯片制造回來成功的完成了功能測試以及低功耗測試。本篇文章著重介 紹實現(xiàn)流程中基于UPF的應(yīng)用,對于驗證流程的應(yīng)用我們不作介紹。在實現(xiàn)過程中我們主要完成了下列工作,如圖14所示。圖14: 本芯片實現(xiàn)流程圖  PG library的準(zhǔn)備; UPF文件的準(zhǔn)備; 有了UPF以及PG library,先用Design Compiler對RTL 綜合,綜合后產(chǎn)生的netlist里面

20、就包含了low-power設(shè) 計中除了電源關(guān)斷單元(MTCMOS)之外的所有的特 殊cell,如:level-shifter, isolation cell等等; 綜合完成后,作了DFT的工作,在這一步驟如果DFT設(shè)計中要引入一些特殊單元,工具會自動插入; DFT之后我們在IC-Compiler完成了所有的布局布線工作,包括:整體規(guī)劃(floorplan),電源關(guān)斷單元MTCMOS的插 入、布局以及控制信號的連接,電源網(wǎng)絡(luò)綜合和分析,布局,時鐘樹綜合,布線以及最后一些提高良率方面的工作。 布局布線完成后,我們還對timing,SI,Power,IR-DROP等進(jìn)行了Sign-off分析。 在流

21、程中經(jīng)過每一步我們都用formality對包含了UPF的設(shè)計作了形式驗證,既保證了功能的一致性,也保證了含有低功 耗信息的實現(xiàn)一致性。下面我們對每一步驟進(jìn)行詳細(xì)介紹,其中PG library的準(zhǔn)備在2.2章節(jié)中已經(jīng)作了介紹,這里就不再說明。3.1 本芯片中用到的low power設(shè)計意圖在我們最近的這款芯片中,采用了時鐘關(guān)斷(Clock-Gating),多域值電壓庫(Multi-threshold libraries),電源關(guān)斷(MTCMOS Power Gating),低電壓待機(jī)(Low-Vdd Standby)等低功耗技術(shù)。圖15和圖16分別是芯片電源分區(qū)拓?fù)鋱D和floorplan截圖,芯

22、片劃分成3個power domain,分別為PD_1、PD_2、PD_TOP。其中PD_1是掉電區(qū),PD_2是降壓區(qū),PD_TOP是常開區(qū);PD_2的hierarchy 嵌套在PD_1內(nèi)部,當(dāng)PD_1掉電時,PD_2可以降壓保持?jǐn)?shù)據(jù)即可。VDD和VDD_2是芯片外部提供的兩個電源,分別提供給PD_TOP和 PD_2;而VDD_1是PD_1的內(nèi)部電源,由VDD經(jīng)過MTCMOS產(chǎn)生,可以通過控制MTCMOS關(guān)斷使PD_1掉電。在進(jìn)行芯片設(shè)計之前,我們要先對芯片的低功耗意圖用UPF描述出來,下面的章節(jié)做詳細(xì)的闡述。圖15: 芯片電源分區(qū)拓?fù)鋱D 圖16: 芯片floorplan截圖 

23、;3.2 用UPF對本芯片設(shè)計意圖的描述在UPF中,包含了所有對low-power設(shè)計意圖的描述,比如:芯片中有哪些相對獨(dú)立的電源模塊;每個電源模塊中用到 哪些電源或地;如果有電源關(guān)斷模塊的話還要描述其關(guān)斷的方式及控制;每一個電源的各種工作模式(工作電壓或是否關(guān)斷);特殊單元的規(guī)劃等。下面章節(jié)將根據(jù) 本芯片中用到的low-power意圖(如圖15和圖16所示)分別介紹如何用UPF描述這些意圖。3.2.1 UPF對Power Domain的描述在UPF中,首先要對所有的Power domain進(jìn)行定義。先設(shè)定頂層的power domain,然后描述PD_1和PD_2這兩個power domain

24、。如下所示:# power domain definitionscreate_power_domain PD_TOP include_scopecreate_power_domain PD_1 elements BLOCKAcreate_power_domain PD_2 elements BLOCKB3.2.2 UPF對Power Network的描述然后根據(jù)電源分區(qū)拓?fù)鋱D,要清晰地描述各個power domain里面的電源網(wǎng)絡(luò)(Power Network),如下所示,詳細(xì)的定義了每個domain里面的電源線的名稱以及和芯片原始電源輸入端口的連接關(guān)系。# supply nets defini

25、tionscreate_supply_net VDD domain PD_TOPcreate_supply_net VDD domain PD_1 reusecreate_supply_net VDD_2 domain PD_TOPcreate_supply_net VDD_2 domain PD_1 reusecreate_supply_net VDD_2 domain PD_2 reusecreate_supply_net VDD_1 domain PD_1create_supply_net VSS domain PD_TOPcreate_supply_net VSS domain PD_

26、1 reusecreate_supply_net VSS domain PD_2 reuse#define the primary power/ground for power domainsset_domain_supply_net PD_TOP primary_power_net VDD primary_ground_net VSSset_domain_suupply_net PD_1 primary_power_net VDD_1 primary_ground_net VSSset_domain_supply_net PD_2 primary_power_net VDD_2 primar

27、y_ground_net VSS# power ports definitionscreate_supply_port VDD domain PD_TOP direction increate_supply_port VDD_2 domain PD_TOP direction increate_supply_port VSS domain PD_TOP direction in#connect the supply net to power portconnect_supply_net VDD ports VDDconnect_supply_net VDD_2 ports VDD_2conne

28、ct_supply_net VSS ports VSS3.2.3 UPF對Power Gating的描述本設(shè)計中含有電源關(guān)斷模塊,需要在UPF中定義電源關(guān)斷單元(Power Gating cell),描述該單元的電源輸入輸出,以及控制信號的連接。如下所示。create_power_switch SW1 domain PD_1 output_supply_port VDD_OUT VDD_1 input_supply_port VDD_IN VDD control_port PW_CTRL pd1_pw_en on_state PW_ON VDD_IN PW_CTRL ack_port PW_A

29、CK pd1_pw_ack該條命令中VDD_1是VDD經(jīng)過該單元后的電源名稱,pd1_pw_en是控制信號,當(dāng)該控制信號為高的時 候,VDD_1接通VDD使電路處于開啟狀態(tài)。除了該控制信號,該單元還輸出一個叫pd1_pw_ack的響應(yīng)信號。至于如何在物理上實現(xiàn)Power Gating cell的插入以及控制信號的連接,這個要在IC Compiler里面完成,后面的章節(jié)里面有詳細(xì)的介紹。3.2.4 UPF對Isolation的描述因為芯片中有關(guān)斷模塊,從功能上為了處理模塊關(guān)斷后信號輸出的穩(wěn)定性,還需要增加關(guān)斷電源模塊處于關(guān)斷時如何插入 isolation單元的描述。如下所示,以PD_1的邊界信號

30、定義為例:指定其所有輸入信號都不插入isolation cell,輸出信號默認(rèn)插入箝位到0的isolation cell,對其中兩個特殊信號插入箝位到1的isolation cell。并且定義了Isolation cell的控制信號,以及插入的位置是在PD_TOP domain。set_isolation pd1_iso_in domain PD_1 no_isolation applies_to inputsset_isolation pd1_iso_low domain PD_1 isolation_power_net VDD isolation_ground_net VSS clamp_

31、value 0 applies_to outputsset_isolation_control pd1_iso_low domain PD_1 isolation_signal iso_en isolation_sense high location parentset_isolation pd1_iso_high domain PD_1 isolatioin_power_net VDD isolation_ground_net VSS elements BLOCKA/pin1 BLOCKA/pin2 clamp_value 1set_isolation_control pd1_iso_hig

32、h domain PD_1 isolation_signal iso_en isolation_sense high location parent3.2.5 UPF對Power State的描述在UPF里面,還有一個非常重要的部分,那就是描述電源狀態(tài)表(Power State Table),簡稱PST,也就是說要描述各個電源有哪些工作模式。有了這個表格,工具就可以判斷是否需要在各個電源模塊之間插入特殊的單元。本芯片共有三種工作模式,pst_pd1_ON是正常模式,三個domain都是1.2V供電;pst_pd1_OFF是 掉電模式,PD_1掉電,其他兩個domain是1.2V供電;pst_p

33、d2_LOW是掉電降壓模式,PD_1掉電,PD_2降壓到0.8V供電,僅保 持?jǐn)?shù)據(jù)。add_port_state VDD state NOR_VOL 1.2add_port_state VDD_1 state NOR_VOL 1.2add_port_state VDD_1 state OFF_VOL offadd_port_statte VDD_2 state NOR_VOL 1.2add_port_state VDD_2 state LOW_VOL 0.8create_ps top_pst supplies list VDD VDD_1 VDD_2add_pst_state pst_pd1_

34、ON pst top_pst state NOR_VOL NOR_VOL NOR_VOLadd_pst_state pst_pd1_OFF pst top_pst state NOR_VOL OFF_VOL NOR_VOLadd_pst_state pst_pd2_LOW pst top_pst state NOR_VOL OFF_VOL LOW_VOL完整的UPF請參考附件7.1。3.3 UPF在Design Compiler中的應(yīng)用根據(jù)圖14中的流程介紹,UPF準(zhǔn)備好就可以進(jìn)行綜合和DFT的工作了。在這一步,Isolation cell、level shifters、Retention R

35、egisters等特殊單元都要正確的實現(xiàn)插入,而且也要插入clock gating來優(yōu)化動態(tài)功耗以及用多個閾值電壓的庫來優(yōu)化靜態(tài)功耗。如圖17所示,在DC中,首先把所有不同閾值電壓的標(biāo)準(zhǔn)單元庫都設(shè)置到target_library以及 link_library里面去,工具在綜合優(yōu)化的時候,就可以根據(jù)路徑上timing的是否關(guān)鍵來盡量平衡標(biāo)準(zhǔn)單元速度與靜態(tài)功耗的關(guān)系,關(guān)鍵路徑上, 盡量選擇低閾值電壓/速度快的單元,但在非關(guān)鍵路徑上,就盡量選擇高閾值電壓/靜態(tài)功耗小的單元。在讀入RTL后,需要用load_upf的命令讀入 UPF文件,然后在compile時,工具會根據(jù)UPF的設(shè)置,自動插入Isola

36、tion cell、level shifters、Retention Registers等特殊單元(在我們這個設(shè)計中,僅需插入Isolation cells),并正確連接這些特殊單元的控制信號。另外,為了優(yōu)化動態(tài)功耗,我們在綜合階段讓DC自動插入了Clock Gating。設(shè)置也很簡單,只要在 compile_ultra命令后面加上clock_gating的選項就可以了。圖17: UPF flow in Design Compiler 綜合完成后,除MTCMOS沒有插入外,其他特殊單元都已經(jīng)按UPF描述的設(shè)計意圖插入并連接。綜合后我們還要插入DFT相關(guān)結(jié)構(gòu),再做一個增進(jìn)式的優(yōu)化。在這

37、兩個過程中,如果DFT引入的電路根據(jù)UPF的要求需要插 入特殊單元的話,工具會自動判斷并在insert_dft或者compile命令執(zhí)行的時候自動插入。比如,DFT插入的掃描鏈從電源關(guān)斷模塊連接到了其 它非關(guān)斷模塊,這個時候根據(jù)UPF里面的規(guī)定,從關(guān)斷區(qū)到非關(guān)斷區(qū)要經(jīng)過isolation cell的過渡,工具會自動判斷到這一點,在需要的地方插入這些單元。在綜合和DFT的各個階段,可以利用DC提供的命令check_mv_design對低功耗設(shè)計進(jìn)行規(guī)則檢查,確保沒有違 反UPF里面定義的相關(guān)規(guī)則。最后,DC輸出網(wǎng)表和UPF。也可以直接輸出DDC或者直接寫入到Milkyway數(shù)據(jù)庫里面去,這兩種方

38、式都包含了網(wǎng)表 和UPF信息,可以直接作為物理實現(xiàn)工具ICC的輸入。在綜合前后我們都用Formality對輸入和輸出的RTL或netlist進(jìn)行了帶UPF的比對,以確保每一步驟電路在 形式上沒有發(fā)生改變。3.4 UPF在IC Compiler中的應(yīng)用圖18: UPF flow in IC Compiler IC Compiler的UPF流程如圖18所示,可以直接用DC輸出的mw庫或ddc文件,里面已經(jīng)包含了UPF信息。我們采用的是讀入網(wǎng)表加UPF的方式。首先我們需要在讀入verilog網(wǎng)表以后,把UPF文件導(dǎo)入到ICC中:load_upf $ICC_IN_UPF_FILE讀入netl

39、ist以及upf后就可以作整體規(guī)劃(floorplan)了,在這個階段主要有下面的工作: 在floorplan之前,要正確設(shè)置芯片的工作條件(operating_condition)以及用set_voltage命令對所有的電源和地設(shè)置 正確的工作電壓值。工具會根據(jù)這些設(shè)置來選擇正確的單元進(jìn)行時序計算。 讀入UPF之后,ICC已經(jīng)知道設(shè)計中有哪些power domain以及每個power domain里面有哪些電源、地。但這個時候ICC還沒有把各個power domain里面所有cell中電源、地的端口與UPF里面定義的電源、地連接起來。需要運(yùn)行下面的命令,所有power net會根據(jù)UPF中的

40、描述自動創(chuàng)建,所有cells的電源也會根據(jù)UPF中的描述自動連接:derive_pg_connection create_netderive_pg_connection reconnect另外derive_pg_connection命令在ICC每一次優(yōu)化后都要執(zhí)行一次,以對新加入的cell進(jìn)行電源、地 的連接。 UPF里面雖然已經(jīng)有了power domain的定義,但在物理上這些不同的電源域還沒有固定的位置和形狀。這就需要創(chuàng)建voltage area,每一個power domain都對應(yīng)一個voltage area。但如何根據(jù)UPF文件中描述的power domain創(chuàng)建Voltage Are

41、a呢?我們這里也有些經(jīng)驗,在創(chuàng)建voltage area之前,我們可以用ICC里virtual-flat placement對全芯片進(jìn)行一個快速的布局,然后根據(jù)布局的結(jié)果就可以知道與各個電源域相對應(yīng)的各個模塊的大體物理分布,從而幫助我們在這些區(qū)域來創(chuàng) 建相應(yīng)的voltage area。在UPF里面定義了三個power domain(PD_TOP, PD_1和PD_2),不過對于PD_TOP,ICC會自動的創(chuàng)建一個默認(rèn)的Voltage Area(DEFAULT_VA), 對于另外兩個Power domain,我們利用create_voltage_area命令創(chuàng)建Voltage Area。Volt

42、age area的位置確定了,但其形狀也與很多因素有關(guān),可以是矩形也可以是多邊形,總之,其位置和形狀的最后確定可能會經(jīng)過一些反復(fù),因為這與設(shè)計最終布局布 線的結(jié)果息息相關(guān),創(chuàng)建不好,可能影響設(shè)計的時序,也可能影響設(shè)計的布線等。 所有voltage area都創(chuàng)建好后,就可以對關(guān)斷電源區(qū)域插入電源關(guān)斷單元(power gating cell)了。在我們這個設(shè)計里,PD_1是電源關(guān)斷域,需要在這個電源模塊里面插入MTCMOS(power gating cell)。在插入之前,用map_power_switch命令指定要使用的MTCMOS單元名稱及相對應(yīng)的power domain名字。然后用add_

43、header_footer_cell_array命令按指定的陣列插入MTCMOS單元,如圖19所示。設(shè)計中有可能 因為voltage area形狀的原因或者因為macro的影響,可能要求按不規(guī)則陣列插入MTCMOS單元,可以通過多個 add_header_footer_cell_array命令疊加來實現(xiàn),或者手動移動MTCMOS的位置,然后再將其位置固定。如圖22所示,在我們 的設(shè)計中電源關(guān)斷區(qū)域就有個非常大的macro,為了照顧這個大macro上的供電充足,我們就在其周圍插入了密度比較大的MTCMOS單元。所以 MTCMOS的插入和擺放跟整體規(guī)劃中voltage area以及屬于這個區(qū)域的m

44、acro的規(guī)劃都有緊密關(guān)系。我們使用的是有一組控制信號(NSLEEPIN和NSLEEPOUT)的MTCMOS單元,其 結(jié)構(gòu)如圖20所示:NSLEEPIN是MTCMOS打開或者關(guān)斷的控制輸入信號,NSLEEPOUT是NSLEEPIN信號經(jīng)過MTCMOS單元后輸出的 響應(yīng)信號。這些控制和響應(yīng)信號在MTCMOS插入后還需要把他們都互相連接起來。連接的方法也有很多種,我們采用的是鏈狀的連接方法。如圖21所示。 ICC提供了命令connect_power_switch來自動的實現(xiàn)這個功能。圖19 Column placement of MTCMOS cells 圖20: Single inpu

45、t header control signal connections 圖21: MTCMOS cells chain connections 最后,MTCMOS單元在版圖中的位置及控制信號連接關(guān)系如圖22所示:圖22: MTCMOS placement in the layout map  現(xiàn)在voltage area已經(jīng)創(chuàng)建,MTCMOS單元也已經(jīng)擺放連接好了。下一步就開始做power plan了,也就是電源網(wǎng)絡(luò)的規(guī)劃。由于VSS在每個power domain都是一樣的。所以三個power domain的VSS mesh是連在一起。True VDD(VDD)在

46、所有的power domain都會用到,所以在每個power domain都需要加上power mesh。而在掉電區(qū)PD_1,VDD通過MTCMOS得到VDD_1,由VDD_1來給掉電區(qū)供電。所以VDD_2在PD_2和VDD_1在PD_1的 power mesh不能連接到一起。ICC里面提供一個自動的電源網(wǎng)絡(luò)綜合的功能,用戶可以告訴工具一些電源網(wǎng)絡(luò)的約束以及要達(dá)到的電壓降的目標(biāo),工具就可以自動產(chǎn) 生符合要求的電源網(wǎng)絡(luò)。而且,它是支持帶MTCMOS的綜合,也可以一次綜合多個電源、地。用戶只要根據(jù)產(chǎn)生的電源網(wǎng)絡(luò)作些精細(xì)的修改就可以了。電源網(wǎng)絡(luò) 做好后,還要把MTCMOS的輔助電源連接好,如圖23所

47、示。連接輔助電源的方法主要有兩種:一種是在“True” PG正好在MTCMOS上方的情況下,可以用create_preroute_vias命令來直接用過孔把MTCMOS的電源端口與”True” PG連接起來;另一種就是如果“True” PG不在MTCMOS上方,那就要用preroute_standard_cells命令里net連接的模式物理連接起來。至此,所有的電源、地網(wǎng)絡(luò)都連 接好了,還可以借用ICC提供的PNA(Power Network Analysis)的功能對包含MTCMOS的電壓降進(jìn)行分析,以幫助判斷MTCMOS單元數(shù)量是否足夠以及其位置是否合理。圖23: MTCMOS輔助電源的連

48、接  如果voltage area位置形狀、macro的擺放以及電源網(wǎng)絡(luò)都合理了,而且用check_mv_design來檢查低功耗的規(guī)則還有電源、地的連接都沒有問題 了,floorplan階段的工作也就結(jié)束了。自此,設(shè)計中所有因為低功耗設(shè)計要引入的新的cell都已經(jīng)插入到設(shè)計中了。在綜合及DFT階段插入了 isolation cell,在floorplan階段我們又插入了MTCMOS。Floorplan結(jié)束后,ICC里面的布局、時鐘樹綜合以及布線都和傳統(tǒng)非UPF流程沒有太大區(qū)別了。這些步驟工具都是 可以自動理解low-power要求的,并會自動把isolation單元放到相對應(yīng)的vo

49、ltage area的邊界。在我們這個設(shè)計中,我們還用到了ICC對動態(tài)功耗和靜態(tài)功耗的電路優(yōu)化能力,只要把相應(yīng)開關(guān)打開工具就可以自動進(jìn)行電路方面的功耗優(yōu)化 了。同樣,在各個階段都可以通過check_mv_design命令來檢查是否有違反低功耗設(shè)計規(guī)則。自此,在ICC里面的主要工作就結(jié)束了,為了給sign-off工具提供數(shù)據(jù),我們還要寫出帶PG信息的netlist以 作理解low-power的形式驗證、要寫出最后的UPF以及不帶PG信息的netlist以作最后的時序、SI及功耗分析。PrimeRail作IR- drop分析可以直接讀取Milkyway的設(shè)計庫。Star-rcxt作參數(shù)提取也可以直

50、接讀取Milkyway的設(shè)計庫。3.5 經(jīng)驗介紹在上一節(jié)中已經(jīng)介紹了一些物理實現(xiàn)的經(jīng)驗,比如如何確定Voltage Area的位置和形狀,如何合理擺放MTCMOS等等。下面再就我們在實現(xiàn)過程中遇到的一些問題,以及一些需要注意的地方,在這里和大家分享:1. UPF里面特殊cell的控制信號(比如Isolation cell和MTCMOS的控制信號)最好定義在leaf pin上,不要定義在hierarchy pin上,否則ICC可能不能正確的識別該控制信號。2. DFT設(shè)計階段會在UPF里定義的特殊cell的控制信號上插入mux,用于測試時控制這些信號,如果UPF里面定義的控制信號在插入的mux之

51、前,則 ICC也會找不到這些特殊cell的控制信號。比如Isolation cell的控制信號,如圖24所示,UPF中本來定義的Isolation cell控制信號是func_iso_en,但是加了DFT mux之后,UPF中就需要將Isolation cell的控制信號定義在iso_en上才行。圖24: DFT模式下的Isolation控制信號 3. 關(guān)于Isolation cell的插入有一個需要注意的問題,power domain的某些接口信號在網(wǎng)表中可能是直接接電源或地的,如果在這些信號上插入了Isolation cell,在ICC中不能正確derive出這些Isolatio

52、n cell的power連接關(guān)系。會報告這樣的告警”The isolation cell xxx does not have any associated UPF isolation strategy ”。解決的方法就是在UPF中指定對這些信號不要插入Isolation cell,或者在ICC中直接指定這些Isolation cell的電源和地。4. 需要在Voltage Area的邊界用hard blockage留出足夠的間隙或者在創(chuàng)建voltage area的時候加上guard_band的選項,工具就不會在這些區(qū)域擺放cell,否則如果voltage area邊界內(nèi)外cell緊密擺放的話,

53、不同電源、地的cell就物理連接到一起了,就會有電源或地的短路出現(xiàn)。具體需要留多少間隙,要根據(jù)不同工藝的 design rule來計算。5. 關(guān)于MTCMOS的插入數(shù)量,可以先根據(jù)該模塊的功耗大致估算一下。首先通過功耗分析估算出掉電區(qū)的功耗P,根據(jù)P=VI,及電源電壓,計算出供電電流 I;再根據(jù)foundry提供的MTCMOS的電阻值R,可以計算出并聯(lián)n個MTCMOS的IR drop大致為IR/n;這樣就可以根據(jù)期望達(dá)到的IR drop值,計算出需要插入多少M(fèi)TCMOS了。當(dāng)然最后還需要通過更精確的IR drop分析工具(比如Prime Rail)來分析IR drop是否滿足要求。6. 關(guān)于M

54、TCMOS的擺放和分布,則需要考慮掉電區(qū)的功耗分布,功耗密度大的地方電流密度也大,所以MTCMOS擺放密度要高一些,以減小IR drop。比如在我們的設(shè)計中,掉電區(qū)有個大塊的Macro(見圖22左上),且它的時鐘頻率比其他部分高,功耗密度比其他部分大很多,所以我們在其外圍 放了一圈緊挨著的MTCMOS,而在其他部分,則是按陣列形式擺放了幾列MTCMOS,每列MTCMOS都是隔行擺放。7. 掉電區(qū)的電源網(wǎng)絡(luò)規(guī)劃、以及MTCMOS的電源連接也是需要特別考慮的地方。掉電區(qū)有三個PG nets(True VDD、Virtual VDD和VSS),在做電源網(wǎng)絡(luò)規(guī)劃時,建議對三個PG nets都畫一個密度

55、相當(dāng)?shù)碾娫淳W(wǎng)格。True VDD和Virtual VDD的網(wǎng)格通過MTCMOS連接,MTCMOS處是電流密度最大的地方,所以為了減小IR drop,在MTCMOS上方盡量用寬金屬走Power Strap。這樣做出來的電源網(wǎng)絡(luò),一般不會有IR drop的問題。4. 結(jié)論及建議利用Synopsys基于UPF標(biāo)準(zhǔn)的低功耗流程,幫助我們在設(shè)計的整個流程(從前端到后端,以及驗證)中,達(dá)成對低功耗 設(shè)計意圖描述上的連貫性、簡潔性與一致性,并提供各方面的驗證功能,極大的提高了設(shè)計實現(xiàn)的效率,并保證了設(shè)計的正確性。對于設(shè)計實現(xiàn)工程師來說,UPF流程僅比傳統(tǒng)流程增加了如何用UPF來描述自己設(shè)計中的低功耗意圖,工

56、具就可以根據(jù)UPF 里面的約束,自動實現(xiàn)低功耗設(shè)計。而且實現(xiàn)與驗證可能要用到多個工具,傳統(tǒng)流程中,每個工具都要求有自己獨(dú)立的低功耗設(shè)計命令,這樣很難保證各個工具之間 的描述是否一致,有了UPF,這個問題就徹底解決了,各個工具都使用統(tǒng)一的UPF文件來得到一致的低功耗設(shè)計要求。另外,低功耗設(shè)計需要的特殊單元,如 Isolation cells和Level Shifters在前端綜合時工具會根據(jù)UPF的描述自動插入,MTCMOS在后端實現(xiàn)工具中插入以及連接,整個過程中復(fù)雜及容易出錯的Power連接、 控制信號連接等步驟都由工具根據(jù)UPF的描述自動實現(xiàn)了,操作簡單方便,且不容易出錯。覺得需要增強(qiáng)的是,

57、當(dāng)我們在作這個項目的時候,Synopsys的低功耗流程還不支持在優(yōu)化的中間過程對UPF進(jìn)行修改。 比如在物理實現(xiàn)的后期,想對power domain做些微小的修改,又不想從頭開始重做,要是UPF也能像SDC一樣可以remove后再load就更方便了。但是令人振奮的是,當(dāng)前 ICC0906的版本提供了一個叫reset_upf的新命令,已經(jīng)可以實現(xiàn)這個功能了。5. 致謝UPF流程對于我們是一個全新的低功耗流程,完成本設(shè)計,離不開華為通信芯片團(tuán)隊的集體智慧和不懈的努力。在此,要特別感 謝張方、張小玨、呂忠華、宋雋、樂彬、戴方明、余劍鋒,以及各位同事的大力協(xié)助。另外,還要感謝Synopsys工程師杜廣

58、山、黃秋兒,他們提出了很多寶 貴的意見和建議,并現(xiàn)場支持,及時解答每一個疑問,給予了我們極大的支持和幫助。6. 參考文獻(xiàn)1 Synopsys Low-Power Flow User Guide, Version B-2008.09, September 20082 Synopsys Low Power Solution white paper, December 20083 Michael Keating, David Flynn, Robert Aitken, Alan Gibbons, Kaijian Shi, “Low Power Methodology Manual For System-on-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論