數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF_第1頁(yè)
數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF_第2頁(yè)
數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF_第3頁(yè)
數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF_第4頁(yè)
數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)字集成電路低功耗物理實(shí)現(xiàn)技術(shù)與UPF孫軼群  sun.yiqun國(guó)民技術(shù)股份有限公司Nationz Technologies Inc摘要 本文從CMOS電路功耗原理入手,針對(duì)不同工藝尺寸下數(shù)字集成電路的低功耗物理實(shí)現(xiàn)方法進(jìn)行描述,并著重描述了Synopsys UPF(Unified Power Format)對(duì)低功耗設(shè)計(jì)的描述方法。UPF是Synopsys公司提出的一種對(duì)芯片中電源域設(shè)計(jì)進(jìn)行約束的文件格式。通過(guò)與UPF格式匹配的Liberty文件,UPF約束文件可以被整套Galaxy物理實(shí)現(xiàn)平臺(tái)的任何一個(gè)環(huán)節(jié)直接使用,并將設(shè)計(jì)者的電源設(shè)計(jì)約束傳遞給設(shè)計(jì)工具,由工具完成設(shè)計(jì)

2、的實(shí)現(xiàn)工作,從而實(shí)現(xiàn)整套數(shù)字集成電路低功耗物理實(shí)現(xiàn)的流程。1.0  概述本文從數(shù)字集成電路低功耗設(shè)計(jì)原理下手,對(duì)設(shè)計(jì)中低功耗的實(shí)現(xiàn)技術(shù)進(jìn)行描述,包括完成低功耗設(shè)計(jì)需要的庫(kù)資料以及常用EDA工具對(duì)低功耗技術(shù)實(shí)現(xiàn)的方法。2.0  CMOS電路的低功耗設(shè)計(jì)原理CMOS電路功耗主要分3種,靜態(tài)功耗主要與工藝以及電路結(jié)構(gòu)相關(guān),短路電流功耗主要與驅(qū)動(dòng)電壓、p-MOS和n-MOS同時(shí)打開(kāi)時(shí)產(chǎn)生的最大電流、翻轉(zhuǎn)頻率以及上升、下降時(shí)間有關(guān),開(kāi)關(guān)電流功耗主要與負(fù)載電容、驅(qū)動(dòng)電壓、翻轉(zhuǎn)頻率有關(guān)。做低功耗設(shè)計(jì),就必須從這些影響功耗的因素下手。3.0  低功耗設(shè)計(jì)手段及Library需求低

3、功耗的設(shè)計(jì)手段較為復(fù)雜,但對(duì)于不同的設(shè)計(jì),或者不同的工藝,實(shí)現(xiàn)的方法卻各不相同。3.1    0.18um及以上工藝0.18um及以上工藝,在低功耗設(shè)計(jì)手段上較為有限,主要原因在于,靜態(tài)功耗很小,基本不用關(guān)心。動(dòng)態(tài)功耗方面,主要的功耗來(lái)自于Switching Power,即與負(fù)載電容、電壓以及工作中的信號(hào)翻轉(zhuǎn)頻率相關(guān)。減小負(fù)載電容,就必須在設(shè)計(jì)上下功夫,減少電路規(guī)模。減少信號(hào)翻轉(zhuǎn)頻率,除了降低時(shí)鐘頻率外,只有在設(shè)計(jì)上考慮,能不翻轉(zhuǎn)的信號(hào)就不翻轉(zhuǎn)。至于電壓,由于0.18um及以上工藝的閾值電壓有一定的限制,因此,供電電壓降低,勢(shì)必影響工作頻率。一般說(shuō)來(lái),在0.18u

4、m工藝下設(shè)計(jì)電路,主要有以下幾種對(duì)低功耗設(shè)計(jì)的考慮。3.1.1      靜態(tài)功耗可以忽略 根據(jù)現(xiàn)有項(xiàng)目經(jīng)驗(yàn)可知,利用0.18um工藝Standard Cell設(shè)計(jì)出來(lái)的某芯片,數(shù)字邏輯加上Ram和Rom約40萬(wàn)門的電路,在完全靜止的狀態(tài)下,功耗約200uA左右(實(shí)測(cè)數(shù)據(jù)為400uA左右,包括了50uA Flash,30uA的PHY,113uA的VR,其他模擬部分漏電不大,因此這里估算為200uA)。這樣的功耗,我們是可以接受的。如果非要減少靜態(tài)功耗,則可以參照90nm工藝的設(shè)計(jì)思路,專門設(shè)計(jì)高閾值電壓的MOSFET,或者專門設(shè)計(jì)切斷

5、電源所需的元件,但由此帶來(lái)設(shè)計(jì)的復(fù)雜性,對(duì)0.18um工藝的影響還是很大的。如果設(shè)計(jì)規(guī)模沒(méi)有那么大,且可以滿足應(yīng)用,往往還是可以忽略這個(gè)結(jié)果的。3.1.2      時(shí)鐘門控減小不必要的動(dòng)態(tài)功耗 在寄存器的電路設(shè)計(jì)中,時(shí)鐘輸入端都會(huì)有一個(gè)反向器負(fù)載,就算輸入端不發(fā)生變化,時(shí)鐘的變化也會(huì)造成該反向器的變化,由此產(chǎn)生動(dòng)態(tài)功耗。因此在如果該寄存器輸入在某種條件下等于輸出(即輸出保持)時(shí),可以將時(shí)鐘門控住,以減少無(wú)效的時(shí)鐘翻轉(zhuǎn)。時(shí)鐘門控的實(shí)現(xiàn)原理如下圖所示:圖 31 時(shí)鐘門控原理圖如上圖所示,由于現(xiàn)在的設(shè)計(jì)方式,大多數(shù)是同步設(shè)計(jì),設(shè)

