隨著power架構(gòu)和復(fù)雜電壓域劃分的復(fù)雜性不斷增加,同時推動這些復(fù)雜power邏輯的功能和物理驗證變得勢在必行。然而,盡管工程師做了不懈努力地驗證工作,一些問題仍可能會被跳過并進(jìn)入硅片。為避免因低功耗問題導(dǎo)致芯片故障,工程師需要找到最先進(jìn)的方法來管理預(yù)期外的低功耗問題。
CPF(Common Power Format)是一種描述power intent的標(biāo)準(zhǔn)格式,工程師使用它來描述設(shè)計的低功耗相關(guān)問題。如圖 1(a) 所示,沒有 CPF 的設(shè)計只有邏輯連接。但是,如圖 1(b) 所示,一旦引入 CPF,設(shè)計的power連接關(guān)系也會出現(xiàn)。所有低功耗設(shè)計都必須符合 CPF 內(nèi)定義的低功耗規(guī)范,因此應(yīng)將其作為設(shè)計周期的一部分。
圖1(a): Design state without CPF
圖1(b):Design state with CPF
為確保設(shè)計符合?CPF?中定義的低功耗約束,需要使用相同的?CPF?執(zhí)行靜態(tài)和動態(tài)檢查(static & dynamic?low?power?check?)。
起初,似乎單獨(dú)使用靜態(tài)驗證或動態(tài)驗證就足以發(fā)現(xiàn)所有與低功耗相關(guān)的問題,并且沒有必要同時運(yùn)行這兩種檢查。但實(shí)際上,情況并非如此。靜態(tài)和動態(tài)低功耗驗證中的每一個都有不同的驗證范圍,單獨(dú)使用它們中的任何一個都不足以對設(shè)計進(jìn)行穩(wěn)健驗證。
在本文中,我們將討論使用通用 CPF 進(jìn)行靜態(tài)和動態(tài)低功耗檢查的必要性。
Static low power verification的必要性
低功耗靜態(tài)驗證檢查有助于在設(shè)計過程的早期使用形式驗證技術(shù)(相對于仿真)驗證低功耗設(shè)計的正確實(shí)施。這些對 RTL 的靜態(tài)檢查有助于預(yù)先找到 CPF 的完整性,確保 CPF 包含電源和電壓域交叉的所有Isolation和level shifter規(guī)則。這將確保在兩個電壓或功率域之間不會遺漏任何low power cell。靜態(tài)驗證通過識別錯誤來體現(xiàn)價值,否則在 RTL 仿真中發(fā)現(xiàn)這些錯誤非常困難且耗時。
但是有些問題無法使用靜態(tài)檢查來發(fā)現(xiàn)。讓我們詳細(xì)討論其中的一些場景。
現(xiàn)在考慮具有兩個電源域(常開和可切換)的設(shè)計,并且存在從可切換電壓域到常開電壓域的交互,如圖 2 所示。
圖2?從可切換電壓域到常開電壓域的交互
logic_0? level的Isolation應(yīng)該插入在此交叉點(diǎn)。現(xiàn)在,時序優(yōu)化期間的邏輯重組發(fā)生在交叉點(diǎn)上,此時在net添加了一對反相器,如圖 3 所示。
圖3?從可切換電壓域到常開電壓域的邏輯重組
現(xiàn)在,如圖 4 所示,當(dāng) logic_0? level的Isolation插入此交叉點(diǎn)時,設(shè)計在正常功能模式操作期間工作正常,因為在這種情況下隔離單元處于旁路模式。但是當(dāng)設(shè)計進(jìn)入待機(jī)模式時,Isolation通過“iso_en”信號啟用。隨著Isolation的觸發(fā),一個常量(例如“邏輯?0”)將從隔離單元的輸出傳播到常開電壓域。在待機(jī)階段,“邏輯?0”被Isolation強(qiáng)制賦值,但由于在優(yōu)化期間添加了反相器,“邏輯 1”到達(dá)可切換電壓域中的邏輯,這將破壞設(shè)計的功能。
圖4:重組邏輯上的Isolation
靜態(tài)驗證檢查無法驗證可以斷言關(guān)鍵低功率信號的時序器件。一種此類檢查的基本示例是isolation assertion檢查,它確保隔離控制信號在電源關(guān)閉之前斷言,然后在隔離控制取消斷言之前重新打開電源,如圖 5 所示。
圖5:Iso_En信號和power的時序關(guān)系
動態(tài)低功耗檢查有助于驗證所有電源管理元件的功能。為了實(shí)現(xiàn)這一目標(biāo),它使用了一組刺激:DUT(測試中的設(shè)計),捕獲設(shè)計的邏輯功能;CPF(通用電源格式),捕捉設(shè)計的電源意圖。
激勵是根據(jù)power intent和 DUT 的功能準(zhǔn)備的信號組合。根據(jù)提供的激勵,RTL 的某些部分被關(guān)閉,同時保持某些部分始終處于開啟狀態(tài)。模擬器強(qiáng)制 Xs,將來自關(guān)閉電壓域的信號發(fā)送到常開電壓域,以模擬它們的關(guān)閉狀態(tài)。如果所需的功能沒有因為這些 X 中的任何一個而損壞,那么從低功耗的角度來看,該設(shè)計被認(rèn)為是合規(guī)的。
但是有些問題無法使用此方法捕獲。如果置之不理,這些問題可能會導(dǎo)致芯片故障。讓我們詳細(xì)討論其中的一些場景。
考慮一個設(shè)計,其中兩個模塊在兩個不同的電源(1.2V 和 3.3V)上工作。如圖 6 所示,從 1.2V 電壓域到 3.3V 電壓域的信號需要Level Shifter。該單元的目的是將電壓從低電平轉(zhuǎn)換為高電平。
圖6:1.2V →3.3V電壓域的Level Shifter
從邏輯功能上講,Level Shifter功能類似于BUFFER的功能(即輸出 = 輸入)。因此,如果某個地方缺少電平轉(zhuǎn)換器單元,仿真工具不會標(biāo)記任何錯誤,但實(shí)際上它可能會導(dǎo)致短路電流,從而導(dǎo)致硅故障。
考慮具有兩個不同電源域的設(shè)計,如圖 7 所示:常開域 PD_AO 和可切換電壓域PD_SW。
圖7:測試邏輯上的Isolation
在待機(jī)模式下,PD_SW 將關(guān)閉,但 PD_AO 將打開。因此,從?可關(guān)斷電壓域到常開電壓域的每個信號都需要Isolation cell。讓我們考慮一個觸發(fā)器(存在于可關(guān)斷電壓域中),其輸出連接到存在于常開電壓域中的觸發(fā)器的掃描輸入引腳(通過一些緩沖區(qū))。
如果此交叉點(diǎn)上缺少隔離單元,仿真工具將不會標(biāo)記任何錯誤,因為在功能模擬中不會檢查此類路徑。但由于關(guān)斷域不再驅(qū)動它們的輸出,并且它們的輸出成為float point,交叉時意外的信號值可能會由于不合適的邏輯電平而導(dǎo)致高電流消耗,并可能導(dǎo)致硅故障。
對于數(shù)字仿真工具,所有power net都被視為相同的,而不管與該power net關(guān)聯(lián)的電壓水平如何。因此,如果在Analog block上進(jìn)行了一些錯誤的電源連接,則可能無法使用仿真來捕獲它,并且可能導(dǎo)致硅故障。
http://mantravlsi.blogspot.com/2020/08/clp-low-power-check.html
https://www.design-reuse.com/articles/32170/a-need-for-static-dynamic-low-power-verification.html