(57)【要約】【課題】  単一の端子から入力したプログラムコードを複数のＢＩＳＴ（組み込み自己テスト）回路へ並列に供給する。【解決手段】  互いに異なる仕様を持つ複数のメモリブロック１１〜１４の各々に対応して複数のＢＩＳＴ回路２１〜２４を設ける。スキャンチェーン３０を構成するように複数のレジスタ３１〜３４を互いに連結し、外部から共通プログラム端子ＰＲＯＧＡを介してシリアルに与えられたプログラムコードをスキャンチェーン３０に入力し、各レジスタ３１〜３４に設定されたプログラムコードを対応するＢＩＳＴ回路２１〜２４へ供給する。【選択図】  図１
2006302470.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロックと、
各々前記複数の回路ブロックのうちの対応する回路ブロックのテストを行うための複数のＢＩＳＴ（組み込み自己テスト）回路と、
スキャンチェーンを構成するように互いに連結された複数のレジスタとを備え、
前記スキャンチェーンは、入力クロックに同期して外部から共通プログラム端子を介してシリアルに与えられた複数のプログラムコードを前記入力クロックに同期して順次シフトすることにより前記複数のレジスタに保持させ、
前記複数のレジスタは、前記複数のＢＩＳＴ回路の並列プログラミングを実現するように、各々保持したプログラムコードを前記複数のＢＩＳＴ回路のうちの対応するＢＩＳＴ回路へ供給することを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
前記複数の回路ブロックは、互いに異なる仕様を持つ複数のメモリブロックを含むことを特徴とする半導体装置。
【請求項３】
請求項１記載の半導体装置において、
前記複数のＢＩＳＴ回路は、各々プログラムに従い、前記複数の回路ブロックのうちの対応する回路ブロックに対して複数のテストパターンを生成する機能を有することを特徴とする半導体装置。
【請求項４】
請求項１記載の半導体装置において、
各々前記複数のＢＩＳＴ回路のうちの対応するＢＩＳＴ回路へ供給すべきプログラムコードを外部から入力するための複数の個別プログラム端子と、
前記複数のレジスタから供給されたプログラムコードと、前記複数の個別プログラム端子を介して入力されたプログラムコードとのうちのいずれを前記複数のＢＩＳＴ回路へ供給するかを選択するためのセレクタ手段とを更に備えたことを特徴とする半導体装置。
【請求項５】
請求項１記載の半導体装置において、
前記複数のＢＩＳＴ回路のうちのいずれを動作させるかを個別に制御するための制御手段を更に備えたことを特徴とする半導体装置。
【請求項６】
請求項１記載の半導体装置において、
前記スキャンチェーンは、前記複数のレジスタのうちのいずれのレジスタを、いずれの順序で連結するかを制御するための手段を有することを特徴とする半導体装置。
【請求項７】
請求項１記載の半導体装置において、
前記複数のレジスタは、ダミーコードを含めて全て同じ数のプログラムコードを保持するようにそれぞれ構成されたことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置を構成する１つのチップ上に搭載された複数の回路ブロックのテスト技術に関するものである。
【背景技術】
【０００２】
半導体装置、特にＬＳＩ（large-scale integrated circuit）のテスト容易化技術の１つとして、ＢＩＳＴ（built-in self-test：組み込み自己テスト）技術が知られている。例えば、ロジック回路をテストするためのロジックＢＩＳＴ、メモリブロックをテストするためのメモリＢＩＳＴ等がある。一般に、半導体装置に組み込まれたＢＩＳＴ回路は、テストパターン毎のテスト結果期待値を予め保持しており、生成したテストパターンをテスト対象回路ブロックに順次与え、その都度当該テスト対象回路ブロックから返されて来た出力を対応する期待値と比較する機能を有するものである。
【０００３】
ＢＩＳＴを大別すると、ハードＢＩＳＴとプログラマブルＢＩＳＴとに分けることができる。ハードＢＩＳＴは、予めテストパターンが組み込まれており、プログラマブルＢＩＳＴに比べ小面積で構成できるが、組み込めるテストパターン数の制限が厳しく、またテストパターンの変更ができない。
【０００４】
ハードＢＩＳＴの１つの従来技術によれば、複数のメモリブロックを備えた半導体装置において、通常動作時のメモリ入力とテスト時のメモリ入力とを切り替えるメモリ入力セレクタを設けることにより、各メモリブロックへのテスト入力を可能にするとともに、メモリ出力セレクタを設けることにより、各メモリブロックに係る期待値比較を単一のパターン比較器でシーケンシャルに実行することができる（特許文献１参照）。
【０００５】
一方、プログラマブルＢＩＳＴは、ハードＢＩＳＴと比べて面積では不利であるが、外部よりプログラムコードを入力することで、多種多様なテストパターンを実現することができる。そのため、テストパターンバグによるマスク修正リスクを容易に回避でき、また設計時に予期し得なかった故障モードに対応したテストパターンを採用しやすいという利点もある。今後ますます、ハードＢＩＳＴ回路よりもむしろ、プログラマブルＢＩＳＴ回路を搭載した半導体装置の比重が高まると考えられる。
【特許文献１】特開２００１−１８４９００号公報（図３及び図４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
プログラマブルＢＩＳＴ技術を採用する場合、互いに異なる仕様を持つ複数のメモリブロックが１つのチップ上に搭載されてなる半導体装置では、複数のＢＩＳＴ回路が当該半導体装置に組み込まれることとなる。これら複数のＢＩＳＴ回路は、各々のプログラムコードの入力を外部から受ける必要がある。
【０００７】
各ＢＩＳＴ回路専用のプログラム入力端子が半導体装置に設けられている場合には、ロジックテスタを用いれば、各端子から互いに異なるプログラムコードを容易に入力することができる。ロジックテスタは、多数の端子の各々に任意のロジック信号を容易に与えることができるからである。
【０００８】
これに対してメモリテスタは、メモリのアドレッシングに特化したテスタであるので、プログラム長の制限、制御可能な端子数の制限等がある。したがって、メモリテスタをＢＩＳＴ回路のプログラミングに用いる場合には、少数のプログラム入力端子から複数のＢＩＳＴ回路のプログラムコードを入力できることが望ましい。
【０００９】
本発明の目的は、複数のＢＩＳＴ回路を備えた半導体装置において、当該ＢＩＳＴ回路の数よりも少ない数の端子から入力したプログラムコードを各ＢＩＳＴ回路へ供給することができる半導体装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明では、プログラムコードの入力にスキャンチェーンを利用することとした。
【００１１】
具体的に説明すると、本発明の半導体装置は、複数の回路ブロックと、各々前記複数の回路ブロックのうちの対応する回路ブロックのテストを行うための複数のＢＩＳＴ回路と、スキャンチェーンを構成するように互いに連結された複数のレジスタとを備え、前記スキャンチェーンは、入力クロックに同期して外部から共通プログラム端子を介してシリアルに与えられた複数のプログラムコードを前記入力クロックに同期して順次シフトすることにより前記複数のレジスタに保持させ、前記複数のレジスタは、前記複数のＢＩＳＴ回路の並列プログラミングを実現するように、各々保持したプログラムコードを前記複数のＢＩＳＴ回路のうちの対応するＢＩＳＴ回路へ供給することとしたものである。
【発明の効果】
【００１２】
本発明によれば、複数のＢＩＳＴ回路を備えた半導体装置において、プログラムコードの入力にスキャンチェーンを利用することとしたので、ＢＩＳＴ回路の数よりも少ない数の端子から入力したプログラムコードを各ＢＩＳＴ回路へ並列に供給することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００１４】
図１は、本発明に係る半導体装置の構成例を示している。図１の半導体装置は、互いに異なる仕様を持つ第１〜第４のメモリブロック１１〜１４を備えている。第１のメモリブロック１１は１ポートＳＲＡＭ（static random access memory）であり、第２のメモリブロック１２は２ポートＳＲＡＭである。第３のメモリブロック１３は、１クロックで１つのメモリ動作が完結するＤＲＡＭ（dynamic random access memory）、すなわち１クロック仕様ＤＲＡＭである。第４のメモリブロック１４は、３クロックで１つのメモリ動作が完結するＤＲＡＭ、すなわち３クロック仕様ＤＲＡＭである。図１の半導体装置は、各々第１〜第４のメモリブロック１１〜１４のうちの対応するメモリブロックのテストを行うための第１〜第４のＢＩＳＴ回路２１〜２４を更に備えている。
【００１５】
図１の半導体装置は、ロジックテスタの利用を考慮して、各々第１〜第４のＢＩＳＴ回路２１〜２４のうちの対応するＢＩＳＴ回路へ供給すべきプログラムコードを外部から並列に入力するための４つの個別プログラム端子ＰＲＯＧ１〜４を更に備えている。また、図１の半導体装置は、メモリテスタの利用を考慮して、第１〜第４のＢＩＳＴ回路２１〜２４へ供給すべきプログラムコードを外部からクロックＣＫに同期してシリアルに入力するための共通プログラム端子ＰＲＯＧＡを更に備えている。
【００１６】
共通プログラム端子ＰＲＯＧＡを介して外部からシリアルに与えられたプログラムコードは、スキャンチェーン３０に入力される。スキャンチェーン３０は、第１〜第４のレジスタ３１〜３４を互いに連結することによって構成され、クロックＣＫに同期して外部から共通プログラム端子ＰＲＯＧＡを介してシリアルに与えられた複数のプログラムコードをクロックＣＫに同期して順次シフトすることにより第１〜第４のレジスタ３１〜３４に保持させる。図１中のＰ１〜４は、各レジスタ３１〜３４から出力されたプログラムコードからなる第１〜第４のプログラミング信号である。
【００１７】
図１の半導体装置は、第１〜第４のセレクタ４１〜４４を更に備えている。これらのセレクタ４１〜４４は、第１〜第４のレジスタ３１〜３４から供給されたプログラムコードと、４つの個別プログラム端子ＰＲＯＧ１〜４を介して入力されたプログラムコードとのうちのいずれを第１〜第４のＢＩＳＴ回路２１〜２４へ供給するかを選択するためのセレクタ手段を構成する。例えば、入力選択信号ＳＥＬがＨレベルならば第１〜第４のレジスタ３１〜３４から供給されたプログラムコードが、入力選択信号ＳＥＬがＬレベルならば４つの個別プログラム端子ＰＲＯＧ１〜４を介して入力されたプログラムコードがそれぞれ選択される。
【００１８】
第１〜第４のセレクタ４１〜４４の出力は、それぞれ第１〜第４のＡＮＤゲート５１〜５４を介して第１〜第４のＢＩＳＴ回路２１〜２４へ供給される。これらのＡＮＤゲート５１〜５４は、第１〜第４のＢＩＳＴ回路２１〜２４のうちのいずれを動作させるかを個別に制御できるように、第１〜第４のイネーブル信号ＥＮＢＬ１〜４の入力を受ける。
【００１９】
第１〜第４のセレクタ４１〜４４が第１〜第４のプログラミング信号Ｐ１〜４を選択し、かつ第１〜第４のイネーブル信号ＥＮＢＬ１〜４が全てＨレベルに活性化された場合、第１〜第４のレジスタ３１〜３４は、第１〜第４のＢＩＳＴ回路２１〜２４の並列プログラミングを実現するように、各々保持したプログラムコードを第１〜第４のＢＩＳＴ回路２１〜２４のうちの対応するＢＩＳＴ回路へ供給する。第１〜第４のＢＩＳＴ回路２１〜２４は、各々プログラムに従い、テストパターン毎のテスト結果期待値を予め保持しており、生成したテストパターンをテスト対象メモリブロック１１〜１４に順次与え、その都度当該テスト対象メモリブロック１１〜１４から返されて来た出力を対応する期待値と比較する機能を有する。図１中のＲＴＥＳＴ１〜４は第１〜第４のテスト結果信号であり、ＥＴＥＳＴ１〜４は第１〜第４のテスト終了信号である。
【００２０】
図１の半導体装置は、テスト出力制御回路６０を更に備えている。このテスト出力制御回路６０は、第１〜第４のイネーブル信号ＥＮＢＬ１〜４のうちのいずれかに応じて、第１〜第４のテスト結果信号ＲＴＥＳＴ１〜４のうちの１つと、第１〜第４のテスト終了信号ＥＴＥＳＴ１〜４のうちの１つとを、テスト結果信号ＲＴＥＳＴ及びテスト終了信号ＥＴＥＳＴとして外部へ出力するものである。
【００２１】
図２は、図１中の第４のレジスタ３４の詳細構成例を示している。図２によれば、互いに連結された複数のＤフリップフロップ３５によって第４のレジスタ３４が構成される。第１〜第３のレジスタ３１〜３３についても同様である。
【００２２】
図１の半導体装置によれば、共通プログラム端子ＰＲＯＧＡを用いて第１〜第４のＢＩＳＴ回路２１〜２４の全てをプログラミングしたい場合、第１〜第４のイネーブル信号ＥＮＢＬ１〜４を全てＨレベルに設定するとともに、まず入力選択信号ＳＥＬをＬレベルに設定しておく。これにより、スキャンチェーン３０へのプログラムコード入力中の無効な信号Ｐ１〜４が第１〜第４のＢＩＳＴ回路２１〜２４へ入力されることはない。そして、第１〜第４のレジスタ３１〜３４へのプログラムコードの設定完了後、入力選択信号ＳＥＬをＨレベルに設定する。これにより、第１〜第４のＢＩＳＴ回路２１〜２４の並列プログラミングが可能になり、これらのＢＩＳＴ回路２１〜２４による並列メモリテストが達成される。
【００２３】
単一の共通プログラム端子ＰＲＯＧＡを用いたプログラミングは、制御可能端子数の制限にかからないという点で、前述のメモリテスタでも容易に実現可能である。また、テストプログラム内で同一の記述が連続する可能が高くなるため、メモリテスタでループ文が利用でき、プログラム長を短くできる。図１の半導体装置では個別プログラム端子ＰＲＯＧ１〜４を更に設けたので、ロジックテスタの利用も可能である。
【００２４】
図３は、図１中のスキャンチェーン３０の変形例を示している。図３に示したスキャンチェーン３０は、第１〜第４のレジスタ３１〜３４のうちのいずれのレジスタを、いずれの順序で連結するかを制御できるように、シフト入力セレクタ７１と、スイッチ回路７２と、スイッチ制御バス７３（“Ａ”〜“Ｌ”）と、レジスタ出力バス７４と、レジスタ入力バス７５とを備えている。
【００２５】
図３によれば、第１〜第４のレジスタ３１〜３４を共通プログラム端子ＰＲＯＧＡ側から、第３のレジスタ３３、第４のレジスタ３４、第２のレジスタ３２、第１のレジスタ３１の順に連結したい場合、共通プログラム端子ＰＲＯＧＡを第３のレジスタ３３の入力へ接続するようにシフト入力セレクタ７１を切り替え、かつスイッチ制御バス７３のうちの“Ｄ”、“Ｉ”、“Ｋ”のみをＨレベルに設定すればよい。
【００２６】
また、共通プログラム端子ＰＲＯＧＡ側から第４のレジスタ３４及び第１のレジスタ３１のみでスキャンチェーン３０を構成したい場合には、共通プログラム端子ＰＲＯＧＡを第４のレジスタ３４の入力へ接続するようにシフト入力セレクタ７１を切り替え、かつスイッチ制御バス７３のうちの“Ｊ”のみをＨレベルに設定すればよい。
【００２７】
このように第１〜第４のレジスタ３１〜３４の接続順序や接続数を任意に変えること、つまりスキャンチェーン３０の構成を自由に変更することで、以下の効果が得られる。すなわち、第１〜第４のメモリブロック１１〜１４のうちから任意にテスト対象の選択及びグルーピングを行うことが可能となるため、例えば同一テスト条件毎にメモリブロックをグルーピングすれば、同一グループ内にてメモリブロックの並列テストが可能となる。これは、チップ設計後に意図せずメモリ特性が異なり、メモリグループ毎に分けてテストする必要が生じたときに有効である。またピーク消費電流がチップ特性に与える影響を評価するため、チップレイアウトに対するメモリブロックの密集度からグルーピングを行う場合にも有効である。
【００２８】
図４は、図１の半導体装置におけるＢＩＳＴプログラミングの例を示している。図４に示した例では、第１〜第４のＢＩＳＴ回路２１〜２４の各々のプログラム長が１７、１３、９、５であり、第１〜第４のレジスタ３１〜３４がダミーコードを含めて全て同じ数のプログラムコードを保持するようにそれぞれ１７段構成を持つものとしている。
【００２９】
図４によれば、第１〜第４のレジスタ３１〜３４へのプログラムコードの設定後、時刻Ｔ１に入力選択信号ＳＥＬがＨレベルに設定される。第１のレジスタ３１から第１のＢＩＳＴ回路２１へ供給されるべき第１のプログラミング信号Ｐ１の出力は、クロックＣＫに同期して時刻Ｔ１から開始する。第２のレジスタ３２から第２のＢＩＳＴ回路２２へ供給されるべき第２のプログラミング信号Ｐ２の出力は、クロックＣＫに同期して時刻Ｔ２から開始する。時刻Ｔ１から時刻Ｔ２までは、第２のプログラミング信号Ｐ２がダミーコードを表す。第３のレジスタ３３から第３のＢＩＳＴ回路２３へ供給されるべき第３のプログラミング信号Ｐ３の出力は、クロックＣＫに同期して時刻Ｔ３から開始する。時刻Ｔ１から時刻Ｔ３までは、第３のプログラミング信号Ｐ３がダミーコードを表す。第４のレジスタ３４から第４のＢＩＳＴ回路２４へ供給されるべき第４のプログラミング信号Ｐ４の出力は、クロックＣＫに同期して時刻Ｔ４から開始する。時刻Ｔ１から時刻Ｔ４までは、第４のプログラミング信号Ｐ４がダミーコードを表す。そして、時刻Ｔ５にて第１〜第４のＢＩＳＴ回路２１〜２４のプログラミングが完了すると同時に、これらＢＩＳＴ回路２１〜２４による並列メモリテストを直ちに開始できる。
【００３０】
なお、第１〜第４のＢＩＳＴ回路２１〜２４の内部のプログラムコード取り込み部はシフトレジスタで構成されており、入力されたプログラムコードを順次シフトしていく。したがって、レジスタ数を超えた入力コードは、古いコードから順に消えていくようになっている。
【００３１】
このように、プログラム長が異なる第１〜第４のＢＩＳＴ回路２１〜２４に対して第１〜第４のレジスタ３１〜３４のコード保持数を同一にすることで、第１〜第４のＢＩＳＴ回路２１〜２４のプログラミング開始タイミングとテスト開始タイミングとを全てのＢＩＳＴ回路２１〜２４で同じにすることができる。また、第１〜第４のレジスタ３１〜３４のコード保持数を同一にすることで、図３のように第１〜第４のレジスタ３１〜３４の連結順序を変更する場合においても都合がよい。
【００３２】
なお、ＢＩＳＴ回路２１〜２４の内部レジスタでスキャンチェーンを構成するようにしてもよい。ただし、ＩＰ（intellectual property）として供給されるＢＩＳＴ回路をそのまま利用する場合には、図１に示したように、ＢＩＳＴ回路２１〜２４の外部に設けたレジスタ３１〜３４にてスキャンチェーン３０を構成するのがよい。
【００３３】
また、本発明は、上記第１〜第４のメモリブロック１１〜１４のうちの少なくとも１つがロジック回路に置き換えられた場合等にも適用可能である。
【産業上の利用可能性】
【００３４】
以上説明してきたとおり、本発明に係る半導体装置は、ＢＩＳＴ回路の数よりも少ない数の端子から入力したプログラムコードを複数のＢＩＳＴ回路へ並列に供給することができるので、当該半導体装置を構成する１つのチップ上に搭載された複数の回路ブロックのテスト技術に有用である。
【図面の簡単な説明】
【００３５】
【図１】本発明に係る半導体装置の構成例を示すブロック図である。
【図２】図１中の１つのレジスタの詳細構成例を示す回路図である。
【図３】図１中のスキャンチェーンの変形例を示す回路図である。
【図４】図１の半導体装置におけるＢＩＳＴプログラミングの例を示すタイミングチャート図である。
【符号の説明】
【００３６】
１１  第１のメモリブロック（１ポートＳＲＡＭ）
１２  第２のメモリブロック（２ポートＳＲＡＭ）
１３  第３のメモリブロック（１クロック仕様ＤＲＡＭ）
１４  第４のメモリブロック（３クロック仕様ＤＲＡＭ）
２１〜２４  第１〜第４のＢＩＳＴ回路
３０  スキャンチェーン
３１〜３４  第１〜第４のレジスタ
３５  Ｄフリップフロップ
４１〜４４  第１〜第４のセレクタ
５１〜５４  第１〜第４のＡＮＤゲート
６０  テスト出力制御回路
７１  シフト入力セレクタ
７２  スイッチ回路
７３  スイッチ制御バス
７４  レジスタ出力バス
７５  レジスタ入力バス
ＣＫ  クロック
ＥＮＢＬ１〜４  第１〜第４のイネーブル信号
ＥＴＥＳＴ  テスト終了信号
ＥＴＥＳＴ１〜４  第１〜第４のテスト終了信号
Ｐ１〜４  第１〜第４のプログラミング信号
ＰＲＯＧ１〜４  個別プログラム端子
ＰＲＯＧＡ  共通プログラム端子
ＲＴＥＳＴ  テスト結果信号
ＲＴＥＳＴ１〜４  第１〜第４のテスト結果信号
ＳＥＬ  入力選択信号
【図１】
2006302470.tif 000003
【図２】
2006302470.tif 000004
【図３】
2006302470.tif 000005
【図４】
2006302470.tif 000006