6、計(jì)人員只考慮數(shù)據(jù)路徑,時(shí)鐘往往是不做處理的。因此如果要實(shí)現(xiàn)門控,只需要在設(shè)計(jì)電路時(shí)提供可以識(shí)別的控制信號(hào),在綜合的時(shí)候,EDA工具就可以自動(dòng)插入時(shí)鐘門控。利用Design Compiler進(jìn)行時(shí)鐘門控單元插入,在讀入設(shè)計(jì)以及時(shí)序約束后,需要做以下設(shè)置:1  set_clock_gating_style,設(shè)置時(shí)鐘門控單元插入的約束2  insert_clock_gating global,開(kāi)始插入時(shí)鐘門控單元;3  uniquify,將所有時(shí)鐘門控單元做uniquify操作,以便后續(xù)PR4  hookup_testports -se_port ATPGSE

7、_Pad -se_pin uPad/uATPGSE_Pad/C verbose,將所有時(shí)鐘門控單元的scan_enable信號(hào)與測(cè)試用SE信號(hào)連接起來(lái)。如果沒(méi)有ATPG,可以不用該句命令。5  propagate_constraints -gate_clock,將門控單元信息傳遞給整個(gè)電路。6  report_clock_gating可以查看時(shí)鐘門控單元插入的情況,以便做電路修改,或插入時(shí)鐘門控單元設(shè)置的修改。完成這些設(shè)置后,只需要和平常一樣做系統(tǒng)綜合即可。而在DC 2008.09版本以后,第25的步驟都可以省略,在利用compile_ultra進(jìn)行優(yōu)化時(shí),第2、3步驟都會(huì)

8、被自動(dòng)執(zhí)行,第4、5步驟會(huì)在insert_dft時(shí)被執(zhí)行。形式驗(yàn)證工具Formality,在進(jìn)行形式驗(yàn)證,需要設(shè)置verification_clock_gatie_hold_mode為low、high或者any,F(xiàn)ormality就可以識(shí)別出時(shí)鐘門控單元,并與RTL進(jìn)行形式驗(yàn)證了。3.1.2.1.  Clock Gating Cells這里所說(shuō)的Clock Gating Cell是指專門設(shè)計(jì)的,集成式時(shí)鐘門控單元(Integrated Clock Gating Cell,簡(jiǎn)稱ICG),就是利用Latch和與門/或門實(shí)現(xiàn)的一個(gè)獨(dú)立的Standard Cell,其優(yōu)勢(shì)在于以硬IP實(shí)現(xiàn),時(shí)

9、序易于掌握,物理實(shí)現(xiàn)中對(duì)布局布線有幫助。當(dāng)然如果單元庫(kù)中不提供專門的時(shí)鐘門控單元,EDA工具也可以利用與門、或門、Latch甚至是寄存器等進(jìn)行門控單元的實(shí)現(xiàn),但效果都沒(méi)有ICG好用。這里針對(duì)ICG的插入進(jìn)行描述。圖 31中的門控單元是一種典型的,利用負(fù)沿使能Latch以及與門組成的上升沿有效時(shí)鐘門控單元,只有時(shí)鐘下降沿后才會(huì)將時(shí)鐘門控住,保證不產(chǎn)生時(shí)鐘毛刺。在Liberty格式文件中,某個(gè)Cell,需要有clock_gating_integrated_cell,才能讓EDA工具認(rèn)識(shí)到,該Cell是一種ICG。不同的clock_gating_integrated_cell的設(shè)置,需要在DC設(shè)置s

10、et_clock_gating_style時(shí)做相應(yīng)的設(shè)置,才可能被使用到,下面列舉一些常用的設(shè)置:同時(shí),在ICG的不同Pin上,必須有以下屬性,來(lái)告訴DC該P(yáng)in在ICG的使用中是什么功能(這里只列舉常用的信息):clock_gate_enable_pin該pin是時(shí)鐘使能控制信號(hào)clock_gate_out_pin該pin是時(shí)鐘輸出信號(hào)clock_gate_clock_pin該pin是時(shí)鐘輸入信號(hào)clock_gate_test_pin該pin是scan_enable或test_mode信號(hào)3.1.3      使用低電壓的庫(kù)進(jìn)行設(shè)計(jì) 

11、;由于動(dòng)態(tài)功耗中,驅(qū)動(dòng)電壓對(duì)功耗的影響也相當(dāng)大,因此,如果能有一套電壓只有1V的標(biāo)準(zhǔn)單元庫(kù),進(jìn)行設(shè)計(jì),仍然可以達(dá)到降低動(dòng)態(tài)功耗的目的。但電壓的降低,勢(shì)必引起元件延時(shí)的增加,且由于0.18um工藝下,閾值電壓一般在0.4V左右,驅(qū)動(dòng)電壓的穩(wěn)定性需求也相當(dāng)大,否則,可能會(huì)導(dǎo)致致命性的錯(cuò)誤。法國(guó)的Dolphin公司是一家致力于低功耗設(shè)計(jì)的IP提供商,在TSMC、SMIC等Foundry的0.18um工藝下都提供了1V的邏輯單元庫(kù)。下面列出Dolphin在SMIC 0.18um工藝下設(shè)計(jì)的一套1V邏輯單元庫(kù),和SMIC 0.18um工藝Metro標(biāo)準(zhǔn)單元庫(kù)進(jìn)行比較。比較中Metro標(biāo)準(zhǔn)單元庫(kù)使用1個(gè)門

