LSI(large-scale integrated circuit:大規模集積回路)の高集積化に伴い、試験容易化設計(design for testability)の重要性が増してきている。試験容易化設計の一つとして、BISTが知られている。ここで、BISTとは組込み試験と自己試験を組み合わせたもので、LSI内部で試験パターンの発生と出力判定を行うものである。BIST回路は、回路内部に試験系列発生機構を組み込んだものである。
試験容易化設計に関する先行技術文献は、種々知られている。例えば、特許文献1(特開2001−297598号公報)は、BIST命令用メモリを新たに組み込むことなく、プログラマブルなメモリBISTを内蔵する「半導体集積回路装置、及び半導体集積回路装置の自己テスト方法」を開示している。この特許文献1では、集積回路中のフリップフロップを直列に連結したスキャンパスレジスタをBIST命令用メモリとし、アドレスデコーダからのアドレス指令信号によりフリップフロップを選択してBIST実行命令用プログラムデータを読み出している。そして、この読み出されたプログラムデータに基づいてテストパタンを生成し、被テスト対象メモリがテストパタンデータを書き込んだ後で読み出されたデータと、当該テストパタンに相当する期待値パタンデータとを比較することによりメモリBISTを行っている。
詳述すると、特許文献1は、プログラマブルメモリBISTを組み込んだ半導体集積回路装置を開示している。この半導体集積回路装置は、組み合わせ回路と順序回路とから成るシステムロジックと、BIST制御回路と、アドレスデコーダと、テストパタン生成器と、第1及び第2のマルチプレクサと、第1及び第2の被テストメモリと、テスト結果解析器とを有する。順序回路を構成する複数のフリップフロップはシフトレジスタのように直列に連結して接続され、スキャンパスレジスタ(BIST命令用メモリ)を形成する。BIST制御回路は、アドレスデコータ制御用信号をアドレスデコータへ供給する。アドレスデコータはアドレス指令信号をBIST命令用メモリに与え、BIST命令用メモリより選択的に順次プログラムデータを読み出す。テストパタン生成器は、BIST制御回路から出力される制御信号に応じてそのプログラムデータに対応したテストパタンデータを順次発生させる。また、テストパタン生成器は、テストパタンデータをテスト結果解析器へ与える。第1及び第2のマルチプレクサは、テストパタン生成器から発生されたテストパタンデータと、システムロジックからの出力データとを切り替え、第1及び第2の被テストメモリへの入力データを選択する。第1及び第2の被テストメモリから読み出されたデータは、通常のシステム動作時はデータバスを介してシステムロジックへ出力され、BIST動作時はテスト解析器へ取り込まれる。テスト結果解析器は、取り込まれたメモリ出力データと、テストパタンデータに相当する期待値パタンデータとを比較してテスト解析結果(比較結果)を出力する。
また、特許文献2(特開昭63−145547号公報)は、演算回路等のチェックに用いられるモジュロW回路を開示している。この特許文献2に開示されたモジュロW回路は、wビット(w≧2)の入力、wビットの出力を有するモジュロW回路であって、wビットで表現することができる2w通りの2進値のうち、全ビットが“1”のコードは、故障が検出されたことを示すエラーコードとして定義され、全ビットが“1”を除く残りのW(=2w−1)は、モジュロWのW通りのコードとして定義され、故障が発生又は故障を検出してエラーコードを生成した際には、そのエラーコードを伝播させることを特徴とする。そして、モジュロW回路は、n値のwビットデータA1=[a11,a12,・・・,a1w]、A2=[a21,a22,・・・,a2w]、・・・、An=[an1,an2,・・・,anw]の入力のうちの1つ以上が前記エラーコードを示しているとき、wビットデータC=[c1,c2,・・・,cn]として前記エラーコードを出力する。
詳述すると、特許文献2では、実施例としてW=3の場合、すなわちモジュロ3回路を開示している。そして、モジュロ3回路を使用した演算装置は、第1及び第2の2進データと、それぞれの第1及び第2のモジュロ3期待値とを入力し、第1の2進データと第2の2進データとの演算結果と、演算結果のモジュロ3値とを出力する。モジュロ3回路を使用した演算装置は、第1及び第2入力レジスタ、演算回路、および演算結果出力レジスタからなる通常の演算装置の外に、後述するモジュロ3回路を備えている。モジュロ3回路は、第1及び第2の入力モジュロ3生成回路と、第1及び第2入力モジュロ3一致回路と、第1及び第2モジュロ3保持レジスタと、演算結果モジュロ3生成回路と、モジュロ3演算回路と、演算結果モジュロ3一致回路とを備える。
第1入力モジュロ3生成回路は、第1の2進データのモジュロ3値を第1の入力モジュロ3値として生成する。第2入力モジュロ3生成回路は、第2の2進データのモジュロ3値を第2の入力モジュロ3値として生成する。演算結果モジュロ3生成回路は、演算結果のモジュロ3値を生成する。第1入力モジュロ3一致回路は、第1の入力モジュロ3値と第1のモジュロ3期待値とが一致しているか否かをチェックする。第2入力モジュロ3一致回路は、第2のモジュロ3値と第2のモジュロ3期待値とが一致しているか否かをチェックする。第1モジュロ3保持レジスタは、第1入力モジュロ3一致回路の出力モジュロ3値を保持する。第2モジュロ3保持レジスタは、第2入力モジュロ3一致回路の出力モジュロ3値を保持する。モジュロ3演算回路は、第1モジュロ3保持レジスタに保持された出力モジュロ3値と第2モジュロ3保持レジスタに保持された出力モジュロ3値との間で、上記演算回路に対応したモジュロ3演算を実行し、その結果を演算結果のモジュロ3期待値として出力する。演算結果モジュロ3一致回路は、演算結果のモジュロ3値と演算結果のモジュロ3期待値とが一致しているか否かをチェックする。
特許文献3(特開2002−342071号公報)は、除算チェックのためのハードウェア量を大幅に減少させ、除算器全体のチェックを行うことが可能な「除算器障害検出回路」を開示している。この特許文献3に開示された除算器障害検出回路は、IEEE P754規格の丸め処理に対応した除算を行う際に前記丸め処理後の商と前記丸め処理で発生する商加算指示とを考慮してモジュロ3生成を行う回路を有する。詳述すると、除算器障害検出回路では、丸め回路及び丸め加算回路による丸め処理結果から商のモジュロ3生成回路で生成されるモジュロ3結果と、除数用モジュロ3生成回路で求められた除数のモジュロ3結果との乗算を積のモジュロ3生成回路で行う。この積のモジュロ3生成回路の結果と部分剰余モジュロ3生成回路で求めた部分剰余のモジュロ3結果とを和のモジュロ3生成回路で加算する。加算したモジュロ3結果は被除数用モジュロ3生成回路で予め生成しておいた被除数のモジュロ3結果と比較回路で比較を行い、商生成部及び丸め回路、丸め加算回路で障害があるか否かを判定する。
特許文献4(特開昭60−117332号公報)は、除算チェックのためのハードウェアの量が少なく、かつ除算全体のチェックが可能である「除算装置」を開示している。この特許文献4に開示された除算装置は、除算をg進数で求める除算装置である。除算装置は、除数の近似逆数を求める逆数表メモリと、除数と近似逆数との積から補正除数を求める除数補正回路と、被除数に近似逆数を乗じて第1番目の部分剰余R1を求める乗算回路と、第i番目の部分剰余Riを四捨五入して第i番目の仮商Piを求めるN個の仮商用加算回路と、第i番目の部分剰余から第i番目の仮商と補正除数との積を減じた差をg倍して第(i+1)番目の部分剰余Ri+1を求めるN個の部分除算回路と、第(i+1)番目の部分剰余Ri+1の正負に応じて第i番目の仮商Piから0または1を減じた値の法gの主値を商の上位から第i桁目の商桁とするN個の商補正回路と、被除数のモジュロ3を作成する被除数用モジュロ3生成回路と、除数のモジュロ3を作成する除数用モジュロ3生成回路と、近似逆数のモジュロ3を作成する近似逆数用モジュロ3生成回路と、商のモジュロ3を作成する商用モジュロ3生成回路と、第(N+1)番目の部分剰余RN+1のモジュロ3を作成する回路とを備える。
特許文献5(特開2003−307551号公報)は、大規模、高性能な論理回路に対してもテスト時間を増加させずに実動作速度(At−speed)でロジックBISTを実施することを可能にし、結果としてテストコストを低減するようにした「半導体集積回路および半導体集積回路の設計方法」を開示している。特許文献5に開示された半導体集積回路では、ロジックBISTコントローラを2つに分割し、スキャンイネーブル信号とクロック信号をユーザー回路に供給する部分回路は遅延の小さいクロックで駆動し、テストパタンをユーザー回路に供給し、テスト結果を回収する部分回路は遅延の大きいクロック信号で駆動している。特許文献5に開示された半導体集積回路では、スキャン動作でスキャンFFへ入力パターンをセット後、スキャンFFから組合せ回路にテストパターンを伝播させ、組合せ回路から出力されるテスト結果をスキャンFFに取り込み、結果を回収する動作を行う。
ところで、BISTを実現するには、入力パターンの生成、入力パターンに対する期待値パターンの生成、テスト対象回路の応答結果と期待値パターンとの比較をチップ内で実現する必要がある。すなわち、BIST回路の実現には、入力パターンを自動発生して、その入力パターンに対する期待値パターンを自動生成し、結果パターンと期待値パターンとの比較を行う必要がある。
BIST回路の中でもメモリBIST回路は、全メモリセルにアクセスして“0”や“1”のパターンを書き込んだ後で読み出す事により故障検出できるので、期待値を生成することが容易に行える。メモリBIST回路は、全メモリセルを漏れなくチェックする回路なので、回路を実現し易い。
これに対して、四則演算のロジックBIST回路を実現するには、キャリー等の桁あがりなどを考慮する必要があるので、一般的に、期待値を生成することは困難である。その為、従来では、次の方法を採用している。第1の方法は、機能回路の応答結果に付随するパリティをチェックする方法である。第2の方法は、期待値パターンを生成しない代わりにテスト対象回路を二重化し、二重化したテスト対象回路からの応答結果を期待値とする方法である。
図7を参照して、上記第2の方法を採用した、従来のロジックBIST回路100について説明する。従来のロジックBIST回路100は、テスト制御部11と、パターン生成器12と、第1のテスト対象回路13と、第2のテスト対象回路13Aと、比較器30とを有する。
BIST起動指示信号Cがテスト制御部11に与えられると、テスト制御部11は、パターン生成指示信号Dをパターン生成器12に送出する。パターン生成器2は、テスト対象回路13が活性化し易く、故障を検出し易い入力パターンを生成し、その生成した入力パターンを第1のテスト対象回路13に与える。本例では、テスト対象回路13に演算器を仮定しているので、第1の入力パターンデータAと第2の入力パターンデータBとをセットする。並行して、パターン生成器12は、二重化された第2のテスト対象回路13Aに、第1の入力パターンデータAと第2の入力パターンデータBとを送出する。ここで、第1及び第2の入力パターンデータA及びBの各々は、nビットから構成されている。
第1のテスト対象回路13は、Y=A(演算)Bの演算を実行して、第1の応答結果Yを出力する。第2のテスト対象回路13Aは、YA=A(演算)Bの演算を実行して、第2の応答結果YAを出力する。ここで、第1及び第2の応答結果Y及びYAの各々も、nビットから構成されている。第1の応答結果Yと第2の応答結果YAとは比較器3に供給される。比較器30は、テスト制御部11からの比較指示信号Eに応答して、第1の応答結果Yと第2の応答結果YAとを比較する。第1の応答結果Yと第2の応答結果YAとが一致すれば、比較器30はテスト対象回路13が「故障無し」と判断する。逆に、第1の応答結果Yと第2の応答結果YAとが不一致であれば、比較器30は、第1のテスト対象回路13に「回路故障あり」と判断する。
特開2001−297598号公報
特開昭63−145547号公報
特開2002−342071号公報
特開昭60−117332号公報
特開2003−307551号公報
しかしながら、図7に図示した従来のロジックBIST回路100においては、次のような課題がある。
第1の課題は、テスト対象回路を二重化しているため、大きなハードウェアを必要とすることである。
第2の課題は、テスト対象回路13、13Aの応答結果比較がnビットのため、比較器30に大きなハードウェアを必要とすることである。別の解決案として、前述した第1の方法を採用して、nビットの応答結果Y、YAを比較するのではなく、応答結果のパリティで実施するケースもある。この場合、比較回路は小規模のハードウェアで構成できるが、演算処理によってはパリティ予測出来ないケースがある。そのため、テスト対象回路13の演算器全ステージにパリティを付加することが出来ず、故障伝播率が劣るという問題がある。
尚、特許文献1は、メモリBIST回路に関する技術的思想を開示するのみで、本発明が対象としている四則演算のロジックBIST回路については何ら開示していない。
また、特許文献2は、演算回路等のチェックに用いられるモジュロW回路を開示している。しかしながら、特許文献2はモジュロW回路を開示しているだけであって、そのモジュロW回路をロジックBIST方式に適用(採用)することについては何ら開示せず示唆していない。また、この特許文献2に開示されたモジュロW回路は、通常動作におけるチェックを前提にしているので、2つのオペランドデータからそれぞれモジュロ値を生成する必要がある。そのため、回路構成が複雑になるという問題がある。更に、特許文献2に開示されたモジュロW回路では、モジュロ値保持レジスタとして、第1モジュロ3保持レジスタと第2モジュロ3保持レジスタとの2個が必要であり、ハードウェアが大きくなるという問題もある。
さらに、特許文献3は、モジュロ3生成を行う回路を有する除算器障害検出回路を開示している。この特許文献3でも、上記特許文献2と同様に、除算器の障害検出のためにモジュロ回路を使用することを開示しているだけであって、モジュロ回路をロジックBIST方式に適用(採用)することについては何ら開示せず示唆していない。
また、特許文献4も、モジュロ回路を用いて除算チェックが行える除算装置を開示しているだけであって、モジュロ回路をロジックBIST方式に適用(採用)することについては何ら開示せず示唆していない。
特許文献5においては、大規模な論理回路の場合、スキャンイネーブル信号の遅延およびクロック信号の遅延がクロック周期に比べて無視できないほど大きくなり、アットスピード(実動作速度)で動作出来なくなるという問題がある。
したがって、本発明の目的は、少ないハードウェア追加で高い故障伝播を実現することができるロジックBIST回路を提供することにある。
本発明の他の目的は、テスト対象回路の期待値生成をモジュロ回路を使用して行う、ロジックBIST回路を提供することにある。
本発明の更に他の目的は、実動作速度で動作出来る、ロジックBIST回路を提供することにある。
本発明の第1の態様によれば、機能回路であるテスト対象回路のロジックBIST回路において、前記テスト対象回路に供給する入力データから応答結果の期待値モジュロ値を生成するモジュロ期待値生成回路と、前記テスト対象回路から出力される前記応答結果のモジュロ値を求める結果モジュロ生成回路と、前記応答結果のモジュロ値と前記期待値モジュロ値とを比較する比較器と、を有するロジックBIST回路が得られる。
上記本発明の第1の態様によるロジックBIST回路において、ロジックBIST回路は、前記入力データを生成するパターン生成器を有する。前記パターン生成器、前記モジュロ期待値生成回路、前記結果モジュロ生成回路、および前記比較器は、実動作速度で動作可能な回路で構成されることが好ましい。前記機能回路は、演算器からなって良い。
上記本発明の第1の態様によるロジックBIST回路において、前記テスト対象回路は、第1及び第2の入力パターンデータに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記モジュロ期待値生成回路は、前記第1の入力パターンデータから第1の入力モジュロ値を生成する第1の入力モジュロ生成回路と、前記第2の入力パターンデータから第2の入力モジュロ値を生成する第2の入力モジュロ生成回路と、前記第1の入力モジュロ値と前記第2の入力モジュロ値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を前記期待値モジュロ値として生成するモジュロ演算器と、から構成されて良い。また、ロジックBIST回路は、前記モジュロ演算器と前記比較器との間に挿入されて、前記期待値モジュロ値を保持するモジュロ値持回り回路を更に有することが好ましい。
上記本発明の第1の態様によるロジックBIST回路において、前記テスト対象回路は、1つの入力パターンデータと固定値とに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記モジュロ期待値生成回路は、前記入力パターンデータから入力モジュロ値を生成する入力モジュロ値生成回路と、前記入力モジュロ値とモジュロ固定値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を出力するモジュロ演算器と、を有するものであって良い。ロジックBIST回路は、前記演算モジュロ値を前記期待値モジュロ値として出力する出力手段を有してよい。ロジックBIST回路は、前記入力モジュロ生成回路と前記モジュロ演算器との間に挿入されて、前記入力モジュロ値を保持するモジュロ値持回り回路を更に有して良い。ロジックBIST回路は、前記演算モジュロ値と前記モジュロ値持回り回路で保持された前記入力モジュロ値とのどちらか一方を選択して、選択した値を前記期待値モジュロ値として出力するセレクタを有して良い。
本発明の第2の態様によれば、機能回路であるテスト対象回路にパターン生成器から入力データを供給して、前記テスト対象回路から出力される応答結果から、前記テスト対象回路が故障しているか否かを判断するためのモジュロ回路であって、前記入力データから前記応答結果の期待値モジュロ値を生成するモジュロ期待値生成回路と、前記応答結果のモジュロ値を求める結果モジュロ生成回路と、前記応答結果のモジュロ値と前記期待値モジュロ値とを比較する比較器と、を有するモジュロ回路が得られる。
上記本発明の第2の態様によるモジュロ回路において、前記パターン生成器、前記モジュロ期待値生成回路、前記結果モジュロ生成回路、および前記比較器は、実動作速度で動作可能な回路で構成されていることが好ましい。前記機能回路は演算器からなって良い。
上記本発明の第2の態様によるモジュロ回路において、前記テスト対象回路は、第1及び第2の入力パターンデータに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記モジュロ期待値生成回路は、前記第1の入力パターンデータから第1の入力モジュロ値を生成する第1の入力モジュロ生成回路と、前記第2の入力パターンデータから第2の入力モジュロ値を生成する第2の入力モジュロ生成回路と、前記第1の入力モジュロ値と前記第2の入力モジュロ値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を前記期待値モジュロ値として生成するモジュロ演算器と、を有して良い。モジュロ回路は、前記モジュロ演算器と前記比較器との間に挿入されて、前記期待値モジュロ値を保持するモジュロ値持回り回路を更に有して良い。
上記本発明の第2の態様によるモジュロ回路において、前記テスト対象回路は、1つの入力パターンデータと固定値とに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記モジュロ期待値生成回路は、前記入力パターンデータから入力モジュロ値を生成する入力モジュロ値生成回路と、前記入力モジュロ値とモジュロ固定値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を出力するモジュロ演算器と、を有するものであって良い。モジュロ回路は、前記演算モジュロ値を前記期待値モジュロ値として出力する出力手段を有して良い。モジュロ回路は、前記入力モジュロ生成回路と前記モジュロ演算器との間に挿入されて、前記入力モジュロ値を保持するモジュロ値持回り回路を更に有して良い。モジュロ回路は、前記演算モジュロ値と前記モジュロ値持回り回路で保持された前記入力モジュロ値とのどちらか一方を選択して、選択した値を前記期待値モジュロ値として出力するセレクタを有して良い。
本発明の第3の態様によれば、機能回路であるテスト対象回路のロジックBIST方法であって、前記テスト対象回路に入力データを供給するステップと、前記入力データから前記テスト対象回路の応答結果の期待値モジュロ値を生成するステップと、前記応答結果のモジュロ値を求めるステップと、前記応答結果のモジュロ値と前記期待値モジュロ値とを比較するステップと、を有するロジックBIST方法が得られる。
上記本発明の第3の態様によるロジックBIST方法において、前記機能回路は演算器からなって良い。
上記本発明の第3の態様によるロジックBIST方法において、前記テスト対象回路は、第1及び第2の入力パターンデータに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記期待値モジュロ値を生成するステップは、前記第1の入力パターンデータから第1の入力モジュロ値を生成するステップと、前記第2の入力パターンデータから第2の入力モジュロ値を生成するステップと、前記第1の入力モジュロ値と前記第2の入力モジュロ値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を前記期待値モジュロ値として生成するステップと、を有して良い。前記期待値モジュロ値を生成するステップは、前記第1の入力モジュロ値を生成するステップと前記期待値モジュロ値を生成するステップとの間に挿入されて、前記第1の入力モジュロ値を保持するステップと、前記第2の入力モジュロ値を生成するステップと前記期待値モジュロ値を生成するステップとの間に挿入されて、前記第2の入力モジュロ値を保持するステップと、を更に有して良い。
上記本発明の第3の態様によるロジックBIST方法において、前記テスト対象回路は、1つの入力パターンデータと固定値とに演算を施して、前記応答結果を出力する回路であって良い。この場合、前記期待値モジュロ値を生成するステップは、前記入力パターンデータから入力モジュロ値を生成するステップと、前記入力モジュロ値とモジュロ固定値とに対して前記テスト対象回路と同じ演算を施して、演算モジュロ値を出力するステップと、を有して良い。前記期待値モジュロ値を生成するステップは、前記演算モジュロ値を前記期待値モジュロ値として出力するステップを有して良い。前記期待値モジュロ値を生成するステップは、前記入力モジュロ値を生成するステップと前記演算モジュロ値を出力するステップとの間に挿入されて、前記入力モジュロ値を保持するステップを更に有して良い。前記期待値モジュロ値を生成するステップは、前記演算モジュロ値と前記保持された前記入力モジュロ値とのどちらか一方を選択して、選択した値を前記期待値モジュロ値として出力するステップを有して良い。
本発明では、以下に記載するような効果を奏する。
第1の効果は、機能回路、特に演算器のテスト試験において、モジュロ回路を使用することにより、テスト対象回路の中間結果などを使用する事なく、入力データから期待値データを生成できるので、演算器全体を故障検出範囲にすることができ、高い故障検出率を実現できることである。具体的には、「Y=A(演算)B」の演算に対して、モジュロデータに対しても「ModY=ModA(演算)ModB」演算が成立する性質があるので、機能回路、特に演算器の期待値生成にモジュロ回路を使用する事により、期待値モジュロ値をテスト対象回路の入力データから生成できる。
第2の効果は、機能回路の期待値生成にモジュロ回路を使用しているので、機能回路二重化に較べて大幅に少ないハードウェア量でモジュロ回路を構成できることである。モジュロ生成回路とモジュロ演算器とを使用して、期待値モジュロ値を生成できる。機能回路が演算器の場合、データ巾が大きい程、機能回路二重化に比べ、モジュロ回路のハードウェア量は少なくなるので、ハードウェア低減効果が大きい。加えて、入力データ巾制限のないパターン発生器により、簡単な構成のハードウェアを実現できる。更に、小さい比較器を使用することで、高速化し易い。これにより、AT-SPEED(実動作速度)テストを実現し易い。
以下、本発明の実施例について図面を参照して詳細に説明する。
図1を参照して、本発明の第1の実施例に係るロジックBIST回路10について説明する。図示のロジックBIST回路10は、テスト制御部11と、パターン生成器12と、テスト対象回路13と、モジュロ回路20とを有する。
モジュロ回路20は、モジュロ期待値生成回路22と、結果モジュロ生成回路24と、比較器26とから構成されている。
テスト制御部11は、テスト動作におけるテスト実行指示を行う回路である。テスト制御部11は、BIST動作を開始するBIST起動指示信号Cを受け取り、パターン生成指示信号Dと比較指示信号Eとを出力する。
パターン生成器12は、パターン生成指示信号Dに応答して、テスト対象回路13の故障を検出し易いパターン生成を行う回路である。図示の例では、パターン生成器12は、第1の入力パターンデータAと第2の入力パターンデータBとを生成する。ここで、第1及び第2の入力パターンデータA及びBの各々は、nビットデータである。第1及び第2の入力パターンデータA及びBは、モジュロ期待値生成回路22とテスト対象回路13とに送られる。
テスト対象回路13は、第1及び第2の入力パターンデータA及びBを入力して、それらのデータA及びBに対して演算(Y=A(演算)B)を実行し、応答結果Yを生成する。この応答結果Yは、結果モジュロ生成回路24に送られる。
モジュロ期待値生成回路22は、第1及び第2の入力パターンデータA及びBを入力し、後述するように、期待値モジュロ値Gを生成する。結果モジュロ生成回路24は、応答結果Yを入力し、応答結果Yを整数m(m≧3)で割った剰余ModYを結果モジュロ値Fとして生成する。比較器26は、比較指示信号Eに応答して、結果モジュロ値Fと期待値モジュロ値Gとを比較し、一致・不一致判定を行う。
前述したように、テスト対象回路13は、第1の入力パターンデータAと第2の入力パターンデータBとから応答結果Y=A(演算)Bを生成する。第1の入力パターンデータAのモジュロ値をModAとし、第2の入力パターンデータBのモジュロ値をModBとする。「Y=A(演算)B」の演算に対して、「ModY=ModA(演算)ModB」が成立する性質がある。
そこで、モジュロ期待値生成回路22は、第1の入力パターンデータAと第2の入力パターンデータBに対するモジュロ値「ModA」、「ModB」を作成し、テスト対象回路13と同じ演算をモジュロ値「ModA」、「ModB」に実施して、期待値モジュロ値「ModA(演算)ModB」を生成する。結果モジュロ値「ModY」は、結果モジュロ生成回路24によって、テスト対象回路13から出力される応答結果データYから生成する。
このように、期待値モジュロ値「ModA(演算)ModB」を入力パターンデータA、Bから作成するので、テスト対象回路13の故障を容易に検出することができる。
図2を参照して、図1に示したモジュロ期待値生成回路22の具体例について説明する。
モジュロ期待値生成回路22は、第1及び第2の入力モジュロ生成回路221、222と、モジュロ値持回り回路223と、モジュロ演算器225とから構成されている。
第1の入力モジュロ生成回路221は、第1の入力パターンデータAを整数mで割った剰余を、第1の入力モジュロ値ModAとして生成する。第2の入力モジュロ生成回路222は、第2の入力パターンデータBを整数mで割った剰余を、第2の入力モジュロ値ModBとして生成する。モジュロ演算器225は、第1及び第2の入力モジュロ生成回路221、222からそれぞれ生成された、第1及び第2の入力モジュロ値ModA、ModBを入力して、これらモジュロ値ModA、ModBに対してテスト対象回路13と同じ演算を施し、期待値モジュロ値Gを生成する。モジュロ値持回り回路223は、期待値モジュロ値Gをテスト対象回路13の演算に要する時間まで保持する。
演算器のロジックBIST回路10にモジュロ回路20を採用することにより、モジュロ生成回路221、222とモジュロ演算器225との組み合わせのみで、期待値データに対するモジュロ値を生成することが出来る。例えば、整数mが3であるとする。この場合、nビットデータA、Bを整数3で割った剰余演算である、モジュロ3演算を採用することによって、モジュロ回路20によりnビットデータA、Bを2ビットデータに圧縮できる。2ビットに圧縮されたモジュロデータModA、ModBに対してテスト対象回路13と同じ演算を施すことにより、期待値パターンに対するモジュロデータ(演算モジュロ値)ModA(演算)ModBを作成することができる。
モジュロ生成回路221,222、24とモジュロ演算器225のハードウェアは、テスト対象回路13の二重化方式のハードウェア量に較べてかなり少ない。その為、少ないハードウェアの追加で、期待値モジュロ値Gと結果モジュロ値Fとの比較が可能となる。
又、本実施例では、保持する(持ち回る)前に、モジュロ演算器225でモジュロ演算を実施するので、モジュロ値持回り回路223が1個だけでよく、ハードウェアを削減することができる。
テスト対象回路13が64ビット演算器であるとする。この場合、モジュロ生成回路221、222、24の各々は、64ビットデータを2ビットデータのモジュロデータに圧縮する。このようなモジュロ生成回路は数十ゲート〜数百ゲートのハードウェアで構成できる。モジュロ演算器225は、2ビット同士の演算を行うので、このモジュロ演算器225は数十ゲートで構成できる。これらのハードウェア量は、64ビット演算器のハードウェア量に較べて大幅に少ない。
次に、図3を参照して、図2に示したロジックBIST回路10の動作について説明する。
テスト制御部11は、タイミング1でBIST起動指示信号Cを受け、タイミング2でパターン生成指示信号Dをパターン生成器12に送出する。パターン生成器12は、テスト対象回路13が活性化し易く、故障を検出し易いパターン生成を行い、タイミング3でテスト対象回路13にパターンを送出する。
本例では、テスト対象回路13に演算器を想定しているので、パターン生成器12は、第1の入力パターンデータAと第2の入力パターンデータBとをセットする。並行して、パターン生成器12は、タイミング3で第1及び第2の入力パターンデータA、Bをそれぞれ第1及び第2の入力モジュロ生成回路221、222に送出する。
第1の入力モジュロ生成回路221は、タイミング3で第1の入力モジュロ値ModAを生成し、モジュロ演算器225に送出する。第2の入力モジュロ生成回路222は、タイミング3で第2の入力モジュロ値ModBを生成し、モジュロ演算器225に送出する。
モジュロ演算器225は、タイミング4でテスト対象回路13と同じ演算を第1の入力モジュロ値ModAと第2の入力モジュロ値ModBに対して実施して、演算モジュロ値(ModA(演算)ModB)を期待値モジュロ値Gとして出力する。
モジュロ値持回り回路223は、期待値モジュロ値Gをテスト対象回路13から応答結果Yが出力されるタイミングであるタイミング7まで保持する。
テスト対象回路13は、A(演算)Bを4サイクルで実行すると仮定する。この場合、タイミング3でテスト対象回路13に与えられた、第1及び第2の入力パターンデータA、Bは、テスト対象回路13で演算が施され、テスト対象回路13は、タイミング7で応答結果Yを返す。
結果モジュロ生成回路24は、タイミング7で応答結果Yから結果モジュロ値「ModY」を生成し、タイミング8でそれを保持する。
比較器26は、タイミング9でテスト制御部11からの比較指示信号Eに応答して、結果モジュロ値Fと期待値モジュロ値Gとを比較し、比較結果Hを出力する。比較結果Hが一致を示していれば、テスト対象回路13に「故障無し」と判断される。一方、比較結果Hが不一致を示していれば、テスト対象回路13に「故障有り」と判断される。
2つの64ビットデータA、Bを加算するケースについて、具体的なデータを提示して説明する。第1及び第2の入力パターンデータA及びBとして、A=0010101010101010(hex)、B=0001010101010101(hex)を入力したケースについて説明する。
タイミング3で、A=0010101010101010(hex)、B=0001010101010101(hex)を、テスト対象回路13に送出する。テスト対象回路13は、AとBとの間の演算を4サイクルで実行すると仮定すると、4タイミングでA+Bの加算結果を実施し、タイミング7で加算結果が生成され、加算結果であるQ=0011111111111111(hex)が送出される。
タイミング3では、第1及び第2の入力パターンデータA、Bが、それぞれ、第1及び第2の入力モジュロ生成回路221、222にセットされる。ここでは、モジュロ生成回路は、モジュロ3処理を行うと仮定する。この場合、第1の入力モジュロ生成回路221は、第1の入力モジュロ値「ModA」として01(bin)を生成し、第2の入力モジュロ生成回路222は、第2の入力モジュロ値「ModB」として01(bin)を生成する。タイミング7で、テスト対象回路13からの応答結果Q=0011111111111111(hex)に対して、結果モジュロ生成回路24でモジュロ3処理を実施して、結果モジュロ値「ModQ」として10(bin)を得る。タイミング4では、並行して、モジュロ演算器225は、「ModA」=01(bin)と「ModB」=01(bin)との加算を実施して、期待値モジュロ値としてモジュロ加算結果「ModA(加算)ModB」=10(bin)を得る。
結果モジュロ値「ModQ」と期待値モジュロ値「ModA(加算)ModB」は、同じ結果を得たので、上述した入力パターンデータA、Bに対しては、テスト対象回路13は「故障無し」と判断できる。
テスト対象回路13が故障した場合、その故障回路部分を活性化できる入力パターンデータを入力できれば、テスト対象回路13からの応答結果Yは異なる事になり、テスト対象回路13の故障を検出できる。
例えば、上記第1及び第2の入力パターンデータA及びBとして、A=0010101010101010(hex)、B=0001010101010101(hex)を使用した場合の例において、テスト対象回路13の故障により応答結果がQ=0011111111111110(hex)だった場合、結果モジュロ生成回路24から生成される結果モジュロ値はModQ=01(bin)となる。この結果モジュロ値はModQ=01(bin)は、期待値モジュロ値「ModA(加算)ModB」とは異なることになり、テスト対象回路13の故障を検出することができる。
図4を参照して、本発明の第2の実施例によるロジックBIST回路10Aについて説明する。図示のロジックBIST回路10Aは、テスト制御部11と、パターン生成器12Aと、テスト対象回路13と、第1及び第2のセレクタ16、17と、モジュロ回路20Aとを有する。
テスト制御部11は、テスト動作によるテスト実行指示を行う回路である。BIST起動指示信号Cに応答して、テスト制御部11は、パターン生成指示信号Dと比較指示信号Eとを出力する。パターン生成器12Aは、テスト対象回路13の故障を検出し易いパターン生成を行う回路である。パターン生成指示信号Dに応答して、パターン生成器12Aは、1つのnビットデータ(入力パターンデータ)Aを生成する。本例では、もう一つのビットデータ値として固定値を使用する。
第1のセレクタ16は、入力パターンデータAと固定値とのどちらか一方を選択して、第1の選択したデータを出力する。第2のセレクタ17は、固定値と入力パターンデータAとのどちらか一方を選択して、第2の選択したデータを出力する。すなわち、第1及び第2のセレクタ16、17を切り替えることにより、生成パターンと固定値とを切り替えてテスト対象回路13に入力する。
テスト対象回路13は、第1及び第2のセレクタ16及び17を介して、パターン生成器12Aで生成されたnビットデータ(入力パターンデータ)Aとnビットの固定値とを入力して、それらに演算を施し、応答結果Yを生成する。つまり、テスト対象回路13は、固定値(演算)A、A(演算)固定値、A(演算)Aのいずれかの演算を実行する。
モジュロ回路20Aは、モジュロ期待値生成回路の構成が、図2に図示したものと相違している点を除いて、図2に図示したモジュロ回路20と同様の構成を有し動作をする。従って、モジュロ期待値生成回路に22Aの参照符号を付してある。図2に示したものと同様の機能を有するものには同一の参照符号を付して、説明の簡略化のために、それらの説明は省略する。
モジュロ期待値生成回路22Aは、第2の入力モジュロ生成回路222が省略(削除)されていると共に、セレクタ226が付加されている点を除いて、図2に図示したモジュロ期待値生成回路22と同様の構成を有する。すなわち、モジュロ期待値生成回路22Aは、1つの入力モジュロ生成回路221と、1つのモジュロ値持回り回路223と、モジュロ演算器225と、セレクタ226とから構成されている。
入力モジュロ生成回路221は、nビットデータ(入力パターンデータ)Aを整数mで割った剰余を、入力モジュロ値ModAとして生成する回路である。結果モジュロ生成回路24は、nビットの応答結果Yを整数mで割った剰余ModYを、結果モジュロ値Fとして生成する回路である。モジュロ値持回り回路223は、入力モジュロ値ModAをテスト対象回路13の演算に要する時間まで保持する。モジュロ演算器225は、入力モジュロ生成回路221で生成され、モジュロ値持回り回路で持ち回された、剰余データ(入力モジュロ値)ModAに対して、テスト対象回路13と同じ演算を行う回路である。すなわち、モジュロ演算器225は、「Mod固定値(演算)ModA」の演算を行い、それを演算モジュロ値として出力する。
セレクタ226は、モジュロ値持回り回路223で保持された入力モジュロ値ModAと、モジュロ演算器225で生成された演算モジュロ値「Mod固定値(演算)ModA」とのどちらか一方を選択して、選択したモジュロ値を期待値モジュロ値Gとして出力する。
比較器26は、結果モジュロ生成回路24で生成された結果モジュロ値Fとセレクタ226で選択された期待値モジュロ値Gとを比較して、比較結果Hを出力する回路である。
このように、本実施例によるロジックBIST回路10Aにおいて、図1及び図2の第1の実施例によるロジックBIST回路10の場合のように、2つの独立したnビットパターンを演算器(テスト対象回路)13に供給するのではなく、パターン生成器12Aで生成した1つのnビットパターンデータAと固定値との組み合わせを入力する。このため、モジュロ期待値生成回路22Aは、入力モジュロ生成回路221を1系統にすることが出来、図2に示したモジュロ期待値生成回路22と比較して、ハードウェア量を削減できるという効果を奏する。
例えば、テスト対象回路13での演算が乗算であって、且つ、固定値=“1”であるとする。この場合、テスト対象回路13は、“1(乗算)A”の演算となり、その応答結果である乗算結果はAに等しくなる(乗算結果=A)。この場合、入力モジュロ生成回路221で生成した入力モジュロ値ModAを期待値モジュロ値Gとして使用できるので、モジュロ演算器225での演算は不要となる。したがたって、セレクタ226で切り替えて、モジュロ値持回り回路223で保持されている入力モジュロ値ModAを、そのまま、期待値モジュロ値Gとして使用することが出来る。
なお、上記本発明の第2の実施例では、モジュロ期待値生成回路22Aは、セレクタ226を備えているが、このセレクタ226を省略しても良い。この場合、モジュロ演算器225の出力端子と比較器26の一方の入力端子とを直接信号線(図示せず)で接続することにより、モジュロ演算器225で生成された演算モジュロ値をそのまま期待値モジュロ値Gとして出力すれば良い。
図5を参照して、本発明の第3の実施例によるロジックBIST回路10Bについて説明する。図示のロジックBIST回路10Bは、パターン生成器とモジュロ回路とを実動作速度で動作可能な回路で構成した点を除いて、図2に示したロジックBIST回路10と同様の構成を有する。従って、パターン生成器及びモジュロ回路に、それぞれ、12B及び20Bの参照符号を付してある。
モジュロ回路20Bは、モジュロ期待値生成回路22Bと、結果モジュロ生成回路24Aと、比較器26とから構成されている。モジュロ期待値生成回路22Bは、第1及び第2の入力モジュロ生成回路221A、222Aと、モジュロ値持回り回路223と、モジュロ演算器225とから構成されている。
図示のロジックBIST回路10Bは、アットスピード(実動作速度)で動作出来るロジックBIST回路である。
LSIテスターは、ミドルエンドテスターの場合、LSIを100MHz〜200MHzのテスター周波数で検査する。これに対して、LSIは、回路微細化により200MHz以上の実動作周波数で動作させる回路が増えており、500MHzや1GHzの実動作周波数で動作可能なLSIの場合もある。その為、LSIのテスト周波数ではAC動作検証が不足する傾向にある。
そこで、本実施例では、LSIテスター上で実動作速度(アットスピード)で動作可能な機能を組み込む事により、アットスピードで動作可能なロジックBIST回路10Bを実現している。
図6に、図5に示したロジックBIST回路10Bの動作を説明するためのタイムチャートを示している。
以下、図5及び図6を参照して、ロジックBIST回路10Bの具体的な構成について説明する。ここでは、テスター周波数が200MHzで、実動作周波数が600MHzであると仮定する。
テスター周波数で動作するテスト制御部11からのパターン生成指示信号Dは、実動作周波数より信号サイクルが遅いので、パターン生成器12Bでは、微分回路等を使用して実動作速度タイミング信号を生成して、パターン生成指示信号Dを取り込む。
パターン生成器12Bの内部信号は、レジスタを駆動するクロック信号の立上りエッジから、該信号を受信するレジスタを駆動するクロック信号の次の立上りエッジまでの間で伝播させる必要がある(セットアップタイム制約)。加えて、伝播する内部信号は、該信号を受信するレジスタを駆動するクロック信号の1つ前の立上りエッジより後に伝播させる必要がある(ホールドタイム制約)。
パターン生成器12Bは、決められた時間内にパターン生成を行う制約はないので、上記2つの制約(セットアップタイム制約とホールドタイム制約)を満たすように、latency(待ち時間)を調整して回路を実現する。
モジュロ回路20Bについても、上記2つの制約(セットアップタイム制約とホールドタイム制約)を満たすように、latency(待ち時間)を調整して回路を実現すれば、実動作速度で動作可能な回路となる。
テスト対象回路13が演算器である場合、高速動作の演算器は結果算出までに一般に数サイクルを要する。
モジュロ演算器225は、2ビット同士の演算であり、少ないハードウェアで実現できる。その為、モジュロ演算器225は、高速化し易く、短サイクルで動作可能な回路で実現できる。期待値モジュロ値Gと結果モジュロ値Fは2ビット同士であり、比較器26は2ビット巾の比較となる。その為、比較器26は小さい比較器となり、高速化し易く、短サイクルで動作可能な回路で実現できる。
一方、nビット巾の第1及び第2の入力パターンデータA、Bから2ビットの第1及び第2の入力モジュロ値ModA、ModBを生成する、第1及び第2の入力モジュロ生成回路221A、222Aは、論理段数を要するので、レジスタ間の論理段数を調整して、上記2つの制約(セットアップタイム制約とホールドタイム制約)を満たすように、回路を調整する。
テスト対象回路13からの応答結果Yから結果モジュロ値ModYを生成する、結果モジュロ生成回路24Aも、上記2つの制約(セットアップタイム制約とホールドタイム制約)を満たすように、回路を調整する。
上述したように、モジュロ回路20Bの回路調整を行い、結果モジュロ値ModYのlatency(待ち時間)が延びた場合、期待値モジュロ値Gを保持するモジュロ値持回り回路223の持回り時間を延ばすことにより、同じタイミングで結果モジュロ値ModYと期待値モジュロ値Gとを比較器26に入力させることができる。比較器26は、テスト制御部11からの比較指示信号Eに応答して、それらの値の比較を行う。
図2に図示したロジックBIST回路10の場合、図3に示されるように、テスター周波数でロジックBIST回路10を動作させるため、モジュロ生成回路221、222、24は、2サイクルでモジュロ値ModA、ModB、及びModYを生成する。
これに対して、図5に図示したロジックBIST回路10Bの場合、図6に示されるように、実動作周波数(速度)でロジックBIST回路10Bを動作させるため、モジュロ演算器225と比較器26は1サイクルで結果G、Hを出力するが、モジュロ生成回路221A、222A、および24Aは、5サイクルでモジュロ値ModA、ModB、及びModYを生成するので、図5に示されるように、レジスタを4段分追加して対応している。
図5に示したロジックBIST回路10Bでは、上記特許文献5の構成とは異なり、組合せ回路(テスト回路)にスキャン動作でパターンを与えるのではなく、パルス信号のパターン生成起動信号を微分回路等の回路手法で起動指示を与え、結果出力タイミングで不一致結果が発生したか否かを観測している。
図5に図示したロジックBIST回路10Bは、図2に図示したロジックBIST回路10をアットスピード(実動作速度)で動作出来るように変更した回路であるが、図4に図示したロジックBIST回路10Aに対しても、同様に、アットスピード(実動作速度)で動作出来るように変更可能であることは、当業者であれば容易に理解できるであろう。
以上、本発明について好ましい実施例について説明してきたが、本発明は上述した実施例に限定されず、本発明の趣旨(主題)を逸脱しない範囲内で種々の変形・変更が可能なのは勿論である。例えば、上記実施例では、テスト対象回路が演算器である場合を例に挙げて説明しているが、テスト対象回路はメモリ以外の機能回路であって良い。