降低不同端角下緩沖器鏈延時變化的方法
【專利摘要】本發(fā)明公開了一種降低不同端角下緩沖器鏈延時變化的方法,該方法以芯片設(shè)計中保持時間的違例路徑作為研究對象,提取最優(yōu)、最差端角下的時序裕量、輸入跳變時間和負載電容;遍歷所有緩沖器并計算出最優(yōu)端角下的緩沖器鏈最小延時;若延時滿足目標延時要求則繼續(xù)計算出最差端角下的緩沖器鏈最大延時;計算延時變化率,選擇輸出比延時變化率最小的緩沖器鏈A,如果沒有延時變化率在指定范圍內(nèi)的緩沖器鏈則輸出緩沖器鏈A,否則對比輸出面積最小的緩沖器鏈。本發(fā)明能夠降低不同端角下緩沖器鏈延時變化、很大程度上減小不同端角間的迭代次數(shù)、大大縮短設(shè)計周期、加速芯片時序。
【專利說明】降低不同端角下緩沖器鏈延時變化的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及集成電路設(shè)計領(lǐng)域,具體涉及一種降低不同端角下緩沖器鏈延時變化的方法。
【背景技術(shù)】
[0002]隨著集成電路工藝的日益發(fā)展,晶體管的尺寸不斷減小,目前的晶體管尺寸已經(jīng)減小到28nm。晶體管尺寸的縮小要求精準的制造工藝,而制造工藝的微小變化會帶來顯著的工藝參數(shù)偏差。工藝縮放和電路設(shè)計同時要求電源電壓按相應比例縮放,電源電壓縮放和集成電路節(jié)點的高速翻轉(zhuǎn)也會帶來電壓偏差。標準單元的開關(guān)活動性和種類的多樣性導致芯片局部地方出現(xiàn)高功耗,從而引起不均勻的供應電壓分配和溫度熱點,芯片封裝和電路長期運行也會導致集成電路的各個節(jié)點溫度發(fā)生變化。工藝、電源電壓和溫度的偏差會對集成電路的功能、性能和穩(wěn)定性產(chǎn)生影響,可以預計,隨著晶體管尺寸的進一步縮小,PVT偏差對集成電路的影響將更加明顯,尤其是PVT偏差對單元延時變化的影響。
[0003]當前芯片的物理設(shè)計中,緩沖器作為時序優(yōu)化的基本單元,它的延時、功耗和驅(qū)動能力越來越受到工程師的重視。隨著單元工藝尺寸的減小,芯片高性能設(shè)計的需要,時序優(yōu)化中多模式多端角的應用,緩沖器的延時變化對建立時間違例和保持時間違例的修復產(chǎn)生越來越大的影響。通常情況下,布局布線工具在自動修復違例的過程中將某個端角下的時序收斂了,其他端角下又會出現(xiàn)較大的時序違例,所以往往需要大量人工操作,在不同端角之間反復迭代,確保違例路徑的時序收斂。因此,如何在時序優(yōu)化過程中降低不同端角下緩沖器的延時變化來加速時序的收斂變得越來越迫切。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是提供一種能夠降低不同端角下緩沖器鏈延時變化、很大程度上減小不同端角間的迭代次數(shù)、大大縮短設(shè)計周期、加速芯片時序的收斂的降低不同端角下緩沖器鏈延時變化的方法。
[0005]為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
[0006]一種降低不同端角下緩沖器鏈延時變化的方法,其實施步驟如下:
[0007]I)通過布局布線工具提取寄存器數(shù)據(jù)端分別在最優(yōu)端角和最差端角下的時序裕量、輸入跳變時間和負載電容,將所述最優(yōu)端角下的時序裕量作為目標延時;
[0008]2)在最優(yōu)端角下遍歷緩沖器鏈的緩沖器,計算最優(yōu)端角下寄存器鏈的面積,并根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時,并將最小的單個緩沖器的延時作為緩沖器鏈最小延時;
[0009]3)判斷是否有緩沖器鏈延時滿足所述目標延時的緩沖器鏈,如果沒有緩沖器鏈延時滿足目標延時的緩沖器鏈,則增大所述目標延時并跳轉(zhuǎn)執(zhí)行步驟2);否則在最差端角下,根據(jù)最差端角下的輸入跳變時間和負載電容計算單個緩沖器的延時,并將單個緩沖器的延時求和組合得到緩沖器鏈最大延時,并跳轉(zhuǎn)執(zhí)行步驟4);[0010]4)分別將每一個滿足目標延時緩沖器鏈的緩沖器鏈最大延時除以緩沖器鏈最小延時得到緩沖器鏈的延時變化率,選擇一個緩沖器鏈的延時變化率最小的緩沖器鏈作為目標緩沖器鏈;
[0011]5)將所有滿足目標延時的緩沖器鏈的延時變化率與目標緩沖器鏈的延時變化率進行比較,如果沒有找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則直接輸出目標緩沖器鏈;如果找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則比較延時變化率在指定范圍內(nèi)的所有緩沖器鏈,從所有緩沖器鏈中查找面積最小的寄存器鏈輸出。
[0012]作為本發(fā)明降低不同端角下緩沖器鏈延時變化的方法的進一步改進:
[0013]所述步驟2)中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,具體是指遍歷一級緩沖器鏈、二級緩沖器鏈、三級緩沖器鏈的所有緩沖器。
[0014]所述步驟2)中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,如果緩沖器在時序單元庫中的最小延時大于目標延時,則直接忽略該延時器并開始處理下一個緩沖器。
[0015]所述步驟2)中根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時的詳細步驟如下:根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容查找時序庫文件表,判斷是否命中延時值,如果命中延時值則直接輸出命中的延時值;否則,獲取時序庫文件表中與命中點相鄰的四個表中給定延時值,根據(jù)所述命中點相鄰的四個表中給定延時值采用線性插值法計算得到命中點的延時值并輸出。
[0016]所述步驟3)中根據(jù)最差端角下的輸入跳變時間和負載電容計算單個緩沖器的延時的詳細步驟如下:根據(jù)最差端角下的輸入跳變時間和負載電容查找時序庫文件表,判斷是否命中延時值,如果命中延時值則直接輸出命中的延時值;否則,獲取時序庫文件表中與命中點相鄰的四個表中給定延時值,根據(jù)所述命中點相鄰的四個表中給定延時值采用線性插值法計算得到命中點的延時值并輸出。
[0017]所述步驟3)中增大所述目標延時具體是指將所述目標延時增加0.1倍。
[0018]所述步驟5)中的指定范圍具體是目標緩沖器鏈的延時變化率的I?1.1倍。
[0019]本發(fā)明降低不同端角下緩沖器鏈延時變化的方法具有下述優(yōu)點:由于布局布線工具自動修復后,仍需要大量人工操作,在不同端角之間反復迭代,才能確保所有路徑時序收斂。為了減小不同端角間的迭代次數(shù),縮短設(shè)計的周期,加速芯片的時序收斂,本實施例以芯片設(shè)計中保持時間的違例路徑作為研究對象,已知建立時間時序分析的最差端角為WC,保持時間時序分析的最差端角為Be,提取WC和最優(yōu)端角下的時序裕量、輸入跳變時間和負載電容;遍歷所有緩沖器并計算出最優(yōu)端角下緩沖器鏈的延時;其延時滿足目標延時要求則繼續(xù)計算出最差端角下緩沖器鏈的延時;分別將每一個滿足目標延時緩沖器鏈的緩沖器鏈最大延時除以緩沖器鏈最小延時得到緩沖器鏈的延時變化率,選擇一個緩沖器鏈的延時變化率最小的緩沖器鏈作為目標緩沖器鏈,將所有滿足目標延時的緩沖器鏈的延時變化率與目標緩沖器鏈的延時變化率進行比較,如果沒有找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則直接輸出目標緩沖器鏈;如果找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則比較延時變化率在指定范圍內(nèi)的所有緩沖器鏈,從所有緩沖器鏈中查找面積最小的寄存器鏈輸出具有以下幾個方面的優(yōu)點:1、加速時序收斂。緩沖器鏈在不同的端角下延時變化率小,保證了保持時間違例快速修復的同時,不會造成建立時間的二次違例。2、設(shè)計周期短。在時序優(yōu)化過程中需要人工在不同端角下反復迭代,保證各端角的時序收斂,本發(fā)明完全由腳本語言實現(xiàn),完成了設(shè)計的自動化,減小了迭代的次數(shù),極大的縮短了設(shè)計的周期,提高了設(shè)計的效率。3、降低了單元密度。本發(fā)明對所有滿足目標延時的緩沖器鏈進行了分析,選擇了面積最小的緩沖器鏈用于違例路徑的修復,降低了芯片設(shè)計中的單元密度,為新增單元和布線空出物理空間。
【專利附圖】
【附圖說明】
[0020]圖1為本發(fā)明實施例方法的基本流程示意圖。
[0021]圖2為本發(fā)明實施例中緩沖器鏈的結(jié)構(gòu)示意圖。
[0022]圖3為本發(fā)明實施例中不同端角下緩沖器鏈的延時計算原理示意圖。
[0023]圖4為本發(fā)明實施例中的線性插值法的原理示意圖。
【具體實施方式】
[0024]如圖1所示,本實施例降低不同端角下緩沖器鏈延時變化的方法的實施步驟如下:
[0025]第一步,通過布局布線工具提取寄存器數(shù)據(jù)端分別在最優(yōu)(Best Case)端角和最差(Worst Case)端角下的時序裕量、輸入跳變時間和負載電容,將所述最優(yōu)端角下的時序裕量作為目標延時。寄存器數(shù)據(jù)端分別在最優(yōu)端角和最差端角下的時序裕量、輸入跳變時間和負載電容將用于計算緩沖器鏈的延時。
[0026]第二步,在最優(yōu)端角下遍歷緩沖器鏈的緩沖器,計算最優(yōu)端角下寄存器鏈的面積,并根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時,并將最小的單個緩沖器的延時作為緩沖器鏈最小延時Tmin。
[0027]如圖2所示,緩沖器鏈中各緩沖器采用“首尾相接”的方式靠近連接,這種連接方式減小了互連線對緩沖器輸入跳變時間和負載電容的影響,保證了一個更加精準延時值的獲取。
[0028]本實施例中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,具體是指遍歷一級緩沖器鏈、二級緩沖器鏈、三級緩沖器鏈的所有緩沖器。本實施例只用了一級、二級和三級緩沖器鏈,其原因在于三級之后緩沖器鏈的延時變化率包含在前三級之中,不需要額外增加緩沖器的遍歷負擔;而且級數(shù)越多,緩沖器鏈的輸入跳變時間和負載電容就會變得不可控制,導致緩沖器鏈計算出來的延時值與實際運用中布局布線工具計算出來的延時值不相同。
[0029]本實施例中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,如果緩沖器在時序單元庫中的最小延時大于目標延時,則直接忽略該延時器并開始處理下一個緩沖器。這一步對緩沖器的延時進行判斷,如果某緩沖器在時序單元庫中的最小延時大于目標延時,那么在緩沖器鏈的確定過程中將不會把該緩沖器作為遍歷的一個單元,這樣做極大的減少了緩沖器的遍歷時間。
[0030]需要說明的是,單元延時是輸入跳變時間和負載電容的函數(shù),布局布線工具只需要獲取單元輸入跳變時間與負載電容,就可以在時序庫文件中得到確切的延時信息。如將步驟I中的寄存器數(shù)據(jù)端的輸入跳變時間作為緩沖器鏈中第一級緩沖器的輸入跳變時間,第二級緩沖器的輸入端電容作為第一級緩沖器的負載電容,就可以計算出第一級緩沖器的單元延遲。同理,將第一級緩沖器的輸出跳變時間作為第二季緩沖器的輸入跳變時間,將第三級緩沖器的輸入電容作為第二級緩沖器的負載電容,就可以計算出第二級緩沖器的單元延遲。而對于第三級緩沖器,則以步驟I中的寄存器輸入端的電容作為其負載電容計算單元延遲。對于輸入跳變時間與負載電容沒有出現(xiàn)在時序庫文件的7X7表中的情況,就需要找出它們落在表中的區(qū)間范圍,再根據(jù)這些邊界范圍的取值通過線性插值法計算得到需要的延時。
[0031]因此,本實施例步驟2)中根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時的詳細步驟如下:根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容查找時序庫文件表,判斷是否命中延時值,如果命中延時值則直接輸出命中的延時值;否則,獲取時序庫文件表中與命中點相鄰的四個表中給定延時值,根據(jù)所述命中點相鄰的四個表中給定延時值采用線性插值法計算得到命中點的延時值并輸出。
[0032]線性插值法的原理參見圖4,假設(shè)M點(x,y)為待求的延時值,時序庫文件表中與命中點M點(X,y)相鄰的四個表中給定點分別為Q11、Q12、Q22、Q21,分別對應圖4中的坐標(X1, Y1)、(X1, y2)、(x2, y2)、(x2, Y1),且其對應的延時值分別為 f (Q11)、f (Q12)、f (Q22)、f (Q21)。利用線性插值法求M點(x,y)延時值時,首先利用式(I)計算Rl,R2的值;然后利用公式
(2)計算f (M)即可,f (M)就是單個緩沖器的延時值。
【權(quán)利要求】
1.一種降低不同端角下緩沖器鏈延時變化的方法,其特征在于實施步驟如下: 1)通過布局布線工具提取寄存器數(shù)據(jù)端分別在最優(yōu)端角和最差端角下的時序裕量、輸入跳變時間和負載電容,將所述最優(yōu)端角下的時序裕量作為目標延時; 2)在最優(yōu)端角下遍歷緩沖器鏈的緩沖器,計算最優(yōu)端角下寄存器鏈的面積,并根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時,并將最小的單個緩沖器的延時作為緩沖器鏈最小延時; 3)判斷是否有緩沖器鏈延時滿足所述目標延時的緩沖器鏈,如果沒有緩沖器鏈延時滿足目標延時的緩沖器鏈,則增大所述目標延時并跳轉(zhuǎn)執(zhí)行步驟2);否則在最差端角下,根據(jù)最差端角下的輸入跳變時間和負載電容計算單個緩沖器的延時,并將單個緩沖器的延時求和組合得到緩沖器鏈最大延時,并跳轉(zhuǎn)執(zhí)行步驟4); 4)分別將每一個滿足目標延時緩沖器鏈的緩沖器鏈最大延時除以緩沖器鏈最小延時得到緩沖器鏈的延時變化率,選擇一個緩沖器鏈的延時變化率最小的緩沖器鏈作為目標緩沖器鏈; 5)將所有滿足目標延時的緩沖器鏈的延時變化率與目標緩沖器鏈的延時變化率進行比較,如果沒有找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則直接輸出目標緩沖器鏈;如果找到延時變化率在指定范圍內(nèi)的緩沖器鏈,則比較延時變化率在指定范圍內(nèi)的所有緩沖器鏈,從所有緩沖器鏈中查找面積最小的寄存器鏈輸出。
2.根據(jù)權(quán)利要求1所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟2)中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,具體是指遍歷一級緩沖器鏈、二級緩沖器鏈、三級緩沖器鏈的所有緩沖器。
3.根據(jù)權(quán)利要求2所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟2)中在最優(yōu)端角下遍歷緩沖器鏈的緩沖器時,如果緩沖器在時序單元庫中的最小延時大于目標延時,則直接忽略該延時器并開始處理下一個緩沖器。
4.根據(jù)權(quán)利要求3所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟2)中根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容計算單個緩沖器的延時的詳細步驟如下:根據(jù)最優(yōu)端角下的輸入跳變時間和負載電容查找時序庫文件表,判斷是否命中延時值,如果命中延時值則直接輸出命中的延時值;否則,獲取時序庫文件表中與命中點相鄰的四個表中給定延時值,根據(jù)所述命中點相鄰的四個表中給定延時值采用線性插值法計算得到命中點的延時值并輸出。
5.根據(jù)權(quán)利要求4所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟3)中根據(jù)最差端角下的輸入跳變時間和負載電容計算單個緩沖器的延時的詳細步驟如下:根據(jù)最差端角下的輸入跳變時間和負載電容查找時序庫文件表,判斷是否命中延時值,如果命中延時值則直接輸出命中的延時值;否則,獲取時序庫文件表中與命中點相鄰的四個表中給定延時值,根據(jù)所述命中點相鄰的四個表中給定延時值采用線性插值法計算得到命中點的延時值并輸出。
6.根據(jù)權(quán)利要求1?5中任意一項所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟3)中增大所述目標延時具體是指將所述目標延時增加0.1倍。
7.根據(jù)權(quán)利要求6所述的降低不同端角下緩沖器鏈延時變化的方法,其特征在于:所述步驟5)中的指定范圍具體是目標緩沖器鏈的延時變化率的I?1.1倍。
【文檔編號】G06F17/50GK103617321SQ201310615670
【公開日】2014年3月5日 申請日期:2013年11月27日 優(yōu)先權(quán)日:2013年11月27日
【發(fā)明者】樂大珩, 莫凡, 趙振宇, 竇強, 馬卓, 何小威, 馬馳遠, 馮超超, 余金山 申請人:中國人民解放軍國防科學技術(shù)大學