12、的BUFX2M,而Dolphin使用最小的Buffer ni01d1進(jìn)行比較。  area(um*um)Average leakage(nW)Rise delay(0.04pf,ns)Typical Rise Energy(0.04pf,pJ)SMIC18 METROBUFX2M8.78080.0480.1822560.0266Dolphin 1V for       SMIC 0.18umni01d110.34880.010.60.005由比較中可以看出,當(dāng)電壓下降到1V后,Rise Energy下降了

13、80以上,除了由于電壓下降引起的功耗降低外,Dolphin應(yīng)該在電路結(jié)構(gòu)等方面也做了處理,因此不但動(dòng)態(tài)功耗減少了,而且靜態(tài)功耗也減少了很多。但延時(shí)卻大了很多,因此如果設(shè)計(jì)需要翻轉(zhuǎn)的頻率不高時(shí),可以考慮利用低功耗的庫(kù)進(jìn)行設(shè)計(jì),達(dá)到降低功耗的目的。如果速度要求很高,這個(gè)方法是不可行的。3.2    90nm及以下工藝從3.1.3可以知道,降低驅(qū)動(dòng)電壓,可以減少動(dòng)態(tài)功耗,但由于電壓降低,驅(qū)動(dòng)能力也同時(shí)被減弱,因此元件延時(shí)較大。為了解決這個(gè)問(wèn)題,工藝尺寸開(kāi)始減小,以便在減小驅(qū)動(dòng)電壓的情況下,增加寬長(zhǎng)比(aspect ratio),以達(dá)到提高驅(qū)動(dòng)電流的目的,保持元件延時(shí)。同

14、時(shí)進(jìn)入更低尺寸的工藝,氧化層厚度也隨之減小,以便減少閾值電壓,進(jìn)一步提高速度。但因?yàn)檠趸瘜雍穸仍跍p小,漏電電流也變大了。在90nm及以下工藝中,漏電電流開(kāi)始被設(shè)計(jì)人員關(guān)注。下面對(duì)在90nm工藝下進(jìn)行低功耗設(shè)計(jì)及實(shí)現(xiàn)的一些手段結(jié)合常用EDA工具進(jìn)行描述。3.2.1      切斷未使能電路的電源減小不必要的靜態(tài)功耗 針對(duì)SMIC 0.18um工藝Metro標(biāo)準(zhǔn)單元庫(kù)以及TSMC 90nmLP工藝高密度標(biāo)準(zhǔn)單元庫(kù)(dbtcbn90lphdbwptc)進(jìn)行比較,以一個(gè)門的Buffer來(lái)舉例: Average leakag

15、e(nW)IncrementalTypical Rise Energe(0.04pf,pJ)IncrementalSMIC18 METROBUFX2M0.048-0.0266-TSMC 90LP Biased WellBUFFD1BWP0.214345.83%0.00272-89.77%可以看出,90nm工藝下的靜態(tài)功耗,已經(jīng)是0.18um工藝下功耗的3.5倍左右了。根據(jù)3.1.1可知,利用 0.18um設(shè)計(jì)出來(lái)的,約40萬(wàn)門的電路,靜態(tài)功耗,大約是200uA(360uW,0.18um工藝按1.8V供電電壓計(jì)算)。如果同樣規(guī)模的電路,放在90nm工藝下,則可能達(dá)到1.26mW左右,即1.05m

16、A左右的靜態(tài)功耗(90nm工藝按1.2V供電電壓計(jì)算)。既然,靜態(tài)功耗這么大,那么在靜止時(shí),怎樣才能將這些功耗減小呢?一個(gè)非常徹底的方法就是將靜止?fàn)顟B(tài)電路的電源關(guān)斷。為了關(guān)斷電源,就需要在電源網(wǎng)絡(luò)和電路之間建立一個(gè)電源控制電路,他們被稱為電源開(kāi)關(guān)單元(Power Switching Cell),在需要關(guān)斷時(shí),控制Power Switching Cell將電路的供電關(guān)閉,否則打開(kāi),提供電源。由于電源關(guān)斷后的電路,其輸出信號(hào)就沒(méi)有電路驅(qū)動(dòng),對(duì)于其驅(qū)動(dòng)的電路來(lái)說(shuō),就會(huì)出現(xiàn)輸入浮空的狀態(tài)。為了解決這個(gè)問(wèn)題,就需要在關(guān)閉電源的電路輸出端添加一個(gè)額外的保持電路,當(dāng)其電源關(guān)閉后保持輸出,而電源打開(kāi)時(shí),保持電

17、路則表現(xiàn)的像一個(gè)Buffer,輸出等于輸入即可。同時(shí),如果被關(guān)閉電源地電路輸入固定電壓,也可能產(chǎn)生對(duì)地的電流,就需要一個(gè)特別的單元對(duì)該部分電流進(jìn)行保護(hù)。這樣的單元被稱為隔離單元(Isolation Cell)。一般來(lái)說(shuō)Isolation Cell的輸出部分有較大的電容負(fù)載,也就是說(shuō)Isolation Cell的延時(shí)將會(huì)比較大,對(duì)時(shí)序有一定的影響,是需要注意的。當(dāng)然,對(duì)于寄存器來(lái)說(shuō),如果斷電,則原有的數(shù)據(jù)就無(wú)法保存,重新打開(kāi)電源后,就一定會(huì)出現(xiàn)原有數(shù)據(jù)丟失的情況。因此可以為一些必須保持?jǐn)?shù)據(jù)的寄存器建立一個(gè)備份設(shè)備,電源關(guān)閉前,將寄存器的數(shù)值保存到備份設(shè)備上,電源打開(kāi)后從備份設(shè)備上將數(shù)據(jù)重新寫入寄

