版圖驗證測試向量的偽錯自動構(gòu)造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及集成電路輔助設(shè)計軟件工具中版圖驗證領(lǐng)域。
【背景技術(shù)】
[0002] 每款集成電路芯片在批量制造前,都需要對版圖進(jìn)行設(shè)計規(guī)則檢查(Design Rule Check),只有通過設(shè)計規(guī)則的驗證才能保證流片的成功,這一步叫做版圖驗證(Layout Verification)。版圖驗證工具,例如Calibre工具,會按一定的算法對版圖進(jìn)行幾何約束檢 查,具有通用性,其一個輸入是設(shè)計規(guī)則定義文件(DRC Rule File),它描述了該工藝下具 體的幾何約束。不同的集成電路制造工藝會有不同的設(shè)計規(guī)則定義文件,隨著新工藝的不 斷研制,工藝設(shè)計人員也需要開發(fā)相應(yīng)的設(shè)計規(guī)則文件。
[0003] 設(shè)計規(guī)則文件類似于軟件編程語言,例如將一個圖形與另一個圖形進(jìn)行"或"運算 再計算與其它圖形的間距。所以,其開發(fā)過程與開發(fā)一個軟件產(chǎn)品類似,都需要一個驗證測 試過程,即,對于正確的版圖,設(shè)計規(guī)則檢查應(yīng)該通過;反之,對于錯誤的版圖,設(shè)計規(guī)則檢 查應(yīng)該報錯。測試規(guī)則檢查應(yīng)該通過的用例叫正例,測試規(guī)則檢查不通過的用例叫反例,正 例和反例共同組成了版圖驗證測試向量(Test Pattern Vector)。
[0004] 這里的問題是,測試向量的數(shù)量很大,特別是要測試偽錯(False Error)的情況, 例如,對于寬金屬的間距檢查,如果金屬的寬度達(dá)不到寬金屬的標(biāo)準(zhǔn),即使間距違反最小間 距,也是允許的。再例如,對于高壓區(qū)內(nèi)有源區(qū)間距的檢查,如果兩個有源區(qū)之一不在高壓 區(qū)內(nèi),即不在指定的標(biāo)記層內(nèi),即使違反間距值也不應(yīng)報錯。上述兩種情況,本應(yīng)是正例,但 如果設(shè)計規(guī)則檢查報錯了,說明設(shè)計規(guī)則文件編寫有問題。這也是偽錯測例的含義。針對 一條設(shè)計規(guī)則,偽錯條件可能不止一個,這種情況下,偽錯測例會很多,如果完全靠手工繪 制版圖,這工作量巨大,并且在處理多個條件的組合時也很容易出錯。
[0005] 本發(fā)明提出了一種版圖驗證測試向量的偽錯自動構(gòu)造方法,通過定義偽錯約束, 使用軟件自動產(chǎn)生完整的測試向量。方法中只需要輸入一個拓?fù)浣Y(jié)構(gòu)正確的版圖,就可以 自動構(gòu)造出各種偽錯組合的測試用例,大大降低了人工成本。
[0006] 本發(fā)明提出的自動構(gòu)造方法,已經(jīng)通過軟件程序?qū)崿F(xiàn),經(jīng)過實踐,可以將原來1個 人月的測試向量開發(fā)任務(wù)縮短到3人天,大大縮短了測試周期。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明要解決的技術(shù)問題是自動構(gòu)造版圖測試向量,特別是偽錯測試向量。
[0008] 以附圖1為例,要測試的物理約束規(guī)則是Ml層和M2層的間距要大于等于0. 8um, 同時要求Ml層的寬度要大于等于lum,M2層的寬度要大于等于2um(寬金屬檢查規(guī)則),并 且Ml層和M2層要同時被AA層和DNW層所包含,但不能處于PW層和Μ頂層所在的區(qū)域內(nèi) (非高壓區(qū))。據(jù)此,對應(yīng)的測試向量有:
[0009] 1)正例:包含Ml層,M2層,ΑΑ層和DNW層。DNW層包含ΑΑ層,Ml層和M2層位于 AA層內(nèi)。Ml的高度是lum,M2的高度是1. 5um。Ml和M2的間距是最小值0· 8um。
[0010] 2)反例:包含Ml層,M2層,AA層和DNW層。DNW層包含AA層,Ml層和M2層位于 AA層內(nèi)。Ml的高度是lum,M2的高度是1. 5um。Ml和M2的間距是0. 799um,比最小值0. 8um 剛好小一個步長0.001。
[0011] 3)偽錯1(M1高度不滿足):包含Ml層,M2層,AA層和DNW層。DNW層包含AA層, Ml層和M2層位于AA層內(nèi)。Ml的高度是0· 999um,比最小值剛好小0· OOlum,M2的高度是 1. 5um。Ml和M2的間距是0. 799um,比最小值0. 8um剛好小一個步長0. 001。
[0012] 4)偽錯2(12高度不滿足):包含11層,12層,44層和0麗層。0麗層包含4六層』1 層和M2層位于AA層內(nèi)。Ml的高度是lum,M2的高度是1. 499um,比最小值剛好小0· OOlum。 Ml和M2的間距是0· 799um,比最小值0· 8um剛好小一個步長0· 001。
[0013] 5)偽錯3 (不存在AA):包含Ml層,M2層,DNW層。Ml層和M2層位于DNW層內(nèi)。 Ml的高度是lum,M2的高度是1. 5um。Ml和M2的間距是最小值0· 799um,比最小值0· 8um 剛好小一個步長0.001。
[0014] 6)偽錯4 (不存在DNW):包含Ml層,M2層,AA層。Ml層和M2層位于AA層內(nèi)。Ml 的高度是lum,M2的高度是1. 5um。Ml和M2的間距是最小值0· 799um,比最小值0· 8um剛 好小一個步長〇. 〇〇1。
[0015] 7)偽錯5(存在PW):包含Ml層,M2層,AA層和DNW層,以及PW層。DNW層包含AA 層,Ml層和M2層位于AA層內(nèi),PW是最外層。Ml的高度是lum,M2的高度是1. 5um。Ml和 M2的間距是0· 799um,比最小值0· 8um剛好小一個步長0· 001。
[0016] 8)偽錯6(存在Μ頂):包含Ml層,M2層,AA層和DNW層,以及Μ頂層。DNW層包含 ΑΑ層,Ml層和M2層彳λα于ΑΑ層內(nèi),ΜΙΜ是取外層。Ml的聞度是lum,M2的!1?度是1.5um。Ml 和M2的間距是0· 799um,比最小值0· 8um剛好小一個步長0· 001。
[0017] 為了自動構(gòu)造上述測試向量,首先需要給出一個包含全部圖形層的版圖單元(采 用⑶S格式文件),即要包括Ml層,M2層,AA層,DNW層,PW層和Μ頂層。它們的具體大小 尺寸不用關(guān)心,但保證它們間的拓?fù)浣Y(jié)構(gòu)是正確。這個模板版圖是手工完成的。
[0018] 再者,要定義好約束條件,包括檢測條件和偽錯條件。這是個文本文件。針對附圖 1的例子,約束條件有:
[0019]
[0020] ⑶S文件和約束定義文件是偽錯構(gòu)造和測試向量生成引擎的輸入。偽錯構(gòu)造和測 試向量生成引擎首先讀入版圖GDS文件,構(gòu)造各圖形層間的拓?fù)浣Y(jié)構(gòu)關(guān)系。方法是采用基 于邊的掃描線算法,分別建立X方向上和Y方向上各邊的關(guān)系。注意這里只需要考慮面對邊 的關(guān)系,即只有兩條邊在垂直方向上的投影有交叉時才建立它們間的關(guān)系。這樣,大致有3 種邊到邊的關(guān)系,分別是寬度,間距,和包含,如附圖3所示。兩邊距離的缺省就使用GDS文 件中畫出的距離值,除非約束文件中有明確定義,例如上面給出的Ml和M2的兩個FIX值, 即Ml在X方向的寬度要為3um,M2在X方向的寬度要為4um。掃描后建立的關(guān)系集合具有 正交性,即沒有多余和重復(fù)的關(guān)系,仍兩條邊的距離都可以通過該關(guān)系集合計算出來。
[0021] 接下來,偽錯構(gòu)造和測試向量生成引擎根據(jù)約束文件的定義來構(gòu)造測試向量:
[0022] 1)對于正例,調(diào)整CHECK指定的間距到最小值(或最大值),其它FALSE_ERR0R的 間距到最小值(或最大值),保留EXIST圖形層,移除ΝΟΝ-EXIST的圖形層,并保持其它圖形 層對邊間距離不變。
[0023] 2)對于反例,調(diào)整CHECK指定的間距到比最小值小一個步長(或比最大值大一個 步長),其它FALSE_ERR0R的間距到最小值(或最大值),保留EXIST圖形層,移除N0N-EXIST 的圖形層,并保持其它圖形層對邊間距離不變。
[0024] 3)對于偽錯測例,首先調(diào)整CHECK指定的間距到比最小值小一個步長(或比最大 值大一個步長),即讓CHECK值違反約束,然后按4)或5)處理。
[0025] 4)對于違反值的偽錯,調(diào)整FALSE_ERR0R的距離值比規(guī)定的最小值小一個步長 (或比最大值大一個步長),其它與正例相同;
[0026] 5)對于EXIST圖層偽錯,移除該圖形,其它與正例相同;
[0027] 6)對于ΝΟΝ-EXIST圖層偽錯,增加該圖形,其它與正例相同。
[0028] 測試向量生成引擎具有在保持拓?fù)浣Y(jié)構(gòu)不變的情況下調(diào)整邊間距離的能力。它對 約束文件中定義的偽錯條件進(jìn)行遍歷和組合,最終產(chǎn)生一組版圖測試向量(GDS格式)。
[0029] 最后,針對測試向量中的每一測試單元,運行設(shè)計規(guī)則驗證程序(以Sysnopsys公 司的Calibre工具為代表),對運行結(jié)果進(jìn)行如下分析:
[0030] 1)對于正例和偽錯用例,設(shè)計規(guī)則驗證應(yīng)該通過,否則說明代測試的規(guī)則文件書 寫不正確,即將正確的情況認(rèn)為是錯誤的;
[0031] 2)對于反例,設(shè)計規(guī)則驗證應(yīng)該報錯,否則也說明代測試的規(guī)則文件書寫不正確, 即沒有檢查出應(yīng)有的錯誤情況。
[0032] 本發(fā)明方法總結(jié)如附圖2。
【附圖說明】
[0033] 圖1 :示例了一個典型的含偽錯條件的測試用例。要測試的物理約束規(guī)則是Ml層 和M2層的間距要大于等于0. 8um,同時要求Ml層的寬度要大于等于lum,M2層的寬度要大 于等于2um(寬金屬檢查規(guī)則),并且Ml層和M2層要同時被AA層和DNW層所包含,但不能 處于PW層和MIM層所在的區(qū)域內(nèi)(非高壓區(qū))。
[0034] 圖2 :示例了版圖驗證測試向量的偽錯自動構(gòu)造方法的流程。
[0035] 圖3 :示例了拓?fù)潢P(guān)系中邊對邊的3種關(guān)系,包括寬度、間距、和包含。
【具體實施方式】:
[0036] 參見附圖2 :
[0037] 第一步:手工輸入一個⑶S版圖單元,包含完整的圖形層,各圖形層間符合正確的 拓?fù)浣Y(jié)構(gòu)關(guān)系,但不要求圖形的尺寸正確。
[0038] 第二步:手工編寫約束文件,定義測試條件及偽錯條件。偽錯條件包括兩種,一是 距離大小值,二是圖層是否存在。
[0039] 第三步:由偽錯構(gòu)造及測試向量生成程序自動根據(jù)輸入⑶S文件和約束文件構(gòu)造 正例、反例、和偽錯例的版圖測試向量。
[0040] 第四步:對每一測試用例及代測規(guī)則文件調(diào)用版圖設(shè)計規(guī)則驗證程序進(jìn)行測試。
[0041] 第五步:分析測試結(jié)果,正例和偽錯例應(yīng)全部通過,反例則應(yīng)全部報錯。
[0042] 上述第三步到第五步已由計算機(jī)軟件程序?qū)崿F(xiàn)自動化構(gòu)造過程。
【主權(quán)項】
1. 一種版圖驗證測試向量的偽錯自動構(gòu)造方法,其輸入是拓?fù)浣Y(jié)構(gòu)正確的版圖單元和 定義偽錯約束的文件。偽錯構(gòu)造程序使用掃描線算法從版圖中提取邊對邊的拓?fù)潢P(guān)系,并 遍歷偽錯約束,調(diào)整邊對邊的距離值,輸出不同條件下包含正例、反例、及偽錯用例的完整 測試向量。本方法避免了完全依靠手工的測試向量開發(fā)過程。 具體步驟如下: 第一步:手工輸入一個包含完整的圖形層⑶S版圖單元。 第二步:手工編寫約束文件,定義測試條件及偽錯條件。 第三步:由測試向量生成程序自動構(gòu)造正例、反例、和偽錯例的版圖測試向量。 第四步:對每一測試用例及代測規(guī)則文件調(diào)用版圖設(shè)計規(guī)則驗證程序進(jìn)行測試。 第五步:分析測試結(jié)果,正例和偽錯例應(yīng)全部通過,反例則應(yīng)全部報錯。
【專利摘要】本發(fā)明涉及集成電路輔助設(shè)計軟件工具中版圖驗證領(lǐng)域。在開發(fā)集成電路版圖驗證規(guī)則的過程中,測試向量的數(shù)量巨大,特別是對于偽錯。例如,對于寬金屬的間距檢查,如果金屬的寬度達(dá)不到寬金屬的標(biāo)準(zhǔn),即使間距違反最小間距,也是允許的。針對一條設(shè)計規(guī)則,偽錯條件可能不止一個,這種情況下,偽錯測例會很多,如果完全靠手工繪制版圖,這工作量巨大,并且在處理組合條件時也很容易出錯。本發(fā)明提出了版圖驗證測試向量的偽錯自動構(gòu)造方法,通過定義偽錯約束,使用軟件自動產(chǎn)生完整的測試向量。方法中只需要輸入一個拓?fù)浣Y(jié)構(gòu)正確的版圖,就可以自動構(gòu)造出各種偽錯組合的測試用例,大大降低了人工成本。
【IPC分類】G06F17/50
【公開號】CN105653745
【申請?zhí)枴?br>【發(fā)明人】王勇, 張萍, 侯勁松, 李寧
【申請人】天津藍(lán)海微科技有限公司
【公開日】2016年6月8日
【申請日】2014年11月14日