顧東華 ,曾智勇 ,余金金 ,黃徐輝 ,朱嘉駿 ,何湘君 ,陳澤發(fā)
(1.燧原科技上海有限公司,上海 200000;2.上??请娮涌萍加邢薰?,上海 200000)
芯片設(shè)計(jì)一直在追求最好的PPA,在28 nm 之前的技術(shù)節(jié)點(diǎn)上,很多時(shí)候更多地優(yōu)先考慮性能和面積。隨著技術(shù)節(jié)點(diǎn)向7 nm 進(jìn)化,標(biāo)準(zhǔn)單元的密度不斷提升,隨之而來的功耗密度也越來越大。因此作為PPA 之一的功耗在設(shè)計(jì)中變得尤為重要。設(shè)計(jì)芯片需要在流程的各個(gè)節(jié)點(diǎn)盡量對(duì)功耗進(jìn)行精確評(píng)估并進(jìn)行優(yōu)化,否則最終芯片的性能很可能由于功耗過大而無法充分發(fā)揮。
首先來看下從原理上芯片的功耗的計(jì)算方式。集成電路的功耗一般分為靜態(tài)功耗和動(dòng)態(tài)功耗。如圖1 所示,靜態(tài)功耗又稱為泄露功耗(leakage power),是指電路處于等待或不激活狀態(tài)時(shí)泄漏電流所產(chǎn)生的功耗。
圖1 中箭頭表明了在通電狀態(tài)下PMOS 內(nèi)主要的泄漏電流及其走向,意即:
圖1 靜態(tài)功耗示意圖
泄漏電流(Leakage Current)=漏極->N-Well+Gate->N-Well+源極->漏極
泄漏電流存在的原因在于,MOS 管中的多種摻雜區(qū)形成導(dǎo)電區(qū)域,同時(shí)這些區(qū)域會(huì)組成多個(gè)PN 節(jié),從而在通電后形成一系列微小的電流。
盡管在現(xiàn)今芯片的工作電壓已經(jīng)很低的前提下每個(gè)MOS 管的漏電流很小,但由于每顆芯片中集成的晶體管多至幾億甚至幾百億,積少成多,導(dǎo)致芯片的整體泄露功耗變得越來越恐怖。
在后端設(shè)計(jì)中,由于每個(gè)標(biāo)準(zhǔn)單元(standard cell)的leakage 都集成在其liberty 庫(kù)文件(.lib)中,因此計(jì)算leakage power 只需在制定條件下將design 中所有的標(biāo)準(zhǔn)單元(包括各種Macro)的leakage 值相加即可。
目前所有的主流PR 工具對(duì)此都有支持。需要指出的是,由于一個(gè)標(biāo)準(zhǔn)單元的leakage power 和其面積成正比,因此在實(shí)際后端設(shè)計(jì)的各個(gè)階段,尤其是low power設(shè)計(jì)中,一般會(huì)重點(diǎn)關(guān)注芯片中邏輯門的面積變化并以此快速推斷design 的leakage 功耗變化。
另一部分稱為動(dòng)態(tài)功耗,是指芯片在工作過程中晶體管狀態(tài)跳變所產(chǎn)生的功耗。當(dāng)把反相器簡(jiǎn)化成一個(gè)簡(jiǎn)單的RC 電路時(shí),就可以清晰地看出充放電時(shí)的電流走向。當(dāng)芯片處于工作狀態(tài)時(shí),每一個(gè)工作中的標(biāo)準(zhǔn)單元都會(huì)隨著時(shí)鐘以及數(shù)據(jù)的翻轉(zhuǎn)而不斷重復(fù)上述過程,從而產(chǎn)生大量的動(dòng)態(tài)功耗。
在實(shí)際后端設(shè)計(jì)時(shí),動(dòng)態(tài)功耗由于和芯片的功能息息相關(guān),因此在計(jì)算的時(shí)候會(huì)引入翻轉(zhuǎn)率(toggle rate)的概念。翻轉(zhuǎn)率是指單位時(shí)間內(nèi)標(biāo)準(zhǔn)單元上信號(hào)翻轉(zhuǎn)的次數(shù),翻轉(zhuǎn)率的高低直接影響到標(biāo)準(zhǔn)單元上的動(dòng)態(tài)功耗開銷。
在實(shí)際計(jì)算動(dòng)態(tài)功耗的時(shí)候,又會(huì)分成兩個(gè)部分。一部分為標(biāo)準(zhǔn)單元內(nèi)部的動(dòng)態(tài)功耗,一般叫做短路功耗,又可以稱為內(nèi)部功耗(Internal Power),如圖2 所示,這部分的計(jì)算是嵌入liberty 庫(kù)文件內(nèi)部,通過標(biāo)準(zhǔn)單元的input transition 和output load 來查表得到的。
圖2 內(nèi)部功耗示意圖
另一部分為互連線(net)上的動(dòng)態(tài)功耗,也稱為翻轉(zhuǎn)功耗(Switching Power),這部分的計(jì)算通過將所有net上每個(gè)翻轉(zhuǎn)周期的功耗乘以其翻轉(zhuǎn)率并相加得到。
翻轉(zhuǎn)率通過某種固定格式的文件傳入EDA 工具,比較常用的格式有SAIF (Switching Activity Interchange Format)、VCD(Value Change Dump)以及FSDB(Fast Signal Database)文件。
目前主流的PR 工具均支持此類用法,但是簽核signoff 時(shí)仍然需要比較專業(yè)的power 計(jì)算工具如Synopsys PrimeTime PX 或Cadence Palladium 等。
至此,我們基本了解了一顆芯片整體功耗的計(jì)算方法。而在現(xiàn)今十分重要的低功耗設(shè)計(jì)中,所有的手法都是從降低以上兩個(gè)方面(Static,Dynamic)的功耗著手的:比如應(yīng)用多個(gè)power domain 以便在芯片的某一部分功能不用的時(shí)候?qū)⑵鋽嚯婈P(guān)閉;或者通過升級(jí)更先進(jìn)的工藝來降低每個(gè)晶體管的尺寸從而降低整體面積;抑或通過改善時(shí)鐘樹綜合手段來降低芯片中占比很大的時(shí)鐘網(wǎng)絡(luò)功耗。
傳統(tǒng)的功耗優(yōu)化方案一般會(huì)采用減少ULVT cell 的使用率來優(yōu)化靜態(tài)功耗,另外引入無向量模式(vector-less)設(shè)置一個(gè)大概的switching activity 如15%,然后進(jìn)行動(dòng)態(tài)功耗優(yōu)化。但是這樣的優(yōu)化就要一定的隨機(jī)性因此目標(biāo)不明確,效果不明顯。
在7 nm 的AI 類芯片中,動(dòng)態(tài)功耗占據(jù)了主體,僅靠對(duì)于靜態(tài)功耗的優(yōu)化,無法滿足功耗優(yōu)化的目的。因此帶入能表征芯片實(shí)際工作的工況波形,再進(jìn)行精確的動(dòng)態(tài)功耗優(yōu)化更具有決定作用。
一般模塊設(shè)計(jì)者會(huì)對(duì)模塊進(jìn)行功能驗(yàn)證,某些工況下該模塊的功耗會(huì)達(dá)到峰值。此時(shí)通過驗(yàn)證工具可以給出峰值功耗波形。該波形會(huì)記錄該模塊所有信號(hào)的翻轉(zhuǎn)信息。這里的驗(yàn)證工具可以是Cadence 的Palladium(如圖3 所示)。當(dāng)然有些模塊的峰值功耗可能有多個(gè)情況,并且會(huì)涉及不一樣的邏輯空間,那么就需要一組波形來表征該模塊的功耗行為。但是一般驗(yàn)證工具是基于RTL設(shè)計(jì)給出來的RTL 波形,它雖然可以直接用于網(wǎng)表的優(yōu)化,但由于它只能一定程度地映射網(wǎng)表中的寄存器,而無法精確匹配寄存器中間的大量組合邏輯。因此僅僅依賴RTL 波型進(jìn)行優(yōu)化不能達(dá)到最優(yōu)效果。
圖3 Palladium 示意圖
Cadence 在其功耗計(jì)算工具Joules 中集成了Joulesreplay,該功能可以將RTL 波形轉(zhuǎn)換到與之相對(duì)應(yīng)的門級(jí)網(wǎng)表(Gate Level Netlist)并且進(jìn)行仿真,產(chǎn)生所有組合邏輯的詳細(xì)波形。有了這一功能就可以在優(yōu)化過程中使用更為精確的網(wǎng)表波形。
當(dāng)拿到RTL 設(shè)計(jì),并利用Genus 進(jìn)行綜合時(shí),可以利用對(duì)應(yīng)的RTL 波形開始進(jìn)行功耗優(yōu)化。Genus 綜合可以分為3 個(gè)步驟:syn_gen、syn_map 和syn_opt。因此,可以形成如圖4 所示Genus 結(jié)合FSDB 的綜合流程圖。
圖4 Genus 結(jié)合FSDB 綜合流程
如圖5 所示,在Innovus 中實(shí)現(xiàn)Place 和Routing 也分為3 個(gè)階段:place_opt、cts_opt 和route_opt。同樣每一步都加入Joules-replay 來實(shí)現(xiàn)優(yōu)化所需的網(wǎng)表波形。同時(shí)可以通過設(shè)定weight 值來實(shí)現(xiàn)引入多個(gè)波形同時(shí)優(yōu)化。
圖5 PR 各階段結(jié)合FSDB 功耗優(yōu)化流程
·Innovus:
如圖6 所示,在Signoff 階段,通過IPA 工具進(jìn)行power的signoff,可以了解到最終power 的靜態(tài)功耗和動(dòng)態(tài)功耗的大小。引入IPA 產(chǎn)生的FSDB 至IR 仿真中,得到vector 的IR 結(jié)果。
圖6 sigoff 流程圖
選取了三個(gè)case 作為比較對(duì)象,如表1 所示,case 0為不引入FSDB 的base 情況,case 1 為由Genus 綜合開始至Innovus PR 各階段均引入FSDB 的全流程功耗優(yōu)化,case 2 為在case 1 的基礎(chǔ)上同時(shí)使用MBB cell。
表1 實(shí)驗(yàn)設(shè)定
如表2 所示,對(duì)比case0、case1 和case2 的QOR 結(jié)果可以發(fā)現(xiàn):(1)三個(gè)case 時(shí)序結(jié)果都比較一致,且在安全范圍;(2)case1 和case 2 的DRC 數(shù)量有增多,但增加的DRC 主要集中在IO ports 附近,核心區(qū)域的DRC 沒有明顯變化;(3)case 1 和case 2 的IR 結(jié)果變好,這是引入FSDB 的case,平均功耗更優(yōu)化??偟膩砜?,引入FSDB 全流程功耗優(yōu)化對(duì)PR 的QOR 影響不是很大,而且對(duì)IR還有提升。
表2 實(shí)驗(yàn)QOR 結(jié)果對(duì)比
Joules-replay 可以具體表征每個(gè)階段功耗的數(shù)值,為此總結(jié)了引入FSDB 后各階段功耗優(yōu)化的比例,如圖7所示,在綜合階段有7%的優(yōu)化效果,當(dāng)?shù)竭_(dá)signoff 時(shí)有10.5%的優(yōu)化,此外,當(dāng)FSDB 結(jié)合MBFF cell 使用時(shí),功耗優(yōu)化效果會(huì)進(jìn)一步提升,在簽核階段達(dá)到19.8%的比例。
圖7 各階段功耗優(yōu)化的比例
表3 列舉了簽核signoff 階段,這三個(gè)case 的具體功耗組成,結(jié)果顯示,case1 和case 2 的功耗優(yōu)化主要是由于內(nèi)部功耗和開關(guān)功耗大幅度降低。
表3 各case 功耗組成占比
為進(jìn)一步優(yōu)化功耗,在Tempus timing signoff 的流程中進(jìn)行PowerECO,如圖8 所示,PowerECO 能夠進(jìn)一步優(yōu)化1.8%的功耗,最終全流程功耗優(yōu)化能夠達(dá)到21%的優(yōu)化效果。
圖8 Joules-replay+MBB 各階段功耗優(yōu)化的比例
綜上所述,本文使用了帶FSDB Genus 綜合流程,帶FSDB Innovus PR 實(shí)現(xiàn)流程,以及Tempus Power ECO 簽核優(yōu)化流程,并在整個(gè)實(shí)現(xiàn)與優(yōu)化流程中結(jié)合MBFF 技術(shù),可以實(shí)現(xiàn)從RTL 到GDS 的21%的功耗優(yōu)化,這為大芯片的功耗優(yōu)化帶來全新的選擇,為芯片的PPA 的提升提供了一種全新的方法。