18、存器中。這種備份設(shè)備叫做保存寄存器單元(Retention Register Cells)。對(duì)于Power Switching Cell、Isolation Cell以及Retention Register Cell,他們?cè)谏想娭笫遣荒荜P(guān)閉的,因此使用的電源也和正常功能不同,這些單元被成為常開(kāi)邏輯單元(Always-On Logic Cells)下面就各種不同的Cell,描述其原理、庫(kù)中保存的信息、以及實(shí)現(xiàn)流程。3.2.1.1.              

19、;    Power Switching Cells原理上說(shuō),Power Switching Cell結(jié)構(gòu)如下圖所示:圖 32 Power Switching Cell電路結(jié)構(gòu)示意圖從圖中可以看到,Power Switching Cell的設(shè)計(jì)原理非常簡(jiǎn)單,VDD的控制(被稱為Header Switch),利用一個(gè)P-MOSFET來(lái)控制,當(dāng)TURN_OFF信號(hào)為高時(shí)表示電路關(guān)閉,P-MOSFET關(guān)閉,GATED_VDD就不供電了,而TURN_OFF信號(hào)為低時(shí)表示電路打開(kāi),P-MOSFET打開(kāi),GATED_VDD等于VDD_SUPPLY。同理,利用一個(gè)N-MOSFE

20、T來(lái)控制VSS電源是否供電,被稱為Footer Switch。一般來(lái)說(shuō),只需要使用Header Switch或者Footer Switch就可以實(shí)現(xiàn)電路關(guān)斷,其中Header Switch結(jié)構(gòu)漏電較小,而Footer Switch結(jié)構(gòu)控制效率高,且面積較小。雖然原理非常容易理解,但電路設(shè)計(jì)起來(lái)非常復(fù)雜,需要考慮控制單元對(duì)電路供電的能力,考慮不能產(chǎn)生過(guò)大的功耗,等等。這里不詳細(xì)介紹控制單元的設(shè)計(jì),詳細(xì)設(shè)計(jì)方法可以參看Synopsys公司和ARM公司聯(lián)合出版的“Low Power Methodology Manual For System on Chip Design.”。將Power Switc

21、h Cell設(shè)計(jì)成單獨(dú)的器件,在實(shí)現(xiàn)時(shí),控制某一塊電路,叫做Coarse Grain Power Switch Cell。下面是一個(gè)Coarse Grain Power Switch Cell的Liberty格式描述library(<coarse_grain_library_name>) #library 描述開(kāi)始       lu_table _template ( template_name ) #電壓狀態(tài)template描述,dc_current組中會(huì)使用variable_1 : input_voltage

22、;variable_2 : output_voltage;index_1 ( <float>, );index_2 ( <float>, );cell(<cell_name>) #某個(gè)Power Switching Cell描述開(kāi)始switch_cell_type : coarse_grain; #Switching Cell類型是coarse_grain,暫時(shí)只支持該類型pg_pin ( <VDD/VSS pin name> ) #申明電源和地的pg_pin格式pg_type : primary_power | primary_ground;

23、#他們是主電源和主地direction : input ; #方向是輸入/* Virtual power and ground pins use “switch_function” to describe the logic toshut off the attached design partition */pg_pin ( <virtual VDD/VSS pin name>) #申明內(nèi)部電源和地,這就是輸出電源/地的端口pg_type : internal_power | internal_ground;direction: output; #方向是輸出switch_func

24、tion : “<function_string>”; #定義開(kāi)斷控制功能,例如SLEEPpg_function : “<function_string>”; #內(nèi)部電源或地功能與輸入的pg_pin一致,對(duì)于header switch來(lái)說(shuō)就是premary_power的Pin Name,對(duì)于Footer Switch來(lái)說(shuō)就是primary_ground的Pin Namedc_current ( <dc_current_name> ) #定義不同條件下輸出Pin的穩(wěn)定電流值,EDA工具利用該數(shù)據(jù)計(jì)算IR Drop,并進(jìn)行Switch的優(yōu)化。related_sw

25、itch_pin : <input_pin_name> #定義控制開(kāi)斷的Pinrelated_pg_pin : <VDD pin name> #定義可以被控制開(kāi)斷的電源Pin,如果是Footer Switch則是地Pinrelated_internal_pg_pin : <Virtual VDD> #定義不會(huì)被關(guān)閉的內(nèi)部電源Pin,F(xiàn)ooter Switch則是地Pinvalues(”<float>, ”); #定義不同狀態(tài)下的該Cell輸出的電流值pin (SLEEP) #Pin SLEEP定義開(kāi)始,SLEEP只是舉例direction : i

26、nput;switch_pin : true; #表示該輸入Pin是switch pin,控制電源/地的開(kāi)斷/* The acknowledge output pin uses “function” to represent the propagated switching signal*/pin(<acknowledge_output_pin_name>) #定義應(yīng)答輸出Pin開(kāi)始,完成開(kāi)斷后,與switch pin狀態(tài)一致,有的Switch Cell可能沒(méi)有該pinfunction : “<function_string>”; #功能定義,應(yīng)該與SLEEP狀態(tài)一致p

