專利名稱:評估時鐘偏移的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ASIC設(shè)計領(lǐng)域,更具體而言,涉及在ASIC設(shè)計過程中評估時鐘偏移的方法和裝置。
背景技術(shù):
在典型的ASIC(Application-Specific Integrated Circuit,專用集成電路)設(shè)計過程中,設(shè)計人員首先根據(jù)芯片電路所需的功能將電路劃分為多個功能塊,并用各種邏輯單元來實現(xiàn)各個功能塊。這樣的邏輯單元可以是各種連接點、邏輯門、寄存器等等。一般地,各種邏輯單元之間的連接關(guān)系記錄在網(wǎng)表文件中。根據(jù)網(wǎng)表的記錄,設(shè)計人員可以對各個邏輯單元進(jìn)行初步的物理布局。從時序角度來說,網(wǎng)表中記錄的邏輯單元包括組合邏輯單元和時序邏輯單元,其中組合邏輯單元,例如各種邏輯門,其操作狀態(tài)僅與當(dāng)時的輸入變量的狀態(tài)有關(guān),而與歷史狀態(tài)和時序無關(guān);而時序邏輯單元,例如寄存器、鎖存器,需要依賴于時鐘周期來維持和記錄之前的狀態(tài)。相應(yīng)地,時序邏輯單元具有時鐘針腳,來接收時鐘輸入。為了使得各個時序邏輯單元獲得其需要的時鐘輸入,需要為時序邏輯單元設(shè)計時鐘樹,以示出從原始時鐘源到目標(biāo)時序邏輯單元的路徑。一般地,時鐘樹包含作為時鐘倍頻器的鎖相環(huán)PLL和用于驅(qū)動時序邏輯單元的緩沖器。接著,將設(shè)計的時鐘樹插入到電路設(shè)計中,進(jìn)一步調(diào)整物理布局。然后,對電路進(jìn)行時鐘協(xié)調(diào),在時序收斂(timing clean)的基礎(chǔ)上對電路進(jìn)行布局布線,完成設(shè)計。在以上設(shè)計并插入時鐘樹的過程中,時鐘偏移(clock skew)是要考慮的重要因素。如上所述,整個電路的所有時序邏輯單元都需要提供有時鐘信號,然而從時鐘源到各個時序邏輯單元所經(jīng)歷的路徑并不相同,這會導(dǎo)致時鐘信號到達(dá)不同時序邏輯單元的時間不同。這樣的時間差異也稱為時鐘偏移。引起時鐘偏移的因素有多種,包括不同單元之間路徑長度的差異、負(fù)載個數(shù)和大小的差異,以及OCV(on-chip variation,片上工藝差異)引起的偏移,等等。其中OCV差異包含制造工藝引起的差異、操作電壓差異、環(huán)境溫度差異等
坐寸ο理想地,在設(shè)計時鐘樹的過程中,考慮與時鐘相關(guān)的各個因素而評估時鐘偏移,從而獲得偏移最小的時鐘樹。在插入時鐘樹時,基于評估的時鐘偏移,利用布局輔助工具(例如ros),對布局進(jìn)行調(diào)整,來進(jìn)一步減小時鐘偏移,并最終使得時序收斂。因此,對時鐘偏移的準(zhǔn)確估計非常重要。在現(xiàn)有技術(shù)中,通常由設(shè)計人員根據(jù)時鐘樹中的時序邏輯單元的數(shù)目和位置來評估時鐘偏移;或者,也可以借助時鐘評估工具來進(jìn)行時鐘偏移的評估。評估工具主要依據(jù)時鐘樹中緩沖器的類型、緩沖器的扇出、芯片大小等因素來評估時鐘偏移。但是,以上的評估方式仍存在較大不足。首先,由于所考慮的因素不夠全面,使得評估結(jié)果不夠精確。此外,以上方式通常給出一個全局的偏移值作為一個時鐘樹的時鐘偏移,該全局偏移值通常是時鐘路徑差異最大的兩個單元之間的信號到達(dá)時間差。而這樣的全局偏移值顯然無法準(zhǔn)確描述任意兩個單元之間的時鐘差。出于以上原因,對電路中各個時序邏輯單元的時鐘偏移的估計往往不夠準(zhǔn)確,出現(xiàn)估計不足或過度估計兩種情況。對時鐘偏移的估計不足使得在時鐘樹插入之后仍存在較大的時序缺陷有待修補;對時鐘偏移的過度估計則會使得布局輔助工具為了減小時鐘偏移而進(jìn)行過度的優(yōu)化工作,增加不必要的消耗。因此,希望提供一種優(yōu)化的方式,能夠更加準(zhǔn)確有效地評估時鐘偏移,從而提高ASIC設(shè)計的效率。
發(fā)明內(nèi)容
鑒于以上的問題,提出本發(fā)明,旨在提供一種用于評估時鐘偏移的方法和裝置,以克服現(xiàn)有技術(shù)中的至少一項不足,更準(zhǔn)確地評估電路中時序邏輯單元之間的時鐘偏移。根據(jù)本發(fā)明第一方面,提供了一種用于評估時鐘偏移的方法,包括獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移;判斷電路中的第一單元和第二單元是否位于同一時鐘域中;響應(yīng)于第一單元和第二單元位于不同時鐘域,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個;響應(yīng)于第一單元和第二單元位于同一時鐘域,進(jìn)一步判斷第一單元和第二單元是否位于同一電路層·級邏輯塊中;響應(yīng)于第一單元和第二單元位于不同層級邏輯塊,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元所在的時鐘樹的基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。根據(jù)本發(fā)明第二方面,提供了一種用于評估時鐘偏移的裝置,包括基本偏移獲取模塊,配置為獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移;時鐘域判斷模塊,配置為判斷電路中的第一單兀和第二單兀是否位于同一時鐘域中;第一評估模塊,配置為,響應(yīng)于第一單元和第二單元位于不同時鐘域,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個;層級判斷模塊,配置為,響應(yīng)于第一單元和第二單元位于同一時鐘域,判斷第一單元和第二單元是否位于同一電路層級邏輯塊中;第二評估模塊,配置為,響應(yīng)于第一單元和第二單元位于不同層級邏輯塊,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元所在的時鐘樹的基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。利用以上的方法和裝置,能夠?qū)﹄娐分械臅r序邏輯單元之間的時鐘偏移進(jìn)行更加準(zhǔn)確地評估,從而有利于電路設(shè)計效率的提高。
圖I示例出根據(jù)本發(fā)明一個實施例的評估時鐘偏移的流程圖;圖2A示出一個電路的時鐘連接的例子;圖2B示出電路中時鐘連接的另一例子;圖3A示出一個電路時鐘路徑的例子;圖3B示出對圖3A的電路時鐘路徑進(jìn)行改進(jìn)的例子;圖4A示出另一個電路時鐘路徑的例子;圖4B不出對圖4A的電路時鐘路徑進(jìn)彳丁改進(jìn)的例子;圖5示出根據(jù)本發(fā)明一個實施例的用于評估時鐘偏移的裝置的示意框圖;以及圖6示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)的框圖。
具體實施例方式下面對本發(fā)明的具體實施方式
進(jìn)行詳細(xì)描述。所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的多個方面可以體現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的多個方面可以具體實現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的組合。此外,本發(fā)明的多個方面還可以采取體現(xiàn)在一個或多個計算機可讀介質(zhì)中的計算機程序產(chǎn)品的形式,該計算機可讀介質(zhì)中包含計算機可用的程序碼??梢允褂靡粋€或多個計算機可讀的介質(zhì)的任何組合。計算機可讀介質(zhì)可以是計算機可讀信號介質(zhì)或者計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)例如可以是一但不限于——電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)、裝置、器件或任何以上的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括以下有一個或多個導(dǎo)線 的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任何合適的組合。在本文件的語境中,計算機可讀存儲介質(zhì)可以是任何包含或存儲程序的有形的介質(zhì),該程序被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計算機可讀的信號介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計算機可讀的程序碼的傳播的數(shù)據(jù)信號。這種傳播的信號可以采用多種形式,包括——但不限于——電磁信號、光信號或任何以上合適的組合。計算機可讀的信號介質(zhì)可以是并非為計算機可讀存儲介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計算機可讀介質(zhì)。計算機可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于——無線、電線、光纜、RF等等,或者任何合適的上述組合。用于執(zhí)行本發(fā)明的操作的計算機程序碼,可以以一種或多種程序設(shè)計語言的任何組合來編寫,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言-諸如Java、Smalltalk、C++之類,還包括常規(guī)的過程式程序設(shè)計語言-諸如“C”程序設(shè)計語言或類似的程序設(shè)計語言。程序碼可以完全地在用戶的計算上執(zhí)行、部分地在用戶的計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶的計算機上部分在遠(yuǎn)程計算機上執(zhí)行、或者完全在遠(yuǎn)程計算機或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計算機可以通過任何種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶的計算機,或者,可以(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng))連接到外部計算機。以下參照按照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的多個方面。要明白的是,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計算機程序指令存儲在能指令計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質(zhì)中,這樣,存儲在計算機可讀介質(zhì)中的指令產(chǎn)生一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品。也可以把計算機程序指令加載到計算機或其它可編程數(shù)據(jù)處理裝置上,使得在計算機或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而在計算機或其它可編程裝置上執(zhí)行的指令就提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。下面參照附圖,結(jié)合具體實施例對本發(fā)明進(jìn)行描述。這樣的描述僅僅出于說明目的,而不意圖對本發(fā)明的范圍進(jìn)行限制。在本發(fā)明的實施例中,在對電路中的各個元件、單元進(jìn)行初步物理布局,并針對其中的時序邏輯單元設(shè)計生成滿足時序要求的時鐘樹之后,基于時鐘樹的信息和初步物理布局的信息進(jìn)行時鐘偏移的評估。在評估時鐘偏移的過程中,為了獲得更加準(zhǔn)確的評估結(jié)果, 在現(xiàn)有技術(shù)的評估方式的基礎(chǔ)上,本發(fā)明實施例的方法進(jìn)一步考慮電路中的單元所處的時鐘域和層級,基于時鐘域和層級的信息來進(jìn)一步修正現(xiàn)有技術(shù)的評估結(jié)果。由此,本發(fā)明實施例的方法能夠獲得更加準(zhǔn)確的時鐘偏移評估結(jié)果。在此基礎(chǔ)上,可以將這樣的評估結(jié)果作為時序限制輸入給進(jìn)行物理布局的工具,使其能夠更加準(zhǔn)確、有效地完成物理布局和/或優(yōu)化物理布局?;蛘?,這樣的評估結(jié)果也可以作為進(jìn)一步改善時鐘樹設(shè)計的參考。圖I示例出根據(jù)本發(fā)明一個實施例的評估時鐘偏移的流程圖。具體地,該流程可以評估得到電路中第一單元和第二單元之間的時鐘偏移。可以理解,上述及以下所述的第一單元和第二單元均指時序邏輯單元。如圖所示,在一個實施例中,評估時鐘偏移的過程包括以下步驟。首先,在步驟11中,獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移;然后,在步驟12中,判斷電路中的第一單元和第二單元是否處于同一時鐘域中。如果二者處于不同時鐘域,則該流程進(jìn)行到步驟13 ;如果二者位于同一時鐘域,則流程進(jìn)行到步驟14。在步驟13中,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元所分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個。另一方面,在步驟14中,即響應(yīng)于兩個單元位于同一時鐘域,進(jìn)一步判斷第一單元和第二單元是否位于同一電路層級邏輯塊中。響應(yīng)于第一單元和第二單元位于不同電路層級邏輯塊的情況,該流程進(jìn)行到步驟
15,在其中將第一單兀和第二單兀之間的時鐘偏移評估為,上述同一時鐘樹的基本時鐘偏移加上不同層級邏輯塊引起的時鐘偏移。在第一單元和第二單元位于同一層級邏輯塊的情況下,執(zhí)行步驟16,將第一單元和第二單元之間的時鐘偏移評估為,上述基本時鐘偏移乘以O(shè)CV修正因子。下面描述上述流程的各個具體步驟。首先,在步驟11中獲取電路中各個時鐘樹的基本時鐘偏移。該基本時鐘偏移可采用現(xiàn)有技術(shù)中的評估和計算方法來獲得。在一個實施例中,一個時鐘樹的基本時鐘偏移被估計為T= a S+ β D (I)其中α和β是權(quán)重因子,這些權(quán)重因子可基于工藝參數(shù)計算獲得。在具體例子中,權(quán)重因子可從之前進(jìn)行的芯片電路設(shè)計的統(tǒng)計平均值中確定。S為該時鐘樹所涉及的各個時序邏輯單元所排布的物理區(qū)域的大小或面積。該區(qū)域面積可基于對電路中各個單元進(jìn)行的初步物理布局而獲得。D是該時鐘樹的路徑深度。具體地,路徑深度D可通過以下公式計算D = log2 (N/n) (2)其中,N是時鐘樹中涉及的時序邏輯單元的數(shù)目,η是最后一級時鐘緩沖器的扇出。由此,通過以上公式(I)和(2),可以估計出一個時鐘樹的基本時鐘偏移。以上是現(xiàn)有技術(shù)中估計時鐘樹的時鐘偏移的一種方式。本領(lǐng)域技術(shù)人員可以理解,現(xiàn)有技術(shù)中存在多種類似的評估時鐘樹的時鐘偏移的方法,例如用替代方式估計路徑深度D,用更具體的方式確定面積S,將物理面積S替換為單元之間的物理距離等等。作為現(xiàn)有技術(shù)的一部分,對于這樣的評估方式在此不一一進(jìn)行列舉。此外,本領(lǐng)域技術(shù)人員還可以在這些已知的評估方式的基礎(chǔ)上進(jìn)行修改從而獲得更多評估方式。通過以上各種方式評估得到的時鐘偏移均作為本發(fā)明實施例中所使用的基本時鐘偏移。·基于以上獲得的基本時鐘偏移,本發(fā)明的實施例進(jìn)一步考慮電路中各個單兀之間的跨時鐘域和跨層級的情況,以獲得更加準(zhǔn)確的時鐘偏移評估。具體地,在步驟12,判斷有待評估的第一單元和第二單元是否位于同一時鐘域中,也就是,是否采用同一時鐘生成邏輯產(chǎn)生的時鐘信號。一般地,如果第一單元和第二單元采用不同時鐘生成邏輯的時鐘信號,那么這兩個單元將會位于不同的時鐘樹中。因此,在一個實施例中,可以通過判斷時鐘樹來確定不同單元是否在同一時鐘域中?;蛘?,在另一實施例中,通過對網(wǎng)表進(jìn)行分析,判斷第一和第二時序邏輯單元需要的時鐘信號是否相同來進(jìn)行時鐘域的判斷。在一個實施例中,也可以將以上方式進(jìn)行組合來進(jìn)行步驟12的判斷?;蛘撸部梢圆捎帽绢I(lǐng)域技術(shù)人員能夠想到的其他方式來進(jìn)行上述判斷??梢岳斫?,對第一單元和第二單元時鐘域的判斷是以第一單元和第二單元之間有對話和交互為前提條件的。這是因為,如果兩個單元之間沒有任何交互,那么它們的時鐘可以完全互相獨立,即使時鐘之間存在偏差也不影響電路的設(shè)計。因此,只需要對存在交互的單元進(jìn)行判斷。作為步驟12的判斷結(jié)果,如果第一單元和第二單元并不處于同一時鐘域,那么方法流程執(zhí)行步驟13,在其中對第一單元和第二單元之間的時鐘偏移進(jìn)行評估。具體地,如果第一單元A和第二單元B處于不同時鐘域,那么兩者會位于不同的時鐘樹,例如時鐘樹A和時鐘樹B。可以理解,在步驟11中,已經(jīng)對各個時鐘樹的基本時鐘偏移進(jìn)行了估計,因此,可以得到時鐘樹A和B各自的基本時鐘偏移1\和1^基于此,在步驟13中,將第一單元A和第二單元B之間的時鐘偏移估計為T (Α, B) = max (TA, Tb) (3)也就是說,在兩個互相交互的單元分別屬于不同時鐘樹的情況下,兩個單元的時鐘偏移被估計為各個單元所對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個。在一個實施例中,在上述估計的時鐘偏移的基礎(chǔ)上添加OCV因子f進(jìn)行進(jìn)一步修正,即T (A, B) = max (TA, TB) focv (4)其中因子frev是與電路芯片制造技術(shù)相關(guān)的常數(shù)值。該常數(shù)值可通過對之前設(shè)計制造的同類芯片參數(shù)的測量和統(tǒng)計來獲得。例如,在一個實施例中,對于某種工藝規(guī)格的芯片(諸如,45nm級的Cu_45HP),因子可估計為{(較晚延遲-較早延遲)/較晚延遲}的平均值。由此,對于處于不同時鐘域的兩個時序邏輯單元,可以通過公式(3)或⑷評估單元之間的時鐘偏移。作為步驟12的判斷結(jié)果的另一分支,如果第一單元和第二單元處于同一時鐘域,那么方法流程執(zhí)行步驟14,在其中對單元所處的電路層級進(jìn)行判斷??梢岳斫猓S著集成電路功能的復(fù)雜化,許多集成電路對實現(xiàn)各種功能的邏輯塊進(jìn)行分層級地連接和管理。在一些情況下,上述的邏輯塊又稱為RLM(random logicmacro)。相應(yīng)地,在網(wǎng)表文件中會記錄各個單元所屬于的RLM及其所處的電路層級。因此,通過掃描和查閱網(wǎng)表信息,就可以判斷出第一單元和第二單元是否位于同一電路層級邏輯塊(hierarchical logic block)中,即,執(zhí)行步驟14的判斷。作為步驟14判斷的結(jié)果,如果第一單元和第二單元處于不同的電路層級邏輯塊, 那么方法流程進(jìn)行到步驟15,在其中將第一單元和第二單元之間的時鐘偏移評估為基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。下面結(jié)合兩個例子描述上述評估。圖2A示出一個電路的時鐘連接的例子。在圖2A的例子中,第一單元A位于電路的頂層,而第二單元B位于某一級RLM中,因此第一單元和第二單元處于不同電路層級邏輯塊。具體地,RLM B是比頂層低一層級的邏輯塊,而該RLM B進(jìn)一步包含了層級依次更低的RLM 2B,RLM 3B和RLM 4B。有待評估的第二單元B位于RLM 4B中,與位于頂層的第一單元A相隔4個層級。對于第一單元A來說,來自時鐘源的時鐘信號通過各個緩沖器的驅(qū)動,直接連接到第一單元A的時鐘輸入端。而對于第二單元B,同樣的時鐘信號要首先通過時鐘端口進(jìn)入RLM B,然后依次進(jìn)入各個RLM 2B-4B,最后到達(dá)第二單元B。因此,這些額外的時鐘路徑會帶來附加的時鐘延遲。對于圖2A所示的單元A和B及其時鐘連接,根據(jù)圖I中步驟15,在一個實施例中,將其時鐘偏移評估為T(A, B) = T+CLK(B) (5)其中T為步驟11中計算得到的單元A和B共同所在的時鐘樹的基本時鐘偏移。通常地,該基本時鐘偏移對應(yīng)于針對分層電路的頂層邏輯所估計的時鐘偏移。CLK(B)是單元B與電路頂層的邏輯塊層級差異引起的時鐘偏移。具體地,在一個例子中,CLK(B)可通過自上而下地對RLMB中的附加時鐘路徑進(jìn)行計算而獲得,也就是CLK (B) = CLB+CL2B+CL3B. · · (6)其中,CLiB是從RLM Β到RLM(i+l)B的路徑所引起的時鐘延遲,如圖2A所示。更一般地,對于距離電路頂層相隔η個層級的邏輯塊中的單元,該單元與電路頂層的邏輯塊層級差異引起的時鐘偏移可以表示為CLK = V" CL1(7)其中CLi是從第i級邏輯塊到第i+Ι級邏輯塊的路徑所引起的時鐘延遲。在一個例子中,通過評估從第i級邏輯塊到(i+Ι)級邏輯塊的路徑長度計算該段的CLitl在一個例子中,進(jìn)一步考慮從第i級邏輯塊到第(i+Ι)級邏輯塊的路徑中的負(fù)載(例如緩沖器)的信息來計算該段CLitl在另一個例子中,進(jìn)一步考慮時鐘路徑通過各級RLM時鐘端口引起的時鐘偏移,由此修正CLit5可以理解,本領(lǐng)域技術(shù)人員還可以根據(jù)精度需要,采用其他方式計算從第i級邏輯塊到第(i+Ι)級邏輯塊的時鐘路徑引起的CLi,由此計算得到 CLK。針對上述第二單元B,基于以上計算,可以得到CLK(B),給出單元B的時鐘信號所經(jīng)過的與電路頂層相比不同的那部分路徑。由此,通過公式(5)和¢),可以將邏輯塊層級差異所引起的時鐘偏差考慮在內(nèi),改善對時鐘偏差的評估。在一個例子中,還可以引入OCV因子進(jìn)一步修正上述結(jié)果,SP T(A, B) = {T+CLK (B)} * focv,其中frev的定義與公式(4)相同。圖2B示出電路中時鐘連接的另一例子。在圖2B的例子中,第一單元A位于RLM A所包含的RLM 2A中,第二單元B與圖2A相同,位于與電路頂層相差4個層級的RLM 4B中。因此,第一單元A和第二單元B都沒有處于電路頂層,但是這兩個單元處于彼此不同的電路層級邏輯塊。來自同一時鐘源的時鐘信號分別通過各個時鐘端口依次進(jìn)入各個層級的RLM,然后連接到單元A和單元B的時鐘輸入端。對于圖2B所示的單元A和B及其時鐘連接,根據(jù)圖I中步驟15,在一個實施例中,將其時鐘偏移評估為T (A, B) = T+max {CLK (A),CLK (B)} (8)其中T為單元A和B共同所在的時鐘樹的基本時鐘偏移,CLK(A)和CLK(B)分別是單元A和B與電路頂層的邏輯塊層級差異引起的時鐘偏移。在一個例子中,可利用公式
(7),通過自上而下地對附加時鐘路徑進(jìn)行計算而獲得CLK (A)和CLK (B),也就是CLK (A) = CLA+CL2A+. · ·CLK(B) = CLB+CL2B+CL3B. · · (9)其中,CLiA和CLiB所對應(yīng)的附加路徑如圖2B所示。由于不同RLM之內(nèi)不會存在共同的路徑,因此,此處將CLK (A)和CLK⑶中較大的一個作為邏輯塊層級差異引起的時鐘偏差,由此改善對時鐘偏差的評估。在一個例子中,還可以引入OCV因子進(jìn)一步修正上述結(jié)果,SP T(A,B) = {T+max{CLK(A),CLK(B)}} * focv其中frev的定義與公式(4)相同。以上結(jié)合兩個典型例子描述了在第一單元和第二單元處于不同電路層級邏輯塊的情況下,對單元之間時鐘偏移的評估方法。通過以上具體描述可以看出,在評估時鐘偏移時,根據(jù)以上實施例的方法在步驟15進(jìn)一步考慮了由于邏輯塊層級差異引起的時鐘偏移。更具體而言,上述方法考慮了各個單元與頂層電路之間的邏輯塊層級差異所對應(yīng)的時鐘路徑差異,基于這樣的時鐘路徑差異估計邏輯塊層級差異引起的時鐘偏移。作為步驟14的判斷結(jié)果的另一分支,如果判斷結(jié)果為“是”,則圖I的流程執(zhí)行步驟16。換而言之,如果第一單元和第二單元處于同一時鐘域并且處于同一電路層級邏輯塊中,那么在步驟16中評估兩個單元之間的時鐘偏移。具體地,在這種情況下,第一單元和第二單元不存在因為時鐘域差異和邏輯塊層級差異引起的時鐘偏移,因此,可以利用步驟11得到的基本時鐘偏移來表征它們之間的時鐘偏移。在一個實施例中,引入OCV因子修正步驟11中的結(jié)果,即T(A,B) = T * ^ν,其中frev的定義與公式(4)相同。由此,利用圖I所示流程圖的方法,通過進(jìn)一步考慮時鐘域和電路層級的影響,來改善對時鐘偏移的評估。以下結(jié)合幾個具體例子描述上述評估結(jié)果與現(xiàn)有技術(shù)評估結(jié)果的比對。
圖3A示出一個電路時鐘路徑的例子。在該例子中,時序單元A和B分別位于RLMl和RLM2中,并且分別從不同的時鐘生成邏輯DSKl和DSK2獲得時鐘信號。也就是說,單元A和單元B屬于跨時鐘域的時序單元。然而,根據(jù)現(xiàn)有技術(shù),評估工具不能意識到跨時鐘域的問題,而是僅僅從物理排布和路徑長度上評估時鐘偏移,因此會得出單元A和單元B之間時鐘偏移很小的錯誤結(jié)論。這樣的錯誤結(jié)論往往只能在插入時鐘樹,對時序進(jìn)行協(xié)調(diào)時才能發(fā)現(xiàn)。這就需要重新進(jìn)行物理布局和時鐘樹的插入,降低了開發(fā)效率。根據(jù)本發(fā)明的實施例,考慮到單元A和單元B之間的時鐘域差異,可以正確估計到兩個單元之間存在很大的時鐘偏移。對時鐘偏移 的正確估計可以使得設(shè)計人員在早期階段就發(fā)現(xiàn)并解決這一問題。例如,設(shè)計人員可以對時鐘設(shè)置進(jìn)行改進(jìn),如圖3B所示??梢钥粗罥j,通過將兩個時鐘生成邏輯DSKl和DSK2移動到更接近RLM時鐘端口的位置,可以減小單元A和B之間的時鐘偏移。由此,可以在時鐘樹插入之前就發(fā)現(xiàn)并解決時鐘偏移的問題,節(jié)省了時間,提高了效率。圖4A示出另一個電路時鐘路徑的例子。在該例子中,電路局部包含四個時序單元A,B,C和D (例如,可以是寄存器),其中A和D分別位于RLMl和RLM2中,而單元B和C位于電路頂層。根據(jù)現(xiàn)有技術(shù),評估工具不能意識到電路中的層級差異,因此會認(rèn)為四個單元間的時鐘偏移都符合要求。然而,根據(jù)本發(fā)明的實施例,通過考慮層級因素,可以評估得到單元A和B之間,和單元C和D之間的時鐘偏移都相對較大??梢詫⑦@樣的評估結(jié)果輸入給布局輔助工具。由此,布局輔助工具可以對布局進(jìn)行調(diào)整,以盡量減小A和B,以及C和D之間的時鐘偏移。例如,在一個例子中,可以將布局調(diào)整為圖4B所示的改進(jìn)的狀態(tài)。在圖4B中,單元B被放置到較為接近RLMl的位置,單元C被放置在較為接近RLM2的位置,以此減小原有的A和B,以及C和D之間的時鐘偏移。由此,基于根據(jù)本發(fā)明實施例正確評估的時鐘偏移,可以更好地調(diào)整物理布局,獲得時序收斂的電路設(shè)計。綜合以上,根據(jù)本發(fā)明實施例的評估方法可以在原有評估結(jié)果基礎(chǔ)上,引入時鐘域和電路層級所引起的附加時鐘偏移,更準(zhǔn)確地獲得時鐘偏移的估計,從而便于發(fā)現(xiàn)和修正時鐘偏移帶來的時序問題?;谕话l(fā)明構(gòu)思,本發(fā)明還提供用于評估時鐘偏移的裝置。圖5示出根據(jù)本發(fā)明一個實施例的用于評估時鐘偏移的裝置的示意框圖。如圖5所示,該裝置總體用50表示。具體地,裝置50包括基本偏移獲取模塊51,配置為獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移;時鐘域判斷模塊52,配置為判斷電路中的第一單元和第二單元是否處于同一時鐘域中;第一評估模塊53,配置為響應(yīng)于第一單兀和第二單兀處于不同時鐘域,將其時鐘偏移評估為,第一單元和第二單元所分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個;層級判斷模塊54,配置為判斷第一單元和第二單元是否位于同一電路層級邏輯塊中;以及第二評估模塊55,配置為響應(yīng)于第一單元和第二單元位于不同層級邏輯塊,將其時鐘偏移評估為,時鐘樹的基本時鐘偏移加上與不同層級邏輯塊相關(guān)的時鐘偏移。在一個實施例中,上述基本時鐘偏移與時鐘樹中包含的時序邏輯單兀的物理布局和該時鐘樹的路徑深度相關(guān)。在一個實施例中,所述時鐘域判斷模塊和層級判斷模塊通過查閱該電路對應(yīng)的網(wǎng)表來執(zhí)行其判斷。
在一個實施例中,第一單元位于電路頂層的邏輯塊中,第二單元位于與頂層相隔η個層級的邏輯塊中。在此情況下,上述由不同層級邏輯塊引起的時鐘偏移為,第二單元與電路頂層的邏輯塊層級差異引起的時鐘偏移。在一個實施例中,第一單元和第二單元分別位于與頂層相隔m和η個層級的邏輯塊中。在此情況下,所述由不同層級邏輯塊引起的時鐘偏移為,第一單元和第二單元各自與電路頂層的邏輯塊層級差異引起的時鐘偏移中的較大的一個。在一個實施例中,通過公式CZX= Zil1 CA計算各個單元與電路頂層的邏輯塊層級差異引起的時鐘偏移,其中CLi是從第i級邏輯塊到第i+Ι級邏輯塊的時鐘路徑所引起的時鐘延遲。在一個實施例中,上述CLi通過以下中的至少一項來評估從第i級邏輯塊到(i+Ι)級邏輯塊的路徑長度;從第i級邏輯塊到第(i+Ι)級邏輯塊的路徑中的負(fù)載;時鐘路徑通過各級邏輯塊的時鐘端口引起的時鐘延遲。在一個實施例中,所述第一評估模塊、第二評估模塊還配置為,對評估的時鐘偏移 引入OCV因子進(jìn)行修正。以上各個模塊的具體執(zhí)行方式與參照圖I的流程方法進(jìn)行的描述相同,在此不再贅述。由此獲得的評估時鐘偏移的裝置50可以集成到現(xiàn)有的各種工具中,例如現(xiàn)有的時鐘評估工具、布局輔助工具(諸如ros)等,或者也可以體現(xiàn)為一個單獨的工具或設(shè)備。此外,以上所述的用于評估時鐘偏移的方法和裝置可以利用計算系統(tǒng)來實現(xiàn)。圖6示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算系統(tǒng)100的框圖。如所示,計算機系統(tǒng)100可以包括CPU(中央處理單元)101、RAM(隨機存取存儲器)102、R0M(只讀存儲器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU IOU RAM 102、ROM 103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當(dāng)理解,圖10所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。雖然以上結(jié)合具體實施例,對本發(fā)明的各個裝置和方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說明書教導(dǎo)之下對本發(fā)明進(jìn)行多種變換、替換和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、替換、修改仍然落入本發(fā)明的保護范圍之內(nèi)。本發(fā)明的 保護范圍由所附權(quán)利要求來限定。
權(quán)利要求
1.一種用于評估時鐘偏移的方法,包括 獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移; 判斷電路中的第一單元和第二單元是否位于同一時鐘域中; 響應(yīng)于第一單元和第二單元位于不同時鐘域,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個; 響應(yīng)于第一單元和第二單元位于同一時鐘域,進(jìn)一步判斷第一單元和第二單元是否位于同一電路層級邏輯塊中; 響應(yīng)于第一單元和第二單元位于不同層級邏輯塊,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元所在的時鐘樹的基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。
2.根據(jù)權(quán)利要求I的方法,其中所述基本時鐘偏移與時鐘樹中包含的時序邏輯單元的物理布局和該時鐘樹的路徑深度相關(guān)。
3.根據(jù)權(quán)利要求I的方法,其中判斷電路中的第一單元和第二單元是否位于同一時鐘域中以及判斷第一單元和第二單元是否位于同一電路層級中均通過查閱該電路對應(yīng)的網(wǎng)表來執(zhí)行判斷。
4.根據(jù)權(quán)利要求I的方法,其中第一單元位于電路頂層的邏輯塊中,第二單元位于與頂層相隔η個層級的邏輯塊中,所述由不同層級邏輯塊引起的時鐘偏移為,第二單元與電路頂層的邏輯塊層級差異引起的時鐘偏移。
5.根據(jù)權(quán)利要求I的方法,其中第一單元和第二單元分別位于與頂層相隔m和η個層級的邏輯塊中,所述由不同層級邏輯塊引起的時鐘偏移為,第一單元和第二單元各自與電路頂層的邏輯塊層級差異引起的時鐘偏移中的較大的一個。
6.根據(jù)權(quán)利要求4或5的方法,其中通過公式CZX= cA計算各個單元與電路頂層的邏輯塊層級差異引起的時鐘偏移,其中CLi是從第i級邏輯塊到第i+Ι級邏輯塊的時鐘路徑所引起的時鐘延遲。
7.根據(jù)權(quán)利要求6的方法,其中CLi通過以下中的至少一項來評估從第i級邏輯塊到(i+Ι)級邏輯塊的路徑長度;從第i級邏輯塊到第(i+Ι)級邏輯塊的路徑中的負(fù)載;時鐘路徑通過各級邏輯塊的時鐘端口引起的時鐘延遲。
8.根據(jù)權(quán)利要求I的方法,還包括,對評估的時鐘偏移引入OCV因子進(jìn)行修正。
9.一種用于評估時鐘偏移的裝置,包括 基本偏移獲取模塊,配置為獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移; 時鐘域判斷模塊,配置為判斷電路中的第一單元和第二單元是否位于同一時鐘域中; 第一評估模塊,配置為,響應(yīng)于第一單元和第二單元位于不同時鐘域,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個; 層級判斷模塊,配置為,響應(yīng)于第一單元和第二單元位于同一時鐘域,判斷第一單元和第二單元是否位于同一電路層級邏輯塊中; 第二評估模塊,配置為,響應(yīng)于第一單元和第二單元位于不同層級邏輯塊,將第一單元和第二單元之間的時鐘偏移評估為,第一單元和第二單元所在的時鐘樹的基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。
10.根據(jù)權(quán)利要求9的裝置,其中所述基本時鐘偏移與時鐘樹中包含的時序邏輯單元的物理布局和該時鐘樹的路徑深度相關(guān)。
11.根據(jù)權(quán)利要求9的裝置,其中時鐘域判斷模塊和層級判斷模塊通過查閱該電路對應(yīng)的網(wǎng)表來執(zhí)行判斷。
12.根據(jù)權(quán)利要求9的裝置,其中第一單元位于電路頂層的邏輯塊中,第二單元位于與頂層相隔η個層級的邏輯塊中,所述由不同層級邏輯塊引起的時鐘偏移為,第二單元與電路頂層的邏輯塊層級差異引起的時鐘偏移。
13.根據(jù)權(quán)利要求9的方法,其中第一單元和第二單元分別位于與頂層相隔m和η個層級的邏輯塊中,所述由不同層級邏輯塊引起的時鐘偏移為,第一單元和第二單元各自與電路頂層的邏輯塊層級差異引起的時鐘偏移中的較大的一個。
14.根據(jù)權(quán)利要求12或13的裝置,其中通過公式CZX= Zil1CA計算各個單元與電路頂層的邏輯塊層級差異引起的時鐘偏移,其中CLi是從第i級邏輯塊到第i+Ι級邏輯塊的時鐘路徑所引起的時鐘延遲。
15.根據(jù)權(quán)利要求14的方法,其中CLi通過以下中的至少一項來評估從第i級邏輯塊到(i+Ι)級邏輯塊的路徑長度;從第i級邏輯塊到第(i+Ι)級邏輯塊的路徑中的負(fù)載;時鐘路徑通過各級邏輯塊的時鐘端口引起的時鐘延遲。
16.根據(jù)權(quán)利要求9的裝置,所述第一評估模塊、第二評估模塊還配置為,對評估的時鐘偏移引入OCV因子進(jìn)行修正。
全文摘要
提供了用于評估時鐘偏移的方法和裝置,所述方法包括獲取電路中各個時鐘樹對應(yīng)的基本時鐘偏移;判斷兩個單元是否位于同一時鐘域中;在其位于不同時鐘域的情況下,將單元之間的時鐘偏移評估為,兩個單元分別對應(yīng)的時鐘樹的基本時鐘偏移中較大的一個;在兩個單元位于同一時鐘域的情況下,進(jìn)一步判斷其是否位于同一電路層級邏輯塊中;在其位于不同層級邏輯塊的情況下,將單元之間的時鐘偏移評估為,兩個單元所在的時鐘樹的基本時鐘偏移加上由不同層級邏輯塊引起的時鐘偏移。所述裝置與方法對應(yīng)。利用上述方法和裝置,能夠更加準(zhǔn)確地評估電路中的時鐘偏移,從而提高電路設(shè)計的效率。
文檔編號G06F17/50GK102955869SQ20111025411
公開日2013年3月6日 申請日期2011年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者李恭瓊, 戴紅衛(wèi), 談珺, 牛佳 申請人:國際商業(yè)機器公司