專利名稱:緩沖器的插入方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路制造和設(shè)計(jì)領(lǐng)域,具體而言,涉及一種緩沖器的插入方法及
>J-U ρ α裝直。
背景技術(shù):
時(shí)序邏輯是數(shù)字電路設(shè)計(jì)中的重要組成部分。而保持時(shí)間(hold time)是指數(shù)據(jù)穩(wěn)定后保持的時(shí)間,如果保持時(shí)間無法滿足預(yù)設(shè)條件,那么數(shù)據(jù)就不能被穩(wěn)定的輸入觸發(fā)器。當(dāng)發(fā)生保持時(shí)間違例時(shí),數(shù)字電路設(shè)計(jì)的功能就不能正確地實(shí)現(xiàn)。因此,修復(fù)保持時(shí)間違例是數(shù)字電路設(shè)計(jì)中一項(xiàng)必要且非常重要的工作。工藝、電壓和溫度是影響電路性能的三個(gè)基本因素,但是,在研究過程中不可能窮盡其所有組合來分析電路行為。相關(guān)技術(shù)中,在簽核(signoff)階段通常采用抽樣分析的方法,考慮上述三者的極端情況組合,來保證設(shè)計(jì)在整個(gè)組合空間中都能正常工作。在進(jìn)入納米工藝后,此種抽樣分析方法受到了很大的挑戰(zhàn),最主要的問題就在于采樣點(diǎn)數(shù)目急劇膨脹。由于隨著晶體管尺寸的不斷變小,時(shí)序路徑延遲由之前的器件延遲占主導(dǎo)地位變?yōu)橛删€延遲占主導(dǎo)地位。在計(jì)算線延遲時(shí),電阻電容的提取方式對(duì)靜態(tài)時(shí)序分析非常重要?,F(xiàn)代數(shù)字電路要保證能在各種極端環(huán)境下正常工作,而且在各種環(huán)境下的頻率要求不盡相同,因此,物理設(shè)計(jì)中考慮工作、電壓和溫度要比以前多很多。為了滿足數(shù)字電路高性能要求的同時(shí)也要考慮低功耗,因此數(shù)字電路存在著多個(gè)工作模式,例如:在正常工作模式下,數(shù)字電路運(yùn)行在較高頻率下,此時(shí)數(shù)字電路功耗較大,當(dāng)數(shù)字電路處于休眠模式時(shí),數(shù)字電路運(yùn) 行在較低頻率下,此時(shí)數(shù)字電路功耗較低。如此,可以將數(shù)字電路以某種工作模式運(yùn)行在某個(gè)工藝角下定義為數(shù)字電路的一種時(shí)序分析模式(scenario)。當(dāng)數(shù)字電路有ml種工作電壓、m2種工作溫度、m3種提取電容電阻的模式、m4種工作模式時(shí),數(shù)字電路總的scenario數(shù)量就有ml*m2*m3*m4種。隨著工藝技術(shù)的改進(jìn),為了保證數(shù)字電路時(shí)序分析的精度,工作電壓種類、工作溫度種類、電阻電容提取模式種類、數(shù)字電路工作模式種類都會(huì)發(fā)生增長,數(shù)字電路的時(shí)序分析模式會(huì)呈指數(shù)級(jí)增長的趨勢(shì)。所以要在越來越多的時(shí)序分析模型下修復(fù)保持時(shí)間違例對(duì)于設(shè)計(jì)者而言將是巨大的挑戰(zhàn)。相關(guān)技術(shù)中,修復(fù)保持時(shí)間違例的較為有效的方法是在出現(xiàn)保持時(shí)間違例的時(shí)序路徑上插入適量的緩沖器。但現(xiàn)有的修復(fù)保持時(shí)間違例的方法均忽略了多工藝角多模式的條件,插入緩沖器過多對(duì)原有的設(shè)計(jì)改變太大,存在著迭代次數(shù)過多、時(shí)間過長的缺陷。下面對(duì)相關(guān)技術(shù)中的幾種常用的修復(fù)保持時(shí)間違例的技術(shù)方案分別進(jìn)行介紹。技術(shù)方案一、該發(fā)明首先通過電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation,簡稱為EDA)工具的report timing命令得到保持時(shí)間違反的路徑;其次采用reporttiming命令得到路徑中建立時(shí)間較為富裕的點(diǎn);然后根據(jù)前后級(jí)器件的驅(qū)動(dòng)大小來選擇插入緩沖器的類型,插入緩沖器后再通過import timing命令判斷建立時(shí)間是否違反,保持時(shí)間是否修復(fù);最后通過EDA工具將路徑上其他的器件加以固定,通過ixnite eco命令來進(jìn)行布線。
該技術(shù)方案的缺陷在于以下幾點(diǎn):(I)該發(fā)明沒有考慮到多工藝角多模式情況下修復(fù)保持時(shí)間違例;(2)該發(fā)明大量地使用了 EDA工具中的命令來計(jì)算時(shí)序,這在超大規(guī)模集成電路設(shè)計(jì)中使得修復(fù)保持時(shí)間變得很慢;(3)該發(fā)明在修復(fù)保持時(shí)間違例時(shí)只考慮單條時(shí)序路徑,沒有全局考慮到集成電路中時(shí)序路徑的相互影響,這樣使得修復(fù)的點(diǎn)過多,插入的緩沖器數(shù)量過多,以致對(duì)原來的設(shè)計(jì)產(chǎn)生了巨大的影響。技術(shù)方案二、該發(fā)明通過建立松弛和保持松弛的約束條件來得到保持時(shí)間違反的路徑和路徑中可以修復(fù)的點(diǎn);然后在不違反建立時(shí)間約束的條件下插入合適的延遲器件。該技術(shù)方案的缺陷在于以下幾點(diǎn):(I)該發(fā)明沒有考慮到多工藝角多模式情況下修復(fù)保持時(shí)間違例;(2)該發(fā)明沒有考慮到修復(fù)保持時(shí)間的快速性,在現(xiàn)有超大規(guī)模集成電路設(shè)計(jì)中,時(shí)序路徑數(shù)量都是千萬數(shù)量級(jí)的,根據(jù)每條時(shí)序路徑的時(shí)序約束來確定方案所花費(fèi)的時(shí)間非常長;(3)該發(fā)明在修復(fù)保持時(shí)間違例時(shí)只考慮單條時(shí)序路徑,而沒有全局考慮到集成電路中時(shí)序路徑的相互影響,這樣使得修復(fù)的點(diǎn)過多,插入的緩沖器數(shù)量過多,以致對(duì)原有設(shè)計(jì)產(chǎn)生了巨大的影響。技術(shù)方案三、該發(fā)明首先將存在著保持時(shí)間違例的路徑分成各個(gè)線段,建立起線段與路徑間的關(guān)系,為每個(gè)線段計(jì)算出通過線段的路徑數(shù);然后根據(jù)通過每個(gè)線段的路徑數(shù)目來為每個(gè)線段進(jìn)行排序;再次選出排序第一的線段來判斷是否存在著修復(fù)保持時(shí)間的建立時(shí)間余量,若存在則插入緩沖器來修復(fù)保持時(shí)間違例;若不存在則將該線段舍棄,重新對(duì)線段進(jìn)行排序。該技術(shù)方案的缺陷在于以下幾點(diǎn):(I)該發(fā)明沒有考慮到多工藝角多模式情況下修復(fù)保持時(shí)間違例;(2)該發(fā)明在選擇線段來修復(fù)保持時(shí)間違例的時(shí)候只考慮到了該線段所影響到的路徑的數(shù)目,沒有考慮到該線段的保持時(shí)間的松弛(slack)的大小,這會(huì)發(fā)生保持時(shí)間最大的松弛(slack)的路徑?jīng)]有被修復(fù)下去的情況。技術(shù)方案四、該發(fā)明首先從TIMING ANALYSIS TOOLS得到時(shí)序結(jié)果,然后為每個(gè)要插入的buffer按照load的范圍提供一個(gè)大概的延遲值;然后從存在保持時(shí)間違例的路徑的尾端開始從后往前找,在分叉點(diǎn)處根據(jù)負(fù)載(load)的值、建立時(shí)間和保持時(shí)間來選擇合適的緩沖器插入。該技術(shù)方案的缺陷在于以下幾點(diǎn):(I)該發(fā)明沒有考慮到多工藝角多模式情況下修復(fù)保持時(shí)間違例;(2)該發(fā)明緩沖器的延遲值只是給出幾個(gè)區(qū)域內(nèi)估算的范圍值,并沒有根據(jù)實(shí)質(zhì)情況的電容和上下沿變化時(shí)間來決定延遲值,所以在選擇插入的緩沖器類型時(shí),其選擇并不是最優(yōu)的;(3)在插入的緩沖器的點(diǎn)的考慮上,僅考慮到插入緩沖器對(duì)其他路徑的影響盡量小,這樣使得插入點(diǎn)的數(shù)量過多,對(duì)原有的設(shè)計(jì)改變過多。技術(shù)方案五、該發(fā)明僅提到了讀入多工藝角多模式下的鏡像來得到整個(gè)設(shè)計(jì)的內(nèi)容,讀入多工藝角多模式的數(shù)據(jù)庫信息來得到整個(gè)設(shè)計(jì)的約束文件,然后即可得出技術(shù)更改指令(Engineering Change Orders,簡稱為 ECO)的結(jié)果。該技術(shù)方案的缺陷在于以下幾點(diǎn):( I)該發(fā)明中僅提到了需要導(dǎo)入設(shè)計(jì)內(nèi)容和設(shè)計(jì)的約束文件,這兩個(gè)條件概括范圍較為寬泛,基本包含了后端設(shè)計(jì)的全部內(nèi)容,而沒有指出該發(fā)明具體需要的信息;(2)該發(fā)明最終結(jié)果是得出ECO的結(jié)果,而無法體現(xiàn)迭代次數(shù)少、插入緩沖器數(shù)量少的優(yōu)勢(shì)。
發(fā)明內(nèi)容
本發(fā)明提供了一種緩沖器的插入方法及裝置,以至少解決相關(guān)技術(shù)中通過插入緩沖器來修復(fù)保持時(shí)間違例的方法易造成迭代次數(shù)過多、修復(fù)時(shí)間過長的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種緩沖器的插入方法。根據(jù)本發(fā)明的緩沖器的插入方法包括:獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,連接關(guān)系包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口包括:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,確定總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端口。優(yōu)選地,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口包括:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,并將獲取到的與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口包括:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口 ;判斷得到的一個(gè)或多個(gè)端口是否在同一條連接路徑上;如果是,則根據(jù)在同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定待插入緩沖器的一個(gè)或多個(gè)端口。
優(yōu)選地,從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值包括:對(duì)每個(gè)輸入端口的權(quán)重值進(jìn)行初始化,并從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在該時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大??;如果相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值,則增加后一個(gè)端口的權(quán)重值;統(tǒng)計(jì)連接關(guān)系的各個(gè)端口中每個(gè)端口在各種時(shí)序分析模型下權(quán)重值的總和,并將權(quán)重值總和最大的一個(gè)或多個(gè)端口確定為待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,在確定待插入緩沖器的一個(gè)或多個(gè)端口之后,還包括:獲取當(dāng)前待使用的緩沖器的類型;根據(jù)同種類型或多種不同類型緩沖器所形成的緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量,其中,同種類型或多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。優(yōu)選地,在根據(jù)每種緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量之后,還包括:根據(jù)待插入緩沖器的類型、待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算待插入緩沖器自身的延遲以及與待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化;采用計(jì)算結(jié)果更新待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口的連接路徑的權(quán)重。根據(jù)本發(fā)明的另一方面,提供了 一種緩沖器的插入裝置。根據(jù)本發(fā)明的緩沖器的插入裝置包括:第一獲取模塊,用于獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,連接關(guān)系包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;選取模塊,用于在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。 優(yōu)選地,選取模塊包括:計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;確定單元,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,確定總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端□。優(yōu)選地,選取模塊包括:計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;選取單元,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取單元,用于獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;第一比較單元,用于比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;確定單元,用于將獲取到的與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為待插入緩沖器的一個(gè)或多個(gè)端□。優(yōu)選地,選取模塊包括:計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;選取單元,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取單元,用于獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;第二比較單元,用于比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口 ;判斷單元,用于判斷得到的一個(gè)或多個(gè)端口是否在同一條連接路徑上;確定單元,用于在判斷單元輸出為是時(shí),則根據(jù)在同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,計(jì)算單元包括:比較子單元,用于對(duì)每個(gè)輸入端口的保持時(shí)間松弛的參數(shù)值進(jìn)行初始化,并從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大?。惶幚碜訂卧?,用于在相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值時(shí),則增加后一個(gè)端口的權(quán)重值。優(yōu)選地,上述裝置還包括:第二獲取模塊,用于獲取當(dāng)前待使用的緩沖器的類型;確定模塊,用于根據(jù)同種類型或多種不同類型緩沖器所形成的緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量,其中,同種類型或多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。優(yōu)選地,上述裝置還包括:計(jì)算模塊,用于根據(jù)待插入緩沖器的類型、待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算待插入緩沖器自身的延遲以及與待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化;更新模塊,用于采用計(jì)算結(jié)果更新待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口的連接路徑的權(quán)重。通過本發(fā)明,采用獲取當(dāng)前集成電路中不同器件的端口之間的連接關(guān)系,連接關(guān)系包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口,即從所有時(shí)序分析模型的角度對(duì)連接關(guān)系中的各條連接路徑進(jìn)行綜合分析,在考慮多種時(shí)序分析模型的時(shí)序約束的情況下,從整個(gè)連接關(guān)系的全局上確定待插入緩沖器的一個(gè)或多個(gè)端口,由此解決了相關(guān)技術(shù)中通過插入緩沖器來修復(fù)保持時(shí)間違例的方法易造成迭代次數(shù)過多、修復(fù)時(shí)間過長的問題,進(jìn)而降低了通過插入緩沖器來修復(fù)保持時(shí)間違例的迭代次數(shù)和修復(fù)時(shí)間。
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:圖1是根據(jù)本發(fā)明實(shí)施例的緩沖器的插入方法的流程圖;圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的緩沖器的插入方法的流程圖;圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的以器件的端口為點(diǎn)、器件端口之間的連接關(guān)系為線的示意圖4a是根據(jù)本發(fā)明優(yōu)選實(shí)施例的初始情況下各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖;圖4b是根據(jù)本發(fā)明優(yōu)選實(shí)施例的從A點(diǎn)開始追溯后各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖;圖4c是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在圖4b的基礎(chǔ)上從B點(diǎn)開始追溯后各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖;圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例中為選擇緩沖器的類型所采用的分支優(yōu)化方法的示意圖;圖6是根據(jù)本發(fā)明實(shí)施例的緩沖器的插入裝置的結(jié)構(gòu)框圖;圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的緩沖器的插入裝置的結(jié)構(gòu)框圖。
具體實(shí)施例方式下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1是根據(jù)本發(fā)明實(shí)施例的緩沖器的插入方法的流程圖。如圖1所示,該方法可以包括以下處理步驟:步驟S102:獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,連接關(guān)系包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;步驟S104:在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。相關(guān)技術(shù)中,在大規(guī)模數(shù)字電路設(shè)計(jì)過程中,修復(fù)保持時(shí)間違例的有效方法是插入緩沖器。但現(xiàn)有的通過插入緩沖器來修復(fù)保持時(shí)間違例的方法并沒有考慮到多工藝角多模式(即多種時(shí)序分析模型)的因素,缺乏從所有時(shí)序分析模式對(duì)時(shí)序路徑的能力進(jìn)行有層次地分析,只是獨(dú)立地在各個(gè)時(shí)序分析模式下分析時(shí)序路徑,然后盲目地選擇修復(fù)點(diǎn)插入緩沖器,由此在其他時(shí)序分析模式下造成新的建立時(shí)間或保持時(shí)間的違例,即乒乓效應(yīng)。從而導(dǎo)致在修復(fù)保持時(shí)間違例時(shí)迭代次數(shù)過多、修復(fù)時(shí)間過長。采用如圖1所示的方法,獲取當(dāng)前集成電路中各個(gè)器件相互間端口之間的連接關(guān)系,上述連接關(guān)系可以包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口,即從所有時(shí)序分析模型的角度對(duì)連接關(guān)系中的各條連接路徑進(jìn)行綜合分析,在考慮各種時(shí)序分析模型的時(shí)序約束的情況下,從整個(gè)連接關(guān)系的全局上確定待插入緩沖器的一個(gè)或多個(gè)端口,從而避免由于僅考慮一種時(shí)序分析模型或只考慮單條時(shí)序路徑而盲目地選擇修復(fù)點(diǎn)插入緩沖器而使得在其他時(shí)序分析模式下造成新的建立時(shí)間或保持時(shí)間的違例,由此解決了相關(guān)技術(shù)中通過插入緩沖器來修復(fù)保持時(shí)間違例的方法易造成迭代次數(shù)過多、修復(fù)時(shí)間過長的問題,進(jìn)而降低了通過插入緩沖器來修復(fù)保持時(shí)間違例的迭代次數(shù)和修復(fù)時(shí)間。優(yōu)選地,在步驟S104中,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口可以包括以下處理:步驟S1:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算連接關(guān)系的各個(gè)端口中每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;步驟S2:獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,確定總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端口。在優(yōu)選實(shí)施例中,在特定的時(shí)序分析模型下,沿著每條連接路徑的輸入端至輸出端的方向上,從輸入端口開始依次比較相鄰兩個(gè)端口的保持時(shí)間松弛的參數(shù)值。在每對(duì)相鄰端口之間進(jìn)行比較,如果靠近輸入端口的前一端口的保持時(shí)間松弛的參數(shù)值大于或者等于遠(yuǎn)離輸入端口的后一端口的保持時(shí)間松弛的參數(shù)值,則需要增加后一端口的權(quán)重值。以此類推計(jì)算每條連接路徑上各個(gè)端口的權(quán)重值,進(jìn)而得出在每種時(shí)序分析模型下的連接關(guān)系中的各個(gè)端口的權(quán)重值,最終統(tǒng)計(jì)連接關(guān)系中的各個(gè)端口中的每個(gè)端口在各種時(shí)序分析模型下權(quán)重值的總和,以確定待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,在步驟S104中,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口可以包括以下操作:步驟S3:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;步驟S4:獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口;步驟S5:獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;步驟S6:比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,并將獲取到的與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為待插入緩沖器的一個(gè)或多個(gè)端口。在優(yōu)選實(shí)施例中,按照上述統(tǒng)計(jì)結(jié)果可知,權(quán)重值最大的多個(gè)端口分別為端口 A、B、D ;假設(shè)經(jīng)過計(jì)算,端口 A、B、D在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的最小值分別為:_5、_6、-6 ;經(jīng)過比較可以得出,保持時(shí)間松弛的參數(shù)值最小的多個(gè)端口分別為端Π B、D。優(yōu)選地,在步驟S104中,在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口可以包括以下處理步驟:步驟S7:從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值;步驟S8:獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口;步驟S9:獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;步驟SlO:比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口;
步驟Sll:判斷得到的一個(gè)或多個(gè)端口是否在同一條連接路徑上;步驟S12:如果是,則根據(jù)在同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定待插入緩沖器的一個(gè)或多個(gè)端口。在優(yōu)選實(shí)施例中,除了要考慮每個(gè)端口的權(quán)重值以及保持時(shí)間松弛的參數(shù)值,還需要考慮各個(gè)端口在連接路徑上的位置關(guān)系。優(yōu)選地,上述從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口的在該時(shí)序分析模型下的權(quán)重值可以包括以下步驟:步驟S13:對(duì)每個(gè)輸入端口的權(quán)重值進(jìn)行初始化,并從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在該時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大小;步驟S14:如果上述相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值,則增加后一個(gè)端口的權(quán)重值;在優(yōu)選實(shí)施例中,假設(shè)當(dāng)前有輸入端口 A,輸出端口 D,而在端口 A與端口 D之間的連接路徑上存在端口 B和端口 C,已知端口 A、B、C、D的權(quán)重值均為0,而保持時(shí)間松弛的參數(shù)值依次為:_5、-5、-3、-5。先將端口 A的權(quán)重值初始化為1,從端口 A出發(fā)沿端口 A與端口 D之間的連接路徑開始追溯;由于端口 A的保持時(shí)間松弛的參數(shù)值與端口 B的保持時(shí)間松弛的參數(shù)值相等,因此,端口 B的權(quán)重值=0+1=1 ;由于端口 B的保持時(shí)間松弛的參數(shù)值小于端口 C的保持時(shí)間松弛的參數(shù)值,因此,端口 C的權(quán)重值保持不變;由于端口 C的保持時(shí)間松弛的參數(shù)值大于端口 D的保持時(shí)間松弛的參數(shù)值,因此,端口 D的權(quán)重值=0+1=1。經(jīng)過統(tǒng)計(jì),端口 A、B、C、D的權(quán)重值依次為1、1、0、1。上述過程僅是本發(fā)明所提供的技術(shù)方案的連接關(guān)系中一條連接路徑的各個(gè)端口的權(quán)重值的統(tǒng)計(jì)結(jié)果,而其他連接路徑上各個(gè)端口的權(quán)重值的統(tǒng)計(jì)結(jié)果與此相似,此處不再贅述。優(yōu)選地,在步驟S104,確定待插入緩沖器的一個(gè)或多個(gè)端口之后,還可以包括以下操作:步驟S15:獲取當(dāng)前待使用的緩沖器的類型;步驟S16:根據(jù)同種類型或多種不同類型緩沖器所形成的緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量,其中,同種類型或多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。在優(yōu)選實(shí)施例中,可以采用分支優(yōu)化的方法確定待插入緩沖器的類型和數(shù)量。例如,在確定第k級(jí)緩沖器的類型時(shí),先為每種備選的緩沖器類型(即當(dāng)前待使用的緩沖器的類型)設(shè)立一個(gè)分支,然后在每個(gè)分支再插入第k+Ι級(jí)每種緩沖器,根據(jù)第k級(jí)緩沖器類型和第k+Ι級(jí)緩沖器類型得到每個(gè)分支的最優(yōu)代價(jià)值,該最優(yōu)代價(jià)值即在滿足修復(fù)保持時(shí)間違例的前提下,使得第k級(jí)緩沖器類型和第k+Ι級(jí)緩沖器類型組合的面積最小(此時(shí)第k級(jí)緩沖器類型和第k+Ι級(jí)緩沖器類型可能是相同的,也可能是不同的),從而確定第k級(jí)和第k+Ι級(jí)緩沖器的類型,并且由于當(dāng)前存在第k級(jí)和第k+Ι級(jí),由此可以確定待插入緩沖器的數(shù)量為2個(gè),其中,每一級(jí)對(duì)應(yīng)一個(gè)端口,有多少級(jí)就意味著要插入多少個(gè)緩沖器,可以根據(jù)不同需要場(chǎng)景,確定插入緩沖器的數(shù)量。優(yōu)選地,在步驟S16,根據(jù)每種緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量之后,還可以包括以下步驟:
步驟S17:根據(jù)待插入緩沖器的類型、待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算待插入緩沖器自身的延遲以及與待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化;步驟S18:采用計(jì)算結(jié)果更新待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口的連接路徑的權(quán)重。本發(fā)明所提供的技術(shù)方案充分考慮到多工藝角多模式下的時(shí)序約束,并且從全局上考慮緩沖器的插入點(diǎn),使得在一處地方插入緩沖器便可解決多條具有保持時(shí)間違例的路徑;在對(duì)緩沖器的類型進(jìn)行選擇時(shí),能夠不借助自動(dòng)設(shè)計(jì)(EDA)工具來較為精確地計(jì)算出緩沖器的延遲,如此便能快速地不用保留余量來修復(fù)保持時(shí)間違例,并且考慮到插入緩沖器對(duì)一些擁塞設(shè)計(jì)的影響,在保證能修復(fù)保持時(shí)間違例的同時(shí),選擇面積最小的緩沖器組合;插入緩沖器后不需要通過EDA工具進(jìn)行時(shí)序上的更新即可進(jìn)行下一輪的修復(fù),從而可以通過靜態(tài)時(shí)序分析模型的計(jì)算來更新受到影響的路徑的時(shí)序,然后再進(jìn)行下一輪修復(fù),以便減少修復(fù)保持時(shí)間違例的時(shí)間。圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的緩沖器的插入方法的流程圖。如圖2所示,該方法可以包括以下處理步驟:步驟S202:從設(shè)計(jì)的簽核時(shí)序報(bào)告中提取信息;提取信息是指從設(shè)計(jì)的簽核時(shí)序報(bào)告中提取出一些設(shè)計(jì)必要的信息,來保證在不違反設(shè)計(jì)規(guī)則的前提下修復(fù)保持時(shí)間違例。在該優(yōu)選實(shí)施例中,需要提取的信息可以包括但不限于以下至少之一:屬性不可改變的線和器件,設(shè)計(jì)中每個(gè)器件端口(pin)上的建立時(shí)間松弛(setup timing slack)、保持時(shí)間松弛(hold timing slack)、上升下降時(shí)間(transition)、電容(capacitance)將時(shí)鐘路徑與普通的時(shí)序路徑相分離。步驟S204:構(gòu)建邏輯連接關(guān)系;構(gòu)造設(shè)計(jì)的邏輯連接關(guān)系是指為了構(gòu)建設(shè)計(jì)的器件之間的連接關(guān)系圖,對(duì)后面步驟的緩沖器的插入和時(shí)序的更新起到重要作用。構(gòu)造設(shè)計(jì)的邏輯連接關(guān)系可以有多種實(shí)現(xiàn)方式,既可以以器件為點(diǎn)、器件之間的連接關(guān)系為線,也可以以器件的端口為點(diǎn)、器件端口之間的連接關(guān)系為線。在該優(yōu)選實(shí)施例中,圖3是根據(jù)本發(fā)明優(yōu)選實(shí)施例的以器件的端口為點(diǎn)、器件端口之間的連接關(guān)系為線的示意圖。具體過程如下:從觸發(fā)器(register)的D端(即輸入端口)或者輸出端口(output port)觸發(fā)跟蹤器件的連接關(guān)系,直到觸發(fā)器的輸出端或者輸入端口(input port)終止,形成一個(gè)電路的關(guān)系圖G= (V, E), V代表設(shè)計(jì)中的pin或者port, E代表(端口 u,端口 V)或者(端口 j,端口 k)所構(gòu)成的邊。實(shí)線(u, V)表示端口 u和端口 V之間存在的連接關(guān)系為器件之間的連接關(guān)系,虛線(j,k)表示端口 j和端口 k之間存在的連接關(guān)系為器件內(nèi)部的連接關(guān)系;如圖3所示,A、B、E為同一個(gè)器件的3個(gè)端口,在該器件內(nèi)部存在著以下連接關(guān)系:(A,E)和(B、E),即A和E之間存在連接關(guān)系,B和E之間也存在連接關(guān)系,由于上述(A,E)和(B、E)均為器件內(nèi)部的連接,因此,可以采用虛線加以表示。同理,E、F、G、I分別為同一個(gè)器件的4個(gè)端口,在該器件內(nèi)部存在著以下連接關(guān)系:(H, 1)、斤、1)和(6,I),即H、F、G分別與I相連接,由于上述(H,1)、斤、1)和(6,I)均為器件內(nèi)部的連接,因此,同樣可以采用虛線加以表示。而E和H、C和F以及D和G彼此之間均為不同器件的端口,因此,(E, H)、(C,F(xiàn))和(D、G)均采用實(shí)線加以表示,說明上述連接關(guān)系為器件之間的連接關(guān)系。緩沖器只能在實(shí)線處加入。步驟S206:確定插入緩沖器的點(diǎn)(即待插入緩沖器的端口);確定插入緩沖器的點(diǎn)是為了在設(shè)計(jì)的眾多點(diǎn)中選出關(guān)鍵點(diǎn)插入緩沖器來解決保持時(shí)間違例的問題。在上述眾多點(diǎn)中,可以通過點(diǎn)的保持時(shí)間約束松弛、建立時(shí)間約束松弛、該點(diǎn)連接拓?fù)浣Y(jié)構(gòu)、該點(diǎn)所影響到的路徑數(shù)、該點(diǎn)所影響到的器件數(shù)目等方面來決定點(diǎn)的關(guān)鍵程度,其中,可以通過該點(diǎn)所影響的路徑數(shù)目、保持時(shí)間約束松弛、建立時(shí)間約束松弛、該點(diǎn)的偏序關(guān)系等方法來確定點(diǎn)的關(guān)鍵性。為了全面地考慮點(diǎn)的關(guān)鍵性,可以綜合考慮通過該點(diǎn)的路徑權(quán)重、點(diǎn)的最差保持時(shí)間松弛以及點(diǎn)的偏序關(guān)系。在確定點(diǎn)所影響的路徑數(shù)目時(shí)可以采用以下方法:當(dāng)存在(u,v)實(shí)線時(shí),SL(U)和SL(V)分別為u、v兩點(diǎn)的保持時(shí)間松弛。假設(shè)在V點(diǎn)插入緩沖器增加延遲k,將會(huì)出現(xiàn)以下三種情況:情況一、當(dāng)SL(U)彡SL(V)時(shí),SL(U)將增加延遲k,此時(shí)說明V點(diǎn)對(duì)u點(diǎn)的延遲起主導(dǎo)作用;情況二、當(dāng)SL (V)-k〈SL (u)〈SL (V)時(shí),SL(U)增加的延遲值為 SL (u)-SL (v)+k,此時(shí)說明V點(diǎn)對(duì)U點(diǎn)延遲 起半主導(dǎo)作用;情況三、當(dāng)SL (u) <SL (V) -k時(shí),SL (U)延遲值將不會(huì)發(fā)生變化,此時(shí)說明V點(diǎn)對(duì)u點(diǎn)延遲不起主導(dǎo)作用。要使插入的緩沖器的數(shù)量最少,就需要在對(duì)路徑的延遲起主導(dǎo)作用的點(diǎn)上插入緩沖器即情況一下在V點(diǎn)插入緩沖器,其效果為最佳。步驟S208:計(jì)算各個(gè)點(diǎn)的路徑權(quán)重(即權(quán)重值),即計(jì)算各個(gè)點(diǎn)中的每個(gè)點(diǎn)在每種scenario下對(duì)路徑延遲起主導(dǎo)作用的保持時(shí)間松弛為負(fù)的路徑數(shù)目的總和;其方法在于將所有的V的weight (V)設(shè)為0,然后從一個(gè)保持時(shí)間松弛為負(fù)的觸發(fā)器的輸入pin出發(fā)并將該點(diǎn)的weight設(shè)為1,通過G (V,E)的連接關(guān)系圖向前追溯,當(dāng)遇到一個(gè)V時(shí),比較前一個(gè)點(diǎn) u 的 SL,當(dāng) SL(U)彡 SL (V) B^JlJweight(v)=weight(v)+weight(u)。圖 4a 是根據(jù)本發(fā)明優(yōu)選實(shí)施例的初始情況下各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖。如圖4a所示,A、B為觸發(fā)器的輸入pin,C、D、E為邏輯器件的pin,圖中數(shù)字所代表的含義為保持時(shí)間松弛/權(quán)重(SL/weight)。圖4b是根據(jù)本發(fā)明優(yōu)選實(shí)施例的從A點(diǎn)開始追溯后各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖。如圖4b所示,開始時(shí)所有的pin的weight初始化為O,從A出發(fā)開始追溯,weight(A)為 1,由于 SL (A)彡 SL (C),因此 weight (C) =0+1=1 ;又因?yàn)?SL(C) ^ SL (D),所以weight (D) =0+1=1 ;而由于SL (C) <SL (E),因此weight (E) =0。同理,圖4c是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在圖4b的基礎(chǔ)上從B點(diǎn)開始追溯后各個(gè)點(diǎn)的保持時(shí)間松弛/權(quán)重的示意圖。如圖4c所示,從B點(diǎn)開始追溯,即可得到圖4c中的結(jié)果。步驟S210:選取權(quán)重總和最大的點(diǎn);在確定插入緩沖器的點(diǎn)時(shí),除了主要考慮通過該點(diǎn)的路徑權(quán)重的同時(shí),還需要考慮到該點(diǎn)的最差保持時(shí)間松弛以及該點(diǎn)的偏序關(guān)系。最差保持時(shí)間松弛是指全部時(shí)序分析模型中最差保持時(shí)間松弛;偏序關(guān)系是在上述遍歷過程中所形成的順序關(guān)系。在確定優(yōu)先級(jí)最高的點(diǎn)(即待插入緩沖器的端口)時(shí),考慮的因素:首先是比較點(diǎn)的路徑權(quán)重一然后是比較點(diǎn)的最差保持時(shí)間松弛的值一最后是比較點(diǎn)的偏序關(guān)系。步驟S212:選擇合適的緩沖器;
選擇緩沖器的類型需要在某個(gè)插入點(diǎn)根據(jù)實(shí)質(zhì)的上升下降時(shí)間和電容在不違反建立時(shí)間松弛的條件下來決定緩沖器的插入類型以修復(fù)保持時(shí)間違例。由于存在多種時(shí)序分析模型,而每種時(shí)序分析模型的保持時(shí)間松弛、建立時(shí)間松弛、上升下降時(shí)間以及電容都不盡相同,并且可以選擇的緩沖器類型又較多,由此可見,選擇緩沖器類型的策略好壞直接決定了是否能夠快速地修復(fù)保持時(shí)間違例。在該優(yōu)選實(shí)施例中,記錄了每個(gè)點(diǎn)的保持時(shí)間松弛、建立時(shí)間松弛、上升下降時(shí)間以及電容,再根據(jù)單元庫(library)里的時(shí)序信息來計(jì)算出在各個(gè)時(shí)序分析模型中緩沖器本身的延遲和插入點(diǎn)前一級(jí)與后一級(jí)的延遲變化情況,這樣就可以得到整條路徑的時(shí)序變化情況,以確定插入緩沖器能否在保證不違反各個(gè)時(shí)序分析模型的建立時(shí)間的前提下修復(fù)各個(gè)時(shí)序分析模型的保持時(shí)間。在選擇緩沖器的類型時(shí)可以采取遍歷所有緩沖器的方法,當(dāng)尋找到一個(gè)能夠解決問題的緩沖器即可退出或者采用人工智能的方法。鑒于選擇緩沖器所用到的時(shí)間和緩沖器的面積,該優(yōu)選實(shí)施例中所采用的方法為:若單個(gè)緩沖器無法實(shí)現(xiàn)目標(biāo)時(shí),采用分支優(yōu)化的方法來決定緩沖器的類型,其分支優(yōu)化的方法為:在確定第k級(jí)緩沖器的類型時(shí),先為每種緩沖器類型設(shè)立一個(gè)分支,然后每個(gè)分支再插入第k+Ι級(jí)每種緩沖器,根據(jù)第k級(jí)緩沖器類型和第k+Ι級(jí)緩沖器類型得到每個(gè)分支的最優(yōu)代價(jià)值,該最優(yōu)代價(jià)值在滿足修復(fù)保持時(shí)間違例的前提下,使得第k級(jí)緩沖器類型和第k+Ι級(jí)緩沖器類型組合的面積最小,最后根據(jù)每個(gè)分支的最優(yōu)代價(jià)值來確定第k級(jí)緩沖器的類型。圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例中為選擇緩沖器的類型所采用的分支優(yōu)化方法的示意圖。如圖5所示,假設(shè)緩沖器的類型共有16種,分別從Xl到X16。在確定第K級(jí)緩沖器時(shí),為每個(gè)緩沖器設(shè)一個(gè)分支,每個(gè)分支后面再插入上述從Xl到X16的16種緩沖器,然后根據(jù)第K級(jí)和第K+ 1級(jí)的緩沖器類型計(jì)算出每個(gè)分支的代價(jià)值,假設(shè)Xl分支的代價(jià)值為16,…,X16分支的代價(jià)值為50,最后從中選取代價(jià)值最高的分支,即第K級(jí)緩沖器的類型為X16,并刪除其他分支。步驟S214:更新時(shí)序路徑影響;更新緩沖器加入后對(duì)時(shí)序路徑的影響是指在某一處即將插入緩沖器但在實(shí)際的設(shè)計(jì)過程中還沒有真實(shí)地插入時(shí),對(duì)受到影響的路徑在各個(gè)時(shí)序分析模型下的時(shí)序進(jìn)行更新,以進(jìn)行下一輪的修復(fù)。根據(jù)上述確定要插入緩沖器的類型、各個(gè)時(shí)序分析模型的上升下降時(shí)間、電容和library中的時(shí)序信息計(jì)算出各個(gè)時(shí)序分析模型中緩沖器本身的延遲和插入點(diǎn)前一級(jí)與后一級(jí)的延遲變化。最后更新受到影響的路徑中其他端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該點(diǎn)的路徑的權(quán)重。圖6是根據(jù)本發(fā)明實(shí)施例的緩沖器的插入裝置的結(jié)構(gòu)框圖。如圖6所示,該緩沖器的插入裝置可以包括:第一獲取模塊10,用于獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,連接關(guān)系包括:輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;選取模塊20,用于在多種時(shí)序分析模型下從所述連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。采用如圖6所示的裝置,解決了相關(guān)技術(shù)中通過插入緩沖器來修復(fù)保持時(shí)間違例的方法易造成迭代次數(shù)過多、修復(fù)時(shí)間過長的問題,進(jìn)而降低了通過插入緩沖器來修復(fù)保持時(shí)間違例的迭代次數(shù)和修復(fù)時(shí)間。優(yōu)選地,在本優(yōu)選實(shí)施例中,如圖7所示,選取模塊20可以包括:計(jì)算單元200,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;確定單元202,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和,確定總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端口。優(yōu)選地,在本優(yōu)選實(shí)施例中,如圖7所示,選取模塊20可以包括:計(jì)算單元200,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;選取單元204,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取單元206,用于獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;第一比較單元208,用于比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;確定單元202,還用于將獲取到的與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,在本優(yōu)選實(shí)施例中,如圖7所示,選取模塊20可以包括:計(jì)算單元200,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算每個(gè)端口在該時(shí)序分析模型下的權(quán)重值;選取單元204,用于獲取連接關(guān)系中每個(gè)端口在多種時(shí)序分析模型下的權(quán)重值的總和并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ;獲取單元206,用于獲取選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值;第二比較單元210,用于比較與選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口 ;判斷單元212,用于判斷得到的一個(gè)或多個(gè)端口是否在同一條連接路徑上;確定單元202,還用于在判斷單元輸出為是時(shí),則根據(jù)在同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定待插入緩沖器的一個(gè)或多個(gè)端口。優(yōu)選地,如圖7所示,計(jì)算單元200可以包括:比較子單元2000,用于對(duì)每個(gè)輸入端口的保持時(shí)間松弛的參數(shù)值進(jìn)行初始化,并從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大小;處理子單元2002,用于在相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值時(shí),則增加后一個(gè)端口的權(quán)重值。優(yōu)選地,如圖7所示,上述裝置還包括:第二獲取模塊30,用于獲取當(dāng)前待使用的緩沖器的類型;確定模塊40,用于根據(jù)同種類型或多種不同類型緩沖器所形成的緩沖器集合的面積確定待插入緩沖器的類型和數(shù)量,其中,同種類型或多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。優(yōu)選地,如圖7所示,上述裝置還包括:計(jì)算模塊50,用于根據(jù)待插入緩沖器的類型、待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算待插入緩沖器自身的延遲以及與待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化;更新模塊60,用于采用計(jì)算結(jié)果更新待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口的連接路徑的權(quán)重。
從以上的描述中,可以看出,上述實(shí)施例實(shí)現(xiàn)了如下技術(shù)效果(需要說明的是這些效果是某些優(yōu)選實(shí)施例可以達(dá)到的效果):本發(fā)明所提供的技術(shù)方案主要關(guān)注在數(shù)字電路設(shè)計(jì)過程中在多工藝角多模式下的保持時(shí)序修復(fù)問題,通過提取信息、構(gòu)造設(shè)計(jì)的邏輯連接關(guān)系、確定插入緩沖器的點(diǎn)、選擇緩沖器的類型并在插入點(diǎn)加入選出的緩沖器、更新緩沖器加入后對(duì)時(shí)序路徑的影響以使得整體設(shè)計(jì)在滿足多工藝角多模式的建立時(shí)間的情況下修復(fù)保持時(shí)間違例,從而具有迭代次數(shù)少、運(yùn)行時(shí)間短、對(duì)原有設(shè)計(jì)改變少的優(yōu)點(diǎn)。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種緩沖器的插入方法,其特征在于,包括: 獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,所述連接關(guān)系包括:輸入端口、輸出端口以及所述輸入端口與所述輸出端口之間的連接路徑; 在多種時(shí)序分析模型下從所述連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述多種時(shí)序分析模型下從所述連接關(guān)系中選取所述待插入緩沖器的一個(gè)或多個(gè)端口包括: 從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,確定所述總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端口。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述多種時(shí)序分析模型下從所述連接關(guān)系中選取所述待插入緩沖器的一個(gè)或多個(gè)端口包括: 從每個(gè)輸入端口開始依次比較每條 連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口; 獲取所述選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與所述選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 比較與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 將獲取到的與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為所述待插入緩沖器的一個(gè)或多個(gè)端口。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述多種時(shí)序分析模型下從所述連接關(guān)系中選取所述待插入緩沖器的一個(gè)或多個(gè)端口包括: 從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口; 獲取所述選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與所述選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 比較與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口; 判斷得到的所述一個(gè)或多個(gè)端口是否在同一條連接路徑上; 如果是,則根據(jù)在所述同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定所述待插入緩沖器的一個(gè)或多個(gè)端口。
5.根據(jù)權(quán)利要求2至4中任一項(xiàng)所述的方法,其特征在于,從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值包括: 對(duì)所述每個(gè)輸入端口的權(quán)重值進(jìn)行初始化,并從所述每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在該時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大小; 如果所述相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值,則增加所述后一個(gè)端口的權(quán)重值。
6.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,在確定所述待插入緩沖器的一個(gè)或多個(gè)端口之后,還包括: 獲取當(dāng)前待使用的緩沖器的類型; 根據(jù)同種類型或多種不同 類型緩沖器所形成的緩沖器集合的面積確定所述待插入緩沖器的類型和數(shù)量,其中,所述同種類型或所述多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,在根據(jù)每種緩沖器集合的面積確定所述待插入緩沖器的類型和數(shù)量之后,還包括: 根據(jù)所述待插入緩沖器的類型、所述待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算所述待插入緩沖器自身的延遲以及與所述待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化; 采用計(jì)算結(jié)果更新所述待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口的連接路徑的權(quán)重。
8.一種緩沖器的插入裝置,其特征在于,包括: 第一獲取模塊,用于獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,所述連接關(guān)系包括:輸入端口、輸出端口以及所述輸入端口與所述輸出端口之間的連接路徑; 選取模塊,用于在多種時(shí)序分析模型下從所述連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述選取模塊包括: 計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 確定單元,用于獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,確定所述總和最大的一個(gè)或多個(gè)端口為待插入緩沖器的端口。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述選取模塊包括: 計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 選取單元,用于獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ; 獲取單元,用于獲取所述選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與所述選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 第一比較單元,用于比較與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 確定單元,用于將獲取到的與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值中保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口確定為所述待插入緩沖器的一個(gè)或多個(gè)端口。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述選取模塊包括: 計(jì)算單元,用于從每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值,并根據(jù)比較結(jié)果來計(jì)算所述每個(gè)端口在該時(shí)序分析模型下的權(quán)重值; 選取單元,用于獲取所述連接關(guān)系中每個(gè)端口在所述多種時(shí)序分析模型下的權(quán)重值的總和,并選取權(quán)重值總和最大的一個(gè)或多個(gè)端口 ; 獲取單元,用于獲取所述選取的每個(gè)端口在多種時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值集合,并在與所述選取的每個(gè)端口對(duì)應(yīng)的參數(shù)值集合中獲取與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值; 第二比較單元,用于比較與所述選取的每個(gè)端口對(duì)應(yīng)的保持時(shí)間松弛的參數(shù)值的最小值,得到保持時(shí)間松弛的參數(shù)值最小的一個(gè)或多個(gè)端口 ; 判斷單元,用于判斷得到的所述一個(gè)或多個(gè)端口是否在同一條連接路徑上; 確定單元,用于在判斷單元輸出為是時(shí),則根據(jù)在所述同一條連接路徑上的一個(gè)或多個(gè)端口的位置關(guān)系確定所 述待插入緩沖器的一個(gè)或多個(gè)端口。
12.根據(jù)權(quán)利要求9至11中任一項(xiàng)所述的裝置,其特征在于,所述計(jì)算單元包括: 比較子單元,用于對(duì)所述每個(gè)輸入端口的保持時(shí)間松弛的參數(shù)值進(jìn)行初始化,并從所述每個(gè)輸入端口開始依次比較每條連接路徑中相鄰兩個(gè)端口在每個(gè)時(shí)序分析模型下的保持時(shí)間松弛的參數(shù)值的大小; 處理子單元,用于在所述相鄰兩個(gè)端口中的前一個(gè)端口的保持時(shí)間松弛的參數(shù)值大于或者等于后一個(gè)端口的保持時(shí)間松弛的參數(shù)值時(shí),則增加所述后一個(gè)端口的權(quán)重值。
13.根據(jù)權(quán)利要求8至11中任一項(xiàng)所述的裝置,其特征在于,所述裝置還包括: 第二獲取模塊,用于獲取當(dāng)前待使用的緩沖器的類型; 確定模塊,用于根據(jù)同種類型或多種不同類型緩沖器所形成的緩沖器集合的面積確定所述待插入緩沖器的類型和數(shù)量,其中,所述同種類型或所述多種不同類型緩沖器中的每個(gè)緩沖器分別位于不同的端口。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述裝置還包括: 計(jì)算模塊,用于根據(jù)所述待插入緩沖器的類型、所述待插入緩沖器的每個(gè)端口在多種時(shí)序分析模型下的上升下降時(shí)間、電容以及單元庫中的時(shí)序信息計(jì)算所述待插入緩沖器自身的延遲以及與所述待插入緩沖器的每個(gè)端口相鄰的前一個(gè)端口與后一個(gè)端口的延遲變化;更新模塊,用于采用計(jì)算結(jié)果更新所述待插入緩沖器的每個(gè)端口所在的一條或多條連接路徑上除該端口之外的其他端口中每個(gè)端口的保持時(shí)間松弛、建立時(shí)間松弛以及通過該端口 的連接路徑的權(quán)重。
全文摘要
本發(fā)明公開了一種緩沖器的插入方法及裝置,在上述方法中,獲取當(dāng)前集成電路中各個(gè)器件相互間端口的連接關(guān)系,其中,連接關(guān)系包括輸入端口、輸出端口以及輸入端口與輸出端口之間的連接路徑;在多種時(shí)序分析模型下從連接關(guān)系中選取待插入緩沖器的一個(gè)或多個(gè)端口。根據(jù)本發(fā)明提供的技術(shù)方案,降低了通過插入緩沖器來修復(fù)保持時(shí)間違例的迭代次數(shù)和修復(fù)時(shí)間。
文檔編號(hào)G06F17/50GK103164585SQ201310109808
公開日2013年6月19日 申請(qǐng)日期2013年3月29日 優(yōu)先權(quán)日2013年3月29日
發(fā)明者包翔元, 高燕萍, 王洪生 申請(qǐng)人:龍芯中科技術(shù)有限公司