27、ower_down_function : “function_string”; #定義關(guān)斷后電源狀態(tài),如對(duì)于Header switch來(lái)說(shuō)可以是!VDD+VSS,而Footer Switch來(lái)說(shuō)可以是!VSS+VDDdirection : output; /* end pin group */ /* end cell group */另外,為了更好的控制電源通斷控制,可以專門設(shè)計(jì)帶有電源控制的邏輯單元,實(shí)現(xiàn)時(shí),不需要添加額外的控制電路,這種電源開(kāi)關(guān)結(jié)構(gòu)叫做Fine Grain Power Switch Cell,結(jié)構(gòu)簡(jiǎn)單,但每個(gè)單元都有一個(gè)控制器,面積比較大。下面是一個(gè)Fine Grain P

28、ower Switch Cell的Liberty格式描述cell(<cell_name>) #Fine Grain Power Switch Cell都是某個(gè)Cell內(nèi)的一部分,不單獨(dú)出現(xiàn)       is_macro_cell : true; #定義是不是macro cellswitch_cell_type : coarse_grain | fine_grain; #多數(shù)設(shè)置為fine_grainpg_pin ( <power/ground pin name> ) #定義電源信號(hào),primary_是

29、可以斷開(kāi)的,backup_是不會(huì)斷開(kāi)的。pg_type : primary_power | primary_ground | backup_power | backup_ground;direction: input | inout | output;/* This is a special pg pin that uses “switch_function” to describe the logic to shutoff the attached design partition */pg_pin ( <internal power/ground pin name>) #定義內(nèi)

30、部電源/地direction: internal | input | output | inout;pg_type : internal_power | internal_ground;switch_function : “<function_string>”;pg_function : “<function_string>”;pin (<input_pin_name>) direction : input | inout;switch_pin : true | false; #如果是switch pin就是truepin(<output_pin_na

31、me>) direction : output | inout;power_down_function : <function_string> /* end pin group */ /* end cell group */3.2.1.2.  Isolation Cells我們知道,在CMOS數(shù)字邏輯電路當(dāng)中,當(dāng)某根信號(hào)為VDD時(shí),我們認(rèn)為是邏輯1,如果為GND,則認(rèn)為是邏輯0。但當(dāng)某塊電路不供電后,其輸出就失去了驅(qū)動(dòng),輸出網(wǎng)絡(luò)如果沒(méi)有其他信號(hào)驅(qū)動(dòng),其電平就會(huì)為高阻態(tài),換句話說(shuō),就是不知道電壓是多少。因此,在低功耗設(shè)計(jì)中,如果需要切斷某塊電路電源的話,則該電路的輸出

32、就會(huì)出現(xiàn)不定值,而與這些輸出連接的電路也就出現(xiàn)輸入浮空的狀態(tài),因此就需要在關(guān)斷電路的輸出及其連接的模塊之間加一個(gè)Isolation Cell,在電源關(guān)閉時(shí),將輸出網(wǎng)絡(luò)固定在某一個(gè)電平上,而打開(kāi)電源后,該電路的輸出等于輸入,不影響電路功能。Isolation Cell可以利用邏輯門來(lái)實(shí)現(xiàn),利用與門實(shí)現(xiàn)可以使輸出在關(guān)閉電源時(shí)為0,被稱為L(zhǎng)ow Clamped Isolated Signal,利用或門實(shí)現(xiàn)可以使輸出在關(guān)閉電源時(shí)為1,被稱為High Clamped Isolated Signal,如下圖所示,X是輸出信號(hào),“ISOLN”和”ISOL”分別是開(kāi)關(guān)控制信號(hào):圖 33 邏輯門組成的Isola

33、tion Cell 利用邏輯門組成的Isolation Cell,會(huì)產(chǎn)生延時(shí),對(duì)速度很快的電路來(lái)說(shuō)可能會(huì)有所影響,因此也可以利用一個(gè)N-MOS或者一個(gè)P-MOS以Pull-Up和Pull-Down電路實(shí)現(xiàn),但這會(huì)產(chǎn)生多驅(qū)動(dòng)問(wèn)題,不是常用的方法。利用邏輯門組成的Isolation Cell是常見(jiàn)的Cell,下面所示是一個(gè)Isolation Cell的Liberty格式描述:   cell(isolation_cell)   is_isolation_cell : true ; #定義該Cell是isolation_cell &

34、#160;pg_pin(<pg_pin_name_P>) #電源Pin定義pg_type : primary_power;pg_pin(<pg_pin_name_G>) #地Pin定義pg_type : primary_ground;pin (data) direction : input;isolation_cell_data_pin : true ; #被控制的輸入Pin/* End pin group */pin (enable) isolation_cell_enable_pin : true ; #控制信號(hào)/* End pin group */pin (out

35、put) #輸出信號(hào)direction : output;power_down_function : (!pg_pin_name_P + pg_pin_name_G); #電源關(guān)閉后進(jìn)入為power down狀態(tài)/* End pin group */* End Cell group */ 3.2.1.3.  Retention Register Cells對(duì)于寄存器來(lái)說(shuō),當(dāng)電源關(guān)閉后,其保存的數(shù)據(jù)也就不存在了,如果有些寄存器的數(shù)據(jù),希望在斷電后繼續(xù)保持,則需要使用一個(gè)專門的Retention Register Cell,在斷電前把寄存器的值鎖存起來(lái),重新打開(kāi)電源后將數(shù)值存回

