專利名稱:具有傾斜布線的半導體集成電路、及其布圖方法和布圖設計程序的制作方法
技術領域:
本發明涉及配置晶體管、單元和兆單元等的邏輯單元、在邏輯單元之間采用傾斜布線進行連接的半導體集成電路。
背景技術:
由于在半導體集成電路中利用多條布線來連接晶體管、單元和兆單元(メガセル)等的邏輯單元的多個引線,因此布線和布線就會交叉。為此,半導體集成電路就具有多層布線層并在布線層內配置有布線。由于將交叉的布線配置在不同的布線層中,就可能產生交叉。
一般地,將布線層中的布線配置的布線方向固定在縱向或橫向的一個方向上。在一個方向上固定的布線方向稱為優先布線方向。根據優先布線方向進行布線是為了在引線之間設計布線時方便。在布線方向設計為縱向和橫向正交布線的情況下,通過在布線層上設定縱向為橫向的優先布線方向,就能夠使在不同方向上引進的布線的交叉變容易,并能夠縮短設計布線所需的時間。
此外,對于至少四層的布線層,有在各個布線層上,設定縱向、橫向、傾斜45度的方向、傾斜135度的方向的四個方向作為優先布線方向來進行布線的半導體集成電路。
在有在多個布線層上,設定縱向、橫向、傾斜45度的方向、傾斜135度的方向的四個方向作為優先布線方向來進行布線的半導體集成電路中,在存儲器等的微處理單元附近的布線區域中,多數要求在縱向和橫向兩個方向上布線,而少數要求連接沿傾斜45度的方向和傾斜135度的方向的兩個方向配置的布線。但是,在縱向的布線中,只能使用優先布線方向為縱向的布線層,未納入優先布線方向為縱向布線層的縱向布線利用傾斜45度的方向和傾斜135度的方向為優先布線方向的布線層來進行鋸齒狀布線。并且,布線長度就必須更長。
另一方面,如果在布線層中不設定優先布線方向,在一個布線層內,在正交布線的情況下,在縱向和橫向、傾斜布線也可以的情況下,在縱向、橫向、傾斜45度的方向和傾斜135度的方向上可進行布線的方法中,就能夠提高布線設計的自由度,由于增加了用于獲得的布線路徑的計算量,所以就不可能按現實的處理時間來進行大規模電路的半導體集成電路的布線。
發明內容
本發明的半導體集成電路,包括在核心區內配置的邏輯單元的內側區域和鄰近的外側區域以及所述核心區的外周內側區域的至少一個區域內、并且在多層布線層的至少一層的指定布線層內,在0度、45度、90度和135度方向中的單一方向的第一方向上布線的多條第一布線;以及在所述指定區域之外的布線區域中、并且在所述指定布線層內,在與所述第一方向不同的0度、45度、90度和135度方向中的單一方向的第二方向上布線的多條第二布線。
圖1是實施例1的半導體集成電路的設計裝置的結構圖。
圖2是實施例1的半導體集成電路的設計方法的流程圖。
圖3是實施例1的半導體集成電路布圖的設計方法的流程圖。
圖4是實施例1的半導體集成電路布圖的設計過程中的示意圖。
圖5是表示初始指定區域內的布線層和布線層的布線方向的數據庫的圖表。
圖6是根據初始指定區域內的布線層和布線層的布線方向,進行布線的模式圖。
圖7是實施例1的半導體集成電路布圖的設計過程中的示意圖。
圖8和9是表示再指定區域內的布線層和變更前后的布線層的布線方向的數據庫的圖表。圖8涉及在矩形半導體集成電路的角部配置的兆單元的上方的布線層的布線方向。圖9涉及與在矩形半導體集成電路的角部配置的兆單元相鄰的再指定區域的布線層的布線方向。
圖10是根據在矩形半導體集成電路的角部配置的兆單元上和鄰接兆單元的再指定區域內的布線層的布線方向進行布線的模式圖。
圖11是表示再指定區域內的布線層和變更前后的布線層的布線方向的數據庫的圖表。圖11涉及與在半導體集成電路的中央配置的兆單元相鄰的再指定區域的上方的布線層的布線方向。
圖12是根據與在半導體集成電路的中央配置的兆單元相鄰的再指定區域內的布線層和布線層的布線方向進行布線的模式圖。
圖13-圖16是表示再指定區域內的布線層和變更前后的布線層的布線方向的數據庫的圖表。圖13涉及在半導體集成電路中央配置的兆單元的上方的再指定區域的布線層的布線方向。圖14涉及在半導體集成電路的邊上配置的兆單元的上方的再指定區域的布線層的布線方向。圖15涉及在沒有配置兆單元的半導體集成電路的角部設定的再指定區域的布線層的布線方向。圖16涉及在沒有配置兆單元的半導體集成電路的邊上設定的再指定區域的布線層的布線方向。
圖17是實施例2的半導體集成電路布圖的設計方法的流程圖。
圖18是表示再指定區域內的布線層和變更前后的布線層的布線方向的數據庫的圖表。
圖19-圖22是實施例2的半導體集成電路布圖的設計過程中的布線圖。
圖23是實施例3的半導體集成電路的典型的布圖的頂視圖。
圖24是實施例3的半導體集成電路的典型的布圖的剖面圖。
圖25是表示初始指定區域內的布線層和布線層的布線方向的數據庫的圖表。
圖26-圖29是實施例3的半導體集成電路的布圖的頂視圖。
具體實施例方式
見參照附圖來說明本發明的各個實施例。應當注意,在整個附圖中,相同或相似參考標記表示相同或類似部件和元件,并且將省略或簡化相同或類似部件和元件的說明。
第一實施例如圖1所示,本發明的實施例1的半導體集成電路的設計裝置1包括系統設計部2、功能設計部3、邏輯電路設計部4和布圖設計部5。布圖設計部5包括單元配置部6、初始區域設定部7、方向指定部8、區域先行設定部9、方向先行改變部10、布線部11、迂回判定部12、再指定判定部13。再有,半導體集成電路的設計裝置1也可以是計算機、也可以通過執行寫入計算機程序中的操作程序來完成半導體集成電路的設計裝置1。
如圖2中所示,對于本發明的實施例1的半導體集成電路設計方法,首先在步驟S1中,在系統設計部2中進行包括半導體集成電路的系統的設計。在步驟S2中,在功能設計部3中根據系統來設計半導體集成電路所需的功能。在步驟S3中,在邏輯電路設計部4中根據功能來設計半導體集成電路的邏輯電路。在步驟S4中,在布圖設計部5中根據邏輯電路來設計半導體集成電路的布圖。結束半導體集成電路的設計方法。再有,步驟S4的詳情在圖3的半導體集成電路布圖的設計方法中示出。半導體集成電路的設計方法,作為操作程序能夠利用計算機可實行的半導體集成電路的設計程序加以表現。通過在計算機中執行該半導體集成電路的設計程序,就能夠實施半導體集成電路的設計方法。
簡要說明本發明的實施例1的半導體集成電路布圖的設計方法。
首先,在圖3的步驟S11中,在單元配置部6中,在布圖平面上配置晶體管、單元和兆單元。布圖平面具有多層布線層。
然后,在步驟S12中,在初始區域設定部7中,在整個布圖平面中設定初始指定區域。
在步驟S13中,在方向指定部8中,在初始指定區域內的布線層中指定布線方向。
在步驟S14中,在區域先行設定部9中,在初始指定區域內指定再指定區域。
在步驟S15中,在方向先行改變部10中,根據預先記錄的數據庫來變更再指定區域中的布線層的布線方向。
在步驟S16中,在布線部11中,根據布線方向,經過布線層形成連接引線間的布線。
在步驟S17中,在迂回判定部12中,判定布線是否為迂回布線。如果布線不是迂回布線,那么就停止半導體集成電路布圖的設計方法。如果布線是迂回布線,那么就進行步驟S18。在判定布線是否為迂回布線的過程中,也可以在連接的引線之間的距離或布線中存在布線分支點的情況下,判定布線的長度是否為引線和布線分支點之間的距離或布線分支點之間的距離與2的平方根之積以上。而且,最好是可判定布線的長度為連接的引線之間的距離和1.3乘積以上。更加是可判定布線的長度為連接的引線之間的距離和1.2乘積以上。即,乘積約接近1,就越能縮小迂回程度。此外,因反復進行布線需要用于無迂回布線的時間,所以也可以在時間許可范圍之內,使乘積接近1。
在步驟S18中,在再指定判定部13中判定是否需要再度實施指定再指定區域。在判定為有必要再度實施的情況下,進行步驟S14。在判定為不必再度實施的情況下,進行步驟S15。在再指定區域之外配置迂回布線的情況下,判定為必須進行再度實施。在與迂回布線連接的引線位于再指定區域之外的情況下,判定為必須進行再度實施。在整個再指定區域配置迂回布線的情況下,就不必進行再度實施。在再指定區域的一部分中配置迂回布線的情況下,就必須實施在再指定區域內指定新的再指定區域。
根據具體實例來說明本發明實施例1的半導體集成電路布圖的設計方法。
首先,如圖4所示,在圖3的步驟S11中,在矩形布圖平面21中配置晶體管、單元和兆單元23-26。布圖平面21具有多層布線層。
然后,在步驟S12中,在整個布圖平面21中設定初始指定區域22。
在步驟S13中,在初始指定區域22內的布線層中指定布線方向。具體地,根據圖5所示的布線層,制成可檢索布線方向的數據庫。數據庫具有根據指定的布線層能檢索布線方向的記錄器28。記錄器28具有布線層的場26和布線方向的場27。由此,可從第一層布線層開始檢索0度方向(橫向)的布線方向。同樣地,可以從第二層至第四層的布線層開始檢索90度方向(縱向)、傾斜45度方向和傾斜135度方向的布線方向。如圖6所示,通過這種檢索,就可以在第一層的布線層中配置布線方向為0度方向的布線31。可以在第二層的布線層中配置布線方向為90度方向的布線32。可以在第三層的布線層中配置布線方向為45度方向的布線33。可以在第四層的布線層中配置布線方向為135度方向的布線34。
在步驟14中,如圖7所示,在初始指定區域22內指定再指定區域29、35-43。在與布圖平面21角部配置的單元23重疊的區域中設置再指定區域29。在與布圖平面21角部配置的單元23相鄰的區域中設置再指定區域35。在與布圖平面21中央配置的單元24重疊的區域中設置再指定區域37。在與布圖平面21中央配置的單元24相鄰的區域中設置再指定區域36。在與布圖平面21中央配置的單元25重疊的區域中設置再指定區域39。在與布圖平面21中央配置的單元25相鄰的區域中設置再指定區域38。在與布圖平面21的矩形邊上配置的單元26重疊區域中設置再指定區域40。在未配置兆單元的布圖平面21的角部設置再指定區域41和42。在未配置兆單元的布圖平面21的邊上設置再指定區域43。
在步驟S15中,根據預先記錄的數據庫,變更再指定區域29、35-43內的布線層的布線方向。
關于再指定區域29,事先準備圖8所示的數據庫。數據庫根據布線層,能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層,能夠檢索變更前的布線方向和變更后的布線方向的記錄器47。記錄器47具有布線層的場44、初始布線方向的場45和第一次至第三次變更后的布線方向的場46。由此,在第一次的變更中,就可以檢索變更前后的第一層—第四層的布線層的布線方向。表明第一變更前后,沒有改變第一層至第四層的布線層的布線方向。表明第一變更前后,第四層的布線層的布線方向從傾斜135度方向變化為90度方向。表明第二變更前后,第三層的布線層的布線方向從傾斜45度方向變化為0度方向,第四層的布線層的布線方向從90度方向變化為傾斜45度方向。表明第三變更前后,第三層的布線層的布線方向從0度方向變化為傾斜45度方向。在兆單元23為縱向長的情況下,可以適當考慮第一變更。在兆單元23為橫向長的情況下,可以適當考慮第二變更。在兆單元23為正方形的情況下,可以適當考慮第三變更。
關于再指定區域35,事先準備圖9所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層,可檢索變更前的布線方向和變更后的布線方向的記錄器51。記錄器51具有布線層的場48、初始布線方向的場49和第一次變更后的布線方向的場50。由此,在第一次變更中,能夠檢索變更前后的第一層—第四層的布線層的布線方向。表明變更前后,沒有改變第一層和第二層的布線層的布線方向。表明變更前后,第三層的布線層的布線方向從傾斜45度方向變化為0度方向。表明變更前后,第四層的布線層的布線方向從傾斜135度方向變化為90度方向。
在步驟S16中,如圖10所示,關于再指定區域29和35,根據圖8和圖9的數據庫的布線方向,經過布線層形成連接的引線之間的布線。當在配置在布圖平面21的角部的兆單元23上制作通過布線時,兆單元23內部通過第一層和第二層的布線層進行布線的情況下,在兆單元23上能夠利用第三層以上的布線層形成布線。再指定區域29的第三層和第四層的布線層的布線方向為如圖8的第一變更所示的同一方向的傾斜45度方向。即,根據配置兆單元23的角部的布圖平面21內的位置,將第三層和第四層的布線層的布線方向設定為傾斜135度方向。不僅是第三層的布線53、54、56-58,還有第四層的布線52、55也能夠利用短的距離從兆單元23上通過。如此,沒有必要使必須連接的第三層和第四層的布線層的布線方向不同,使其相同也可以。
此外,在與配置在布圖平面21的角部的兆單元23相鄰的再指定區域35中形成布線時,要求傾斜45度方向和傾斜135度方向的布線方向的布線的情況為少數。因此,將再指定區域35的第三層的布線層的布線方向從圖9的傾斜45度方向變更為0度方向。同樣地,將第四層的布線層的布線方向從傾斜135度方向變更為90度方向。如圖10中所示,第三層的布線56、59、60、61、66、68等的布線方向為0度方向。第四層的布線62、63、64、65、67、69等的布線方向為90度方向。
如此,由于相對于第一布線層存在多個布線方向,就可以利用在連接要求多的布線方向上的增多的布線層。能獲得縮短布線長度的效果,不必要增加布線長度。而且,進行布線時,由于在確定各布線層的各區域的優先布線方向上,減少了迂回布線,提高了接線率,因此就能夠按現實的處理時間來設計布線。
接下來,說明圖7的再指定區域36、38。
在步驟S15中,變更再指定區域36、38中的布線層的布線方向。關于再指定區域36、38,事先準備圖11所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層,能夠檢索變更前的布線方向和變更后的布線方向的記錄器76。記錄器76具有布線層的場71、初始布線方向的場72、第一次變更后的布線方向的場73、第二次變更后的布線方向的場74和第三次變更后的布線方向的場75。由此,使從第一次至第三次的變更成為可能,并且可檢索各次變更后的第一層至第四層的布線層的布線方向。在變更前后,表明沒有改變第一層和第二層的布線層的布線方向。表明通過第一次的變更,第三層的布線層的布線方向變為0度方向,且第四層的布線層的布線方向變為90度方向。表明通過第二次的變更,第三層的布線層的布線方向變為45度方向,且第四層的布線層的布線方向照舊保持為90度方向。表明通過第三次的變更,第三層的布線層的布線方向變為0度方向,且第四層的布線層的布線方向變為135度方向。如此,按相鄰的上下兩層的布線方向不同來進行設定。
在步驟S16中,如圖12所示,關于再指定區域36、38,根據圖11的數據庫的第一變更的布線方向,經過布線層形成連接引線之間的布線。當在與配置在布圖平面21的中央的兆單元24、25相鄰的再指定區域35中制作布線時,減少了要求傾斜45度方向和傾斜135度方向的布線方向上的布線情況為少數。另一方面,與兆單元24、25的引線77-82連接的布線104、108等的布線方向為與布線104、108等連接的兆單元24的引線77-82的某一邊垂直的方向,為圖12的0度方向。并且,根據與兆單元24、25平行的布線方向,要求圖12的90度方向的布線91、93、95、%、98、100、101、103。這是因為與邊平行的布線方向的布線不連接兆單元24、25。因此,通過第一變更,將再指定區域36、38的第三層的布線層的布線方向變更為圖11的0度方向。同樣地,將第四層的布線層的布線方向變更為90度方向。如圖12所示,第三層的布線92、94、97、99、102等的布線方向為0度方向。第四層的布線91、93、95、96、98、100、101、103等的布線方向為90度方向。
如此,由于相對于第一布線層存在多個布線方向,就可以利用在連接要求多的布線方向上的增多的布線層。能獲得縮短布線長度的效果,不必要增加布線長度。而且,進行布線時,由于在確定各布線層的各區域的優先布線方向上,減少了迂回布線,提高了接線率,因此就能夠按現實的處理時間來設計布線。
并且,如圖7和圖12中所示,根據設計的布圖制造的半導體集成電路具有半導體基板21、晶體管、單元和具有引線77-88的兆單元23-26、具有連接引線77-88之間的布線91-106。在半導體基板21的表面上配置晶體管、單元和兆單元23-26。在半導體基板21之上以層狀配置多層布線層。在各布線層的整個表面設定初始指定區域22,并且將再指定區域29、35-43設定在初始指定區域22內的布線層彼此重疊的區域。在每個布線層初始指定區域22的布線方向和再指定區域29、35-43的布線方向不同。布線91-106經過多層布線層的初始指定區域22和再指定區域29、35-43連接在引線77-88之間。
在步驟S17中,判定一連串布線91-95是否為迂回布線。在判定一連串布線91-95是否為迂回布線中,判定一連串布線91-95之和的長度是大于連接的引線83和87之間的距離與2的平方根之積的。同樣地,對于一連串布線96-100,判定一連串布線96-100之和的長度是大于連接的引線84和88之間的距離與2的平方根之積的。對于一連串布線101-103,判定一連串布線101-103之和的長度是大于連接的引線85和86之間的距離與2的平方根之積的。如果所有的一連串布線91-95、96-100、101-103都不是迂回布線,就停止半導體集成電路布圖的設計方法。如果一連串布線91-95、96-100、101-103為迂回布線,就進行步驟S18。
在步驟S18中,判定是否再度實施指定再指定區域36、38。在判定為必須再度實施的情況下,就進行步驟S14。在判定為不必再度實施的情況下,就進行步驟S15。
在再度進行S15中,根據圖11的數據庫的第二變更的布線方向,變更再指定區域36、38的布線層的布線方向。同樣地,在又再一次進行S15中,根據圖11的數據庫的第三變更的布線方向,變更再指定區域36、38的布線層的布線方向。
然后,說明圖7的再指定區域37、39。
在步驟S15中,變更再指定區域37、39中的布線層的布線方向。關于再指定區域37、39,事先準備圖1 3所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層能夠檢索變更前的布線方向和變更后的布線方向的記錄器114。記錄器114具有布線層的場111、初始布線方向的場112和第一次變更后的布線方向的場113。因此,第一變更是可能的,能夠檢索變更前后的第一層至第四層的布線層的布線方向。表明在變更前后沒有改變的第一層和第二層的布線層的布線方向。表明通過第一次的變更,第三層的布線層的布線方向變為0度方向,且第四層的布線層的布線方向變為90度方向。再有,在第一次變更中產生迂回布線的情況下,采用第二次變更,在第二次變更中產生迂回布線的情況下,采用第三次變更。在第三次變更中產生迂回布線的情況下,也可改變初始值作為第四次變更。
說明這種變更的理由。當在配置在布圖平面21的中央的兆單元24、25上形成通過布線時,在通過第一層和第二層的布線層來對兆單元24、25內部進行布線的情況下,能夠在兆單元24、25上通過第三層以上的布線層來形成布線。再指定區域37、39的第三層的布線層的布線方向為如圖13的第一變更所示的0度方向,且第四層的布線層的布線方向為90度方向。作為通過兆單元24、25的布線的布線方向的組合,考慮到0度方向和90度方向的組合與傾斜45度方向和傾斜135度方向的組合、90度方向和45度方向的組合、0度方向和135度方向的組合、135度方向和90度方向的組合、0度方向和45度方向的組合等。這是由于沒有特別地要求第三層和第四層的布線方向必須正交。
然后,說明圖7的再指定區域40。
在步驟S15中,變更再指定區域40的布線層的布線方向。關于再指定區域40,事先準備圖14所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層能夠檢索變更前的布線方向和變更后的布線方向的記錄器119。記錄器119具有布線層的場115、初始的布線方向的場116、第一次變更后的布線方向的場117和第二次變更后的布線方向的場118。由此,可進行第一變更和第二變更,可檢索變更前后的第一層至第四層的布線層的布線方向。表明在變更前后沒有改變第一層和第二層的布線層的布線方向。表明通過第一次的變更將第四層的布線層的布線方向變為與布圖平面21的邊相平行方向的90度方向。再有,在第一變更產生迂回布線的情況下,根據第二次變更來變更布線方向。表明通過第二次變更將第三層的布線層的布線方向變為135度方向。如此,就可以將相鄰上下的兩層設定為不同的布線方向。
說明這種變更的理由。當在配置在布圖平面21的邊上的兆單元26上制作通過布線時,在通過第一層和第二層的布線層對兆單元26的內部進行布線的情況下,在兆單元26上就可以利用第三層以上的布線層來形成布線。作為通過兆單元26的布線的布線方向,可考慮與配置兆單元26的邊平行方向的圖7的90度方向。
然后,說明圖7的再指定區域41、42。
在步驟S15中,變更再指定區域41、42中的布線層的布線方向。關于再指定區域41、42,事先準備圖15所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層能夠檢索變更前的布線方向和變更后的布線方向的記錄器124。記錄器124具有布線層的場120、初始的布線方向的場121、第一次變更后的布線方向的場122、第二次變更后的布線方向的場123和第三次變更后的布線方向的場180。由此,可進行第一變更至第三變更,可檢索變更前后的第一層至第四層的布線層的布線方向。表明通過第一次的變更將第三層的布線層的布線方向變為0度方向,將第四層的布線層的布線方向變為90度方向。再有,在第一變更中產生迂回布線的情況下,根據第二次變更,變更布線方向。表明通過第二次變更,將第四層的布線層的布線方向變為135度方向。在第二變更產生迂回布線的情況下,根據第三次變更,變更布線方向。表明通過第三次變更,將第三層的布線層的布線方向變為45度方向,將第四層的布線層的布線方向變為90度方向。說明這種變更的理由。作為在配置在未配置兆單元的布圖平面21的角部的再指定區域41、42中所要求的布線的布線方向的組合,可考慮0度方向和90度方向的組合與傾斜45度方向和傾斜135度方向的組合。由于在多數情況的再指定區域41、42中配置標準單元,所以在第一層和第二層中不使用45度和135度的布線。而且也不必使第三層和第四層的布線方向正交。
然后說明圖7的再指定區域43。
在步驟S15中,變更再指定區域43中的布線層的布線方向。關于再指定區域43,事先準備圖16所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層能夠檢索變更前的布線方向和變更后的布線方向的記錄器130。記錄器130具有布線層的場125、初始的布線方向的場126、第一次變更后的布線方向的場127、第二次變更后的布線方向的場128和第三次變更后的布線方向的場129。由此,可進行第一變更至第三變更,可檢索變更前后的第一層至第四層的布線層的布線方向。在變更前后沒有改變第一層和第二層的布線層的布線方向。表明通過第一次的變更將第三層的布線層的布線方向變為0度方向且將第四層的布線層的布線方向變為90度方向。再有,在第一變更中產生迂回布線的情況下,根據第二次變更,變更布線方向。通過第二次變更將第三層的布線層的布線方向變為45度方向。并且,通過第三次變更將第三層的布線層的布線方向改變為135度方向。說明這種變更的理由。由于能夠認為在未配置兆單元的布圖平面21的邊上配置的多種要求布線的布線方向是與邊平行的圖7的90度方向。在再指定區域43中不太需要傾斜方向的布線,主要地有必要成為90度方向的布線。橫向布線可在以連接訪問位于單元邊上的外部的引線為目的和縱向的布線相互連接用上使用。對于再指定區域43的上下位置,存在具有45度方向和135度方向的一方的情況也是可以的。
如上述說明,根據本發明,就可以提供一種不必增長布線長度、按現實的處理時間進行布線設計的半導體集成電路。
第二實施例如圖1中所示,本發明的實施例2的半導體集成電路的設計裝置1包括系統設計部2、功能設計部3、邏輯電路設計部4和布圖設計部5。布圖設計部5包括單元配置部6、初始區域設定部7、方向指定部8、布線部11、迂回判定部12、區域后行設定部14、方向后行變更部15。
如圖2中所示,本發明的實施例2的半導體集成電路設計方法,與實施例1相同,首先,在步驟S1中,在系統設計部2中進行含有半導體集成電路的系統的設計。在步驟S2中,在功能設計部3中根據系統來設計半導體集成電路所要求的功能。在步驟S3中,在邏輯電路設計部4中根據功能來設計半導體集成電路的邏輯電路。在步驟S4中,在布圖設計部5中根據邏輯電路來設計半導體集成電路的布圖。結束半導體集成電路的設計方法。再有,步驟S4的詳細內容用圖17的半導體集成電路布圖的設計方法表示出來。
說明本發明的實施例2的半導體集成電路布圖的設計方法的概要。
首先,能夠與實施例1的步驟S11至S13同樣來實施圖17的步驟S11至S13。即,在步驟S11中,在圖1的單元配置部6中,在圖4的布圖平面21上配置晶體管、單元和兆單元23-24。
然后,在步驟S12中,在初始區域設定部7中,在整個布圖平面21上設定圖18所示的初始指定區域131。
在步驟S13中,在方向指定部8中,根據圖5的數據庫在初始指定區域131內的布線層上指定布線方向。
在步驟S16中,如圖19中所示,在布線部11中根據布線方向經過布線層形成連接引線77-82之間的初始布線161-163。配置90度方向的布線方向的布線的第二布線層的配置空間由布線充滿。另一方面,第一布線層、第三布線層、第四布線層的布線配置空間中存在空間。并且,如圖20中所示,形成連接引線83和87之間的初始布線165-167。形成連接引線84和88之間的初始布線168-171。形成連接引線85和86之間的初始布線172-174。由于不用配置第二布線層的90度方向的布線方向的布線,所以就可以配置第三布線層的傾斜45度方向的布線方向的布線166、168、170、172、174和第四布線層的傾斜135度方向的布線方向的布線165、167、169、171、173。
在步驟S17中,在迂回判定部12中判定初始布線是否為迂回布線。如果初始布線不是迂回布線,那么就停止半導體集成電路布圖的設計方法。如果布線是迂回布線,那么就進行步驟S19。將在引線83和87之間連接的初始布線165-167、在引線84和88之間連接的初始布線168-171以及在引線85和86之間連接的初始布線172-174判定為迂回布線。
在步驟S19中,如圖18和圖21所示,在區域后行設定部14中,將連接初始指定區域131內的迂回布線的引線83-88之間的區域指定為再指定區域132-134。
在步驟S20中,在方向后行變更部15中,變更再指定區域132、133、134中的布線層的布線方向。事先準備圖18所示的數據庫。數據庫根據布線層能夠檢索變更前的布線方向和變更后的布線方向。數據庫具有根據指定的布線層能夠檢索變更前的布線方向和變更后的布線方向的記錄器140。記錄器140具有布線層的場135、初始狀態的布線方向的場137、第一次變更的布線方向的場136、第二次變更的布線方向的場138和第三次變更的布線方向的場139。由此,可從初始狀態向第一變更至第三變更進行變更,可檢索變更前后的第一層至第四層的布線層的布線方向。再有,布線層的層數沒有限定為4層,可根據半導體集成電路的邏輯電路任意進行設定。第一次變更表明將第三層的布線層的布線方向變為0度方向,且將第四層的布線層的布線方向變為90度方向。通過第二次變更表明將第一層的布線層的布線方向變為傾斜45度方向,且將第二層的布線層的布線方向變為傾斜135度方向。通過第三次變更表明將第四層的布線層的布線方向變為傾斜45度方向。
認為將0度方向、90度方向、傾斜45度方向、傾斜135度方向的布線方向的布線的連接要求進行平均,作為相同程度的區域在布圖平面21中是最寬的。因此,為了使各布線層的布線方向成為不同方向,設使所有布線方向分散的狀態為布線方向的初始狀態。具體地,當布線層的層數和可設定的布線方向的數目等于4時,在一層布線層中分配一布線方向。將在布圖平面21中最寬的區域設定為初始指定區域131。
判定布線層中不是構成迂回布線的布線的主布線方向的布線方向的布線配置空間不足。并且,在再指定區域132-134中,在將構成迂回布線的布線的主布線方向指定為初期狀態的布線方向的布線層中,將布線方向變更到布線的配置空間不足的布線方向。
如圖21所示,由傾斜45度方向和傾斜135度方向的布線方向的布線為主構成迂回布線的情況下,在連接迂回布線起始點和終點的引線之間的布圖平面21中,由于0度方向或90度方向的布線方向的布線的連接要求增多,判定在布線層中配置0度方向或90度方向的布線方向的布線的空間不足。并且,在再指定區域132中,將布線方向從初始狀態向第一變更變更。
由0度方向和90度方向的布線方向的布線為主構成迂回布線的情況下,在連接迂回布線的起點和終點的引線之間的布圖平面21中,由于傾斜45度方向和傾斜135度方向的布線方向的布線的連接要求增多,判定在布線層中配置傾斜45度方向和傾斜1 35度方向的布線方向的布線的空間不足。并且,在再指定區域1 33中,將布線方向從初始狀態向第二變更變更。
由0度方向和90度方向的布線方向的布線為主構成迂回布線的情況下,在連接迂回布線的起點和終點的引線之間的布圖平面21中,由于傾斜45度方向和傾斜135度方向的布線方向的布線的連接要求增多,判定在布線層中配置傾斜45度方向和傾斜135度方向的任一布線方向的布線的空間不足。并且,在再指定區域134中,將布線方向從初始狀態向第三變更變更。
再有,也不一定需要圖18的數據庫。代替準備數據庫,首先,根據將連接再指定區域132-134中的布線的起點和終點的引線之間每條直線中的最接近其直線方向的布線方向作為該直線的布線方向的數量,來估算布線方向的連接所要求的多少的數量。然后,對應于再指定區域132-134中布線要求的多的布線方向,對布線要求少的布線方向的布線層而言,將布線方向變更為布線要求多的布線方向。
并且,再次回到圖17的步驟S16。在步驟S16中,如圖22所示,根據變更的布線方向,經過第三布線層和第四布線層能夠形成連接引線83和87之間的再布線91-95。此外,能夠形成連接引線84和88之間的再布線96-100。能夠形成連接引線85和86之間的再布線101-103。在步驟S17中,在再指定區域132-134中,如果能判定沒有迂回布線,就停止布圖的設計方法。
如此,由于可縮短因繞道而增長的布線的長度,就可以無迂回布線。此外,再布線的形成,由于再布線的配置空間是有空的空間,確實地收斂再布線的配置位置的解,就能夠縮短布圖所需的時間。
在再指定區域132-134的周邊部中,可以根據變更前的布線方向和變更的布線方向中的任一方向形成再布線,這相當于,在指定再指定區域132-134時,在再指定區域132-134中的一部分中根據初始指定區域131和再指定區域132-134中的任何一個區域的配置方向設計的灰色區域。在圖22的初始指定區域131和再指定區域132重合的區域中,第三布線層的布線就可以利用傾斜45度方向和0度方向這兩個布線方向來進行布線。第四布線層的布線就可以利用傾斜135度方向和90度方向這兩個布線方向來進行布線。
第三實施例在本發明的實施例3中,可以采用圖1所示的實施例1的半導體集成電路的設計裝置1。
此外,本發明的實施例3按圖2中所示的實施例1的半導體集成電路的設計方法來進行實施。
本發明的實施例3按圖3中所示的實施例1的半導體集成電路的布圖的設計方法來進行實施。
根據具體例子說明本發明的實施例3的半導體集成電路布圖的設計方法。
首先,如圖23所示,在圖3的步驟S11中,在矩形布圖平面21中配置I/O單元202、邏輯單元204-207。邏輯單元204-207既可是兆單元204、205,也可以是標準單元陣列206、207。與I/O單元202相鄰且能配置邏輯單元204-207的區域為核心區203。標準單元陣列206、207包括標準單元208、電源線209和接地線210。
如圖24所示,布圖平面21的剖面方向的半導體集成電路包括半導體基板Sub、多層層間絕緣膜D1-D7和多層布線層M1-M6。多層布線層M1-M6具有各自的多條布線。在電源線209和接地線210以及標準單元陣列206內部的布線中,標準單元陣列206采用布線層M1和M2。因此,標準單元陣列206上方的布線層M3-M6就可以用于標準單元陣列206外部的布線、邏輯單元204-207之間的布線、邏輯單元204-207與I/O單元202之間的布線。在兆單元204內部的布線中,兆單元204采用布線層M1-M4。因此,兆單元204上方的布線層M5和M6,就可以用于兆單元204外部的布線、邏輯單元204-207之間的布線、邏輯單元204-207與I/O單元202之間的布線。在I/O單元202的內部布線中,I/O單元202采用布線層M1-M6。因此,I/O單元202上方的布線層不可以用于邏輯單元204-207之間的布線、邏輯單元204-207與I/O單元202之間的布線。
然后,如圖23所示,在步驟S12中,在作為在布線層M1-M6中能布線的整個核心區22中設定初始指定區域22。
在步驟S13中,指定初始指定區域22內的布線層M1-M6中的布線方向。具體地,例如如圖25所示,根據布線層作成可檢索布線方向的數據庫。由此,自第一層的布線層M1可檢索0度方向(橫向)的布線方向。同樣地,自第二層的布線層M2可檢索90度方向(縱向)的布線方向。自第三層的布線層M3可檢索0度方向(橫向)的布線方向。自第四層的布線層M4可檢索90度方向(縱向)的布線方向。自第五層的布線層M5可檢索傾斜45度方向的布線方向。自第六層的布線層M6可檢索傾斜135度方向的布線方向。通過這樣的檢索,就可以在第1-6層的布線層M1-M6中配置已檢索的布線方向的布線。
在步驟S14中,如圖26-圖27所示,在初始指定區域22內指定再指定區域231-236、219、220、225。
如圖26所示,設邏輯單元211為標準單元陣列。邏輯單元211與核心區203的邊相接。邏輯單元211與I/O單元202相接。在邏輯單元211的內側區域中設定再指定區域231。再指定區域231與I/O單元202相接。I/O單元202具有成為布線起點的引線222。將再指定區域231內的布線層M1和M2用于標準單元陣列的內部布線。在剩余的布線層M3-M6中,按圖25所示的方向配置布線。但是,在再指定區域23 1中,由于必須對引線222進行布線,可考慮大量采用與核心區203的邊垂直方向的0度方向(橫向)的布線。因此,在步驟S15中,將在再指定區域231中的布線層M3-M6的至少一個布線層的布線方向變更為0度方向(橫向)。
設邏輯單元212為標準單元陣列。邏輯單元212與核心區203的邊相接。邏輯單元212不與I/O單元202相接。在邏輯單元212的內側區域中設置再指定區域232。再指定區域232不與I/O單元202相接。再指定區域232內的布線層M1和M2可用于標準單元陣列的內部布線。在剩余的布線層M3-M6中,按圖25所示的方向來配置布線。但是,在再指定區域232中,可考慮大量采用與核心區203的邊垂直方向的0度方向(橫向)的布線。另一方面,可考慮大量采用與核心區203的邊平行方向的90度方向(縱向)的布線。因此,在步驟S15中,將再指定區域232中的布線層M3-M6中的至少一層布線層的布線方向變更為90度方向(縱向)。
設邏輯單元213為標準單元陣列。邏輯單元213不與核心區203的邊相接。邏輯單元213不與I/O單元202相接。在邏輯單元213的內側區域中設置再指定區域233。再指定區域233與邏輯單元213重合。再指定區域233不與I/O單元202相接。在標準單元陣列的內部布線中,可使用再指定區域233內的布線層M1和M2。在剩余的布線層M3-M6中,按圖25所示的方向來配置布線。在再指定區域233中,根據再指定區域233的周邊的布線狀況,考慮最好能夠變更布線的方向。因此,在步驟S15中,適當變更再指定區域233中的布線層M3-M6中的至少一層布線層的布線方向。
如圖27中所示,設邏輯單元214為兆單元。邏輯單元214與核心區203的邊相接。邏輯單元214與I/O單元202相接。在邏輯單元214的內側區域中設置再指定區域234。再指定區域234與I/O單元202相接。I/O單元202具有成為布線起點的引線222。在兆單元的內部布線中,可使用再指定區域234內的布線層M1-M4。在剩余的M5和M6中,按步驟S13中設定的方向來配置布線。但是,在再指定區域234中,由于必須對引線222布線,所以可考慮大量采用與核心區203的邊垂直方向的0度方向(橫向)的布線。因此,在步驟S15中,將再指定區域234中的布線層M5和M6中的至少一層布線層的布線方向變更為0度方向(橫向)。
設邏輯單元215為兆單元。邏輯單元215與核心區203的邊相接。邏輯單元215不與I/O單元202相接。在邏輯單元215的內側區域中設置再指定區域235。再指定區域235不與I/O單元202相接。在兆單元的內部布線中,可使用再指定區域235內的布線層M1-M4。在剩余的M5和M6中,按步驟S13中設定的方向來配置布線。但是,在再指定區域235中,可考慮大量采用與核心區203的邊垂直方向的0度方向(橫向)的布線。另一方面,可考慮大量采用與核心區203的邊平行方向的90度方向(縱向)的布線。因此,在步驟S15中,將再指定區域235中的布線層M5和M6中的至少一層布線層的布線方向變更為90度方向(縱向)。
設邏輯單元216為兆單元。邏輯單元216不與核心區203的邊相接。邏輯單元216也不與I/O單元202相接。在邏輯單元216的內側區域中設置再指定區域236。再指定區域236與邏輯單元216重合。再指定區域236不與I/O單元202相接。在兆單元的內部布線中,可使用再指定區域236內的布線層M1-M4。在剩余的M5和M6中,按步驟S13中設定的方向來配置布線。在再指定區域236中,根據再指定區域236周邊的布線狀況,考慮最好能夠變更布線的方向。因此,在步驟S15中,適當變更再指定區域236中的布線層M5和M6中的至少一層布線層的布線方向。
如圖28所示,設邏輯單元217、218為兆單元。邏輯單元217和218相鄰配置。邏輯單元217和218的邊相對。在邏輯單元217和218之間設置再指定區域219。在兆單元的內部布線中,可使用邏輯單元217、218內的布線層M1-M6。在再指定區域219內的布線層M1-M6中,按步驟S13中設定的方向來配置布線。但是,在再指定區域219中,由于連接邏輯單元217和218的布線是必需的,因此可考慮大量采用與邏輯單元217、218的相對邊垂直方向的0度方向(橫向)的布線。此外,連接邏輯單元217和218的上方和下方之間的縱向的布線是必需的。在邏輯單元217和218之上,不存在用于連接邏輯單元217和218的上方和下方之間的縱向的布線層。因此,在再指定區域219中,為了連接邏輯單元217和218的縱向,可考慮大量采用與邏輯單元217、218的相對邊平行方向的90度方向(縱向)的布線。因此,在步驟S15中,將再指定區域219中的布線層M1-M6中的至少一層布線層的布線方向變更為90度方向(縱向)。
接近核心區220的邊來配置邏輯單元218。邏輯單元218的邊與核心區220的接近邊相對。在相對的邏輯單元218的邊和核心區220的邊之間設置再指定區域220。再指定區域220是邏輯單元218的附近外側區域。再指定區域220為核心區203的外周內側區域。也可以在與邏輯單元218的邊相對的核心區220的邊中,不配置I/O單元202。可考慮必須連接邏輯單元217和218的上方和下方之間的縱向的布線。在邏輯單元218的上方,不存在用于連接邏輯單元217和218的上方和下方之間的布線層。因此,為了連接邏輯單元218的縱向,在再指定區域218中,可考慮大量采用相對于邏輯單元218的邊和核心區203的邊平行方向的90度方向(縱向)的布線。因此,在步驟S15中,將再指定區域220中的布線層M1-M6中的至少一層布線層的布線方向變更為90度方向(縱向)。
如圖29中所示,設邏輯單元224為兆單元。邏輯單元224與核心區203的邊相接。邏輯單元224與I/O單元202相接。再指定區域225位于邏輯單元224的附近外側區域。再指定區域225位于核心區203的外周內側區域。再指定區域225和與核心區203的邊相接的I/O單元202相接。在兆單元的內部布線中,可使用邏輯單元224內的布線層M1-M5。在再指定區域225內的布線層M1-M6中,按步驟S13中設定的方向來配置布線。但是,在再指定區域225中,與再指定區域225相接的邏輯單元224的邊平行的方向的布線是必需的。因此,可考慮大量采用與再指定區域225相接的核心區203的邊垂直方向的0度方向(橫向)的布線。此外,從再指定區域225開始,就必須跨過邏輯單元224進行布線。就必須將再指定區域220中的布線層M6變更為傾斜45度方向。因此,在步驟S15中,將再指定區域225中的布線層M1-M6中的至少一層布線層的布線方向變更為0度方向(橫向)。并且將再指定區域225中的布線層M5和M6中的至少一層布線層的布線方向變更為傾斜45度方向。
在步驟S16中,根據每個布線層M1-M6的初始指定區域22和再指定區域231-236、219、220、225的布線方向,形成連接邏輯單元之間、I/O單元與邏輯單元之間的布線。
在步驟S17中,判定形成的布線是否為迂回布線。可以與實施例1相同進行判定。
在步驟S18中,判定是否再度實施指定再指定區域。可以與實施例1相同進行判定。
如此,由于相對于一層布線層,存在多個布線方向,因此可利用增多的連接要求的多個布線方向的布線層。獲得了縮短布線長的效果,不必增長必需的布線長度。此外,進行布線時,由于在確定各個布線層的各區域的優先布線方向上還提高了接線率,因此可按照現實的處理時間來設計布線。
在不脫離本發明的精神或實質特性下,可以按照其它特定的形式來實施本發明。因此,各實施例的所有方面認為是說明性而非限制性的,通過附加的權利要求書而不是通過前述的說明書來表示本發明的范圍,因此所有修改都將希望落入權利要求的內容和范圍之內。
權利要求
1.一種半導體集成電路,其特征在于,包括在核心區內配置的邏輯單元的內側區域和鄰近的外側區域以及所述核心區的外周內側區域的至少一個區域內、并且在多層布線層的至少一層的指定布線層內,在0度、45度、90度和135度方向中的單一方向的第一方向上布線的多條第一布線;以及在所述指定區域之外的布線區域中、并且在所述指定布線層內,在與所述第一方向不同的0度、45度、90度和135度方向中的單一方向的第二方向上布線的多條第二布線。
2.根據權利要求1所述的半導體集成電路,其特征在于,所述第一布線和所述第二布線是連接在所述核心區內配置的多個邏輯單元之間的布線。
3.根據權利要求1所述的半導體集成電路,其特征在于,所述邏輯單元是兆單元或標準單元陣列或I/O單元。
4.根據權利要求1所述的半導體集成電路,其特征在于,所述邏輯單元是兆單元,所述區域位于兩個所述邏輯單元之間,所述第一方向是平行于所述區域的兩側的兩個所述邏輯單元的邊的方向。
5.根據權利要求1所述的半導體集成電路,其特征在于,所述邏輯單元是兆單元,所述區域是所述邏輯單元的鄰近外側區域,并且是所述核心區的外周內側區域,所述第一方向是平行于所述區域兩側的所述邏輯單元的邊和所述核心區的邊的方向。
6.根據權利要求1所述的半導體集成電路,其特征在于,所述區域位于與所述核心區的邊鄰接的所述邏輯單元的所述內側區域,所述第一方向是與所述邊平行的方向。
7.根據權利要求1所述的半導體集成電路,其特征在于,所述區域位于與所述核心區的邊鄰接的所述邏輯單元的所述內側區域,所述區域與所述核心區的邊鄰接的I/O單元鄰接,所述第一方向是與所述邊垂直的方向。
8.根據權利要求1所述的半導體集成電路,其特征在于,所述邏輯單元是兆單元,所述區域位于與所述核心區的邊鄰接的所述邏輯單元的所述鄰近外側區域,并且位于所述核心區的外周內側區域,所述區域與所述核心區的邊鄰接的I/O單元鄰接,所述第一方向是與所述邊垂直的方向。
9.一種用于在半導體集成電路中路由選擇導線的方法,其特征在于,包括在具有多層布線層的布圖平面上配置邏輯單元,在整個所述布圖平面上設定初始區域,對各所述初始區域內的所述布線層中指定布線方向,在所述初始區域內指定再指定區域,改變所述再指定區域內的所述布線層的所述布線方向,根據所述布線方向,形成經過所述布線層的布線。
10.根據權利要求9所述的方法,其特征在于,還包括進一步判定所述布線是否為迂回布線,如果所述布線為迂回布線,就再次實施改變所述布線方向并形成所述布線。
11.根據權利要求10所述的方法,其特征在于,判定所述布線是否為迂回布線,是判定所述布線的長為{{連接所述布線的引線之間的距離}、{在所述布線中存在布線分支點的情況下所述引線和所述布線分支點之間的距離}與{所述布線分支點之間的距離}中的一個的距離與2的平方根之積}以上。
12.根據權利要求10所述的方法,其特征在于,如果所述布線為所述迂回布線,那么就判定是否需要再次實施指定所述再指定區域,如果必須再次實施指定所述再指定區域,那么就再次實施指定所述再指定區域。
13.根據權利要求12所述的方法,其特征在于,判定是否需要再次實施指定所述再指定區域,就是判定所述迂回布線是否位于所述再指定區域之外。
14.一種用于半導體集成電路的路由選擇導線的方法,其特征在于,包括在具有多層布線層的布圖平面上配置邏輯單元,在整個所述布圖平面上設定初始區域,在所述初始區域內的所述布線層中指定布線方向,根據所述布線方向,形成經過所述布線層的初始布線,判定所述初始布線是否為迂回布線,如果所述初始布線是迂回布線,那么就在再指定區域內指定與所述初始區域內的所述迂回布線連接的引線之間的區域,改變所述再指定區域內的所述布線層的所述布線方向,并根據改變的所述布線方向,形成經過所述布線層的再布線。
15.根據權利要求14所述的方法,其特征在于,判定所述初始布線是否為迂回布線,是判定所述初始布線的長是否大于連接所述引線之間的距離與2的平方根之積以上。
16.根據權利要求14所述的方法,其特征在于,對于形成所述再布線,也可在所述再指定區域的周邊,根據改變前的所述布線方向和改變后的所述布線方向中任意方向來進行。
17.一種計算機程序,用于在半導體集成電路中產生路由選擇導線,其特征在于,包括在具有多層布線層的布圖平面上配置邏輯單元的指令,在整個所述布圖平面內設定初始區域的指令,在所述初始區域內的所述布線中指定布線方向的指令,在所述初始區域內指定再指定區域的指令,改變所述再指定區域內的所述布線層的所述布線方向的指令,以及根據所述布線方向,形成經過所述布線層的布線的指令。
18.一種計算機程序,用于在半導體集成電路中產生路由選擇導線,其特征在于,包括在具有多層布線層的布圖平面上配置邏輯單元的指令,在整個所述布圖平面內設定初始區域的指令,在所述初始區域內的所述布線中指定布線方向的指令,根據所述布線方向,形成經過所述布線層的初始布線的指令,判定所述初始布線是否為迂回布線的指令,如果所述初始布線為迂回布線,就在再指定區域內指定與所述初始區域內的所述迂回布線連接的引線之間的區域的命令改變所述再指定區域內的所述布線層的所述布線方向的指令,以及根據改變的所述布線方向,形成經過所述布線層的再布線的指令。
全文摘要
提供一種不必延長布線長度、利用實際的處理時間來進行布線設計的半導體集成電路。在具有多層布線層的布圖平面上設置具有引線的晶體管、單元和兆單元。在整個布圖平面上設定初始指定區域,在初始指定區域內的布線層上指定布線方向。在初始指定區域內指定再指定區域,改變再指定區域內的布線層的布線方向。根據布線方向經過布線層來形成連接引線之間的布線。
文檔編號H01L23/52GK1619550SQ20041010239
公開日2005年5月25日 申請日期2004年11月10日 優先權日2003年11月10日
發明者奧村淳之 申請人:株式會社東芝