(57)【要約】【課題】  少ない外部端子を用いて高速に回路ブロック（ＩＰ）をテストすることができる半導体装置およびそのテスト方法を実現する。【解決手段】  本発明の半導体装置およびそのテスト方法は、第１のテスト動作モード時にテストパターン１４が格納される内蔵メモリ１５ａ、１５ｂと、第２のテスト動作モード時に、内蔵メモリ１５ａ、１５ｂから出力されるテストパターン１４を選択して回路ブロック１１へのテスト入力として供給するＭＵＸ１２ｃ、１２ｄと、第２のテスト動作モード時に、外部端子からの別のテストパターン１４を選択して回路ブロック１１への別のテスト入力として供給するＭＵＸ１２ａ、１２ｂを有する。【選択図】  図１
2006303326.tif 000002
【特許請求の範囲】
【請求項１】
第１のテスト動作モード時にテストパターンが格納される記憶手段と、
第２のテスト動作モード時に、前記記憶手段から出力される前記テストパターンを選択して回路ブロックへのテスト入力として供給する第１の選択手段と、
前記第２のテスト動作モード時に、外部端子からの別のテストパターンを選択して前記回路ブロックへの別のテスト入力として供給する第２の選択手段と、
前記第１および前記第２のテスト動作モード時に前記記憶手段のアドレスをカウントアップしながら指定するアドレス手段と、
前記第１のテスト動作モード時に前記外部端子から入力された前記テストパターンを前記アドレス手段を用いて前記記憶手段に格納し、前記第２のテスト動作モード時に、前記アドレス手段を用いて前記記憶手段から出力された前記テストパターンを前記第１の選択手段によって前記回路ブロックに供給するとともに、前記外部端子から入力された前記別のテストパターンを前記第２の選択手段によって前記回路ブロックに供給するよう制御する制御手段を有することを特徴とする半導体装置。
【請求項２】
前記回路ブロックの出力端子および入出力端子に接続されるシグネチャ圧縮機能を備えたテスト結果格納手段をさらに有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記第１のテスト動作モード時に、変化の頻度の低いテスト信号が前記テストパターンとして前記記憶手段に格納され、
前記第２のテスト動作モード時に、前記テスト信号の繰り返し回数情報が前記アドレス手段に設定され、前記アドレス手段は前記繰り返し回数情報に従ってアドレスのカウントアップを制御することを特徴とする請求項１に記載の半導体装置。
【請求項４】
前記記憶手段は、同時にアクセス可能なデータ入力ポートとデータ出力ボートを備え、前記第２のテスト動作モード時に、前記制御手段は、前記テストパターンを前記出力ポートから出力するとともに、次のテストパターンを前記データ入力ポートから前記記憶手段に格納するようさらに制御することを特徴とする請求項１に記載の半導体装置。
【請求項５】
外部端子から入力されたテストパターンを記憶手段に格納する第１のテスト動作ステップと、
前記記憶手段から出力される前記テストパターンを回路ブロックへのテスト入力として選択するとともに、前記外部端子からの別のテストパターンを前記回路ブロックへの別のテスト入力として選択し、前記テストパターンおよび前記別のテストパターンを用いて前記回路ブロックをテストする第２のテスト動作ステップを有することを特徴とする半導体装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置およびそのテスト方法に係わり、特に、外部端子数より多い数の接続端子を備えた回路ブロック（ＩＰ：Intellectual Property ）を有する半導体装置およびそのテスト方法に関する。
【背景技術】
【０００２】
近年、ＳＯＣ（System On a Chip）と呼ばれる、１つのシステムを全て１つのチップに搭載する大規模な半導体装置が開発されるようになってきている。ＳＯＣでは、より限定された機能を実現する機能ブロックであるＩＰを結合（ integration ）することによって開発期間を短縮するという設計手法が重要になっている。ＳＯＣのテストについても、このＩＰを対象としたテスト容易化設計（ Design For Testability：ＤＦＴ）手法が用いられている。ＳＯＣのＩＰベースの基本的なＤＦＴ手法としては、（１）並列アクセス（ Parallel Access ）挿入（ＭＵＸ（マルチプレクサ）挿入）、（２）直列アクセス（ Serial Access ）挿入の２種類がある。
【０００３】
（１）は、ＳＯＣ内部のＩＰの入出力端子を、ＭＵＸを経由してＳＯＣ外部から直接制御、観測できるようにしたものである（例えば、特許文献１、図１４を参照。）。この場合、テストパターンは、ＳＯＣの論理シミュレーションにおいて、対象となるＩＰの入出力端子での値をモニターすることで作成されることが多い。
【０００４】
一方、（２）では、ＩＰの内部はスキャン手法をベースにしてテストされ、テストパターンは、ＡＴＰＧ（ Automatic Test Pattern Generation ）によって作成される。ＩＰの入出力端子に対しては、各端子に対応するＷｒａｐｐｅｒというＦ／Ｆ（フリップフロップ）を設け、これらを直列接続しておき、所定のテストパターンをＳＯＣの外部から順次入力してテストし、そのテスト結果を順次取り出してＳＯＣの外部で観測するようにする。
【０００５】
しかしながら、上述したような従来の半導体装置およびそのテスト方法においては、（１）ＭＵＸ挿入手法では、テストするＩＰの接続端子数以上の外部端子数を必要とし、（２）直列アクセス挿入手法では、テストパターンの入力およびテスト結果の出力に時間がかかるという本質的な問題があった。（１）におけるテスト結果の出力については、データ圧縮を適用する方法（例えば、「特許文献１」参照。）も考えられているが、この方法はテストパターンの入力には適用できず、入力または入出力端子数を削減できないという問題があった。
【０００６】
最近のＳＯＣを始めとする半導体装置では、非常に複雑な機能を１個のチップ上に集積する傾向がますます強まる一方、プリント基板のコスト削減の強い要求から半導体装置の外部端子数（ピン数）を削減する傾向が強まりつつあった。このため、少ない外部端子数に起因する上述のような問題はますます深刻になってきていた。
【特許文献１】特開２００２−１００７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、少ない外部端子を用いて高速に回路ブロック（ＩＰ）をテストすることができる半導体装置およびそのテスト方法を提供する。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、第１のテスト動作モード時にテストパターンが格納される記憶手段と、第２のテスト動作モード時に、前記記憶手段から出力される前記テストパターンを選択して回路ブロックへのテスト入力として供給する第１の選択手段と、前記第２のテスト動作モード時に、外部端子からの別のテストパターンを選択して前記回路ブロックへの別のテスト入力として供給する第２の選択手段と、前記第１および前記第２のテスト動作モード時に前記記憶手段のアドレスをカウントアップしながら指定するアドレス手段と、前記第１のテスト動作モード時に前記外部端子から入力された前記テストパターンを前記アドレス手段を用いて前記記憶手段に格納し、前記第２のテスト動作モード時に、前記アドレス手段を用いて前記記憶手段から出力された前記テストパターンを前記第１の選択手段によって前記回路ブロックに供給するとともに、前記外部端子から入力された前記別のテストパターンを前記第２の選択手段によって前記回路ブロックに供給するよう制御する制御手段を有することを特徴とする半導体装置が提供される。
【０００９】
本発明の別の一態様によれば、外部端子から入力されたテストパターンを記憶手段に格納する第１のテスト動作ステップと、前記記憶手段から出力される前記テストパターンを回路ブロックへのテスト入力として選択するとともに、前記外部端子からの別のテストパターンを前記回路ブロックへの別のテスト入力として選択し、前記テストパターンおよび前記別のテストパターンを用いて前記回路ブロックをテストする第２のテスト動作ステップを有することを特徴とする半導体装置のテスト方法が提供される。
【発明の効果】
【００１０】
本発明によれば、テストパターンの一部をあらかじめ内蔵メモリに格納しておくので、少ない外部端子で回路ブロックを高速にテストすることができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例１】
【００１２】
図１は、本発明の実施例１に係わる半導体装置を示す回路ブロック図である。ここでは、主に、テストの対象となる回路ブロック１１（以下、「ＣＵＴ（ Circuit Under Test ）１１」という。）とそのテスト入力の制御にかかわる部分を示した。
【００１３】
本発明の実施例１に係わる半導体装置は、テストの対象であるＣＵＴ１１、ＣＵＴ１１への入力を選択する選択回路１２ａ〜１２ｄ（以下、「ＭＵＸ１２ａ〜１２ｄ」という。）、ＣＵＴ１１からのテスト結果を格納するテスト結果格納回路１３ａおよび１３ｂ、テストパターン１４を格納する内蔵メモリ１５ａおよび１５ｂ、半導体装置の内部バス１６、内蔵メモリ１５ａおよび１５ｂのアドレスを指定するアドレスレジスタ１７ａおよび１７ｂ、繰り返し回数１８をカウントダウンする減算カウンタ１９ａおよび１９ｂ、およびテストモード時に内蔵メモリ１５ａおよび１５ｂへのアクセスを制御する制御回路２０を備えている。
【００１４】
ＣＵＴ１１の入出力端子は内部バス１６に接続され、ＣＵＴ１１の出力端子はテスト結果格納回路１３ａの第１の入力に接続され、ＣＵＴ１１の第１の入力端子にはＭＵＸ１２ａの出力が接続され、ＣＵＴ１１の第２の入力端子にはＭＵＸ１２ｂの出力が接続され、ＣＵＴ１１の第３の入力端子にはＭＵＸ１２ｃの出力が接続され、ＣＵＴ１１の第４の入力端子にはＭＵＸ１２ｄの出力が接続されている。
【００１５】
テスト結果格納回路１３ａの第２の入力端子には、テスト結果格納回路１３ｂの出力が接続され、テスト結果格納回路１３ｂの入力端子には内部バス１６が接続されている。
【００１６】
ＭＵＸ１２ａの第１の入力端子にはテストパターン１４を入力する外部端子（図示していない。）が接続され、ＭＵＸ１２ａの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００１７】
ＭＵＸ１２ｂの第１の入力端子にはテストパターン１４を入力する別の外部端子（図示していない。）が接続され、ＭＵＸ１２ｂの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００１８】
ＭＵＸ１２ｃの第１の入力端子には内蔵メモリ１５ａからの出力が接続され、ＭＵＸ１２ｃの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００１９】
ＭＵＸ１２ｄの第１の入力端子には内蔵メモリ１５ｂからの出力が接続され、ＭＵＸ１２ｄの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００２０】
内蔵メモリ１５ａの入出力端子は内部バス１６に接続され、内蔵メモリ１５ａの入力端子にはテストパターン１４を入力する外部端子（図示していない。）が接続されている。
【００２１】
内蔵メモリ１５ｂの入出力端子は内部バス１６に接続され、内蔵メモリ１５ｂの入力端子にはテストパターン１４を入力する別の外部端子（図示していない。）が接続されている。
【００２２】
アドレスレジスタ１７ａの出力端子は内蔵メモリ１５ａのアドレス入力に接続され、アドレスレジスタ１７ａの最下位ビットには減算カウンタ１９ａの出力が接続され、減算カウンタ１９ａの入力端子には繰り返し回数１８を入力する外部端子（図示していない。）が接続されている。
【００２３】
アドレスレジスタ１７ｂの出力端子は内蔵メモリ１５ｂのアドレス入力に接続され、アドレスレジスタ１７ｂの最下位ビットには減算カウンタ１９ｂの出力が接続され、減算カウンタ１９ｂの入力端子には繰り返し回数１８を入力する別の外部端子（図示していない。）が接続されている。
【００２４】
内蔵メモリ１５ａおよび１５ｂの制御入力端子には制御回路２０の出力が接続されている。
【００２５】
ＣＵＴ１１は、第１〜第４の入力端子および一部の入出力端子から入力された信号に基づいて所定の動作を行い、出力端子および一部の入出力端子に信号を出力する。これらの出力信号は、テスト結果格納回路１３ａおよび１３ｂへ格納される。
【００２６】
図１に示したように、ＭＵＸ１２ａ〜１２ｄは、それぞれデータ幅に対応した複数の２入力１出力のセレクタによって構成され、制御入力によって２入力のうちのいずれかを選択して出力する。これらは、テストモード時には、テスト用信号を選択するように構成されている。
【００２７】
すなわち、テストモード時には、ＭＵＸ１２ａは、テストパターン１４が入力される外部端子からの信号を選択し、ＭＵＸ１２ｂは、テストパターン１４が入力される別の外部端子からの信号を選択し、ＭＵＸ１２ｃは、内蔵メモリ１５ａからの出力信号を選択し、ＭＵＸ１２ｄは、内蔵メモリ１５ｂからの出力信号を選択するように構成されている。
【００２８】
テスト結果格納回路１３ａおよび１３ｂは、シグネチャ圧縮機能を有し、ＣＵＴ１１からのテスト結果を圧縮して外部へシリアル出力する。また、テスト結果格納回路１３ａおよび１３ｂをシリアルに接続することで、テスト結果の出力に必要な外部出力端子数をさらに減らしている。
【００２９】
テストパターン１４は、後述する方法（図２参照。）によって生成される。
【００３０】
内蔵メモリ１５ａおよび１５ｂは、テストモード時にテストパターン１４の一部を格納するために使用される。
【００３１】
内部バス１６には、ＣＵＴ１１、内蔵メモリ１５ａおよび１５ｂ、および他の回路ブロック（図示していない。）の入出力端子が接続され、テストモード時は、他の回路ブロックの出力を内蔵メモリ１５ａおよび１５ｂ、または、場合によっては内部バスに電気的に出力可能な外部入力（入出力）端子がシミュレートする。
【００３２】
アドレスレジスタ１７ａおよび１７ｂは、内蔵メモリのアクセスのために使用され、書き込み、読み出しのそれぞれの動作において、アドレス０から順次カウントアップされるように構成されている。
【００３３】
また、アドレスレジスタ１７ａおよび１７ｂの最下位ビットには、それぞれ減算カウンタ１９ａおよび１９ｂの出力が接続されており、アドレスレジスタ１７ａおよび１７ｂは、テストモード時に外部から供給される繰り返し回数１８によってカウントアップを一時的に停止するように構成されている。
【００３４】
繰り返し回数１８は、後述する方法（図２参照。）によって生成される。
【００３５】
減算カウンタ１９ａおよび１９ｂは、外部から設定された繰り返し回数１８をカウントダウンして、その値が“０”になったら、アドレスレジスタ１７ａおよび１７ｂをカウントアップする信号を出力する。
【００３６】
これにより、アドレスレジスタ１７ａおよび１７ｂは、減算カウンタ１９ａおよび１９ｂでの値が“０”になるまで、アドレスのカウントアップを停止する。
【００３７】
制御回路２０は、ＣＵＴ１１のテストに必要な制御を行なう。
【００３８】
次に、本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターン１４について説明する。
【００３９】
図２は、本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターン１４の生成方法を示すフロー図である。ここでは、一例として、具体的なテストパターン１４をフロー図の右側に示した。
【００４０】
本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターン１４の生成方法は、テストパターン１４の解析ステップ３１、テスト信号の変化の頻度に基づく圧縮ステップ３２、および生成されたテストパターン１４および繰り返し回数１８の格納ステップ３３とから構成される。
【００４１】
解析ステップ３１では、ＣＵＴ１１に対するテストパターン１４を解析して、変化頻度の高い部分と、変化頻度の低い部分に分離する。
【００４２】
圧縮ステップ３２では、変化頻度の高い信号を外部端子から入力する第２のテストパターン３５として、また、変化頻度の低い信号を内蔵メモリに格納する第１のテストパターン３４として取り出す。さらに、第１のテストパターン３４は、変化頻度が低いので、パターンデータとその繰り返し回数１８（実際の繰り返し数−１）に変換する。
【００４３】
格納ステップ３３では、解析ステップ３１および圧縮ステップ３２で分離圧縮された第１のテストパターン３４、第２のテストパターン３５、および繰り返し回数１８をテストモードで使用できるようにそれぞれテストデータとしてハードディスクに格納する。
【００４４】
図３は、本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターン１４のビット幅を示すイメージ図である。ここで、横軸は、ＣＵＴ１１へのテスト入力のビット幅を示し、縦軸は時間を示している。また、横軸の外部端子数は、テストモードで使用可能な半導体装置の外部端子数である。
【００４５】
本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターン１４は、第１のテスト動作モード（以下、「ＴＭ１」という。）時に内蔵メモリ１５ａおよび１５ｂに格納される第１のテストパターン３４、および第２のテスト動作モード（以下、「ＴＭ２」という。）時にテストのために入力される第２のテストパターン３５とから構成される。
【００４６】
ＴＭ１では、外部端子から入力される第１のテストパターン３４のビット幅は、内蔵メモリ１５ａおよび１５ｂの入力端子のビット幅である。
【００４７】
ＴＭ２では、外部端子から入力される第２のテストパターン３５のビット幅は、図３に示したように、テストモード時に利用可能な外部端子数と同じになる。これに、内蔵メモリ１５ａおよび１５ｂから読み出される第１のテストパターン３４が加わるので、ＴＭ２でＣＵＴ１１に入力されるテスト信号のビット幅は、
（外部端子数）＋ Ｎ ＋ Ｍ  −（テスト制御のために必要な外部端子数）……（１）
となる。ここで、Ｎ，Ｍは、それぞれ内蔵メモリ１５ａおよび１５ｂのビット幅で、
Ｎ＋Ｍ ≦（外部端子数）−（テスト制御のために必要な外部端子数）  ……（２）
を満たす必要がある。
【００４８】
テスト制御のために必要な外部端子は高々数本であり、（１）と（２）で共通に制御できるものも多いため、（１）および（２）から明らかなように、実質的には従来の２倍程度のビット幅でＣＵＴ１１のテストが行えることが判る。
【００４９】
また、ＴＭ１では、圧縮されるテストパターン３４が内蔵メモリ１５ａおよび１５ｂに印加されるため、ＴＭ２より少ないステップ数で必要なテストパターン３４の印加を完了できる。
【００５０】
すなわち、圧縮率をｒとすると、全テストステップ数は、（１／ｒ＋１）Ｎｔとなる。ここで、ＮｔはＣＵＴ１１を従来のＭＵＸ手法でテストできたと仮定した場合のテストステップ数である。
【００５１】
なお、テストパターン３５のビット幅が大きく、ＴＭ１にてその一部を内蔵メモリ１５ａおよび１５ｂに印加する必要がある場合は、図２で述べたようなテストパターンの圧縮は有効でないため、テストパターンを適当な２個のビット幅に分割し、ＴＭ１、ＴＭ２で印加する（図示していない。）ことになる。
【００５２】
次に、上述した構成を持つ半導体装置のテスト方法について説明する。図４は、本発明の実施例１に係わる半導体装置のテスト方法を示すフロー図である。
【００５３】
本発明の実施例１に係わる半導体装置のテスト方法は、ＴＭ１で第１のテストパターン３４を内蔵メモリ１５ａおよび１５ｂへ格納するステップ（ＳＴ４１）、およびＴＭ２でＣＵＴ１１のテストを実行するステップ（ＳＴ４２）とから構成される。
【００５４】
ＳＴ４１では、制御回路２０は、外部からのテストモード開始信号により、ＴＭ１の動作を開始する。すなわち、制御回路２０は、まず、アドレスレジスタ１７ａおよび１７ｂをリセットして、内蔵メモリ１５ａおよび１５ｂを書き込み可能状態にする。
【００５５】
次に、制御回路２０は、ＣＵＴ１１をテストするための第１のテストパターン３４が外部端子から内蔵メモリ１５ａおよび１５ｂに順次書き込まれるよう動作する。
【００５６】
ＳＴ４１で第１のテストパターン３４の格納が終了すると、制御回路２０は、ＳＴ４２で、外部からの別のテストモード開始信号により、ＴＭ２を開始する。すなわち、制御回路２０は、まず、アドレスレジスタ１７ａおよび１７ｂをリセットして、内蔵メモリ１５ａおよび１５ｂを読み出し可能状態にする。
【００５７】
次に、制御回路２０は、繰り返し回数１８が設定された減算カウンタ１９ａおよび１９ｂをカウントダウンしながらアドレスレジスタ１７ａおよび１７ｂが順次カウントアップされるよう動作する。そして、制御回路２０は、それぞれのアドレスで、内蔵メモリ１５ａおよび１５ｂに格納されている第１のテストパターン３４がＭＵＸ１２ｃおよびＭＵＸ１２ｄ、および内部バス１６へ出力されるよう動作する。
【００５８】
同時に、制御回路２０は、ＭＵＸ１２ａ〜１２ｄがそれぞれ図１に示したようなテスト信号を選択するように動作する。このようにして、ＣＵＴ１１の入力端子にはテストパターン１４が印加され、ＣＵＴ１１からの出力がテスト結果格納回路１３ａに入力される。
【００５９】
また、内部バス１６では、内蔵メモリ１５ａおよび１５ｂの出力が入出力端子を介してＣＵＴ１１に印加され、ＣＵＴ１１の出力がテスト結果格納回路１３ｂに入力される。
【００６０】
アドレスレジスタ１７ａおよび１７ｂの最下位ビットは、それぞれ減算カウンタ１９ａおよび１９ｂの出力に接続されており、減算カウンタ１９ａおよび１９ｂに対し繰り返し回数１８が外部端子より順次入力されている。このため、減算カウンタ１９ａおよび１９ｂがカウントダウンされて、その値が“０”になった時に内蔵メモリ１５ａおよび１５ｂのアドレスがカウントアップされるようになっている。
【００６１】
このようにすることで、少ない容量の内蔵メモリ１５ａおよび１５ｂでＣＵＴ１１に対する第１のテストパターン３４をより多く格納できるようにしている。
【００６２】
上述の実施例１では、あらかじめ内蔵メモリ１５ａおよび１５ｂにＣＵＴ１１をテストするためのテストパターン１４の一部、つまり、圧縮された第１のテストパターン３４を格納した後、テストモード時には、半導体装置の利用可能な外部端子と内蔵メモリ１５ａおよび１５ｂとからＭＵＸ１２ａ〜１２ｄを経由してＣＵＴ１１にテストパターンを印加する。
【００６３】
上記実施例１によれば、第１のテストパターン３４をあらかじめ内蔵メモリ１５ａおよび１５ｂに格納しておくので、少ない外部端子でＣＵＴ１１を高速にテストすることができる。
【００６４】
また、上記実施例１によれば、テスト信号の変化頻度の低い第１のテストパターン３４を圧縮しているので、テストで使用する内蔵メモリ１５ａおよび１５ｂの容量を大幅に削減することができ、テスト時間を削減することができる。
【００６５】
上述の実施例１では、内蔵メモリ１５ａおよび１５ｂにおける入出力のビット幅は同じであるとしたが、本発明はこれに限られるものではなく、入力と出力でビット幅が異なっていても適用可能である。例えば、入力ビット幅を出力のそれに対して小さくすることで、（１）式の端子数条件より入力端子数の多い回路ブロックもテストできるようになる。
【実施例２】
【００６６】
図５は、本発明の実施例２に係わる半導体装置を示す回路ブロック図である。ここでは、主に、テストの対象となる回路ブロック５１（以下、「ＣＵＴ５１」という。）とそのテスト入力の制御にかかわる部分を示した。
【００６７】
本発明の実施例２に係わる半導体装置は、テストの対象であるＣＵＴ５１、ＣＵＴ５１への入力を選択する選択回路５２ａおよび５２ｂ（以下、「ＭＵＸ５２ａおよび５２ｂ」という。）、ＣＵＴ５１からのテスト結果を格納するテスト結果格納回路５３ａおよび５３ｂ（内部バス５６を経由。）、テストパターン５４を格納する内蔵メモリ５５、半導体装置の内部バス５６、内蔵メモリ５５のアドレスを指定するアドレスレジスタ５７ａおよび５７ｂ、繰り返し回数５８をカウントダウンする減算カウンタ５９ａおよび５９ｂ、およびテストモード時に内蔵メモリ５５へのアクセスを制御する制御回路６０を備えている。
【００６８】
ＣＵＴ５１の入出力端子は内部バス５６に接続され、ＣＵＴ５１の出力端子はテスト結果格納回路５３ａの第１の入力に接続され、ＣＵＴ５１の第１の入力端子にはＭＵＸ５２ａの出力が接続され、ＣＵＴ５１の第２の入力端子にはＭＵＸ５２ｂの出力が接続されている。
【００６９】
テスト結果格納回路５３ａの第２の入力端子には、テスト結果格納回路５３ｂの出力がシリアル接続され、テスト結果格納回路５３ｂの入力端子には内部バス５６が接続されている。
【００７０】
ＭＵＸ５２ａの第１の入力端子にはテストパターン５４を入力する外部端子（図示していない。）が接続され、ＭＵＸ５２ａの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００７１】
ＭＵＸ５２ｂの第１の入力端子には内蔵メモリ５５からの出力（ポートＡの一部）が接続され、ＭＵＸ５２ｂの第２の入力端子には他の回路ブック（図示していない。）からの出力が接続されている。
【００７２】
内蔵メモリ５５の入出力端子（ポートＡの一部）は内部バス５６に接続され、内蔵メモリ５５の第１の入力端子（入力用ポートＢの一部（上位ビット側））にはテストパターン５４を入力する外部端子（図示していない。）が接続され、内蔵メモリ５５の第２の入力端子（入力用ポートＢの一部（下位ビット側））にはテストパターン５４を入力する別の外部端子（図示していない。）が接続されている。
【００７３】
アドレスレジスタ５７ａの出力端子は内蔵メモリ５５の第１のポートＡのアドレス入力に接続され、アドレスレジスタ５７ａの最下位ビットには減算カウンタ５９ａの出力が接続され、減算カウンタ５９ａの入力端子には繰り返し回数５８を入力する外部端子（図示していない。）が接続されている。
【００７４】
アドレスレジスタ５７ｂの出力端子は内蔵メモリ５５の第２のポートＢのアドレス入力に接続され、アドレスレジスタ５７ｂの最下位ビットには減算カウンタ５９ｂの出力が接続され、減算カウンタ５９ｂの入力端子には繰り返し回数５８を入力する別の外部端子（図示していない。）が接続されている。
【００７５】
内蔵メモリ５５の制御入力端子には制御回路６０の出力が接続されている。
【００７６】
内蔵メモリ５５を除く回路ブロックは、実施例１と同様なので、詳しい説明は省略する。
【００７７】
内蔵メモリ５５は、独立にアクセス可能なポートＡおよびＢを備えており、ポートＡを専ら出力用にポートＢを専ら入力用に使用している。入力用ボートＢは、図５に示したように、２つの部分からなり、上位ビットはＭＵＸ５２ａへ接続される外部端子に接続されており、下位ビットはＭＵＸには接続されない別の外部端子に接続されている。
【００７８】
入力用ポートＢへのテストパターン５４の入力と出力用ポートＡからのＭＵＸ５２ｂへのテストパターン５４の出力とは同時に行うことができるようになっている。
【００７９】
また、入力用ポートＢは、そのビット幅が内蔵メモリ５５のビット幅Nの１／２の下位ビットだけを用いて入力を行う場合がある。このため、入力用ポートＢの下位ビットからだけデータを入力する場合には、書込みが内蔵メモリ５５の上位ビット、下位ビットに対して交互になされるような制御が行われる。
【００８０】
次に、本発明の実施例２に係わる半導体装置のテスト方法におけるテストパターン５４について説明する。ここで、テストパターン５４、および繰り返し回数５８の生成方法は、実施例１と同様なので、詳しい説明は省略する。また、第１のテストパターン３４、および第２のテストパターン３５には、実施例１と同じ符号を使用する。
【００８１】
図６は、本発明の実施例２に係わる半導体装置のテスト方法におけるテストパターン５４のビット幅を示すイメージ図である。ここで、図の横軸および縦軸は、実施例１の図３と同様なので説明は省略する。
【００８２】
本発明の実施例２に係わる半導体装置のテスト方法におけるテストパターン５４は、第１のテスト動作モード（以下、「ＴＭ１」という。）時に内蔵メモリ５５に格納される第１のテストパターン３４、第２のテスト動作モード（以下、「ＴＭ２」という。）時にテストのために入力される第２のテストパターン３５、およびＴＭ２で内蔵メモリ５５に格納される次の第１のテストパターン３４とから構成される。
【００８３】
ＴＭ１では、外部端子から入力される第１のテストパターン３４のビット幅は、内蔵メモリ５５の入力端子のビット幅（Ｎ）である。この時、入力用ポートＢが内蔵メモリ５５への書き込みに使用される。
【００８４】
ＴＭ２では、外部端子から入力される第２のテストパターン３５のビット幅は、図６に示したように、テストモード時に利用可能な外部端子数から入力用ポートＢのビット幅（Ｎ／２）を引いた数になる。
【００８５】
これに、内蔵メモリ５５から出力用ポートＡを経由して読み出される第１のテストパターン３４が加わるので、ＴＭ２でＣＵＴ５１に入力されるテスト信号のビット幅は、
（外部端子数）＋ Ｎ − Ｎ/２ −（テスト制御のために必要な外部端子数）…（３）
となる。ここで、内蔵メモリ５５のビット幅Ｎは、
Ｎ ≦（外部端子数）−（テスト制御のために必要な外部端子数）………（４）
である。また、入力用ポートＢのビット幅は、Ｎ/２である。
【００８６】
ＴＭ２では、入力用ポートＢは、次の第１のテストパターン３４を内蔵メモリ５５に格納するために使用される。ここで、入力用ポートＢからの書き込みは、テストパターン５４の読み出しが終了したアドレスに対してなされる必要があるため、最初の書込みは、図６に示したように、読み出しが数アドレス先行してから行なっている。
【００８７】
次に、上述した構成を持つ半導体装置のテスト方法について説明する。図７は、本発明の実施例２に係わる半導体装置のテスト方法を示すフロー図である。
【００８８】
本発明の実施例２に係わる半導体装置のテスト方法は、ＴＭ１で第１のテストパターン３４の一部を内蔵メモリ５５に格納するステップ（ＳＴ７１）、ＴＭ２で次の第１のテストパターン３４を内蔵メモリ５５に格納しながらＣＵＴ５１のテストを実行するステップ（ＳＴ７２）、およびすべてのテストパターン５４が実行されたことを判定するステップ（ＳＴ７３）とから構成される。
【００８９】
ＳＴ７１では、制御回路６０は、外部からのテストモード開始信号により、ＴＭ１の動作を開始する。すなわち、制御回路６０は、まず、アドレスレジスタ５７ｂをリセットして、内蔵メモリ５５を入力用ポートＢを介して書き込み可能状態にする。
【００９０】
次に、制御回路６０は、ＣＵＴ５１をテストするための第１のテストパターン３４が外部端子から内蔵メモリ５５に順次書き込まれるよう動作する。
【００９１】
ＳＴ７１で第１のテストパターン３４の格納が終了すると、制御回路６０は、ＳＴ７２で、外部からの別のテストモード開始信号により、ＴＭ２を開始する。すなわち、制御回路６０は、まず、アドレスレジスタ５７ａおよび５７ｂをリセットして、内蔵メモリ５５をアクセス可能状態（出力用ポートＡからの読み出し可能、入力用ポートＢ（下位ビット）からの書き込み可能。）にする。
【００９２】
次に、制御回路６０は、実施例１と同様に、アドレスレジスタ５７ａおよび５７ｂが順次カウントアップされるよう動作する。そして、制御回路６０は、それぞれのアドレスで、内蔵メモリ５５に格納されている第１のテストパターン３４がＭＵＸ１２ｂへ出力されるよう動作する。この時の読み出しアドレスは、アドレスレジスタ５７ａによって指定される。
【００９３】
同時に、制御回路６０は、ＭＵＸ１２ａおよび１２ｂがそれぞれ図５に示したようなテスト信号を選択するように動作する。さらに、制御回路６０は、次の第１のテストパターン３４が入力用ポートＢ（下位ビット側）を介して内蔵メモリ５５に格納されるよう動作する。この時の書き込みアドレスは、アドレスレジスタ５７ｂによって指定される。
【００９４】
このようにして、ＣＵＴ５１の制御入力端子にはテストパターン５４が印加され、実施例１と同様に、ＣＵＴ５１からの出力がテスト結果格納回路５３ａおよび５３ｂに入力される。
【００９５】
ＳＴ７３では、制御回路６０は、テストパターン３４がすべて実行されたかを判定する。実行すべきテストパターン３４が残っている場合（“ＮＧ”）には、制御回路６０は、ＳＴ７２に戻って残りのテストパターン３４を実行するよう動作する。
【００９６】
すべてのテストパターンが実行されていれば（“ＯＫ”）、テストは終了する。
【００９７】
上述の実施例１では、複数ポートの内蔵メモリ５５を使用することで、ＣＵＴ５１のテスト実行時（ＴＭ２）も、より小さいビット幅で内蔵メモリ５５へのテストパターン５４の入力を行なえるようにしている。
【００９８】
また、本発明のテストパターン圧縮の効果を考慮しない場合、ＴＭ２のステップ数Ｎｔ２はＴＭ１のステップ数と同じになる。同様にＴＭ２を繰り返すと、そのステップ数はＴＭ１のステップ数の概ね１／２、１／４、……、となる。一般に、内蔵メモリ５５の１／ｎ のビット幅での書込みを行なわせると最大で ｎ／（ｎ−１）倍の長さのテストパターン５４を格納可能である。
【００９９】
ここで、テストパターンの圧縮率をｒとすると、全テストステップ数は、Ｎｔ２（１／ｒ＋１＋ｒ／ｎ＋（ｒ／ｎ）２＋……）となる。ｒ＜ｎの場合、ＴＭ２を繰り返すと全テストステップ数は、概ね、Ｎｔ２（１／ｒ＋ｎ／（ｎ−ｒ））となる。
【０１００】
一方、ｒ≧ｎの場合は、ＴＭ２を繰り返しても、内蔵メモリ５５に格納可能な、つまり、ＣＵＴ５１に印加可能なテストステップ数は減少していくことがなく、ＣＵＴ５１のテストパターンが長い（分割困難な）場合でも、外部テスタの限度内ですべてを連続的に印加してテスト可能となる。
【０１０１】
こうすることで、より少ないメモリ容量でテストパターン５４をＣＵＴ５１へ供給することができるようになっている。
【０１０２】
上記実施例２によれば、実施例１と同様の効果を得られるだけでなく、内蔵メモリ５５が独立した入出力ポートを備えているので、より少ないメモリ容量でＣＵＴ５１のテストを行うことができる。
【０１０３】
言い換えると、より長いテストパターンを連続的にＣＵＴ５１に印加してテスト可能である。
【０１０４】
上述の実施例２では、内蔵メモリ５５は１つであるとしたが、本発明はこれに限られるものではなく、原理的にはいくつでも使用可能である。また、入力ポートＡおよびＢのビット幅はＮ／２であるとしたが、本発明はこれに限られるものではなく、ＣＵＴ５１のテストに必要な入力ビット幅に対応して、適宜選択することができる。
【０１０５】
さらに、上述の実施例１および２の説明では、テスト用のアドレスレジスタを設けるとしたが、本発明はこれに限られるものではなく、例えば、通常動作時に用いられるアドレスレジスタを利用するように構成することもできる。
【０１０６】
さらに、上述の実施例１および２の説明では、内蔵メモリはＣＵＴと機能的に独立しているとしたが、本発明はこれに限られるものではなく、例えば、内蔵メモリがＣＵＴと機能的に接続されている場合には、そのデータは優先的にその内蔵メモリから供給するようにすれば、テスト回路の増加を抑制することができる。
【０１０７】
さらに、上述の実施例１および２の説明では、テストパターンは直接内蔵メモリへ格納するとしたが、本発明はこれに限られるものではなく、例えば、より高い高周波数クロックでのテストを実施したい場合には、ＣＵＴへのテストパターン入力経路上にフリップフロップ等のクロックに同期した記憶素子を設けるようにし、そのクロックを外部から直接印加可能にするといった構成にすることもできる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施例１に係わる半導体装置を示す回路ブロック図。
【図２】本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターンの生成方法を示すフロー図。
【図３】本発明の実施例１に係わる半導体装置のテスト方法におけるテストパターンのビット幅を示すイメージ図。
【図４】本発明の実施例１に係わる半導体装置のテスト方法を示すフロー図。
【図５】本発明の実施例２に係わる半導体装置を示す回路ブロック図。
【図６】本発明の実施例２に係わる半導体装置のテスト方法におけるテストパターンのビット幅を示すイメージ図。
【図７】本発明の実施例２に係わる半導体装置のテスト方法を示すフロー図。
【符号の説明】
【０１０９】
１１、５１  ＣＵＴ
１２ａ〜１２ｄ、５２ａ、５２ｂ  ＭＵＸ
１３ａ、１３ｂ、５３ａ、５３ｂ  テスト結果格納回路
１４、５４  テストパターン
１５ａ、１５ｂ、５５  内蔵メモリ
１６、５６  内部バス
１７ａ、１７ｂ、５７ａ、５７ｂ  アドレスレジスタ
１８、５８  繰り返し回数
１９ａ、１９ｂ、５９ａ、５９ｂ  減算カウンタ
２０、６０  制御回路
【図１】
2006303326.tif 000003
【図２】
2006303326.tif 000004
【図３】
2006303326.tif 000005
【図４】
2006303326.tif 000006
【図５】
2006303326.tif 000007
【図６】
2006303326.tif 000008
【図７】
2006303326.tif 000009