36、寄存器去。而該寄存器在斷電時(shí),會(huì)有一部分電源一直有電。  下圖所示,是一種常用的Retention Register Cell基礎(chǔ)結(jié)構(gòu):圖 34 Retention Register Cell基礎(chǔ)結(jié)構(gòu)圖如上圖所示,Master/Slave Latches是常規(guī)的寄存器,工作在VDD_SW電壓域,也就是可以關(guān)斷的電壓域,D、CLK、RESETN和Q是寄存器的控制和輸出信號(hào)。RET電路工作在VDD電壓域,不會(huì)被關(guān)閉,當(dāng)“SAVE”信號(hào)有效,RET會(huì)把寄存器的值保存起來(lái),而RESTORE有效,RET將保存的數(shù)值寫入寄存器中(“SAVE”和“RESTORE”具體時(shí)序關(guān)系需要參考IP

37、提供商提供的數(shù)據(jù),這里只是說(shuō)明一下其功能)。需要注意的是,一個(gè)Retention Register Cell比普通寄存器面積要大約20,如果設(shè)計(jì)的魯棒性好一些,甚至?xí)蟪^(guò)50的面積。Retention Register Cell不但是可以保持寄存器的值,還可以保持Latch的值,兩種不同的結(jié)構(gòu)圖如下所示:圖 35 Retention Cell的電路結(jié)構(gòu)示意圖圖中(a)表示寄存器的Retention Cell,當(dāng)Save和Restore都是0的時(shí)候,使能保持電路不工作,而寄存器的置位和復(fù)位端無(wú)效,寄存器正常工作。需要進(jìn)入Sleep模式,首先需要停止寄存器的Clk(Clk_On信號(hào)關(guān)閉),接著準(zhǔn)

38、備進(jìn)入Sleep模式。當(dāng)Save為1后,Q端數(shù)據(jù)被采集進(jìn)保持電路中,然后可以關(guān)閉電源(Power_on關(guān)閉)。打開(kāi)電源后(Power_on打開(kāi)),將Restore置1,如果保持電路輸出為1,則對(duì)寄存器做異步置位,否則做異步復(fù)位,使寄存器輸出與保持電路一致。需要注意的是,Save為從0置1后,不可以再有時(shí)鐘改變Q端輸出,且Save必須有一定的寬度,保證Q端數(shù)據(jù)被記錄下來(lái),同時(shí)關(guān)閉電源一定要等數(shù)據(jù)被保持下來(lái)后才可以進(jìn)行。打開(kāi)電源后,Restore一定要保持一定的時(shí)間,使寄存器充分復(fù)位或置位,同時(shí)在下一個(gè)時(shí)鐘沿到來(lái)之前,一定要將Restore清0,否則Q端就不會(huì)發(fā)生變化,電路可能就會(huì)出錯(cuò)。當(dāng)數(shù)據(jù)被讀

39、回后,就可以打開(kāi)時(shí)鐘(Clk_On打開(kāi)),開(kāi)始正常工作了。時(shí)序示意圖如下所示:圖 36 Retention Register工作時(shí)序示意圖圖中(b)是一個(gè)Retention Latch的電路結(jié)構(gòu)示意圖,原理與寄存器的Retention Cell類似,這里就不詳細(xì)描述了。下面所示是一個(gè)Retention Cell的Liberty格式描述,描述是基于一個(gè)常見(jiàn)寄存器或Latch的格式上進(jìn)行的:cell(<cell_name>)        retention_cell : <retention_cell_sty

40、le>pin(<pin_name>) retention_pin(<pin_class>, <disable_value>); retention_cell_style主要是定義一個(gè)器件識(shí)別名,不同功能名字不能一樣。這里所說(shuō)的功能,不止是寄存器或latch的功能,還需要考慮到save和restore過(guò)程是否一致。retention_pin是的定義表示該pin是與retention cell功能有關(guān)的,其中pin_class可以是restore、save、save_restore,其中restore和save分表表示該pin是restore功能

41、和save功能,而save_restore表示該pin根據(jù)不同電平為save或restore功能。disable_value表示save或者restore無(wú)效時(shí)的電平是1還是0。需要注意的是retention_pin定義時(shí)一定要有related_power_pin和related_ground_pin定義其所述的電源域,否則編譯時(shí)會(huì)報(bào)Warning,并為該P(yáng)in定義primary_電源域。同時(shí)對(duì)于latch和寄存器的Retention Cell的latch和ff組描述,會(huì)與正常的latch和寄存器有所不同,如下,加粗字體為不同的部分:latch (IQ, IQN)   &#

42、160;    data_in: D & (SAVE & RESTORE) ;enable : CLK ; ff(”IQ”, “IQN”)        next_state : “D & (!SAVE & !RESTORE)” ;clocked_on : “CP” ;3.2.1.4.            

43、0;     Always-On Logic Cells有些Cell是不能夠被關(guān)閉的,如Power Switch Cell、Retention Register Cells、Isolation Cells,他們就被稱為Always-On Logic Cells。在這些Cell的Liberty格式描述中就會(huì)有一個(gè)屬性“always-on”是true。同時(shí)對(duì)于Always-On Logic Cells,pg_pin描述一般都會(huì)有兩組,primary和backup,工具看到該cell為Always On,就會(huì)把2組電源地都接到長(zhǎng)開(kāi)的電源/地上。cell(alw

44、ays_on_cell)        always_on : true ; #定義該Cell是always_on_cellpg_pin(<pg_pin_name_P>) #電源Pin定義pg_type : primary_power;pg_pin(<pg_pin_name_G>) #地Pin定義pg_type : primary_ground;pg_pin(<pg_pin_name_P>) #電源Pin定義pg_type : backup_power;pg_pin(<pg_pin_

