專利名稱:集成電路診斷方法、系統以及程序產品的制作方法
技術領域:
本發明總體上涉及診斷集成電路。
背景技術:
通常,希望將集成電路反向工程變為網表和/或圖表,以便恢復失去的網表或圖表,確定是否該集成電路侵犯知識產權,或分析集成電路的性能或故障。圖表是電路的直觀表示,而網表是電路的所有元件和各個管腳連接的文本表示。集成電路的幾個性能使反向工程工序是困難的和耗時的。例如,集成電路上的各個部件的物理位置可能與圖表中將設置部件的位置無關。此外,常常在接合在一起的幾個層中實現集成電路,以建立想要的連接。
最近,提出了幾種解決辦法以協助其它冗長的反向工程工序。一般,采用掃描電子顯微鏡(SEM)或類似的成像裝置檢查集成電路的層。附加的工具允許圖像上的數據交迭,以辨別部件特征和布線互連。另外,工具可以將圖像轉變為布圖。
但是,繼續反向工程工序以產生網表和/或圖表,繼續需要專業化的技術和保持時間消耗。結果,對于集成電路診斷系統、方法和程序產品存在一個需要在降低由集成電路產生網表和/或圖表所需的技術含量的同時,增加所得網表和/或圖表的準確度。
發明內容
本發明提供了一種用于診斷集成電路的方法、系統和程序產品。具體,本發明為集成電路的每個相關電路層獲取一個或多個圖像。基于該圖像,產生部件網表。此外,通過對部件網表應用分級組合規則產生邏輯網表。部件網表或邏輯網表可以與基準網表相比較,以診斷集成電路。本發明還可以基于部件網表或邏輯網表產生圖表,其中根據由網表確定的端口、電源、和/或部件管腳連接信息布置部件。此外,可以以有選擇地顯示布線連接的方式顯示圖表,以協助用戶智能地布置電路部件。
本發明的示例性方面是設計用于解決在此描述的問題以及由技術人員發現的、未論述的其它問題。
通過下面結合附圖的本發明的各個實施例的詳細描述將更容易理解本發明的這些及其它特征,其中圖1描繪了用于實現本發明的各個實施例的示例性系統。
圖2描繪了根據本發明的一個實施例的方法。
圖3描繪了根據本發明的另一個實施例產生網表的示例性方法。
圖4描繪了根據本發明的又一個實施例產生網表的可選方法。
圖5描繪了示例性圖表顯示器。
注意,本發明的附圖不按比例。該附圖僅僅是用來描繪發明的典型實施例,因此不應該被認為是限制本發明的范圍。在附圖中,相同的標號表示附圖之間的相同部分。
具體實施例方式
僅僅為了方便起見,詳細的描述包括由標題表示的章節,包括I.示例性系統;II.方法概述;III.獲取圖像;IV.部件網表產生;V.邏輯網表產生;VI.網表應用;以及VII.選擇性方案。
本發明提供了診斷集成電路(“IC”)的系統、程序產品以及方法。本發明基于集成電路的每個電路層的一個或多個圖像產生“部件網表”和/或“邏輯網表”。“部件網表”包括在集成電路中使用的電路部件(即,晶體管、電容器、電阻器、端口、電源干線(rail)、電阻器、二極管、芯片等)及它們的互連。“邏輯網表”包括其中用一個或多個符號代替部件網表中的電路部件的一個或多個集合的列表,所述一個或多個符號表示由電路部件的每個集合實現的功能(即,與門,與非運算、加法器等)。
I.示例性系統圖1描繪了根據本發明的一個實施例的集成電路診斷系統12。系統12可以包括中央處理單元(CPU)14、存儲器16、輸入/輸出(I/O)接口18、總線20以及可選的數據庫24。如圖所示,用戶30通過I/O接口18與系統12互相作用。系統12可以是任意類型的通用/專用計算機化系統(例如,服務器、臺式計算機等)。用戶30可以是單獨使用系統12,或可以包括可用于例如通過網絡訪問系統12的任意類型的計算機化系統(例如,移動電話、手持式計算機、個人數字助手、便攜式(膝上型)計算機、臺式計算機、工作站、大型計算機等)。在后一種情況下,用戶30和系統12之間的通信可以是任意現在公知的或之后研發的、用于這種目的的機構,例如,一個或多個直接硬件連接(例如,串行端口),或通過客戶機-服務器(或服務器-服務器)環境中的可尋址連接,其可以利用有線和/或無線傳輸方法的任意組合。在客戶機-服務器環境中,服務器和客戶機可以通過因特網、廣域網(WAN)、局域網(LAN)、虛擬專用網絡(VPN)或其它專用網連接。服務器和客戶機可以利用常規網絡連接,如令牌環、以太網、WiFi或其它常規通信標準。在客戶機通過因特網與服務器通信的情況下,可以通過常規基于TCP/IP套接字的協議提供連接。在此情況下,客戶機將利用因特網服務供應商與服務器建立連接。
系統12可以包括利用標準操作系統軟件的任意通用或專用系統,該軟件被設計為驅動特定硬件的運行并與其它系統部件和I/O控制器相兼容。CPU 14可以包括一個處理單元或能夠并行運行的多個處理單元,或分布在一個或多個位置例如客戶機和服務器上的一個或多個處理單元上。存儲器16可以包括任意公知類型的數據存儲和/或傳輸介質,包括磁介質、光介質、隨機存取存儲器(RAM)、只讀存儲器(ROM)、數據高速緩沖存儲器、數據目標等。而且,類似于CPU 14,存儲器16可以駐留在一個物理位置,包括一種或多種類型的數據存儲,或以各種形式分布在多個物理系統上。
I/O接口18可以包括用于與用戶30交換信息的任意系統,包括例如,I/O端口(串行、并行、以太網、鍵盤、鼠標等)、通用串行總線(USB)端口、擴展總線、集成驅動電子設備(IDE)、網絡系統、調制解調器、揚聲器、監視器(陰極射線管(CRT)、液晶顯示器(LCD)等)、手持式裝置、鍵盤、鼠標、語音識別系統、語音輸出系統、掃描儀、打印機、傳真、傳呼機、存儲裝置等。總線20在計算機系統12中的每個部件之間提供通信鏈接,同樣可以包括任意公知類型的傳輸鏈接,包括電、光、無線等。此外,盡管未示出,附加的部件如高速緩沖存儲器、通信系統、系統軟件等,可以被引入系統12。
數據庫24可以為如下所述進行本發明所必需的信息提供存儲。因而,數據庫24可以包括一個或多個存儲裝置,如磁盤驅動器或光盤驅動器。此外,數據庫24可以包括分布在例如LAN、WAN或存儲區網絡(SAN)(未示出)上的數據。數據庫24也可以以本領域的普通技術人員可以解釋它的方式配置,以包括一個或多個存儲裝置。
系統12包括存儲在存儲器16中作為計算機程序代碼的集成電路診斷程序32。集成電路診斷程序32執行下面進一步論述的各種方法。獲取系統34獲取集成電路的一個或多個圖像以及可以為每個圖像指定坐標信息。部件系統36基于一個或多個獲取的圖像產生部件網表。邏輯系統38基于部件網表產生邏輯網表(下面進一步描述)。集成電路診斷程序32也被示出,包括將邏輯和/或部件網表與由基準電路產生的一個或多個基準邏輯和/或部件網表(共同地稱為“基準網表”)相比較的比較系統40,基于邏輯和/或部件網表產生圖表的圖表系統42,以及有選擇地顯示圖表中的布線信息的顯示系統44。
應當理解集成電路診斷程序32中所示的各種系統僅僅用于示例性目的。因此,一個或多個系統可以被結合為一個系統或不被執行。而且,一個或多個系統可以被執行為可以由集成電路診斷程序32分開執行的獨特程序。
II.方法概述圖2描繪了根據本發明的一個實施例診斷集成電路的示例性方法。集成電路包括至少一層,并通常包括不止一層,在執行診斷時這些層是相關的。在步驟S1,當不止一個電路層相關時,使用現在公知或之后研發的任意技術分層(即,露出)集成電路的每個相關電路層。在步驟S2,如下面更詳細地論述,通過獲取系統34(圖1)獲取每個電路層的一個或多個圖像。在步驟S3,由圖像產生部件網表。本發明提供兩種選擇性方案用于使用下面更詳細地論述的部件系統36(圖1)由圖像產生部件網表。使用一種選擇性方案,圖像被轉變為布圖,由該布圖提取用于部件網表的信息。另外,可以直接從圖像的檢查獲得用于部件網表的信息。在步驟S4,通過邏輯系統38(圖1),基于部件網表產生邏輯網表。通過對部件網表應用分級組合規則產生邏輯網表,以用它們實現的一個或多個邏輯功能代替一個或多個電路元件。
如上面所提到,集成電路可以包括組成一個或多個輸入和/或輸出“端口”(信號)的電路元件。“端口”是為附加電路(即,連接到電路的非分析部分的焊盤、布線等)提供接口的任意類型的電路。集成電路也常常包括連接到內部電源(Vdd)、地線(Vss)或其它電源的一個或多個電路元件。本發明提供包括端口和電源信息的網表。
部件網表或邏輯網表可用于各種應用。例如,可以使用比較系統40(圖1)將邏輯網表或元件網表與基于基準電路的基準網表相比較。邏輯網表可以與基于基準電路的其它邏輯網表(即,“基準邏輯網表”)相比較。類似地,由集成電路產生的部件網表可以與用于產生集成電路的部件網表(即,“基準部件網表”)相比較,以確定是否在制造中出現誤差。通過顯示系統44(圖1)可以確定并顯示兩個電路(網表)之間的異同。此外,可以使用圖表系統42產生圖表(圖1),其中基于端口信息、電源信息和/或部件管腳連接信息來設置電路部件。例如,輸入端口電路元件可以設置在圖表的左邊,輸出端電路元件可以設置在右邊,Vdd可以設置在頂部以及Vss可以設置在底部。可以使用顯示系統44(圖1)有選擇地顯示圖表中的布線,以協助用戶進一步設置電路部件。
III.獲取圖像根據步驟S2,每個相關電路層的一個或多個圖像被獲取并可以被存儲在存儲器例如數據庫24(圖1)中。應當理解每個層需要的圖像數目取決于需要的電路分辯率、電路層的尺寸等。可以使用用于獲取圖像的任意裝置,包括例如,掃描電子顯微鏡(SEM)、專用電子束工具(如電子束感應電流(EBIC)技術)、光學顯微術、數字成像等。當對于每個電路層使用多個圖像時,可以使用坐標系統排列圖像。例如,每個圖像的左上角可以被指定一個坐標值。包括電路層的左上角的圖像將具有(0,0)的坐標基準。可以例如基于圖像中存在的像素數目和/或圖像中包括的物理區域等確定坐標。
圖像可以被獲取,從而一個圖像部分地交迭一個或多個相鄰的圖像。交迭幫助保證圖像獲得電路層的完全覆蓋度,以及幫助標識在兩個相鄰圖像中發現電路元件時的情況。當存在交迭時,圖像的指定坐標基準應該解釋該交迭。例如,當坐標基于大量像素時,應該從總像素中減去交迭的像素數目,以獲得偏移圖像的坐標基準。另外,當在設置圖像時可以獲得足夠的準確度時,圖像可以被獲取,從而不存在交迭。
IV.部件網表產生在步驟S3,基于集成電路的圖像產生部件網表。如上面簡要地概述,可以選擇兩種選擇性方案,以產生部件網表。第一選擇性方案提供現有技術的幾點改進,以便產生部件網表,而第二選擇性方案提供更直接的方法。
A.基于布圖的產生圖3描繪了產生部件網表的示例性方法。在步驟S301,集成電路的圖像被部件系統36(圖1)轉變為布圖。在此情況下,部件系統36(圖1)可以包括將圖像轉變為布圖的軟件,如Raith USA Inc的CHIPSCANNERTM。布圖是集成電路的物理設計的電子表示。公共布圖說明書文件格式包括GL1和GDS。布圖可以被閱讀,以在集成電路內的其具體位置呈現每個電路元件的直觀繪圖。
通常,盡管由圖像產生的布圖包括布線和物理布圖信息,但是它缺乏其它信息。例如,經常遺漏集成電路的端口和電源干線定義。也可能缺少其它信息,如阱、微分額定Vt晶體管和低Vt晶體管等。因而,可以使用部件系統36(圖1)編輯布圖,以包括某些或所有遺漏信息的定義。例如,一般用注入掩模標記器件之間的閾值電壓的差異。注入掩模可以包括在布圖數據中,作為新的級別。具體,如步驟S302所示,端口和電源信息可以被添加到布圖。該信息協助使用部件網表產生圖表,將部件網表與其它部件網表相比較,和/或將部件網表轉變為邏輯網表,下面將進一步論述每一個。
在步驟S303,從布圖提取部件信息(晶體管、電阻器、芯片、端口、電源干線等)。在步驟S304,從布圖提取網絡連接(即,布線信息如管腳至管腳連接)。在步驟S305,使用部件信息和網絡連接來產生部件網表。
可以提供提取引擎作為部件系統36(圖1)的部分,以執行步驟S303、S304和S305。可以由一個或多個工具形成提取引擎,該工具由部件網表產生布圖。這些工具可以被修改,以從布圖提取部件網表。例如,國際商業機器公司的ERIETM是可以被修改以執行提取引擎功能的布圖產生工具的一個例子。在此情況下,ERIE被修改,以接收定義層相互作用的數據。使用該數據,部件信息和網絡連接被提取。然后提取的信息被結合并被格式化為布圖部件和它們的連接(即,部件網表)的文本表示。
盡管上面概述的基于布圖的方法有利地使用具有幾點改進的現有技術,但是在某些情況下該方法可能不是優選的。例如,當較小的集成電路被診斷時,更多“依次傳遞(hand on)”方法可以是希望的。此外,上面概述的一個或多個步驟中的誤差可能比更直接的方法更難以確定。結果,在某些情況下,下面概述基于圖像的方法可能是有利的。
B.基于圖像的產生圖4描繪了基于一個或多個電路圖像產生部件網表的選擇性方法。在步驟S311,為每個圖像標識“層信息”。“層信息”可以包括與診斷集成電路有關的電路元件,包括端口、電路部件、部件管腳、布線和電源干線(共同地稱為“電路元件”)。可以通過能標識和區分圖像中的各個電路元件的計算機程序(即,部件系統36(圖1)的部分),和/或通過標識各個電路元件的用戶,來標識層信息。
關于用戶標識,反過來,用戶可以呈現每個電路圖像。在觀察電路圖像的同時,用戶可以標識電路元件。然后用戶可以定義一個區域,通過使用部件系統36(圖1)的接口在圖像中的電路元件上描繪一個區域。一旦該區域被定義,那么它被給定唯一的標識符,用電路元件的類型標記。在數據庫中存儲該元件特征(即,標識符、級別、類型、位置以及區域信息)。該工序可以繼續直到所有相關的電路元件被標識。
對于最好地表示到電路的外部接口的電路層,端口可以被標識和存儲,以及各個部件(即,晶體管、電阻器等)可以被標識并人工地存儲或使用軟件存儲。隨后,對于每個部件,管腳可以被標識并與信息一起存儲,該信息例如管腳的類型(即,對于場效應晶體管,源區、漏區或柵極)。最后,布線可以被標識和存儲。
另外,管腳的集合可用于標識一個部件,而不分開地標識該部件。此外,一組元件可以被標識為一個元件。例如,載運相同信號的一組通孔或布線可以被標識為一個部件。如上所述,當對于一個電路層使用多個圖像時,圖像偏移可以被加到圖像上的位置。該區域可以仍然在圖像上顯示,以協助用戶記住已被標識的元件。可以為每個希望的電路元件以及每個圖像重復該工序,直到所有相關圖像內的所有相關電路元件被標識。
在步驟S312,為了便于確定電路層之間的連接,在兩個或更多層之間提供連接的電路元件可以被標識并人工地或使用軟件存儲為中間層信息。“中間層信息”包括在層之間提供連接的所有電路元件的標識,所述電路元件包括通孔和觸點。類似于步驟S311,部件系統36(圖1)的計算機程序部分和/或用戶可以定義表示中間電路元件的形狀特征,該形狀特征隨后被存儲在數據庫24(圖1)中作為中間層信息。中間層信息進一步標識在其之間設置電路元件的兩個層(即,層2和層3)。另外,中間層信息可以被定義并存儲為層信息,并可以通過標識的電路元件類型(即,通孔、觸點等)來區分。
在步驟S313,在人工或使用軟件標識之后,分別歸并層信息和中間層信息。為了歸并層信息,將電路元件結合成網絡組。“網絡組”包括確定以交迭的一組電路元件。結果,每個網絡組表示具有電連接的電路元件的集合。首先,使用部件系統36(圖1)比較電路元件的位置和區域特征,以確定是否與相同類型(即,管腳/管腳、布線/布線等)或連接類型(即,布線/管腳、布線/端口等)的電路元件存在任意交迭。例如,當電路元件繼續跨越兩個圖像時,當相同類型的兩個元件的端部毗鄰(即,相鄰圖像沒有交迭數據)時,或當兩個電路元件共享相同的二維空間(即,布線連接到管腳)時,出現交迭。當發現交迭時,兩個電路元件與通過唯一的網絡標識符標識的網絡組有關。當電路元件不屬于網絡組時,產生新的網絡組。如果一個元件已經與網絡組相關,那么將第二元件加到網絡組。如果兩個元件屬于不同的網絡組,將兩個網絡組結合成一個網絡組。以同樣方式歸并中間層信息。
因為區域的定義和每個電路元件的坐標分配的潛在誤差,可以使用方差來確定是否存在交迭。“方差”是加到定義區域以計算潛在誤差的區域。例如,在確定一個區域是否與一個或多個其它區域相交迭之前,可以將等于或小于用于電路級別的接地規則間距一半的方差加到該區域。對于具有0.5微米最小線寬的集成電路,可以使用小于或等于0.25微米的方差。接地規則間距可以被用戶以特定的測量單位(即微米)規定,并基于用于電路層成像的圖像分辨率被轉變為坐標(即,像素)。
在步驟S314,人工或使用軟件,使用中間層信息結合用于相鄰層的層信息。可以引入與層信息使用相類似的方法,以確定層之間的交迭元件(即,添加方差和比較區域)。但是,對于交迭僅僅搜索特定的電路元件。在此情況下,當發現匹配時,兩個網絡組結合成一個網絡組。繼續工序,直到所有層都被處理。例如,為了將用于層1和層2的信息結合,可以連續選擇和分析從兩個層獲得的中間層信息。如上所述,通孔可以被存儲為中間電路元件,并被選擇用于分析。可以將方差添加到通孔的定義形狀。修改的形狀與層1的層信息相比較,然后與層2的層信息相比較。連接到通孔的層1上的布線位置將與修改的形狀至少部分地交迭。結果,通孔被添加到用于層1上的布線的網絡組。在層2上可以發現類似的布線。在此情況下,用于層2的布線和用于層1的布線的網絡組被結合并存儲為一個網絡組。
在歸并和結合步驟之后,每個網絡組表示完全的布線組合。換句話說,每個網絡組應該包括從部件管腳、端口和/或電源干線到至少一個其它部件管腳、端口和/或電源干線的連接。結果,在步驟S315,可以使用網絡組人工或使用軟件產生部件網表。每個網絡組被選擇,并將由網絡組限定的所有布線連接添加到部件網表。一旦所有網絡組被處理,那么產生完全的部件網表。
V.邏輯網表產生回到圖2,步驟S4包括使用邏輯系統38(圖1)基于部件網表產生邏輯網表。在一個實施例中,分級組合規則被應用于部件網表,以用等效的邏輯元件代替一個或多個電路元件。“分級組合規則”基于一個或多個電路部件和它們的連接定義邏輯部件。端口和電源信息的包括允許分級組合規則使用在部件網表中包括的各個部件管腳的部件功能和網絡連接,以確定部分電路的功能。例如,兩個晶體管可以被連接,以執行輸入端口的邏輯非。典型地,一個晶體管的管腳連接到Vdd,而另一晶體管的管腳連接到Vss。為了確定邏輯等效,應用分級組合規則,其辨認每個晶體管的功能和每個晶體管的各個管腳的連接。由于電源信息被引入部件網表,因此可以確定適宜的管腳連接。可以選擇輸入端口,以及追蹤到部件管腳的各個連接。一旦發現執行邏輯非的電路,那么兩個晶體管被非門代替。因為在電路中某些邏輯電路可以包括一個或多個更簡單的邏輯部件,因此該工序可以繼續,直到最復雜的邏輯元件被選擇,以代替部分部件網表。
包括用于各個邏輯部件的公共部件網表信息的數據庫可用于確定在電路中執行邏輯部件的元件。另外,可以動態地分析管腳狀態,以確定在電路中實現的邏輯部件。可以執行幾種途徑,其中基本邏輯部件的組合被結合成一個、更復雜的邏輯元件(即,加法器可以代替幾個邏輯部件)。
VI.網表應用對于使用部件網表和/或邏輯網表診斷集成電路的許多應用是可能的。本發明為這些應用的一些可選地提供了一種或多種獨特的能力,下面進行論述。
A.網表比較可以通過比較系統40(圖1)將部件網表或邏輯網表與基于基準電路的一個或多個基準網表相比較,以確定集成電路和基準電路之間的相似性/差異。當這可能是希望的時的一個例子是當集成電路不能如期望工作時。部件網表可以由集成電路產生并與基準部件網表(即,用于產生集成電路的部件網表)相比較。兩個電路之間的任意差異將潛在地表示制造集成電路過程中的誤差。
另外,邏輯網表可以與一個或多個基準邏輯網表相比較,以確定兩個電路是否相似。這些可能是有用的,例如,確定至少部分集成電路中擁有的知識產權是否被侵犯。基準邏輯網表可以基于已獲得專利保護的基準電路。邏輯網表可以與基準邏輯網表相比較,以確定是否在基準電路和集成電路之間存在任意相似性。例如,可以通過選擇公共輸入/輸出端口和隨后的電路路徑,將邏輯網表與基準邏輯網表相比較。閾值相似性可以被規定,在此之后探測匹配。通過為基準邏輯網表提供的名稱、通過顯示網表項目和/或通過基于匹配的電路顯示圖表,可以顯示匹配的部分電路。
B.圖表產生通常,基于部件網表和/或邏輯網表的圖表是希望的。從集成電路產生圖表的一個問題是以這樣的方式放置電路部件,連接產生幾乎不能理解的交叉線網。結果,集成電路的位置信息可能被限制使用,需要由用戶實際的人工編輯,以將電路部件重新設置到表示集成電路的有意義的圖表中。
為了協助用戶,可以基于端口信息、電源信息和/或部件管腳連接信息放置電路部件。該信息包括在由編輯的布圖或層信息產生的部件/邏輯網表中。當部件被放置在圖表中時,在組織方式中參考端口、電源和/或部件管腳連接信息。例如,連接到輸入端口的部件可以放置在圖表的左側,連接到電源干線的部件可以放置在圖表的頂部,等。此外,當部件管腳連接是從先前放置的部件引出時,部件可以從上到下和從左到右逐漸地設置。例如,可以動態地確定部件管腳的相對電壓電位,以及基于相對電位將部件放置在圖表上。這進一步幫助減小交叉線和產生具有減小用戶接口的常規圖表。
C.圖表顯示如上所述,當最初顯示圖表時,表示電路部件之間連接的線將互相交叉,給顯示的電路增加了混亂。為了在辨別連接路徑過程中協助用戶,可以顯示沒有連接布線的圖表。然后用戶可以通過規定部件(在用于部件的所有布線連接被顯示時)或通過規定部件上的管腳(在用于選擇管腳的布線連接被顯示時),有選擇地顯示布線信息。例如,在每個部件管腳/端口的端部可以顯示短線(stub)。用戶可以選擇短線,以及可以顯示用于所選短線的布線。以此方式,用戶可以基于顯示的限制布線信息重設置電路部件,直到獲得希望的排列。觸發設置可以交替地顯示所有布線連接或非/限制的布線連接,以便可以容易地確定進展。
圖5描繪了根據本發明的實施例的示例性圖表顯示器50。圖表顯示器50包括允許用戶選擇怎樣顯示電路的布線信息的控制器70。例如,用戶可以選擇控制器72,以顯示所有布線信息,選擇控制器74僅僅顯示選擇部件的布線信息,或選擇控制器76僅僅顯示所選管腳的布線信息。控制器74被粗體顯示,以表示它是當前選擇的選項。
電路包括一對輸入端口52,54和輸出端口56。晶體管對58,60配置為將在輸入端口52提供的信號反相(執行邏輯非)。各個電路元件用它們的邏輯等效,即或非部件62代替。或非部件62在晶體管對58,60的輸出和輸入端口54上執行邏輯或非運算。或非部件62的輸出被提供到輸出端口56。晶體管58以粗體顯示,以表示它是選擇的部件。因此,僅僅其管腳的布線信息被顯示。剩余的布線信息以虛線示出,但是基于當前選擇不被顯示。每個管腳被顯示為短線68。因此,如果用戶希望顯示用于管腳的布線信息,用戶將選擇表示管腳的短線68。
如上述部分所述,當產生圖表時,根據端口和電源信息設置各個部件。例如,在圖表的頂部示出Vss64,以及Vdd66設置在底部,而輸入端口52,54設置在左側,輸出端口56設置在右側。此外,根據它們分別與Vss64和Vdd66的連接,晶體管58,60被從上到下設置。更進一步,晶體管58,60和或非部件根據它們分別與輸入端口52,54和輸出端口56的連接被從左到右設置。
應當理解圖表顯示器50僅僅說明在此描述的能力。圖表顯示器50不旨在完全描繪圖表顯示或可以被用戶執行的所有操作。此外,應當理解用于表示選擇以及進行選擇的各種選擇性用戶接口是可能的,且被本發明覆蓋。
VII.選擇性方案盡管以特定順序發生的方式描述了各種方法,但是應當理解可以同時或以在此描述的不同順序執行獨立的步驟。此外,應當理解為了使信息精煉和增加所得網表/圖表的準確度要求多次重復一個或多個步驟。此外,盡管該論述描述了集成電路的所有層上的所有部件的標識和診斷,但是應當理解,當希望時可以選擇和分析部件和/或層的子集。
應當理解本發明可以用硬件、軟件或硬件和軟件的組合來實現。適合于進行在此描述的方法的任何種類的計算機/服務器系統或其它設備是適合的。硬件和軟件的典型組合可以是具有計算機程序的通用計算機系統,當加載和執行控制系統12和/或用戶30系統時,它們進行在此描述的各種方法。另外,可以利用特定用途的計算機,包含用于進行本發明的一個或多個功能任務的專業硬件。本發明也可以嵌入計算機程序產品,該計算機程序產品包括能夠實現在此描述的方法的所有各種特征,并當在計算機系統中加載時能夠進行這些方法。在本文中計算機程序、軟件程序、程序、或軟件表示以任意語言、代碼或注釋的一組指令的任意表達式,旨在促使具有信息處理能力的系統直接或在下列兩種情況之后執行特定的功能(a)轉換為另一語言、代碼或注釋;和/或(b)以不同的材料形式再現。
為了說明和描述已提出了本發明的各個實施例的上述描述。不旨在詳盡或限制本發明為所公開的精確形式,顯然,許多改進和改變是可能的。對于本領域的技術人員顯而易見的這種改進和改變旨在包括在由所附權利要求定義的本發明的范圍內。
工業適用性本發明對于診斷集成電路是有用的,更具體地說,對于基于集成電路產生網表和/或圖表是有用的。
權利要求
1.一種診斷集成電路的方法,該集成電路包括至少一個電路層,該方法包括以下步驟為所述至少一個電路層的每一個獲取至少一個圖像;基于所述至少一個圖像產生部件網表;以及通過應用分級組合規則,基于所述部件網表產生邏輯網表。
2.根據權利要求1的方法,還包括以下步驟將所述至少一個圖像轉變為布圖;在所述布圖中定義端口信息和電源信息;從所述布圖提取部件信息;以及從所述布圖提取網絡連接;其中所述部件網表基于所述提取的部件信息和網絡連接信息。
3.根據權利要求1的方法,還包括這樣的步驟使用所述至少一個圖像為所述至少一個電路層定義層信息,其中所述部件網表基于所述層信息。
4.根據權利要求3的方法,其中所述定義層信息的步驟包括為所述至少一個電路層的至少一個圖像的每一個標識電路元件;確定與第二電路元件交迭的第一電路元件;以及將所述第一電路元件和第二電路元件歸并到網絡組。
5.根據權利要求4的方法,其中在所述確定步驟中使用方差。
6.根據權利要求3的方法,其中所述集成電路包括多個層,還包括以下步驟使所述多個層的每一個分層;以及定義中間層信息,其中所述部件網表還基于所述中間層信息。
7.根據權利要求6的方法,其中所述產生部件網表的步驟包括從所述中間層信息中選擇中間電路元件;確定與所述中間電路元件交迭的第一相鄰層上的第一電路元件;確定與所述中間電路元件交迭的第二相鄰層上的第二電路元件;以及結合所述第一電路元件和第二電路元件。
8.根據權利要求1的方法,還包括基于所述邏輯網表產生圖表的步驟。
9.根據權利要求8的方法,其中基于如下的至少一個在所述圖表中設置所述電路的部件端口信息、電源信息和部件管腳連接信息。
10.根據權利要求8的方法,還包括顯示沒有布線信息的圖表的步驟。
11.根據權利要求10的方法,還包括顯示所選部件的布線信息的步驟。
12.根據權利要求1的方法,還包括基于基準電路提供基準邏輯網表;比較所述邏輯網表和所述基準邏輯網表;以及顯示所述邏輯網表和所述基準邏輯網表之間的匹配。
13.一種診斷集成電路的方法,該集成電路包括至少一個電路層,該方法包括以下步驟獲取所述至少一個電路層的每一個的至少一個圖像;以及基于所述至少一個圖像產生圖表,其中基于如下的至少一個在所述圖表中設置電路部件端口信息、電源信息和部件管腳連接信息。
14.根據權利要求13的方法,還包括以下步驟將所述至少一個圖像轉變為布圖;在所述布圖中定義端口信息和電源信息;使用提取引擎基于所述布圖產生部件網表;以及基于所述部件網表產生邏輯網表,其中所述圖表基于所述邏輯網表。
15.根據權利要求13的方法,還包括以下步驟基于所述至少一個圖像標識層信息;將所述層信息歸并到多個網絡組中;為所述至少一個電路層的每一個結合所述多個網絡組;基于所述網絡組產生部件網表;以及基于所述部件網表產生邏輯網表,其中所述圖表基于所述邏輯網表。
16.根據權利要求13的方法,還包括顯示沒有布線信息的圖表的步驟。
17.根據權利要求16的方法,還包括顯示所選電路元件的布線信息的步驟。
18.一種集成電路診斷系統,包括獲取系統,為集成電路的每個電路層獲取至少一個圖像;部件系統,基于所述至少一個圖像產生部件網表;以及邏輯系統,通過應用分級組合規則以用等效邏輯部件代替所述部件網表中的至少一個電路元件,基于所述部件網表產生邏輯網表。
19.根據權利要求18的系統,還包括將所述邏輯網表和部件網表的至少一個與基于基準電路的基準網表相比較的比較系統。
20.根據權利要求18的系統,還包括基于所述邏輯網表和部件網表的至少一個產生圖表的圖表系統。
21.根據權利要求20的系統,還包括有選擇地顯示所述圖表中的布線信息的顯示系統。
22.一種包括計算機可用介質的計算機程序產品,該計算機可用介質具有嵌入其中的用于診斷集成電路的計算機可讀程序代碼,該程序產品包括程序代碼,配置為基于所述集成電路的每個電路層的至少一個圖像產生部件網表;以及程序代碼,配置為通過應用分級組合規則以用等效邏輯元件代替部件網表中的至少一個電路元件,基于所述部件網表產生邏輯網表。
23.根據權利要求18的系統,還包括配置為將所述邏輯網表和部件網表的至少一個與基于基準電路的基準網表相比較的程序代碼。
24.根據權利要求18的系統,還包括配置為基于所述邏輯網表和部件網表的至少一個產生圖表的程序代碼。
25.根據權利要求24的系統,還包括配置為有選擇地顯示所述圖表中的布線信息的程序代碼。
全文摘要
本發明提供了一種用于診斷集成電路的方法、系統(12)和程序產品。具體,本發明為集成電路的每個相關電路層獲取一個或多個圖像(S2)。基于該圖像,產生部件網表(S3,S305,S315)。此外,通過對部件網表應用分級組合規則產生邏輯網表(S4)。部件網表和/或邏輯網表可以與基準網表相比較,以診斷集成電路。本發明還可以基于部件網表或邏輯網表產生圖表(50),其中根據由網表確定的端口、電源、和/或部件管腳連接信息排列部件。此外,可以以有選擇地顯示布線連接的方式顯示圖表,以協助用戶智能地布置電路部件。
文檔編號G06F17/50GK1714355SQ02830042
公開日2005年12月28日 申請日期2002年12月17日 優先權日2002年12月17日
發明者M·鮑徹, J·M·科恩, R·多芬, M·馬斯特斯, J·H·麥卡倫, S·普呂弗, M·H·西特科 申請人:國際商業機器公司