專利名稱:驗證設(shè)計規(guī)則校驗程序的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于將層級引入設(shè)計規(guī)則校驗程序測試例并提供測 試例數(shù)據(jù)的自動旋轉(zhuǎn)的方法和系統(tǒng)。
背景技術(shù):
通過以2維幾何模型形式的物理設(shè)計,描述集成電路及它們的物 理封裝。伴隨著這些設(shè)計的復(fù)雜性的日益增加而日益增加的數(shù)據(jù)量正 變成工程設(shè)計自動化的顯著問題,這是因為它過分強調(diào)了軟件設(shè)計工 具,而軟件設(shè)計工具會影響到設(shè)計周期時間、設(shè)計成本和上市時機。
多次地分析物理設(shè)計數(shù)據(jù),以便檢驗未超出物理掩膜約束,電氣 性能令人滿意,以及物理設(shè)計實現(xiàn)了邏輯設(shè)計意圖。例如,為了設(shè)計 規(guī)則校驗(DRC)、掩膜建立前的數(shù)據(jù)準備等目的,通常需要確定超 大規(guī)模集成(VLSI)半導(dǎo)體掩膜布局中的材料的寬或厚的部分。通過 現(xiàn)代工具,該確定是有問題的,這是因為在必須搜索的基礎(chǔ)形狀或單 元周圍的區(qū)域大,從而使得布局的有效扁率(flattening)多次過度。 因此,在處理過程中消耗大量CPU和存儲器資源,并且通常獲得很小 的實際價值。
管理設(shè)計復(fù)雜性的標準方法是優(yōu)化設(shè)計本身,但是以扁平的 (flattened)形式檢驗或校驗設(shè)計。然而,當分區(qū)中的數(shù)據(jù)量相當大 時,物理分區(qū)的高級表示的計算會是一個相當大的問題。此外,使用 特別設(shè)計^務(wù)復(fù)(ad-hoc design fix )破壞層級i殳計約束的任何嘗試4吏分 區(qū)的完整性受到損害,并且減少了對完全扁平分析問題的檢驗過程。 最后,方法約束通常阻止設(shè)計者完全地利用由物理設(shè)計技術(shù)提供的可 用密度。
因此,由于必須手動地開發(fā)層級測試例,所以通過使用具有很少
或無層級測試例的扁平設(shè)計,對DRC工具進行驗證。由于對開發(fā)整 個層級測試例集合的時間要求,所以層級測試例是非常不實際的,并 且不傾向于用來檢驗DRC程序。因此,需要一種生成在DRC工具驗 證過程中具有更大覆蓋范圍的有效測試例的自動方法。
發(fā)明內(nèi)容
在本發(fā)明的第一方面中, 一種驗證設(shè)計規(guī)則校驗程序的方法包 括創(chuàng)建層級結(jié)構(gòu),以便使該層級結(jié)構(gòu)的每一層對應(yīng)于某一形狀的子 區(qū)域或設(shè)備的一個處理層。該方法進一步包括將所創(chuàng)建的層級結(jié)構(gòu) 插入DRC程序中,并在關(guān)閉層級優(yōu)化選項的情況下至少運行DRC程 序一次。該方法將預(yù)期結(jié)果與實際結(jié)果進行比較。預(yù)期結(jié)果和實際結(jié) 果間的差值表示層級設(shè)計規(guī)則校驗程序中的誤差。
在本發(fā)明的另一方面中,該方法包括提供DRC程序,以及提 供第一測試例。通過將第一測試例放在層級結(jié)構(gòu)中,修改該第一測試 例,其中,依據(jù)具有某一形狀的子區(qū)域或設(shè)計的單個層構(gòu)建層級結(jié)構(gòu) 的每一層。該方法進一步包括通過將所修改的第一測試例用作輸入, 執(zhí)行DRC程序。將該DRC程序的輸出結(jié)果與預(yù)期結(jié)果進行比較,以 便確定DRC程序在針對層級測試數(shù)據(jù)運行時的有效性。
在本發(fā)明的另一方面中, 一種系統(tǒng)包括在機器上運行的計算機代 碼,該計算機代碼被配置成
創(chuàng)建布局設(shè)計的層級結(jié)構(gòu); 將布局設(shè)計的層級結(jié)構(gòu)插入DRC程序中; 繞x和y軸旋轉(zhuǎn)布局數(shù)據(jù),以便測試相同形狀的其他定向; 在關(guān)閉層級優(yōu)化選項的情況下運行DRC程序至少一次;以及 將預(yù)期結(jié)果與實際結(jié)果進行比較,其中,預(yù)期結(jié)果和實際結(jié)果間 的差值表示在處理DRC程序中的層級的過程中的誤差。
圖l是實現(xiàn)本發(fā)明的系統(tǒng)的表示;
圖2是表示實現(xiàn)本發(fā)明的實施例的步驟的流程圖3示出了根據(jù)本發(fā)明的實施例的層級的圖形表示;
圖4表示根據(jù)本發(fā)明的實施例的例子;
圖5是表示實現(xiàn)本發(fā)明的實施例的步驟的流程圖;以及
圖6A-6G表示根據(jù)本發(fā)明的實施例的例子。
具體實施例方式
本發(fā)明涉及用于將層級引入設(shè)計規(guī)則校驗程序測試例的方法和 系統(tǒng)。在實施例中,提供了用于測試設(shè)計規(guī)則校驗(DRC)工具的精 度和魯棒性的方法和系統(tǒng)。該方法和系統(tǒng)將DRC輸出與期望的結(jié)果 進行比較。實際結(jié)果與預(yù)期結(jié)果的差異標識出問題存在于DRC工具 內(nèi)的何處。
該方法和系統(tǒng)修改現(xiàn)有的測試例,并且將所修改的數(shù)據(jù)作為輸入 提供給DRC工具。在實施例中, 一種修改可以是對測試例數(shù)據(jù)進行 自動旋轉(zhuǎn)。例如,該方法可以將特定的定向旋轉(zhuǎn)45度,并且將新的輸 入數(shù)據(jù)輸送到DRC工具。在另外的實施例中,修改可以是將層級自 動地添加到DRC測試例中。例如,能將一層或多層或者一級或多級 放入并行嵌套結(jié)構(gòu)中,或者可能存在用于破壞形狀以及將原始設(shè)計形 狀的某些部分放入不同嵌套結(jié)構(gòu)中的各種選項。
在實施例中,對在運行DRC程序前自動地插入層級的工具的創(chuàng) 建大大地提高了測試覆蓋范圍。通過使用這種工具,可以實現(xiàn)從幾乎 沒有對層級布局交互的測試覆蓋范圍到現(xiàn)在實現(xiàn)并能糾正最基本錯誤 的覆蓋范圍。在實現(xiàn)中,該方法和系統(tǒng)能領(lǐng)會測試布局數(shù)據(jù)以便理解 當前等級。該系統(tǒng)和方法能可選地使現(xiàn)有布局變平,以便標準化所創(chuàng) 建的層級;即,任何層級可能局限于所插入的層級的形式。在另外的 實現(xiàn)方式中,該系統(tǒng)和方法能以程序選項所指定的各種方式插入層級。
通過非限定性的示例性例子,以下述方式可以將所創(chuàng)建的層級結(jié) 構(gòu)放入DRC程序(i)每一層或每一級被放入并行單元嵌套結(jié)構(gòu)中;
(ii) 一層或一級被放入并行嵌套結(jié)構(gòu)中;以及(iii)用于破壞形狀和 將原始設(shè)計形狀的某些部分放入不同嵌套結(jié)構(gòu)的各種選項。然后,該 系統(tǒng)和方法在關(guān)閉層級優(yōu)化選項的情況下至少運行已知的DRC程序
一次。該系統(tǒng)和方法將預(yù)期結(jié)果與實際結(jié)果進行比較,并且差值表示
在處理DRC程序布局設(shè)計數(shù)據(jù)的層級的過程中的誤差。在實施例中,
程中的誤差。該功能是獨立的程序,但它能夠被實現(xiàn)為在開始運行大 部分DRC程序時執(zhí)行的層級操作的一部分。另外,層級優(yōu)化具有確 保無論引入的層級如何校驗結(jié)果均有效的目的。
圖1表示根據(jù)本發(fā)明的用于管理處理過程的示例性環(huán)境10。為 此,環(huán)境10包括能執(zhí)行在此所述的處理過程的計算機體系結(jié)構(gòu)12。 特別地,計算機體系結(jié)構(gòu)12包括由管理系統(tǒng)30組成的計算設(shè)備14, 管理系統(tǒng)30使計算設(shè)備14可操作用來根據(jù)本發(fā)明、例如根據(jù)在此所 述的處理過程將層級引入設(shè)計規(guī)則校驗程序(DRC)測試例中并且提 供測試例數(shù)據(jù)的自動旋轉(zhuǎn)。計算設(shè)備14包括處理器20、存儲器22A、 輸入/輸出(1/0)接口 24以及總線26。另外,計算設(shè)備14與外部I/0 設(shè)備/資源28和存儲系統(tǒng)22B進行通信。
如本領(lǐng)域中所公知的,通常,處理器20執(zhí)行存儲在存儲器22A 和/或存儲系統(tǒng)22B中的計算機程序代碼。當執(zhí)行計算機程序代碼時, 處理器20能從存儲器22A、存儲系統(tǒng)22B和/或I/O接口 24讀取來自 查找表的數(shù)據(jù)和/或?qū)⑵鋵懭氲酱鎯ζ?2A、存儲系統(tǒng)22B和/或I/O 接口 24中,其中該查找表是用于執(zhí)行將要在計算機上執(zhí)行的命令的基 礎(chǔ)??偩€26在計算設(shè)備14中的每一部件間提供通信鏈路。1/0設(shè)備 28能包括允許個人與計算設(shè)備14進行交互作用的任何設(shè)備,或允許 計算設(shè)備14使用任何類型的通信鏈路與一個或多個其他計算設(shè)備通 信的任何設(shè)備。
計算設(shè)備14能包括任何能夠執(zhí)行安裝在其上的計算機程序代碼 的通用計算制品(例如,個人計算機、服務(wù)器、手持設(shè)備等)。然而, 應(yīng)當理解,計算設(shè)備14僅表示可以執(zhí)行在此所述的處理過程的各種可 能的等效計算設(shè)備。為此,在實施例中,由計算設(shè)備14提供的功能可 以由包括通用和/或?qū)S糜布?或計算機程序代碼的任意組合的計算 制品實現(xiàn)。在每一實施例中,能分別使用標準的編程和工程設(shè)計技術(shù) 創(chuàng)建程序代碼和硬件。
在執(zhí)行在此所述的處理過程時,計算機體系結(jié)構(gòu)12中的一個或 多個計算設(shè)備能使用任何類型的通信鏈路與在計算機體系結(jié)構(gòu)12外 部的一個或多個其他計算設(shè)備進行通信。通信鏈路能包括有線和/ 或無線鏈路的任何組合; 一種或多種網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)、廣域網(wǎng)、 局域網(wǎng)、虛擬專用網(wǎng)等)的任何組合;和/或能夠利用傳輸技術(shù)和協(xié)議 的任何組合。
在實施例中,本發(fā)明提供了一種業(yè)務(wù)方法,其基于預(yù)訂、廣告、 和/或費用來執(zhí)行本發(fā)明的處理步驟。即,服務(wù)提供商、諸如方案集成 商能提供執(zhí)行在此所述的處理過程。在這種情況下,服務(wù)提供商能夠 創(chuàng)建、維護、支持用于為一個或多個消費者執(zhí)行本發(fā)明的處理步驟的 計算機體系結(jié)構(gòu)等。作為報答,服務(wù)提供商能依據(jù)預(yù)訂和/或費用協(xié)定 從消費者接收付款。
另外,在此所述的方法被用在集成電路芯片的制造過程中。所產(chǎn) 生的集成電路芯片能以棵晶(即,作為具有多個未封裝芯片的單個晶 片)的形式作為棵露的小片或者以封裝的形式由制造者分發(fā)。在后一 種情況下,芯片安裝在單芯片封裝(諸如塑料載體,其具有附著到母 板或其他更高級載體的引線)或多芯片封裝(諸如具有任一面或雙面 互連或掩埋的互連的陶瓷栽體)。在任一情況下,然后使芯片與其他 芯片、分立的電路元件、和/或作為(a)中間產(chǎn)品、諸如母板或(b) 最終產(chǎn)品的一部分的其他信號處理設(shè)備集成。最終產(chǎn)品能是包括集成 電路芯片的任何產(chǎn)品,具有從玩具和其他低端應(yīng)用到具有顯示器、鍵 盤或其他輸入設(shè)備以及中央處理器的高級計算機產(chǎn)品的范圍。
圖2表示本發(fā)明的實施例的流程圖。圖2 (以及在此所述的任何 其他流程圖)可以同等地表示本發(fā)明的高級框圖。圖2(以及在此所 述的任何其他流程圖)中的步驟在客戶機服務(wù)器關(guān)系中可以從服務(wù)器
實現(xiàn)和執(zhí)行,或者它們可以在向用戶工作站傳送操作信息以便創(chuàng)建以 上概述的導(dǎo)航的情況下在用戶工作站上運行。另外,本發(fā)明可以采用 完全硬件的實施例、完全軟件的實施例或者包含硬件和軟件元件兩者 的實施例的形式。
在實施例中,用軟件實現(xiàn)本發(fā)明,其中軟件包括但不局限于固件、 駐留軟件、微代碼等。此外,本發(fā)明能采用可從計算機可用或計算機 可讀介質(zhì)存取的計算機程序產(chǎn)品的形式,其中該計算機可用或計算機 可讀介質(zhì)提供了用于由計算機或任何指令執(zhí)行系統(tǒng)使用或與其結(jié)合使 用的程序代碼。為了該描述的目的,計算機可用或計算機可讀介質(zhì)能 是可包含、存儲、傳送、傳播或傳輸用于由指令執(zhí)行系統(tǒng)、系統(tǒng)或設(shè) 備(如上文詳細所述)使用或與其結(jié)合使用的程序的任何系統(tǒng)。介質(zhì) 能夠是電、磁、光、電磁、紅外或半導(dǎo)體系統(tǒng)(或系統(tǒng)或設(shè)備)或傳 播介質(zhì)。計算機可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可
移動計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、 剛性磁盤和光盤。當前光盤的例子包括緊密盤—只讀存儲器 (CD-ROM)、緊密盤-讀/寫(CD-R/W)和DVD。
返回參考圖2,在步驟200,本發(fā)明的系統(tǒng)確定要封裝的形狀。 在步驟205,封裝該形狀。可以使用基礎(chǔ)形狀創(chuàng)建層級中的后續(xù)級。 例如,在步驟205,可以使用先前的封裝數(shù)據(jù)創(chuàng)建層級的另一級"N"。 在步驟215,可以使用前一級的封裝數(shù)據(jù)等創(chuàng)建層級的另一級N+l。 在實施例中,能將設(shè)備的每一金屬層(例如掩膜或處理級)放入層級 的一級中。在另外的實施例中,本發(fā)明的系統(tǒng)和方法能將這些形狀分 成柵格的幾何子區(qū)域。然后,可以封裝子區(qū)域中的每一個,并將其挨 著相鄰封裝放置以便提供層級。
在步驟220,該系統(tǒng)和方法將結(jié)構(gòu)插入到DRC程序中,然后在 關(guān)閉層級優(yōu)化選項的情況下運行DRC至少一次。通過由程序選項指 定的各種方法,能夠插入層級。通過示例性的實施例,(i)將每一層 或每一級放入并行單元嵌套結(jié)構(gòu)中,(ii)將一層或一級放入并行嵌 套結(jié)構(gòu)中,或(iii)用于破壞形狀并將原始設(shè)計形狀的某些部分放入
不同嵌套結(jié)構(gòu)的各種選項。在步驟225,該系統(tǒng)和方法將預(yù)期結(jié)果與 實際結(jié)果進行比較,并且差值表示在處理布局設(shè)計數(shù)據(jù)中的層級的過 程中的誤差。
圖3表示根據(jù)本發(fā)明的實施例的層級的圖形表示。通過例子,單 一形狀可以表示芯片設(shè)計的某一位置上的存儲器單元實例。對于一個 位置,如參考數(shù)字300所表示的,封裝單一形狀。然后,例如,在不 同位置上,可以使用該同一形狀四次。并不是具有扁平結(jié)構(gòu),而是本 發(fā)明的系統(tǒng)和方法如參考數(shù)字310所表示的,通過在層級的第二級中 使用基礎(chǔ)的四個實例,在層級的另一層中使用基礎(chǔ)形狀。然后,例如, 如參考數(shù)字320所表示的,在層級的另一級中,生成位于芯片的另一 級(由參考數(shù)字310表示的級)上的封裝數(shù)據(jù)的四個實例。用這種方 式,并不是具有按指數(shù)規(guī)律的大的扁平結(jié)構(gòu),而是本發(fā)明的系統(tǒng)和方 法創(chuàng)建要與已知的DRC程序一起使用的層級結(jié)構(gòu)的三層(或更多層)。
通過使用該層級結(jié)構(gòu)類型,現(xiàn)在可以通過將基礎(chǔ)級中的變化自動 地傳播到剩余層級結(jié)構(gòu),改變例如任何后續(xù)級中的存儲器單元,如圖 4中所圖示的那樣。這與要求在每一實例中改變存儲器單元、即非常 耗時和麻煩的處理過程的傳統(tǒng)系統(tǒng)形成了對比。圖4還圖示地表示了 使用層級結(jié)構(gòu)中的前一級的基礎(chǔ)形狀來創(chuàng)建層級結(jié)構(gòu)中的后續(xù)級。
通過舉例,參考圖4,可以將基礎(chǔ)結(jié)構(gòu)"AB,,改變成"cB"。在該例 子中,本發(fā)明的系統(tǒng)和方法將通過在整個層級中傳播改變,來將"AB,, 的所有實例改變成"cB"。用這種方式,例如,對于每一實例,不必手 動地改變存儲器單元。
圖5是實現(xiàn)本發(fā)明的步驟的流程圖。在步驟500,將布局數(shù)據(jù)從 外部格式轉(zhuǎn)換成通用格式。在實施例中,通用格式可以是GDSII,其 對于本領(lǐng)域的技術(shù)人員而言是非常公知的。在步驟505,使數(shù)據(jù)變平。 在步驟510,擦除(scrub)數(shù)據(jù)以抓取(snap)問題,從而能旋轉(zhuǎn)結(jié) 果??梢詫崿F(xiàn)由Niagara Software創(chuàng)建的SnapTo45TM功能,以便執(zhí) 行步驟510的處理過程。在實施例中,旋轉(zhuǎn)可以被^L為對布局數(shù)據(jù)和/ 或測試數(shù)據(jù)的修改。
在步驟515,使用例如3d矩陣乘法來旋轉(zhuǎn)數(shù)據(jù)??梢酝ㄟ^繞x 和y軸(二維)、或繞三維空間旋轉(zhuǎn),來生成衍生的布局。在三維空 間中進行旋轉(zhuǎn)的情況下,可以將測試結(jié)果投影回二維空間。在實施例 中,旋轉(zhuǎn)可以是45度,但是本發(fā)明也可設(shè)想到其他旋轉(zhuǎn)角度。
在步驟520,將數(shù)據(jù)變換成輸入格式,并寫入到新文件。在步驟 525,可以將結(jié)果輸入到已知的DRC工具,諸如例如由CadenceTM提 供的Dracula和Assura、由Mentor 提供的CalibreTM、由SynopsysTM 提供的HerculesTMil GraphicsTM、由Magma Design AutomationTM 提供的QuartzTM。應(yīng)當理解,本發(fā)明的系統(tǒng)和方法也可以在專用系統(tǒng) 中實現(xiàn)。在步驟530,對于所生成的數(shù)據(jù)運行DRC程序,以進入 shapediff流程,例如,將預(yù)期結(jié)果與來自DRC程序的實際結(jié)果相比 較(步驟540)。在另外的實現(xiàn)方式中,可以將扁平測試數(shù)據(jù)與修改 的層級數(shù)據(jù)進行比較。應(yīng)當注意到,如果未正確地執(zhí)行從扁平測試數(shù) 據(jù)到層級數(shù)據(jù)的修改,則當測試DRC程序時它將會顯露出來。
在另外的實施例中,可以以許多不同的方式、諸如例如以其頂點、 構(gòu)造級、拓樸結(jié)構(gòu)(內(nèi)部和外部)等來描述形狀。在本發(fā)明中,可以 使用其中每一種描述,這是因為,在此處所述的層級方法中,在測試 例中不必維護形狀編碼變體。也就是說,可以使用由描述形狀幾何結(jié) 構(gòu)的語言支持的所有操作碼編碼語言,這主要是因為,通過僅僅必須 進行單個改變(其然后被傳播到該特定形狀的每一實例)而節(jié)省了資 源。因此,通過對于所有編碼運行測試例,現(xiàn)在可以揭露出設(shè)計規(guī)則 校驗器中的附加誤差。另外,現(xiàn)在可以改變測試例以強調(diào)DRC工具。
在用來描述掩膜數(shù)據(jù)的語言、諸如GL/1、 GDSII、 Oasis等中, 如本發(fā)明所設(shè)想的那樣,可以用許多不同的方式描述在掩膜上終止的 相同形狀。例如,在一方面中,本發(fā)明是自動生成用來構(gòu)建半導(dǎo)體掩 膜的形狀的編碼變體,以便用于測試DRC程序的能力的目的,從而 正確地將它們與用于制造的規(guī)則進行校驗。在圖6A中,將單一矩形 標記為A??梢悦枋鲈S多另外的、當被印刷在掩膜上時將與原始形狀 A完全相同的形狀,但對該形狀使用不同的編碼方法。對該例子而言,
如圖6B所示,編碼四個另外的形狀。更具體地說,將會期望DRC程 序以相同的方式測量形狀A(yù)-E中的每一個的幾何屬性。
在實施例中,使用二維的x、 y平面中的x、 y位置,以及通過基 于這些位置的邊緣結(jié)構(gòu),來描述形狀。這些位置通常被稱為形狀頂點, 并且對于每一編碼變體,在圖6C中,將它們表示為點。
在用于形狀A(yù)的編碼中,在l處的單個頂點表示矩形的左下角, 其與描述了在2處的矩形的其他角的位置的x和y維中的那一個位置 具有偏移。因此,用于A的編碼粗略地看上去象矩形X、 Y、 X-偏 移、Y-偏移。用于B、 C和D的編碼是路徑或線類型,并且均要求該 路徑的起點和終點。B使路徑的頂點正好處于形狀的頂和底部,然后 描述了以從l至2的路徑為中心的線3的寬度。形狀C使路徑的頂點 位于距離形狀的兩端達線3的寬度的1/2處。形狀D使頂點處于與C 相同的位置上,但是將平面中的形狀的點集描述為當在3處的正方形 從頂點1掃過頂點2時覆蓋的那些點。用于形狀B-D的這三個路徑狀 的編碼可以被表示為
PATH一WITHOUT一ENDSXl, Yl, X2, Y2,寬度 PATH_WITH—ENDSX1, Yl, X2, Y2,寬度 PATH_SWEEP—SQUARE XI, Yl, X2, Y2,寬度 最后,通過4個頂點描述形狀E,其中被標記為l、 2、 3和4的 4個頂點具有描述了當被連接時限定用于該形狀的點集的邊緣。用這 種方式編碼的形狀通常被稱為多邊形,并且用于該形狀的編碼可以被 表示為
POLYGON XI, Yl, XI, Y2, X2, Y2, X2, Yl 在此提供的例子中,假定所描述的邊緣是從l至2;從2至3; 從3至4;從4至1,如圖6C所示的那樣。在該例子中,當形狀編碼 中的任何一個如圖6D所示時,本發(fā)明的處理過程將它們自動地映射 到其他編碼方法,以便用于測試DRC程序的能力從而正確地校驗這 些編碼變體的目的。在內(nèi)部上來說,不必維護完整的從一種編碼方法 到另一種編碼方法的映射集,但是相反地,在實施例中,選擇基礎(chǔ)編
碼,如圖6E所示,如A所示,并且它以及確保所有其他編碼B、 C、 D和E能被映射到這個編碼。
在例子中,假定DRC程序測試數(shù)據(jù)正在校驗通過形狀描述方法 D編碼的一個測試例和形狀的寬度。本發(fā)明的系統(tǒng)和處理過程使用在 此所述的映射,以便首先將編碼D映射到基礎(chǔ)編碼A,以及創(chuàng)建這一 形狀,并以距離原始形狀D的參數(shù)化偏移,將其放在所生成的數(shù)據(jù)中, 如圖6F所示。
一旦系統(tǒng)和處理過程識別了基礎(chǔ)編碼A,除已經(jīng)被標記為現(xiàn)有的 那些編碼外,該系統(tǒng)和處理過程就會創(chuàng)建用于在映射表中維護的相同 形狀的所有其他編碼。在該情況下,不需要生成原始D形狀。如圖6G 所示,生成用于相同形狀的每一替換編碼,并且每一形狀編碼偏離所 生成的先前一個編碼,以便不會彼此重疊。
在實施例中,如果應(yīng)當首先已知編碼A,則本發(fā)明的系統(tǒng)和處理 過程將把其識別為在程序表中這樣標記的基礎(chǔ)編碼,并且所有編碼B、 C、 D和E將生成與原始A的偏移。不管首先是什么編碼,都在測試 前生成所有替代方式,而不必在測試例數(shù)據(jù)中維護這些編碼。應(yīng)當注 意到,該例子是簡化的,以便表示該方法和程序的結(jié)構(gòu)。在應(yīng)用中, 在工業(yè)中正被用來描述相同點集的語言中可以有其他編碼方法。另外, 本發(fā)明的系統(tǒng)和處理過程能被擴展到用于數(shù)據(jù)分組、掩膜層、單元或 結(jié)構(gòu)名等的編碼。
現(xiàn)在應(yīng)當理解,本發(fā)明被配置成對較簡單的測試數(shù)據(jù)進行操作以 創(chuàng)建更復(fù)雜和完整的測試數(shù)據(jù),作為一種具有用于設(shè)計規(guī)則校驗程序 的更好測試覆蓋范圍的方法。在實施例中,三個示例性操作領(lǐng)域包括
1. 為了強調(diào)DRC程序而進行的層級的插入/修改;
2. 借助于投影回二維空間上的2和3維空間中的旋轉(zhuǎn),從較 簡單的數(shù)據(jù)中創(chuàng)建測試例變體;以及
3. 為了再次強調(diào)DRC程序,從較簡單的主流格式創(chuàng)建幾何 語言編碼變體。
如本發(fā)明所設(shè)想的那樣,還存在修改現(xiàn)有測試數(shù)據(jù)的其他方法。 例如,通常會是這樣的情況,因為在制造過程中正在使用的加工是相 同的,所以一種技術(shù)對于幾個掩膜層會使用相同的空間和寬度。由此, 可以設(shè)想到的是,對一個掩膜層,創(chuàng)建僅僅一個空間和寬度測試例集, 然后,通過在設(shè)計中使用相同空間和寬度"規(guī)則,,,將這些測試例自動
地復(fù)制到其他掩膜層。在shapediff方法和其他DRC測試方法中,存 在有嵌入測試例中的許多信息,以指導(dǎo)該shapediff處理過程,即,例 如在DRC結(jié)果中允許有多大幾何容差??梢詮妮^簡單的所維護的測 試數(shù)據(jù)來修改該信息,以便更好地強調(diào)和測試DRC程序。
盡管在示例性實施例中描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將 會意識到,可以通過修改并且在所附權(quán)利要求書的精神和范圍內(nèi)實施 本發(fā)明。
權(quán)利要求
1.一種驗證設(shè)計規(guī)則校驗程序的方法,包括創(chuàng)建層級結(jié)構(gòu),以便使該層級結(jié)構(gòu)的每一層對應(yīng)于某一形狀的子區(qū)域或設(shè)備的一個處理層;將所創(chuàng)建的層級結(jié)構(gòu)插入DRC程序中;在關(guān)閉層級優(yōu)化選項的情況下至少運行DRC程序一次;以及將預(yù)期結(jié)果與實際結(jié)果進行比較,其中,預(yù)期結(jié)果和實際結(jié)果間的差值表示在DRC程序的操作過程中的誤差。
2. 如權(quán)利要求1所述的方法,其中,所述插入步驟包括下述之 一(i)將層級結(jié)構(gòu)的每一層或每一級放在并行單元嵌套結(jié)構(gòu)中;(ii) 將層級結(jié)構(gòu)的一層或一級放在并行嵌套結(jié)構(gòu)中;以及(iii)破壞所述 形狀,并將原始設(shè)計形狀的某些部分放在不同的嵌套結(jié)構(gòu)中。
3. 如權(quán)利要求1所述的方法,其中,所述比較步驟作為獨立程 序執(zhí)行。
4. 如權(quán)利要求1所述的方法,其中,所述比較步驟被實現(xiàn)為在 開始運行DRC程序時執(zhí)行的層級操作的一部分。
5. 如權(quán)利要求l所述的方法,其中,權(quán)利要求l中的步驟釆用 完全硬件的單元、完全軟件的單元或者包括硬件和軟件單元二者的形 式。
6. 如權(quán)利要求1所述的方法,其中,封裝所述子區(qū)域,并將其 緊鄰所述形狀的另 一子區(qū)域的相鄰封裝放置,以便提供所述層級結(jié)構(gòu)。
7. 如權(quán)利要求1所述的方法,其中,使用層級結(jié)構(gòu)中的前一級 的基礎(chǔ)形狀,來創(chuàng)建層級結(jié)構(gòu)中的后續(xù)級。
8. 如權(quán)利要求7所述的方法,進一步包括將基礎(chǔ)形狀中的變 化傳播到層級結(jié)構(gòu)中的后續(xù)單元。
9. 如權(quán)利要求1所述的方法,進一步包括使布局數(shù)據(jù)變平, 以及擦除布局數(shù)據(jù)以便抓取問題。
10. 如權(quán)利要求9所述的方法,進一步包括通過3d矩陣乘法 旋轉(zhuǎn)布局數(shù)據(jù)。
11. 如權(quán)利要求l所述的方法,進一步包括在三維空間中任意 地旋轉(zhuǎn)布局設(shè)計數(shù)據(jù)。
12. 如權(quán)利要求ll所述的方法,其中,使布局設(shè)計數(shù)據(jù)旋轉(zhuǎn)45度。
13. 如權(quán)利要求l所述的方法,進一步包括當運行DRC程序 時,使用所述形狀的所有描述。
14. 如權(quán)利要求13所述的方法,其中,在測試例中不維護所述 形狀的描述。
15. —種驗證設(shè)計規(guī)則校驗程序的方法,包括 提供DRC程序;提供第一測試例;通過將第一測試例放在層級結(jié)構(gòu)中,來修改該第一測試例,其中, 從某一形狀的子區(qū)域或設(shè)計的單個層構(gòu)建層級結(jié)構(gòu)的每一層;將所修改的第一測試例用作輸入,來執(zhí)行DRC程序;以及 將DRC程序的輸出結(jié)果與預(yù)期結(jié)果進行比較,以便確定當對于 層級測試數(shù)據(jù)運行DRC程序時DRC程序的有效性。
16. 如權(quán)利要求15所述的方法,其中,所述修改步驟包括將層級插入布局^:計中。
17. 如權(quán)利要求16所述的方法,其中,所述修改步驟包括旋轉(zhuǎn) 布局設(shè)計的定向。
18. —種驗證設(shè)計規(guī)則校驗程序的系統(tǒng),所述系統(tǒng)包括在機器上 運行的計算機代碼,并且該計算機代碼被配置成創(chuàng)建布局設(shè)計的層級結(jié)構(gòu); 將布局設(shè)計的層級結(jié)構(gòu)插入DRC程序中; 繞x和y軸旋轉(zhuǎn)布局數(shù)據(jù),以便測試相同形狀的其他定向; 在關(guān)閉層級優(yōu)化選項的情況下運行DRC程序至少一次;以及 將預(yù)期結(jié)果與實際結(jié)果進行比較,其中,預(yù)期結(jié)果和實際結(jié)果間的差值表示在處理DRC程序中的層級的過程中的誤差。
19. 如權(quán)利要求18所述的系統(tǒng),其中,(i)層級結(jié)構(gòu)的每一層 或每一級被放在并行單元嵌套結(jié)構(gòu)中;(ii)層級結(jié)構(gòu)的一層或一級 被放在并行嵌套結(jié)構(gòu)中;以及(iii)用于破壞所述形狀和將原始設(shè)計 形狀的某些部分放在不同嵌套結(jié)構(gòu)中的選項。
20. 如權(quán)利要求18所述的系統(tǒng),其中,層級結(jié)構(gòu)中的后續(xù)級使 用層級結(jié)構(gòu)中前一級的基礎(chǔ)形狀,并且對層級結(jié)構(gòu)的基礎(chǔ)單元中的變 化的傳播改變層級結(jié)構(gòu)中的后續(xù)單元。
全文摘要
公開了用于驗證設(shè)計規(guī)則校驗程序的方法和系統(tǒng)。該方法和系統(tǒng)包括創(chuàng)建層級結(jié)構(gòu),以便使該層級結(jié)構(gòu)的每一層對應(yīng)于某一形狀的子區(qū)域或設(shè)備的一個處理層。該方法和系統(tǒng)進一步包括將所創(chuàng)建的層級結(jié)構(gòu)插入DRC程序中,并且在關(guān)閉層級優(yōu)化選項的情況下至少運行DRC程序一次。該方法和系統(tǒng)將預(yù)期結(jié)果與實際結(jié)果進行比較。預(yù)期結(jié)果和實際結(jié)果間的差值表示DRC程序中的誤差。
文檔編號G06F17/50GK101169803SQ20071016740
公開日2008年4月30日 申請日期2007年10月23日 優(yōu)先權(quán)日2006年10月24日
發(fā)明者威廉·F.·波柯尼 申請人:國際商業(yè)機器公司