專利名稱:生成集成電子電路的布圖的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及制造計(jì)算機(jī)芯片,特別是涉及芯片設(shè)計(jì)優(yōu)化,并且涉及一 種開發(fā)具有多個信號源鎖存器和邏輯的電子芯片電路布圖的方法,其中由 合成步驟限定初始邏輯,并且在處理所述合成邏輯的芯片布圖生成步驟中, 基于在該方法中存儲用于可獲得數(shù)據(jù)庫中的每個匯點(diǎn)的時(shí)序數(shù)據(jù),運(yùn)行時(shí) 序驅(qū)動布局,用于將克隆鎖存器布局于所述電路布圖上。
背景技術(shù):
在EP 1 557 75 Al中總體介紹了自動化芯片設(shè)計(jì)優(yōu)化。當(dāng)信號源鎖存 器驅(qū)動多個匯點(diǎn)時(shí),在要求的循環(huán)時(shí)間內(nèi)其中一些無法到達(dá)。在這種情況 下,將中繼器或者"流水線鎖存器"插入相應(yīng)的信號路徑。
EP 1 557 75 Al中示出了在對芯片布線后,即當(dāng)存在時(shí)序數(shù)據(jù)和布線 寄生效應(yīng)的估計(jì)時(shí),將流水線鎖存器插入芯片布圖的方法。但是,迄今為 止,該方法還沒有公開對在單個循環(huán)內(nèi)信號應(yīng)當(dāng)?shù)竭_(dá)的數(shù)據(jù)匯點(diǎn)位置的優(yōu) 化。
圖1旨在示出在單個循環(huán)中發(fā)生的該現(xiàn)有技術(shù)源鎖存器IO將其信號 供應(yīng)給大約20 000個以密集的印刷點(diǎn)示出的匯點(diǎn),從而引起由這些匯點(diǎn)形 成的地圖。因?yàn)槠涫境隽?,大部分匯點(diǎn),例如芯片上的區(qū)域13和區(qū)域14, 與源鎖存器物理上相距非常遠(yuǎn),所以本領(lǐng)域技術(shù)人員將從圖l理解本發(fā)明 的初始問題。該長距離對電路布圖施加了顯著的時(shí)間限制。
在Koehl, Schietke: "In-place Timing Optimization" , Proceedings of SAME, Sophia Antipolis, 2000中對上述現(xiàn)有技術(shù)作了更具體的介紹。 在該現(xiàn)有技術(shù)文獻(xiàn)中,給出了解釋實(shí)現(xiàn)前述合成步驟和布圖生成之間的有
效耦合的困難的背景信息。合成通常使用連線負(fù)載模型,其描述VLSI設(shè) 計(jì)(超大規(guī)4莫集成電路)最終布線的平均電容和電阻。該電容和電阻的估 計(jì)值取決于網(wǎng)中的引腳數(shù)、該網(wǎng)所屬的邏輯功能區(qū)、或其它更復(fù)雜的標(biāo)準(zhǔn)。 最終的布線可與這些估計(jì)大大不同,因此在合成期間生成的邏輯結(jié)構(gòu)可以 是最終布線的次優(yōu)化。統(tǒng)計(jì)表明大多數(shù)負(fù)載比平均值小,但是存在電容是 合成中所使用平均值的數(shù)倍的幾種情況。為改進(jìn)該設(shè)計(jì),在現(xiàn)有技術(shù)中進(jìn) 行所謂的驅(qū)動強(qiáng)度優(yōu)化,包括對時(shí)序分析工具后端注釋后布線電容和電阻, 其為每個所分析電路選擇適當(dāng)?shù)尿?qū)動強(qiáng)度。然后,進(jìn)行下一步"中繼器插 入",其需要生成中繼器的布局,以在中繼器插入后生成可靠的布線估計(jì)。 在這里還將這樣的中繼器表示為"克隆鎖存器,,。
為實(shí)現(xiàn)合成和布圖的緊密集成,該現(xiàn)有技術(shù)文獻(xiàn)中討論了兩個可能的 選捧第一,后端注釋布局以合成,第二,在布圖框架中進(jìn)行時(shí)序優(yōu)化。
盡管該現(xiàn)有技術(shù)文獻(xiàn)已經(jīng)提出了提供合成步驟和布圖步驟之間有效耦 合的策略的通用步驟,但是其沒有具體討論非常寬的數(shù)據(jù)路徑問題因?yàn)?常常利用高級半導(dǎo)體技術(shù)中可獲得的復(fù)雜性而通過加寬該數(shù)據(jù)路徑提高輸 出,所以這是所關(guān)心的關(guān)鍵問題。但是,加寬的數(shù)據(jù)路徑導(dǎo)致較高的邏輯 扇出,即,由單個鎖存器驅(qū)動的邏輯錐可在數(shù)千的匯點(diǎn)處結(jié)束。上下文中 的匯點(diǎn)將理解為作為時(shí)序測試的一部分并因此造成所謂的松弛的引腳。
在現(xiàn)有技術(shù)中將避免時(shí)序沖突的時(shí)間量稱為"松弛"。例如,對于設(shè) 置約束,如果信號必須在不超過8ns內(nèi)到達(dá)單元輸入端并且確定為在5ns 到達(dá),則松馳量為3ns。松馳量為0意味著剛剛可以能滿足該約束。負(fù)松 馳量表示時(shí)序沖突。
典型的匯點(diǎn)為鎖存器和時(shí)鐘選通電路的數(shù)據(jù)輸入端。這里所使用的術(shù) 語"鎖存器"指任何類型的數(shù)據(jù)存儲電路。其它數(shù)據(jù)存儲電路例如為寄存 器和觸發(fā)器。前述設(shè)計(jì)情況的特征在于,高邏輯扇出使得具有主動時(shí)鐘頻 率的時(shí)序收斂幾乎不可能。
在上述現(xiàn)有技術(shù)文獻(xiàn)的第一附圖中也示出了這一點(diǎn),其中模擬網(wǎng)的電 容容易為成為平均網(wǎng)電容的六倍或更多倍。當(dāng)必須使用要求過高的時(shí)鐘速
率時(shí),不允許這樣的偏差。
在現(xiàn)有技術(shù)中,通常意識到了該困難,并且試圖通過逐個實(shí)例分析和 在邏輯設(shè)計(jì)中復(fù)制源鎖存器以減小該鎖存器的每個復(fù)制的邏輯錐的尺寸, 而解決該困難。換言之,"克隆,,該源鎖存器并安裝為增加網(wǎng)下游,以保 持該松馳量可預(yù)見并處于預(yù)定界限內(nèi)。
但是,至少存在兩個缺陷第一,必須手工選擇、分析和單獨(dú)處理每 種情況,以將克隆鎖存器放置在芯片電路上的合適位置。第二,該現(xiàn)有技 術(shù)方法不能物理布局匯點(diǎn)。因此,非??赡軐⒚總€克隆鎖存器的匯點(diǎn)相互 放置得非常遠(yuǎn)。因此,直到現(xiàn)在也未能實(shí)現(xiàn)合成和布圖之間的有效耦合。
發(fā)明內(nèi)容
因此本發(fā)明的目標(biāo)在于提供一種生成集成電子電路布圖的改進(jìn)方法, 和相應(yīng)的系統(tǒng)以及計(jì)算機(jī)程序產(chǎn)品,其實(shí)現(xiàn)現(xiàn)代集成電子電路設(shè)計(jì)中階梯 邏輯合成和布圖生成之間更緊密的耦合。
本發(fā)明概述和優(yōu)點(diǎn)
通過所附獨(dú)立權(quán)利要求中所述的特征實(shí)現(xiàn)本發(fā)明的目標(biāo)。
簡言之,本發(fā)明公開了一種克隆鎖存器并將匯點(diǎn)分配給每個克隆鎖存
器的方法和相應(yīng)的系統(tǒng),其已知匯點(diǎn)的物理位置以及每個匯點(diǎn)的時(shí)序臨界性。
優(yōu)選在芯片"^殳計(jì)通常使用的工具鏈中現(xiàn)有的工具內(nèi)實(shí)現(xiàn)本發(fā)明。因?yàn)?該方法基于預(yù)先存在的邏輯電路方案和尚未獲得的邏輯的物理布圖,所以 優(yōu)選的特征為在邏輯優(yōu)化工具中添加。但是還可在具有芯片設(shè)計(jì)數(shù)據(jù)庫數(shù) 據(jù)庫入口的孤立優(yōu)化工具中實(shí)施。
本發(fā)明方法優(yōu)選控制流程的粗略圖包括如下的步驟第一步為執(zhí)行初 始邏輯的時(shí)序驅(qū)動布局,并運(yùn)行現(xiàn)有技術(shù)時(shí)序優(yōu)化算法(參見上述"Koehl, Schietke"的現(xiàn)有技術(shù))。第二步驟在于找出在其輸出引腳具有負(fù)松馳量 的鎖存器。然后,第三步驟為找出一組受該鎖存器驅(qū)動的匯點(diǎn)。然后,第 四步驟為根據(jù)時(shí)序和布局信息聚集匯點(diǎn)組。這是本發(fā)明的中心問題。
優(yōu)選地,聚集匯點(diǎn)的步驟可如下進(jìn)行首先,通過將所有具有正或零 松馳量的匯點(diǎn)分配給一個群集。第二,通過如參考圖4所示出并在后文所 述聚集即布置剩下的匯點(diǎn)。重要的是,以達(dá)到特定最大半徑的Manhattan (或者L1)度量中最小數(shù)量的圏覆蓋負(fù)松馳量匯點(diǎn)。
第五步為如參考圖3所示出并在后文所述克隆源鎖存器和邏輯并連接 至各個鎖存器群集。然后,下一步為重復(fù)時(shí)序驅(qū)動布局,并將控制送回第 二步驟,從而以具有負(fù)松馳量的下一個源鎖存器繼續(xù)進(jìn)行。該循環(huán)繼續(xù)進(jìn) 行,直到處理所有具有負(fù)松馳量的鎖存器。
在相應(yīng)的從屬權(quán)利要求中列出了其它有利的設(shè)置和實(shí)施例。現(xiàn)在參考 所附權(quán)利要求。
根據(jù)本發(fā)明最寬的方面,本發(fā)明公開了一種開發(fā)具有多個鎖存器和邏 輯的集成電子電路的布圖的方法,其中,源鎖存器向相應(yīng)的多個匯點(diǎn)提供 信號,其中由合成步驟限定初始邏輯,并且其中在后續(xù)芯片布圖生成過程 中,進(jìn)行布局以將和單個源鎖存器相關(guān)的克隆鎖存器布局在所述電路布圖 上,其特征在于以下步驟
a) 預(yù)先識別包括至少一個相關(guān)的具有負(fù) ^馳量的匯點(diǎn)的鎖存器,即, 所述鎖存器在其輸出端具有負(fù)松弛量;
b) 找出由所述識別的鎖存器的相應(yīng)一個驅(qū)動的所有匯點(diǎn),所述匯點(diǎn)構(gòu) 成多個N匯點(diǎn),其中由啟發(fā)式算法預(yù)先確定N;
c) 根據(jù)從芯片設(shè)計(jì)數(shù)據(jù)庫讀取的時(shí)序和布局信息聚集所述匯點(diǎn),獲得 多個匯點(diǎn)群集,其中群集僅僅包括所述多個N匯點(diǎn)的預(yù)定部分;
d) 產(chǎn)生與所述預(yù)先識別的源鎖存器的相應(yīng)一個相關(guān)的克隆鎖存器;以
及
e) 將所述克隆鎖存器連接至所述匯點(diǎn)群集中的相應(yīng)一個,從而獲得改 進(jìn)的芯片布圖。
因此,克隆鎖存器的布局為時(shí)序驅(qū)動,并基于為每個匯點(diǎn)存儲于在該 方法中可得到的數(shù)據(jù)庫中的時(shí)序數(shù)據(jù)。
更有利地,聚集匯點(diǎn)的步驟包括限定鄰近分區(qū),優(yōu)選為布圖的菱形的
矩形,其中對內(nèi)部的匯點(diǎn)計(jì)數(shù),其中分區(qū)限于僅僅包括和N相關(guān)的預(yù)定部 分的匯點(diǎn)。為更加清楚起見應(yīng)當(dāng)加上一點(diǎn),菱形在這里意味著相對于直角 坐標(biāo)系的正交軸限定,該坐標(biāo)系限定布線方向,從而菱形的邊沿與正交軸 的任意一個成45°方向。
菱形區(qū)域具有如下優(yōu)點(diǎn)從區(qū)域中心至由Ll (或者M(jìn)anhattan)距離 中的區(qū)域覆蓋的任何點(diǎn)的最大距離最小。假定該延遲受到從置于覆蓋N匯 點(diǎn)的任意形狀區(qū)域的中心的鎖存器的最大距離的顯著影響,則菱形區(qū)域產(chǎn) 生最小延遲并因而產(chǎn)生最大松馳量。
另外,優(yōu)選地本發(fā)明方法包括下述步驟
a) 在包圍所有用于限定全部N匯點(diǎn)的所有匯點(diǎn)的最小斜矩形的邊上 限定預(yù)定的起始位置;
b) 在所述起始位置限定菱形分區(qū),以初始包括小的、初始數(shù)量的匯點(diǎn);
c) 增加所述分區(qū)的尺寸,同時(shí)計(jì)數(shù)其包括的匯點(diǎn),直到該尺寸足夠大 以包括所述預(yù)定部分的匯點(diǎn);
d) 為該分區(qū)分配所述覆蓋鎖存器;
e) 從該組匯點(diǎn)去除所述鎖存器;以及
f) 從與前一個相同或不同的起始位置開始重復(fù)前述步驟。
該方法的目標(biāo)為產(chǎn)生包括所有匯點(diǎn)中的部分的分區(qū)。通過產(chǎn)生菱形區(qū) 域,可控制下述時(shí)序優(yōu)化,從而使從鎖存器至其任何匯點(diǎn)的延遲盡量減小。
另外,優(yōu)選,本發(fā)明方法包括基于改進(jìn)的芯片布圖重復(fù)時(shí)序驅(qū)動布局 克隆中繼器鎖存器的步驟。該步驟的目的在于找出初始鎖存器的最佳位置 以及其新產(chǎn)生的克隆,并通過減小延遲增加其相應(yīng)匯點(diǎn)的松馳量(參見上 述"Koehl, Schietke"的現(xiàn)有技術(shù))。
另外,優(yōu)選,本發(fā)明方法包括基于改進(jìn)的芯片布圖重復(fù)合成步驟的步 驟。盡管Boolean函數(shù)對于初始系統(tǒng)相同,但是邏輯錐的邊界條件(例如 扇入、扇處)不同,以允許通過重新合成在初始開始的組合邏輯錐和新產(chǎn) 生鎖存器,從而進(jìn)一步增加松弛量。
本發(fā)明以實(shí)例示出,并且本發(fā)明不限于附圖的形狀,其中 圖1是芯片設(shè)計(jì)工具的屏幕輸出,示出了電子電路的部分的物理布圖, 其中示出了一個源鎖存器和與該源鎖存器相關(guān)的大約20 000匯點(diǎn)的聚集; 圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的方法中的控制流程的基本步驟的示意
圖3是根據(jù)本發(fā)明的鎖存器克隆原理的示意圖4是根據(jù)圖1的視圖,包括菱形矩形以覆蓋源鎖存器的克隆鎖存器;
圖5是才艮據(jù)圖1的^L圖,示出了根據(jù)本發(fā)明聚集克隆源鎖存器,并示 出了產(chǎn)生包圍鎖存器的一些預(yù)定部分的邊界盒;
圖6是"菱形"的示意圖,即相對于Cartesian坐標(biāo)系統(tǒng)(固定至集 成電路布圖)的斜矩形及其注釋;以及
圖7和8為根據(jù)圖1的視圖,示出了根據(jù)本發(fā)明方法的實(shí)例方法,以 及如何以連續(xù)步驟產(chǎn)生菱形矩形。
具體實(shí)施例方式
可將本發(fā)明的優(yōu)選實(shí)施例應(yīng)用至芯片布圖工具或者時(shí)序優(yōu)化工具。 另外,需要由邏輯電路的形式驗(yàn)證工具驗(yàn)證施加于芯片設(shè)計(jì)的變化, 侈ij^口吵口 IBM, Journal of Research and Development, Vol. 39, No. 1/2, January, March 1995中所述的"Verity"所述。特別是,必須不改變芯片 的Boolean函數(shù)。
為解決對本發(fā)明方法所進(jìn)行的變化的正確性的形式驗(yàn)證問題,除了介 紹章節(jié)以外給出了下面的注釋數(shù)字系統(tǒng)包括組合的邏輯和存儲元件,參 見圖3的上面部分。存儲元件分為組合的邏輯和鎖存器點(diǎn)。鎖存器點(diǎn)具有 一個數(shù)據(jù)輸入端和一個時(shí)鐘輸入端和一個輸出端。任何存儲元件可由一個 或多個鎖存器點(diǎn)和組合邏輯表示。邊沿觸發(fā)觸發(fā)器例如通常包括兩個鎖存 器點(diǎn)。鎖存器點(diǎn)認(rèn)為是用于Boolean驗(yàn)證的黑盒。任何電路都可被說明為 黑盒。黑盒具有唯一的標(biāo)識符和唯一的輸入和輸出引腳。所有的初始輸入和所有的黑盒輸出都認(rèn)為是獨(dú)立Boolean變量(Xl,..., xm)。所有的初始輸出和所有的黑盒輸入都具有取決于初始輸入和黑盒輸 出的完全組合函數(shù)f: fi(Xl,…,xm) , i為作為第i個p初始輸出或者黑 盒輸入的組l,…,p的單元。
Boolean ^Hi比較兩個數(shù)字系統(tǒng)。以Xl,…,Xm為獨(dú)立變量,fi為系 統(tǒng)1的Boolean函數(shù),而y"…,yn為獨(dú)立變量,gj為系統(tǒng)2的Boolean 函數(shù)。系統(tǒng)l具有p個初始輸出和黑盒輸入,系統(tǒng)2具有q個初始輸出和 黑盒輸入。
標(biāo)準(zhǔn)的Boolean驗(yàn)證試圖證明
m = n (1)
p = q (2)
xk = yk (對于每個k) (3)
fi = &(對于每個i) (4)
前三個方程描述了稱為"對應(yīng)"的過程。方程U)描述了 "Boolean 比較,,。
特別參考本發(fā)明,因?yàn)橛捎谝胄潞诤休斎牒洼敵龆鴐^n且p-q, 所以克隆存儲元件對Boolean驗(yàn)證造成了挑戰(zhàn)。假定存在初始系統(tǒng)一和包 括一個具有一個輸入端和一個輸出端的黑盒的第二系統(tǒng)。通過使初始黑盒 與其克隆等同,則可建立對應(yīng)。初始黑盒輸出的獨(dú)立變量在系統(tǒng)1中稱為 xk,在系統(tǒng)2中稱為yk。黑盒輸入函數(shù)稱為fj和gi??寺≥敵鲎兞糠Q為y" 而克隆輸入函數(shù)稱為gj。
附加的獨(dú)立變量^實(shí)際上不獨(dú)立,而等于初始黑盒輸出的獨(dú)立變量, 系統(tǒng)2中的yk和系統(tǒng)1中的xk: yi = yk = xk。然后Boolean比較必須試圖 證明gj = & = fi。該技術(shù)可用于具有多個輸入端和輸出端的多個克隆黑盒。
對于Boolean驗(yàn)證,采用上述軟件"Verity"克隆的電路僅僅需要在 Verity安裝中的手動對應(yīng)文件(m2—手動—對應(yīng))內(nèi)說明。該文件說明系統(tǒng) 1中的一個電路與系統(tǒng)2中的一個或多個電路等同。語法實(shí)例為
盒鎖存器A(鎖存器A鎖存器A一克隆1鎖存器A—克隆2}
然后,現(xiàn)有技術(shù)工具"Verity"自動進(jìn)行對應(yīng)和Boolean比較。根據(jù) 本發(fā)明的鎖存器克隆方法對正確和錯誤鎖存器克隆都驗(yàn)證該行為。
總體參考附圖并且現(xiàn)在特別參考附圖2,將更詳細(xì)描述本發(fā)明方法的 優(yōu)選實(shí)施例。在步驟210,在邏輯合成開發(fā)的電路后,以存儲在相關(guān)數(shù)據(jù) 庫中連線表的形式初始邏輯描述芯片電路的硬件邏輯,例如在K. Morell, D.J. Hathaway, "IBM,s Integrated Data Model", IEE/DATC Electronic Design Processes Workshop, 4月26-28, 2000, Monterey, CA描述的IBM 集成數(shù)據(jù)模型。該數(shù)據(jù)模型描述了用于實(shí)施的邏輯電路、該電路間的邏輯 連接、每個電路的物理位置、要求的循環(huán)時(shí)間和其它時(shí)序要求?;跁r(shí)序 要求,為每次時(shí)序測試計(jì)算松馳量(即要求的負(fù)實(shí)際到達(dá)時(shí)間,參見上述 解釋),并將其傳回至信號的發(fā)射電路。
在下一步220,找出所有在輸出引腳具有負(fù)松馳量的鎖存器。更詳細(xì) 地,這意味著識別所有向其匯點(diǎn)提^H言號的鎖存器,其中至少存在一個匯 點(diǎn),其又具有負(fù)松馳量,即在該匯點(diǎn)上來自源鎖存器的信號到達(dá)得非常晚 以適應(yīng)預(yù)定的時(shí)序要求。應(yīng)當(dāng)注意,盡管在由源鎖存器供應(yīng)的某匯點(diǎn)上出 現(xiàn)實(shí)際負(fù)松馳量,但是根據(jù)每個設(shè)計(jì)工具,源鎖存器本身表示為具有負(fù)松 馳量。不再處理剩下的具有正松馳量的匯點(diǎn)。
在下一步230,識別所有由具有負(fù)松馳量該鎖存器驅(qū)動的匯點(diǎn)。這通 過讀取數(shù)據(jù)庫和選擇所有與具有上述負(fù)松馳量的鎖存器相關(guān)的負(fù)松馳量匯 點(diǎn)以對話形式實(shí)現(xiàn)。
然后在下一步240,根據(jù)在設(shè)計(jì)工具數(shù)據(jù)庫中存在的時(shí)序和布局信息 聚集在上述步驟230中找出的具有負(fù)々>馳量的匯點(diǎn)。因?yàn)樵摬襟E是本發(fā)明 的必要步驟,所以在圖2右側(cè)如下所述更詳細(xì)地描述了該聚集步驟
1. 步驟241:確定N, M:假定給出了由單個鎖存器驅(qū)動的最大匯點(diǎn) 數(shù)的數(shù)量N,而假定連至給定源鎖存器的匯點(diǎn)數(shù)M為20, 000。 N為 用戶參數(shù),并且取決于時(shí)鐘頻率,對于250MHz設(shè)計(jì),N-500是合 適的值。
2. 步驟242:參見附圖4和5優(yōu)選采用斜矩形也稱作"菱形"矩形描
述Manhattan距離內(nèi)的最小距離"圏"。另外參見圖6,由四個描述 右上(ur)、左上(ul)、左下(11)和右下(lr)邊的數(shù)給出每個斜 矩形形狀。
3. 步驟243:然后選擇覆蓋所有鎖存器N的最小斜矩形60。
圖5示出了該情況,這里為簡單和更加清楚起見N-10.000,在該情 況中,僅僅有兩個(20.000除以10.000)待限定的不同路線。
這優(yōu)選如下進(jìn)行對所有20.000個匯點(diǎn)鎖存器Li,從數(shù)據(jù)庫選擇其x 和y坐標(biāo)。
然后,步驟244:對每個匯點(diǎn)由ul、 11、 ur、 lr計(jì)算菱形,其中 ur = max(Xi+yJ , ll=min{xi+yi},
ul-max^i-Xi}, lr-miiHyi-Xi},這里U, yi)為鎖存器Lj的坐標(biāo)(參 見圖6)。
4. 步驟245:下一步構(gòu)建覆蓋該組鎖存器的更小斜矩形并且精確地為 每個鎖存器以下面方法分配一個(通常更小)斜矩形
a. 每個鎖存器都處于其所分配的斜矩形內(nèi)。
b. 分配給每個斜矩形的鎖存器數(shù)低于N。 這優(yōu)選如下實(shí)現(xiàn)
I. 該算法在一個角開始步驟2451,例如在步驟3所產(chǎn)生的較大斜 矩形的東角開始,并且在步驟2452增加較小斜矩形的尺寸,直 到其覆蓋盡可能近似但不超過N個的鎖存器,還參見附圖7。
II. 步驟2453:然后程序控制去除這些鎖存器并到達(dá)步驟242,構(gòu)建 新的覆蓋所有剩余鎖存器的斜矩形80。這在圖8中示出。
III. 如果新斜矩形不包括多于N的鎖存器,則該過程結(jié)束。 通過進(jìn)行該過程,找出了菱形矩形52、 54,其通常具有不同即更小的
尺寸以及不同即相等或者更小的邊長,并覆蓋圖4中整個區(qū)域60的所有匯 點(diǎn)。
圖7示出了第一分區(qū)的構(gòu)造。圖8示出了所有(在該特定情況下)的 兩個分區(qū)。注意,每個分區(qū)都比初始區(qū)域小。根據(jù)任何實(shí)際的情況,優(yōu)選通過選擇相對于前一個起始點(diǎn)旋轉(zhuǎn)的下一 個起始點(diǎn)改變起始角。
可以以硬件、軟件或者硬件和軟件組合實(shí)現(xiàn)本發(fā)明??梢砸砸粋€計(jì)算
機(jī)系統(tǒng)中的集中模式或者不同元件分布于數(shù)個互聯(lián)計(jì)算機(jī)系統(tǒng)的M模式
實(shí)現(xiàn)根據(jù)本發(fā)明的芯片布圖或者時(shí)序優(yōu)化工具。任何類型的計(jì)算機(jī)系統(tǒng)或
者其它用于實(shí)現(xiàn)這里所述方法的其它裝置都適合。典型的硬件和軟件的組
合可以是具有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),當(dāng)安裝并執(zhí)行時(shí)該程序控制 計(jì)算機(jī)程序從而實(shí)現(xiàn)這里所述的方法。
本發(fā)明還可以實(shí)施為計(jì)算機(jī)程序產(chǎn)品,其包括所有可實(shí)施這里所述方 法的特征,并且當(dāng)安裝在計(jì)算機(jī)系統(tǒng)中時(shí)其可實(shí)施該方法。
本文中的計(jì)算機(jī)程序裝置或者計(jì)算機(jī)程序意味著一組指令的任何語言 表達(dá)、代碼或注釋,該組指令旨在使具有信息處理能力的系統(tǒng)直接或者在 下面兩個步驟之一或者兩者之后實(shí)現(xiàn)特別功能,
a) 轉(zhuǎn)換為另一種語言、代碼或者注釋;
b) 以不同材料形式再現(xiàn)。
權(quán)利要求
1.一種生成具有多個鎖存器和邏輯的集成電子電路的布圖的方法,其中在所述多個鎖存器和邏輯中,源鎖存器(10)向相應(yīng)的多個匯點(diǎn)(11)提供信號,其中由合成步驟限定初始邏輯,并且其中在后續(xù)布圖(8)生成過程中,進(jìn)行布局以將和單個源鎖存器(10)相關(guān)的克隆鎖存器布局在所述布圖上,其特征在于以下步驟a)預(yù)先識別包括至少一個相關(guān)的具有負(fù)松馳量的匯點(diǎn)的鎖存器(220);b)找出由所述識別的鎖存器的相應(yīng)一個驅(qū)動的所有匯點(diǎn)(230),所述匯點(diǎn)構(gòu)成多個N匯點(diǎn),其中由啟發(fā)式算法預(yù)先確定N;c)根據(jù)從所述數(shù)據(jù)庫讀取的時(shí)序和布局信息聚集所述匯點(diǎn)(240),獲得多個匯點(diǎn)群集(12,13),其中群集僅僅包括所述多個N匯點(diǎn)的預(yù)定部分;d)產(chǎn)生與所述預(yù)先識別的源鎖存器(10)的相應(yīng)一個相關(guān)的克隆鎖存器(250);以及e)將所述克隆鎖存器連接至所述匯點(diǎn)群集(12、13;52、54)中的相應(yīng)一個,從而獲得改進(jìn)的布圖。
2. 根據(jù)權(quán)利要求l的方法,其中聚集所述匯點(diǎn)的步驟包括,限定所述 布圖的鄰近分區(qū),其中對內(nèi)部的匯點(diǎn)計(jì)數(shù),其中分區(qū)限于僅僅包括和N相 關(guān)的預(yù)定部分的匯點(diǎn)。
3. 根據(jù)權(quán)利要求1或2的方法,其中所述分區(qū)為菱形矩形(52、 54), 其邊沿與限定所述芯片上的布線方向的直角坐標(biāo)系統(tǒng)的正交軸成45°角方 向。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)的方法,還包括如下步驟a) 在包圍所有用于限定全部N匯點(diǎn)的所有匯點(diǎn)的最小斜矩形的邊上 限定預(yù)定的起始位置(243 );b) 在所述起始位置限定布線狀分區(qū),以初始包括初始數(shù)量的匯點(diǎn) (2451 );C)增加所述分區(qū)的尺寸,同時(shí)計(jì)數(shù)其包括的匯點(diǎn),直到該尺寸足夠大以包括所述預(yù)定部分的匯點(diǎn)(2452);d) 為該分區(qū)分配對應(yīng)于所述計(jì)數(shù)的匯點(diǎn)的鎖存器;e) 從該組匯點(diǎn)去除所述鎖存器;f) 從與前一個相同或不同的起始位置開始重復(fù)前述步驟。
5. 根據(jù)前述權(quán)利要求的方法,還包括如下步驟基于所述改進(jìn)的布圖, 對所述克隆鎖存器進(jìn)行時(shí)序驅(qū)動布局。
6. 根據(jù)權(quán)利要求1至5中任一項(xiàng)的方法,還包括基于所述改進(jìn)的布圖 進(jìn)行合成步驟的步驟。
7. —種計(jì)算機(jī)系統(tǒng),其具有用于執(zhí)行根據(jù)前述權(quán)利要求1至6中任一 項(xiàng)的方法的步驟的裝置。
8. —種生成具有多個鎖存器和邏輯的電子集成電路的布圖的系統(tǒng),其 中在所述多個鎖存器和邏輯中,源鎖存器(10)向相應(yīng)的多個匯點(diǎn)(11) 提供信號,其中由合成步驟限定初始邏輯,并且其中在后續(xù)芯片布圖(8) 生成過程中,進(jìn)4亍布局以將與單個源鎖存器(10)相關(guān)的克隆鎖存器布局 在所述電路布圖上,包括a) 預(yù)先識別鎖存器(220)的裝置,該鎖存器具有至少一個相關(guān)的具 有負(fù)松馳量的匯點(diǎn),b) 找出所有由所述識別的鎖存器的相應(yīng)一個驅(qū)動的所有匯點(diǎn)(230) 的裝置,該匯點(diǎn)構(gòu)成多個N匯點(diǎn),其中由啟發(fā)式算法預(yù)先確定N,c) 根據(jù)從所述數(shù)據(jù)庫讀取的時(shí)序和布局信息聚集所述匯點(diǎn)(240)的 裝置,以獲得多個匯點(diǎn)群集(12, 13),其中群集僅僅包括所述多個N匯 點(diǎn)的預(yù)定部分,d )產(chǎn)生與所述預(yù)先識別的源鎖存器(10 )的相應(yīng)一個相關(guān)的克隆鎖存 器(250)的裝置,以及e)將所述克隆鎖存器連接至所述匯點(diǎn)群集(12、 13; 52、 54)中的相 應(yīng)一個的裝置,從而獲得改進(jìn)的布圖。
全文摘要
本發(fā)明涉及制造集成電子電路,特別是涉及其設(shè)計(jì)優(yōu)化。為使現(xiàn)代芯片設(shè)計(jì)中合成步驟和布圖之間更緊密耦合,提出了執(zhí)行如下步驟a)預(yù)先識別鎖存器(210),其包括至少一個相關(guān)的具有負(fù)松弛的匯點(diǎn),即,該鎖存器在其輸出端具有負(fù)松弛,b)找出所有的由其中一個相應(yīng)所述識別鎖存器驅(qū)動的匯點(diǎn),該匯點(diǎn)構(gòu)成多個N匯點(diǎn),其中N由啟發(fā)式算法預(yù)先確定,以及,c)根據(jù)從所述數(shù)據(jù)庫讀取的時(shí)序和布局信息聚集所述匯點(diǎn)(240),獲得多個匯點(diǎn)群集(12,13),其中群集僅僅包括所述多個N匯點(diǎn)的預(yù)定部分。
文檔編號G06F17/50GK101187958SQ200710186638
公開日2008年5月28日 申請日期2007年11月14日 優(yōu)先權(quán)日2006年11月20日
發(fā)明者J·柯爾, M·林奇 申請人:國際商業(yè)機(jī)器公司