專利名稱:一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及集成電路設(shè)計(jì),更具體地,涉及一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法和系統(tǒng)。
背景技術(shù):
在集成電路技術(shù)領(lǐng)域中,專用集成電路(ASIC)是指應(yīng)特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計(jì)、制造的集成電路。ASIC的特點(diǎn)是面向特定用戶的需求,在批量生產(chǎn)時(shí)與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強(qiáng)、成本降低等優(yōu)點(diǎn)。圖I示出了現(xiàn)有的專用集成電路設(shè)計(jì)的流程,在步驟S101,生成門級網(wǎng)表(GateLevel Netlist),在步驟S102,進(jìn)行布局(Full Placment)。在步驟S103,執(zhí)行靜態(tài)時(shí)序分析 (Static Timing Analysis),該步驟對于時(shí)鐘效應(yīng)的預(yù)計(jì)采用理想時(shí)鐘模型(Ideal ClockModel)的方式。在步驟S104,插入時(shí)鐘樹(Insert Clock Tree),也稱時(shí)鐘樹規(guī)劃?,F(xiàn)有的時(shí)鐘樹規(guī)劃過程可以手工完成,也可以由電子設(shè)計(jì)自動(dòng)化(EDA)工具來完成的,最流行的時(shí)鐘樹都采用自動(dòng)化工具來完成。其基本原理是根據(jù)各時(shí)序器件到時(shí)鐘源的距離,在適當(dāng)?shù)奈恢梅胖镁彌_器(buffer)以使時(shí)鐘源到每個(gè)時(shí)序器件的時(shí)鐘偏差(skew)最小化。插入的由緩沖器組成的樹狀的信號(hào)中繼網(wǎng)絡(luò)被稱為時(shí)鐘樹。插入的時(shí)鐘樹要求能夠滿足時(shí)序約束文件中的時(shí)序約束,從而保持時(shí)序的收斂性,達(dá)到設(shè)計(jì)的效果。然后在步驟S105,進(jìn)行帶時(shí)鐘的時(shí)序分析以及時(shí)鐘樹調(diào)節(jié),在步驟S106,進(jìn)行步線以及布線后時(shí)序收斂分析,即時(shí)鐘平衡;最后在步驟S107,生成版圖。這樣,就完成了一個(gè)初步的設(shè)計(jì)流程。然而,上述圖I的設(shè)計(jì)流程在現(xiàn)代超大規(guī)模專用集成電路的設(shè)計(jì)中遇到了一些問題,主要體現(xiàn)在隨著專用集成電路的規(guī)模越來越大,時(shí)鐘樹規(guī)劃這一工作本身也越來越耗時(shí)。對于千萬門級的超大規(guī)模專用集成電路來講,現(xiàn)有的設(shè)計(jì)工具采用的設(shè)計(jì)原則是使得所有的時(shí)鐘樹的終端(也就是時(shí)序器件,例如寄存器,SRAM等)的時(shí)鐘偏差和時(shí)鐘延遲盡可能小,例如Clock Designer, Encounter, ICC等設(shè)計(jì)工具就是依照這樣的設(shè)計(jì)原則,對每一個(gè)時(shí)序器件進(jìn)行時(shí)鐘平衡,使得時(shí)鐘樹規(guī)劃、時(shí)鐘樹插入以及時(shí)鐘樹調(diào)節(jié)的耗時(shí)往往要以天甚至周來計(jì)算,造成設(shè)計(jì)周期長,產(chǎn)品不能很快上市。在諸如Clock Designer, Encounter, ICC等設(shè)計(jì)工具還存在和上述實(shí)施方式相結(jié)合的另一種時(shí)鐘樹的規(guī)劃方式,該實(shí)施方式中電路設(shè)計(jì)人員通過與邏輯設(shè)計(jì)人員溝通,將所有的時(shí)序器件進(jìn)行分組,然后在每一組時(shí)序器件內(nèi)部進(jìn)行時(shí)鐘平衡,最后考慮各組間的時(shí)鐘平衡。由于時(shí)序器件的數(shù)量非常大,這種溝通需要反復(fù)迭代,設(shè)計(jì)周期依然很長。上述兩個(gè)現(xiàn)有的解決方案都會(huì)造成產(chǎn)品設(shè)計(jì)周期過長,可能錯(cuò)過了有利的市場時(shí)機(jī)
發(fā)明內(nèi)容
因此,需要一種方法,該方法使得設(shè)計(jì)人員能夠迅速規(guī)劃時(shí)鐘樹,從而減少設(shè)計(jì)時(shí)間。本發(fā)明提出了的一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法和系統(tǒng),其中對時(shí)序器件分組,分組后,沒有時(shí)序約束的器件被分在不同組內(nèi),減少同一個(gè)時(shí)鐘樹根節(jié)點(diǎn)連接的時(shí)序器件的數(shù)量,最大程度減少時(shí)鐘樹內(nèi)的冗余平衡,降低時(shí)鐘樹平衡的復(fù)雜度,這樣在組內(nèi)就可以使用現(xiàn)有的設(shè)計(jì)工具中采用的使得所有的時(shí)鐘樹的終端(也就是時(shí)序器件)的時(shí)鐘偏差和時(shí)鐘延遲盡可能小的設(shè)計(jì)原則插入時(shí)鐘樹,達(dá)到時(shí)鐘平衡。使用該方法改進(jìn)的專用集成電路設(shè)計(jì)方法和系統(tǒng)可以將設(shè)計(jì)流程從周為單位減少到天,設(shè)計(jì)人員能夠迅速規(guī)劃時(shí)鐘樹,因此減少了設(shè)計(jì)時(shí)間,提高了設(shè)計(jì)效率。根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法,包括確定該專用集成電路的網(wǎng)表和時(shí)序約束文件;根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖; 根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另一組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的系統(tǒng),包括確定裝置,被配置為確定該專用集成電路的網(wǎng)表和時(shí)序約束文件;時(shí)序器件無向圖建立裝置,被配置為根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖;分組裝置,被配置為根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另一組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。
通過對附圖中本發(fā)明示例實(shí)施例方式的更詳細(xì)描述,本發(fā)明的上述、以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,相同的參考標(biāo)號(hào)通常代表本發(fā)明示例實(shí)施例方式中的相同部件。圖I示出了現(xiàn)有的專用集成電路設(shè)計(jì)的流程;圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法步驟;圖3示出了圖2中步驟S202的具體流程;圖4示出了一個(gè)示例性的專用集成電路;圖5示出了異步時(shí)鐘的定義;圖6示出了假性路徑的定義;圖7示出了多周期路徑的定義;圖8示出了為圖4所示的專用集成電路建立的連接無向圖、時(shí)序無向圖以及時(shí)序器件無向圖;圖9示出了對另外一個(gè)未示出網(wǎng)表以及時(shí)序約束文件的專用集成電路,建立的連接無向圖、時(shí)序無向圖以及時(shí)序器件無向圖;以及
圖10示出了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的系統(tǒng)的結(jié)構(gòu)。
具體實(shí)施例方式將參照附圖更加詳細(xì)地描述本發(fā)明的優(yōu)選實(shí)施方式,在附圖中顯示了本發(fā)明的優(yōu)選實(shí)施例。然而,本發(fā)明可以以各種形式實(shí)現(xiàn)而不應(yīng)該理解為被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了使本發(fā)明更加透徹和完整,并且,完全將本發(fā)明的范圍傳達(dá)給本領(lǐng)域的技術(shù)人員。首先明確一些基本概念以便后面發(fā)明的描述。網(wǎng)表表達(dá)數(shù)字電路的器件的拓?fù)溥B接關(guān)系的文件或者數(shù)據(jù)結(jié)構(gòu)。時(shí)鐘樹插入的由緩沖器組成的樹狀的信號(hào)中繼網(wǎng)絡(luò)被稱為時(shí)鐘樹。因此, 一個(gè)專用集成電路一般有一個(gè)或多個(gè)時(shí)鐘樹。時(shí)鐘樹的延遲時(shí)間(latency):是指對于一個(gè)單獨(dú)的時(shí)鐘樹,時(shí)鐘信號(hào)從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的傳遞時(shí)間為時(shí)鐘樹的延遲時(shí)間。時(shí)鐘樹的偏差(Skew):是指對于一個(gè)單獨(dú)的時(shí)鐘樹上的各個(gè)時(shí)序器件,時(shí)鐘樹的延遲時(shí)間的不同。時(shí)鐘樹效應(yīng)本發(fā)明中是指時(shí)鐘樹的時(shí)序效應(yīng),主要包括時(shí)鐘樹的延遲,和時(shí)鐘樹
的偏差。在現(xiàn)有的專用集成電路設(shè)計(jì)領(lǐng)域,邏輯設(shè)計(jì)人員與電路設(shè)計(jì)人員是兩組不同的設(shè)計(jì)人員,邏輯設(shè)計(jì)人員了解電路的功能及要求,而電路設(shè)計(jì)人員只是根據(jù)邏輯設(shè)計(jì)人員的設(shè)計(jì)要求進(jìn)行電路設(shè)計(jì),他們并不具體了解電路的功能。在業(yè)界,由邏輯設(shè)計(jì)人員交給電路設(shè)計(jì)人員的標(biāo)準(zhǔn)交付件包括網(wǎng)表和時(shí)序約束文件。然后電路設(shè)計(jì)人員完成圖I的步驟S102到步驟S107的設(shè)計(jì)過程。時(shí)序設(shè)計(jì)要求設(shè)計(jì)的電路滿足時(shí)序約束文件中的時(shí)序要求,例如,對于一個(gè)時(shí)鐘樹中的所有時(shí)序器件,時(shí)鐘樹的延遲是相同的,也就是時(shí)鐘信號(hào)基本同時(shí)達(dá)到各個(gè)時(shí)序器件的時(shí)鐘管腳,如果有些時(shí)序器件延遲大,有些時(shí)序器件延遲小,就在延遲小的時(shí)序器件的時(shí)序路徑中插入緩沖器,增大延遲,最后使得時(shí)鐘信號(hào)基本同時(shí)達(dá)到各個(gè)時(shí)序器件的時(shí)鐘管腳,時(shí)鐘樹的偏差最小,達(dá)到時(shí)鐘樹平衡。另外有一些時(shí)序器件之間不存在時(shí)序約束,就無需平衡。對于一個(gè)時(shí)序器件很多的復(fù)雜設(shè)計(jì),在本發(fā)明提供的時(shí)鐘樹規(guī)劃方法(即圖I的步驟S104)中,可以進(jìn)一步分為兩個(gè)步驟首先對時(shí)序器件分組,使得每組時(shí)序器件之間不存在時(shí)序約束,只有組內(nèi)的時(shí)序器件之間存在時(shí)序約束;然后對每一組時(shí)序器件,采用現(xiàn)有的時(shí)鐘樹規(guī)劃方法滿足時(shí)序平衡。在本發(fā)明的一種實(shí)施方式中,提供了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法,可以使得每組時(shí)序器件之間不存在時(shí)序約束,只有組內(nèi)的時(shí)序器件之間存在時(shí)序約束,并且電路設(shè)計(jì)人員無需與邏輯設(shè)計(jì)人員迭代溝通,只需要獲得標(biāo)準(zhǔn)交付件,即可執(zhí)行。圖2示意性地示出了該方法的步驟,并且結(jié)合一個(gè)實(shí)例,來陳述該方法步驟。根據(jù)圖2,在步驟S201,確定該專用集成電路的網(wǎng)表和時(shí)序約束文件。圖4示出了一個(gè)示例性的專用集成電路,圖4中,左邊的Clk信號(hào)表示時(shí)鐘信號(hào)的源端,Data I和Data 2表示數(shù)據(jù)輸出,Data3和Data 4表不數(shù)據(jù)輸入,每個(gè)REG表不一個(gè)時(shí)序器件,AND表不與門,OR表不一個(gè)或門。圖4的專用集成電路的網(wǎng)表如下。該網(wǎng)表至少包含構(gòu)成該時(shí)鐘樹的源器件Clk和時(shí)序器件REG及其連接關(guān)系。這里,時(shí)鐘樹的源端為所述構(gòu)成該時(shí)鐘樹的源器件的時(shí)鐘輸入端,時(shí)鐘樹的終端為所述構(gòu)成該時(shí)鐘樹的源器件的時(shí)鐘輸出端。圖4所示的專用集成電路的網(wǎng)表的內(nèi)容如下
input Datal, Data2, Clkl, Clk2;
output Data3, Data4;
wire Netl,Net2, Net3, Net4, Net5, Net6, Net7;
REG REG1( //定義第一時(shí)序器件的連接關(guān)系;
.D (Datal), //第一時(shí)序器件的管腳D與Datal相連;
.E (Clkl), //第一時(shí)序器件的管腳E與Clkl相連;
.L2(Netl) //第一時(shí)序器件的管腳L2與Netl相連;);
REG REG2( //定義第二時(shí)序器件的連接關(guān)系;
.D (Net3),
.E (Clkl),
丄 2(Net4)
);
REG REG3( //定義第三時(shí)序器件的連接關(guān)系;
.D (Net4),
.E (Clk2),
丄 2(Net5)
);
REG REG4(
.D (Net5),
.E (Clk2),
丄 2(Data3)
);
REG REG5(
.D (Data2),
.E (Clk2),
丄 2(Net7)
);
REG REG6(
.D (Net7),
.E (Clk2),
丄 2(Data4)
);
AND AND1( //定義第一與門的連接關(guān)系;
.A(NETl),
.B(VDD),
.Y(NET2)
);
OR ORl( //定義第一或門的連接關(guān)系;
.A(NET2),
.B(NETl),
.Y(NET3)
);圖4所示的專用集成電路的時(shí)序約束文件的內(nèi)容如下Timing Constraint create—clock CLKl [get—ports Clkl]-period 10-waveform{05} # 產(chǎn)生一個(gè)時(shí)
鐘,周期為10,上升沿為0,下降沿在5create—clock CLK2[get—ports Clk2]-period 14-waveform{07}set—clock—uncertaintyO. l[get—clocks CLK1]# 設(shè)置時(shí)鐘邊沿抖動(dòng)
set_clock_uncertaintyO. I[get_clocks CLK2]set_input_delay-clock CLKl 4 [get_ports {Datal} ] # 設(shè)置信號(hào)的輸入延遲set_input_delay-clock CLK2 3[get_ports{Data2}]set_output_delay I [get_ports {Data3} ] # 設(shè)置信號(hào)的輸出延遲set_output_delay I[get_ports{Data4}]set_clock_group-asynchronous-name gI-group CLKI-group CLK2#設(shè)置CLKl和CLK2之間為異步時(shí)鐘
set_false_path-from REG5/L2_to REG6/D # 設(shè)置兩點(diǎn)路徑為假性約束路徑set_multicycle_path 2-from REGl/L2_to REG2/D # 設(shè)置路徑為多周期延遲路
徑返回圖2,在步驟S202,根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖。圖3示出了圖2中步驟S202的具體流程,根據(jù)圖3,在步驟S301,根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系,為網(wǎng)表中的時(shí)序器件建立連接無向圖;在步驟S302,根據(jù)時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖;在步驟S303,通過合并連接無向圖和時(shí)序無向圖,獲得時(shí)序器件無向圖。在建立連接無向圖的過程中,首先要獲得網(wǎng)表中的時(shí)序器件。數(shù)字電路的每一個(gè)器件(包括IP),都有表示是否時(shí)序器件的標(biāo)記,作為器件的特征之一,列舉在設(shè)計(jì)的庫文件中。因此,在獲得時(shí)鐘樹相關(guān)的網(wǎng)表之后,根據(jù)某器件的類型,逐一查對庫文件,就可以判斷該器件是否為時(shí)序器件。這樣,就可以提取所述時(shí)鐘樹連接的所有時(shí)序器件。另外一種實(shí)施方式中,可以使用某種數(shù)據(jù)結(jié)構(gòu)(例如表、數(shù)組等)列出網(wǎng)表中所涉及的所有時(shí)序器件的名稱,然后用程序排查網(wǎng)表中的所有器件的名稱是否在該數(shù)據(jù)結(jié)構(gòu)所列出的名稱范圍之內(nèi),從而獲得所有時(shí)序器件。然后在連接無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;最后在連接無向圖的節(jié)點(diǎn)之間建立連接邊,其中,連接無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的連接邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件在網(wǎng)表中是通過路徑連接的。這里,時(shí)序器件在網(wǎng)表中是否通過路徑連接是根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系來判斷的。上述路徑包括連接路徑或者組合路徑。這里,連接路徑指兩個(gè)時(shí)序器件直接相連;組合路徑包含器件路徑和分支路徑,其中,器件路徑指兩個(gè)時(shí)序器件之間通過至少一個(gè)非時(shí)序器件相連,分支路徑指兩個(gè)時(shí)序器件相連的部分存在電路分支。也就是說,兩個(gè)時(shí)序器件之間只要有一條路徑相通,無論該條路徑中間包含多少器件和分支路徑,都在兩個(gè)時(shí)序器件對應(yīng)的節(jié)點(diǎn)之間建立一條連接邊。由于在網(wǎng)表中包含了所有器件的連接關(guān)系,通過這些連接關(guān)系,就可以判斷任意兩個(gè)時(shí)序器件之間是否通過路徑相連。時(shí)序無向圖的建立比較復(fù)雜。時(shí)序無向圖中,仍然將網(wǎng)表中的時(shí)序器件表示為一個(gè)節(jié)點(diǎn),在時(shí)序約束文件中,只要符合下列三種情況之一,就在兩個(gè)時(shí)序器件之間建立一條時(shí)序邊。(I)異步時(shí)鐘(Asynchronous Clocks):圖5示出了異步時(shí)鐘的定義,兩個(gè)時(shí)序器件有各自驅(qū)動(dòng)的時(shí)鐘,無法預(yù)知兩個(gè)時(shí)鐘的上升或下降沿之間的關(guān)系,則時(shí)序無向圖中在這兩個(gè)時(shí)序器件之間建立一條時(shí)序邊。(2)假性路徑(False Path):圖6示出了假性路徑的原理,兩個(gè)時(shí)序器件有路徑,但是它們之間不需要做時(shí)序約束,稱為假性路徑。時(shí)序無向圖中,在存在假性路徑的時(shí)序器件之間建立一條時(shí)序邊。(3)多周期路徑(Multicycle path with enough margin):通常兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)為一個(gè)時(shí)鐘周期,當(dāng)兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)超過一個(gè)時(shí)鐘周期的約束時(shí),稱為多周期路徑,圖7示出了多周期路徑的定義。時(shí)序無向圖中,可以在存在多周期路徑的時(shí)序器件之間建立一條時(shí)序邊。應(yīng)當(dāng)可以理解的是,在上述三種情況下,時(shí)鐘都不需要平衡。因此,在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊時(shí),時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的如果建立了時(shí)序邊,就表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在上述時(shí)序約束的至少之一。建立時(shí)序邊的時(shí)序器件之間不需要時(shí)鐘平衡。這里,異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系,換句話說,時(shí)序約束文件中包含了很多時(shí)序約束關(guān)系,異步時(shí)鐘、假性路徑和多周期路徑是其中的一種約束關(guān)系類型,但是 并不表示時(shí)序約束文件中都包含這種時(shí)序約束關(guān)系,可能時(shí)序約束文件中不包含任何上述二種時(shí)序約束關(guān)系的一種,這時(shí),時(shí)序無向圖中就只有節(jié)點(diǎn),不存在時(shí)序邊。在進(jìn)一步的實(shí)施方式中,對多周期路徑可以設(shè)定一個(gè)參數(shù),該參數(shù)表示兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)超過該設(shè)定的時(shí)鐘周期數(shù)才在兩個(gè)時(shí)序器件之間建立一條時(shí)序邊。這時(shí),時(shí)序無向圖的建立過程就包括首先在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;然后在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之一異步時(shí)鐘;假性路徑;多周期路徑并且兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)超過了預(yù)設(shè)的時(shí)鐘周期數(shù);其中異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。如果兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間不存在上述時(shí)序約束關(guān)系,兩個(gè)節(jié)點(diǎn)之間就不建立時(shí)序邊。在合并連接無向圖和時(shí)序無向圖過程中,首先將連接無向圖與時(shí)序無向圖其中之一中的節(jié)點(diǎn)表示為時(shí)序器件無向圖中的節(jié)點(diǎn);由上述兩個(gè)無向圖的建立過程可見,這兩種無向圖包含的節(jié)點(diǎn)是相同的。然后在時(shí)序器件無向圖的節(jié)點(diǎn)之間建立邊,其中,時(shí)序器件無向圖中一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的邊,表示這兩個(gè)節(jié)點(diǎn)在連接無向圖中所對應(yīng)的節(jié)點(diǎn)之間存在連接邊,但是這兩個(gè)節(jié)點(diǎn)在時(shí)序無向圖中所對應(yīng)的節(jié)點(diǎn)之間不存在時(shí)序邊。這樣就完成了無向圖合并。也就是說,在合并的時(shí)序器件無向圖中,對于存在兩條邊的節(jié)點(diǎn),即既有連接邊又有時(shí)序邊,刪除二者之間的邊;但是只存在連接邊,不存在時(shí)序邊,則保留二者之間的邊。由于建立了時(shí)序邊的時(shí)序器件之間不需要時(shí)鐘平衡,因此,在時(shí)序器件無向圖中,建立了時(shí)序邊的時(shí)序器件之間無邊。根據(jù)上述方法的步驟S301,S302和S303對圖4所示的集成電路建立的連接無向圖、時(shí)序無向圖以及時(shí)序器件無向圖如圖8所示。對另外一個(gè)未示出網(wǎng)表以及時(shí)序約束文件的專用集成電路,建立的連接無向圖、時(shí)序無向圖以及時(shí)序器件無向圖如圖9所示。返回圖2,在步驟S203,根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另一組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。具體來說,就是將時(shí)序器件無向圖中的一個(gè)連通的子圖包含的節(jié)點(diǎn)所代表的時(shí)序器件劃分在同一個(gè)組中。一個(gè)單獨(dú)的節(jié)點(diǎn)可以作為一個(gè)連通子圖,因此其對應(yīng)的時(shí)序器件也分成一組。例如,圖8的時(shí)序器件無向圖包含5個(gè)連通子圖,就可以將這些時(shí)序器件分成5個(gè)組,后續(xù)的時(shí)序分析中,只需要對包含兩個(gè)時(shí)序器件的組進(jìn)行時(shí)鐘平衡,時(shí)鐘平衡由原來的6個(gè)時(shí)序器件減少為兩個(gè)時(shí)序器件;圖9的時(shí)序器件無向圖包含6個(gè)連通子圖,可以將這些時(shí)序器件分成6個(gè)組,后續(xù)的時(shí)序分析只需要對包含兩個(gè)或兩個(gè)以上時(shí)序器件的組進(jìn)行時(shí)鐘平衡,時(shí)鐘平衡由原來的19個(gè)時(shí)序器件減少4個(gè)組,每組分別為7、5、3、2個(gè)時(shí)序器件。后續(xù)的時(shí)鐘平衡工作將大大減少。使用上述方法分組后可以使得各組之間的時(shí)序器件之間不存在時(shí)序關(guān)系,所以無需時(shí)鐘平衡;并且每組內(nèi)部時(shí)序器件數(shù)量可以大大減少,在組內(nèi)使用現(xiàn)有的設(shè)計(jì)工具中采用的使得所有的時(shí)鐘樹的終端(也就是時(shí)序器件)的時(shí)鐘偏差和時(shí)鐘延遲盡可能小的設(shè)計(jì)原則插入時(shí)鐘樹,達(dá)到時(shí)鐘平衡。使用該方法改進(jìn)的專用集成電路設(shè)計(jì)方法將設(shè)計(jì)流程從周為單位減少到天,設(shè)計(jì)人員能夠迅速規(guī)劃時(shí)鐘樹,因此減少了設(shè)計(jì)時(shí)間,提高了設(shè)計(jì)效率。 在同一個(gè)發(fā)明構(gòu)思下,本發(fā)明還公開了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的系統(tǒng)1000,包括確定裝置1001,被配置為確定該專用集成電路的網(wǎng)表和時(shí)序約束文件;時(shí)序器件無向圖建立裝置1002,被配置為根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖;以及分組裝置1003,被配置為根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另一組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。在一種實(shí)施方式中,時(shí)序器件無向圖建立裝置包括(圖10未示出)連接無向圖建立裝置,被配置為根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系,為網(wǎng)表中的時(shí)序器件建立連接無向圖;時(shí)序無向圖建立裝置,被配置為根據(jù)時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖;以及合并裝置,被配置為通過合并連接無向圖和時(shí)序無向圖,獲得時(shí)序器件無向圖。在另一種實(shí)施方式中,連接無向圖建立裝置包括(圖10未示出)連接無向圖節(jié)點(diǎn)建立裝置,被配置為在連接無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;連接無向圖的連接邊建立裝置,被配置為在連接無向圖的節(jié)點(diǎn)之間建立連接邊,其中,連接無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的連接邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件在網(wǎng)表中是通過路徑連接的;其中時(shí)序器件在網(wǎng)表中是否通過路徑連接是根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系來判斷的。在又一種實(shí)施方式中,時(shí)序無向圖建立裝置包括(圖10未示出)時(shí)序無向圖節(jié)點(diǎn)建立裝置,被配置為在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;時(shí)序無向圖的時(shí)序邊建立裝置,被配置為在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之一異步時(shí)鐘;假性路徑;多周期路徑;其中異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。在再一種實(shí)施方式中,時(shí)序無向圖建立裝置包括(圖10未示出)時(shí)序無向圖節(jié)點(diǎn)建立裝置,被配置為在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之一異步時(shí)鐘;假性路徑;多周期路徑并且兩個(gè)時(shí)序器件之間的路徑超過預(yù)設(shè)的時(shí)鐘周期個(gè)數(shù);其中異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。在又一種實(shí)施方式中,合并裝置包括(圖10未示出)時(shí)序器件無向圖節(jié)點(diǎn)建立裝置,被配置為將連接無向圖與時(shí)序無向圖其中之一中的節(jié)點(diǎn)表示為時(shí)序器件無向圖中的節(jié)點(diǎn);時(shí)序器件無向圖邊建立裝置,被配置為在時(shí)序器件無向圖的節(jié)點(diǎn)之間建立邊,其中,時(shí)序器件無向圖中一個(gè)節(jié)點(diǎn)與另一個(gè)節(jié)點(diǎn)之間的邊,表示這兩個(gè)節(jié)點(diǎn)在連接無向圖中所對應(yīng)的節(jié)點(diǎn)之間存在連接邊,但是這兩個(gè)節(jié)點(diǎn)在時(shí)序無向圖中所對應(yīng)的節(jié)點(diǎn)之間不存在時(shí)序邊。在再一種實(shí)施方式中,分組裝置進(jìn)一步配置成將時(shí)序器件無向圖中的一個(gè)連通的子圖包含的節(jié)點(diǎn)所代表的時(shí)序器件劃分在同一個(gè)組中。本發(fā)明可以采取硬件實(shí)施方式、軟件實(shí)施方式或既包含硬件組件又包含軟件組件的實(shí)施方式的形式。在優(yōu)選實(shí)施方式中,本發(fā)明實(shí)現(xiàn)為軟件,其包括但不限于固件、駐留軟件、微代碼等。 而且,本發(fā)明還可以采取可從計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式,這些介質(zhì)提供程序代碼以供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與其結(jié)合使用。出于描述目的,計(jì)算機(jī)可用或計(jì)算機(jī)可讀機(jī)制可以是任何有形的裝置,其可以包含、存儲(chǔ)、通信、傳播或傳輸程序以由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與其結(jié)合使用。介質(zhì)可以是電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)(或裝置或器件)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)磁盤、隨機(jī)訪問存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。目前光盤的例子包括緊湊盤-只讀存儲(chǔ)器(CD-ROM)、壓縮盤-讀/寫(CD-R/W)和DVD。適合于存儲(chǔ)/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個(gè)處理器,其直接地或通過系統(tǒng)總線間接地耦合到存儲(chǔ)器元件。存儲(chǔ)器元件可以包括在程序代碼的實(shí)際執(zhí)行期間所利用的本地存儲(chǔ)器、大容量存儲(chǔ)器、以及提供至少一部分程序代碼的臨時(shí)存儲(chǔ)以便減少執(zhí)行期間從大容量存儲(chǔ)器必須取回代碼的次數(shù)的高速緩存存儲(chǔ)器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點(diǎn)設(shè)備等等)可以直接地或通過中間I/O控制器耦合到系統(tǒng)。網(wǎng)絡(luò)適配器也可以耦合到系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過中間的私有或公共網(wǎng)絡(luò)而耦合到其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備。調(diào)制解調(diào)器、線纜調(diào)制解調(diào)器以及以太網(wǎng)卡僅僅是當(dāng)前可用的網(wǎng)絡(luò)適配器類型的幾個(gè)例子。從上述描述應(yīng)當(dāng)理解,在不脫離本發(fā)明真實(shí)精神的情況下,可以對本發(fā)明各實(shí)施方式進(jìn)行修改和變更。本說明書中的描述僅僅是用于說明性的,而不應(yīng)被認(rèn)為是限制性的。本發(fā)明的范圍僅受所附權(quán)利要求書的限制。
權(quán)利要求
1.ー種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法,包括 確定該專用集成電路的網(wǎng)表和時(shí)序約束文件; 根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖; 根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另ー組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。
2.根據(jù)權(quán)利要求I所述的方法,其中,所述根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖包括 根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系,為網(wǎng)表中的時(shí)序器件建立連接無向圖; 根據(jù)時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖; 通過合并連接無向圖和時(shí)序無向圖,獲得時(shí)序器件無向圖。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系,為網(wǎng)表中的時(shí)序器件建立連接無向圖包括 在連接無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件; 在連接無向圖的節(jié)點(diǎn)之間建立連接邊,其中,連接無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的連接邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件在網(wǎng)表中是通過路徑連接的; 其中時(shí)序器件在網(wǎng)表中是否通過路徑連接是根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系來判斷的。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述根據(jù)時(shí)序約束文件中的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖包括 在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件; 在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之ー 異步時(shí)鐘; 假性路徑; 多周期路徑; 其中,異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。
5.根據(jù)權(quán)利要求3所述的方法,其中,所述根據(jù)時(shí)序約束文件中的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖包括 在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件; 在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之ー 異步時(shí)鐘; 假性路徑; 多周期路徑并且兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)超過了預(yù)設(shè)的時(shí)鐘周期數(shù); 其中,異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。
6.根據(jù)權(quán)利要求2-5之一所述的方法,其中,所述通過合并連接無向圖和時(shí)序無向圖,獲得時(shí)序器件無向圖包括將連接無向圖與時(shí)序無向圖其中之一中的節(jié)點(diǎn)表示為時(shí)序器件無向圖中的節(jié)點(diǎn); 在時(shí)序器件無向圖的節(jié)點(diǎn)之間建立邊,其中,時(shí)序器件無向圖中ー個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的邊,表示這兩個(gè)節(jié)點(diǎn)在連接無向圖中所對應(yīng)的節(jié)點(diǎn)之間存在連接邊,但是這兩個(gè)節(jié)點(diǎn)在時(shí)序無向圖中所對應(yīng)的節(jié)點(diǎn)之間不存在時(shí)序邊。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組包括 將時(shí)序器件無向圖中的一個(gè)連通的子圖包含的節(jié)點(diǎn)所代表的時(shí)序器件劃分在同一個(gè)組中。
8.ー種用于專用集成電路的時(shí)鐘樹規(guī)劃的系統(tǒng),包括 確定裝置,被配置為確定該專用集成電路的網(wǎng)表和時(shí)序約束文件; 時(shí)序器件無向圖建立裝置,被配置為根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖; 分組裝置,被配置為根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得ー組中的時(shí)序器件與另ー組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,時(shí)序器件無向圖建立裝置包括 連接無向圖建立裝置,被配置為根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系,為網(wǎng)表中的時(shí)序器件建立連接無向圖; 時(shí)序無向圖建立裝置,被配置為根據(jù)時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件建立時(shí)序無向圖; 合并裝置,被配置為通過合并連接無向圖和時(shí)序無向圖,獲得時(shí)序器件無向圖。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中連接無向圖建立裝置包括 連接無向圖節(jié)點(diǎn)建立裝置,被配置為在連接無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;連接無向圖的連接邊建立裝置,被配置為在連接無向圖的節(jié)點(diǎn)之間建立連接邊,其中,連接無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的連接邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件在網(wǎng)表中是通過路徑連接的; 其中時(shí)序器件在網(wǎng)表中是否通過路徑連接是根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系來判斷的。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中時(shí)序無向圖建立裝置包括 時(shí)序無向圖節(jié)點(diǎn)建立裝置,被配置為在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件;時(shí)序無向圖的時(shí)序邊建立裝置,被配置為在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之ー 異步時(shí)鐘; 假性路徑; 多周期路徑; 其中異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中時(shí)序無向圖建立裝置包括 時(shí)序無向圖節(jié)點(diǎn)建立裝置,被配置為在時(shí)序無向圖中用節(jié)點(diǎn)代表網(wǎng)表中的時(shí)序器件; 時(shí)序無向圖的時(shí)序邊建立裝置,被配置為在時(shí)序無向圖的節(jié)點(diǎn)之間建立時(shí)序邊,其中,時(shí)序無向圖中的一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的時(shí)序邊,表示這兩個(gè)節(jié)點(diǎn)所代表的時(shí)序器件之間存在以下時(shí)序約束的至少之ー 異步時(shí)鐘; 假性路徑; 多周期路徑并且兩個(gè)時(shí)序器件之間的時(shí)序檢查周期數(shù)超過了預(yù)設(shè)的時(shí)鐘周期數(shù); 其中異步時(shí)鐘、假性路徑和多周期路徑為包含在時(shí)序約束文件中的時(shí)序約束關(guān)系。
13.根據(jù)權(quán)利要求9-12之一所述的系統(tǒng),其中合并裝置包括 時(shí)序器件無向圖節(jié)點(diǎn)建立裝置,被配置為將連接無向圖與時(shí)序無向圖其中之一中的節(jié)點(diǎn)表示為時(shí)序器件無向圖中的節(jié)點(diǎn); 時(shí)序器件無向圖邊建立裝置,被配置為在時(shí)序器件無向圖的節(jié)點(diǎn)之間建立邊,其中,時(shí)序器件無向圖中一個(gè)節(jié)點(diǎn)與另ー個(gè)節(jié)點(diǎn)之間的邊,表示這兩個(gè)節(jié)點(diǎn)在連接無向圖中所對應(yīng)的節(jié)點(diǎn)之間存在連接邊,但是這兩個(gè)節(jié)點(diǎn)在時(shí)序無向圖中所對應(yīng)的節(jié)點(diǎn)之間不存在時(shí)序邊。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述分組裝置進(jìn)ー步配置成將時(shí)序器件無向圖中的一個(gè)連通的子圖包含的節(jié)點(diǎn)所代表的時(shí)序器件劃分在同一個(gè)組中。
全文摘要
本發(fā)明公開了一種用于專用集成電路的時(shí)鐘樹規(guī)劃的方法和系統(tǒng),該方法包括確定該專用集成電路的網(wǎng)表和時(shí)序約束文件;根據(jù)網(wǎng)表中時(shí)序器件的連接關(guān)系和時(shí)序約束文件中時(shí)序器件的時(shí)序約束關(guān)系,為網(wǎng)表中的時(shí)序器件生成時(shí)序器件無向圖;根據(jù)時(shí)序器件無向圖為網(wǎng)表中的時(shí)序器件分組,使得一組中的時(shí)序器件與另一組中的時(shí)序器件之間沒有時(shí)序約束關(guān)系。使用該方法改進(jìn)的專用集成電路設(shè)計(jì)方法將設(shè)計(jì)流程從周為單位減少到天,設(shè)計(jì)人員能夠迅速規(guī)劃時(shí)鐘樹,因此減少了設(shè)計(jì)時(shí)間,提高了設(shè)計(jì)效率。
文檔編號(hào)G06F17/50GK102799698SQ20111013873
公開日2012年11月28日 申請日期2011年5月26日 優(yōu)先權(quán)日2011年5月26日
發(fā)明者浦索明, 葛亮, 徐晨, 于渤 申請人:國際商業(yè)機(jī)器公司