(57)【要約】【課題】チップの内部にあるアットスピードの論理ＢＩＳＴ回路を用いた、論理ブロックおよびチップ内の論理ゲートを持つマクロのインタフェースの自動的な故障テストのためのシステムおよび方法を提供する。【解決手段】内部記憶要素の初期化に続いて、テスト信号群のセットが論理ブロックによって発生および処理される。論理ブロックの出力は、テストシグネチャにアキュムレートされ、レファレンスシグネチャと比較されることによって、故障を検出する。テストは、簡単なテストベクタを用いてＡＴＥ（自動試験装置）上で実行されえ、チップを備える実際のボード上でフィールドエンジニアによって実行されえる。【選択図】図５
2006113058.tif 000002
【特許請求の範囲】
【請求項１】
半導体デバイスであって、
クロック信号およびリセット信号に接続されたフリップフロップ群およびメモリ群のセットを有する論理ブロック、
前記論理ブロックによる処理のためのテスト信号群のセットを発生するパターンジェネレータ、
前記テスト信号を処理の後に、前記論理ブロックによって作られた出力群のセットに基づいてテストシグネチャを作るシグネチャアキュムレータ、および
前記フリップフロップおよびメモリを初期化し、前記論理ブロックのテストを開始する内蔵自己試験（論理ＢＩＳＴ）回路
を備え、
前記フリップフロップおよびメモリは、前記フリップフロップおよびメモリにわたる前記リセット信号のタイミングのバラツキまたは伝搬遅延にもかかわらず、それらが既知の値を同時に記憶するようにする
半導体デバイス。
【請求項２】
請求項１に記載の半導体デバイスであって、前記フリップフロップおよびメモリを初期化する前記論理ＢＩＳＴ回路は、
（ａ）前記クロック信号をゲーティングすること、
（ｂ）前記リセット信号をアクティベートすること、
（ｃ）前記リセット信号をアクティブに保持しながら前記クロック信号を再開すること、
（ｄ）前記クロック信号を再びゲーティングすること、および
（ｅ）前記リセット信号をディアクティベートすること
を含むシーケンスを実行する半導体デバイス。
【請求項３】
請求項２に記載の半導体デバイスであって、前記論理ＢＩＳＴ回路は、前記テストシグネチャをレファレンスシグネチャにさらに比較し、前記レファレンスシグネチャは、前記論理ブロックによる前記テスト信号群のセットの故障のない処理の結果を表す半導体デバイス。
【請求項４】
請求項３に記載の半導体デバイスであって、前記レファレンスシグネチャは、前記テスト信号群のセットに対する前記論理ブロックの故障のない動作をシミュレートすることによって計算される半導体デバイス。
【請求項５】
請求項２に記載の半導体デバイスであって、前記論理ブロックは、ビデオ信号をデコードするビデオデコーダ論理ブロックを備え、前記パターンジェネレータは、ＮＴＳＣ、ＰＡＬ、ＳＥＣＡＭ、コンポジットビデオ、Ｓビデオ、およびコンポーネントビデオからなるグループから選択される標準方式によって、または故障の範囲を増すために非標準方式の入力によって前記テスト信号群のセットを発生する半導体デバイス。
【請求項６】
請求項２に記載の半導体デバイスであって、前記シグネチャアキュムレータは、前記論理ブロックによって作られた前記出力群のセットを漸次圧縮することによって前記テストシグネチャを作る巡回冗長検査（ＣＲＣ）を備える半導体デバイス。
【請求項７】
請求項２に記載の半導体デバイスであって、前記論理ＢＩＳＴ回路は、前記シグネチャアキュムレータが前記論理ブロックによって作られた前記出力群のセットを読む時刻を決定する半導体デバイス。
【請求項８】
請求項１に記載の半導体デバイスであって、前記論理ブロックは、メモリ要素を有し、前記論理ＢＩＳＴはさらに、前記メモリ要素を既知の値でフラッシュすることによって初期化する半導体デバイス。
【請求項９】
クロック信号およびリセット信号に接続されたフリップフロップ群のセットを有する論理ブロックをテストする方法であって、
前記フリップフロップ群のセットを初期化すること、
前記論理ブロックによる処理のためのテスト信号群のセットを発生すること、および
前記テスト信号の処理の後、前記論理ブロックによって作られた出力群のセットに基づいてテストシグネチャを作ること
を含む方法であって、
前記フリップフロップ群のセットを初期化することは、前記フリップフロップおよびメモリにわたる前記リセット信号のタイミングのバラツキまたは伝搬遅延にもかかわらず、それらが既知の値を同時に記憶するようにする
方法。
【請求項１０】
請求項９に記載の方法であって、前記フリップフロップおよびメモリを初期化することは、
（ａ）前記クロック信号をゲーティングすること、
（ｂ）前記リセット信号をアクティベートすること、
（ｃ）前記リセット信号をアクティブに保持しながら前記クロック信号を再開すること、
（ｄ）前記クロック信号を再びゲーティングすること、および
（ｅ）前記リセット信号をディアクティベートすること
を含む方法。
【請求項１１】
請求項１０に記載の方法であって、前記テストシグネチャをレファレンスシグネチャにさらに比較することであって、前記レファレンスシグネチャは、前記論理ブロックによる前記テスト信号群のセットの故障のない処理の結果を表す、比較することを含む方法。
【請求項１２】
請求項１１に記載の方法であって、前記レファレンスシグネチャは、前記テスト信号群のセットに対する前記論理ブロックの故障のない動作をシミュレートすることによって計算される方法。
【請求項１３】
請求項１０に記載の方法であって、前記論理ブロックは、ビデオ信号をデコードするビデオデコーダ論理ブロックを備え、前記テスト信号群のセットは、ＮＴＳＣ、ＰＡＬ、ＳＥＣＡＭ、コンポジットビデオ、Ｓビデオ、およびコンポーネントビデオからなるグループから選択される標準方式によって発生される方法。
【請求項１４】
請求項１０に記載の方法であって、前記テストシグネチャを作ることは、前記論理ブロックによって作られた前記出力群のセットの漸次圧縮を含む方法。
【請求項１５】
請求項１４に記載の方法であって、前記出力群のセットの漸次圧縮は、リニアフィードバックシフトレジスタ（ＬＦＳＲ）を用いることを含む方法。
【請求項１６】
請求項１０に記載の方法であって、テスト信号群のセットを発生することは、前記論理ブロックと同じ半導体デバイス内にあるパターンジェネレータによって実行される方法。
【請求項１７】
請求項１０に記載の方法であって、テストシグネチャを作ることは、前記論理ブロックと同じ半導体デバイス内にあるシグネチャアキュムレータによって実行される方法。
【請求項１８】
請求項１０に記載の方法であって、前記フリップフロップ群のセットを初期化することは、前記論理ブロックと同じ半導体デバイス内にある内蔵自己試験（論理ＢＩＳＴ）によって実行される方法。
【請求項１９】
請求項９に記載の方法であって、前記論理ブロックは、メモリ要素を有し、
前記メモリ要素を既知の値でフラッシュすることによって初期化すること
をさらに含む方法。
【請求項２０】
請求項１９に記載の方法であって、前記メモリ要素をフラッシュすることは、
（ａ）前記クロック信号をゲーティングすること、
（ｂ）前記リセット信号をアクティベートすること、
（ｃ）前記リセット信号をアクティブに保持しながら前記クロック信号を再開すること、
（ｄ）前記クロック信号を再びゲーティングすること、および
（ｅ）前記リセット信号をディアクティベートすること
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にハードウェア試験に関し、より具体的には、論理ＢＩＳＴ（内蔵自己試験）を用いた論理ブロックの自動アットスピード故障試験に関する。
【背景技術】
【０００２】
ディジタル論理ブロックの試験は、通常、そのディジタル論理ブロックにおいて自動試験装置（ＡＴＥ）およびスキャンチェーンを用いて実行される。このアプローチは使えるが、この試験は、試験されているディジタル論理ブロックの意図された動作速度よりも遅い速度で実行される。よってアットスピードつまり所望の速度において故障するが、低速では合格してしまう論理は、検出されない。加えて、このような試験は一般に、ディジタルロジックへのマクロインタフェースはテストしない。したがって、マクロおよびロジック間のインタフェースは一般に個別に試験され、接続性の故障は検出されないかもしれない。さらに、複雑なＡＴＥインタフェースのために、フィールドエンジニアによるチップのフィールドにおける簡便な試験はできない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、簡単なＡＴＥインタフェースを用いた論理ブロック全体のアットスピードの試験のためのシステムおよび方法が必要とされる。
【課題を解決するための手段】
【０００４】
前述および他の目的を達成するために、本発明の目的によれば、提供されるものは、チップの内部にあるアットスピードの論理ＢＩＳＴ回路を用いた、論理ブロックおよび半導体デバイス（チップ）のインタフェースの自動的な故障テストのためのシステムおよび方法である。フリップフロップまたはスタティックランダムアクセスメモリ（ＳＲＡＭ）のような内部記憶要素の初期化に続いて、テスト信号群のセットが論理ブロックによる処理のために発生される。論理ブロックの出力は、テストシグネチャにアキュムレートされ、レファレンスシグネチャと比較されることによって、故障を検出する。テストは、簡単なテストベクタを用いてＡＴＥ上で実行されえ、チップを備える実際のボード上でフィールドエンジニアによって実行されえる。ＡＴＥベクタは簡単であるが、これは、それが外部のタイミング制約について煩わされることなく論理ＢＩＳＴ回路をトリガしさえすればよいからである。
【０００５】
本発明は例示によって示され、限定によっては示されず、添付の図面の図において、同様の参照番号は、同様の要素を参照する。
【発明を実施するための最良の形態】
【０００６】
以下の記載において、多くの特定の詳細が述べられるが、これは本発明の完全な理解を与えるためである。しかし、本発明はこれら特定の詳細の一部または全てがなくても実施できることが当業者には理解されよう。他の場合には、よく知られたハードウェア設計、操作および試験プロセスは、本発明の趣旨を不必要にぼかさないために詳細には記載されない。
【０００７】
したがって、提供されるのは、チップの内部にあるアットスピード論理ＢＩＳＴ（内蔵自己試験）を用いた、半導体デバイス（チップ）のロジックおよびインタフェースの自動故障試験のためのシステムおよび方法である。本発明は、簡単なテストベクタを用いたＡＴＥ上で実行される試験を可能にする。これは、チップの機能性について疑いが生じたときにいつでも、フィールドエンジニアがチップを備える実際のボード上でシステムレベルの試験を実行することも可能にする。ＡＴＥベクタは簡単であるが、これは、外部タイミング制約について煩わされることなく、それが論理ＢＩＳＴ回路をトリガするだけでよいからであり、論理ＢＩＳＴ回路がチップ内にあることによる。
【０００８】
以下は、ビデオデコーダ論理ブロックを試験するコンテキストで本発明を記載する。しかし、この実施形態は例示的であり、この技術は、オーディオデコーダ、ディジタル信号プロセッサ（ＤＳＰ）、および他のデータパイプのような、任意のタイプのディジタル論理ブロックを試験することに適用されることが理解されよう。
【０００９】
図１は、本発明のある実施形態によるビデオデコーダ集積回路を示すブロック図である。集積回路パッケージ１０１（以下では「チップ」と呼ばれる）は、ディジタル入力信号１０９に対してビデオデコーディング操作を実行する機能ロジックを提供するビデオデコーダ論理ブロック１０２を備える。ディジタル入力信号１０９は、１つ以上のアナログ・ディジタルコンバータ１０６によってチップの対応するアナログ入力信号１１０から変換される。
【００１０】
パターンジェネレータ１０３は、ビデオデコーダ１０２のためのテスト信号１１２を発生するために提供される。マルチプレクサ１０８は、変換された入力信号１１０および内部パターンジェネレータ１０３によって発生されたテスト信号１１２を好ましくはマルチプレクスする。シグネチャアキュームレータ１０４は、ビデオデコーダ１０２の出力をアキュムレートするのと同時に、所望の時に、ビデオデコーダ１０２の内部の任意の所望の信号をアキュムレートするために提供される。チップ１０１内部の論理ＢＩＳＴ回路１０５は、パターンジェネレータ１０３、ビデオデコーダ１０２およびシグネチャアキュームレータ１０４、および／または試験を調整するチップの他の部分（ＰＬＬ１１３のような）をプログラミングするために提供される。論理ＢＩＳＴ回路１０５は、パターンジェネレータ１０３をプログラムすることによって、所望なだけビデオデコーダ１０２の機能を実行および試験するために、境界条件およびコーナーケース（corner cases）を備えるテスト信号を発生し、それによりゲートにおけるスタックアット故障およびアットスピード欠陥のような論理故障を検出できる可能性を高くする。
【００１１】
パターンジェネレータ１０３によって発生された入力１１２の値の与えられたセットに応答するビデオデコーダ出力１１１の値の決定性セット（deterministic set）を発生するために、ビデオデコーダ１０２の内部のフリップフロップおよびメモリのようなフィードバック論理要素がまず初期化される。ビデオデコーダ１０２は、データパイプとして見ることができる。初期化は、このようなパイプの始めにあるフリップフロップおよびメモリが書き込まれる状態にビデオデコーダ１０２を駆動し、それら要素について繰り返しリセット信号を発生し、それによってそれが既知の値をとるようにすることによって達成される。この技術を反復して適用することによって、論理はさらにこのパイプを下っていき決定性の値（deterministic values）をとる。これは、全ての所望のフリップフロップおよびメモリが初期化されるまで続けられる。この技術を適用するために、ビデオデコーダ１０２中のリセット不能なフリップフロップのいくつかはリセット可能なフリップフロップに置き換えられえることに注意されたい。
【００１２】
入ってくるクロック信号１１４のスキュー（例えばフェーズロックループ１１３によって発生される）を管理するために、図２に概略的に示されるように、フリップフロップ１１６のいくつかは、そのクロック信号１１４をバッファ１１７のセットを通して受け取りえ、これらバッファはバッファツリーを形成し、このバッファツリーの枝は、対応するフリップフロップ１１６に延びる。バッファツリーが届いたフリップフロップ１１６については、バッファツリーは、既知の時間のウィンドウを提供し、このウィンドウの中で全てのフリップフロップ１１６はクロックエッジを見いだす。しかし、もしクロックがフリップフロップ１１６にバッファツリーを介して接続されるが、リセットライン１１５がフリップフロップ１１６にバッファツリーを介して結合されず、その代わり直接に印加される（論理ブロックではしばしばあることだが）なら、クロックエッジは、異なるフリップフロップ１１６に異なる時刻において到達しえる。さらに、特定のフリップフロップ１１６は、時にはクロックエッジの前に、また他の時にはクロックエッジの後にリセット信号１１５を受け取るかもしれない。リセット信号１１５は、一般にパワーオンの間に印加されるので、結果は、異なるパワーオン時について潜在的に異なるフリップフロップ値になる。
【００１３】
フリップフロップを既知の値でフラッシュ（flush）するためにスキャンチェーンが用いられえるが、内部スキャンチェーンタイミングのロバスト性は困難さを引き起こしえる。したがって、スキャンチェーンを伴うことなく、ビデオデコーダ１０２の機能モード中のフリップフロップ値の初期化に対応することが望ましい。単にリセット信号を印加することだけでは、適切なフリップフロップ初期化は達成できないが、それはリセット信号は必ずしも全てのフリップフロップに同じクロックエッジで届かないからである。これによって、あるフリップフロップは、他のフリップフロップよりも１つ以上のクロックサイクルだけ先にリセットされ、先にリセットされたそれらフリップフロップは、おそらく他のフリップフロップがリセットされる時までに、それらの値を変化させる。例えば、無限インパルス応答（ＩＩＲ）フィルタを備えるもののような、フィードバックを備える論理サブブロックによっては、その出力は、現在の入力だけでなく、出力の以前の値にも依存する。
【００１４】
これに対応するために、論理ＢＩＳＴ回路１０５は、本発明のある実施形態によって図３に概略的に示されるように、クロック信号１１４をゲーティングする。クロック信号１１４をゲーティングすることによって、クロック信号１１４をリセット信号１１５から分離し、それによってリセット信号１１５の伝搬におけるリセット信号１１５のアクチュエーションまたは遅延のタイミングにおける不正確さが、リセット信号１１５が異なる要素に異なるクロックサイクルで到達しないようにする。これによって、未知の値が既にリセットされたメモリまたはフリップフロップに伝搬して届くことを防ぐことができる。
【００１５】
クロック信号１１４は、リセット信号１１５がアクティベートされる（図３に示される例ではアクティブはロウである）、いくつかのクロックサイクル１１８と等価な間だけゲーティングされる。クロック信号１１４は、リセット信号１１５を用いて初期化されるべき全ての要素にリセット信号１１５が伝搬するために充分長い間だけゲーティングされる。リセット信号１１５がアクティブを維持する状態で、クロック１１４はサイクル数１１９の間だけ再開し、リセット信号１１５が到達した要素がリセットするようにする。ここの例では、４〜２０クロックサイクルは、うまく動作することがわかっており、これは、テスト中の特定の論理ブロックについて調整されえる。それからクロック信号１１４は、リセット信号１１５がディアクティベートされているいくつかのクロックサイクル１２０と等価な間だけ再びゲーティングされ、それによって全てのリセット要素が次のクロックエッジにおいて非アクティブなリセット信号１１５を受けることを可能にする。
【００１６】
論理ブロックを完全に初期化するために必要とされるクロックサイクルの数の実用的な上限は、論理ブロック１０２の動作をシミュレートするソフトウェアシミュレータを用いて決定されえる。シミュレータ中のフリップフロップまたはメモリの未知のビット値は、「未知」または「未初期化」として指定されえ、それらが既知の値で置き換えられるまで論理ブロック１０２を通して伝搬されえる。クロックサイクルの数は、未知の値が存在しなくなるまで増されえて、クロックサイクルの結果として生じる数はそれから論理ブロック１０２をテストするために用いられえる。
【００１７】
フリップフロップを初期化することに加えて、テストの前にメモリが既知の値をとるようにメモリには書き込みが行われる。ビデオデコーダ１０２において、たいていのメモリは、ランダムアクセスのためには用いられず、その代わりにディレイとして用いられ、ｎ個のメモリ位置を備えるメモリ要素はｎディレイとして機能しえる。このようなｎディレイへの入力は、ｎメモリ位置を通して順次に浸透していき、それぞれの入力は、ｎシフトのディレイの後に読み出される準備ができる。したがって、ｎディレイを駆動して既知の状態にするために、トータルでｎ個の既知の値がｎディレイに与えられる。
【００１８】
特定のｎディレイは、その値がｍクロックサイクル毎にアップデートされるフリップフロップから入力を受け取りえ、そのようなｎディレイが既知の状態まで駆動されるにはｎ・ｍクロックサイクルが必要となる。これを達成するために、本発明のある実施形態によれば図４に概略的に示されるように、論理ＢＩＳＴ回路１０５は、リセット信号１１５がアクティベートされている２，３のクロックサイクル１２１と等価なあいだ、入ってくるクロック信号１１４をゲーティングする。リセット信号１１５がアクティブに保持されている状態で、クロック１１４は、入力をｎディレイにリセットし、ｎディレイをフラッシュする（flush）ために、ｎ・ｍクロックサイクル１２２のあいだ、再開される。それからクロック信号１１４は、リセット信号１１５がディアクティベートされている２，３のクロックサイクル１２３と等価なあいだ、再びゲーティングされ、それによって全てのリセット要素が非アクティブなリセット信号１１５に次のクロックエッジにおいて遭遇することができるようにする。このプロセスは、ｎディレイをパイプの下流へとさらにフラッシュするために反復されてもよい（図４に示されるように）。フリップフロップを初期化するに当たり、理論上のｎ・ｍの数を表す適切な数を決定するために、また、そのような初期化の最後においてｎディレイに記憶される値を決定するために、ソフトウェアシミュレーションが用いられえる。
【００１９】
フリップフロップおよびメモリの初期化の後に、論理ＢＩＳＴ回路１０５は、パターンジェネレータ１０３をアクティベートする。パターンジェネレータ１０３は好ましくは、パターンジェネレータ１０３の動作のモードを示すために、かつ発生されるべきテスト信号のセットを選択するために、論理ＢＩＳＴ回路１０５によってプログラミングされえる１つ以上のレジスタを備える。パターンジェネレータによって発生される信号１１２は、ＮＴＳＣ（全国テレビジョン方式委員会）、ＰＡＬ（フェーズオルタネーションライン）、ＳＥＣＡＭ（順次式カラーおよびメモリ）、コンポジットビデオ、Ｓビデオ（「分離式」ビデオ）、コンポーネントビデオ、または他の同様の方式のような方式に基づきえる。パターンジェネレータは、テスト範囲を増すことができる非標準信号（ランダム信号、疑似ランダム信号または他の予期しない信号）も発生しえる。入って来る信号の特定の形状に依存して、ビデオデコーダ１０２のある部分は、試験されないままでもよく、それはビデオデコーダ１０２の全ての部分が、あらゆる入力信号１０９のデコードに必ずしも関わるわけではないからであることに注意されたい。したがって、ビデオデコーダ１０２を完全にテストするためには、パターンジェネレータ１０３は、望まれるだけなるべく多くのビデオデコーダの部分および機能と関係を持ち、テストするために、適切な信号パターンを発生する。ビデオデコーダは一般に、ディスプレイ上で見られるべきテスト信号を提供するいくつかの内部論理を有するので、本発明のパターンジェネレータ１０３は、大量に追加されたテスト関係のゲートオーバヘッドは呈しないことに注意されたい。
【００２０】
ＡＴＥまたは他の外部メカニズムは、ビデオデコーダ１０２に利用可能な動作モード群のセットから選ばれた動作モードを指定して、論理ＢＩＳＴ回路１０５をトリガし、ビデオデコーダ１０２のテストを開始するために用いられえる。論理ＢＩＳＴ回路１０５は、パターンジェネレータ１０３をプログラミングして、ビデオデコーダ１０２のためのテストデータのセットを発生し、ビデオデコーダ１０２をプログラミングして、発生されたテストデータを処理する所望の動作モードで動作させ、シグネチャアキュームレータ１０４をプログラミングして、ビデオデコーダ１０２からの出力を集める。論理ＢＩＳＴ回路１０５は、パターンジェネレータ１０３、ビデオデコーダ１０２、ＰＬＬ１１３およびシグネチャアキュームレータ１０４を、それらのプログラミングインタフェース（コマンドおよび入力を受け付け、オプションとして出力を示すレジスタ群のセットのような）によってバス１０７上でそれらと通信することによってプログラミングする。
【００２１】
シグネチャアキュームレータ１０４は、ＣＲＣ（循環冗長検査）メカニズムを用いて、デコーダ出力の全体をシグネチャにアキュムレートする。本質的に、ビデオデコーダ１０２の出力値は、「テストシグネチャ」と呼ばれる単一の値に圧縮される（または代替として複数の値のセットに圧縮される）。ＣＲＣは、デコーダ１０２の出力のわずかな違い（１ビットの違いのような）が存在するだけで、このテストシグネチャが正しいレファレンスシグネチャとは異なることを確実にする。論理ＢＩＳＴ回路１０５は、シグネチャアキュムレータ１０４がビデオデコーダ１０２の連続する出力を読み出す実際の時間を決定する。テストの最後において、ＣＲＣ出力レジスタに記憶された最終的な値（シグネチャ）は、テスト中にビデオデコーダ１０２によって作られた出力のシーケンスの関数である。
【００２２】
特定のテストが与えられると、ビデオデコーダ１０２による故障のない処理を表すレファレンスシグネチャは、ソフトウェアシミュレーションを用いて計算されえる。論理ＢＩＳＴ１０５は、最終的な値がレジスタに書き込まれるようにしえ、このレジスタはそれから読み出されえ、ソフトウェアシミュレーションによって予測された値と比較されえる。一致は、良いチップ（すなわち正しく機能する論理ブロック）を示し、一方、不一致は、ビデオデコーダ１０２の論理ブロック中の故障を示す。シグネチャの不一致は、テスト中の論理ブロック内の故障を示すが、論理ブロックによって実現される基礎となるアルゴリズム中のバグは示さず、これは、レファレンスシグネチャが論理ブロックをシミュレーションすることによって得られるからである。ビデオデコーダ１０２の直接の出力１１１に加えて、ＣＲＣによってテストシグネチャへと集められるビット群は、ビデオデコーダ１０２の任意の他の内部信号ラインを含みえることが理解されよう。これにより、特定のサブブロックのテストが可能になり、またはビデオデコーダ１０２の特定のエリアに故障を絞り込むことが可能になる。
【００２３】
図５は、本発明のある実施形態による論理ブロックのアットスピードの故障テスト方法を示すフロー図である。ステップ２０１において、論理ブロック１０２のフリップフロップおよびメモリを初期化する。ステップ２０２において、内部論理ＢＩＳＴ制御をトリガすることによって、論理ブロック１０２によって処理されるテスト信号を発生する。ステップ２０３において、論理ブロック１０２の出力からテストシグネチャを作る。最後に、ステップ２０４において、論理ブロック１０２がテストにパスしたか、またはフェイルしたかを決定するために、テストシグネチャをレファレンスシグネチャと比較する。
【００２４】
本発明は、ビデオデコーダ論理ブロックのコンテキストで記載されてきたが、入力信号群のセットを受け取り、出力信号群のセットを確定的に生成する他のタイプの論理ブロックをテストするためにも用いられえることが理解されよう。そのような論理ブロックの例には、オーディオデコーダ、ＤＳＰおよび他のデータパイプが含まれる。
【００２５】
本発明のある優位性は、クロックおよびテストデータを正しいフェーズで供給する複雑なＡＴＥを使用することなく、論理ブロックの意図された動作スピードにおいて論理ブロックの故障テストを行える能力があることである。
【００２６】
本発明の他の優位性は、与えられた論理ブロックをフィールドにおいてテストできる能力があることである。チップにパッケージングされ、集積回路ボードの一部として作られた論理ブロックは、テストモードに入るようにフィールドエンジニアによってチップを単に再プログラミングすることによって、フィールドエンジニアによってテストされえ、これは従来例における、ボードまたはチップを複雑な、または特殊なテスト装置を持つテスタに装着することに関わるコストをなくすことにつながる。
【００２７】
本発明の他の優位性は、スキャンチェーン法を用いるときよりも、より多くのゲートおよびマクロ（メモリおよびＰＬＬのような）をテストできる能力にある。スキャンチェーンベースのテストのアプローチを想定して論理ブロックによっては、２種類の入力をメモリに供給するマルチプレクサを備え、すなわち、ある入力は、論理ブロックの機能の一部を提供するゲートのセットを備え、一方、他の入力は、メモリのためのテスト入力を発生するゲートのセットを備える。典型的なスキャンチェーンベースのアプローチでは、ゲートおよびメモリを別々にテストするので、マルチプレクサはテストされず、論理ブロックの機能を損なうスタックアットフォールトや他のフォールトを見逃しえる。対照的に、本発明は、完全に機能するモードにおいて全体として論理ブロックをテストするので、論理ブロックの部分を別個にテストするときに検出されないで残るような故障を露見させることになる。
【００２８】
本発明の他の優位性は、簡単なＡＴＥインタフェースの提供にある。ほとんど全てがチップの内部でなされ、論理ＢＩＳＴ回路は、クロックおよびリセットラインをゲーティングすることによってチップを制御するので、ＡＴＥインタフェースは、簡単なままでよく、テストモードを選択し、テストを実行し、かつテスト結果を集めるように論理ＢＩＳＴを簡単にプログラミングする方法を提供する。
【００２９】
本発明の他の優位性は、他の論理ＢＩＳＴ回路アプローチとは異なり、提供されたテストケースは、ランダムではなく、望まれるだけ多くの論理ブロックのフィーチャをテストするように設計されていることにある。この機能は、たいていのゲートにおけるスタックアット故障を検出できる確率を高める。
【００３０】
本発明の前述の実施形態は、図示および説明として提供されている。これら実施形態は、本発明を記載されたそのままの形態に限定するよう意図はされていない。他のバリエーションおよび実施形態も上述の教示に照らして可能であり、よって、本発明の範囲は、この詳細な説明によって限定されることなく、むしろ添付の特許請求の範囲によって決まることが意図される。
【図面の簡単な説明】
【００３１】
【図１】本発明のある実施形態によるビデオデコーダ集積回路を示すブロック図である。
【図２】本発明のある実施形態による入力クロックツリーおよびリセットラインを持つフリップフロップのセットの概略図である。
【図３】本発明のある実施形態によるフリップフロップの初期化を示すタイミング図である。
【図４】本発明のある実施形態によるメモリの初期化を示すタイミング図である。
【図５】本発明のある実施形態による論理ブロックのアットスピード故障テストのための方法を示すフロー図である。
【図１】
2006113058.tif 000003
【図２】
2006113058.tif 000004
【図３】
2006113058.tif 000005
【図４】
2006113058.tif 000006
【図５】
2006113058.tif 000007
【外国語明細書】
1. TITLE OF THE INVENTION
Automatic Fault-Testing of Logic Blocks Using Internal At-Speed Logic-BIST
2. DETAILED DESCRIPTION OF THE INVENTION
BACKGROUND OF THE INVENTION
[001]The present invention relates generally to hardware testing and, more particularly, to automatic at-speed fault-testing of logic blocks using logic-BIST (Built-In Self Test) circuits.
[002]Testing of digital logic blocks is commonly performed using automatic testing equipment (ATE) and scan-chains in the digital logic block.  Although this approach works, the tests are performed at speeds that are slower than the intended operational speed of the digital logic block under test.  Thus, logic which fails at-speed or at desired speeds but passes at low speeds is not detected.  In addition, such tests generally do not test the macros interface to the digital logic. Hence, since the interfaces between macros and logic are generally tested individually, failures of the connectivity may not be detected.  Furthermore, a complex ATE interface does not allow for convenient testing of a chip in the field by a field engineer.
[003]Accordingly, a system and method is needed for at-speed testing of an entire logic block using a simple ATE interface.
SUMMARY OF THE INVENTION
[004]To achieve the foregoing and other objects and according to the purpose of the present invention, what is provided is a system and method for automatic fault-testing of a logic block and the interfaces of a semiconductor device (chip), using an at-speed logic BIST circuit internal to the chip.  Following an initialization of internal storage elements such as flip-flops or static random-access memories (SRAMs), a set of test signals are generated for processing by the logic block.  The output of the logic block is accumulated into a test signature and compared to a reference signature to detect faults.  Testing can be performed on an ATE using a simple test vector, and can be performed by a field engineer on the actual board comprising the chip.  The ATE vector is simple, since it only needs to trigger the logic-BIST circuit without bothering about external timing constraints.
[005]The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
DETAILED DESCRIPTION OF THE INVENTION
[006]In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention.  It will be understood, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details.  In other instances, well known hardware design, operation and testing processes have not been described in detail in order not to unnecessarily obscure the present invention.
[007]Accordingly, what is provided is a system and method for automatic fault-testing of the logic and the interfaces of a semiconductor device (chip), using an at-speed logic BIST (Built-In Self Test) circuit internal to the chip.  The invention allows testing to be performed on an ATE using a simple test vector.  It also allows a field engineer to perform system-level tests on the actual board comprising the chip whenever a doubt as to the functionality of the chip arises.  The ATE vector is simple, since it only needs to trigger the logic-BIST circuit without bothering about external timing constraints, since the logic-BIST circuit is internal to the chip.
[008]The following describes the invention in the context of testing a video decoder logic block.  However, this embodiment is exemplary and it should be appreciated that the technique can be applied to test any type of digital logic blocks, such as audio decoders, digital signal processors (DSPs) and other data pipes.
[009]Fig. 1 is a block diagram showing a video decoder integrated circuit, in accordance with an embodiment of the present invention.  Integrated circuit package 101 (hereinafter also referred to as a "chip") comprises a video decoder logic block 102 providing functional logic for performing video decoding operations on digital input signals 109.  The digital input signals 109 are converted from corresponding analog input signals 110 of the chip 101 by one or more analog-to-digital converters 106.
[0010]A pattern generator 103 is provided for generating test signals 112 for the video decoder 102.  A multiplexer 108 preferably multiplexes converted input signals 110 and test signals 112 generated by the internal pattern generator 103.  A signature accumulator 104 is provided for accumulating the output of the video decoder 102 as well as accumulating any desired signals internal to the video decoder 102, at the desired times.  A logic-BIST circuit 105 internal to the chip 101 is provided for programming the pattern generator 103, the video decoder 102 and the signature accumulator 104, and/or other parts of the chip (such as the PLL 113) for coordinating tests.  The logic-BIST circuit 105 programs the pattern generator 103 to generate test signals comprising boundary conditions and corner cases in order to exercise and test as much of the video decoder 102 functionality as desired, thereby increasing the likelihood of detecting logic faults such as stuck-at faults in the gates and at-speed defects.
[0011]In order to generate a deterministic set of video decoder output 111 values in response to a given set of input 112 values generated by the pattern generator 103, feedback logic elements such as flip-flops and memories internal to the video decoder 102 are first initialized.  The video decoder 102 can be viewed as a data pipe.  Initialization is achieved by driving the video decoder 102 to a condition where such flip flops and memories at the beginning of the pipe are written to, and by repeatedly generating reset signals for those elements, thereby causing them to assume known values.  Repeated application of this technique causes logic further down the pipe to also assume deterministic values.  This is continued until all desired flip-flops and memories are initialized.  Note that resettable flip-flops may be substituted for some of the non resettable flip-flops in the video decoder 102 in order to apply this technique.
[0012]To manage skew of the incoming clock signal 114 (e.g. generated by a Phase Lock Loop 113) and as shown diagrammatically in Fig. 2, some of the flip-flops 116 may receive their clock signals 114 through a set of buffers 117 which form a buffer tree, with the branches of the buffer tree leading into the corresponding flip-flops 116.  For the flip flops 116 reached by the buffer tree, the buffer tree provides a known window of time during which all of the flip-flops 116 see a clock edge.  However, if the clocks are connected to the flip-flops 116 via a buffer tree, but the reset lines 115 are not carried to the flip-flops 116 via a buffer tree and are instead applied directly (as is often the case in a logic block), clock edges may reach different flip-flops 116 at different times.  Furthermore, a particular flip-flop 116 may receive the reset signal 115 before the clock edge at some times and after the clock edge at other times.  Since the reset signal 115 is generally applied during power on, the result is potentially different flip-flop values across different power-on instances.
[0013]Although a scan-chain could be used to flush the flip-flops with known values, robustness of internal scan-chain timing may present difficulties.  Therefore, it is desirable to address initialization of flip-flop values in the functional mode of the video decoder 102 without involving scan-chains.  Simply applying a reset signal does not accomplish proper flip-flop initialization, because the reset signal does not necessarily reach all flip-flops on the same clock edge.  This causes some flip-flops to reset one or more clock cycles before other flip-flops, with the flip-flops reset earlier possibly changing their values by the time other flip-flops are reset, for example due to feedback logic.  For example, in some logic sub-blocks comprising feedback, such as ones comprising infinite impulse response (IIR) filters, the output depends not only on current inputs but also on previous values of the outputs.
[0014]To address this, the logic BIST circuit 105 gates the clock signal 114, as shown diagrammatically in Fig. 3 in accordance with an embodiment of the present invention.  Gating the clock signal 114 separates it from the reset signal 115 such that inaccuracies in the timing of the reset signal 115 activation or delays in the propagation of the reset signal 115 do not cause the reset signal 115 to reach different elements at different clock cycles.  This prevents unknown values from propagating into already-reset memories or flip-flops.
[0015]The clock signal 114 is gated for an equivalent of a few clock cycles 118 during which the reset signal 115 is activated (active is low for the example shown in Fig. 3).  The clock signal 114 is gated long enough for the reset signal 115 to propagate to all the elements that are to be initialized using the reset signal 115.  With the reset signal 115 held active, the clock 114 is resumed for a number of cycles 119, causing those elements that are reached by the reset signal 115 to reset.  In our example, 4 to 20 clock cycles have been found to work well, and this can be adjusted for the particular logic block under test.  The clock signal 114 is then gated again for an equivalent of a few clock cycles 120 during which the reset signal 115 is deactivated, thereby allowing all the reset elements to see an inactive reset signal 115 at the next clock edge.
[0016]A practical upper bound on the number of clock cycles needed to fully initialize the logic blocks can be determined using a software simulator which simulates the operation of the logic block 102.  Unknown bit-values of flip-flops or memories in the simulator can be designated as "unknown" or "un-initialized" and propagated through the logic block 102 until they are replaced with known values.  The number of clock cycles can be increased until there are no more unknown values, and the resulting number of clock cycles can then be used to test the logic block 102.
[0017]In addition to initializing flip-flops, memories are written to so that they assume known values prior to a test.  In a video decoder 102, most memories are used not for random-access but instead as delays, with a memory element that comprises n memory locations serving as an n-delay.  The inputs to such an n-delay migrate sequentially through the n memory locations, each input ready to be read out after a delay of n shifts.  Hence, in order to drive an n-delay into a known state with a known set of values, a total of n known values are fed into the n-delay.
[0018]Since a particular n-delay may receive an input from a flip-flop whose value is updated every m clock cycles, n・m clock cycles are needed to drive such an n delay to a known state.  To achieve this, the logic-BIST circuit 105 gates the incoming clock signal 114 for an equivalent of a few clock cycles 121 during which the reset signal 115 is activated, as shown diagrammatically in Fig. 4 in accordance with an embodiment of the present invention.  With the reset signal 115 held active, the clock 114 is resumed for n・m clock cycles 122 in order to reset inputs to the n-delay and thereby flush the n delay.  The clock signal 114 is then gated again for an equivalent of a few clock cycles 123 during which the reset signal 115 is deactivated, thereby allowing all the reset elements to see an inactive reset signal 115 at the next clock edge.  This process can be repeated (as shown in Fig. 4) to flush n-delays further down the pipe.  As with initializing flip flops, software simulation can be used to determine a proper number for representing the theoretical n・m figure, as well as to determine the values stored in the n-delays at the end of such initialization.
[0019]After initializing the flip-flops and memories, the logic-BIST circuit 105 activates the pattern generator 103.  The pattern generator 103 preferably comprises one or more registers that can be programmed by the logic-BIST circuit 105 to indicate a mode of operation of the pattern generator 103 and to choose a set of test signals to be generated.  The signals 112 generated by the pattern generator may be according to standards such as NTSC (National Television Standards Committee), PAL (Phase Alternation Line), SECAM (Systeme Electronique Couleur avec Memoire), composite video, S-video ("Separate" Video), component video, or other similar standard.  The pattern generator may also generate non-standard signals (such as random signals, pseudo-random signals or other unexpected signals) which can increase the test coverage.  Note that depending on the particular shape of the incoming signal, some parts of the video decoder 102 may remain untested, since not every part of the video decoder 102 is necessarily engaged in decoding every incoming signal 109.  Therefore, in order to fully test the video decoder 102, the pattern generator 103 generates proper signal patterns in order to engage and test as many portions and functionalities of the video decoder as desired.  Note that since video decoders generally have some internal logic for providing test signals to be viewed on a display, the pattern generator 103 of the present invention does not represent significant added test-related gate overhead.
[0020]An ATE or other external mechanism can be used to trigger the logic-BIST circuit 105 and initiate testing of the video decoder 102, specifying an operational mode chosen from the set of operational modes available to the video decoder 102.  Logic-BIST circuit 105 programs the pattern generator 103 to generate a set of test data for the video decoder 102, programs the video decoder 102 to operate in a desired operational mode for processing the generated test data, and programs the signature accumulator 104 to collect the output from the video decoder 102.  Logic-BIST circuit 105 programs the pattern generator 103, the video decoder 102, the PLL 113 and the signature accumulator 104 by communicating with them over the bus 107 according to their programming interfaces (such as a set of registers for accepting commands and inputs and optionally for indicating outputs).
[0021]Signature accumulator 104 uses a CRC (cyclic redundancy check) mechanism to accumulate the entire decoder output to a signature.  In essence, the video decoder 102 output values are compressed into a single value referred to as the "test signature" (or alternatively compressed into a set of values).  CRC ensures that the test signature will differ from a correct reference signature even in the presence of a slight change (such as a one-bit change) of the decoder 102 output.   The logic BIST circuit 105 determines the actual times at which the signature accumulator 104 reads the consecutive outputs of the video decoder 102.  At the end of a test, the final value (signature) stored in the CRC output register is a function of the sequence of outputs produced by the video decoder 102 during the test.
[0022]Given a particular test, a reference signature representing fault-free processing by the video decoder 102 can be computed using software simulation.  The logic-BIST circuit 105 can cause the final values to be written to a register which can then be read and compared to the values predicted by the software simulation.  A match indicates a good chip (i.e. a correctly functioning logic block), while a mismatch indicates a fault in the video decoder 102 logic block.  Note that a signature mismatch indicates a fault in the logic block under test, and not a bug in the underlying algorithm implemented by the logic block, since the reference signature is obtained by simulating the logic block.  It should also be appreciated that in addition to the direct output 111 of the video decoder 102, the bits collected by the CRC into a test signature may include any other internal signal lines of the video decoder 102.  This enables testing of specific sub-blocks or narrowing down faults to specific areas of the video decoder 102.
[0023]Fig. 5 is a flow diagram illustrating a method for at-speed fault-testing of a logic block, in accordance with an embodiment of the present invention.  At step 201, initialize flip-flops and memories of the logic block 102.  At step 202, trigger the internal logic-BIST control to generate test signals for processing by the logic block 102.  At step 203, produce a test signature from the output of the logic block 102.  Finally, at step 204, compare the test signature to a reference signature in order to determine whether the logic block 102 passed of failed the test.
[0024]Although the invention has been described in the context of a video decoder logic block, it should be appreciated that it can also be used to test other types of logic blocks that accept a set of input signals and deterministically generate a set of output signals.  Examples of such logic blocks include audio decoders, DSPs and other data pipes.
[0025]One advantage of the present invention is the ability to conduct fault-testing of a logic block at the intended operational speed of the logic block without the use of a complex ATE for feeding clock and test data at correct phase.
[0026]Another advantage of the present invention is the ability to test a given logic block in the field.  A logic block that is packaged into a chip and made part of an integrated circuit board can be tested by a field engineer simply by re-programming the chip to enter a test-mode, eliminating costs which are otherwise involved in taking the board or the chip to a tester with complex or specialized test equipment.
[0027]Another advantage of the present invention is the ability to test more gates and macros (such as memories and PLLs) than when using a scan-chain test method.  Some logic blocks, in anticipation of a scan-chain based testing approach, comprise multiplexers which feed two kinds of input into a memory: one input comprises a set of gates for providing a portion of the logic block functionality, while another input comprises a set of gates for generating test input for the memory.  Since a typical scan chain based approach tests the gates and the memories separately, the multiplexers are not tested and may harbor stuck-at faults or other faults compromising logic block functionality.  In contrast, the present invention tests the logic block in a fully functional mode and as a whole, exposing faults that would remain undetected when testing portions of the logic block separately.
[0028]Another advantage of the present invention is the provision of a simple ATE interface.  Since almost everything is done internally within the chip and the logic-BIST circuit controls the chip by gating the clock and reset lines, the ATE interface is kept simple and provides a way to simply program the logic-BIST circuit to choose the test-modes, perform the tests and collect test results.
[0029]Another advantage of the present invention is that unlike other logic-BIST circuit approaches, the provided test cases are not random but are designed to test as many features of the logic block as desired.  This capability increases the likelihood of detecting stuck-at faults in most gates.
[0030]Foregoing described embodiments of the invention are provided as illustrations and descriptions.  They are not intended to limit the invention to precise form described.  Other variations and embodiments are possible in light of above teachings, and it is thus intended that the scope of invention not be limited by this Detailed Description, but rather by Claims following.
3. BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram showing a video decoder integrated circuit, in accordance with an embodiment of the present invention.
Fig. 2 is a diagrammatic view of a set of flip-flops with an incoming clock tree and reset lines, in accordance with an embodiment of the present invention.
Fig. 3 is a timing diagram showing initialization of flip-flops, in accordance with an embodiment of the present invention.
Fig. 4 is a timing diagram showing initialization of memories, in accordance with an embodiment of the present invention.
Fig. 5 is a flow diagram illustrating a method for at-speed fault-testing of a logic block, in accordance with an embodiment of the present invention.
1. A semiconductor device, comprising:
a logic block having a set of flip-flops and memories connected to a clock signal and a reset signal;
a pattern generator for generating a set of test signals for processing by the logic block;
a signature accumulator for producing a test signature based on a set of outputs produced by the logic block upon processing the test signals; and
a built-in self-test (logic-BIST) circuit for initializing the flip flops and memories and initiating testing of the logic block;
wherein initializing the flip-flops and memories causes them to simultaneously store known values despite timing variations or propagation delays of the reset signal across the flip-flops and memories.
2. A semiconductor device as recited in Claim 1, the logic-BIST circuit for initializing the flip-flops and memories by performing the following sequence:
(a) gating the clock signal;
(b) activating the reset signal;
(c) resuming the clock signal while holding the reset signal active;
(d) gating the clock signal again; and
(e) deactivating the reset signal.
3. A semiconductor device as recited in Claim 2, the logic-BIST circuit further for comparing the test signature to a reference signature, the reference signature representing the result of fault-free processing of the set of test signals by the logic block.
4. A semiconductor device as recited in Claim 3, wherein the reference signature is computed by simulating fault-free operation of the logic block on the set of test signals.
5. A semiconductor device as recited in Claim 2, wherein the logic block comprises a video decoder logic block for decoding video signals, and the pattern generator generates the set of test signals according to a standard selected from the group consisting of NTSC, PAL, SECAM, composite video, S-video, and component video or according to non-standard inputs in order to increase fault coverage.
6. A semiconductor device as recited in Claim 2, wherein the signature accumulator comprises a cyclic redundancy check (CRC) for producing the test signature by incrementally compressing the set of outputs produced by the logic block.
7. A semiconductor device as recited in Claim 2, wherein the logic-BIST circuit determines the times at which the signature accumulator reads the set of outputs produced by the logic block.
8. A semiconductor device as recited in Claim 1, the logic block having a memory element, the logic-BIST further for initializing the memory element by flushing it with known values.
9. A method for testing a logic block having a set of flip-flops connected to a clock signal and a reset signal, the method comprising:
initializing the set of flip-flops;
generating a set of test signals for processing by the logic block; and
producing a test signature based on a set of outputs produced by the logic block upon processing the test signals;
wherein initializing the set of flip-flops causes them to simultaneously store known values despite timing variations or propagation delays of the reset signal across the set of flip-flops.
10. A method as recited in Claim 9, wherein initializing the set of flip-flops comprises the following sequence:
(a) gating the clock signal;
(b) activating the reset signal;
(c) resuming the clock signal while holding the reset signal active;
(d) gating the clock signal again; and
(e) deactivating the reset signal.
11. A method as recited in Claim 10, further comprising:
comparing the test signature to a reference signature, the reference signature representing the result of fault-free processing of the set of test signals by the logic block.
12. A method as recited in Claim 11, wherein the reference signature is computed by simulating fault-free operation of the logic block on the set of test signals.
13. A method as recited in Claim 10, wherein the logic block comprises a video decoder logic block for decoding video signals, and the set of test signals are generated according to a standard selected from the group consisting of NTSC, PAL, SECAM, composite video, S-video, and component video.
14. A method as recited in Claim 10, wherein producing the test signature comprises incremental compression of the set of outputs produced by the logic block.
15. A method as recited in Claim 14, wherein incremental compression of the set of outputs comprises using a linear feedback shift register (LFSR).
16. A method as recited in Claim 10, wherein generating a set of test signals is performed by a pattern generator residing in the same semiconductor device as the logic block.
17. A method as recited in Claim 10, wherein producing a test signature is performed by a signature accumulator residing in the same semiconductor device as the logic block.
18. A method as recited in Claim 10, wherein initializing the set of flip-flops is performed by a built-in self-test circuit (logic-BIST) residing in the same semiconductor device as the logic block.
19. A method as recited in Claim 9, the logic block having a memory element, further comprising:
initializing the memory element by flushing it with known values.
20. A method as recited in Claim 19, wherein flushing the memory element comprises the following sequence:
(a) gating the clock signal;
(b) activating the reset signal;
(c) resuming the clock signal while holding the reset signal active;
(d) gating the clock signal again; and
(e) deactivating the reset signal.
1. ABSTRACT
System and method for automatic fault-testing of a logic block and the interfaces of macros with logic gates inside a chip, using an at-speed logic-BIST internal to the chip.  Following an initialization of internal storage elements, a set of test signals are generated and processed by the logic block.  The output of the logic block is accumulated into a signature and compared to a reference signature to detect faults.  Testing can be performed on an ATE (Automatic Test Equipment) using a simple test vector, or can be performed by a field engineer on the actual board comprising the chip.
2. REPRESENTATIVE DRAWING
Fig. 5
2006113058.tif 000008
2006113058.tif 000009
2006113058.tif 000010
2006113058.tif 000011
2006113058.tif 000012