確定布局設計是否是n-可染色的方法
【專利摘要】本發(fā)明提供了一種確定用于制造集成電路的部件層的布局設計是否為N-可染色的方法,包括從布局設計的布局單元中標識出候選單元組。候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且復合布局單元組中的該復合布局單元的布局組成單元已被確定為N-可染色。確定候選單元組中的第一候選單元是否為N-可染色。當?shù)谝缓蜻x單元是N-可染色并且不是頂層布局單元時,生成第一候選單元的鄰接敏感沖突圖。本發(fā)明提供了一種集成電路設計系統(tǒng)。本發(fā)明還提供了一種存儲指令集的非瞬態(tài)存儲介質。
【專利說明】確定布局設計是否是N-可染色的方法
【技術領域】
[0001]本發(fā)明總體涉及半導體,更具體地,涉及半導體布局的設計方法和系統(tǒng)。
【背景技術】
[0002]在半導體制造處理中,有時通過使用多次曝光或多重圖案化技術來形成單個部件層,從而提高該層的空間分辨率。例如,如果使用N次曝光或圖案化處理(B卩,N次曝光或N重圖案化)來制造部件層,并且N是不小于2的正整數(shù),那么與針對部件層的布局設計相對應的布局圖案被分為N個不同的組以用于相應的曝光或圖案化處理。有時,以類似于解決圖論(graph theory)中的染色問題的方式來實施圖案分配處理。因此,圖案分配處理有時也被稱為“染色處理”,并且,如果布局設計的布局圖案能夠被分配為N個不同的圖案化組,則布局設計有時也被稱為“N-可染色”。布局設計的圖案分配處理的性能通常表現(xiàn)為計算資源需求和耗時。
【發(fā)明內容】
[0003]根據(jù)本發(fā)明的一個方面,提供了一種確定用于制造集成電路的部件層的布局設計是否為N-可染色的方法,N是不小于2的正整數(shù),布局設計包括以分層方式布置的布局單元,布局單元包括基礎布局單元組和復合布局單元組,復合布局單元組包括頂層布局單元,頂層布局單元代表布局設計,并且該方法包括:從布局單元中標識出候選單元組,候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且復合布局單元組中的一個復合布局單元的布局組成單元已被確定為N-可染色;確定候選單元組中的第一候選單元是否為N-可染色;以及當?shù)谝缓蜻x單元為N-可染色并且不是頂層布局單元時,通過硬件處理單元,生成第一候選單元的鄰接敏感沖突圖。
[0004]優(yōu)選地,以迭代方式重復進行標識操作、確定操作以及生成操作。
[0005]優(yōu)選地,該方法還包括:當頂層單元是N-可染色時,報告布局設計是N-可染色;以及當布局單元中有任何一個不是N-可染色時,報告布局設計不是N-可染色。
[0006]優(yōu)選地,該方法還包括:確定候選單元組中的第二候選單元是否為N-可染色,其中,以并行處理方式處理確定第一候選單元是否為N-可染色和確定第二候選單元是否為N-可染色。
[0007]優(yōu)選地,生成第一候選單元的鄰接敏感沖突圖,包括:在第一候選單元內限定鄰接敏感區(qū);生成與落在鄰接敏感區(qū)中的布局圖案組相對應的頂點組;當能夠給頂點組中的兩個頂點分配相同顏色時,通過相同顏色鏈路來連接這兩個頂點;以及當能夠給頂點組中的兩個頂點分配不同顏色時,通過不同顏色鏈路來連接這兩個頂點。
[0008]優(yōu)選地,生成第一候選單元的鄰接敏感沖突圖還包括:當鄰接敏感沖突圖在包括另一個頂點之前具有兩個或更多不同的配置時,將另一個頂點包括在鄰接敏感沖突圖中,另一個頂點與第一候選單元中未落在鄰接敏感區(qū)內的布局圖案相對應。
[0009]優(yōu)選地,第一候選單元內的鄰接敏感區(qū)被限定在第一候選單元的單元邊界和第一候選單元的封鎖邊界之間,通過將第一候選單元的單元邊界向內移動一距離來限定封鎖邊界,距離等于或大于預設閾值距離和預設的單元重疊允許公差之和。
[0010]優(yōu)選地,第一候選單元包括布局組成單元的組合,并且該方法還包括:根據(jù)第一候選單元的布局組成單元的鄰接敏感沖突圖,生成第一候選單元的沖突圖。
[0011]優(yōu)選地,生成第一候選單元的沖突圖包括:當兩個頂點分別來自布局組成單元中的兩個相鄰布局單元的相應鄰接敏感沖突圖時,通過不同顏色鏈路來連接兩個頂點;并且兩個頂點代表的布局圖案之間的距離小于預設閾值距離。
[0012]優(yōu)選地,該方法還包括:從第一候選單元的沖突圖中去除一個或多個可省略的頂點。
[0013]優(yōu)選地,從第一候選單元的沖突圖中去除一個或多個頂點包括:當一個或多個可省略的頂點中的一個頂點連接至第一候選單元的沖突圖中個數(shù)少于(N-1)的頂點時,從第一候選單元的沖突圖中去除一個或多個可省略的頂點中的這個頂點。
[0014]優(yōu)選地,該方法還包括:在確定頂層單元是N-可染色之后,對布局設計實施N-可染色。
[0015]優(yōu)選地,對布局設計實施N-可染色包括:實施染色操作以對布局單元中的一個布局單元的沖突圖的頂點進行染色;實施合并操作以將布局單元中的一個布局單元的布局組成單元的沖突圖與進行染色操作之后的布局單元中的一個布局單元的沖突圖合并;以及從頂層布局單元開始以迭代方式實施染色操作和合并操作,直至布局單元的沖突圖被合并和染色。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種集成電路設計系統(tǒng),包括:非瞬態(tài)存儲介質,其中編碼有指令集;硬件處理單元,與非瞬態(tài)存儲介質通信連接,并且被配置為執(zhí)行指令集,從而:從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組,候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且復合布局單元組中的一個復合布局單元的布局組成單元已被確定為N-可染色;確定候選單元組的第一候選單元是否為N-可染色;以及當?shù)谝缓蜻x單元是N-可染色并且第一候選單元不是頂層布局單元時,生成第一候選單元的鄰接敏感沖突圖,頂層布局單元是布局設計。
[0017]優(yōu)選地,硬件處理單元被配置為以迭代方式重復實施標識操作、確定操作以及生成操作。
[0018]優(yōu)選地,硬件處理單元被配置為進一步確定候選單元組中的第二候選單元是否為N-可染色,并且以并行處理方式處理確定第一候選單元是否為N-可染色和確定第二候選單元是否為N-可染色。
[0019]優(yōu)選地,當執(zhí)行指令集以生成第一候選單元的鄰接敏感沖突圖時,硬件處理單元還被配置為:在第一候選單元內限定鄰接敏感區(qū);生成與落在鄰接敏感區(qū)內的布局圖案組相對應的頂點組;當能夠給頂點組中的兩個頂點分配相同顏色時,通過相同顏色鏈路連接這兩個頂點;以及當能夠給頂點組中的兩個頂點分配不同顏色時,通過不同顏色鏈路連接這兩個頂點。
[0020]優(yōu)選地,當執(zhí)行指令集時,硬件處理單元還被配置為:當?shù)谝缓蜻x單元包括布局組成單元的組合時,根據(jù)第一候選單元的布局組成單元的鄰接敏感沖突圖,生成第一候選單元的沖突圖。
[0021]優(yōu)選地,當執(zhí)行指令集時,硬件處理單元還被配置為:實施染色操作以對布局單元中的一個布局單元的沖突圖的頂點進行染色;實施合并操作以將布局單元中的一個布局單元的布局組成單元的沖突圖與進行染色操作后的布局單元中的一個布局單元的沖突圖合并;以及從頂層布局單元開始以迭代方式實施染色操作和合并操作,直至布局單元的沖突圖被合并和染色。
[0022]根據(jù)本發(fā)明的又一方面,提供了一種編碼有指令集的非瞬態(tài)存儲介質,指令集被配置為使硬件處理單元執(zhí)行包括以下步驟的方法:從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組,候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且復合布局單元組中的一個復合布局單元的布局組成單元已被確定為N-可染色;確定候選單元組的第一候選單元是否為N-可染色;以及當?shù)谝缓蜻x單元是N-可染色并且不是頂層布局單元時,生成第一候選單元的鄰接敏感沖突圖,頂層布局單元是布局設計。
[0023]優(yōu)選地,指令集被配置為使硬件處理單元以迭代方式重復地實施標識操作、確定操作以及生成操作。
[0024]優(yōu)選地,指令集被配置為使硬件處理單元還實施:確定候選單元組中的第二候選單元是否為N-可染色,并且以并行處理的方式處理確定第一候選單元是否為N-可染色的和確定第二候選單元是否為N-可染色。
[0025]優(yōu)選地,生成第一候選單元的鄰接敏感沖突圖包括:在第一候選單元內限定鄰接敏感區(qū);生成與落在鄰接敏感區(qū)中的布局圖案組相對應的頂點組;當能夠給頂點組中的兩個頂點分配相同顏色時,通過相同顏色鏈路連接這兩個頂點;以及當能夠給頂點組中的兩個頂點分配不同顏色時,通過不同顏色鏈路連接這兩個頂點。
[0026]優(yōu)選地,指令集被配置為使硬件處理單元還實施:實施染色操作以對布局單元中的一個布局單元的沖突圖的頂點進行染色;實施合并操作以將布局單元中的一個布局單元的布局組成單元的沖突圖與進行染色操作之后的布局單元中的一個布局單元的沖突圖合并;以及從頂層布局單元開始以迭代方式實施染色操作和合并操作,直至布局單元的沖突圖被合并和染色。
【專利附圖】
【附圖說明】
[0027]通過實例的方式示出一個或多個實施例,但是這些實施例并不限制在附圖的圖例中,其中具有相似參考標號的元件表示相似的元件。
[0028]圖1A是根據(jù)一個或多個實施例的布局設計的樹形圖;
[0029]圖1B和圖1C是根據(jù)一個或多個實施例的頂層布局單元152及其處于不同層次級的布局組成單元的示圖;
[0030]圖2A是根據(jù)一個或多個實施例的示例性基礎布局單元的示圖;
[0031]圖2B是根據(jù)一個或多個實施例的圖2A的示例性基礎布局單元的沖突圖;
[0032]圖3A是根據(jù)一個或多個實施例的其中限定有鄰接敏感區(qū)的示例性基礎布局單元的示圖;
[0033]圖3B是根據(jù)一個或多個實施例的圖3A的示例性基礎布局單元的鄰接敏感沖突圖;
[0034]圖3C是根據(jù)一個或多個實施例的另一個示例性基礎布局的鄰接敏感沖突圖;
[0035]圖4A是根據(jù)一個或多個實施例的其中限定有鄰接敏感區(qū)的基礎布局單元的示圖;
[0036]圖4B是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元的沖突圖;
[0037]圖4C至圖4D是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元的不同鄰接敏感沖突圖;
[0038]圖4E是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元的修改后的鄰接敏感沖突圖;
[0039]圖5A和圖5B是根據(jù)一個或多個實施例的兩個基礎布局單元的鄰接敏感沖突圖;
[0040]圖5C是根據(jù)一個或多個實施例的復合布局單元的鄰接敏感沖突圖;
[0041]圖6A至圖6C是根據(jù)一個或多個實施例的示出不同連接度的示例性沖突圖;
[0042]圖7A是根據(jù)一個或多個實施例的沖突圖;
[0043]圖7B是根據(jù)一個或多個實施例的對圖7A的沖突圖進行菱形減少后形成的沖突圖;
[0044]圖7C是根據(jù)一個或多個實施例的沖突圖;
[0045]圖7D是根據(jù)一個或多個實施例的對圖7C的沖突圖進行菱形減少后形成的沖突圖;
[0046]圖8是根據(jù)一個或多個實施例的確定布局設計是否為N-可染色的方法的流程圖;以及
[0047]圖9是根據(jù)一個或多個實施例的集成電路設計系統(tǒng)的功能性框圖。
【具體實施方式】
[0048]應當理解,以下公開內容提供了一個或多個不同的實施例或實例,以實施本發(fā)明的不同特征。以下將描述部件和布置的特定實例以簡化本發(fā)明。當然,這些僅是實例并且不旨在限制本發(fā)明。根據(jù)工業(yè)中的標準實踐,視圖中的各種部件沒有按比例繪制并且僅用于說明的目的。
[0049]此外,例如,可使用“下面的”、“上面的”、“水平的”、“垂直的”、“在…上方”、“在…下方”、“在…之上”、“在…之下”、“頂部”、“底部”、“左”、“右”等空間關系術語及其派生詞(例如,“水平地”、“向下地”、“向上地”等),以便于描述本發(fā)明中一個部件與另一部件的關系。這些空間關系術語預期包括包含這些部件的器件的不同方位。
[0050]在諸多應用中,集成電路包括不同電路塊的組合。每一個電路塊也是其他電路塊的組合。因此,在一些實施例中,集成電路包括以分層方式布置的不同電路塊。在一些應用中,半導體制造公司提供的一組預設計電路塊通常被稱為適合被預定的制造工藝制造的標準單元。在一些實施例中,用于制造集成電路的部件層的布局設計被電路設計者或布局工程師組織為相應電路塊的布局單元并且也是以分層的方式布置。
[0051]在一些實施例中,為了確定制造集成電路的部件層的布局設計是否為N-可染色的,以迭代方式對單個的布局單元反復進行分析處理。在一些實施例中,分析處于較低層級的布局單元,然后處于較高層級的布局單元可獲取處于較低層級的布局單元的鄰接敏感信息(abutment-sensitive informat1n)。因此,不是對布局設計的所有布局圖案同時進行分析,而是在一些實施例中,將確定布局設計是否為N-可染色的過程劃分為較小的分析處理的多次迭代。在一些實施例中,基于本申請的至少一個實施例實施的布局設計分析的計算的復雜度和計算的時間均要低于對布局設計的所有布局圖案同時實施分析時的計算的復雜度和計算的時間。
[0052]在本發(fā)明的描述中,例如,將N設置為3。所公開的主題也適用于其他的N-可染色問題,其中,N為2或大于3。
[0053]集成電路的分層設計
[0054]圖1A是根據(jù)一個或多個實施例的布局設計的樹形圖100。布局設計可用于制造集成電路的部件層。由于集成電路的分層設計,布局設計也包括布局單元112、113、114、116、117、118、122、124、126、128、132、134、136、142以及152,上述布局單元對應于不同層級或類型的電路塊并且以分層方布置。
[0055]布局設計的布局單元包括一組基礎布局單元112、113、114、116、117和118以及一組復合布局單元122、124、126、128、132、134、136、142以及152。在一些實施例中,基礎布局單元112、113、114、116、117和118與集成電路公司基于預設的制造工藝而預設計的標準單元相對應。例如,基礎布局單元112、113、114、116、117和118是包括AND、NAND、0R、N0R、NOT、BUFFER單元等的標準單元。
[0056]在一些實施例中,基礎布局單元112、113、114、116、117和118與集成電路設計系統(tǒng)(諸如,執(zhí)行用于布局布線的軟件程序的計算機)中的最小布局塊相對應。在一些實施例中,復合布局單元組對應于電路設計者為便于電路設計處理而限定的不同電路塊。
[0057]例如,復合布局單元組包括可用于表示整個布局設計的頂層布局單元152。圖1B是根據(jù)一個或多個實施例的頂層布局單元152及其布局組成單元的示圖。較高層級單元的布局組成單元是較高層級單元將其直接稱作較高層級單元的構件塊的布局單元。在本實例中,頂層布局單元152是布局單元142和兩個布局單元136 (136-1和136-2)的組合,因此布局單元142、136-1和136-2是頂層布局單元152的布局組成單元。圖1C是根據(jù)一個或多個實施例的布局單元152以及布局單元142、136-1和136-2的布局組成單元的圖形。布局單元142是布局單元132和134的組合。布局單元136-1是布局單元122 (122-1)和128 (128-1)以及基礎布局單元117 (117_la和117_lb)的組合,因此,布局單元122-1、128-1、117-la和117_lb是布局單元136-1的布局組成單元。布局單元136-2是布局單元122 (122-2)、128 (128-2)以及基礎布局單元117 (117_2a和117_2b)的組合,因此布局單元122-2、128-2、117-2a和117_2b是布局單元136-2的布局組成單元。
[0058]此外,如圖1A所示,布局單元132是布局單元122、124和126的組合;布局單元134是布局單元124和126的組合;布局單元122是基礎布局單元112、113、116和117的組合;布局單元124是基礎布局單元112、113、116和117的另一個組合;布局單元126是基礎布局單元112、113、114、116和117的組合;以及布局單元128是基礎布局單元112、116和118的組合。
[0059]在一些實施例中,復合布局單元122、124、126、128、132、134、136、142和152與包括存儲器陣列、控制器、輸入/輸出單元或任何電路塊(適合在集成電路設計中被單獨驗證和重復使用)的電路塊相對應。
[0060]某礎布局單元的沖突圖
[0061]圖2A是根據(jù)一個或多個實施例的示例性基礎布局單元200的示圖。在一些實施例中,布局單元200可用作圖1所示的基礎布局單元112、113、114、116、117和118中的一個。布局單元200包括單元邊界210和布局圖案222、223、224、226和227。在本實例中,布局圖案222和224之間的距離Dl、布局圖案223和224之間的距離D2、布局圖案224和226之間的距離D3、布局圖案223和226之間的距離D4、布局圖案226和227之間的距離D5以及布局圖案224和227之間的距離D6均小于預設的閾值距離,該閾值距離有時被稱為“G0距離”。為了適當?shù)刂圃觳季衷O計200所表示的部件,距離小于GO距離的布局圖案被分配給不同的圖案化組。同時,在本實例中,布局圖案222和223之間的距離D7大于GO距離。因此,能夠將布局圖案222和223分配給相同或不同的圖案組。
[0062]圖2B是根據(jù)一個或多個實施例的圖2A的示例性基礎布局單元200的沖突圖240。將布局單元轉化為相應的沖突圖包括設定頂點或節(jié)點,其中,每個頂點或節(jié)點均表示布局單元,并且當兩個頂點之間距離小于GO距離時,用邊將兩個頂點連接起來。例如,頂點或節(jié)點A、B、C、D和E分別表示布局圖案222、223、224、226和227。因為距離Dl小于GO距離,所以,通過邊252將頂點A和C連接起來。類似地,通過邊253、254、255、256和257分別連接頂點B和C、頂點B和D、頂點C和D、頂點C和E以及頂點D和E。因為距離D7大于GO距離,所以不通過任何邊連接頂點A和B。因此,布局圖案200的圖案分配處理被轉化為解決沖突圖240的染色問題。
[0063]鄰接敏感沖突圖
[0064]對于布局單元,諸如,基礎布局單元112、113、114、116、117或118,或者復合布局單元122、124、126、128、132、134、136、142或152,如果存在相應的鄰接敏感沖突圖,則將其推導出并且使其可用于較高層級的另一布局單元。在一些實施例中,鄰接敏感沖突圖包括頂點,該頂點涉及到與較高層級的沖突圖中的鄰近布局單元形成邊。因此,減少了較高層級處理的信息量。
[0065]圖3A是根據(jù)一個或多個實施例的其中限定有鄰接敏感區(qū)310的基礎布局單元300的圖形。為了說明的目的,圖3A所示的示例性基礎布局單元300具有與圖2A所示的布局單元200相似的結構。用同一參考標號表示與布局單元200的部件相似的布局單元300的部件。而且,布局單元300的沖突圖與圖2B所示的沖突圖相類似。
[0066]鄰接敏感區(qū)310被限定為單元邊界210和封鎖邊界(blockage boundary) 320之間的區(qū)域。落于鄰接敏感區(qū)310內的布局圖案與鄰近布局單元的另一個布局圖案的距離能夠小于GO距離。在一些實施例中,如果布局圖案遠離單元邊界210的距離大于GO距離和/或布局單元的預設位移,則布局圖案與相鄰布局單元的任何布局圖案之間的距離均不可能小于GO距離。
[0067]在一些實施例中,通過將單元邊界210向內移動預設距離W來形成封鎖邊界320。在一些實施例中,預設距離W等于或大于預設閾值距離(S卩,GO距離)和預設單元重疊允許公差。如上所示,在封鎖邊界320內側的頂點(諸如,表示布局圖案223、224或226的頂點)與表示鄰近布局單元的布局圖案的頂點不會形成附加邊。而且,在鄰接敏感沖突圖中會存在表示至少部分落于鄰接敏感區(qū)310中的布局圖案(諸如,鄰接敏感的布局圖案222或227)的頂點。
[0068]圖3B是根據(jù)一個或多個實施例的圖3A的示例性基礎布局單元的鄰接敏感沖突圖340。在鄰接敏感沖突圖340中,因為布局圖案222和227部分落于鄰接敏感區(qū)310內,所以存在與布局圖案222和227相對應的頂點A和E。如圖2B中所示,如果N被設為3,由于頂點A和E能夠被分配相同或不同的顏色,所以,對鄰接敏感沖突圖中的頂點A和E的染色沒有加以限制。因此,在圖3B中,無需增加邊或鏈路(link)來連接頂點A和E。
[0069]圖3C是根據(jù)一個或多個實施例的另一個示例性基礎布局的鄰接敏感沖突圖350。鄰接敏感除了布局圖案223向頁面的左側位移以成為布局圖案223’,而布局圖案224向頁面的右側位移以成為布局圖案224’之外,鄰接敏感沖突圖350用于與布局單元300相似的單元。布局圖案223’和224’仍位于布局單元邊界210內并且部分地落于鄰接敏感區(qū)310內。在鄰接敏感沖突圖350中存在與布局圖案222、223’、224’和227相對應的頂點A、B’、C’和E。頂點A、B’、C’和E的染色仍與沖突圖240所示的頂點A、B、C和E的染色一致。
[0070]此外,如圖2B和3C所示,用于分配給頂點A、B’、C’和E的顏色是相關聯(lián)的,因此,頂點A、B’、C’和E的染色的相互關系也存在于鄰接敏感沖突圖350中。在一些實施例中,當兩個頂點能夠被分配相同的顏色時,被稱為“相同顏色鏈路”的第一類型邊連接兩個頂點。在一些實施例中,當兩個頂點能夠被分配不同的顏色時,被稱為“不同顏色鏈路”的第二類型邊連接兩個頂點。例如,基于沖突圖350,由于頂點A和C’能夠被分配不同的顏色,所以通過不同顏色鏈路362連接頂點A和C’。基于類似的原因,通過不同顏色鏈路364連接頂點B’和C’,以及通過不同顏色連接鏈路366連接頂點C’和E’。而且,在3-染色處理中,頂點B’和E被分配相同的顏色,因此通過相同顏色鏈路372連接頂點B’和E。
[0071]在一些實施例中,根據(jù)結合圖3A至圖3C示出的處理而制備的鄰接敏感沖突圖350省略了封鎖邊界320內部的某些細節(jié)。因此,在一些實施例中,并不是與鄰接敏感沖突圖相對應的布局單元的所有可能染色結果(即,整個解空間)都包含在鄰接敏感沖突圖中。
[0072]例如,圖4A是根據(jù)一個或多個實施例的其中限定有鄰接敏感區(qū)410的示例性基礎布局單元400的示圖。為了說明的目的,除了布局單元400中不含布局圖案227之外,圖4A所示的示例性基礎布局單元400具有與圖2A所示的布局單元200相似的配置。使用相同的參考標號表示與布局單元200的部件相似的布局單元400的部件。封鎖邊界420位于布局單元內,并且鄰接敏感區(qū)410被限定為單元邊界210和封鎖邊界420之間的區(qū)域。布局圖案222、223和226至少部分地落于鄰接敏感區(qū)410內,并且布局圖案224位于封鎖邊界420內部。
[0073]圖4B是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元400的沖突圖430。在沖突圖430中,在處理(類似于結合圖2A和2B示出的處理)之后,頂點A、B、C和D分別表示布局圖案222、223、224和226。邊252、253、254和255分別連接頂點A和C、頂點B和C、頂點B和D以及頂點C和D。
[0074]圖4C是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元400的鄰接敏感沖突圖440?;诮Y合圖3A至圖3C描述的方法,沖突圖430被進一步地簡化為鄰接敏感沖突圖440。如圖4C所示,因為頂點A和B能夠被分配相同的顏色,所以通過相同顏色鏈路452連接頂點A和B,因為頂點B和D能夠被分配不同的顏色,所以通過不同顏色鏈路454連接頂點B和D。
[0075]圖4D是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元400的另一個鄰接敏感沖突圖460?;诮Y合圖4A至圖4C描述的方法,沖突圖430也能夠被簡化為鄰接敏感沖突圖460。如圖4D所示,因為頂點A和D能夠被分配相同的顏色,所以通過相同顏色鏈路472連接頂點A和D,因為頂點B和D能夠被分配不同的顏色,所以通過不同顏色鏈路474連接頂點B和D。
[0076]但是,在結合圖4C至圖4D示出的用于實施3-染色處理的實例中,因為必須給頂點B和D分配不同的顏色,所以不能給頂點A分配與頂點B和D均相同的顏色。因此,在至少一個實施例中,鄰接敏感沖突圖440和460中的每一個都表示沖突圖430的解空間的非重疊部分。
[0077]圖4E是根據(jù)一個或多個實施例的圖4A的示例性基礎布局單元400的經過修改的鄰接敏感沖突圖480。在至少另一個實施例中,從鄰接敏感沖突圖440或460中推導出修改的鄰接敏感沖突圖480,以包括沖突圖430的全部解空間。例如,即使當頂點C與封鎖邊界420內部的布局圖案224相對應時,連接頂點(諸如,頂點C)被添回到鄰接敏感沖突圖480中。根據(jù)沖突圖430,通過相同色鏈路或不同顏色鏈路來連接頂點A、B、D和增加的連接頂點C。在圖4E示出的實施例中,頂點A和C、頂點B和D、頂點B和C以及頂點C和D是分別由邊252、254、253和255鏈接的成對頂點,由此給這些頂點分配不同的顏色。所以,不同顏色鏈路492連接頂點A和C,不同顏色鏈路494連接頂點B和D、不同顏色鏈路496連接頂點B和C以及不同顏色鏈路498連接頂點C和D。
[0078]組合鄰接敏感沖突圖
[0079]對于復合布局單元(諸如,圖1示出的布局單元122、124、126、128、132、134、136、142或152)來說,根據(jù)組合復合布局單元的布局組成單元的鄰接敏感沖突圖來制備上述復合布局單元的沖突圖。結合圖5A至圖5C,會進一步詳細介紹通過組合布局組成單元的鄰接敏感沖突圖(例如,圖5A示出的沖突圖510和圖5B示出的沖突圖530)來創(chuàng)建沖突圖(例如,圖5C中示出的沖突圖540)的處理過程。
[0080]圖5A和5B是根據(jù)一個或多個實施例的兩個基礎布局單元的鄰接敏感沖突圖510和530。鄰接敏感沖突圖510和530只表示為用以說明組合多個鄰接敏感沖突圖的非限制性實例。鄰接敏感沖突圖510對應于第一類型的布局單元并且以與圖3A和圖3C示出的實例的類似方式得出。鄰接敏感沖突圖310具有由不同色鏈路522、524和526連接的頂點F和H、頂點G和H以及頂點H和J。鄰接敏感沖突圖510具有由同色鏈路528連接的頂點G和J。因為本實例中的頂點I對應于封鎖邊界512內部的布局圖案,所以鄰接敏感沖突圖510中不包含頂點I并且用十字號表示頂點I。而且,鄰接敏感沖突圖530對應于第二類型的布局單元并且以與圖3A和圖3B示出的實例的類似方式得出。鄰接敏感沖突圖530具有頂點K和0,但是因為本實例中的頂點L、M和N對應于相應封鎖邊界532內部的布局圖案,所以鄰接敏感頂點L、M和N不包含在鄰接敏感沖突圖830中并且用十字號標出。
[0081]圖5C是根據(jù)一個或多個實施例的復合布局單元的鄰接敏感沖突圖540。在至少一個實施例中,復合布局單元具有兩個第一類型單元552和554以及兩個第二類型單元556和558。例如,單元552的鄰接敏感沖突圖具有以類似于連接圖5A中的頂點F、G、H和J的方式連接的頂點F1、GU Hl和J1。單元554的鄰接敏感沖突圖具有以類似于連接圖5A中的頂點F、G、H和J的方式連接的F2、G2、H2和J2。單元556的鄰接敏感沖突圖具有以類似于設置圖5B中的頂點O和J的方式設置的頂點Kl和01。單元558的鄰接敏感沖突圖具有以類似于設置圖5B中的頂點O和J的方式設置的頂點K2和02。鄰接敏感沖突圖540僅表示為用以說明組合多個鄰接敏感沖突圖的非限制性實例。
[0082]此外,在一些實施例中,選擇性添加同色鏈路或不同色鏈路來連接相鄰布局單元的頂點。例如,在圖5C示出的實施例中,因為頂點K2和F2對應于由單元554和558合并的布局圖案,所以頂點K2和F2是指同一布局圖案,由此由相同顏色鏈路562來連接。而且,由于頂點Fl和F2對應于之間距離小于GO距離的布局圖案,所以不能為頂點Fl和F2分配相同的顏色,因此由不同顏色鏈路564來連接頂點Fl和F2。另一方面,因為頂點01與附近的頂點(Gl和K2)的分隔距離等于或大于GO距離,所以頂點01不需要同色鏈路或不同色鏈路。
[0083]頂點減少
[0084]為了簡化布局單元的沖突圖,諸如,沖突圖240或鄰接敏感沖突圖350或540,使用許多頂點減少處理來確定哪個頂點可以省略。在一些實施例中,如果頂點的染色與同一沖突圖中的其他頂點的染色無關,或如果從同一個沖突圖中的其他頂點的染色結果可推出該頂點的染色,那么該頂點可省略。也就是說,在有和沒有可省略的頂點的情況下進行的分析均會得出沖突圖是否為N-可染色的相同結論。因此,如果確定沒有可省略的頂點的沖突圖為N-可染色,那么,具有可省略的頂點的沖突圖也為N-可染色。
[0085]在一些實施例中,當沖突圖中的頂點連接至小于(N-1)個頂點(或連接度)時,可省略該頂點。
[0086]圖6A至圖6C是根據(jù)一個或多個實施例的描述不同連接度的沖突圖600A、600B和600C,其中,N設為3。為了說明的目的,用以給沖突圖染色的三種顏色為紅色(R)、綠色(G)和藍色(B)。在一些實施例中,沖突圖600A、600B或600C是圖1示出的一個布局單元的部分沖突圖。
[0087]圖6A是描述具有O連接度的頂點610的第一示例性沖突圖600A。沖突圖600A具有彼此連接的頂點622、624和626。沖突圖600A也具有未與頂點622、624和626中的任何一個連接的頂點610,因此被稱為具有O連接度。在一些實施例中,頂點610可省略,原因是頂點610的染色與其他頂點622、624和626的染色無關。例如,不管頂點622、624和626的染色結果如何,能夠將頂點610染為R色、G色或B色。
[0088]圖6B是描述具有一個連接度的頂點610的第二示例性沖突圖600B。沖突圖600B具有彼此連接的頂點622、624和626。沖突圖600B也具有通過邊632連接至頂點622的頂點610,因此也被稱為具有I連接度。在一些實施例中,頂點610可省略,原因是只要確定了其他頂點622、624和626的染色,就能得出頂點610的染色。例如,頂點622染為R色之后,在不影響其他頂點的情況下將頂點610染為G色或B色。
[0089]圖6C是根據(jù)一個或多個實施例的描述具有兩個連接度的頂點610的示例性第三沖突圖600C。沖突圖600C具有彼此連接的頂點622、624和626。沖突圖600C也具有通過邊632連接至頂點622并且通過邊634連接至另一個頂點642的頂點610,因此被稱為具有兩個連接度。在一些實施例中,頂點610可省略,原因是只要確定了 622、624、626和642的染色,就能馬上確定頂點610的染色。例如,將頂點622染為R色之后,當頂點642染為R色時,在不影響其他頂點的情況下,能夠將頂點610染為G色或B色。在可選的實例中,在將頂點622染為R色后,當將頂點642染為G色時,在不影響其他頂點的情況下,能夠將頂點610染為B色。
[0090]N-可染色分析一菱形減少
[0091]基于圖論的很多處理可用于確定沖突圖(諸如,沖突圖240)是否為N-可染色。在一些實施例中,稱作“菱形減少”的處理可用于確定沖突圖是否為N-可染色。結合圖7A至圖7D將進一步說明菱形減少處理。
[0092]例如,圖7A是根據(jù)一個或多個實施例的沖突圖700A。沖突圖700A描述了頂點A通過邊712連接至頂點C,頂點B通過邊713和邊714分別連接至頂點C和頂點D,頂點E通過邊716和邊717分別連接至頂點C和頂點D,以及頂點C通過邊715也連接至頂點D。頂點B和E屬于共享頂點C和D以及連接兩者的邊715的兩個三角形,并且頂點B、C、D和E共同形成菱形。例如,假設要給沖突圖700A分配三種不同的顏色,只要確定了頂點C和D的顏色,就用相同的顏色給頂點B和E染色。圖7B是根據(jù)一個或多個實施例的對圖7A中的沖突圖進行菱形減少后產生的沖突圖700B。包括邊713、717和715和頂點B、C和D的三角形可用于表示包括邊716、717和715以及頂點C、D和E的三角形而不影響沖突圖700A的N-可染色的結果。因此,只要確定了組合頂點B/E的N-可染色結果,就能確定頂點B和E的染色結果。
[0093]圖7C是根據(jù)一個或多個實施例的沖突圖700C。沖突圖700C描述了頂點A’通過邊722連接至頂點C’、頂點B’通過邊723、邊724和邊728分別連接至頂點C’、頂點D’和頂點E’,頂點E’還通過邊726和邊727分別連接至頂點C’和頂點D’,以及頂點C’通過邊725也連接至頂點D’。圖7D是根據(jù)一個或多個實施例的對圖7C中的沖突圖700C進行菱形減少后產生的沖突圖700D。根據(jù)圖7A和7B示出的方法,包括邊723、724和725以及頂點B’、C’和D’的三角形用于表示包括邊726、727和725以及頂點C’、D’和E’的三角形。組合頂點B’/E’使邊728形成一個環(huán)路。進行菱形減少之后產生的沖突圖中的環(huán)路說明不能給與該環(huán)路相關的組合頂點相對應的頂點(諸如,本實例中的頂點B’和E’ )染上相同的顏色。由此,組合頂點B’和E’存在染色沖突。所以,沖突圖700C不是3可染色的。
[0094]確定布局設計是否為N-可染色的方法
[0095]圖8是根據(jù)一個或多個實施例的確定布局設計802 (例如,圖1中的頂層布局單元152所表示的布局設計)是否為N-可染色的方法800的流程圖。應該理解,在圖8示出的方法800之前、其中和/或之后可進行附加操作,以及本發(fā)明只簡單描述了其他某些處理。在一些實施例中,該方法是由圖9中描述的硬件處理單元912執(zhí)行的指令集914a。
[0096]在操作810中,接收用于制造集成電路的部件層的布局設計802。如圖1所示,在一些實施例中,布局設計802包括以分層方式設置的頂層布局單元152和多個布局單元112、
113、114、116、117、118、122、124、126、128、132、134、136 和 142。在一些實施例中,布局設計802可以以數(shù)據(jù)庫文件格式(例如,圖形數(shù)據(jù)系統(tǒng)(GDS II)、開放式原圖系統(tǒng)交換標準(OPENARTWORK SYSTEM INTERCHANGE STANDARD,OASIS))或其他合適的格式存儲在非瞬態(tài)存儲裝置中(諸如,圖9中的存儲介質914)。在一些實施例中,布局設計802包括關于布局設計802的布局單元(諸如,布局單元 112、113、114、116、117、118、122、124、126、128、132、134、136、142和152)以及如何分層布置這些布局單元的信息。在一些實施例中,布局設計802包括一組基礎布局單元112、113、114、116、117和118和一組復合布局單元122、124、126、128、132、134、136、142和152,并且該復合布局單兀組包括表不布局設計本身的頂層布局單兀152。
[0097]如圖8所示,在操作815中,標識布局單元中的一組候選單元。將方法800的候選單元限定為基礎布局單元組中的一個(諸如,布局單元112、113、114、116、117和118)或復合布局單元組中的一個(諸如,布局單元122、124、126、128、132、134、136、142和152)。在一些實施例中,如果候選單元是復合單元,為了獲益于較低層級上的布局單元的鄰接敏感沖突圖,則已經確定該復合單元的布局組成單元為N-可染色。但是,在該階段,還沒有確定候選單元是否為N-可染色。
[0098]標識候選單元組之后,制備相應的標識的布局單元的沖突圖。
[0099]在一些實施例中,在操作815中,將基礎布局單元,例如圖2A中的布局單元200標識為候選單元,原因是布局單元200是基礎布局單元并且還沒有確定布局單元200是否為N-可染色。在一些實施例中,結合圖2A和2B示出的處理,制備圖2B描述的沖突圖240。
[0100]在一些實施例中,在操作815中,當已經確定了復合布局單元(例如,圖5C示出的布局單元)的布局組成單元的鄰接敏感沖突圖為N-可染色時,將該復合布局單元標識為候選單元。根據(jù)復合布局單元的布局組成單元的鄰接敏感沖突圖來制備復合布局單元的沖突圖。在一些實施例中,根據(jù)圖5A至圖5C示出的處理來制備圖5C示出的沖突圖540。因此,在一些實施例中,操作815還包括根據(jù)單元552、554、556和558的鄰接敏感沖突圖,生成沖突圖540。
[0101]在操作820中,通過進行頂點減少處理來降低標識的候選單元的沖突圖的復雜性。許多頂點減少處理也可用于確定哪個頂點可省略,從而簡化操作830中要分析的沖突圖。在一些實施例中,根據(jù)圖6A至圖6C示出的處理,進行頂點減少。
[0102]在一些實施例中,省略操作820。在一些實施例中,在進行操作830的過程中進行操作820,這在下文會進一步地給出說明。
[0103]在操作825中,從標識的候選單元池中選擇出一個或多個候選單元。例如,如果目前將基礎布局單元112、113、114、116、117和118標識為候選單元,則從布局單元112、113、
114、116、117和118中選擇一個或多個來分析這些布局單元是否為N-可染色。在一些實施例中,選擇兩個或多個候選單元以并行處理的方式進行分析。在一些實施例中,并行處理指一個或多個處理器通過多任務或多線程進行多項分析。在一些實施例中,并行處理指多個處理器中的每個處理器均被分配同時進行多項分析中相應的分析。在一些實施例中,任意地或根據(jù)一個或多個因素(包括布局單元被其他較高層級上的布局單元所使用的頻率、單元大小、沖突圖中的總邊數(shù)或相鄰單元的數(shù)量)選擇候選單元。
[0104]在操作830中,進行分析來確定選擇的候選單元是否為N-可染色。用來確定候選單元是否為N-可染色的應用算法很多。在一些實施例中,操作830包括建立真值表以枚舉染色頂點的可能組合,并且從枚舉出的組合中標識出一個或多個解(即,不相鄰頂點具有相同顏色)。在一些實施例中,當N設為3時,操作830包括進行圖7A至圖7D示出的菱形減少,從而確定是否存在染色沖突。
[0105]如圖4A至圖4D所示,從相同的沖突圖430中可得出兩個或多個可能的鄰接敏感沖突圖440和460。在一些實施例中,每個可選鄰接敏感沖突圖440或460與沖突圖430的整個解空間的子集一致。在一些實施例中,在操作825中,只選擇鄰接敏感沖突圖440和460中的一個來進行操作830中的分析。在一些實施例中,如果分析可選鄰接敏感沖突圖中的一個,諸如,鄰接敏感沖突圖440,并且該鄰接沖突圖使依賴于鄰接敏感沖突圖440的布局單元不是N-可染色,則分析另一個可選的鄰接敏感沖突圖,諸如,鄰接敏感沖突圖460。在一些實施例中,不是選擇可選的鄰接敏感沖突圖中的一個,而是在操作825中選擇與沖突圖430的整個解空間一致的經過修改的鄰接沖突圖(諸如,沖突圖480)以用于操作830。
[0106]分析了選擇的候選單元的沖突圖之后,在操作835中,確定了分析的候選單元是否為N-可染色。如果分析的候選單元為N-可染色,則該方法繼續(xù)至操作840,以提取出候選單元的鄰接敏感信息。否則,該方法繼續(xù)至操作880,這將在下文給出進一步的說明。
[0107]在一些實施例中,鄰接敏感信息以鄰接敏感沖突圖(諸如,鄰接敏感沖突圖350、440,460或480)的格式來制備。鄰接敏感沖突圖包括候選單元的頂點的子集、一個或多個同色鏈路或一個或多個不同色鏈路。在一些實施例中,如果候選單元的布局圖案沒有一個會影響鄰近候選單元的其他單元,則候選單元的鄰接敏感沖突圖不包括頂點、相同顏色鏈路和不同顏色鏈路。在一些實施例中,根據(jù)圖3A至圖3B和圖4A至圖4E示出的處理來制備鄰接敏感沖突圖。
[0108]在一些實施例中,如果正在被處理的布局單元是頂層布局單元(諸如,頂層布局單元152),則省略操作840。在一些實施例中,仍然對頂層布局單元進行操作840,這是因為當將當前集成電路作為構造塊來設計另一個集成電路時,仍可使用提取出的頂層布局單元的鄰接敏感沖突圖。例如,在一些實施例中,布局單元142是另一個集成電路設計的頂層單元。因此,如果當分析另一個集成電路設計(其中,布局單元142是其頂層單元)時已經得出布局單元142的鄰接敏感沖突圖,則分析頂層單元152時,可使用來自另一個集成電路的布局單元142的鄰接敏感沖突圖。
[0109]在一些實施例中,在操作825中選擇兩個或多個候選單元以進行并行分析。在至少一個實施例中,對每個選擇的候選單元都并行進行操作830、835和840的集合。
[0110]在操作840中提取了相應的鄰接敏感沖突圖之后,該方法繼續(xù)至操作845,以確定當前所有標識的候選單元是否都被分析了。如果已經分析了當前所有標識的候選單元,該方法進行操作850。否則,該方法進行操作825,以選擇還沒有被分析的一個或多個候選單
J Li ο
[0111]在操作850中,確定操作815是否已經處理了比當前標識的候選單元的層級高的所有布局單元。如果確定當前分析的候選單元為N-可染色,則在操作815中會再次檢查相對于當前分析的候選單元處于上級的單元。如果沒有比當前標識的候選單元的層級更高的布局單元,則該方法繼續(xù)至操作855。
[0112]在一些實施例中,以迭代的方式重復進行操作815至操作850,直至處理了布局設計的所有布局單元。
[0113]在操作855中,分析了接收的布局設計的所有布局單元(諸如,頂層布局單元152所表示的布局設計的布局單元 112、113、114、116、117、118、122、124、126、128、132、134、136、142和152)之后,確定N-可染色是否存在染色沖突。如果沒有染色沖突并且頂層單元是N-可染色,該方法進行操作860以當確定頂層單元為N-可染色時,報告布局設計為N-可染色。報告布局設計為N-可染色之后,該方法選擇性地進行操作865,以進行布局設計的染色。
[0114]在一些實施例中,操作865首先包括對頂層布局單元152的沖突圖的頂點進行染色。在完成對頂層布局單元152的沖突圖的頂點染色之后,則其布局組成單元(諸如,布局單元142、136-1和136-2)的沖突圖(相對于相應的封鎖邊界320、420、512或532內的頂點)被提升,即,從較低層級中提出并且與頂層布局單元152的沖突圖合并。然后,以迭代的方式執(zhí)行布局單元的相應布局組成單元的沖突圖的提升,直至將布局設計的布局單元的沖突圖合并且進行染色。
[0115]例如,對于圖5C示出的比布局單元552、554、556和558的層級高的布局單元來說,確定了相應沖突圖540的頂點FUGUHU JU F2、G2、H2、J2、KU 01、K2和02的顏色,然后其布局組成單兀(例如,布局單兀552、554、556以及558)的相對于相應封鎖邊界內的頂點(布局單元552和554的相應頂點I以及布局單元556和558的相應頂點L、M和N)的沖突圖被提升,以與較高層級的布局單元的沖突圖540合并。這種染色方法也被稱為“氣泡染色方法”,原因是提高較低層級的沖突圖,從而以迭代的方式每次與較高層級的沖突圖合并。
[0116]另一方面,如果在任何布局單元中存在任何染色沖突,則該方法進行操作870,以報告布局設計不是N-可染色。報告布局設計不是N-可染色之后,該方法進行操作875,其中,電路設計者或布局工程師相應地修改布局設計802。在一些實施例中,省略操作875并且將布局設計802標記為不可N-可染色。
[0117]而且,返回到操作835,如果分析的候選單元不是N-可染色,該方法繼續(xù)至操作880。在操作880中,如果該方法被設置為無論何時在操作830中出現(xiàn)沖突都要停止所有分析,則該方法繼續(xù)至操作870,以報告布局設計不是N-可染色。但是,如果在操作880沒有將該方法設置為停止所有分析,則該方法繼續(xù)至操作885。
[0118]在操作885中,如果該方法被設置為繼續(xù)分析其他標識的候選單元,則該方法進行操作845。如果將該方法設置為跳過分析其他標識的候選單元,則該方法進行操作850。
[0119]圖9是根據(jù)一個或多個實施例的集成電路設計系統(tǒng)900的功能框圖。集成電路設計系統(tǒng)900包括第一計算機系統(tǒng)910、第二計算機系統(tǒng)920、聯(lián)網的存儲設備930以及連接第一計算機系統(tǒng)910、第二計算機系統(tǒng)920和聯(lián)網的存儲設備930的網絡940。在一些實施例中,省略了第二計算機系統(tǒng)920、聯(lián)網的存儲設備930和網絡940中的一個或多個。
[0120]第一計算機系統(tǒng)910包括與非瞬態(tài)計算機可讀存儲介質914通訊連接的硬件處理單元912,非瞬態(tài)計算機可讀存儲介質914被編有(即,存儲)指令集914a、布局設計914b(例如,圖8中的元件802)或用于存儲沖突圖或鄰接敏感沖突圖的任何中間數(shù)據(jù)914c。處理單元912與計算機可讀存儲介質914電連接和通信連接。處理單元912被配置為執(zhí)行存儲在非瞬態(tài)計算機可讀存儲介質914中的指令集914a,從而使計算機910可用作電路設計工具以實施如結合圖8所述的N-可染色分析。
[0121]在一些實施例中,指令集914a、布局設計914b或中間數(shù)據(jù)914c存儲在非瞬態(tài)存儲介質而不是存儲介質914中。在一些實施例中,指令集914a、布局設計914b和中間數(shù)據(jù)914c中的一些或所有存儲在聯(lián)網的存儲設備930或第二計算機系統(tǒng)920中的非瞬態(tài)存儲介質中。在這種情況下,通過網絡940,處理單元912可訪問指令集914a、布局設計914b和中間數(shù)據(jù)914c中存儲在計算機910外部的一些或所有。
[0122]在一些實施例中,處理單元912是中央處理單元(CPU)、多處理器、分布式處理系統(tǒng)、專用集成電路(ASIC)和/或適合的處理單元。
[0123]在一些實施例中,計算機可讀存儲介質914是電子的、磁性的、光學的、電磁的、紅外線的和/或半導體系統(tǒng)(或裝置或設備)。例如,計算機可讀存儲介質914包括半導體或固體存儲器、磁帶、可移動計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬盤和/或光盤。在一些使用光盤的實施例中,計算機可讀存儲介質914包括只讀光盤存儲器(⑶-ROM)、可讀寫式光盤(⑶-R/W)和/或數(shù)字化視頻光盤(DVD)。
[0124]在至少一些實施例中,計算機系統(tǒng)910包括輸入/輸出接口 916和顯示單元917。輸入/輸出接口 916連接至處理單元912并且允許電路設計者操作第一計算機系統(tǒng)910。在至少一個實施例中,顯示單元917以實時方式顯示執(zhí)行指令集914a的狀態(tài)以及優(yōu)選提供圖形用戶界面(⑶I)。在至少一些實施例中,輸入/輸入接口 916和顯示單元917允許操作者以交互的方式操作計算機系統(tǒng)910。
[0125]在至少一些實施例中,計算機系統(tǒng)900還包括連接至處理單元912的網絡接口918。網絡接口 918允許計算機系統(tǒng)910與網絡940通信,網絡940與一個或多個其他計算機系統(tǒng)連接。網絡接口包括無線網絡接口(諸如,BLUETOOTH、WIF1、WIMAX、GPRS或WCDMA)或有線網絡接口(諸如,ETHERNET、USB或IEEE-1394)。
[0126]根據(jù)一個實施例,一種確定用于制造集成電路的部件層的布局設計是否為N-可染色的方法包括:從布局設計的布局單元中標識出一組候選單元。候選單元組中的每個候選單元都是基礎布局單元組中的一個或復合布局單元組中的一個,并且復合布局單元組中的復合布局單元的布局組成單元已被確定為N-可染色。確定候選單元組中的第一候選單元是否為N-可染色。當?shù)谝缓蜻x單元為N-可染色并且第一候選單元不是頂層布局單元時,產生第一候選單元的鄰接敏感沖突圖。
[0127]根據(jù)另一個實施例,一種集成電路設計系統(tǒng)包括存儲有指令集的非瞬態(tài)存儲介質以及與非瞬態(tài)存儲介質通信連接的硬件處理單元。硬件處理單元被配置為執(zhí)行指令集以從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組;以確定候選單元組中的第一候選單元是否為N-可染色;以及當?shù)谝缓蜻x單元為N-可染色并且不是頂層布局單元時,生成第一候選單元的鄰接敏感沖突圖,其中,頂層布局單元本身是布局設計。候選單元組中的每個候選單元都是基礎布局單元組中的一個或者復合布局單元組中的一個,并且復合布局單元組中的該復合布局單元的布局組成單元已被確定為N-可染色。
[0128]根據(jù)另一個實施例,提供了一種存儲指令集的非瞬態(tài)存儲介質。指令集被配置為使硬件處理單元執(zhí)行一種方法,該方法包括從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組;確定候選單元組中的第一候選單元是否為N-可染色;以及當?shù)谝缓蜻x單元為N-可染色并且不是頂層布局單元時,生成第一候選單元的鄰接敏感沖突圖,其中,頂層布局單元本身是布局設計。候選單元組中的每個候選單元都是基礎布局單元組中的一個或者復合布局單元組中的一個,并且復合布局單元組中的該復合布局單元的布局組成單元已被確定為N-可染色。
[0129]上面描述了若干實施例的特征,從而使本領域普通技術人員可以更好地理解本發(fā)明的各個方面。本領域普通技術人員應該理解,他們可以很容易地使用本發(fā)明作為基礎來設計或修改其他用于達到與本文所介紹的實施例相同的目的和/或實現(xiàn)相同優(yōu)點的工藝和結構。本領域普通技術人員也應該意識到,這種等效構造并不背離本發(fā)明的精神和范圍,并且在不背離本發(fā)明的精神和范圍的情況下,他們可以對本發(fā)明作出多種變化、替換和修改。
【權利要求】
1.一種確定用于制造集成電路的部件層的布局設計是否為N-可染色的方法,N是不小于2的正整數(shù),所述布局設計包括以分層方式布置的布局單元,所述布局單元包括基礎布局單元組和復合布局單元組,所述復合布局單元組包括頂層布局單元,所述頂層布局單元代表所述布局設計,并且所述方法包括: 從所述布局單元中標識出候選單元組,所述候選單元組中的每個候選單元都是所述基礎布局單元組中的一個基礎布局單元或者所述復合布局單元組中的一個復合布局單元,并且所述復合布局單元組中的所述一個復合布局單元的布局組成單元已被確定為N-可染色; 確定所述候選單元組中的第一候選單元是否為N-可染色;以及當所述第一候選單元為N-可染色并且不是所述頂層布局單元時,通過硬件處理單元,生成所述第一候選單元的鄰接敏感沖突圖。
2.根據(jù)權利要求1所述的方法,其中,以迭代方式重復進行所述標識操作、所述確定操作以及所述生成操作。
3.根據(jù)權利要求1所述的方法,還包括: 當所述頂層單元是N-可染色時,報告所述布局設計是N-可染色;以及 當所述布局單元中有任何一個不是N-可染色時,報告所述布局設計不是N-可染色。
4.根據(jù)權利要求1所述的方法,還包括:確定所述候選單元組中的第二候選單元是否為N-可染色,其中,以并行處理方式處理確定所述第一候選單元是否為N-可染色和確定所述第二候選單元是否為N-可染色。
5.根據(jù)權利要求1所述的方法,其中,生成所述第一候選單元的鄰接敏感沖突圖,包括: 在所述第一候選單元內限定鄰接敏感區(qū); 生成與落在所述鄰接敏感區(qū)中的布局圖案組相對應的頂點組; 當能夠給所述頂點組中的兩個頂點分配相同顏色時,通過相同顏色鏈路來連接這兩個頂點;以及 當能夠給所述頂點組中的兩個頂點分配不同顏色時,通過不同顏色鏈路來連接這兩個頂點。
6.根據(jù)權利要求5所述的方法,其中,生成所述第一候選單元的鄰接敏感沖突圖還包括: 當所述鄰接敏感沖突圖在包括另一個頂點之前具有兩個或更多不同的配置時,將所述另一個頂點包括在所述鄰接敏感沖突圖中,所述另一個頂點與所述第一候選單元中未落在所述鄰接敏感區(qū)內的布局圖案相對應。
7.根據(jù)權利要求5所述的方法,其中,所述第一候選單元內的鄰接敏感區(qū)被限定在所述第一候選單元的單元邊界和所述第一候選單元的封鎖邊界之間,通過將所述第一候選單元的單元邊界向內移動一距離來限定所述封鎖邊界,所述距離等于或大于預設閾值距離和預設的單元重疊允許公差之和。
8.根據(jù)權利要求1所述的方法,其中,所述第一候選單元包括所述布局組成單元的組合,并且所述方法還包括: 根據(jù)所述第一候選單元的布局組成單元的鄰接敏感沖突圖,生成所述第一候選單元的沖突圖。
9.一種集成電路設計系統(tǒng),包括: 非瞬態(tài)存儲介質,其中編碼有指令集; 硬件處理單元,與所述非瞬態(tài)存儲介質通信連接,并且被配置為執(zhí)行所述指令集,從而: 從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組,所述候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且所述復合布局單元組中的所述一個復合布局單元的布局組成單元已被確定為N-可染色; 確定所述候選單元組的第一候選單元是否為N-可染色;以及當所述第一候選單元是N-可染色并且所述第一候選單元不是頂層布局單元時,生成所述第一候選單元的鄰接敏感沖突圖,所述頂層布局單元是所述布局設計。
10.一種編碼有指令集的非瞬態(tài)存儲介質,所述指令集被配置為使硬件處理單元執(zhí)行包括以下步驟的方法: 從用于制造集成電路的部件層的布局設計的布局單元中標識出候選單元組,所述候選單元組中的每個候選單元都是基礎布局單元組中的一個基礎布局單元或者復合布局單元組中的一個復合布局單元,并且所述復合布局單元組中的所述一個復合布局單元的布局組成單元已被確定為N-可染色; 確定所述候選單元組的第一候選單元是否為N-可染色;以及當所述第一候選單元是N-可染色并且不是頂層布局單元時,生成所述第一候選單元的鄰接敏感沖突圖,所述頂層布局單元是所述布局設計。
【文檔編號】G06F17/50GK104517000SQ201310704190
【公開日】2015年4月15日 申請日期:2013年12月19日 優(yōu)先權日:2013年10月3日
【發(fā)明者】林宏隆, 徐金廠, 何建霖, 楊穩(wěn)儒 申請人:臺灣積體電路制造股份有限公司