專利名稱:半導體集成電路、信息處理裝置和輸出數(shù)據(jù)擴散方法
技術領域:
本發(fā)明涉及半導體集成電路、信息處理裝置、輸出數(shù)據(jù)擴散方法以及程序。更詳細 地,本發(fā)明涉及具有用于防止信息從掃描電路泄露的配置的半導體集成電路、信息處理裝 置、輸出數(shù)據(jù)擴散方法和程序,其中該掃描電路是半導體集成電路的測試電路。
背景技術:
在半導體集成電路中使用許多觸發(fā)器。觸發(fā)器能夠分別保持比特值(0或1)并高 速地進行比特值的輸入/輸出,并且經(jīng)常被用作構成高速緩沖存儲器、寄存器或其他電子 電路的元件。在本說明書中,術語“觸發(fā)器”將在下文中被簡稱為FF。根據(jù)現(xiàn)有技術,作為對半導體集成電路進行測試的方法而使用掃描測試。將參照 圖1說明在日本專利第3671948號中記載的掃描測試配置。如圖1中所示,半導體集成電 路100包括組合電路121和122,每個組合電路包括執(zhí)行各種數(shù)據(jù)處理和計算處理的多個電 路元件。另外,半導體集成電路100包括用于保持和傳送要輸入到組合電路121和122的 數(shù)據(jù)以及從組合電路121和122輸出的數(shù)據(jù)的多個FF。具體地,如圖1中所示地提供掃描 FF 111,112 和 113。圖1中所示的掃描FF 111、112和113中每個掃描FF都可以包括多個掃描FF,而 非單個掃描FF。用于連接圖1中所示的掃描FF 111、112和113的連接線路被設定為用于 測試電路的掃描鏈,并且被用于半導體集成電路的制造階段中的測試等。借助于將組合電路前/后的FF當作用于該組合電路的數(shù)據(jù)輸入單元和數(shù)據(jù)輸出 單元來進行測試。在每個FF中設定用于該測試的數(shù)據(jù),將組合電路中進行的處理的結果存 儲在后級中的FF中并將該結果取出至外部,從而確定組合電路是否正常地操作。使用掃描 鏈的電路測試被稱作掃描測試。如圖1中所示,作為半導體集成電路100的外部端子而提供掃描輸入131、掃描時 鐘(SCK) 132、掃描啟用133和掃描輸出134。掃描輸入131是用于輸入要在掃描測試期間存儲在掃描FF中的值的端子。掃描時鐘(SCK) 132是用于輸入在掃描測試期間使用的時鐘脈沖的端子,并且該 時鐘脈沖被供應給各掃描FF的SCK輸入單元。掃描啟用133是用于切換掃描FF的輸入的端子,并且掃描啟用(SE)信號從該端 子被供應給各掃描FF的SE輸入單元。掃描輸出134是用于輸出存儲在掃描FF中的值的端子。在圖1中所示的掃描FF 111、112和113之間夾有組合電路121和122。在掃描測 試中,通過在組合電路121和122與掃描FF 111、112和113之間執(zhí)行數(shù)據(jù)的輸入/輸出來 進行測試。將參照圖2來說明掃描FF 111、112和113中每個掃描FF的內(nèi)部電路配置。注 意,連接至掃描鏈并能夠選擇性地輸入測試數(shù)據(jù)和其他數(shù)據(jù)的FF被稱作掃描FF。掃描FF 111、112和113中每個掃描FF的內(nèi)部電路都具有圖2中所示的配置。盡管在圖2中僅示出了掃描FF 111的配置,但掃描FF 112和113也具有相同的配置。如圖2中所示,掃描FF 111包括多路復用器151和FF 152。如圖2中所示,輸入到掃描FF 111的時鐘脈沖被供應給FF 152的掃描時鐘(SCK)輸入單元,并在該時鐘脈沖 的上升沿將FF 152的D端子的值鎖存。被鎖存的值通過FF 152的Q端子被輸出,并被供 應給掃描FF 111的輸出Q端子。輸入到掃描FF 111的掃描啟用(SE)信號是多路復用器151的選擇器信號,用于 選擇多路復用器151的Din和SI (掃描輸入)中的任一個。當SE為“高”時選擇SI信號 而當SE為“低”時選擇Din信號。多路復用器151輸出通過SE選擇的信號作為多路復用 器151的輸出信號,并將其供應給FF 152的D端子。接下來將參照圖1來說明用于使用掃描電路對半導體集成電路進行測試的方法。首先,將半導體集成電路100的掃描啟用133設定為“高”,并基于時鐘周期從掃描 輸入131串行地輸入用于測試的預設數(shù)據(jù),從而將用于測試的值設定在掃描FF 111、112和 113中。掃描FF 111、112和113通過前述掃描鏈被串聯(lián)地連接。通過掃描鏈連接的掃描 FF 111至113進行移位寄存器操作以傳送輸入數(shù)據(jù)。此后,將掃描啟用133設定為“低”并給SCK 132—個周期的時鐘脈沖,以便進行 捕捉操作。該捕捉操作使得與連接至組合電路之前的掃描FF的值對應的計算結果被存儲 在后級中的掃描FF中。例如,將存儲在掃描FF 111中的值供應給組合電路121,并將組合電路121的輸出 存儲在掃描FF 112中。同時,將存儲在掃描FF 112中的值供應給組合電路122,并將組合 電路122的輸出存儲在掃描FF 113中。在進行了這種捕捉操作后,再次將掃描啟用133設 定為“高”,以將時鐘脈沖施加到SCK 132。借助于該處理,在進行移位寄存器操作的同時, 將存儲在掃描FF 111至113中的值通過掃描輸出134輸出至外部。使用用于測試的各種數(shù)據(jù)多次地進行該處理,并分析從掃描輸出134輸出的值, 從而對組合電路進行測試。在半導體集成電路中應如何對包括前述掃描鏈的布線的掃描電路進行設定,是在 設計半導體集成電路的階段決定的。通常,該設計是使用設計工具來自動進行的,并進行處 理以實現(xiàn)高效的掃描鏈布線。結果,很有可能將在機械上彼此靠近的掃描FF依次連接。因此,在很多情況下,通過掃描鏈連接的多個FF不可避免地被設定為如下狀態(tài), 其中具有等同功能的多個掃描FF被串聯(lián)地布置。例如,在組合電路是加密電路并在該加密 電路中設定用于輸入密鑰數(shù)據(jù)等的多個FF的情況下,從數(shù)量為η個的FF向計算電路輸入 η比特的秘密密鑰信息。當這η個FF通過掃描鏈被連接時,根據(jù)用作秘密信息的η比特密 鑰信息的最高有效位(MSB)或最低有效位(LSB)的比特串,可以串聯(lián)地連接該掃描鏈。當以這種方式連接掃描鏈時,從掃描輸出134輸出的值按FF的連接順序被輸出, 即MSB或LSB的比特數(shù)據(jù)按原樣被輸出。而且,在被測試后,半導體集成電路在許多情況下在移除諸如掃描輸入131和掃 描輸出134的端子后進入市場。但是掃描鏈沒有被移除并被提供給了用戶。于是進入市場 的半導體集成電路中殘留有掃描鏈。因此,如果濫用該掃描鏈以檢查輸出,則可以通過使用 如下的掃描鏈來獲取設定在FF中的信息,在該掃描鏈中曾使用半導體集成電路的電路進 行通常的數(shù)據(jù)處理。例如,有可能泄露要應用于加密處理的諸如密鑰信息的秘密信息。
為了防止這樣的秘密信息的泄露,例如采取以下措施。在轉(zhuǎn)換到使用掃描鏈的掃 描測試模式時,對連接至掃描鏈的掃描FF進行初始化,從而將保持在掃描FF中的數(shù)據(jù)重 置。由此,即使攻擊者在操作期間使得電路轉(zhuǎn)換到掃描測試模式,也難以根據(jù)掃描輸出值得 到和分析關于密鑰等的重要信息
發(fā)明內(nèi)容
如上面所說明的,如果濫用掃描鏈,則秘密信息有可能從連接至掃描鏈的FF泄 露。例如,在要掃描輸出的數(shù)百比特的信息包括關于密鑰等的重要信息且比特串按根據(jù)MSB 或LSB的順序被輸出的情況下,有可能進行如下的密鑰分析。攻擊者預先得到在公開通信 信道中流動的明文和密文的對,使用通過逐比特地對借助掃描輸出而輸出的比特串進行移 位所得到的值作為候選密鑰,對給定的明文進行加密,并反復與預先保持的給定的密文作 比較。該處理使得攻擊者可以指明密鑰。在這種按根據(jù)MSB或LSB的順序來布置經(jīng)由掃描 鏈掃描輸出的值的情況下,可以由比不利地基于暴力攻擊的指明簡單得多的方式來指明密 鑰。而且,作為應對秘密信息的泄露的措施,在轉(zhuǎn)換到掃描測試模式時將連接到掃描 鏈的掃描FF重置是不夠的。例如,存在以下問題。如果通過上電后在掃描測試模式中的多次捕捉操作,可以在 將關于密鑰等的秘密信息存儲在掃描FF之后通過掃描輸出獲取該秘密信息,則可通過使 用與上面所說明的方法中的搜索類似的搜索來分析掃描輸出的值,以指明密鑰數(shù)據(jù)。掃描測試作為半導體集成電路的故障檢測系統(tǒng)是必需的,并且只要沒有特殊情況 都要被結合在半導體集成電路中。具有安全功能的半導體集成電路也不例外。然而,特別 是具備安全功能的半導體集成電路應具有如下機制,其中在實現(xiàn)通過掃描電路的故障檢測 的情況下不容易指明關于密鑰等的內(nèi)部信息。即,需要實現(xiàn)以下機制,當通過掃描輸出來輸 出包括密鑰信息的比特串時,執(zhí)行測試的正當?shù)膱?zhí)行器可以容易地分析該輸出值,但是不 知道電路配置的攻擊者即使分析通過掃描輸出得到的值,也難以指明密鑰。然而,如上面所說明的,根據(jù)現(xiàn)有技術的配置的問題在于因為連接至掃描鏈的掃 描FF中存儲的值可被輸出以被分析,所以應對諸如密鑰數(shù)據(jù)的秘密信息的泄露的措施是 不夠的。由此,希望提供一種實現(xiàn)防止使用半導體集成電路的掃描鏈的信息的泄露的半導 體集成電路、信息處理裝置、輸出數(shù)據(jù)擴散方法以及程序。根據(jù)本發(fā)明的一個實施例,提供了一種半導體集成電路,包括掃描鏈,該掃描鏈 被配置為充當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器;以及交織 電路,該交織電路被設在掃描鏈的輸出部分處。該交織電路包括包括不同級數(shù)的存儲元件 的多個分支;選擇器,該選擇器被配置為選擇多個分支中的一個分支用作輸入/輸出分支, 該輸入/輸出分支進行對來自掃描鏈的數(shù)據(jù)的輸入和對來自交織電路的數(shù)據(jù)的輸出;以及 選擇器控制器,該選擇器控制器被配置為在每一預定定時處,在多個分支之間執(zhí)行切換處 理以選擇輸入/輸出分支。該選擇器控制器可以在每次從掃描鏈輸入數(shù)據(jù)時,在多個分支之間執(zhí)行切換處理 以選擇輸入/輸出分支。
該選擇器控制器可以根據(jù)預設的切換序列,在多個分支之間執(zhí)行切換處理。該半導體集成電路可以進一步包括存儲器,該存儲器被配置為存儲分支選擇表, 該分支選擇表用于選擇多個分支中的一個分支用作輸入/輸出分支,該輸入/輸出分支進 行對來自掃描鏈的數(shù)據(jù)的輸入和對來自交織電路的數(shù)據(jù)的輸出,并且在分支選擇表中存儲 器地址和分支識別符被彼此關聯(lián);計數(shù)器,該計數(shù)器被配置為在每一預定定時處對計數(shù)值 進行計數(shù);以及包括控制器的控制電路,該控制器被配置為將與存儲器地址對應的分支識 別符從分支選擇表輸出至交織電路的選擇器控制器,該存儲器地址對應于計數(shù)器的計數(shù) 值。該選擇器控制器可以執(zhí)行用于選擇與從控制電路輸入的分支識別符對應的分支作為輸 入/輸出分支的處理。該分支選擇表可以具有將分支識別符隨機地與存儲器地址關聯(lián)的設定。該選擇器 控制器可以執(zhí)行用于根據(jù)從控制電路輸入的隨機序列中的分支識別符來隨機地選擇輸入/ 輸出分支的處理。該半導體集成電路可以進一步包括初始化單元,該初始化單元被配置為對在多個 分支中所包括的存儲元件的初始值進行設定。該初始化單元可以包括隨機數(shù)生成器,并可以執(zhí)行用于輸入通過隨機數(shù)生成器所 生成的隨機數(shù)作為在多個分支中所包括的存儲元件的初始值的初始化處理。該存儲元件可以是寄存器。根據(jù)本發(fā)明的另一個實施例,提供了一種包括該半導體集成電路的信息處理裝置。根據(jù)本發(fā)明的又一個實施例,提供了一種在信息處理裝置中執(zhí)行的輸出數(shù)據(jù)擴散 方法,該方法包括在交織電路中執(zhí)行用于對來自掃描鏈的輸出進行擴散的處理,該掃描鏈 被配置為充當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器。該執(zhí)行步 驟包括在包括不同級數(shù)的存儲元件的多個分支之間依次切換,以選擇多個分支中的一個 分支用作輸入/輸出分支,該輸入/輸出分支進行對來自掃描鏈的數(shù)據(jù)的輸入和對來自交 織電路的數(shù)據(jù)的輸出。根據(jù)本發(fā)明的再一個實施例,提供了一種使得信息處理裝置執(zhí)行輸出數(shù)據(jù)擴散處 理的程序,該程序包括在交織電路中執(zhí)行用于對來自掃描鏈的輸出進行擴散的處理,該掃 描鏈被配置為充當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器。該執(zhí) 行步驟包括在包括不同級數(shù)的存儲元件的多個分支之間依次切換,以選擇多個分支中的 一個分支用作輸入/輸出分支,該輸入/輸出分支進行對來自掃描鏈的數(shù)據(jù)的輸入和對來 自交織電路的數(shù)據(jù)的輸出。此外,根據(jù)本發(fā)明的實施例的程序可以經(jīng)由計算機可讀的存儲介質(zhì)或通信介質(zhì)被 提供給能執(zhí)行各種程序代碼的圖像處理裝置或計算機系統(tǒng)。通過以計算機可讀的方式提供 這種程序,在圖像處理裝置或計算機系統(tǒng)中根據(jù)該程序?qū)崿F(xiàn)處理。本發(fā)明的實施例的另外的特征和優(yōu)點將根據(jù)后面基于實施例和附圖的詳細說明 而變得明顯。在本說明書中,系統(tǒng)是指多個裝置的邏輯集合,而具有各自配置的裝置不一定 在同一殼體內(nèi)。根據(jù)本發(fā)明的實施例,在設定為用于測試諸如大規(guī)模集成電路(LSI)的集成電路 的路徑的掃描鏈的輸出部分處,設定進行數(shù)據(jù)擴散處理的交織電路。該交織電路包括包括不同級數(shù)的寄存器的多個分支,以及被配置為選擇進行來自掃描鏈的數(shù)據(jù)輸入和數(shù)據(jù)輸出 的分支的選擇器;并且交織電路執(zhí)行控制以依次改變所選擇的分支。借助于本配置,來自掃 描鏈的輸出比特序列在被擴散的同時被輸出至外部,從而可以防止存儲在觸發(fā)器中的數(shù)據(jù) 的泄露。
圖1示出了半導體集成電路中的掃描鏈;圖2示出了具有連接至掃描鏈的觸發(fā)器的掃描FF的配置;圖3示出了根據(jù)本發(fā)明的第一實施例的半導體集成電路的配置實例;圖4示出了交織電路的配置實例,該交織電路被設定在根據(jù)本發(fā)明的第一實施例 的半導體集成電路中;圖5示出了數(shù)據(jù)擴散處理序列的實例,該數(shù)據(jù)擴散處理序列適用于根據(jù)本發(fā)明的 第一實施例的半導體集成電路中的交織電路;圖6示出了根據(jù)本發(fā)明的第二實施例的半導體集成電路的配置實例;圖7示出了交織電路和控制電路的配置實例,該交織電路和該控制電路被設定在 根據(jù)本發(fā)明的第二實施例的半導體集成電路中;圖8示出了在控制電路中的ROM中存儲的分支選擇表的配置實例,該控制電路被 設定在根據(jù)本發(fā)明的第二實施例的半導體集成電路中;圖9示出了數(shù)據(jù)擴散處理序列的實例,該數(shù)據(jù)擴散處理序列適用于根據(jù)本發(fā)明的 第二實施例的半導體集成電路中的交織電路;圖10示出了根據(jù)本發(fā)明的第三實施例的半導體集成電路的配置實例;圖11示出了交織電路和初始化單元的配置實例,該交織電路和該初始化單元被 設定在根據(jù)本發(fā)明的第三實施例的半導體集成電路中;圖12示出了數(shù)據(jù)擴散處理序列的實例,該數(shù)據(jù)擴散處理序列適用于根據(jù)本發(fā)明 的第三實施例的半導體集成電路中的交織電路。
具體實施例方式以下,將參照附圖詳細說明根據(jù)本發(fā)明的實施例的半導體集成電路、信息處理裝 置、輸出數(shù)據(jù)擴散方法以及程序。說明將根據(jù)以下項目進行1.根據(jù)本發(fā)明的第一實施例的配置和處理2.根據(jù)本發(fā)明的第二實施例的配置和處理3.根據(jù)本發(fā)明的第三實施例的配置和處理1.根據(jù)本發(fā)明的第一實施例的配置和處理將參照圖3等來說明本發(fā)明的第一實施例。圖3示出了根據(jù)本發(fā)明的第一實施例 的半導體集成電路200。圖3中所示的根據(jù)本實施例的半導體集成電路200的電路部分210與上面參照圖 1說明的電路相似。即,電路部分210包括組合電路221和222,每個組合電路都包括執(zhí)行 各種數(shù)據(jù)處理和運算處理的多個電路元件;以及用于保持和傳送要輸入到組合電路221和 222的數(shù)據(jù)以及從組合電路221和222輸出的數(shù)據(jù)的掃描觸發(fā)器(FF)211至213。
圖3中所示的掃描FF 211至213中的每個掃描FF都可以包括多個掃描FF,而非 單個掃描FF。用于連接圖3中所示的掃描FF 211至213的連接線路被設定為供用于測試 電路的掃描鏈,并被用于半導體集成電路的制造階段中的測試等。半導體集成電路200的外部端子的配置也與上面參照圖1說明的配置相似,并且 包括掃描輸入231、掃描時鐘(SCK)232、掃描啟用233和掃描輸出234。與圖1中所示的配置不同,圖3中所示的半導體集成電路200包括交織電路300。 交織電路300被設定在掃描輸出234的前級中。具體地,在半導體集成電路200中位于連 接掃描FF 211至213的掃描鏈的末端處的掃描FF 213的輸出單元側(cè)上的掃描輸出234的 前級中提供交織電路300。交織電路300接收掃描FF 213的輸出,執(zhí)行對輸入數(shù)據(jù)進行擴散的交織處理,并 通過掃描輸出234輸出處理后的數(shù)據(jù)。半導體集成電路200的外部端子與圖1中所示的半導體集成電路100的外部端子 相同,并且這些端子被用在掃描測試中。在掃描測試中,從掃描FF 211至213和組合電路 221至222輸出的最終輸出比特序列經(jīng)由交織電路300通過掃描輸出234被輸出,用于捕捉 操作后的掃描輸出。圖4中示出了交織電路300的細節(jié)。如圖4中所示,交織電路300包括在輸入和 輸出側(cè)上都具有數(shù)量為N的分支的選擇器301和302 ;以及基于時鐘周期依次選擇分支的 選擇控制器303。即,每次將時鐘脈沖施加至SCK 232時,選擇控制器303都根據(jù)時鐘脈沖依次選擇
分支0、分支1、分支2.....分支N-1。在選擇了分支N-1后,從分支0起重復前述操作。在
選擇器301和302之間布置寄存器311至314。要注意,盡管在本實施例中使用寄存器,但 也可以使用諸如存儲器的其他各種存儲元件。圖4中僅示出了四個分支,但實際上設定了包括分支0至N-1的N個分支。各分支 中的寄存器的級數(shù)如下對于寄存器311為一個;對于寄存器312為兩個;對于寄存器313 為三個;并且在逐個增加的情況下,對于最后的分支N-1中的寄存器314為N個。以這種方 式,各分支中包括不同級數(shù)的寄存器。S卩,向每個分支i(i =0、1.....N-1)連接具有i+1級的寄存器。每個分支中的寄存器起移位寄存器作用。來自選擇器301的輸出值被輸入至通過 選擇器301選擇的分支中的寄存器。當從SCK 232施加時鐘脈沖時,寄存器進行移位操作, 即將已存儲的值存儲在相鄰級(圖4中是右邊的相鄰級)中,并且也存儲從選擇器301供 應的值。即,寄存器進行先進先出(FIFO)操作。此時,在未被選擇器301和302選擇的分 支中的寄存器保持其中的值而與SCK無關。在下文中將詳細地說明交織電路300的功能。將在分支數(shù)N = 4的假設下給出以 下說明。選擇控制器303使得選擇器301和302以0、1、2、3、0、1、2、3、0…的順序按時鐘
周期同步地選擇同一分支。如上面所說明的,將輸入供應給通過選擇器301所選擇的分支 中的寄存器,并且該寄存器基于時鐘周期進行FIFO操作。交織電路300對作為掃描鏈的最終輸出而輸入的比特序列執(zhí)行擴散處理。將參照 圖5中所示的時序圖來說明如何通過交織電路300對該比特序列進行擴散。首先說明圖5中所示的信號?!癝CK”表示掃描時鐘脈沖?!拜斎搿北硎窘o選擇器301的輸入值,其比特序列是{b0, bl,b2,b3,b4,b5,b6, b7, }?!胺种А北硎就ㄟ^選擇器301和302所選擇的分支。“寄存器311”、“寄存器312”、“寄存器313”和“寄存器314”分別表示存儲在其中 的值,并且為簡單起見,其初始狀態(tài)在所有寄存器中都是0。“輸出”表示選擇器302的輸出,該輸出是交織電路300的輸出。首先,在時刻t0處,以0對交織電路300中的寄存器311至314進行初始化。從 掃描鏈向輸入選擇器301供應第一輸出比特。這對應于圖5中所示的“輸入”的b0。選擇 器301和302正在選擇分支0。然而,在時刻t0處,輸入值b0尚未被經(jīng)由選擇器301的分 支0存儲在寄存器311中。存儲處理是在施加時鐘脈沖時進行的。因此,交織電路300的 輸出是連接至通過選擇器302所選擇的分支0的寄存器311的值。即輸出0。隨后,當在時刻tl處將時鐘脈沖施加至SCK時,給選擇器301的輸入值b0經(jīng)由選 擇器301的分支0被存儲在寄存器311中。其他寄存器312、313和314中的值(所有值都 為0)被保持在其中。同時,選擇器301和302選擇分支1,從而將bl供應給選擇器301。由 于選擇器302正在選擇分支1,因此其輸出是連接至分支1的寄存器312右端的級中的值, 即0。另外,當在時刻t2處將時鐘脈沖施加至SCK時,寄存器312執(zhí)行移位操作,并且到 選擇器301的輸入值bl經(jīng)由選擇器301的分支1被存儲在寄存器312左端的級中。作為 結果,{bl,0}被存儲在寄存器312中。其他寄存器311、313和314中的值被保持在其中。 同時,選擇器301和302選擇分支2,并將b2供應給選擇器301。由于選擇器302正在選擇 分支2,因此其輸出是連接至分支2的寄存器313右端的級中的值,即0。相似地,在時刻t3處給選擇器301的輸入值b2被存儲在寄存器313左端的級中, 于是得到Ib2,0,0},并輸出寄存器314右端的級中的值,即0。在時刻t4處,給選擇器301 的輸入值b3被存儲在寄存器314左端的級中,于是得到{b3,0,0,0},并且選擇器301和302 的選擇返回分支0。于是輸出寄存器311的值,即b0。根據(jù)圖5中的時序圖,可以清楚地理 解在時刻t5及其后進行的操作,因而省略其說明。如根據(jù)圖5中的時序圖可以理解的,交織電路300的輸入比特序列和輸出比特序 列具有以下設定。輸入比特序列{b0,bl,b2,b3,b4,. . . }通過交織電路300被處理,從而變成輸出 比特序列{0,0,0,0, bo, 0,0,0, b4, bl,0,0,b8, b5, b2,0,bl2, b9, b6, b3, bl6, }。以這種方式,借助于通過交織電路300進行的處理,對在被輸入到交織電路300時 彼此相鄰的比特進行擴散。即,輸入到交織電路300的比特序列作為與該輸入比特序列不 同的被擴散的比特序列被從交織電路300輸出。順帶提及,執(zhí)行掃描測試的正當?shù)膱?zhí)行者知道在交織電路300中執(zhí)行的交織處理 的算法。因此,該執(zhí)行者例如使用軟件來執(zhí)行用于執(zhí)行交織處理的逆處理的算法。借助于 該處理,可以通過得到交織處理前的比特序列來進行測試處理。另一方面,惡意分析者不知道交織處理的算法,因而該分析者僅基于通過交織電路所擴散的數(shù)據(jù),分析連接至掃描鏈的掃描FF中保持的值。在下文中,在將作為秘密信息的加密密鑰數(shù)據(jù)存儲在連接至掃描鏈的掃描FF中 的假設下,在使用通過交織電路所擴散的數(shù)據(jù)來執(zhí)行密鑰分析的情況下,進行關于搜索密 鑰所需的試驗次數(shù)的考慮。此處,為簡單起見,假設經(jīng)由掃描鏈掃描輸出的值是256比特的 比特串并且在該比特串中包含128比特的密鑰。從根據(jù)現(xiàn)有技術的不帶交織電路的電路(例如圖1中所示的半導體集成電路100) 掃描輸出比特串,從該比特串末端獲取連續(xù)的128比特作為候選密鑰,并將逐比特地對這 128比特進行移位所得到的值分別當作候選密鑰。由此,一共得到128組候選密鑰。對于這 128組候選密鑰,對給定的明文進行加密并反復進行與已保持的給定密文的比較,從而借助 于最多128次試驗可以容易地根據(jù)掃描輸出的比特序列來指明密鑰。與此相反,使用通過上面參照圖3至5說明的交織電路300所擴散的比特序列,按 以下方式進行密鑰數(shù)據(jù)的分析。當假設攻擊者不知道對掃描電路采取的措施(即攻擊者不 知道提供了交織電路300)時,攻擊者需要至少查驗256比特中所有128比特的掃描輸出的 候選密鑰。在這種情況下,有可能作為密鑰的值是考慮到128比特的順序在不重復的情況根 據(jù)256比特的掃描輸出值得到的值,因而攻擊者進行的查驗密鑰的試驗次數(shù)是P256128 >> 2128>> 128 (256P128>>2128>> 128)。在這種包括上面參照圖3至5說明的交織電路300 的配置中,試驗次數(shù)與現(xiàn)有技術相比可以顯著增加。接下來,條件稍微放寬,并且假設攻擊者知道對掃描電路采取了使用交織電路的 比特擴散措施但不知道分支數(shù)N。在這種情況下,攻擊者假定交織電路的分支數(shù)N以預先構成其反函數(shù),并將從掃 描輸出所得到的比特序列輸入其中假定了 N的交織電路的反函數(shù),從而在掃描輸出(SO)的 輸出時得到候選比特序列,即未擴散的候選比特序列。然后,對所得到的候選比特序列施加 與現(xiàn)有技術的攻擊相似的攻擊,從而獲得候選密鑰。此處,攻擊者需要對所有假定的分支數(shù) 2到N進行前述攻擊程序,因此攻擊者需要進行的試驗次數(shù)是128 (N-1)彡128。因此在N > 2的情況下,攻擊者進行的試驗次數(shù)與現(xiàn)有技術相比可能增加。另一方面,如上面所說明的,能夠正當?shù)剡M行掃描測試的制造者知道應用了交織 電路并還知道分支數(shù)N,因而能預先構成交織電路的反函數(shù)。因此,在掃描測試時,制造者可 以通過使用該反函數(shù)將掃描輸出的比特序列變換成擴散前的比特序列,以進行通常的掃描 測試。如上面所說明的,其中將上面參照圖3至5說明的交織電路300設定在掃描鏈中 的掃描輸出的前級中的半導體集成電路200能夠顯著地增加根據(jù)掃描輸出的比特序列來 分析保持在掃描FF中的比特序列的難度。因此,在處置高度機密的數(shù)據(jù)的半導體集成電路 中,可以有效地防止經(jīng)由掃描鏈的秘密信息泄露。在本實施例中,如圖4中所示,交織電路300被配置為使用選擇器和寄存器。然 而,只要能實現(xiàn)相似的數(shù)據(jù)擴散功能,則也可以使用其他電路配置,而非這種選擇器和寄存 器的組合。例如,可以應用進行數(shù)據(jù)變換處理的計算電路和加密電路。2.根據(jù)本發(fā)明的第二實施例的配置和處理接下來,將參照圖6等來說明本發(fā)明的第二實施例。圖6示出了根據(jù)本發(fā)明的第二實施例的半導體集成電路400。圖6中所示的根據(jù)本實施例的半導體集成電路400的電路部分210與上面參照圖 1說明的電路相似。即,電路部分210包括組合電路221和222,每個組合電路都包括執(zhí)行 各種數(shù)據(jù)處理和計算處理的多個電路元件;以及用于保持和傳送要輸入到組合電路221和 222的數(shù)據(jù)以及從組合電路221和222輸出的數(shù)據(jù)的掃描觸發(fā)器(FF)211至213。圖6中所示的掃描FF 211至213中每個掃描FF都可以包括多個掃描FF,而非單 個掃描FF。用于連接圖6中所示的掃描FF 211至213的連接線路被設定為用于測試電路 的掃描鏈,并被用于半導體集成電路的制造階段中的測試等。半導體集成電路400的外部端子的配置也與上面參照圖1說明的配置相似,并且 包括掃描輸入231、掃描時鐘(SCK)232、掃描啟用233和掃描輸出234。圖6中所示的半導體集成電路400包括與上面參照圖3至5說明的第一實施例中 的交織電路相似的交織電路300。交織電路300被設定在掃描輸出234的前級中。具體地, 在半導體集成電路400中位于連接掃描FF 211至213的掃描鏈的末端處的掃描FF 213的 輸出單元側(cè)上的掃描輸出234的前級中提供交織電路300。交織電路300接收掃描FF 213的輸出,執(zhí)行對輸入數(shù)據(jù)進行擴散的交織處理,并 通過掃描輸出234輸出處理后的數(shù)據(jù)。圖6中所示的根據(jù)本實施例的半導體集成電路400進一步包括控制電路450???制電路450在交織電路300中進行選擇器的控制,即選擇分支的控制。半導體集成電路400的外部端子與圖1中所示的半導體集成電路100的外部端子 相同,并且這些端子被用在掃描測試中。在掃描測試中,從掃描FF 211至213和組合電路 221至222輸出的最終輸出比特序列經(jīng)由交織電路300通過掃描輸出234被輸出,用于捕捉 操作后的掃描輸出。圖7中示出了交織電路300和控制電路450的具體的配置實例??刂齐娐?50包 括控制器451、計數(shù)器452和只讀存儲器(ROM) 453。R0M453是存儲分支選擇表的存儲單元, 該分支選擇表說明了通過交織電路300的選擇器301和302選擇分支的順序。在下文中,將在分支數(shù)N = 4的假設下給出說明。圖8示出了在如下情況中ROM 453中存儲的分支選擇表的實例其中除與分支選 擇表的地址對應的元素之外的元素數(shù)被定義為M,分支數(shù)N = 4且元素數(shù)M= 16。如圖8 中所示,分支選擇表是其中將從0到3的分支編號(數(shù)據(jù))以隨機順序存儲在ROM 453中 存儲的分支選擇表的地址中的列表。另一方面,計數(shù)器452是從0到M-1進行計數(shù)的M進制計數(shù)器。在通過控制器451 所進行的控制下,計數(shù)器452根據(jù)SCK來更新計數(shù)值。在通過控制器451所進行的控制下, 將通過計數(shù)器452生成的計數(shù)值(0至M-1)作為地址供應給ROM 453。ROM 453從圖8中所示的分支選擇表中選擇與從計數(shù)器452供應的計數(shù)值(0至 M-1)對應的地址,并且得到在被與所選擇的地址關聯(lián)同時被記錄的分支編號(數(shù)據(jù))。所 得到的分支編號(數(shù)據(jù))在通過控制器451進行的控制下基于時鐘周期被供應給交織電路 300的選擇控制器303。交織電路300的選擇控制器303使用從控制電路450供應的分支編號作為選擇器 301和302的選擇信號。借助于該處理,向交織電路300供應在存儲在控制電路450的ROM453中的分支選擇表中設定的分支編號。在使用圖8中所示的分支選擇表的情況下,基于時鐘周期向交織電路300供應分 支編號0、3、1、2、1、2、0、3...。交織電路300的選擇控制器303基于時鐘周期依次使用從控 制電路450供應的分支編號作為選擇器301和302的選擇信號。通過使存儲在ROM 453中的分支選擇表具有圖8中所示的設定,即通過使分支選 擇順序是隨機的,可以進行操作使得選擇器301和302中的分支以看似隨機的順序被選擇。在下文中,將給出關于根據(jù)第二實施例的控制電路450的操作和與之關聯(lián)的交織 電路300的操作序列的說明。現(xiàn)在,為簡單起見,假設N = 4、M= 16并且將圖8中所示的 分支選擇表存儲在控制電路450的ROM 453中。在這種情況下,計數(shù)器452起16進制計數(shù) 器作用。在控制電路450中,將計數(shù)器452的初始值(此處假設該值為0)供應給ROM 453 的地址,并且隨后從ROM 453輸出與分支選擇表的地址0x00對應的值,即0。因而,通過交 織電路300中的選擇器301和302選擇分支0。隨后,當輸入SCK時,將計數(shù)器452的值遞增并且將1供應給R0M453。由此,ROM 453輸出與分支選擇表的地址0x01對應的值,即3。結果,通過選擇器301和302選擇分支 3。此后,控制電路450每當輸入SCK時都執(zhí)行相同的操作。于是選擇器301和302 根據(jù)存儲在ROM 453中的分支選擇表來選擇分支。因而,通過使在分支選擇表中說明的選 擇順序是隨機的,可以進行操作以使得分支以看似隨機的順序被選擇。現(xiàn)在,關于基于上面所說明的操作的擴散處理,即如何對輸入到交織電路300的 比特序列{b0,bl,b2,b3,...}進行擴散,將參照圖9中的時序圖給出說明。圖9中所示的 信號名稱與對應于上面所說明的第一實施例的圖5中所示的信號名稱相似。如圖5中那樣, 為簡單起見,假設寄存器和計數(shù)器中每個的初始值都為0。在時刻t0處,向輸入選擇器301供應來自掃描鏈的第一輸出比特。這是圖9中所 示的“輸入”的b0。在該時刻處,來自控制電路450的計數(shù)器452的輸出是初始值0,因此 ROM 453的輸出也是0并且選擇器301和302選擇分支0。然而,在時刻t0處,輸入值b0 尚未被經(jīng)由選擇器301的分支0存儲在寄存器311中。存儲處理是在施加時鐘脈沖時進行 的。因此,交織電路300的輸出是連接至通過選擇器302所選擇的分支0的寄存器311的 值。即輸出0。隨后,當在時刻tl處將時鐘脈沖施加至SCK時,給選擇器301的輸入值b0經(jīng)由選 擇器301的分支0被存儲在寄存器311中。此時,寄存器312、313和314的值(所有值都 為0)被保持在其中。同時,計數(shù)器452遞增為1。這對應于圖8中所示的分支選擇表的地 址 0x01。將與存儲在ROM 453中的分支選擇表的地址0x01對應的分支3供應給交織電路 300的選擇控制器303。因而選擇器301和302選擇分支3,并且選擇器302的輸出是寄存 器314右端的級中的值,即0。而且,將bl供應給選擇器301并隨后供應給寄存器314。另外,當在時刻t2處將時鐘脈沖施加至SCK時,寄存器314進行1比特的移位操 作,并且bl經(jīng)由選擇器301的分支3被存儲在寄存器314左端的級中。作為結果,寄存器 314的值是{bl,0,0,0}。同時,計數(shù)器452遞增為2。然后ROM 453將1供應給選擇器301和302的選擇信號。因而選擇器301和302選擇分支1,選擇器302的輸出是寄存器312右 端的級中的值即0,并且將b2供應給選擇器301。在時刻t3及其后以同樣方式進行操作??梢愿鶕?jù)圖9中的序列圖來理解該操作, 因而省略其說明。如根據(jù)圖9中的序列圖可以理解的,交織電路300的輸入比特序列和輸出比特序 列具有以下設定。輸入比特序列{b0,bl,b2,b3,b4,. . . }通過交織電路300被處理,從而變成輸出 比特序列{0,0,0,0,0,0, b0,0,0,b6,0,b2,0,b3, b4, b9, bl5, bl, bll, b5, }。以這種方式,借助于通過交織電路300進行的處理,對在被輸入到交織電路300時 彼此相鄰的比特進行擴散。即,輸入到交織電路300的比特序列作為與該輸入比特序列不 同的被擴散的比特序列被從交織電路300輸出。順帶提及,執(zhí)行掃描測試的正當?shù)膱?zhí)行者知道在交織電路300中執(zhí)行的交織處理 的算法。因此,該執(zhí)行者例如使用軟件來執(zhí)行用于執(zhí)行交織處理的逆處理的算法。借助于 該處理,可以通過得到交織處理前的比特序列來進行測試處理。另一方面,惡意分析者不知道交織處理的算法,因而該分析者僅基于通過交織電 路所擴散的數(shù)據(jù),分析連接至掃描鏈的掃描FF中保持的值。在下文中,在將作為秘密信息的加密密鑰數(shù)據(jù)存儲在連接至掃描鏈的掃描FF中 的假設下,在使用通過交織電路所擴散的數(shù)據(jù)來執(zhí)行密鑰分析的情況下,進行關于搜索密 鑰所需的試驗次數(shù)的考慮。此處,為簡單起見,假設經(jīng)由掃描鏈掃描輸出的值是256比特的 比特串并且在該比特串中包含128比特的密鑰。首先,進行關于如下情況的考慮,其中攻擊者不知道對掃描電路采取了措施。在這 種情況下,如第一實施例中的那樣,攻擊者需要根據(jù)掃描輸出的輸出對于所有可能的候選 密鑰執(zhí)行試驗,因而最大試驗次數(shù)是P256128(256P128)。因此,如第一實施例中的那樣,攻 擊者進行的試驗次數(shù)可以顯著增加。接下來,進行關于如下情況的考慮,其中攻擊者知道對掃描電路使用交織電路作 為措施,但不知道分支數(shù)N和存儲在ROM中的分支選擇表。在這種情況下,如第一實施例中 的那樣,攻擊者需要搜索交織電路中的分支數(shù)N,并且需要搜索存儲在ROM中的分支選擇表 中的分支選擇順序。在下文中,將詳細說明攻擊者執(zhí)行的程序。首先攻擊者假定分支數(shù)為i,并且對 可以作為存儲在ROM中的表中的分支選擇順序使用的所有組合進行試驗。因此,相對于所 假定的分支數(shù)i,用于將被擴散的比特序列返回為來自掃描輸出的輸出的試驗次數(shù)最大是 i !。此外,攻擊者需要在每次前述試驗中從256比特的輸出中依次搜索128比特的密鑰, 因而相對于所假定的分支數(shù)i,攻擊者需要進行的試驗次數(shù)最大是128Xi !。另外,攻擊者 需要對從2到N作為分支數(shù)i的所有候選都應用前述試驗。為此,攻擊者應進行的試驗的 最大次數(shù)如下。
N128》!
(=2而且,存儲在ROM中的分支選擇表的元素數(shù)M通常大于等于N(M彡N)。在這種情 況下,試驗的最大次數(shù)如下。
128^ !—
i=2 L i _而且,在圖8中所示的分支選擇表中,選擇元素以使分支選擇順序中不出現(xiàn)重復。 或者也可以為了增加攻擊者所進行的試驗次數(shù)而選擇元素以出現(xiàn)重復。在這種情況下,試 驗的最大次數(shù)進一步增加如下。
N
i=2如上文所說明的,借助于應用其中可以隨機選擇分支的第二實施例的配置,與上 面所說明的第一實施例相比,可以進一步增加攻擊者所進行的試驗次數(shù)。此外,在第二實施 例中,攻擊者除了需要指明交織電路的分支數(shù)N以外,還需要指明分支選擇表中的各元素。 進而,由于分支選擇表的元素數(shù)M可根據(jù)ROM的大小而增加,因而即使攻擊者知道使用了交 織電路,也能增加攻擊者所進行的試驗次數(shù)。另一方面,如上面所說明的,能夠正當?shù)剡M行掃描測試的制造者知道應用了交織 電路并且還知道分支數(shù)N和分支選擇表的內(nèi)容,因而能預先構成交織電路的反函數(shù)。因此, 在掃描測試時,制造者可以通過使用該反函數(shù)將掃描輸出的比特序列變換成擴散前的比特 序列,以進行通常的掃描測試。在上面所說明的第二實施例中,通過使用存儲在ROM中的分支選擇表來生成用于 選擇分支的信號,這是進行操作以使分支以看似隨機的順序被選擇的一種形式。然而,只要 通過隨機地選擇分支可以增加攻擊者應進行的試驗次數(shù),則該方法不限于此。例如,可應用 使用隨機數(shù)生成器來生成分支選擇信號的配置,而非使用計數(shù)器和ROM。3.根據(jù)本發(fā)明的第三實施例的配置和處理最后,將參照圖10等來說明本發(fā)明的第三實施例。圖10示出了根據(jù)本發(fā)明的第 三實施例的半導體集成電路500。第三實施例是可以與上面所說明的第一或第二實施例結合應用的實施例。在上面 所說明的第一和第二實施例中,通過使用交織電路對比特序列進行擴散,這使攻擊者難以 分析比特序列中包括的諸如密鑰的重要信息。然而,當原樣應用在第一和第二實施例中說明的處理實例時,有可能攻擊者可以 借助于比上面在第一和第二實施例中說明的次數(shù)少得多的次數(shù)的試驗次來指明密鑰。將使 用第一實施例作為實例來詳細地說明這一點。在第一實施例中,為了簡單起見,以諸如0的固定值對交織電路內(nèi)的各寄存器進 行初始化。在進行這種初始化設定的情況下,輸出諸如0或1的相同值直到輸出被擴散的比 特序列的第一比特bo為止。此處,根據(jù)第一實施例中所說明的交織電路的特性可以理解, 從掃描輸出所輸出的前N個比特用作存在于交織電路中的各寄存器的初始值。因而,攻擊 者通過測量從掃描測試的開始起輸出的固定值的輸出次數(shù),可以估計出交織電路中的分支 數(shù)N。因此,在實際應用第一和第二實施例的情況下,各寄存器的初始值應該不是固定的。 滿足該條件的配置將在以下作為第三實施例來說明。在第三實施例中,以隨機數(shù)對交織電路中的寄存器進行初始化。即,第三實施例用 作第一和第二實施例的附加功能。
圖10示出了根據(jù)本發(fā)明的第三實施例的半導體集成電路500。圖10中所示的配 置與上面參照圖3說明的根據(jù)第一實施例的半導體集成電路200的區(qū)別在于添加了初始化 單元550。圖10中所示的根據(jù)本實施例的半導體集成電路500的電路部分210與上面參照 圖1說明的電路相似。即,電路部分210包括組合電路221和222,每個組合電路都包括執(zhí) 行各種數(shù)據(jù)處理和計算處理的多個電路元件;以及用于保持和傳送要輸入到組合電路221 和222的數(shù)據(jù)以及從組合電路221和222輸出的數(shù)據(jù)的掃描觸發(fā)器(FF)211至213。交織電路300是執(zhí)行與通過根據(jù)上面所說明的第一實施例的交織電路進行的處 理相似的處理的電路。交織電路300接收掃描FF 213的輸出,執(zhí)行對輸入數(shù)據(jù)進行擴散的 交織處理,并通過掃描輸出234輸出處理后的數(shù)據(jù)。圖11中示出了交織電路300和初始化單元550的具體的配置實例。初始化單元 550包括控制器551和隨機數(shù)生成器552。控制器551進行交織電路300中的寄存器的初 始化控制,而隨機數(shù)生成器552進行生成用于對交織電路300中的寄存器進行初始化的設 定值的處理,該設定值是隨機數(shù)??刂破?51將交織電路300中的寄存器輸入切換為來自隨機數(shù)生成器552的輸 入,并在將時鐘脈沖施加至SCK時,以隨機數(shù)對所有寄存器同時進行初始化。隨機數(shù)生成器552生成對交織電路300中的寄存器進行初始化所需的隨機數(shù)序 列。即,當交織電路300包括用于Z比特的寄存器時,隨機數(shù)生成器552生成Z比特的隨機 數(shù)序列,該隨機數(shù)序列在寄存器的初始化時被供應給每個寄存器。在下文中,將說明以隨機數(shù)序列進行初始化的各寄存器的值的具體實例。將關于交織電路300中的分支數(shù)N是4的情況給出說明。當分支數(shù)N = 4時,交 織電路300中的寄存器的級數(shù)是1+2+3+4 = 10。隨機數(shù)生成器552生成與十個寄存器設定值對應的隨機數(shù)序列{r0,rl,r2,..., r9}。以這些值對各寄存器進行初始化。在這種情況下,例如,寄存器311的值是{r0}, 寄存器312的值是{r2,rl},寄存器313的值是{r5,r4,r3},而寄存器314的值是{r9,r8, r7, r6}。圖12是在第一實施例中以前述隨機數(shù)對寄存器進行初始化的情況下的序列圖。 各信號與上面參照圖5說明的信號相似。在時刻t0處,對各寄存器進行初始化并將前述隨機數(shù)存儲在寄存器中。在時刻tl 及其后,將存儲在通過掃描鏈連接的掃描FF中的值存儲在交織電路300中的寄存器中。輸 入到交織電路300的比特序列是{b0, bl,b2,b3,b4, },這與在第一實施例的操作的說 明中的輸入比特序列相似。該操作與第一實施例中的操作相似,因而省略關于該操作的詳 細說明。根據(jù)圖12中所示的序列圖可以理解,交織電路300的輸入比特序列和輸出比特序 列具有以下設定。輸入比特序列{b0,bl,b2,b3,b4,...}通過交織電路300被處理,從而變成{r0, rl, r3, r6, bO, r2, r4, r7, b4, bl, r5, r8,…}。圖5中所示第一實施例的掃描輸出的比特序列包括初始化的值,即0。然而在第三實施例中,其中在第一實施例中輸出0的部分中輸出隨機數(shù)。由此可以得到以下效果。如上面在第一實施例中說明的,在以固定值對交織電路中的各寄存器進行初始化 的情況下,基于從掃描測試開始起輸出的連續(xù)的固定值(在第一實施例中是0)的數(shù)量,可 以估計出交織電路的分支數(shù)N,因而通過交織電路所進行的比特擴散的效果可能喪失。然 而,借助于應用第三實施例,連續(xù)輸出的固定值被隨機數(shù)取代,因此根據(jù)從掃描輸出所輸出 的比特序列難以估計分支數(shù),并且攻擊者需要如上面各實施例中說明的那樣搜索分支數(shù)的 所有候選。另一方面,能夠正當?shù)剡M行掃描測試的制造者通過預先備好交織電路的反函數(shù)并 將掃描輸出的比特序列變換成被輸入到交織電路前的比特序列,可以進行通常的掃描測 試。即,即使添加了初始化功能,對于通過該功能掃描輸出的比特序列也不需要新的操作。在第三實施例中說明了交織電路中的寄存器的初始化的實例。除該示例以外,也 可以使用具有如下功能的任何配置,該功能每次都將交織電路中的各寄存器初始化為對于 攻擊者是未知的值。已經(jīng)說明了其中將初始化單元添加至第一實施例的配置實例?;蛘咭部梢詫⒊跏?化單元與第二實施例結合。添加初始化單元可以增加分析秘密信息的難度。如上面簡要地說明的,交織電路300的配置不限于這種選擇器和寄存器的組合, 并且只要能實現(xiàn)數(shù)據(jù)擴散功能,也可以利用其他電路配置。例如,可以將用于進行數(shù)據(jù)變換 處理的計算電路和加密電路應用于該電路配置。此外,就防止秘密信息的泄露而言,將掃描 鏈布局為使得用于存儲諸如密鑰信息的秘密信息的寄存器被離散地而非連續(xù)地連接是有 效果的。即,例如,通過設定其中用于存儲諸如加密密鑰的秘密信息的多個寄存器被離散地 而非連續(xù)地連接的掃描鏈,可以進一步增加分析來自通過掃描鏈的輸出的數(shù)據(jù)的難度。在上面所說明的實施例中,主要關于集成電路的配置給出了說明?;蛘撸厦鎸嵤?例中說明的半導體集成電路可以被裝入諸如個人計算機(PC)的信息處理裝置中,并在信 息處理裝置中對根據(jù)每個上面所說明的實施例的半導體集成電路中的數(shù)據(jù)擴散處理進行 控制。通過使用存儲在半導體集成電路中的存儲器中的程序,可以通過在上面實施例中說 明的半導體集成電路中的控制器來執(zhí)行該程序的控制?;蛘?,借助于使用連接到信息處理 裝置中的半導體集成電路的LSI元件中提供的控制器和存儲器,通過執(zhí)行程序來將命令輸 入到具有上面所說明的配置的半導體集成電路,以對諸如交織處理的數(shù)據(jù)擴散處理進行控 制。上面給出了關于本發(fā)明的具體實施例的詳細說明。然而很明顯,本領域的技術人 員在不脫離本發(fā)明的范圍的情況下可以得到這些實施例的修改和替換。即,本發(fā)明的實施 例是以實例的形式被公開的,并且不應以限定性的方式來解釋。為了判斷本發(fā)明的范圍,應 參考所附的權利要求。在本說明書中說明的一系列處理可以使用硬件和軟件中的任一種或硬件和軟件 的復合配置來被執(zhí)行。在使用軟件執(zhí)行處理的情況下,說明處理順序的程序可以通過被安 裝在內(nèi)置于專用硬件的計算機的存儲器中來被執(zhí)行,或者該程序可以通過被安裝在能夠執(zhí) 行各種處理的多用途計算機中來被執(zhí)行。例如,該程序可以預先被記錄在記錄介質(zhì)中。除 了從記錄介質(zhì)被安裝到計算機中以外,還可以經(jīng)由諸如局域網(wǎng)(LAN)或因特網(wǎng)的網(wǎng)絡來接 收該程序,并且可以將該程序安裝在諸如內(nèi)置硬盤的記錄介質(zhì)中。
說明書中說明的各種處理不僅可以根據(jù)說明按時間被串行執(zhí)行,還可以根據(jù)執(zhí)行 處理的裝置的處理能力或根據(jù)需要被并行地或分別地執(zhí)行。在本說明書中,系統(tǒng)是指多個 裝置的邏輯集合,而具有各自配置的裝置不一定在同一殼體內(nèi)。本專利申請包含與在2009年5月1日提交日本專利局的日本在先專利申請 2009-111748中公開的主題內(nèi)容相關的主題內(nèi)容,該在先專利申請的全部內(nèi)容通過引用而 合并于此。本領域的技術人員應當理解,取決于設計需求和其他因素,可以想到各種修改、組 合、子組合和替換,只要它們在所附權利要求或其等同物的范圍內(nèi)。
權利要求
一種半導體集成電路,包括掃描鏈,所述掃描鏈被配置為充當供測試所述半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器;以及交織電路,所述交織電路被設在所述掃描鏈的輸出部分處,其中所述交織電路包括包括不同級數(shù)的存儲元件的多個分支,選擇器,所述選擇器被配置為選擇所述多個分支中的一個分支用作輸入/輸出分支,所述輸入/輸出分支進行對來自所述掃描鏈的數(shù)據(jù)的輸入和對來自所述交織電路的數(shù)據(jù)的輸出,以及選擇器控制器,所述選擇器控制器被配置為在每一預定定時處,在所述多個分支之間執(zhí)行切換處理以選擇所述輸入/輸出分支。
2.根據(jù)權利要求1所述的半導體集成電路,其中所述選擇器控制器在每次從所述掃描鏈輸入數(shù)據(jù)時,在所述多個分支之間執(zhí)行切 換處理以選擇所述輸入/輸出分支。
3.根據(jù)權利要求1所述的半導體集成電路,其中所述選擇器控制器根據(jù)預設的切換序列,在所述多個分支之間執(zhí)行切換處理。
4.根據(jù)權利要求1所述的半導體集成電路,進一步包括存儲器,所述存儲器被配置為存儲分支選擇表,所述分支選擇表用于選擇所述多個分 支中的一個分支用作輸入/輸出分支,所述輸入/輸出分支進行對來自所述掃描鏈的數(shù)據(jù) 的輸入和對來自所述交織電路的數(shù)據(jù)的輸出,并且在所述分支選擇表中存儲器地址和分支 識別符被彼此關聯(lián);計數(shù)器,所述計數(shù)器被配置為在每一預定定時處對計數(shù)值進行計數(shù);以及包括控制器的控制電路,所述控制器被配置為將與存儲器地址對應的分支識別符從所 述分支選擇表輸出至所述交織電路的所述選擇器控制器,所述存儲器地址對應于所述計數(shù) 器的計數(shù)值,其中所述選擇器控制器執(zhí)行用于選擇與從所述控制電路輸入的分支識別符對應的分 支作為所述輸入/輸出分支的處理。
5.根據(jù)權利要求4所述的半導體集成電路,其中所述分支選擇表具有將所述分支識別符隨機地與所述存儲器地址關聯(lián)的設定,并且其中所述選擇器控制器執(zhí)行用于根據(jù)從所述控制電路輸入的隨機序列中的分支識別 符來隨機地選擇所述輸入/輸出分支的處理。
6.根據(jù)權利要求1至5中的任一項所述的半導體集成電路,進一步包括初始化單元,所述初始化單元被配置為對在所述多個分支中所包括的所述存儲元件的 初始值進行設定。
7.根據(jù)權利要求6所述的半導體集成電路,其中所述初始化單元包括隨機數(shù)生成器,并執(zhí)行用于輸入由所述隨機數(shù)生成器所生成 的隨機數(shù)作為在所述多個分支中所包括的所述存儲元件的初始值的初始化處理。
8.根據(jù)權利要求1至7中的任一項所述的半導體集成電路,其中所述存儲元件是寄存器。
9.一種包括根據(jù)權利要求1至8中的任一項所述的半導體集成電路的信息處理裝置。
10.一種在信息處理裝置中執(zhí)行的輸出數(shù)據(jù)擴散方法,所述方法包括以下步驟在交織電路中執(zhí)行用于對來自掃描鏈的輸出進行擴散的處理,所述掃描鏈被配置為充 當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器,其中所述執(zhí)行步驟包括在包括不同級數(shù)的存儲元件的多個分支之間依次切換,以選 擇所述多個分支中的一個分支用作輸入/輸出分支,所述輸入/輸出分支進行對來自所述 掃描鏈的數(shù)據(jù)的輸入和對來自所述交織電路的數(shù)據(jù)的輸出。
11.一種使得信息處理裝置執(zhí)行輸出數(shù)據(jù)擴散處理的程序,所述程序包括以下步驟 在交織電路中執(zhí)行用于對來自掃描鏈的輸出進行擴散的處理,所述掃描鏈被配置為充當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器,其中所述執(zhí)行步驟包括在包括不同級數(shù)的存儲元件的多個分支之間依次切換,以選 擇所述多個分支中的一個分支用作輸入/輸出分支,所述輸入/輸出分支進行對來自所述 掃描鏈的數(shù)據(jù)的輸入和對來自所述交織電路的數(shù)據(jù)的輸出。
全文摘要
本發(fā)明提供了一種半導體集成電路、一種信息處理裝置、一種輸出數(shù)據(jù)擴散方法以及一種程序,該半導體集成電路包括掃描鏈,該掃描鏈被配置為充當供測試半導體集成電路用的連接路徑并被配置為連接多個觸發(fā)器;以及交織電路,該交織電路被設在掃描鏈的輸出部分處。該交織電路包括包括不同級數(shù)的存儲元件的多個分支;選擇器,該選擇器被配置為選擇多個分支中的一個分支用作輸入/輸出分支,該輸入/輸出分支進行對來自掃描鏈的數(shù)據(jù)的輸入和對來自交織電路的數(shù)據(jù)的輸出;以及選擇器控制器,該選擇器控制器被配置為在每一預定定時處,在多個分支之間執(zhí)行切換處理以選擇輸入/輸出分支。
文檔編號G01R31/3185GK101877248SQ20101015912
公開日2010年11月3日 申請日期2010年4月23日 優(yōu)先權日2009年5月1日
發(fā)明者宮戶良和, 草川雅文 申請人:索尼公司