45、name_G>) #地Pin定義pg_type : backup_ground;/* End Cell group */ 3.2.2      利用不同VT值的庫(kù),實(shí)現(xiàn)靜態(tài)功耗和時(shí)序的平衡(Multi-VT) 隨著工藝尺寸的減小,Oxide層厚度的減少,VT值也一直在減少,這是為了在驅(qū)動(dòng)電壓較低的情況下,提高驅(qū)動(dòng)速度。但同時(shí)靜態(tài)功耗也隨之增加。對(duì)電路設(shè)計(jì)來(lái)說(shuō),并不是每一個(gè)部分的電路,路徑延時(shí)都需要那么小,對(duì)于一些非關(guān)鍵路徑來(lái)說(shuō),如果能夠使用高VT值的元件,則可以在滿足時(shí)序的前提下減小靜態(tài)功耗了。在同一種工藝下,實(shí)現(xiàn)不同

46、的VT值,可以使用井偏置(Well Bias)技術(shù),使Substrate的電壓與Source的電壓存在一定的電壓差,就可以改變VT值了。使用較多的方法是分別對(duì)N-MOSFET和P-MOSFET增加1層Mask來(lái)提高VT,或減小VT。通常情況下IP提供商會(huì)提供多套不同的單元庫(kù),按照不同的VT值進(jìn)行設(shè)計(jì)。如TSMC 90nm LP工藝的單元庫(kù),就會(huì)提供普通VT、High VT、Low VT以及Ultra Low VT四套單元庫(kù)。下面TSMC 90nm LP的四套單元庫(kù)進(jìn)行分析:  area(um*um) Average leakage(nW) Rise de

47、lay(0.04pf,ns) Typical Rise Energe(0.04pf,pJ) dbtcbn90lphdbwphvttc BUFFD1BWPHVT 2.1952 0.017 0.2444 0.002716 dbtcbn90lphdbwptcBUFFD1BWP 2.1952 0.214 0.237176 0.00272 dbtcbn90lphdbwplvttc BUFFD1BWPLVT 2.1952 0.4120.217184

48、 0.002616 dbtcbn90lphdbwpulvttc BUFFD1BWPULVT 2.1952 5.055 0.193556 0.003624   表格中dbtcbn90lphdbwptc是正常VT的庫(kù),dbtcbn90lphdbwphvttc是High VT的庫(kù),dbtcbn90lphdbwplvttc是Low VT的庫(kù),dbtcbn90lphdbwpulvttc是Ultra Low VT的庫(kù)。分析時(shí)使用1個(gè)門的Buffer來(lái)進(jìn)行,面積上都是2.195um2。靜態(tài)漏電功耗,High

49、VT庫(kù)中,1個(gè)門只有0.017nW,甚至比SMIC18 METRO 1個(gè)門的漏電功耗還低(參看3.2.1)。隨著VT的減小,靜態(tài)功耗逐漸變大,到Ultra Low VT時(shí),其靜態(tài)功耗,1個(gè)門就有5.055nW。但也因?yàn)閂T很高,High VT的Buffer延時(shí)很慢,比Ultra Low VT減慢了約27。從表格看來(lái),延時(shí)的變化并不非常明顯,如果在時(shí)序上要求不是很高,則盡量還是需要使用High VT的庫(kù)來(lái)實(shí)現(xiàn)3.2.2.1.              

50、60;   常用EDA工具中Multi-VT的實(shí)現(xiàn)方法從Synopsys Multi-VT實(shí)現(xiàn)過(guò)程主要是在邏輯綜合(Logic Synthesis)階段。DC完成Multi-VT的實(shí)現(xiàn),主要是在target_library中找出可以使用的所有邏輯單元,并在滿足時(shí)序約束的情況下,使用最低leakage power的單元進(jìn)行實(shí)現(xiàn)。其實(shí)現(xiàn)步驟可以如下:#讀入不同VT的邏輯單元作為target library,當(dāng)DC有充分的選擇空間       set_target_library dbtcbn90lphdbwp

51、tc.db dbtcbn90lphdbwphvttc.db dbtcbn90lphdbwplvttc.db dbtcbn90lphdbwpulvttc.db#讀入HDL代碼read_verilog design_include.v#link designcurrent_design design_topuniquifylink#讀入約束source design_constraint.tcl#其他設(shè)置#設(shè)置最大漏電電流,該設(shè)置必須有,否則優(yōu)化過(guò)程不考慮漏電的優(yōu)化set_max_leakage_power 0 mw#開(kāi)始編譯compile_ultra由于綜合時(shí),時(shí)序信息并不完全準(zhǔn)確,特別是set

52、up類的時(shí)序。因此可以對(duì)setup時(shí)序做稍緊一些的約束,使結(jié)果進(jìn)入PR工具后還能夠滿足時(shí)序,如果進(jìn)入PR后仍然無(wú)法滿足setup時(shí)序,PR工具也可以利用類似的原理進(jìn)行優(yōu)化。如在IC Compiler里,在布線后優(yōu)化時(shí)可以使用如下語(yǔ)句來(lái)進(jìn)行優(yōu)化:physopt preserve_footprint only_power_recovery post_route incremental這里設(shè)置了-preserve_footprint以及-only_power_recovery,因此只是針對(duì)相同footprint的單元做漏電功耗優(yōu)化,也就是說(shuō)如果某個(gè)使用了High VT X2的Buffer需要減小延時(shí)

53、,則可以替換成Low VT X2的Buffer,這樣做可以保持原有的布線結(jié)果。當(dāng)出現(xiàn)Multi-VT的單元庫(kù)后,每個(gè)單元庫(kù)都會(huì)多一個(gè)default_threshold_voltage_group以及threshold_voltage_group屬性來(lái)說(shuō)明該單元庫(kù)是High VT、標(biāo)準(zhǔn)VT還是Low VT??梢岳胷eport_threshold_voltage_group(DC和IC Compiler都支持)指令報(bào)出設(shè)計(jì)中每種單元庫(kù)單元占整個(gè)設(shè)計(jì)的百分比,如High VT的單元庫(kù)占60,標(biāo)準(zhǔn)VT占25,等。這樣做可以使設(shè)計(jì)者了解不同VT對(duì)自己設(shè)計(jì)的影響,如果速度不快,則Low VT的庫(kù)可能占用

