一種多電壓域設計中保持時間的修正方法
【技術領域】
[0001] 本發明涉及集成電路芯片領域,尤其是一種芯片功耗設計、時序分析及收斂的方 法。
【背景技術】
[0002] 多電壓域設計是當今集成電路設計領域內降低芯片功耗的一種常用設計手段。隨 著手持設備應用的日益廣泛,對芯片功耗的指標要求也愈發嚴苛。芯片內劃分出的應用于 不同場景的電源域也越來越多,這些電源域工作在不同的電壓,所以即使相同的單元在每 個域中也都具有不同的時序特性。
[0003] 另一方面,工藝的進步使得電路時序的離散性愈發增強,時序的收斂變得越來越 困難,尤其是保持時間的收斂變得愈加復雜。以55nm工藝為例,很多情況下,芯片經靜態時 序分析后,會發現幾乎所有的工藝角下都存在保持時間的違反問題。為使保持時間收斂,不 得不經過更多的設計迭代,加入更多的buffer來解決這一問題,其造成的直接后果是芯片 的功耗增大,某些狀況下甚至會出現布局、布線密度過高無法實現的情況,從而不得不從頭 開始,重新規劃、設計整個電路,造成了整個設計周期的延遲。如何以最小的代價實現保持 時間的收斂,成為芯片時序收斂及設計領域內的一個難題。
[0004] 多電壓設計中保持時間的收斂問題,可以說是上述兩方面難點的一個交集。一方 面由于每個電壓域中的標準單元都具有不同的時序特性,造成整個時序分析的離散性進一 步增強,時序收斂變得愈發困難;另一方面,由于對功耗的高要求,為使保持時間收斂而加 入的buffer數量必須嚴格受到控制,一但造成局部布局、布線密度過高等情況,就必須涉 及到重新規劃電壓域、floorplan等一系列復雜問題,其所付出的代價及設計周期的增大都 比非多電壓域設計要大得多。
【發明內容】
[0005] 為了克服已有芯片的多電壓域設計中為了實現保持時間收斂加入buffer的數量 較多和面積較大、無法滿足功耗的不足,本發明提供一種極大降低為實現保持時間收斂所 需加入的buffer的數量及面積、有效滿足功耗要求的多電壓域設計中保持時間的修正方 法。
[0006] 本發明解決其技術問題所采用的技術方案是:
[0007] 一種多電壓域設計中保持時間的修正方法,所述修正方法包括如下步驟:
[0008] 第一步,完成對全電路的靜態時序分析,將節點的位置坐標信息反標進靜態時序 分結果中,獲得電路保持時序違反的關鍵路徑;
[0009] 第二步,獲得經過關鍵路徑上每一節點的最大與最小數據路徑傳輸延時,計算該 節點保持時間修正余量;
[0010] 第三步,獲得關鍵路徑上每一節點的保持時間修正余量,位置坐標信息,計算該節 點的修正保持時間所需的最小面積消耗量。
[0011] 第四步,根據所獲得的每一節點保持時間修正余量和最小面積消耗量,計算該節 點的延時面積權重比;
[0012] 第五步,以此權重比的大小對所有節點進行優先級排序,對優先級最高的節點進 行保持時間的修正;
[0013] 第六步,修正后更新全電路的時序信息,如果保持時間未收斂,則重新提取保持時 間違反的關鍵路徑,重復所述第一步~第五步修正保持時間違反,直至保持時間收斂。
[0014] 進一步,所述第一步中,將節點的位置坐標信息反標進靜態時序分結果的過程如 下:
[0015] 1. 1)從電路物理設計信息中提取單元的坐標信息;
[0016] 1.2)將單元坐標信息以單元屬性的形式反標進入靜態時序分析的結果中。
[0017] 再進一步,所述第二步中,電路k點所能引入的保持時間修正余量dk需滿足如下 表達式:
[0018] Ci+D^ax+dk+Dkj,彡P+c』
[0019] Ci+D^in+dk+Dkj,-彡cj
[0020] 上式中,Ci代表時鐘控制觸發器FFi的時鐘信號延時;c j代表時鐘控制觸發器FFj 的時鐘信號延時;P代表時鐘信號的周期;Ditmin代節點i與節點k之間最小的組合邏輯延 時;D ik,max代表節點i與節點k之間最大的組合邏輯延時;Dkj,min代節點k與節點j之間最小 的組合邏輯延時;
[0021] Dkj,max代表節點k與節點j之間最大的組合邏輯延時;
[0022]推導得到Cj-Ci-D^n-Dkj,-彡 dk彡 P+cj-Ci-Di-x-Dkj,-,進而得到-slackuhQld< dk^slackij,setUp;
[0023] k點所能引入的保持時間修正余量dk為min(|slackij^upl,|slackij,!^」)。
[0024] 更進一步,所述第三步中,最小面積消耗量通過如下流程獲得:
[0025] 3. 1)根據節點i的位置坐標,獲得與節點i相鄰的電壓域集合V ;
[0026] 3. 2)如果F !=0,對于任意電壓域v G V,計算在電壓域v中加入延時buffer實 現保持時間修正目標余量Mtmget,所需的延時buffer的總面積A buff",計算插入的電壓轉換 單元的面積Als,計算其實際實現的保持時間余量Mac;tual,獲得節點i在電壓域v中的面積消 耗量A v= Abuff"+Als。以此類推,獲得一組對應于鄰接電壓域集合V的面積消耗量集合A,及 實際實現的保持時間余量集合M;
[0027] 3. 3)計算節點i在當前電壓域中實現保持時間修正量隊3_所需的延時buffer 總面積,計算其實際實現的保持時間余量
[0028] A=AUAbuffer,current,M=MUMactual,current〇
[0029] 所述第四步中,節點i的延時面積權重比^通過如下方式獲得:獲得節點i的面 積消耗量集合A,獲得集合A所對應的實際實現的保持時間余量集合M;
[0030]
[0031] 其中,Mactual,kG M,AkG A,k代表節點i的第k種保持時間修正方案。
[0032] 所述第五步中,保持時間的修正處理為:通過EOC調整將延遲buffer插入電路的 優先級最尚的節點。
[0033] 本發明的技術構思為:利用了 buffer單元在低電壓域中比在高電壓域中具有更 大的傳輸延時這一特性,通過延時面積權重比,對所有的備選插入節點進行優先級的設定 和排序,將buffer單元優先加入低電壓域中,使得該方法能以更少的buffer數量,獲得更 大的保持時間修正效果。
[0034] 本發明的有益效果主要表現在:極大降低了為實現保持時間收斂所需加入的 buffer的數量及面積,減少了 ECO調整的次數及時序收斂所需的迭代次數。
【附圖說明】
[0035] 圖1是同步電路原理圖。
[0036] 圖2是多電壓域設計中保持時間修正的示例。
[0037] 圖3是判定單元坐標是否在電壓域內部的算法流程。
[0038] 圖4是多電壓域設計中保持時間的修正方法的流程示意圖。
【具體實施方式】
[0039] 下面結合附圖對本發明作進一步描述。
[0040] 參照圖1~圖4,一種多電壓域設計中保持時間的修正方法,所述修正方法包括如 下步驟:
[0041] 第一步,完成對全電路的靜態時序分析,將節點的位置坐標信息反標進靜態時序 分結果中,獲得電路保持時序違反的關鍵路徑;
[0042] 第二步,獲得經過關鍵路徑上每一節點的最大與最小數據路徑傳輸延時,計算該 節點保持時間修正余量;
[0043] 第三步,獲得關鍵路徑上每一節點的保持時間修正余量,位置坐標信息,計算該節 點的修正保持時間所需的最小面積消耗量。
[0044] 第四步,根據所獲得的每一節點保持時間修正余量和最小面積消耗量,計算該節 點的延時面積權重比;
[0045] 第五步,以此權重比的大小對所有節點進行優先級排序,對優先級最高的節點進 行保持時間的修正;
[0046] 第六步,修正后更新全電路的時序信息,如果保持時間未收斂,則重新提取保持時 間違反的關鍵路徑,重復所述第一步~第五步修正保持時間違反,直至保持時間收斂。
[0047] 本實施例中,目前的芯片電路設計中,如圖1所示的同步電路結構是被廣泛采用 的主流設計方案。所謂同步電路,是指電路中所有用于存儲功能的單元全部由同一時鐘脈 沖源控制,所有存儲單元的狀態變化都由時鐘源信號同步觸發。為了實現時鐘源信號對所 有存儲單元的同步控制,時鐘控制存儲單元的時鐘信號與待鎖存數據信號之間必須要滿足 一定的時序關系,這一時序關系通常包含兩方面的內容,即建立時間和保持時間,通常由下 述兩個不等式來表征這兩方面的時序關系:
[0048] Ci+Dik,max+Dkj,max<P+Cj(表達式1)