TW201530332A - 使用多個主脊柱的脊柱佈線 - Google Patents

使用多個主脊柱的脊柱佈線 Download PDF

Info

Publication number
TW201530332A
TW201530332A TW103135241A TW103135241A TW201530332A TW 201530332 A TW201530332 A TW 201530332A TW 103135241 A TW103135241 A TW 103135241A TW 103135241 A TW103135241 A TW 103135241A TW 201530332 A TW201530332 A TW 201530332A
Authority
TW
Taiwan
Prior art keywords
main
network connection
spine
pins
spinal
Prior art date
Application number
TW103135241A
Other languages
English (en)
Other versions
TWI670614B (zh
Inventor
Chien-Hung Lu
Chun-Chen Chi
Tung-Chieh Chen
Original Assignee
Synopsys Taiwan Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Taiwan Co Ltd filed Critical Synopsys Taiwan Co Ltd
Publication of TW201530332A publication Critical patent/TW201530332A/zh
Application granted granted Critical
Publication of TWI670614B publication Critical patent/TWI670614B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本發明揭露一用以佈線一電子電路的一網絡連線的電腦實作方法。該網絡連線連結電子電路的多個引腳。該方法包括使用一或多個電腦系統,用以選取分別對應至該網絡連線之第一及第二引腳群組之第一及第二主脊柱佈線軌跡,該方法也包括使用一或多個電腦系統,用以在所選取的第一主脊柱佈線軌跡上產生一第一主脊柱導線,以及在所選取的第二個主脊柱佈線軌跡上產生一第二主脊柱導線。被設定用以執行該方法的一個佈線器也被揭露於本發明中。

Description

使用多個主脊柱的脊柱佈線
本發明係有關於類比電路電腦輔助設計的一種方法和系統,特別指的是找出一種靈活的方式來對一個網絡連線(Net)佈線(Routing)。
在電子電路中,電導體通常都是由導電材料層所構成,像是銅或鋁會被如二氧化矽的絕緣材料層所分離。金屬層會透過光刻技術產生圖案樣式,以形成導體用以相互連接一個積體電路中的電子元件。一個複雜IC的一部分設計或布局會被自動化,也就是相互連結的導線的位置,會藉由一電腦執行之佈線軟體來決定。該電腦便被稱為一個佈線器。在相關於電腦操作的討論範圍內,相應於一個以電子化資訊表示的物理元件,通常會使用一般用以表示相應物理元件的名稱。例如,在相關於電腦操作的討論範圍內,一個導線(Wire)可以是相應於一個電子裝置或電路的一個以電子化資訊表示的導電體。例如,一個以電子化資訊表示的一個導線(Wire)係存在於一個以電子化資訊表示的電路設計內。根據電子化資訊表示的電路設計可以產生一個實體物理電路。
本發明的一個面向係使用電腦以佈線一電子電路之一網絡連線(Net)的方法,其中該網絡連線連結該電子電路的多個引腳,該方法包括:使用一或多個電腦系統,用以選取分別對應於該網絡連線的該多個引腳中之至少一第一及一第二群組之至少一第一及一第二主脊柱佈線軌跡(main spine routing track);以及使用一或多個電腦系統,用以在所選取的該第一主脊柱佈線軌跡上產生一第一第一主脊柱導線,以及在所選取的該第二主脊柱佈線軌跡上產生一第二第一主脊柱導線。
本發明的另一個面向為一個佈線器,該佈線器被設定為用以佈線一電子電路之一網絡連線,其中該網絡連線連結該電子電路的多個引腳,該佈線器包括:一個記憶體包括指令;以及一個處理器被設定來執行該指令,其中該指令會使電腦執行一方法,該方法包括:使用一或多個電腦系統,用以選取分別對應於該網絡連線的該多個引腳中之至少一第一及一第二群組之至少一第一及一第二主脊柱佈線軌跡;以及使用一或多個電腦系統,用以在所選取的該第一主脊柱佈線軌跡上產生一第一第一主脊柱導線,以及在所選取的該第二主脊柱佈線軌跡上產生一第二第一主脊柱導線。
以下的範例提供了導線佈線簡要的介紹。圖1說明兩個示例性網絡連線佈線問題的一個簡化的平面圖100。第一個網絡連線佈線問題包括多個引腳110,多個障礙120,和一第一布局平面130。第二個網絡連線佈線問題包括相同的多個引腳110,多個障礙(blockages)120,和一第二布局平面140。解決這兩個佈線問題包括,決定障礙120之間的多個導線(wires)之路徑,使得網絡連線內之多個引腳110中的每個引腳分別被第一布局平面130或第二布局平面140的多個導線而連結起來。
從網內開始延伸的導線若超出該網絡連線的布局邊界,會對其它鄰近網絡連線造成佈線的問題。因此,由第一布局平面130所產生的佈線問題,會比由第二布局平面140所產生的佈線問題要容易解決,因為第二布局平面140包括一個較小的布局區域,所以比第一布局平面130具有額外的佈線約束,以下將做出說明。一個布局平面的面積和邊界,障礙的位置以及引腳的位置,都是屬於一個已知IC設計的網絡連線規格或資料的一部分,在佈線之前可能都已經有固定的位置、或在佈線過程中被擺置、或是成為佈線程序的一部分內容。
障礙120出現於當部分布局平面被導線區段阻擋的時候,在此稱為“預置線”,它們會被擺置在預先決定的位置並相關於具有固定位置的IC組件,並且在佈線之前使用另外一個擺置的程序、或是在佈線過程中被擺置、或是成為佈線程序的一部分內容。預置線的例子包括不以正常列結構排列的電源線和地線。在相互連結層上的障礙會形成一個“迷宮”,而當佈線程序佈線相互連結層時會避開或繞過該“迷宮”。
佈線一個積體電路的設計,存在著不同的技巧和風格。脊柱佈線又稱為魚骨佈線,提供許多優於其他佈線技術的特性。例如,脊柱佈線可減少相互連結上的導孔和凸出物,並且能在時間延遲和信號完整性的要素上有較好的佈線品質。
圖2說明一個佈線範例簡化的平面圖200,該範例使用一個單一第一主脊柱導線210,在此稱為”主脊柱”,並用於圖1中平面130的第一個網絡連線佈線問題。導線佈線會將網絡連線中多個引腳110的每個引腳都連結在一起。導線佈線包括一個單一主脊柱210,多個分支脊柱220,和多個導線230。例如,單一主脊柱210會成形於一個圖案化的第二層金屬上,在此稱之為”M2”,它可能會是一個水平的佈線層。多個分支脊柱220會成形於一個圖案化的第一層金屬上,在此稱之為”M1”,它可能會是一個垂直的佈線層,在IC上位於M2層之下。多個導線230可能會成形於M2上。圖中類似的填入代碼樣式,表示相同的金屬層。
我們可以理解M2透過範例可被指定為一個水平佈線層,另一方面它也可以被指定為一個垂直佈線層。雖然在所提供的範例中,會描述到脊柱的水平及/或垂直佈線,在此處所揭露的技術也可以類似地用於任何其他方向的脊柱。鄰近的金屬層像是M1和M2,通常大致會被指定給正交 (相互垂直) 的佈線層。雖然圖形顯示範例中只有兩個金屬層,本發明的多個實施例可應用到任意數目的導線層。例如,單一主脊柱210可成形於一第三金屬層M3,多個分支脊柱220可成形於M2,而多個導線230則可成形於M1。
不同金屬層可能會有導孔連結起來,例如在一M1導線和M2導線的一個交叉點上,也就是在位置240和250,以便完成網絡連線多個引腳之間每個引腳電子路徑的電性連續性。然而,為了做較清楚的說明,導孔並未顯示在圖中,但應當都明瞭它們的存在。一個圓形符號表示多個引腳110中的一個引腳,它可能是網絡連線的一個端點。通常,每個引腳代表一個與IC設計中一個電子元件的連結點。一般來說,一個相關於一個積體電路設計的一個網絡連線,包括將一信號由一驅動引腳傳遞至一接收引腳的一導線連結。一個網絡連線,在此也稱為一個”路徑”,包括任何電性連結的導線區段,像是單一主脊柱210、多個分支脊柱220以及多個導線230會電性連結網絡連線的引腳,但只使用導線或導孔來造成電性連結。換言之,一個單一網絡連線在一個電路圖中,會以一個單一電路節點來表示。
網絡連線也可能包括圖案化的多矽晶或是單晶擴散的導線區段,通常覆蓋有耐熔金屬層以降低電阻率。換言之,一個網絡連線或路徑為金屬導線和金屬導孔的一個連續的電性連結,它不會被任何其他被動或主動元件所中斷,像是電阻、電容、電晶體或其他類似元件。例如,一個電阻的單位長度電阻率,至少會比一個網絡連線任何部分的電阻率要高出一個數量級。在另一個例子,第一個和第二個網絡連線會被一個電晶體隔開,其汲極連結到第一個網絡連線,源極則連結到第二個網絡連線。然而,可以理解的是網絡連線會有分佈式的電氣屬性,像是寄生電阻和電容,而寄生電阻和電容通常並不需要而且在較長路徑下會變得更大。因此,在佈線一個網絡連線時,較短長度之佈線會比較長長度之佈線來的令人滿意。
導線的潛在位置可能位於預先決定的軌跡,這些軌跡會被間隔分開,而間隔的設定來自於已知製程技術和製造工廠的設計規則。表示軌跡位置的資料,會是網絡連線規格的一部分。因此,導線的位置會受限於一個已知層的軌跡。例如,M2可能只會朝一個方向前進,也就是水平或垂直方向。圖例中會將一個導線表示為一個長的長方形形狀,或是一個簡化的符號線區段並具有一個縱向軸,該軸通常被置於一個可用軌跡的中心線或由佈線程序所產生出來,並且依照一個間隔設計規(spacing design rule)與障礙(blockage)隔開。
由於障礙的位置和引腳位置通常在佈線之前會先被固定,使得佈線程序會受到約束。於圖2所說明的範例使用到第一個布局平面130,並且可以注意到網絡連線的多個引腳110,一般分布在二個由障礙120所隔開的區域,使得透過一個具有水平縱向方向的單一第一主脊柱導線,其連結二個區域引腳的解決方案會被約束於障礙120下面的區域。更地,由於單一主脊柱的位置離兩組引腳相當遠,也造成網絡連線的整個長度會相當的大。然而,參照圖1和2,一個單一第一主脊柱導線解決方案,對於約束於第二個布局平面140的佈線問題會變的困難,因為它正好碰到障礙120的下邊界,因此就不適合單一第一主脊柱導線的佈線解決方案。
圖3說明一個佈線範例300的簡化平面圖,該範例使用主脊柱310,320於圖1的第二個佈線問題,它包括了第二個布局平面140。圖3說明圖2中類似的特性,但是注意以下的一些例外狀況。圖3說明一個導線佈線包括一第一主脊柱310,一第二主脊柱320,一個主分支脊柱330,多個分支脊柱340和多個導線230。主分支脊柱330會直接連結第一個主脊柱310和第二個主脊柱320。
雖然第二布局平面140比第一布局平面130提供較少的佈線區域,使用多個第一主脊柱導線定向在水平和垂直方向上,可獲得一個較佳的佈線解決方案。因此,根據本發明的多個實施例,使用多個第一主脊柱導線會提供在一定狀況下獲得佈線解決方案的更大彈性,這些預先存在的約束會使得一個單一主脊柱佈線解決方案較不受歡迎,或是因為缺乏可用的主脊柱軌跡而不可能提供解答。通過比較圖2和3的佈線結果,使用多個主脊柱佈線可能會減少網絡連線的整體長度,因此可減少網絡連線不需要的寄生電容及/或電阻而改善電路的性能。減少網絡連線的長度也會釋放出佈線軌跡,可用於佈線其他的網絡連線以節省佈線資源和降低晶片的尺寸和成本。當網絡連線擴充到較長距離時,多個主脊柱佈線的優點會更大。
在一個實施例中,被以多大於一預定距離而水平隔開之多個引腳可直接連結至分支脊柱340上。在某些實施例中,被以小於一預定距離而水平隔開之多個引腳則會直接連結至多個導線230中的一個,也就是將引腳連結至多個分支脊柱340中的一個。
圖4A說明一個佈線範例的簡化的平面圖400A,該範例使用一個具有不對齊軌跡樣式的一個單一第一主脊柱導線420來佈線一個網絡連線。範例400A包括第一及第二多個規則分布的水平軌跡430,440。該第一多個規則分布的水平軌跡430的最左邊端點,會與該第二多個規則分布的水平軌跡440的最右邊端點重疊。然而,該第一多個規則分布的水平軌跡430的間距,與該第二多個規則分布的水平軌跡440的間距並不相同。所以,單一第一主脊柱導線420可以縱向地擺置於該第一多個規則分布的水平軌跡430中之一個軌跡的中央,但不擺置於該第二多個規則分布的水平軌跡440中之一個軌跡。
根據本發明的一個實施例,圖4B說明一個佈線範例400B的簡化的平面圖,該範例使用多個第一主脊柱導線450,460來佈線一個網絡連線成為圖4A中的引腳。在範例400B中,網絡連線會使用多個主脊柱450,460來佈線網絡連線,其中每個主脊柱會適當地置於第一及第二多個規則分布的水平軌跡之一的中央。除此之外,主脊柱450和460會被主分支脊柱470連結在一起。
圖5說明一個實施例的第一個簡化的流程圖500,該流程圖使用多個第一主脊柱導線用以佈線具有多引腳的網絡連線。參照圖3和5,使用一個或多個電腦系統,電腦可針對該多個引腳中之一第一群組,從一第一組預先存在可選取的佈線軌跡中選取一第一脊柱佈線軌跡,並且針對該多個引腳中之一第二群組,從一第二組預先存在可選取的佈線軌跡中選取一第二脊柱佈線軌跡510。
在某些實施例中,多個引腳會依據位置分割為多個群組,例如在本發明的其他地方會更詳細地討論。在某些實施例中,每個引腳群組會依據它們的位置,相關於一組可選取的佈線軌跡,例如在本發明的其他地方會更詳細地討論。
第一及第二脊柱佈線軌跡的選取,係依據一第一成本函數,並且更依據相關於網絡連線和第一與第二個多個佈線軌跡的資料。對一個已知的IC設計,該資料會包括網絡連線每個引腳的位置,以及網絡連線中第一及第二多個佈線軌跡中,每個可用佈線軌跡的位置。電腦實作方法會更包括,在選取的第一脊柱佈線軌跡上產生520一第一脊柱導線,和在選取的第二脊柱佈線軌跡上產生一第二脊柱導線。
在某些實施例中,該方法也包括產生530一個主分支脊柱470,連結至第一脊柱導線310和第二脊柱導線320。
在一個實施例中,該第一個成本函數會包括網絡連線一個部分的一個導線長度,或是整體網絡連線導線長度的一個部分的一個導線長度。在另一個實施例中,該第一個成本函數會包括網絡連線導孔的數目,以及/或其他以下描述的成本函數。
根據本發明的一個實施例,圖6說明一第二簡化的流程圖600,該流程圖使用多個第一主脊柱導線用以佈線一個多引腳的網絡連線。相關於網絡連線和第一與第二多個佈線軌跡的資料,會被接收610用於佈線程序。接收到的資料會包括引腳位置、障礙的位置和可用於網絡連線導線擺置的可選取軌跡。佈線一整個積體電路,通常包括佈線很多數目的網絡連線。
圖7A說明一個佈線範例的簡化的平面圖700A,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,會先將相關於網絡連線的多個引腳710分割620為多個群組715,716,717。參照圖6和7A,多個群組715,716,717中的每個群組包括一或多個引腳。佈線範例700A包括類似說明於圖1內障礙120的多個障礙720。多個引腳710會被標示成小圓圈。同一群組內的引腳710會以相同的樣式所標示,但與引腳710在其他群組中的樣式不同。多個群組715,716,717中的每個群組,會相關於多個第一主脊柱導線中不同的導線,將在以下討論。
在這個實施例中,該方法包括將相關於網絡連線的引腳710,分割620為至少一第一和一第二群組的引腳。在這個實施例中,第一群組的引腳715會相關於被選取為第一個主脊柱佈線軌跡的主脊柱佈線軌跡,第二群組的引腳716會相關於稍後被選取為第二個主脊柱佈線軌跡的主脊柱佈線軌跡,以及第三群組的引腳717會相關於稍後被選取為第三個主脊柱佈線軌跡的主脊柱佈線軌跡。在此可理解的是多個引腳710,可以被分解或分割為多組相關於不同多個第一主脊柱導線,而三組引腳相關於第一、第二和第三第一主脊柱導線則是範例,它們不會限制本發明的範圍。分割620可依據一第二成本函數來完成。在一個實施例中,第一成本函數包括第二成本函數。在一個實施例中,第二成本函數包括一個導線長度。在一個實施例中,第二成本函數包括一個相關於一個約束的規則,以下將討論這個約束。
圖7B說明一個佈線範例的簡化的平面圖700B,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,會先估測或選取630相關於主脊柱可用的水平M2軌跡725、726、727。要記得導線是被約束在可用的軌跡中執行,而且沒有被障礙阻擋。因此,可用的軌跡是導線可被安置的潛在位置。所以,多個可用的水平M2軌跡725、726、727,可用於擺置第一主脊柱導線。然而,在本方法中沒有導線在此階段會被安置。
參照圖6和7B,多個可用的水平M2佈線軌跡725、726、727,會依據被分割引腳群組最接近的位置來進行分割。例如,多個水平M2佈線軌跡725、726、727,可能會個別相關於多個引腳分割群組715、716、717中的一個。換言之,多個可用的水平M2佈線軌跡725會相關於第一個引腳群組715,多個可用的水平M2佈線軌跡726會相關於第一個引腳群組716,而多個可用的水平M2佈線軌跡727會相關於第一個引腳群組717。在一個實施例中,多個可用的水平M2佈線軌跡725,會平行於多個可用的水平M2佈線軌跡726和727。
類似地,至少有一個主分支脊柱的多個佈線軌跡,在步驟630會依據第三成本函數,從多個可用的垂直M1佈線軌跡(沒有顯示出來)中被估測出來,更則會依據相關於多個可用的垂直M1佈線軌跡的資料。該資料會包括一個已知IC設計中,每個可用垂直M1佈線軌跡的位置。在一個實施例中,多個垂直M1佈線軌跡會被估測用以連結所有被選取的水平M2佈線軌跡,以獲得繞過障礙的佈線解決方案,或是獲得最佳之最短的總網絡連線之導線長度。在一個實施例中,多個可用的垂直M1佈線軌跡的縱向方向,會正交於多個可用的垂直M2佈線軌跡的縱向方向。在一個實施例中,地三成本函數包括所選取M1軌跡的導線長度。在一個實施例中,一個或多個第一成本函數、第二成本函數、和第三成本函數都是相同的。
圖7C說明一個佈線範例的簡化的平面圖700C,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,會先產生640主脊柱735、736、737和一個主分支脊柱740。參照圖6和7B-7C,在決定那個可用的軌跡,會用於多個水平M2佈線軌跡725、726、727的每一個之後,主脊柱會被產生出來或被安置下來640。如圖7C所顯示,不同的第一主脊柱導線735、736、737,會被每個引腳群組715、716、717所產生出來。例如,可用的水平M2主脊柱軌跡735T,會被選取用以產生相關於第一引腳群組715的水平M2第一主脊柱導線735,可用的水平M2主脊柱軌跡736T,會被選取用以產生相關於第二引腳群組716的水平M2第一主脊柱導線736,而一個可用的水平M2主脊柱軌跡737T,會被選取用以產生相關於第三引腳群組717的水平M2第一主脊柱導線737。
類似地,至少有一個主分支脊柱,會透過決定使用那一個單一可用軌跡,而被產生出來或安置下來,該可用軌跡來自於多個垂直的M1佈線軌跡(沒有顯示),以產生出一個垂直M1主分支脊柱導線,用以連結多個產生出來的水平M2之第一主脊柱導線。例如,一個可用的垂直M1主分支軌跡(沒有顯示),會被選取用以產生垂直M1主分支脊柱導線740,用以連結水平M2之第一主脊柱導線735、736、737。
圖7D說明一個佈線範例的簡化的平面圖700D,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,會先產生650至少一個分支脊柱745、747。參照圖6和7D,在此實施例中,分支脊柱會被以下的動作所產生出來。對每個分支脊柱,引腳群組中的一個會被分割成一個引腳子群組,用以連結分支脊柱和另一個引腳子群組,這包括依據第四成本函數所得到一個引腳群組的剩餘引腳。一個垂直的M1之脊柱佈線軌跡,接著會從多個可選取的垂直M1佈線軌跡中(沒有顯示)被選取出來,該軌跡係相關於引腳群組中的一組並根據至少一個第一主脊柱導線的位置。在圖7D中的範例,第三第一主脊柱導線737,會被用以選取已選取的垂直M1佈線軌跡。一個垂直M1主分支脊柱導線747,接著會被產生於已選取的垂直M1脊柱佈線軌跡上。
在一個實施例中,垂直M1分支脊柱導線747的被選取垂直M1佈線軌跡,會正交於水平M2主脊柱軌跡735T和水平M2主脊柱軌跡737T。在一個實施例中,一個垂直M1分支脊柱導線745會被產生出來,使得垂直M1分支脊柱導線745能將一個單一引腳子群組和第一第一主脊柱導線735連結起來。在這個範例中,被選取的垂直M1佈線軌跡會被用以連結第一脊柱導線735。
圖7E說明一個佈線範例的簡化的平面圖700E,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,會先產生導線750用以將未連結的引腳與其相關的分支脊柱747連結起來。參照圖6和7D,對於每個引腳子群組,一個導線750會被產生以將未連結的引腳與最接近該引腳子群組的分支脊柱連結在一起 660。在一個實施例中,導線750會正交於連結至導線750相關的分支脊柱747。
圖8說明一個佈線範例的簡化的平面圖800,該範例使用多個第一主脊柱導線來佈線一個網絡連線,根據本發明的一個實施例,它用到一個再使用的預置導線833。圖8所說明的特性類似於圖7E中的特性,但是具有以下要注意的例外。在一個實施例中,任何第一、第二及/或第三成本函數的組合,會包括一個與網絡連線預先決定特性的距離。在一個實施例中,網絡連線預先決定的特性,會包括至少一個引腳、一個已存在的導線或一個導孔中的一個,該特性會由設計者在佈線執行之前安置在相關於網絡連線的資料中。該預先決定的特性會被辨識出來,使得藉由預先定義特性的存在而觸發及/或指示佈線程序執行特殊的函數。在一個實施例中,該預先決定的特性會是個視為再使用預置導線的一個已存在導線,例如,M2上的再使用預置導線833。
在某些實施例中,為回應一個再使用預置導線833的辨識結果,電腦會使用第一及/或第二成本函數來選取水平的M2軌跡,該軌跡與再使用預置導線833所產生的一個水平M2第一主脊柱導線835是相同的。對於這個函數,相關於再使用預置導線的成本函數的距離為零,也就是從欲選取的脊柱軌跡到再使用預置導線軌跡之間的距離為零。因此,再使用預置導線833的軌跡會被再使用於水平M2第一主脊柱導線835。類似地,在一個實施例中,一個垂直的M1預置導線會以一個預置導線被安置於網絡連線資料中,並用以指示佈線程序為主分支脊柱選取M1預置導線的佈線軌跡。這是個很有用的特性,例如,如果一個導線軌跡用於先前已安置的布局單元,一般都希望能夠將軌跡的使用最小化以保留佈線的資源。
圖9A說明一個佈線範例的簡化的平面圖900A,根據本發明的一個實施例,該範例使用多個第一主脊柱導線來佈線但沒有使用到緊密佈線。佈線範例900A,包括在佈線之前或佈線的時候,安置於預先決定的位置的水平M2電源線或接地線910。佈線範例900A,更包括水平M2主脊柱920、930、和940,它們的安置係依據沒有特別緊密佈線特性的標準佈線程序。水平M2主脊柱920、930、和940會相關於相同的網絡連線或不同的網絡連線。
圖9B說明一個佈線範例的簡化的平面圖900B,根據本發明的一個實施例,該範例使用多個第一主脊柱導線來佈線並使用到緊密佈線。圖9B所說明的特性類似於圖9A中的特性,但是具有以下要注意的例外。佈線範例900B包括水平M2主脊柱922、942分別相關於水平M2主脊柱920、940,差別在於佈線程序會執行附加的成本函數約束,也就是任何第一、第二及/或第三成本函數的組合,會包括一個與其他網絡連線的預先決定特性的距離。在所描述的範例中,一個相同金屬層中的脊柱導線會被緊密結合。如圖所顯示,水平M2主脊柱922、942會被安置在水平M2主脊柱930旁邊已選取的軌跡上。在這個範例中,該特性是在相同金屬層上任何其他已選取的軌跡,而在成本函數內的距離則為相同金屬層上最近的相鄰軌跡。這個緊密佈線的特性在需要額外空間的情況下是有用的,例如,在執行佈線程序後要再安置其他元件或相互連結。
圖9C說明一個佈線範例的簡化的平面圖900C,根據本發明的一個實施例,該範例使用多個第一主脊柱導線來佈線並使用到緊密佈線於一個電源線/接地線。圖9C所說明的特性類似於圖9B中的特性,但是具有以下要注意的例外。佈線範例900C包括水平M2主脊柱920、932、944分別相應於水平M2主脊柱922、930、942,差別在於佈線程序會執行附加的成本函數約束,也就是預先決定的特性會是在相同金屬層上的任何電源線或接地線。因此,水平M2第一主脊柱導線920、932、944,會優先地被安置在接近水平M2電源線或接地線910的軌跡上。這個特性可用以幫助隔離導線之間的雜訊傳輸,因為它使用到鄰近的電源線或接地線做為電磁屏障。
在某些實施例中,電腦會收到資訊指示一個特別的網絡連線,會以低電阻來佈線。為回應此一資訊,電腦會自動地促使網絡連線依據低電阻連結來佈線。例如,為回應該資訊,電腦會降低導線的長度或增加導線的寬度。在某些實施例中,為回應該資訊,電腦會被設定對一個要被連結的單一引腳群組,產生一個以上的第一主脊柱導線。在某些實施例中,該資訊包括指示那個金屬層會給一個第一主脊柱導線使用,為回應此狀況,電腦會使第一主脊柱導線依照所指示的圖層進行佈線。例如,該資訊會以要被佈線的電路描述的方式提供給電腦。
圖10A說明一個佈線範例的簡化的平面圖1000A,根據本發明的一個實施例,該範例使用多個水平M2第一主脊柱導線1032、1036來佈線一個網絡連線的一個引腳群組並使用到迴圈佈線。佈線範例1000A包括障礙1020類似於圖7A中的障礙720,水平M2第一主脊柱導線1036則類似於水平M2第一主脊柱導線736,而垂直M1主分支脊柱導線1040則類似圖7C中的垂直M1主分支脊柱導線740。如圖10A所說明在佈線時,電腦會從相關於一個引腳群組的多個M2佈線軌跡中,選取一個額外的水平M2主脊柱軌跡。電腦接著會在所選取的額外水平M2主脊柱軌跡上,產生額外水平M2第一主脊柱導線1032。垂直M1主分支脊柱導線1040會透過一個垂直M1主分支脊柱導線1040之延伸段1040B而被連結到額外的水平M2第一主脊柱導線1032,在圖10B有較詳細的說明。在某些實施例中,一個額外的垂直主分支脊柱導線(並未顯示)會額外地被產生出來,其中額外的垂直主分支脊柱導線也會連結到第一主脊柱導線1032、1036。
在某些實施例中,電腦會使用一個導線(並未顯示)來填滿缺口,或是至少填滿在第一主脊柱導線1032、1036 之間的一部分缺口。在某些實施例中,電腦會使用一個導線(並未顯示)來填滿缺口,或是至少填滿在主分支脊柱導線1040和額外垂直主分支脊柱導線之間的一部分缺口。
圖10B說明一個佈線範例1000A的一個詳細的部分1000B,根據本發明的一個實施例,該範例使用多個水平M2第一主脊柱導線1032、1036 用以佈線一個網絡連線並使用圖10A所說明的迴圈佈線。該詳細的部分1000B包括M1/M2導孔1050,用以將垂直的M1主分支脊柱導線1040和延伸段1040B,連結至水平M2第一主脊柱導線1036兩個縱向端點中的一個和額外的水平M2第一主脊柱導線1032。如圖所顯示,主分支脊柱導線1040會形成多個水平M2第一主脊柱導線的平行連結。因此,提供了網絡連線性能和可靠度的改善。例如,額外的M2水平第一主脊柱導線1032會被成形於一個水平M2脊柱軌跡內,該軌跡接近於被選取做為水平M2第一主脊柱導線1036的導線軌跡或是在一個非附近的軌跡。類似地,在另一個實施例中,主分支脊柱導線1040會連結到一個額外的主分支脊柱導線(並未顯示)。而任何多餘數目的脊柱導線,可透過佈線程序被添加進去。
在某些實施例中,電腦會收到資訊指示一個特別的網絡連線需要被屏障。為回應這樣的指示,電腦會自動地促使網絡連線使用一個屏蔽導線來佈線。例如,為回應這樣的資訊,電腦會在此特別網絡連線附近產生一個屏蔽導線,該屏蔽導線則會連結到一個電源或接地網絡連線。在某些實施例中,該屏蔽導線會圍繞或是大體上地圍繞該特別網絡連線。例如,該資訊會以一個被佈線的電路描述方式提供給電腦。
圖11說明一個佈線範例的簡化的平面圖1100,根據本發明的一個實施例,該範例使用多個第一主脊柱導線1135、1136、1140來佈線一個網絡連線,並使用到屏蔽佈線。M1層位於M2層之上,如此便於描述圖中的實施例。然而,可以理解的是當M1層被安置在IC上時,會位於M2的下方。如上所述,在相同金屬層上佈線一個脊柱導線於另一個導線的附近,會提供電磁屏蔽。該屏蔽可透過部分地或完全地在附近軌跡上使用額外導線,來圍繞一個脊柱導線而得到改善。該額外導線可能會連結到另一個網絡連線,像是電源或接地網絡連線。佈線範例1100更包括分別屏蔽水平M2第一主脊柱導線1135、1136的M2環狀導線1135R、1136R,以及包括屏蔽垂直M1第一主脊柱導線1140的M1環狀導線1140R。在此範例中,M2環狀導線1135R、1136R和M1環狀導線1140R,會透過導孔(並未顯示)被連結到接地(VSS)。當佈線程序自動執行時,網絡連線的脊柱會完全地被屏蔽導線所圍繞。另一方面,部分地屏蔽網絡連線脊柱也是同樣有效,它可以在鄰近平行軌跡中加入屏蔽導線到脊柱導線中,而不需要完全地用環狀屏蔽導線包住。
在某些實施例中,電腦會收到資訊指示一個特別的網絡連線,需要被連結到在多個引腳位置的一或多個電路單元引腳。為回應此指示,電腦會自動地促使網絡連線在多個引腳位置進行連結。例如,為回應該資訊,電腦會產生一個導線讓網絡連線能延伸穿越電路單元,使得產生的導線能穿越電路單元的多個引腳位置。電腦可能會額外地在所產生導線和引腳位置的連結處,產生導孔或接觸點。該資訊會以一個被佈線的電路描述方式提供給電腦。
圖12A-12B說明一個佈線範例的簡化的平面圖,根據本發明的一個實施例,該範例使用多個第一主脊柱導線1235來佈線一個網絡連線,並使用指形引腳連結佈線。在一個實施例中,任何第一、第二及/或第三成本函數的組合,會包括一個相互連結層的電阻率。在某些電路單元中,像是在記憶體單元的設計,可能會有相互連結層,像是多晶矽或是比金屬脊柱層有較高電阻率的擴散。該電路單元的引腳連結層會相應於電路單元的一部分,而其導線會被佈線使得電路單元能電子化地與其他電路連結。如圖12A和12B所顯示,電腦會自動地延伸或佈線第一主脊柱導線1235中的一個,以延伸超過電路單元,使得第一主脊柱導線能與引腳連結層1260在多個位置連結在一起。由於低電阻的第一主脊柱導線會在多個位置與電路單元連結,至少有一部分的內部高電阻相互連結層,會被第一主脊柱導線所岔開。接觸點或導孔1250,會由電腦添加至第一主脊柱導線1235和引腳連結層1260重疊的位置。接觸點或導孔所位於的重疊區域,會自動地分散以符合接觸點或導孔相應的間距設計規則。
圖12A說明本發明的一個實施例,其中第一主脊柱導線1235A與引腳連結層1260的重疊,靠近電路單元的一個端點。圖12B說明本發明的一個實施例,其中第一主脊柱導線1235B與引腳連結層1260的重疊,靠近電路單元的一個中間區域。
圖13A說明一個佈線範例1300A的簡化的平面圖,根據本發明的一個實施例,該範例使用一第一示例性約束,用以將網絡連線的引腳分割為多個群組1315、1316、1317,每個群組分別相關於多個第一主脊柱導線1335、1336、1337中不同的一個。在佈線之前的標準單元擺置時,多個單元擺置列1361、1362、1363、1364會被定義,然後標準單元或其他布局單元型式,會依照這些擺置列而被安置。每個擺置列定義一個區域或範圍,使得標準單元可被安置其中。標準單元會包括不同的電路組件,像是電晶體、電阻、電容、或其他包括連結引腳用以佈線網絡連線的組件。沒有被安置在單元擺置列內的標準單元或其他布局單元型式,可被安置在設計的任何地方,稱之為基於無擺置列的設計。
在佈線設計時或準備佈線設計時,例如,在網絡連線分解的時候,一個網絡連線的引腳會依據一個成本函數被分割(例如,圖6中所說明的步驟620),也就是包括一個規則相關於一個或多個約束。對於以列為基礎的設計,其成本函數會包括多個單元擺置列。一個約束是網絡連線的引腳,會依據多個單元擺置列中的一個相關列而被分割至一個群組。因此,多個群組1315、1316、1317,之每個群組會依據相關於多個第一主脊柱導線1335、1336、1337中不同的一個而被分割。所以,多個群組1315、1316、1317中的每一個,會相關於多個第一主脊柱導線1335、1336、1337中不同的一個。其結果,由於同一列的引腳會分享一個相應的相同脊柱,這種型式的引腳分割會被稱為一列一脊柱。例如,被安置在單元擺置列1363的結果,就是引腳群組1315會從網絡連線的多個引腳被分割為群組1315,而被安置在單元擺置列1361的結果,就是引腳群組1316會從網絡連線的多個引腳被分割為群組1316。
圖13B說明一個佈線範例1300B的簡化的平面圖,根據本發明的一個實施例,該範例使用一第二示例性約束,用以將網絡連線的引腳分割為相關於第一主脊柱導線的多個群組1315、1316。圖13B說明與圖13A類似的特性,除了以下的例外要注意。對於以列為基礎的設計,其約束是網絡連線的引腳,會依據單元擺置列的一個鄰近列而被分割為群組。因此,多個群組1315、1316的每一個,會依據成對單元擺置列1361-1362、1363-1364中不同的一個來進行分割。群組1315、1316中的每一個,會相關於多個第一主脊柱導線1336、1338 中不同的一個。其結果,由於同一個對列的引腳會分享一個相應的相同第一主脊柱導線,這種型式的引腳分割會被稱為雙列一脊柱。例如,被安置在單元擺置列對1363-1364的結果,就是引腳群組1315會從網絡連線的多個引腳被分割為群組1315,而被安置在單元擺置列對1361-1362的結果,就是引腳群組1316會從網絡連線的多個引腳被分割為群組1316。
在這個雙列一脊柱的範例中,因為引腳群組1315會被平均地分佈在單元擺置列1362和1364之間,則電腦會選取一個軌跡用以佈線主脊柱1338,也就是接近單元擺置列1362和1364的交點。然而,因為引腳群組1316分佈在單元擺置列1361之內,則電腦會選取位於相同單元擺置列1361之內的一個軌跡用以佈線主脊柱1336。可以理解的是電腦會額外地使用其他約束,像是整體導線長度和障礙位置,來分割引腳群組。再著,電腦可能會使用整體導線長度和障礙位置,配合一列一脊柱或雙列一脊柱的約束一起運用。
圖13C說明一個佈線範例1300C的簡化的平面圖,根據本發明的一個實施例,該範例使用一第三示例性約束,用以將網絡連線的引腳分割為分別相關於第一主脊柱導線1338、1336的多個群組1315、1316。圖13C說明與圖13B類似的特性,除了以下的例外要注意。不論是以列為基礎的設計(並未顯示)或是不以列為基礎的設計,一個約束為網絡連線的引腳會依據一個預先定義好的距離D來分割為群組。在一個實施例中,D被定義在正交於第一主脊柱導線1338之一的縱向軸的方向。在一個實施例中,D被定義為圍繞一個引腳群組的一個長方形區域中一邊的最大長度。因此,多個群組1315、1316會依據一個長方形框1370的一邊的長度D,並垂直於第一主脊柱導線1338的方向來進行分割。被長方形框1370所圍繞的引腳,會被分割為引腳群組1350。未被長方形框1370所圍繞的引腳,會被分割為引腳群組1316。多個群組1315、1316中的每個群組,會相關於多個第一主脊柱導線1336、1338中不同的導線。在一個實施例中,電腦會類似地約束分支脊柱(並未顯示)的長度大約在D/2。
圖14為一個簡化的電腦系統方塊圖,該電腦系統具有本發明多個實施例所揭露的面向和特性。圖14僅為本發明一個實施例的說明,它並未限制描述於權利要求項中發明的範圍。本領域的習知技藝人員可辨認出其它的變型、修改、和替換。
在一個實施例中,電腦系統1400通常包括一個顯示器1410,一個電腦1420,使用者輸出裝置1430,使用者輸入裝置1440,通訊介面1450,和類似的裝置。
如圖14所顯示,電腦1420會包括一個處理器1460透過一個匯流排子系統1490與許多周邊裝置溝通。這些周邊裝置可包括使用者輸出裝置1430、使用者輸入裝置1440、通訊介面1450和一個儲存子系統,像是隨機存取記憶體(RAM)1470和磁碟機1480。
使用者輸出裝置1430,包括所有可能用以輸入資訊至電腦系統1420的裝置和機制。這些裝置包括一個鍵盤、一個輔助鍵盤、一個與顯示幕結合的觸碰螢幕、聲音輸入裝置,像是語音辨識系統、麥克風,和其他型式的輸入裝置。在不同的實施例中,使用者輸出裝置1430典型上包括一個電腦滑鼠、一個軌跡球、一個軌跡板、一個搖桿、無線搖控器、繪圖板、語音控制系統、眼球追蹤系統,和其他類似的裝置。使用者輸出裝置1430一般允許一個使用者,透過一個命令像是按下一個按鈕的類似動作,來選取出現在顯示器1410上的物件、圖像、文字。
使用者輸入裝置1440,包括所有能夠自電腦1420輸出資訊的可能裝置和機制。這些裝置包括一個顯示器(例如,監視器1410)、非視覺的顯示器,像是語音輸出裝置等。
通訊介面1450提供一個介面給其他通訊網絡連線和裝置。通訊介面1450可做為自其他系統接收資料和傳送資料給其他系統的一個介面。多個實施例中的通訊介面1450一般包括一個Ethernet卡、一個數據機(電話、衛星、有線電視、ISDN)、(非同步)數字用戶線(DSL)單元、FireWire介面、USB介面、和其他類似介面。例如,通訊介面1450會連接到一個電腦網絡連線、到一個FireWire匯流排、或其他類似裝置。在其他的實施例中,通訊介面1450會實體地與電腦1420的主機板整合,也可能是個軟體程序,像是DSL軟體,或其他類似裝置。
在不同的實施例中,電腦系統1400也會包括透過一個網絡連線產生通訊的軟體,像是HTTP、TCP/IP、RTP/RTSP 協議和其他類似軟體。在本發明的其他不同的實施例中,其他的通訊軟體和傳輸協議也會被使用,例如:IPX、UDP或其他類似軟體。
在某些實施例中,電腦1420包括一個或多個來自Intel®的Xeon®微處理器,做為處理器1460。更在一個實施例中,電腦1420包括一個以UNIX為基礎的作業系統。
隨機存取記憶體(RAM)1470和磁碟機1480均為實體媒介的範例,它們會被設定來儲存資料,像是本發明的多個實施例,包括可執行的電腦程式碼、人類可讀程式碼,和其他類似資料。其他形式的實體媒介包括軟式磁碟、可移動式硬碟機、光學儲存媒介像是CD-ROM、DVD和條碼、半導體記憶體像是閃存記憶體、唯讀記憶體(ROM)、電池供電的揮發性記憶體、網絡連線儲存裝置,和其他類似裝置。隨機存取記憶體(RAM)1470和磁碟機1480,可被設定儲存基本的程序和資料結構,以為本發明提供功能。
提供本發明功能的軟體程式碼模組和指令,會被儲存在RAM 1470和磁碟1480之內。這些軟體模組可被處理器1460所執行。RAM 1470和磁碟1480也可提供貯存庫來儲存資料用於本發明上。
RAM 1470和磁碟1480會包括許多記憶體,包括一個主要的隨機存取記憶體(RAM)來儲存程序執行時的指令和資料,以及一個唯讀記憶體(ROM)來儲存固定的指令。這些指令會被處理器1460所讀取,當這些指令執行時,會使電腦執行在不同實施例中所描述的動作。RAM 1470和磁碟1480會包括一個檔案儲存子系統做為程序和資料檔案持續儲存(非揮發性)的地方。RAM 1470和磁碟1480也會包括可移動的儲存系統,像是可移動的閃存記憶體。
匯流排子系統1490提供一個機制,讓電腦1420不同的組件和子系統之間,可以依預設的方式彼此間進行通訊。雖然匯流排子系統1490在電路圖上以一個單一匯流排來顯示,不同實施例的匯流排子系統可能會使用多個匯流排。
圖14為能夠具像化本發明的一個電腦系統。對本領域普通技術人員明顯瞭解,有許多其他硬體和軟體設定均適合用於本發明。例如,電腦可以是桌上型、攜帶型、機架式或平板型式。除此之外,此電腦也可以是一連串的網絡連線電腦。更可預期使用其他的微處理器,像是Pentium™ 或 Itanium™微處理器;來自Advanced Micro Devices, Inc的Opteron™ 或AthlonXP™微處理器,和其他的類似微處理器。更可預期使用其他的作業系統,像是來自Microsoft Corporation 的Windows®、WindowsXP®、WindowsNT®Further或其他類似的作業系統,來自Sun Microsystems的Solaris,LINUX、UNIX,和其他類似的作業系統。在其他的實施例中,上述的技藝也可能實作在一個晶片或一個輔助處理機板中。
本發明中不同的實施例,可以以邏輯形式被實作於軟體或硬體或兩者的組合。此邏輯可被儲存於電腦可讀或機器可讀的儲存媒介中,並可被儲存為一組指令,指導一個電腦系統的一個處理器去執行一組本發明中多個實施例的步驟。此邏輯會形成一個電腦產品的一部分,來指導一個資訊處理裝置,去執行一組本發明中多個實施例的步驟。根據目前所提供的揭露和教導,本領域的普通技術人員將會理解其它方式及/或方法來實現本發明。
本規格和圖畫應分別視為一種說明而非一種限制。然而,不同的修正和改變,可以不脫離本發明權利要求中闡述的更寬的精神和範圍來完成。除此之外,本發明的技術和系統,可以使用更多不同的EDA工具和方法論,來進行設計、測試、及/或製造積體電路或其他電子裝置。本發明的範圍不應根據上述的說明決定,而應根據所附權利請求及等同權利請求項的全部範圍決定。
100‧‧‧示例性網絡連線佈線問題的簡化的平面圖
110‧‧‧引腳
120‧‧‧障礙
130‧‧‧第一布局平面
140‧‧‧第二布局平面
200‧‧‧佈線範例簡化的平面圖
210‧‧‧第一主脊柱導線
220‧‧‧分支脊柱
230‧‧‧導線
M2‧‧‧第二層金屬
M1‧‧‧第一層金屬
M3‧‧‧第三金屬層
240、250‧‧‧交叉點
310、320‧‧‧主脊柱
310‧‧‧第一主脊柱
320‧‧‧第二主脊柱
330‧‧‧主分支脊柱
340‧‧‧分支脊柱
400A‧‧‧佈線範例的簡化的平面圖
420‧‧‧第一主脊柱導線
430、440‧‧‧水平軌跡
420‧‧‧第一主脊柱導線
400B‧‧‧佈線範例
450、460‧‧‧第一主脊柱導線
470‧‧‧主分支脊柱
700A‧‧‧佈線範例的簡化的平面圖
710‧‧‧引腳
715、716、717‧‧‧引腳群組
720‧‧‧障礙
700B‧‧‧佈線範例的簡化的平面圖
725、726、727‧‧‧水平M2軌跡
700C‧‧‧佈線範例的簡化的平面圖
735、736、737‧‧‧主脊柱
740‧‧‧主分支脊柱740
700D‧‧‧佈線範例的簡化的平面圖700D
745、747‧‧‧分支脊柱
833‧‧‧再使用的預置導線
835‧‧‧主脊柱導線
900A‧‧‧佈線範例的簡化的平面圖
910‧‧‧水平M2電源線或接地線
920、932、944、922、942、930、940‧‧‧水平M2主脊柱
900B‧‧‧佈線範例的簡化的平面圖
1000A‧‧‧佈線範例的簡化的平面圖
1032、1036‧‧‧水平M2第一主脊柱導線
1020‧‧‧障礙
1040‧‧‧垂直M1主分支脊柱導線
1000B‧‧‧佈線範例1000A的一個詳細的部分
1050‧‧‧M1/M2導孔
1040B‧‧‧垂直M1主分支脊柱導線1040之延伸段
1036‧‧‧水平M2第一主脊柱導線
1100‧‧‧佈線範例的簡化的平面圖
1135、1136、1140‧‧‧第一主脊柱導線
1135、1136‧‧‧水平M2第一主脊柱導線
1135R、1136R‧‧‧M2環狀導線
1140‧‧‧垂直M1第一主脊柱導線
1140R‧‧‧M1環狀導線
1235‧‧‧第一主脊柱導線
1260‧‧‧引腳連結層
1250‧‧‧接觸點或導孔
1235A、1235B‧‧‧第一主脊柱導線
1300A‧‧‧佈線範例
1315、1316、1317‧‧‧引腳群組
1335、1336、1337、1338‧‧‧第一主脊柱導線
1361、1362、1363、1364‧‧‧單元擺置列
1300C‧‧‧佈線範例
1370‧‧‧長方形框
1350‧‧‧引腳群組
1400‧‧‧電腦系統
1410‧‧‧顯示器
1420‧‧‧電腦
1450‧‧‧通訊介面
1460‧‧‧處理器
1490‧‧‧個匯流排子系統
1430‧‧‧輸出裝置
1440‧‧‧輸入裝置
1450‧‧‧通訊介面
1470‧‧‧隨機存取記憶體
1480‧‧‧磁碟機
本發明的多個實施例,會被揭露於以下的詳細說明和所附的附圖內。 圖1說明兩個示例性網絡連線之佈線問題的一簡化的平面圖。 圖2說明使用一個單一第一主脊柱導線的一個佈線範例之一簡化的平面圖,以用   於圖1中的一個示例性網絡連線之佈線問題。 圖3說明本發明的一實施例之使用多個第一主脊柱導線的一佈線範例的一個簡化的平面圖,以用於圖1中的另一個示例性網絡連線之佈線問題。 圖4A說明本發明的一實施例之一個佈線範例的簡化的平面圖,該佈線範例使用一個單一第一主脊柱導線來佈線一個具有不對齊軌跡樣式的網絡連線。 圖4B說明一個佈線範例的簡化的平面圖,該佈線範例使用多個第一主脊柱導線 來佈線圖4A的網絡連線。 圖5說明本發明的一實施例之使用多個第一主脊柱導線來佈線一個網絡連線的 一第一簡化的流程圖。 圖6說明本發明的一實施例之使用多個第一主脊柱導線來佈線一個網絡連線的 一第二簡化的流程圖。 圖7A說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個 第一主脊柱導線,在分割網絡連線引腳為多個相關於多個第一主脊柱導  線的群組之後來佈   線一個網絡連線。 圖7B說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個 第一主脊柱導線,在估測過相關於多個第一主脊柱導線的可用軌跡之後  來佈線一個網絡連線。 圖7C說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個 第一主脊柱導線,在產生主脊柱和一個主分支脊柱之後來佈線一個網絡  連線。 圖7D說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個 第一主脊柱導線,在產生至少一個分支脊柱之後來佈線一個網絡連線。 圖7E說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個 第一主脊柱導線,在產生導線連結相關於分支脊柱的未連結引腳之後來  佈線一個網絡連線。 圖8說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用多個第   一主脊柱導線利用一個重複使用的前置導線來佈線一個網絡連線。 圖9A說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用沒有 緊密佈線的多個第一主脊柱導線來佈線一個網絡連線。 圖9B說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用緊密 佈線的多個第一主脊柱導線來佈線一個網絡連線。 圖9C說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用緊密 佈線於一個電源/地線的多個第一主脊柱導線來佈線一個網絡連線。 圖10A說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用具有   迴圈佈線的多個第一主脊柱導線來佈線一個網絡連線。 圖10B說明本發明的一實施例之一個佈線範例的簡化的平面圖的一部分,該範例   使用圖10A中具有迴圈佈線的多個第一主脊柱導線來佈線一個網絡連   線。 圖11說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用具有 屏蔽佈線的多個第一主脊柱導線來佈線一個網絡連線。 圖12A-12B說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用   具有指形引腳連結佈線的多個第一主脊柱導線中的一個來佈線一個網   絡連線。 圖13A說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用一第   一示例性約束,將相關於第一主脊柱導線的網絡連線引腳分割為許多群  組。 圖13B說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用一第   二示例性約束,將相關於第一主脊柱導線的網絡連線引腳分割為許多群  組。 圖13C說明本發明的一實施例之一個佈線範例的簡化的平面圖,該範例使用一第   三個示例性約束,將相關於第一主脊柱導線的網絡連線引腳分割為許多  群組。 圖14為可用於本發明多個實施例的一個電腦系統的一個方塊圖。
310、320‧‧‧主脊柱
310‧‧‧第一主脊柱310
320‧‧‧第二主脊柱320
330‧‧‧主分支脊柱330
340‧‧‧分支脊柱

Claims (22)

  1. 一個使用電腦以佈線一電子電路之一網絡連線的方法,其中該網絡連線連結該電子電路的多個引腳,該方法包括: 使用一或多個電腦系統,用以選取分別對應於該網絡連線的該多個引腳中之至少一第一及一第二群組之至少一第一及一第二主脊柱佈線軌跡;以及 使用一或多個電腦系統,用以在所選取的該第一主脊柱佈線軌跡上產生一第一第一主脊柱導線,以及在所選取的該第二主脊柱佈線軌跡上產生一第二第一主脊柱導線。
  2. 如申請專利範圍第1項所述之方法,其中該第一及該第二主脊柱佈線軌跡的選取係依據一第一成本函數。
  3. 如申請專利範圍第1項所述之方法,更包括使用一或多個電腦系統,根據一第二成本函數,將該網絡連線的該多個引腳分割為該第一和該第二群組。
  4. 如申請專利範圍第3項所述之方法,其中該網絡連線的該多個引腳係依據該多個引腳的位置來進行分割。
  5. 如申請專利範圍第4項所述之方法,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於一個單一標準單元列之內。
  6. 如申請專利範圍第4項所述之方法,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於一組相鄰的標準單元列之內。
  7. 如申請專利範圍第4項所述之方法,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於相關於該群組主脊柱佈線軌跡的一個預先決定的距離之內。
  8. 如申請專利範圍第1項所述之方法,其中該第一和該第二主脊柱佈線軌跡的選取,係分別地依據該第一及該第二群組的引腳位置。
  9. 如申請專利範圍第1項所述之方法,更包括產生一主分支脊柱,用以連結該第一及該第二第一主脊柱導線。
  10. 如申請專利範圍第1項所述之方法,更包括: 自動地分別地選取該第一及該第二群組的一第三和一第四主脊柱佈線軌跡; 自動地在所選取的該第三主脊柱佈線軌跡上產生一第三第一主脊柱導線,以及在所選取的該第四主脊柱佈線軌跡上產生一第四第一主脊柱導線; 自動地在該第一及該第三第一主脊柱導線之間產生一電性連結;以及 自動地在該第二及該第四第一主脊柱導線之間產生一電性連結。
  11. 如申請專利範圍第1項所述之方法,更包括: 自動地產生平行於該第一第一主脊柱導線的一第一及一第二屏蔽導線,其中該第一及該第二屏蔽導線都連結在一屏蔽節點;以及 自動地在產生平行於該第一第一主脊柱導線的一第三及一第四屏蔽導線,其中該第三及該第四屏蔽導線都連結在該屏蔽節點。
  12. 一個佈線器,被設定為用以佈線一電子電路之一網絡連線,其中該網絡連線連結該電子電路的多個引腳,該佈線器包括: 一記憶體包括指令;以及 一處理器被設定來執行該指令,其中該指令會使電腦執行一方法,該方法包括: 使用一或多個電腦系統,用以選取分別對應於該網絡連線的該多個引腳中之至少一第一及一第二群組之至少一第一及一第二主脊柱佈線軌跡;以及 使用一或多個電腦系統,用以在所選取的該第一主脊柱佈線軌跡上產生一第一第一主脊柱導線,以及在所選取的該第二主脊柱佈線軌跡上產生一第二第一主脊柱導線。
  13. 如申請專利範圍第12項所述之佈線器,其中該第一及該第二主脊柱佈線軌跡的選取係依據一第一成本函數。
  14. 如申請專利範圍第12項所述之佈線器,其中該方法更包括使用一個或多個電腦系統,根據第二個成本函數,將該網絡連線的該多個引腳分割為第一個和第二個引腳群組。
  15. 如申請專利範圍第14項所述之佈線器,其中該網絡連線的該多個引腳系依據該多個引腳的位置來進行分割。
  16. 如申請專利範圍第15項所述之佈線器,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於一單一標準單元列之內。
  17. 如申請專利範圍第15項所述之佈線器,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於一組相鄰的標準單元列之內。
  18. 如申請專利範圍第15項所述之佈線器,其中該網絡連線的該多個引腳會被分割使得每個群組的引腳位置,都位於相關於該群組主脊柱佈線軌跡的一個預先決定的距離之內。
  19. 如申請專利範圍第12項所述之佈線器,其中該第一及該第二主脊柱佈線軌跡的選取,係分別地依據該第一及該第二群組的引腳位置。
  20. 如申請專利範圍第12項所述之佈線器,其中該方法更包括產生一主分支脊柱,用以連結該第一及該第二第一主脊柱導線。
  21. 如申請專利範圍第12項所述之佈線器,其中該方法更包括: 自動地分別地選取該第一及該第二群組的一第三及一第四主脊柱佈線軌跡; 自動地在所選取的該第三主脊柱佈線軌跡上產生一第三第一主脊柱導線,以及在所選取的該第四主脊柱佈線軌跡上產生一第四第一主脊柱導線; 自動地在該第一及該第三第一主脊柱導線之間產生一電性連結;以及 自動地在該第二及該第四第一主脊柱導線之間產生一電性連結。
  22. 如申請專利範圍第12項所述之佈線器,其中該方法更包括: 自動地產生平行於該第一第一主脊柱導線的一第一及一第二屏蔽導線,其中該第一及該第二屏蔽導線都連結在一個屏蔽節點;以及 自動地在產生平行於該第一第一主脊柱導線的一第三及一第四屏蔽導線,其中該第三及該第四屏蔽導線都連結在該屏蔽節點。
TW103135241A 2013-10-09 2014-10-09 使用多個主脊柱的佈線方法及佈線器 TWI670614B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361888932P 2013-10-09 2013-10-09
US61/888,932 2013-10-09

Publications (2)

Publication Number Publication Date
TW201530332A true TW201530332A (zh) 2015-08-01
TWI670614B TWI670614B (zh) 2019-09-01

Family

ID=52813649

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103135241A TWI670614B (zh) 2013-10-09 2014-10-09 使用多個主脊柱的佈線方法及佈線器

Country Status (2)

Country Link
TW (1) TWI670614B (zh)
WO (1) WO2015054536A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10719653B2 (en) 2013-10-09 2020-07-21 Synopsys, Inc. Spine routing and pin grouping with multiple main spines

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3289999B2 (ja) * 1993-07-01 2002-06-10 三菱電機エンジニアリング株式会社 半導体集積回路
TWI250777B (en) * 2004-05-28 2006-03-01 Shin-Yi Huang Method to control the ring sound by public communication network
US7257797B1 (en) * 2004-06-07 2007-08-14 Pulsic Limited Method of automatic shape-based routing of interconnects in spines for integrated circuit design
TWI453617B (zh) * 2009-08-25 2014-09-21 Hon Hai Prec Ind Co Ltd 電路佈線系統及方法
TW201115158A (en) * 2009-10-29 2011-05-01 Hon Hai Prec Ind Co Ltd System and method for testing ground pins
US8683417B2 (en) * 2010-11-29 2014-03-25 Synopsys Taiwan Co., Ltd Multiple level spine routing

Also Published As

Publication number Publication date
TWI670614B (zh) 2019-09-01
WO2015054536A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
US9563731B2 (en) Cell boundaries for self aligned multiple patterning abutments
US9747406B2 (en) Spine routing with multiple main spines
US10719653B2 (en) Spine routing and pin grouping with multiple main spines
KR101745798B1 (ko) 글로벌 연결부 라우팅 방법 및 이를 실시하기 위한 시스템
US8171447B1 (en) Automatically routing nets according to current density rules
US7370307B2 (en) Computer automated design system, a computer automated design method, and a semiconductor integrated circuit
US8015536B2 (en) Process and apparatus for adjusting traces
TWI326485B (en) Multilayered integrated circuit with extraneous conductive traces
TWI660479B (zh) 在電力網路中增進與相鄰導電線的間隔之魚骨結構
US10248752B2 (en) Method for routing between pins of semiconductor device and design system therewith
JPH07321211A (ja) 半導体集積回路の配線方法
US10204894B2 (en) Via placement within an integrated circuit
JP4275032B2 (ja) 回路基板の設計方法
US7373628B1 (en) Method of automatically routing nets using a Steiner tree
US20040216067A1 (en) Method of determining arrangement of wire in semiconductor intergrated circuit
TWI670614B (zh) 使用多個主脊柱的佈線方法及佈線器
KR20100118934A (ko) T-커넥션, t-커넥션의 설계 방법 및 t-커넥션의 콤팩트 모델링
JP2002528795A (ja) 集積回路のルーティングに関するアプローチ
JP4803997B2 (ja) 半導体集積装置、その設計方法、設計装置、およびプログラム
US8627256B2 (en) Method for computing IO redistribution routing
CN109145511B (zh) 一种mos管的栅极的交互式打孔方法
TWI534645B (zh) 積體電路設計中之通孔嵌入
US20050132319A1 (en) Automatic method for routing and designing an LSI
US20140157221A1 (en) Techniques for routing signal wires in an integrated circuit design
JP6984442B2 (ja) 基板、電子装置、及び基板の設計支援方法