專利名稱:安全掃描的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及電子電路,并且更具體地,涉及通過掃描鏈進行的電子電路的自動化測試。
背景技術(shù):
掃描電路被用于測試數(shù)字集成電路和電路卡。內(nèi)部掃描允許將輸入的掃描信號串行轉(zhuǎn)移到數(shù)字集成電路的具有F/F(flip-flop觸發(fā)器)的掃描鏈中,用以在初始狀態(tài)時載入這些數(shù)據(jù)。一旦載入這些數(shù)據(jù),則可以鐘控集成電路使之進入正常操作模式。一旦正常操作停止,則可以從掃描鏈讀出輸出掃描信號,用于分析確認集成電路的正確操作。相似地,可以使用測試集成電路輸入/輸出引腳的邊界掃描技術(shù)來測試電路卡連線。
通過改變安全級,可以在國外執(zhí)行和/或在測試設(shè)備中執(zhí)行數(shù)字集成電路的測試。某些機構(gòu)僅允許在國內(nèi)測試他們所使用的數(shù)字電路。某些人認為內(nèi)部或者邊界掃描鏈的輸入和/或輸出可被用于獲取關(guān)于他們所測試的電路的信息。傳統(tǒng)上使用物理的防衛(wèi)措施來保護測試向量防止非法利用。例如,由受限制的群體利用測試向量和存儲該測試向量的電路測試器。物理的防衛(wèi)和審查一般被視為是可盜取的。
發(fā)明內(nèi)容
在本發(fā)明的一個實施例中,公開了一種能夠進行自動化掃描測試的電路。在電路中包括密碼機、數(shù)字電路、輸入引腳和輸出引腳。密碼機至少能夠執(zhí)行一個或多個數(shù)字信號的加密和解密中的一個。數(shù)字電路包括組合邏輯和多個存儲單元。存儲單元具有串行連接到掃描鏈中的掃描輸入端。輸入引腳和輸出引腳連接到掃描鏈。輸入引腳和輸出引腳中的至少一個載有至少某些掃描鏈的密文數(shù)據(jù)。
結(jié)合附圖描述了本發(fā)明,在附圖中圖1是電路測試系統(tǒng)的實施例的框圖;圖2A~H是框圖,每一個示出了被測設(shè)備(DUT,Device UnderTest)部分的實施例;圖3A~C是框圖,每一個示出了加密電路的實施例;圖4是用于測試DUT的處理的實施例的流程圖;和圖5是測試腳本的實施例的時序圖。
在附圖中,相似的部件和/或特征可以具有相同的參考標記。而且,通過在參考標記后加入“-”,以及通過在相似的部件中進行區(qū)分的第二標記,可以區(qū)分相同類型的不同部件。如果在本說明書中僅使用了第一參考標記,則本描述適用于任何一個具有相同的第一參考標記的相似部件,而與第二參考標記無關(guān)。
具體實施例方式
隨后的描述僅提供了優(yōu)選示例性實施例,并且目的并不在于限制本發(fā)明的范圍、應(yīng)用范圍或者配置。更確切地,隨后的關(guān)于優(yōu)選示例性實施例的描述將向本領(lǐng)域的技術(shù)人員提供用于實現(xiàn)本發(fā)明的優(yōu)選示例性實施例的有效描述。應(yīng)當理解,在不偏離附屬權(quán)利要求所述的本發(fā)明的精神和范圍的前提下,可以在元件的功能和設(shè)置上進行不同的修改。
首先參考圖1,示出了電路測試系統(tǒng)100的實施例的框圖。測試系統(tǒng)100被用于確認被測設(shè)備(DUT)正在正常工作。該測試可以支持DUT調(diào)試,產(chǎn)量測試等等。在電路測試系統(tǒng)中包括設(shè)計工作站104、電路測試器108、DUT 112、輸入測試向量116和輸出測試向量。DUT112典型地插入到DUT托架中,該DUT托架是電路測試器108的一部分。自動化系統(tǒng)可以允許載入許多個DUT 112用于串行地測試每一個DUT 112。DUT 112可以是裸片、已封裝的集成電路(IC)、混合封裝的多個IC、具有一個或多個IC的電路卡、具有一個或多個電路卡的模塊、模塊的系統(tǒng)、或者任何其他的電路結(jié)構(gòu)。DUT 112包括能夠進行加密、解密和/或雜湊功能操作(hash function)的密碼功能。
電路測試器108向DUT 112施加信號并且讀出其他的信號。配置信息和輸入測試向量116命令電路測試器108怎樣激勵DUT 112。該激勵使得DUT 112的輸出信號出現(xiàn)反應(yīng)。由電路測試器108記錄這些反應(yīng)并且存儲這些反應(yīng)作為輸出測試向量。電路測試器108還可以使輸出測試向量同一組期望的測試向量124進行比較,由此測試器108可以得到關(guān)于DUT 112是否正常運行的結(jié)論。
設(shè)計工作站104可以具有許多種功能,并且其被用于創(chuàng)建輸入測試向量116和所期望的測試向量124。在許多情況中,設(shè)計工作站104具有用于產(chǎn)生測試向量的DUT 112的邏輯模型。該邏輯模型能夠以同DUT相同的方式加密掃描信號,因此可以以確定的方式產(chǎn)生期望的測試向量。某些實施例可以通過設(shè)計工作站104使用公鑰或者私鑰加密輸入測試向量。DUT在將這些輸入測試向量116載入到掃描鏈的觸發(fā)器(F/F)之前,將解密這些輸入測試向量116,由此輸入激勵是確定的。
輸入測試向量116可被用于將種子、DUT序列號、密鑰和其他初始化信息載入到DUT 112中。輸入測試向量可以針對每個DUT部分定制或者完全定制,并且可以是明文的形式或者是密文的形式。例如,可以準備完全加密或部分加密的測試向量用于具體的DUT 112,其具有存儲在DUT中的唯一的密鑰??捎迷贒UT上的標志與由輸入測試向量116載入的DUT序列號相匹配。
通過參考圖2A~H,示出了框圖,每一個框圖示出了DUT 112部分的實施例。所示部分可以是DUT的全部或者是DUT的一部分。首先參考圖2A,示出了單一的內(nèi)部掃描鏈DUT 112-1,其可以選擇性地解密、選擇性地加密和/或選擇性地雜湊掃描信號。在DUT 112-1中包括電路模塊204、多個開關(guān)208、加密電路212、旁路電路216、解密電路220和掃描接口224。雖然本實施例僅包括單一的掃描鏈,但是某些DUT的實施例可以包括任意數(shù)目的分立的掃描鏈。
電路模塊204典型地是F/F或寄存器的組合(例如,存儲單元的組合)和組合邏輯。電路模塊204的F/F和寄存器串行地連接在內(nèi)部掃描鏈中。掃描接口224接收在輸出測試向量116中載明地掃描信號。第一開關(guān)208-1用于將掃描信號連接到解密電路220或者解密電路的旁路電路216。這樣,某些掃描信號可以被解密而某些掃描信號則沒有。通過第一開關(guān)208-1,可以使用每個輸入測試向量中的一位來選擇性地激活解密操作。在本實施例中,解密電路使用串行解密和加密。
一旦掃描信號完整地成為明文形式,則將其提供給電路模塊204。電路模塊的寄存器和F/F以串行的方式載入這些初始信號。激活“捕獲”信號以鐘控電路模塊204進入正常操作。一旦正常操作結(jié)束并且“捕獲”信號失效,則電路模塊204中的掃描鏈以串行的方式載出。通過可替換地使用加密電路212或者旁路電路216,第二開關(guān)208-2用于選擇性地加密或者雜湊輸出掃描信號。可以被部分地或者完整地加密/雜湊的輸出掃描信號,作為輸出測試向量的一部分通過掃描接口輸出到寄存器。雖然考慮到雜湊函數(shù)的單項特性不允許恢復(fù)輸出掃描信號的明文譯本,但是使用雜湊輸出允許校驗電路模塊204是否在正常工作。
通過參考圖2B,示出了DUT 112-2的另一實施例。該實施例包括用于多個電路模塊204的多個掃描鏈。存在多個由輸出測試向量116以并行方式驅(qū)動的輸入掃描信號。第一開關(guān)208可以獨立地關(guān)閉或者打開關(guān)于每個掃描信號的解密操作。解密電路220可以通過串行算法解密每個信號,或者可以通過分組算法解密多個輸入掃描信號。例如,可能存在64個輸入掃描信號,其每一個提供了用于分組解密的一位。
明文輸入掃描信號載入到它們各自的電路模塊204中。在本實施例中,每個電路模塊204存在一個掃描信號。在通過有效的“捕獲”信號正常操作后,繼續(xù)鐘控電路模塊204,使得多個掃描鏈以串行方式移位輸出。第二開關(guān)組208可以選擇性地操縱不同的輸出掃描信號。例如,4個輸出掃描信號可以被完整地或者部分地加密,而剩下的保持不受影響。加密電路212可以使用串行算法或者分組算法。
圖2C的實施例112-3與圖2B的實施例相似,除了不解密任何輸入信號。在圖2D中,示出了另一實施例112-4,其加密所有的輸出掃描信號。圖2E示出了實施例112-5,其加密某些輸出掃描信號,而剩下的保持不受影響。換言之,不可以選擇性地加密單一的輸出掃描信號。在圖2F的實施例112-6中,某些完整的輸入掃描信號被解密而其他的不是。而且,某些完整的輸出掃描信號被加密或者雜湊而其他的不是。具體的鏈可以具有加密、解密和/或雜湊的任何排列。
圖2G和2H的實施例112-7、112-8涉及具有多個IC的實施例。這些IC可以具有在相同的或者不同的電路板上的相同的或者不同的封裝。在圖2G中,不同IC中的三個電路模塊具有以串行方式連接的掃描鏈。解密和加密電路可以在分立的IC中、同一IC中或者作為一個電路模塊204集成到同一IC中。本實施例112-7具有用于全部掃描信號的旁路電路216,但是其他的實施例可能具有部分掃描信號旁通功能。
參考圖2H,本實施例112-8測試內(nèi)部掃描和邊界掃描。第一電路204-1的內(nèi)部掃描連接到邊界掃描鏈228和第二電路204-2。這樣,還可以加密邊界掃描鏈。某些實施例可以通過可能的密碼技術(shù)測試邊界掃描接口,而不需要通過內(nèi)部掃描鏈進行鏈接。而且,用于多個芯片封裝、電路卡和模塊的邊界掃描鏈可以是以任意組合鏈接在一起的,用以測試這些電路組合。
下面參考圖3A,示出了加密電路212-1的實施例的框圖。該加密電路212-1的實施例執(zhí)行分組加密。字擴展模塊308獲取輸出掃描信號并且復(fù)制某些信號用以獲得具有塊密碼機字長的塊。例如,如果通過塊密碼機304加密64位塊并且僅有32個輸出掃描信號輸入到字擴展模塊308,則將復(fù)制每個輸出掃描信號用以獲得用于加密的64位塊。
可以以任何方式擴展輸出掃描信號的位。例如,某些位可以被復(fù)制兩次,某些可能完全沒有被復(fù)制,而某些可能被復(fù)制四次,用以獲得針對塊的每個位的輸入。可以控制分配給復(fù)制信號的位位置(bitpositions)。該擴展處理可以是可編程的,由此可以以不同的方式擴展測試腳本??梢砸钥啥ㄖ频姆绞?,將輸入給字擴展模塊308的每個位分配給一個或者多個輸出位位置。輸入測試向量116可被用于配置字擴展模塊。
某些實施例可以具有基于不需要配置的有效輸入位進行擴展的設(shè)置算法。還可以基于輸入位執(zhí)行算法功能,例如,擴展輸出位是一個或者多個輸入位的異或。某些實施例可以確定何時輸出掃描信號旁通過(bypass)加密電路212-1并且在其位置上擴展另一位。雖然本實施例使用位復(fù)制或者算法位復(fù)制,但是其他的實施例可以簡單地使用位填充來獲得具有適當長度的塊。
塊密碼機304駐留在DUT 112中。密碼機304還可能能夠解密并且可能在解密過程中使用字擴展。塊密碼機可以使用不同的密碼算法,其是私鑰的或者公鑰的,例如,RSA、DES、3-DES、AES等等。本實施例從已擴展的輸出掃描鏈接收種鑰(seed key)。經(jīng)過第一加密過程后,通過使用或門312以CBC鏈接的形式使用輸出的密文來影響密鑰。雖然本實施例使用塊加密電路212-1,但是其他的實施例可以使用串行加密電路。在加密輸出測試信號時,可以使用雜湊函數(shù)來替換。
在處理輸出掃描信號時,塊密碼機304可以使用單向函數(shù)或者雜湊。在產(chǎn)品測試中,掃描鏈寄存器和F/F的實際值通常不是必需的,但是在大部分的環(huán)境中,校驗雜湊輸出將驗證正確操作。雖然本實施例產(chǎn)生了用于每個測試向量循環(huán)的輸出掃描信號,但是由于密文輸出作為密鑰輸入而反饋,所以一個測試中的錯誤將影響用于所有未來輸出的加密過程,因此CBC鏈接僅需要周期性檢查輸出測試向量120。
通過參考圖3B,示出了是加密電路212-2的另一實施例的框圖。本實施例使用異或(XOR)門316用于CBC鏈接。其他實施例可以使用任何邏輯門,其組合來自明文輸入的要素和塊密碼機316的密文輸出。
下面參考圖3C,示出了是加密電路212-3的另一實施例的框圖。本實施例在密鑰輸入上不使用CBC鏈接,但是使用CBC鏈接用于明文輸入。使用XOR門組合來自密文輸出和明文輸入的要素用于加密處理。塊密碼機304的密鑰輸入可以是預(yù)置密鑰(在本實施例中)、一連串預(yù)置密鑰、從測試向量中載入的密鑰、或者在DUT 112中其他位置產(chǎn)生的密鑰。某些實施例可以使用用于第一密碼操作的預(yù)定密鑰,并且然后使用某些明文/密文的組合。
通過參考圖4,示出了用于測試DUT 112的處理過程400的流程圖。所示出的處理過程400部分開始于步驟404,其中使用設(shè)計工作站104產(chǎn)生輸入測試向量116和期望的測試向量124。為了該目的,可以使用具有DUT邏輯模型的ATPG工具。將測試向量116、124連同關(guān)于測試協(xié)議的配置信息一起提供給電路測試器。在步驟408中,DUT 112裝入到電路測試器108中。可以使用自動化機構(gòu)來快速地裝入或者卸下一個或多個DUT 112。
輸入測試向量116由電路測試器108讀出,并且根據(jù)測試協(xié)議被施加到DUT 112的輸入引腳。這使得在步驟412中將一個或者多個輸入掃描信號載入到它們的掃描鏈中。操縱第一開關(guān)208-1獲得關(guān)于每個輸入掃描信號的部分的或者完整的解密。一旦電路模塊204的所有的寄存器和F/F均被載入。在步驟416中通過激活“捕獲”信號來激活電路模塊204的正常操作,該“捕獲”信號停止串行移位并且在下一時鐘脈沖開始正常操作。在使“捕獲”信號失效之后,在步驟420中通過操縱第二開關(guān)208-8使掃描鏈移位載出,用于輸出掃描鏈的部分的或者完整的加密。
在步驟424中,對比實際的輸出向量120測試期望的輸出向量124,用以確認DUT 112的正確操作。如果在步驟428中確認了錯誤,則在步驟434中標注該錯誤,并且可能如測試協(xié)議所定義的中止測試。如果在步驟428中不存在錯誤,則由測試器108執(zhí)行第二確認操作。如果不存在多個輸入測試向量116,則關(guān)于該DUT 112的測試部分完成。
下面參考圖5,示出了測試腳本的實施例的時序圖500。在本實施例中,第一和第二開關(guān)208具有單一的輸入用以在激活時加密所有的掃描信號?!皰呙栎斎搿毙盘?08載入輸入掃描信號,而“掃描輸出”信號516讀出輸出掃描信號,如時序圖500的一連串字所示?!皶r鐘”信號512采樣“掃描輸入”信號508和“掃描輸出”信號516,并且在操作于正常模式時鐘控DUT。“捕獲”信號操縱存儲寄存器的“時鐘”信號輸入,用以使DUT在串行掃描鏈移位模式和正常模式之間切換。更具體地,在“捕獲”信號激活時使能(enable)正常操作,而在“捕獲”信號失效時使能掃描移位操作?!敖饷堋毙盘?04使所有輸入掃描信號的解密操作激活/失效。相似地,“加密”信號520使所有輸出掃描信號的加密操作激活/失效。
可以使用本發(fā)明的多種變化和修改。例如,某些實施例可以在DUT中使用異步電路或者自定時電路。異步電路或者自定時電路執(zhí)行某些或者所有的操作,而不需要在處理中傳播每個時段的時鐘。用于異步電路的輸入/輸出測試信號可完整地或者部分地以密文的形式存在于DUT外部。通過用于測試的任何方法,可以加密異步DUT外部的測試數(shù)據(jù)。
盡管在上文中結(jié)合具體的裝置和方法已經(jīng)描述了本發(fā)明的原理,但是應(yīng)當清楚地理解,這些描述是通過示例來進行的,并且這些描述并非作為對本發(fā)明的范圍的限制。
權(quán)利要求
1.一種能夠自動化掃描測試的電路,所述電路包括密碼機,其能夠執(zhí)行一個或者多個數(shù)字信號的加密、解密和雜湊中的至少一個;數(shù)字電路,其包括組合邏輯和多個存儲單元,其中多個存儲單元具有串行連接到掃描鏈中的掃描輸入端;輸入引腳,其連接到掃描鏈;和輸出引腳,其連接到掃描鏈,其中輸入引腳和輸出引腳中的至少一個加載至少某些掃描鏈的密文數(shù)據(jù)。
2.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,密碼機加密至少某些來自掃描鏈的明文數(shù)據(jù)用以產(chǎn)生用于輸出引腳的密文數(shù)據(jù)。
3.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,密碼機解密至少某些來自輸入引腳的密文數(shù)據(jù)用以產(chǎn)生用于掃描鏈的明文數(shù)據(jù)。
4.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,密碼機雜湊至少某些來自掃描鏈的明文數(shù)據(jù)用以產(chǎn)生用于輸出引腳的密文數(shù)據(jù)。
5.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,密碼機使用公鑰或者私鑰算法。
6.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,密碼機進行串行處理或者分組處理。
7.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,用于掃描鏈的信號連接到進行分組處理的密碼機的多個輸入位。
8.如權(quán)利要求1所述的能夠自動化掃描測試的電路,其中,用于密碼機的種子與掃描鏈的數(shù)據(jù)相關(guān)。
9.如權(quán)利要求1所述的能夠自動化掃描測試的電路,進一步包括用于選擇性地旁通密碼機的旁路電路。
10.如權(quán)利要求1所述的能夠自動化掃描測試的電路,進一步包括多個輸入引腳,其連接到多個掃描鏈;和多個輸出引腳,其連接到多個掃描鏈。
11.如權(quán)利要求10所述的能夠自動化掃描測試的電路,其中,多個輸入引腳的子集連接到密碼機。
12.如權(quán)利要求10所述的能夠自動化掃描測試的電路,其中,多個輸出引腳的子集連接到密碼機。
13.一種能夠自動化測試的被測設(shè)備(DUT),包括密碼機,其能夠執(zhí)行測試信息的加密、解密和雜湊中的至少一個;數(shù)字電路,其包括測試電路;第一信號,其連接到DUT;第一信號,其連接到DUT,其中測試信息至少部分地在DUT外部進行加密,并且第一信號和第二信號中的至少一個載有測試信息。
14.如權(quán)利要求13所述的能夠自動化測試的DUT,其中,測試電路包括內(nèi)部掃描鏈和邊界掃描鏈中的至少一個。
15.如權(quán)利要求13所述的能夠自動化測試的DUT,其中,測試信息是掃描鏈數(shù)據(jù)。
16.如權(quán)利要求13所述的能夠自動化測試的DUT,進一步包括選擇性地旁通密碼機的旁路。
17.如權(quán)利要求13所述的能夠自動化測試的DUT,其中,數(shù)字電路包括異步子電路。
18.一種用于處理數(shù)字電路的受保護測試數(shù)據(jù)的方法,所述方法包括步驟通過數(shù)字電路接受第一測試信息;在數(shù)字電路中處理第一測試信息,由此所述處理步驟測試了數(shù)字電路;產(chǎn)生與第一測試信息相關(guān)的第二測試信息,其進一步包括下列步驟中的至少一個解密測試信息,加密測試信息,和雜湊測試信息;并且其中第一測試信息和第二測試信息中的至少一個在進入或者退出數(shù)字電路時處于密碼形式。
19.如權(quán)利要求18所述的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的方法,其中,第一測試信息和第二測試信息連接到用于測試數(shù)字電路的掃描鏈。
20.如權(quán)利要求18所述的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的方法,進一步包括選擇用于解密的第一測試信息部分的步驟。
21.如權(quán)利要求18所述的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的方法,進一步包括選擇用于加密的第二測試信息部分的步驟。
22.如權(quán)利要求18所述的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的方法,進一步包括選擇用于雜湊的第二測試信息部分的步驟。
23.一種計算機可讀介質(zhì),具有計算機可執(zhí)行指令,用于執(zhí)行權(quán)利要求18的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的計算機可實現(xiàn)的方法。
24.一種計算機系統(tǒng),適用于執(zhí)行權(quán)利要求18的用于處理數(shù)字電路的受保護測試數(shù)據(jù)的計算機可實現(xiàn)的方法。
25.一種具體表達數(shù)字信號的計算機數(shù)據(jù),所述計算機數(shù)據(jù)包括明文形式的第一掃描數(shù)據(jù);和密文形式的第二掃描數(shù)據(jù),其中,第一掃描數(shù)據(jù)和解密的第二掃描數(shù)據(jù)在數(shù)字電路的測試過程中適用于數(shù)字電路的掃描鏈。
全文摘要
根據(jù)本發(fā)明,公開了一種能夠自動化掃描測試的電路。在該電路中包括密碼機、數(shù)字電路、輸入引腳和輸出引腳。密碼機至少能夠執(zhí)行一個或多個數(shù)字信號的加密和解密中的一個。數(shù)字電路包括組合邏輯和多個存儲單元。存儲單元具有串行連接到掃描鏈中的掃描輸入端。輸入引腳和輸出引腳連接到掃描鏈。輸入引腳和輸出引腳中的至少一個載有至少某些掃描鏈的密文數(shù)據(jù)。
文檔編號G01R31/3185GK1650180SQ03810018
公開日2005年8月3日 申請日期2003年5月2日 優(yōu)先權(quán)日2002年5月3日
發(fā)明者馬德胡蘇丹·R·佩帑工達, 邁克爾·W·約翰遜, 埃里克·J·斯普龍克, 安·通薩特 申請人:通用儀表公司