54、很少,甚至沒(méi)有使用,那么完全可以在設(shè)計(jì)過(guò)程中直接不使用該庫(kù)。如果庫(kù)中沒(méi)有default_threshold_voltage_group變量,我們可以在DC中設(shè)置:set_attr -type string dbtcbn90lphdbwphvtwc.db: dbtcbn90lphdbwphvtwc default_threshold_voltage_group HVT3.2.3      時(shí)鐘門控減小不必要的動(dòng)態(tài)功耗 時(shí)鐘門控單元的插入在3.1.2已經(jīng)有所描述,這里就不多進(jìn)行描述了。同樣的,標(biāo)準(zhǔn)單元庫(kù)必須提供相應(yīng)Cell的庫(kù)才可以實(shí)現(xiàn)。

55、3.2.4      多供電電壓,實(shí)現(xiàn)動(dòng)態(tài)功耗與時(shí)序的平衡(Multi-Voltage) 我們知道,降低驅(qū)動(dòng)電壓VDD,是減小動(dòng)態(tài)功耗最快的方法,因此在滿足時(shí)序的情況下,適當(dāng)降低驅(qū)動(dòng)電壓,可以有效的減小動(dòng)態(tài)功耗。而設(shè)計(jì)中可以使用多驅(qū)動(dòng)電壓的設(shè)計(jì)方法,對(duì)于速度要求快的電路,供高一些的驅(qū)動(dòng)電壓,如1.3V,而速度要求不高的模塊,則只需要供比較低的驅(qū)動(dòng)電壓,如1.0V。對(duì)于邏輯綜合來(lái)說(shuō),DC中,首先需要對(duì)不同電壓域的電路設(shè)置不同的operating_condition,綜合工具就可以對(duì)該電壓域電路進(jìn)行初步分析和優(yōu)化了。如果使用UPF,則可以

56、直接使用load_upf,工具會(huì)根據(jù)UPF的描述自動(dòng)尋找相應(yīng)的庫(kù)文件進(jìn)行分析。如下所示:set target_library “slow_14V slow 10V       read_verilog design_include.vcurrent_design design_toplink#set_operating_condition max slow_10V max_library slow_10V#uDesign/uDMA速度快,需要使用1.4V供電#set_operating_condition max slow_

57、14V max_library slow_14V object_list #uDesign/uDMAload_upf power.upfcheck_mv_designcompile scancheck_mv_design這里check_mv_design主要是檢查UPF對(duì)設(shè)計(jì)的描述是否正確,在compile之后再做一次是為了查看compile后,電路結(jié)構(gòu)域UPF的描述是否正確。接著,需要在不同電壓電路之間,添加Level_shifters,進(jìn)行電壓轉(zhuǎn)換。如下所示:check_level_shiftersinsert_level_shifters all_clock_nets -verboseD

58、C會(huì)根據(jù)不同電壓域設(shè)置operating condition中voltage的數(shù)值或者UPF中的描述,查找Level Shifter Cell中input_voltage_range和output_voltage_range滿足這些電壓域需求的元件,在2個(gè)電壓域的數(shù)據(jù)交互信號(hào)上添加Level Shifter Cells。3.2.4.1.   常用EDA工具中Multi-VT的實(shí)現(xiàn)方法 Level Shifters主要是在多供電電壓設(shè)計(jì)中,在2個(gè)不同電壓域之間進(jìn)行電壓轉(zhuǎn)換的器件,將某個(gè)電壓域輸出的邏輯電平轉(zhuǎn)換成另外一個(gè)電壓域可以識(shí)別的邏輯電平。從功能上來(lái)看,就像一個(gè)Buffe

59、r。下面描述的是level_shifter的Liberty格式:cell(level_shifter)        is_level_shifter : true ; #定義為true,則該Cell被認(rèn)為是lever shifter celllevel_shifter_type : HL | LH | HL_LH ; #定義電平轉(zhuǎn)換方向,HL表示高電平轉(zhuǎn)低電平,LH直低電平轉(zhuǎn)高電平,HL_LH表示都可以用input_voltage_range (<float>, <float>); #輸入電壓范圍,

60、指該Cell輸入連接的電路,電壓工作范圍,EDA工具會(huì)根據(jù)Operating Condition的選擇,檢查該Cell是否滿足電路需要,可以在功能pin中進(jìn)行定義,如果在cell主體定義,則必須與output_voltage_range同時(shí)存在output_voltage_range (<float>, <float>);#輸出電壓范圍,指該Cell輸出連接的電路,電壓工作范圍,EDA工具會(huì)根據(jù)Operating Condition的選擇,檢查該Cell是否滿足電路需要,可以在功能pin中進(jìn)行定義,如果在cell主體定義,則必須與input_voltage_range同

61、時(shí)存在pg_pin(<pg_pin_name_P>) pg_type : primary_power;std_cell_main_rail : true; #該primary_power連接在Cell設(shè)計(jì)中的主railpg_pin(<pg_pin_name_G>) pg_type : primary_ground;pin (data) direction : input;input_signal_level : “<voltage_rail_name>”; #輸入信號(hào)電壓環(huán)名input_voltage_range ( <float> , <float>);level_shifter_data_pin : true ; #數(shù)據(jù)功能Pin/* End pin group */pin (enable) direction : input;input_v

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論