(57)【特許請求の範囲】
【請求項１】
テスト入力端子、テスト出力端子及びテスト制御端子が設けられた複数個の回路モジュールと、一方の回路モジュールのテスト出力端子を他方の回路モジュールのテスト入力端子に結合してテスト信号チェーンを形成するテストパスと、テストパスに接続されたテストインタフェース回路と、を１個の半導体チップに含み、
前記回路モジュールは、被テスト回路、テストレジスタ回路及びテスト制御回路を有し、
前記テストレジスタ回路は前記テスト入力端子及びテスト出力端子を介してテストパスに結合され且つテスト制御回路との間で入出力可能にされ、
前記テスト制御回路は被テスト回路に対するテストの開始を前記制御端子から受け、前記テストレジスタ回路のテスト制御情報を用いて前記テストを行ない、テスト結果の情報をテストレジスタ回路に供給するものであり、
前記テストインタフェース回路は、前記テスト制御情報を外部から前記テストレジスタ回路にテストパスを介して供給し、前記テスト結果の情報を前記テストレジスタ回路から前記テストパスを介して外部に出力するものであることを特徴とする半導体集積回路。
【請求項２】
前記テスト制御回路は、テストパターン発生回路及び圧縮回路を有し、前記テストパターン発生回路は前記テストレジスタ回路に入力されたテスト制御情報に基づいて前記被テスト回路にテストパターンを発生し、前記圧縮回路は、前記被テスト回路の動作結果を圧縮して前記テスト結果の情報を生成し、前記テストレジスタ回路に供給するものであることを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記複数個の回路モジュールの制御端子は共通接続されて前記テストインタフェース回路に結合されて成るものであることを特徴とする請求項１又は２記載の半導体集積回路。
【請求項４】
前記テストパスは、前記テストインタフェース回路を基点に前記複数個のテストレジスタ回路を直列的に接続し、前記テストインタフェース回路に帰還するスキャンパスを構成するものであることを特徴とする請求項１乃至３の何れか１項記載の半導体集積回路。
【請求項５】
前記テストレジスタ回路は、前記テスト入力端子に接続されたシリアル入力端子、前記テスト出力端子に接続されたシリアル出力端子、前記パターン発生回路に接続されたパラレル出力端子、前記圧縮回路に接続されたパラレル入力端子を有する、複数ビットのシフトレジスタであることを特徴とする請求項２記載の半導体集積回路。
【請求項６】
前記テストパスは、前記テストレジスタ回路を直列的に接続した経路を複数系統有して成るものであることを特徴とする請求項４又は５記載の半導体集積回路。
【請求項７】
前記テスト制御情報はテスト動作内容を指示するテストコマンドであることを特徴とする請求項１又は２記載の半導体集積回路。
【請求項８】
前記複数個の回路モジュールの一つはキャッシュメモリであることを特徴とする請求項1乃至７の何れか１項記載の半導体集積回路。
【請求項９】
前記複数個の回路モジュールの一つはダイナミック・ランダム・アクセス・メモリであることを特徴とする請求項1乃至７の何れか１項記載の半導体集積回路。
【請求項１０】
前記複数個の回路モジュールは、共通バスに接続された第１の回路モジュールと、前記第１の回路モジュールに接続され前記共通バスとは非接続の第２の回路モジュールとを含んで成るものであることを特徴とする請求項１乃至７の何れか１項記載の半導体集積回路。
【請求項１１】
前記第２の回路モジュールはローカルメモリであることを特徴とする請求項１０記載の半導体集積回路。
【請求項１２】
前記テストインタフェース回路は、外部端子としてクロック端子、モード端子、データ入力端子、及びデータ出力端子を有し、前記モード端子を介して第１の動作モードが指定されたとき、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記テストパスに送り出し、前記モード端子を介して第２の動作モードが指定されたとき、前記データ入力端子に供給される情報を取り込み、取り込んだ情報をデコードして前記テスト制御端子に向けて制御信号を出力し、前記モード端子を介して第３の動作モードが指定されたとき、前記テストパスを通してテストレジスタ回路の情報を取り込んで、前記データ出力端子から外部に出力するものであることを特徴とする請求項４乃至６の何れか１項記載の半導体集積回路。
【請求項１３】
前記テストインタフェース回路はＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なうものであることを特徴とする請求項１２記載の半導体集積回路。
【請求項１４】
半導体チップに形成されるべき集積回路をコンピュータを用いて設計するための回路モジュールデータが前記コンピュータにより読取り可能に記憶された記憶媒体であって、前記記憶媒体に記憶された回路モジュールデータは、
テスト入力端子と、テスト出力端子と、テスト制御端子と、正規インタフェース端子と、前記正規インタフェース端子に接続された被テスト回路と、前記テスト入力端子から情報を入力し前記テスト出力端子に情報を出力するテストレジスタ回路と、前記被テスト回路に対するテストの開始を前記制御端子から受け、前記テストレジスタ回路のテスト制御情報を用いて前記テストを行ない、テスト結果の情報をテストレジスタ回路に供給するテスト制御回路と、を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データを含むことを特徴とする記憶媒体。
【請求項１５】
前記テスト制御回路は、テストパターン発生回路及び圧縮回路を有し、前記テストパターン発生回路は前記テストレジスタ回路に入力されたテスト制御情報に基づいて前記被テスト回路にテストパターンを発生し、前記圧縮回路は、前記被テスト回路の動作結果を圧縮して前記テスト結果の情報を生成し、前記テストレジスタ回路に供給するものであることを特徴とする請求項１４記載の記憶媒体。
【請求項１６】
前記テストレジスタ回路は、前記テスト入力端子に接続されたシリアル入力端子、前記テスト出力端子に接続されたシリアル出力端子、前記パターン発生回路に接続されたパラレル出力端子、前記圧縮回路に接続されたパラレル入力端子を有する、複数ビットのシフトレジスタであることを特徴とする請求項１５記載の記憶媒体。
【請求項１７】
前記回路モジュールはキャッシュメモリであることを特徴とする請求項１６項記載の記憶媒体。
【請求項１８】
前記回路モジュールはダイナミック・ランダム・アクセス・メモリであることを特徴とする請求項１６記載の記憶媒体。
【請求項１９】
請求項１４記載の回路モジュールデータを被テスト回路が異なる複数の回路モジュールに対して有すると共に、
前記複数の回路モジュールが形成される半導体チップ上に、夫々の回路モジュールに対して、一方の回路モジュールのテスト出力端子を他方の回路モジュールのテスト入力端子に結合してテスト信号チェーンを構成するテストパスを形成する為の図形パターンデータ若しくは機能記述データとしてのテストパスデータをコンピュータ読取り可能に有することを特徴とする記憶媒体。
【請求項２０】
前記テスト制御情報を外部から前記テストレジスタ回路に前記テストパスを介して供給し、前記テスト結果の情報を前記テストレジスタ回路から前記テストパスを介して外部に出力するテストインタフェース回路を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データとしてのテストインタフェース回路情報を更に含むことを特徴とする請求項１９記載の記憶媒体。
【請求項２１】
半導体チップに形成されるべき集積回路をコンピュータを用いて設計するための回路モジュールデータが前記コンピュータにより読取り可能に記憶された記憶媒体であって、前記記憶媒体に記憶された回路モジュールデータは、
テスト入力端子と、テスト出力端子と、テスト制御端子と、被テスト回路と接続される正規インタフェース端子と、前記テスト入力端子から情報を入力し前記テスト出力端子に情報を出力するテストレジスタ回路と、前記被テスト回路に対するテストの開始を前記制御端子から受け、前記テストレジスタ回路のテスト制御情報を用いて前記テストを行ない、テスト結果の情報をテストレジスタ回路に供給するテスト制御回路と、を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データを含むことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路に組み込まれるテスト容易化技術に関するものであり、例えば、バウンダリスキャンの規格としてＪＴＡＧ（Joint Test Action Grope）が採用された半導体集積回路に適用して有効な技術に関する。
【０００２】
【従来の技術】
半導体集積回路のテスト容易化技術として、テスト動作時にスキャンクロックに同期してスキャンパスにスキャンデータを伝達させながらテスト動作させ、その結果をスキャンアウトする構成が広く採用されている。
【０００３】
特開平３−４２８５０号公報には、半導体集積回路の外部からテストモードを指定すると、内部で自動的にスキャンデータを発生し、スキャンパスを通してバーン・イン・テストを可能にした発明が記載されている。また、特開平６−２０１７８０号公報には、スキャンチェーンの入力にテストパターン発生器を配置し、スキャンチェーンの出力にテスト出力圧縮器を配置して、テスト時間の短縮を企図した発明が記載されている。特開平５−２６４６６４号公報にはＴＡＰコントローラを用いたバウンダリスキャンに関しＴＡＰコントローラで生成した命令のデコード結果にしたがってテスト対象レジスタだけにクロックを供給して低消費電力を図るという技術が記載されている。
【０００４】
特開平５−２６４６６４号公報には、テストイネーブル信号及びテストクロック信号を、夫々セルフテスト回路を組み込んだ複数の半導体集積回路に並列に供給し、セルフテスト機構を同時に動作させて故障診断を行なうことにより、テスト時間を短縮した発明に関する記載がある。特開平８−２２０１９２号公報には、夫々アドレス付けされたスキャン可能なフリップフロップのチェーンを有する複数個の被試験ＬＳＩと共に検査制御ＬＳＩが１つの回路基板に実装され、検査制御ＬＳＩは疑似乱数発生器と符号圧縮器を有し、スキャン・イン時にフリップフロップに疑似乱数を書き込み、スキャン・アウト時にフリップフロップのデータを符号圧縮器に供給し、故障診断の容易化及び高速化を図ろうとする発明に関する記載がある。
【０００５】
【発明が解決しようとする課題】
本発明者はメモリやＣＰＵなどのように比較的論理規模の大きな複数個の回路モジュール（機能モジュールとも称される機能単位）を搭載した半導体集積回路のデバイステストについて検討した。これによれば、テストの効率を向上させるには外部から供給すべきテストデータ及び外部に出力すべきテスト結果のデータ量を減らし、回路モジュールのテスト動作を並列化してテスト時間を短縮することの必要性が明らかにされた。また、テストの為に必要な回路の論理・物理的な規模を極力小さくするには各回路モジュールへのテストデータ及び結果データの入力及び出力を行なう回路を各回路モジュールに共通化することが必要である。さらに、ＢＧＡ（Ball Grid array）のような面実装パッケージを適用した半導体集積回路と実装基板との電気的接続を検査するためのバウンダリスキャンの規格としてＪＴＡＧを採用している場合にはバウンダリスキャンだけに用いられるようなＪＴＡＧコントローラをその他のテストに流用することがテスト回路の論理・物理的規模の縮小に役立つ。これらの点に付いては、前記何れの先行技術によっても十分ではない。
【０００６】
本発明の目的は、複数個の回路モジュールをテストするのに外部から供給すべきテストデータ及び外部に出力すべきテスト結果のデータの量を減らすことができ、しかも前記複数個の回路モジュールのテスト時間を短縮することができる半導体集積回路を提供することにある。
【０００７】
本発明の別の目的は、複数個の回路モジュールをテストする為に必要なテスト回路の規模を極力小さくすることができる半導体集積回路を提供することにある。
【０００８】
本発明のその他の目的は、テスト時間の短縮並びにテスト回路の規模の縮小を実現する半導体集積回路の設計を容易化できる設計データを提供しようとするものである。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
〔１〕半導体集積回路は、テスト入力端子、テスト出力端子及びテスト制御端子が設けられた複数個の回路モジュールと、一方の回路モジュールのテスト出力端子を他方の回路モジュールのテスト入力端子に結合してテスト信号チェーンを形成するテストパスと、テストパスに接続されたテストインタフェース回路と、を１個の半導体チップに含む。前記回路モジュールは、被テスト回路、テストレジスタ回路及びテスト制御回路を有する。前記テストレジスタ回路は前記テスト入力端子及びテスト出力端子を介してテストパスに結合され且つテスト制御回路との間で入出力可能にされる。前記テスト制御回路は被テスト回路に対するテストの開始を前記制御端子から受け、前記テストレジスタ回路のテスト制御情報を用いて前記テストを行ない、テスト結果の情報をテストレジスタ回路に供給する。前記テストインタフェース回路は、前記テスト制御情報を外部から前記テストレジスタ回路にテストパスを介して供給し、前記テスト結果の情報を前記テストレジスタ回路から前記テストパスを介して外部に出力する。
【００１２】
前記被テスト回路のテストを行なうとき、外部からテストインタフェース回路にテスト制御情報を入力し、テスト対象とされる全ての回路モジュール内のテストレジスタ回路にテストインタフェース回路からテスト信号チェーンであるテストパスを介してテスト制御情報をセットすることができる。その後、制御端子を介して各テスト制御回路にテスト動作を指示することにより、テスト回路は並列的にテスト制御情報に基づいて被テスト回路をテスト動作させる。テスト結果の情報は個々のテストレジスタ回路に保持され、その後、テスト対象とされる全ての回路モジュール内のテストレジスタ回路の情報がテスト信号チェーンであるテストパスを介してテストインタフェース回路に読み込まれて、外部に出力される。このように、回路モジュールのテスト動作を並列化できテスト時間を短縮できる。また、回路モジュールへのテスト制御情報及びテスト結果データの入力及び出力を行なうテストインタフェース回路を各回路モジュールに共通化することができるから、テストの為に必要な回路の論理・物理的な規模の縮小にも寄与することができる。
【００１３】
〔２〕前記テスト制御回路にはテストパターン発生回路及び圧縮回路を採用しても良い。前記テストパターン発生回路は前記テストレジスタ回路に入力されたテスト制御情報に基づいて前記被テスト回路にテストパターンを発生し、前記圧縮回路は、前記被テスト回路の動作結果を圧縮して前記テスト結果の情報を生成し、前記テストレジスタ回路に供給するものである。前記テスト制御情報はテスト動作内容を指示するテストコマンドとして位置付けることも可能である。テストパターン発生回路はテストコマンドを解読してテストパターンを発生する。
【００１４】
これにより、テストインタフェース回路からテストレジスタ回路に送るテスト制御情報、そしてテストレジスタ回路からテストインタフェース回路に送る演算結果情報の各情報量を少なくすることができ、テスト効率向上に寄与することができる。
【００１５】
〔３〕前記複数個の回路モジュールの制御端子を共通接続して前記テストインタフェース回路に結合すれば、複数の回路モジュールに並列的にテスト動作を指示できることはもとより、そのための指示信号数も最小限に抑えることができる。
【００１６】
〔４〕前記テストパスには、例えば、前記テストインタフェース回路を基点に前記複数個のテストレジスタ回路を直列的に接続し、前記テストインタフェース回路に帰還するスキャンパスの構成を採用すればよい。このとき、転送制御クロック制御はテストインタフェース回路で生成すればよい。
【００１７】
その場合、前記テストレジスタ回路は、例えば、前記テスト入力端子に接続されたシリアル入力端子、前記テスト出力端子に接続されたシリアル出力端子、前記パターン発生回路に接続されたパラレル出力端子、前記圧縮回路に接続されたパラレル入力端子を有する、複数ビットのシフトレジスタによって構成すればよい。
【００１８】
前記テストパスは、前記テストレジスタ回路を直列的に接続した経路を単一系統で構成する場合に限定されず、複数系統で構成してもよい。複数系統にすれば、テストパスを介する前記テスト制御情報及びテスト結果情報の転送時間を更に短くすることが可能になる。
【００１９】
〔５〕前記複数個の回路モジュールの一つが例えばキャッシュメモリやランダム・アクセス・メモリであれば、一般的にテストに時間のかかるメモリテストの効率が向上し、テスト効率向上の効果を最大限に引き出すことができる。
【００２０】
また、前記複数個の回路モジュールが、共通バスに接続された第１の回路モジュールと、前記第１の回路モジュールに接続され前記共通バスとは非接続の第２の回路モジュールとを含んでいるとき、共通バス経由のテストが不可能な第２の回路モジュールに対しても第１の回路モジュールと同様に能率的なテストが可能である。
【００２１】
そのような第２の回路モジュールは、通信系や蓄積系データを処理するコントローラのローカルなデータバッファ等のローカルメモリとして用いられることが多く、そのような場合を想定すると、システム・オン・チップ化されるようなシステムＬＳＩにおいて、共通バス経由のテストが不可能なローカルメモリに対しても能率的にメモリテストが可能になる。
【００２２】
〔６〕前記テストインタフェース回路は、例えば、外部端子としてクロック端子、モード端子、データ入力端子、及びデータ出力端子を有し、前記モード端子を介して第１の動作モードが指定されたとき、前記データ入力端子に供給される情報を取り込み、取り込んだ情報を前記テストパスに送り出し、前記モード端子を介して第２の動作モードが指定されたとき、前記データ入力端子に供給される情報を取り込み、取り込んだ情報をデコードして前記テスト制御端子に向けて制御信号を出力し、前記モード端子を介して第３の動作モードが指定されたとき、前記テストパスを通してテストレジスタ回路の情報を取り込んで、前記データ出力端子から外部に出力するように構成してもよい。
【００２３】
更に詳しくは、上記具体的な構成のテストインタフェース回路は、ＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なうようにすればよい。この規格は、前記バウンダリスキャンの規格であるＪＴＡＧに準拠するものであり、バウンダリスキャンに用いられるようなＪＴＡＧコントローラをテストインタフェース回路の主要なインタフェース機能と兼用可能になるから、ＪＴＡＧコントローラの有効利用、若しくはテスト用回路の規模を一層縮小するのに役立つ。
【００２４】
〔７〕上述の半導体集積回路の設計を容易化するという観点に立てば、上述した回路モジュールの設計データ若しくは半導体集積回路それ自体の設計データを、所謂ＩＰ（Intellectual Property）モジュールとして提供すればよい。ＩＰモジュールは、例えば、ＨＤＬ（Hardware Description Language）やＲＴＬ（Register Transfer Language）等の機能記述データと共に回路のマスクパターンデータ若しくは描画データも有するハードＩＰモジュール、機能記述データを主とするソフトＩＰモジュールに大別される。このＩＰモジュールのような回路モジュールデータは、半導体チップに形成されるべき集積回路をコンピュータを用いて設計するための回路モジュールデータであって、前記コンピュータにより読取り可能に記憶媒体に記憶されて提供される。
【００２５】
回路モジュールデータは、テスト入力端子と、テスト出力端子と、テスト制御端子と、正規インタフェース端子と、前記正規インタフェース端子に接続された被テスト回路と、前記テスト入力端子から情報を入力し前記テスト出力端子に情報を出力するテストレジスタ回路と、前記被テスト回路に対するテストの開始を前記制御端子から受け、前記テストレジスタ回路のテスト制御情報を用いて前記テストを行ない、テスト結果の情報をテストレジスタ回路に供給するテスト制御回路と、を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データを含む。
【００２６】
ＩＰモジュールの規模はＬＳＩレベルにまで及ぶことがある。これを想定したとき、前記回路モジュールデータを被テスト回路が異なる複数の回路モジュールに対して有する。更に、前記複数の回路モジュールが形成される半導体チップ上に、夫々の回路モジュールに対して、一方の回路モジュールのテスト出力端子を他方の回路モジュールのテスト入力端子に結合してテスト信号チェーンを構成するテストパスを形成する為の図形パターンデータ若しくは機能記述データとしてのテストパスデータを有する。更に、前記テスト制御情報を外部から前記テストレジスタ回路に前記テストパスを介して供給し、前記テスト結果の情報を前記テストレジスタ回路から前記テストパスを介して外部に出力するテストインタフェース回路を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データとしてのテストインタフェース回路情報を更に含んでもよい。
【００２７】
【発明の実施の形態】
図２には本発明に係る半導体集積回路の一例としてマイクロコンピュータが示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、公知の半導体集積回路製造技術によって単結晶シリコンのような１個の半導体チップに形成されている。
【００２８】
マイクロコンピュータ１は、回路モジュールとして、中央処理装置（ＣＰＵ）２とキャッシュメモリ３を有し、双方はキャッシュバス４を介して接続される。キャッシュメモリ３は共通バスとしての内部バス５に結合され、内部バス５には、更に別の回路モジュールとして、前記ＣＰＵ２によってアクセス可能な内部メモリ６、前記ＣＰＵ２への割込みを制御する割込みコントローラ７、外部バスサイクルを制御するバスステートコントローラ（ＢＳＣ）８、入出力ポート９、更にＣＰＵ２によってアクセス可能な代表的に２個図示された周辺回路１０，１１が接続されている。マイクロコンピュータ１はクックパルスジェネレータ（ＣＰＧ）１３が出力する基本クロック信号φに同期動作される。
【００２９】
前記内部メモリ６はダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、または電気的に書き換え可能なフラッシュメモリのような不揮発性メモリである。前記キャッシュメモリ３は、命令キャッシュメモリ、データキャッシュメモリ、またはデータ・命令混在型のユニファイドキャッシュメモリの何れであっても良く、例えばＳＲＡＭによって構成される。
【００３０】
前記周辺回路１０はタイマやシリアル入出力回路等の適宜の回路によって構成される。前記周辺回路（第１の回路モジュール）１１は、前記ＣＰＵ２のアドレス空間には配置されていないローカルなデータバッファ等に用いられるローカルメモリ（第２の回路モジュール）１２に接続され、このローカルメモリ１２を利用して動作する回路である。図２の例ではローカルメモリ１２は内部バス５とも非接続状態にされている。例えば周辺回路１１がエラー訂正専用の演算回路であるとすると、ローカルメモリ１２はエラー訂正処理用のデータバッファとして用いられる。
【００３１】
マイクロコンピュータ１はテストの為にＪＴＡＧコントローラ１４を有している。特に図示はしないが、マイクロコンピュータ１のパッケージは例えばＢＧＡのような面実装タイプとされる。ＪＴＡＧコントローラ１４は、バウンダリスキャンによって実装基板と外部端子との接続状態をチェックするための制御機能を有し、少なくとも、ＩＥＥＥＥ１１４９．１の規格に準拠した信号入出力機能を備える。更にＪＴＡＧコントローラ１４は、詳細を後述する、各回路モジュールのセルフテストの為に外部との信号インタフェース機能を有する。テスト対象回路モジュールとＪＴＡＧコントローラ１４との接続はテストパスとしてのスキャンパス２０によって行われる。図２の例では、スキャンパス２０を用いたテスト対象回路モジュールは、内部メモリ６、周辺回路１０、割込みコントローラ７、キャッシュメモリ３、入出力ポート９、ローカルメモリ１２、周辺回路１１、及びバスステートコントローラ８とされる。
【００３２】
図１には前記スキャンパスを用いたセルフテストに着目して前記マイクロコンピュータ１を示してある。前記内部バス５やキャッシュバス４との接続関係は図示を省略してある。
【００３３】
図１においてスキャンパス２０を用いたテスト対象回路モジュール（以下被テストモジュールとも称する）には便宜上２１〜２４の符号を付してある。複数個の被テストモジュール２１〜２４は、被テストモジュール２１に代表されるように、テスト入力端子３０、テスト出力端子３１及びテスト制御端子３２を、テスト用モジュールインタフェース端子として有する。前記スキャンパス２０は、一方の被テストモジュールのテスト出力端子３１を他方の被テストモジュールのテスト入力端子３０に結合して、テスト信号チェーンをシリアル信号パスによって形成する。
【００３４】
前記被テストモジュール２１〜２４は、被テストモジュール２１に代表されるように、被テスト回路４０、スキャンレジスタ（テストレジスタ回路）４１及びテスト制御回路４２を有する。前記テスト制御回路４２にはテストパターン発生回路４３及び圧縮回路４４を採用してある。前記テストパターン発生回路４３は前記スキャンレジスタ４１に入力されたテストコマンド（テスト制御情報）５３に基づいて前記被テスト回路４０にテストパターン５４を発生する。テストパターン発生回路４３は、例えば図３に示されるように、乱数発生器４３０と、出力信号を帰還入力して＋１する加算器４３１と、前記乱数発生器４３０の出力又は加算器４３１の出力を選択するマルチプレクサ４３２と、前記テストコマンドを解読して前記乱数発生器４３０、加算器４３１及びマルチプレクサ４３２の動作を制御する制御回路４３３とによって構成することができる。テストパターン発生回路４３によるテストパターン発生動作は、セルフテスト指令信号５２がイネーブルにされるのを待って開始される。
【００３５】
前記圧縮回路４４は、前記被テスト回路４０の動作によって得られる信号５５を圧縮してテスト結果データ（テスト結果の情報）５６を生成し、前記スキャンレジスタ４１に供給する。
【００３６】
前記スキャンレジスタ４１は、前記テスト入力端子３０及びテスト出力端子３１を介して前記スキャンパス２０に結合され、スキャンパス制御クロック信号５０によってビットシリアルにシフト動作を行なうシフトレジスタを主体に構成されている。更に、テストパターン発生回路４３へのパラレル出力、パターン圧縮回路４４からのパラレル入力も可能にされている。図４にはスキャンレジスタ４１の詳細な一例が示されており、直列接続されたｎ個の記憶段４１０は、夫々入力ゲート４１１とラッチ回路４１２を有し、シリアル入力端子４１３とシリアル出力端子４１４からのシリアル入出力はスキャンパス制御クロック信号５０のレベル変化に同期して順次行われ、パラレル出力端子４１５からのパラレル出力は各記憶段４１０の出力ノードから引き出され、パラレル入力端子４１６からのパラレル入力はテストパターン発生回路４３によるテスト動作終了信号５１がイネーブルレベルに変化されるタイミングで選択される。
【００３７】
テストインタフェース回路の一例である前記ＪＴＡＧコントローラ１４は、マイクロコンピュータ１の外部と非同期でシリアルに情報の入出力を行うための外部インタフェース端子として、テストクロック端子ＴＣＫ、テストモードセレクト端子ＴＭＳ、テストリセット端子／ＴＲＳＴ、テストデータ入力端子ＴＤＩ、テストデータ出力端子ＴＤＯを有する。そして、それら５端子を用いてインタフェース制御を行なために、前記ＪＴＡＧコントローラ１４は、特に制限されないが、シフトレジスタ６０、バイパスレジスタ６１、マルチプレクサ６２、命令レジスタ６４、データレジスタ６５、命令デコーダ６６、ＴＡＰコントローラ６７を有する。
【００３８】
前記シフトレジスタ６０は、テストデータ入力端子ＴＤＩに入力されるシリアルデータをＴＡＰコントローラ７６７から出力された信号３８に含まれているシフトクロックに同期してシリアル入力する。シリアル入力されたデータは、命令レジスタ６４又はデータレジスタ６５にパラレル入力される。何れを選択するかは制御信号６８で決る。命令レジスタ６４に供給された命令は、制御信号６８の指示で命令デコーダ６６にパラレルに供給される。命令デコーダ６６はこれに供給された命令がセルフテスト開始コマンドのコードデータであるとき、前記セルフテスト指令信号５２をイネーブルレベルにする。データレジスタ６５に格納されたデータは、前記スキャンパス制御クロック信号５０に同期してスキャンパス２０に向けてシリアル出力される。また、データレジスタ６５はスキャンパス制御クロック信号５０に同期してスキャンパス２０からデータをシリアル入力することができる。スキャンパス２０からデータレジスタ６５にシリアル入力されたデータはシフトレジスタ６０にパラレル転送され、パラレル転送されたデータはシフトクロックに同期してシフトレジスタ６０からシリアル出力される。バイパスレジスタ６１はテストデータ入力端子ＴＤＩとテストデータ出力端子ＴＤＯを接続するための１ビットのレジスタである。マルチプレクサ６２はシフトレジスタ６０のシリアル出力又はバイパスレジスタ６１の出力を選択してテストデータ出力端子ＴＤＯに与える。図１には図示を省略してあるが、バウンダリスキャンの為に、マイクロコンピュータ１の外部端子にはバウンダリスキャンセルと呼ばれるフリップフロップが付加され、全てのバウンダリスキャンセルを、テストデータ入力端子ＴＤＩから入りテストデータ出力端子ＴＤ０に出る１つのシフトレジスタ（バウンダリスキャンレジスタ）として機能させるように接続した構成も付加されている。
【００３９】
テストデータ端子ＴＤＩ，ＴＤＯを介する上記データ入出力動作はタップコントローラ６７から出力される制御信号６８で制御される。ＴＡＰコントローラ６７は、状態遷移制御によって制御信号６８を生成する、所謂ステートマシンとされる。即ち、テストモードセレクト端子ＴＭＳの論理値が現在の論理値に対して“１”又は“０”の何れに変化するかによって内部制御状態を、予め決められた状態遷移モデルに対して順次遷移させていく。換言すれば、現在のステートから次のステートに進む方向はテストモードセレクト端子ＴＭＳに与えられる信号の論理値によって決定される。順次遷移された個々の制御状態に応じて複数ビットの制御信号６８の状態が決定される。
【００４０】
図５にはＪＴＡＧコントローラ１４による被テスト回路２１〜２４のテスト制御シーケンスの一例が示される。
【００４１】
まず、スキャンパス２０を介して被テストモジュール２１〜２４の各スキャンレジスタ４１のテストコマンドをセットする（Ｓ１）。即ち、テストモードセレクト端子ＴＭＳの状態を変化させて、テストデータ入力端子ＴＤＩからシフトレジスタ６０にテストコマンドを順次シリアル入力し、これをデータレジスタ６５にパラレル転送した後、当該転送データのビット数分、スキャンパス制御クロック信号５０に同期してデータレジスタ６５からスキャンパス２０にテストコマンドをシリアル出力する。この動作を、テストコマンドの設定が必要な全てのスキャンレジスタ４１にテストコマンドがセットされるまで繰り返す。
【００４２】
次に、テストモードセレクト端子ＴＭＳの状態を変化させて、テストデータ入力端子ＴＤＩからシフトレジスタ６０にセルフテスト開始コマンドを順次シリアル入力し、これを命令レジスタ６４にパラレル転送する。命令デコーダ６６はそのセルフテスト開始コマンドをデコードして、各被テストモジュール２１〜２４にセルフテスト指令信号５２を供給する（Ｓ２）。各被テストモジュール２１〜２４は、スキャンレジスタ４１にセットされたテストコマンドに応じた内容でセルフテストを並列的に開始する（Ｓ３）。テスト動作によって得られたデータはパターン圧縮回路４４で圧縮され、テストパターン発生回路４３から出力されるテスト動作終了信号がイネーブルにされることを条件に、圧縮されたテスト結果データが対応するスキャンレジスタ４１にロードされる。
【００４３】
次に、テストモードセレクト端子ＴＭＳの状態を変化させて、スキャンレジスタのデータをスキャンパスから順次データレジスタ６５にシリアル入力させ、シリアル入力されたデータをシフトレジスタ６０、マルチプレクサ６２を経由させてテストデータ出力端子ＴＤＯから外部に出力させる（Ｓ４）。
【００４４】
以上、図２に基づいて説明したＪＴＡＧ利用でセルフテスト可能なマイクロコンピュータ１によれば以下の作用効果を得ることができる。
【００４５】
前記被テストモジュール２１〜２４のテストを行なうとき、外部からＪＴＡＧコントローラ１４にテストコマンドを入力し、これをスキャンパス２０を介して全ての被テストモジュール２１〜２４のスキャンパスにロードすることができる。この場合、全ての被テストモジュールに同じテストコマンドを与えることも、夫々に異なるテストコマンドを与えることも可能である。その後、制御端子３２を介して各被テストモジュール２１〜２４にセルフテスト指令信号５２が与えられることにより、被テストモジュール２１〜２４は夫々のテストコマンドに従ったテスト動作を並列に行なうことができる。テスト結果データ５６が個々のスキャンレジスタ４１に保持され、その後、テスト結果データがスキャンパス２を経由してＪＴＡＧコントローラ１４からテストデータ出力端子ＴＤＯに出力される。このように、被テストモジュール２１〜２４のセルフテスト動作を並列化でき、マイクロコンピュータ１全体のデバイステスト時間を短縮できる。また、被テストモジュール２１〜２４へのテストコマンド５３及びテスト結果データ５６の入力及び出力を行なうＪＴＡＧコントローラ１４を被テストモジュール２１〜２４に共通化することができるから、テストの為に必要な回路の論理的・物理的な規模の縮小にも寄与することができる。
【００４６】
前記テスト制御回路４２にテストパターン発生回路４３及びパターン圧縮回路４４を採用するから、ＪＴＡＧコントローラ１４からスキャンレジスタ４１に送るテスト制御情報、そしてスキャンレジスタ４１からＪＴＡＧコントローラ１４に送るテスト結果データの各情報量を少なくすることができ、この点においても、テスト効率向上に寄与することができる。
【００４７】
前記複数個の被テストモジュール２１〜２４の制御端子３２を共通接続してセルフテスト指令信号５２を与えるから、複数の被テストモジュールに並列的にテスト動作を指示できることはもとより、そのための指示信号数も最小限に抑えることができる。
【００４８】
被テストモジュールの一つにキャッシュメモリ３やＤＲＡＭのような内部メモリ６を含む場合、テストに時間のかかるメモリテストの効率が向上し、デバイステストの効率向上という前記効果を最大限に引き出すことができる。ローカルメモリ１２も被テストモジュールに含まれているから、共通バス５経由のテストが不可能なローカルメモリに対しても能率的にメモリテストを行なう事が可能になる。
【００４９】
ＩＥＥＥ１１４９．１の規格に準拠した手順で信号入出力を行なうＪＴＡＧコントローラ１４はバウンダリスキャンに用いられる。バウンダリスキャンに用いられるようなＪＴＡＧコントローラをデバイステストの為のコマンドやデータ入出力に流用するから、ＪＴＡＧコントローラの有効利用、若しくはデバイステスト用の回路の規模を一層縮小するのに役立つ。
【００５０】
図６には図１のマイクロコンピュータ１における被テストモジュール２１を内部メモリ６、キャッシュメモリ３又はローカルメモリ１２などのメモリとする場合が例示される。回路被テスト回路４０は、メモリ回路４００と欠陥ビット救済回路４０１を含む。メモリ回路４００の詳細は特に図示はしないが、例えば、メモリセルの選択端子がワード線に、メモリセルのデータ端子がビット線に接続され、ワード線の選択をロウアドレスデコーダで行ない、ビット線の選択をカラムスイッチ回路とカラムデコーダで行ない、それらによって選択されたメモリセルはコモンデータ線などに導通され、データ読み出し動作ではコモンデータ線に読み出された記憶情報がメインアンプなどで増幅されて外部に出力され、書き込み動作では書き込みデータがコモンデータ線を介してメモリセルに与えられる。メモリセル、ビット線、ワード線などの欠陥を救済する為に冗長メモリセル、冗長ワード線又は冗長ビット線などが設けられている。欠陥メモリセルを冗長メモリセルに置きかえる場合、例えば当該欠陥メモリセルのワード線が選択されるとき、当該ワード線の選択を禁止し、これに代えて冗長ワード線を選択させる。このような欠陥部分の選択を冗長の選択に置きかえる為に欠陥救済回路４０１が設けられている。欠陥救済回路４０１には欠陥アドレスをプログラムしておくことで、当該プログラムされたアドレスのアクセスを検出したとき、前記欠陥を冗長に置き換える制御を行なう。そのような欠陥アドレスをプログラムするには電気ヒューズを用いることも可能であるが、ここでは電気的に書き込み可能な不揮発性記憶素子を用いる。例えば、フラッシュメモリに用いられるような、コントロールゲート、フローティングゲート、ソース、及びドレインを持つメモリセルトランジスタを採用することができる。このような不揮発性メモリセルに対する書き込み制御は、書き込み制御信号４０２によって行なうことができる。
【００５１】
図７には図６のマイクロコンピュータに対するテスト制御シーケンスの一例が示される。
【００５２】
まず、スキャンパス２０を介して被テストモジュール２１〜２４の各スキャンレジスタ４１にテストコマンドをセットする。特にメモリモジュールとされる被テストモジュール２１に対しては、欠陥ビットの位置を特定可能な各種マーチングテストを実施させることができるテストコマンドを与える。（Ｓ１０）。次に、セルフテスト開始コマンドを命令レジスタ６４にセットする。命令デコーダ６６はそのセルフテスト開始コマンドをデコードして、各被テストモジュール２１〜２４にセルフテスト指令信号５２を供給する（Ｓ１１）。各被テストモジュール２１〜２４は、スキャンレジスタ４１にセットされたテストコマンドに応じた内容でセルフテストを並列的に開始する。テスト動作によって得られたデータはパターン圧縮回路４４で圧縮され、テストパターン発生回路４３から出力されるテスト動作終了信号がイネーブルにされることを条件に、圧縮されたテスト結果データが対応するスキャンレジスタ４１にロードされる（Ｓ１２）。
【００５３】
次に、テストモードセレクト端子ＴＭＳの状態を変化させて、スキャンレジスタのデータをスキャンパスから順次データレジスタ６５にシリアル入力させ、シリアル入力されたデータをシフトレジスタ６０、マルチプレクサ６２を経由させてテストデータ出力端子ＴＤＯから外部に出力させる。このとき、メモリモジュール２１に欠陥があれば、指摘された欠陥アドレスを書き込み制御信号４０２によって欠陥ビット救済回路４０１にプログラムする（Ｓ１３）。更に、その欠陥救済が有効であったかを検証する為に、再度、被テストモジュール２１〜２４の各スキャンレジスタ４１に対するテストコマンドのセット（Ｓ１４）、セルフテスト開始コマンドをセットして各被テストモジュール２１〜２４に対するセルフテスト指令（Ｓ１５）、各被テストモジュール２１〜２４によるテストコマンドに応じた並列的なセルフテスト（Ｓ１６）、テスト結果データの外部出力を（Ｓ１７）を行なう。
【００５４】
以上のように、欠陥救済を電気的に書き込み可能な不揮発性メモリセルを用いて行なうことができれば、マイクロコンピュータ１のテストで、デバイステストを行ない、これによって欠陥が検出されたときは、そのまま書き換え制御信号４０２を制御して、欠陥救済プログラムの処理まで、デバイステストの一環で行なうことができる。
【００５５】
図８にはスキャンパスを２系統に分けたマイクロコンピュータの一例が示される。２系統に分けたスキャンパスは２０Ａ，２０Ｂで示される。スキャンパス２０Ａには被テストモジュール２１〜２３が接続され、スキャンパス２０Ｂには被テストモジュール２４〜２６が接続されている。これに応じてデータレジスタも、各スキャンパス２０Ａ，２０Ｂ毎に、６５Ａ，６５Ｂとして設けられている。スキャンパスを複数系統にすれば、スキャンパスを介する前記テストコマンドやテスト結果データの転送時間を更に短くすることが可能になる。その他の構成は図１と同様であるからその詳細な説明は省略する。
【００５６】
図９にはスキャンレジスタをＣＰＵによってアクセス可能にしたマイクロコンピュータが示される。図９において、被テストモジュール２１のスキャンレジスタ４１は内部バス５を介してＣＰＵ２からアクセス可能にされている。この構成によれば、スキャンレジスタ４１はＣＰＵ２のアドレス空間に配置されることになり、ＣＰＵ２がテストコマンドを発行して、被テストモジュール２１をセルフテストすることが可能になる。このような構成の場合、デバイステストだけにしか利用されないスキャンレジスタ４１がＣＰＵ２のメモリ空間の一部を占めることになるという不利益のあることに注意しなければならない。したがって、この構成は、システムに実装した後の、経時的変化による故障検出を特に行なわなければならないという要請がある場合に適用されるであろう。
【００５７】
また、図９の例では、被テスト回路４０に供給されるテスト用データは全てがテストパターン発生回路４３から出力されなければならないことを意味せず、バス５或いは他の被テストモジュールから供給されても良い。このとき、それをセレクタ４０３で選択してセルフテストに利用するようにすればよい。セレクタ４０３に対する選択制御は、スキャンレジスタ４１にロードされたテストコマンドにしたがって行なえばよい。
【００５８】
次に、上述のマイクロコンピュータ１の設計を容易化するという観点より、上述した回路モジュール２１の設計データ若しくはマイクロコンピュータ１それ自体の設計データを、所謂ＩＰモジュールとして提供することについて説明する。
【００５９】
ＩＰモジュールとして提供する回路モジュールデータは、例えば図１の被テストモジュールを特定するデータであり、テスト入力端子３０と、テスト出力端子３１と、テスト制御端子３２と、正規インタフェース端子と、前記正規インタフェース端子に接続された被テスト回路４０と、前記テスト入力端子３０から情報を入力し前記テスト出力端子３１に情報を出力するスキャンレジスタ４１と、前記被テスト回路４０に対するテストの開始を前記制御端子３２から受け、前記スキャンレジスタ４１のテストコマンドを用いて前記テストを行ない、テスト結果データをスキャンレジスタに供給するテスト制御回路４２と、を前記半導体チップに形成する為の図形パターンデータ若しくはＨＤＬやＲＴＬなどによる機能記述データを含む。図形パターンデータは、マスクパターンデータ或いは電子線描画データなどである。機能記述データは、所謂プログラムデータであり、所定の設計ツールに読み込むことによってシンボル表示で回路等を特定する事ができる。
【００６０】
さらに、ＩＰモジュールとして提供する回路モジュールデータは、例えば図１の被テスト回路４０とテスト制御回路４２を異なる回路モジュールデータとして提供するものであってもよい。この場合、複数の被テスト回路４０の回路モジュールデータは、それぞれがテスト制御回路４２との接続端子を有する事で、テスト制御回路４２の回路モジュールデータを共通化する事ができる。このような提供形態を採ることにより、必要に応じて被テスト回路４０にテスト制御回路４２を組み合わせることが可能となり、また提供するＩＰモジュールデータのデータ量を削減する事が可能となる。なお、本段落は国内優先権主張に際して追加したものである。
【００６１】
また、ＩＰモジュールの規模は図１に例示されるマイクロコンピュータ１のようなＬＳＩレベルであってもよい。このとき、前記回路モジュールデータを被テスト回路が異なる複数の回路モジュールに対して有する。更に、前記複数の回路モジュールが形成される半導体チップ上に、夫々の回路モジュールに対して、一方の回路モジュールのテスト出力端子３１を他方の回路モジュールのテスト入力端子３０に結合してテスト信号チェーンを構成するテストパス２０を形成する為の図形パターンデータ若しくは機能記述データとしてのテストパスデータを有する。更に、前記テストコマンドを外部から前記スキャンレジスタ４１に前記テストパス２０を介して供給し、前記テスト結果データを前記スキャンレジスタ４１から前記テストパス２０を介して外部に出力するＪＴＡＧコントローラ１４を前記半導体チップに形成する為の図形パターンデータ若しくは機能記述データとしてのテストインタフェース回路情報を更に含むことになる。
【００６２】
それらＩＰモジュールのデータは、図１０に例示されるように、半導体チップに形成されるべき集積回路を設計ツールのようなコンピュータ７０を用いて設計するためのデータであって、前記コンピュータにより読取り可能にＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、磁気テープなどの記憶媒体７１に記憶されて提供される。例え図１の被テストモジュール２１に対応されるハードＩＰモジュールのデータは、前記被テストモジュール２１を構成する為のマスクパターンデータＤ１、その被テストモジュール２１の機能記述データＤ２、及び当該被テストモジュール２１のＩＰモジュールのデータを適用してＬＳＩを設計したとき、その他のモジュールとの関係を考慮したシミュレーションを可能にしたりする為の検証用データＤ３を有する。
【００６３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００６４】
例えば、半導体集積回路に内蔵される回路モジュールの種類は上記に限定されず適宜変更可能である。また、半導体集積回路はマイクロコンピュータに限定されず、プリンタ制御用、通信制御用、ディスクドライブ制御用などの、システムオンチップされたシステムＬＳＩであってもよい。また、テストインタフェース回路は、テストモードセレクト端子ＴＭＳの信号を状態遷移指令として利用するシリアル入出力回路としてのＪＴＡＧ準拠の回路に限定されず、その他のインタフェース形式の回路を採用してもよい。
【００６５】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００６６】
すなわち、本発明に係る半導体集積回路によれば、複数個の回路モジュールをテストするのに外部から供給すべきテストデータ及び外部に出力すべきテスト結果のデータの量を減らすことができ、しかも前記複数個の回路モジュールのテスト時間を短縮することができる。
【００６７】
また、複数個の回路モジュールをテストする為に必要なテスト回路の規模を極力小さくすることができる。
【００６８】
集積回路の設計データを格納した本発明に係るコンピュータ読取り可能な記録媒体によれば、テスト時間の短縮並びにテスト回路の規模の縮小を実現する半導体集積回路の設計を容易化することができる。
【図面の簡単な説明】
【図１】本発明の一例に係るマイクロコンピュータをスキャンパスを用いたセルフテストに着目して示したブロック図である。
【図２】本発明に係る半導体集積回路の一例であるマイクロコンピュータを全体的に示したブロック図である。
【図３】テストパターン発生回路の一例を示したブロック図である。
【図４】スキャンレジスタの一例を示したブロック図である。
【図５】ＪＴＡＧコントローラによる被テスト回路のテスト制御シーケンスの一例を示すフローチャートである。
【図６】図１のマイクロコンピュータにおける被テストモジュールを内部メモリ、キャッシュメモリ又はローカルメモリなどのメモリとしたマイクロコンピュータのブロック図である。
【図７】図６のマイクロコンピュータに対するテスト制御シーケンスの一例を示すフローチャートである。
【図８】スキャンパスを２系統に分けたマイクロコンピュータの一例を示すブロック図である。
【図９】スキャンレジスタをＣＰＵによってアクセス可能にしたマイクロコンピュータのブロック図である。
【図１０】ＩＰモジュールをデータをコンピュータ読取り可能に格納した記録媒体とコンピュータとを示す斜視図である。
【符号の説明】
１  マイクロコンピュータ
２  ＣＰＵ
３  キャッシュメモリ
６  内部メモリ
５  内部バス
１２  ローカルメモリ
１４  ＪＴＡＧコントローラ
２０  スキャンパス
２０Ａ，２０Ｂ  スキャンパス
２１〜２４  被テストモジュール
３０  テスト入力端子
３１  テスト出力端子
３２  テスト制御端子
４０  被テスト回路
４１  スキャンレジスタ
４２  パターン圧縮回路
４３  テストパターン発生回路
５０  スキャンパス制御クロック信号
５１  テスト動作終了信号
５２  セルフテスト指令信号
５３  テストコマンド
５４  テストパターン
５６  テスト結果データ
６４  命令レジスタ
６６  命令デコーダ
６７  ＴＡＰコントローラ
７０  コンピュータ
７１  記憶媒体
ＴＤＩ  テストデータ入力端子
ＴＤＯ  テストデータ出力端子
ＴＣＫ  テストクロック端子
ＴＭＳ  テストモードセレクト端子
【図１】
0004176944.tif 000002
【図２】
0004176944.tif 000003
【図３】
0004176944.tif 000004
【図４】
0004176944.tif 000005
【図５】
0004176944.tif 000006
【図６】
0004176944.tif 000007
【図７】
0004176944.tif 000008
【図８】
0004176944.tif 000009
【図９】
0004176944.tif 000010
【図１０】
0004176944.tif 000011