本發明涉及芯片版圖設計,尤其涉及一種芯片的通孔測試版圖確定方法。
背景技術:
1、開發新ic技術節點主要的障礙是缺乏能夠徹底測試工藝能力、設計和工藝交互的高質量、全面的布局。在工藝開發的初始階段,有必要定義工藝規格,指定opc配置,并建立設計規則以確定版圖的可制造性。這些關鍵任務中的每項都需要芯片的版圖來評估開發結果的質量、精度和完整性。
2、在新節點逐步優化提升良率時,傳統設計有著局限性。除了新穎的制造技術帶來的困難外,還很有可能遇到額外的隨機、系統和參數缺陷,這需要實施補充設計規則和策略。基本模式的任意定位產生了多種設計風格,涵蓋了廣泛的設計范圍。人工布局生成器會創建多種模式,所有這些模式都遵守既定規則和尺寸限制。實施調整以生成設計,并管理首選和不首選方向導線的百分比邊界,確定導線寬度、長度和密度邊界的邊界。在創建簡單的pattern和復雜的極端情況時,unit?patterns的隨機放置考慮了所有這些限制,這些情況對人工測試設計來說很難徹底解決。在這個階段,我們生成更復雜的模式,并實現更大的覆蓋率和維度變化,以觸發和觀察更多的模式-過程交互。
3、隨著集成電路的復雜性增加,只使用一層金屬互聯已經不能滿足需求,現在的集成電路有多達10層或更多的金屬互連層,這些金屬層通過介質層進行分隔,然后在介質層打出一個個小孔,以便于金屬填充。現有主流軟件使用的技術是,基于設計版圖中現有的兩層金屬的重疊部分作為通孔部分,再根據通孔的設計規則,刪除通孔設計規則的通孔,即得到最終通孔版圖。上述方案存在如下缺陷:通孔是由現有金屬重疊而得,通孔尺寸受制于金屬層的線寬,通孔是由現有金屬重疊而得,其數量或者占比無法控制。
技術實現思路
1、本發明實施例提供了一種芯片的通孔測試版圖確定方法,本發明實施例的方案可以設計通孔尺寸,并且可以設定通孔的大致占比,使得通孔版圖更符合芯片測試要求。
2、根據本發明的一方面,提供了一種芯片的通孔測試版圖確定方法,包括:
3、根據第一金屬層中第一金屬線和第二金屬層中第二金屬線的設計信息隨機生成通孔矩陣;其中,所述第一金屬線沿第一方向延伸,所述第二金屬線沿第二方向延伸,所述第一方向和所述第二方向相互交叉;所述設計信息包括版圖尺寸、第一金屬線的線寬、第二金屬線的線寬、沿第二方向相鄰的第一金屬線的第一線間距、沿第一方向相鄰的第二金屬線的第二線間距、最大線長、最小線長、沿第一方向相鄰的第一金屬線的第一最小線間距和第一最大線間距、沿第二方向相鄰的第二金屬線的第二最小線間距和第二最大線間距以及通孔比例中的至少一種;
4、根據所述通孔矩陣、所述設計信息以及通孔信息設置第一金屬線和第二金屬線并更新通孔矩陣;其中,所述通孔信息包括通孔沿第一方向的寬度、通孔沿第二方向的寬度以及通孔邊緣到覆蓋其的金屬線的線端之間的最小包圍距離;
5、根據第一線間距、第二線間距、通孔信息和更新的通孔矩陣設置通孔。
6、可選的,根據所述通孔矩陣、所述設計信息以及通孔信息設置每一第一金屬線和第二金屬線的位置并更新通孔矩陣包括:
7、根據所述通孔矩陣確定線端通孔矩陣和非線端通孔矩陣;
8、根據所述線端通孔矩陣、所述非線端通孔矩陣、所述設計信息以及通孔信息設置所述第一金屬線和所述第二金屬線并更新通孔矩陣;其中,所述線端通孔矩陣中的線端通孔位于金屬線的線端,所述非線端通孔矩陣中的非線端通孔位于金屬線的非線端位置。
9、可選的,所述通孔矩陣為1的占比為p的0-1矩陣;
10、根據所述通孔矩陣確定線端通孔矩陣和非線端通孔矩陣,包括:
11、獲取所述通孔矩陣中每列第一個非零元素的索引數組,得到非零列索引數組;
12、獲取所述通孔矩陣每行第一個非零元素的索引數組,得到非零行索引數組;
13、根據非零行索引數組中的每行第一個非零元素的位置,以第二線間距為間隔對矩陣賦1,得到通孔水平矩陣;
14、根據非零列索引數組中的每列第一個非零元素的位置,以第一線間距為間隔對矩陣賦1,得到通孔豎直矩陣;
15、根據通孔水平矩陣、通孔豎直矩陣和通孔矩陣確定線端通孔矩陣;
16、根據所述通孔矩陣和所述線端通孔矩陣確定所述非線端通孔矩陣。
17、可選的,根據所述線端通孔矩陣、所述非線端通孔矩陣以及所述設計信息設置所述第一金屬線和所述第二金屬線并更新通孔矩,包括:
18、確定所述線端通孔矩陣中每一行線端通孔的位置,若某行中無線端通孔,則根據所述非線端通孔矩陣中該行的非線端通孔、設計信息和通孔信息設置該行的第一金屬線,若某行中存在線端通孔,則根據線端通孔、設計信息和通孔信息設置該行的第一金屬線;
19、確定所述線端通孔矩陣中每一列線端通孔的位置,若某列中無線端通孔,則根據所述非線端通孔矩陣中該列的非線端通孔、設計信息和通孔信息設置該列的第二金屬線,若某列中存在線端通孔,則根據線端通孔、設計信息和通孔信息設置該列的第二金屬線。
20、可選的,某行中無線端通孔,則根據所述非線端通孔矩陣中該行的非線端通孔、設計信息和通孔信息設置該行的第一金屬線包括:
21、獲取非線端通孔矩陣中該行非線端通孔的位置;
22、若該行無非線端通孔,則根據設計信息隨機設置第一金屬線;
23、若該行存在非線端通孔,則確定第一金屬線的第一左端位置,并判斷第一左端位置最小包圍距離內是否存在通孔,若存在,則去除所述通孔或更新所述第一左端位置,使所述第一左端位置的最小包圍距離內無通孔;
24、根據最小線長和最大線長確定第一隨機線長;
25、根據所述第一左端位置以及所述第一隨機線長確定所述第一金屬線的第一右端位置,并判斷所述第一右端位置最小包圍距離內是否存在通孔,若存在則更新所述第一右端位置,使與所述第一右端位置間隔最小包圍距離內無通孔;
26、根據所述第一左端位置和第一右端位置設置第一金屬線;
27、根據所述第一最小線間距和第一最大線間距隨機確定第一隨機間距值,將位于所述第一右端右側,且與所述第一右端位置之間的距離小于所述第一隨機間距值的通孔去除;
28、根據所述第一右端位置和所述第一隨機間距值更新所述第一左端位置;
29、若某列中無線端通孔,則根據所述非線端通孔矩陣中該列的非線端通孔、設計信息和通孔信息設置該列的第二金屬線,包括:
30、獲取非線端通孔矩陣中該列非線端通孔的位置;
31、若該列無非線端通孔,則根據設計信息隨機設置第二金屬線;
32、若該列存在非線端通孔,則確定第二金屬線的第一下端位置,并判斷第二金屬線的第一下端位置最小包圍距離內是否存在通孔,若存在,則去除所述通孔或更新所述第一下端位置,使所述第一下端位置的最小包圍距離內無通孔;
33、根據最小線長和最大線長確定第二隨機線長;
34、根據所述第一下端位置以及所述第二隨機線長確定所述第二金屬線的第一上端位置,并判斷所述第一上端位置最小包圍距離內是否存在通孔,若存在則更新所述第一上端位置,使與所述第一上端位置間隔最小包圍距離內無通孔;
35、根據所述第一下端位置和第一上端位置設置第二金屬線;
36、根據所述第二最小間距和第二最大線間距隨機確定第二隨機間距值,將位于所述第一上端上方,且與所述第一上端的距離小于所述第二隨機間距值的通孔去除;
37、根據所述第一上端位置和所述第二隨機間距值更新所述第一下端位置。
38、可選的,若某行中存在線端通孔,則根據線端通孔、設計信息和通孔信息設置該行的第一金屬線,包括:
39、根據某行中第一個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在第一個線端通孔之前設置第一金屬線;
40、根據某行中相鄰的兩個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在相鄰的兩個線端通孔之間設置第一金屬線;其中,第一金屬線覆蓋與其相鄰的且位于其左側的線端通孔;
41、根據某行中最后一個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在最后一個線端通孔之后設置第一金屬線;
42、若某列中存在線端通孔,則根據線端通孔、設計信息和通孔信息設置該列的第二金屬線,包括:
43、根據某列中第一個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在第一個線端通孔之前設置第二金屬線;
44、根據某列中相鄰的兩個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在相鄰的兩個線端通孔之間設置第二金屬線;其中,第二金屬線覆蓋與其相鄰的且位于其下側的線端通孔;
45、根據某列中最后一個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在最后一個線端通孔之后設置第二金屬線。
46、可選的,根據某行中第一個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在第一個線端通孔之前設置第一金屬線包括:
47、(11)判斷開始畫第一金屬線的第一起始位置到結束畫第一金屬線的第一結束位置之間的長度是否大于第一金屬線的最小線長與第一最小線間距之和,如果是則執行步驟(12),否則結束本次畫第一金屬線;
48、(12)如果第一起始位置小于第一結束位置,則根據第一最小線間距和第一最大線間距隨機確定第三隨機間距值;
49、(13)將位于第一結束位置之前,且與所述第一結束位置之間的距離小于第一預設距離的通孔去除;其中,第一預設距離等于第三隨機間距值與最小包圍距離的和;
50、(14)根據第一結束位置和第三隨機間距值計算第一金屬線的第二右端位置;
51、(15)根據最大線長和最小線長隨機取第一金屬線的第三隨機線長,若第二右端位置到第一起始位置處的距離不大于最大線長,則根據第二右端位置和第三隨機線長計算第一金屬線的第二左端位置,并根據第二左端位置和第二右端位置設置第一金屬線;
52、(16)設置第一結束位置等于第二左端位置,并繼續執行步驟(11);
53、根據某列中第一個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在第一個線端通孔之前設置第二金屬線,包括:
54、(21)判斷開始畫第二金屬線的第二起始位置到結束畫第二金屬線的第二結束位置之間的長度是否大于第二金屬線的最小線長與第一最小線間距之和,如果是則執行步驟(22),否則結束本次畫第二金屬線;
55、(22)如果第二起始位置小于第二起結束位置,則根據第二最小間距和第二最大線間距隨機確定第四隨機間距值;
56、(23)將位于第二結束位置之前,且與所述第二結束位置之間的距離小于第二預設距離的通孔去除;其中,第二預設距離等于第四隨機間距值與最小包圍距離的和;
57、(24)根據第二結束位置和第四隨機間距值計算第二金屬線的第二上端位置;
58、(25)根據最大線長和最小線長隨機取第二金屬線的第四隨機線長,若第二上端位置到第二起始位置處的距離不大于最大線長,則根據第二上端位置和第四隨機線長計算第二金屬線的第二下端位置,并根據第二下端位置和第二上端位置設置第二金屬線;
59、(26)設置第二結束畫線位置等于第二下端位置,并繼續執行步驟(21)。
60、可選的,根據某行中相鄰的兩個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在相鄰的兩個線端通孔之間設置第一金屬線,包括:
61、(31)如果畫第一金屬線的第三起始位置小于畫第一金屬線的第三結束位置,則執行步驟(32),否則此次畫第一金屬線結束;
62、(32)設置第一金屬線的第三左端位置等于第三起始位置,并根據最大線長和最小線長隨機取第一金屬的第五隨機線長;
63、(33)根據第三左端位置和第五隨機線長確定第一金屬線的第三右端位置,并根據第三左端位置和第三右端位置畫第一金屬線;
64、(34)根據第一最小線間距和第一最大線間距隨機確定第五隨機間距值;
65、(35)將位于所述第三右端位置右側,且與所述第三右端位置間距小于第五隨機間距值的通孔去除,并將位于第三右端位置左側,且與第三右端位置之間的距離小于最小包圍距離的通孔去除;
66、(36)根據第三起始位置、第三左端位置、第三右端位置和第五隨機間距值更新所述第三起始位置,并繼續執行步驟(31);
67、根據某列中相鄰的兩個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在相鄰的兩個線端通孔之間設置第二金屬線,包括:
68、(41)如果畫第二金屬線的第四起始位置小于畫第二金屬線的第四結束位置,則執行步驟(42),否則此次畫第二金屬線結束;
69、(42)設置第二金屬線的第三下端位置等于第四起始位置,并根據最大線長和最小線長隨機取第一金屬的第六隨機線長;
70、(43)根據第三下端位置和第六隨機線長確定第二金屬線的第三上端位置,并根據第三下端位置和第三上端位置畫第一金屬線;
71、(44)根據第一最小線間距和第一最大線間距隨機確定第六隨機間距值;
72、(45)將位于所述第三上端位置上側,且與所述第三上端位置間距小于第六隨機間距值的通孔去除,并將位于第三上端位置下側,且與第三上端位置間距小于最小包圍距離的通孔去除;
73、(46)根據第四起始位置、第三下端位置、第三上端位置和第六隨機間距值更新所述第四起始位置,并繼續執行步驟(41)。
74、可選的,根據某行中最后一個線端通孔的位置、最大線長、最小線長、第一最小線間距、第一最大線間距和通孔信息,在最后一個線端通孔之后設置第一金屬線包括:
75、(51)如果畫第一金屬線的第五起始位置小于畫第一金屬線的第五結束位置,執行步驟(52),否則此次畫金屬線結束;
76、(52)設置第一金屬線第四左端位置等于第五起始位置,并根據最大線長和最小線長隨機取第一金屬的第七隨機線長;
77、(53)根據第四左端位置wire_left4和第七隨機線長wire_len7確定第一金屬線的第四右端位置,并根據第四左端位置和第四右端位置畫第一金屬線;
78、(54)根據第一最小線間距和第一最大線間距隨機確定第七隨機間距值;
79、(55)將位于所述第四右端位置右側,且與所述第四右端位置間距小于第七隨機間距值的通孔去除,并將位于第四右端位置左側,且與第四右端位置的距離小于最小包圍距離的通孔去除;
80、(56)根據第五起始位置、第四左端位置、第四右端位置和第七隨機間距值更新所述第五起始位置,并繼續執行步驟(51);
81、根據某列中最后一個線端通孔的位置、最大線長、最小線長、第二最小間距、第二最大線間距和通孔信息,在最后一個線端通孔之后設置第二金屬線,包括:
82、(61)如果畫第二金屬線的第六起始位置小于畫第二金屬線的第六結束位置,執行步驟(62),否則此次畫金屬線結束;
83、(62)設置第二金屬線第四下端位置等于第六起始位置,并根據最大線長和最小線長隨機取第一金屬的第八隨機線長;
84、(63)根據第四下端位置和第八隨機線長確定第一金屬線的第四上端位置,并根據第四下端位置和第四上端位置畫第一金屬線;
85、(64)根據第一最小線間距和第一最大線間距隨機確定第八隨機間距值;
86、(65)將位于所述第四上端位置下側,且與所述第四上端位置間距小于第八隨機間距值的通孔去除,且將位于第四上端位置下側,且與所述第四上端位置間距小于最小包圍距離的通孔去除;
87、(66)根據第六起始位置、第四上端位置、第四下端位置和第八隨機間距值更新所述第六起始位置,并繼續執行步驟(61)。
88、可選的,根據第一線間距、第二線間距、通孔信息和更新的通孔矩陣設置通孔包括:
89、獲取更新后的通孔矩陣的非零位置信息列表;
90、計算非零位置信息列表中每一通孔的水平偏移信息和豎直偏移信息;
91、根據第一線間距、第二線間距、水平偏移信息和豎直偏移信息確定每一通孔的中心位置,根據中心位置、通孔沿第一方向的寬度和通孔沿第二方向的寬度畫通孔。
92、本發明實施例根據第一金屬層中第一金屬線和第二金屬層中第二金屬線的設計信息隨機生成通孔矩陣;根據通孔矩陣、設計信息以及通孔信息設置第一金屬線和第二金屬線并更新通孔矩陣;根據第一線間距、第二線間距、通孔信息和更新的通孔矩陣設置通孔。本發明實施例可以根據版圖的關鍵信息,設置滿足比例要求的通孔矩陣,并根據通孔矩陣、設計信息和通孔信息畫金屬線和更新通孔矩陣,畫完金屬線后,根據更新的通孔矩陣和需要的通孔信息畫通孔,即本實施例的方案可以設計通孔尺寸,并且可以設定通孔的大致占比,使得通孔版圖更符合芯片測試要求。
93、應當理解,本部分所描述的內容并非旨在標識本發明的實施例的關鍵或重要特征,也不用于限制本發明的范圍。本發明的其它特征將通過以下的說明書而變得容易理解。