(57)【特許請求の範囲】
【請求項１】
データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれるメモリと、
前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われるロジック回路と、
前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部から入力するための入力用外部端子と、
前記メモリの出力データ又は前記ロジック回路の出力データを外部へ出力するための出力用外部端子と、
前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する切換手段と、
を備えた半導体装置におけるテスト方法であって、
前記メモリパターン入力期間において、前記メモリテストパターンを前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段を介して前記メモリに入力する第１のステップと、
前記プログラム期間において、前記ロジックテストパターンを前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段を介して前記ロジック回路に入力すると共に、前記ロジック回路の出力データを前記切換手段を介して前記出力用外部端子へ出力し、この出力データを検査する第２のステップと、
前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記切換手段を介して前記出力用外部端子へ出力し、この出力データを検査する第３のステップと、
を行うことを特徴とする半導体装置のテスト方法。
【請求項２】
メモリテストパターン及びロジックテストパターンを外部からシリアルに入力する入力用外部端子と、
データ格納用のメモリセルアレイを有し、第１の期間に前記メモリテストパターンを入力し、第２の期間に前記入力されたメモリテストパターンを前記メモリセルアレイに書き込むメモリと、
前記メモリと接続される複数のバウンダリスキャンレジスタにより構成され、前記シリアルなメモリテストパターンをパラレルなメモリテストパターンに変換し、前記メモリからのパラレルな出力データをシリアルな出力データに変換する第１のスキャンチェーンと、
前記第１のスキャンチェーンを制御する第１のテストアクセスポートコントローラと、
前記ロジックテストパターンに基づいてテストを行うロジック回路と、
前記ロジック回路と接続される複数のバウンダリスキャンレジスタにより構成され、前記シリアルなロジックテストパターンをパラレルなロジックテストパターンに変換し、前記ロジック回路からのパラレルな出力データをシリアルな出力データに変換する第２のスキャンチェーンと、
前記第２のスキャンチェーンを制御する第２のテストアクセスポートコントローラと、
前記第１の期間では前記入力用外部端子と前記第１のスキャンチェーンと前記第１のテストアクセスポートコントローラと前記メモリとを接続し、前記第２の期間では前記入力用外部端子と前記第２のスキャンチェーンと前記第２のテストアクセスポートコントローラと前記ロジック回路とを接続する切換手段と、
前記メモリからの出力データ及び前記ロジック回路からの出力データを外部に出力する出力用外部端子と、
を備えたことを特徴とする半導体装置。
【請求項３】
データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれるメモリと、
前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われるロジック回路と、
前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための入力用外部端子と、
前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための出力用外部端子と、
前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する切換手段と、
前記切換手段と前記メモリ側及び前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記メモリ側又は前記ロジック回路側に与え、前記メモリ側又は前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える変換手段と、
を備えた半導体装置におけるテスト方法であって、
前記メモリパターン入力期間において、前記メモリテストパターンをシリアルに前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段及び前記変換手段を介して前記メモリにパラレルに入力する第１のステップと、
前記プログラム期間において、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第２のステップと、
前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第３のステップと、
を行うことを特徴とする半導体装置のテスト方法。
【請求項４】
データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれると、書込終了検知信号を出力するメモリと、
前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われるロジック回路と、
前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための入力用外部端子と、
前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための出力用外部端子と、
前記書込終了検知信号を外部へ出力する検知信号用外部端子と、
前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する切換手段と、
前記切換手段と前記メモリ側及び前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記メモリ側又は前記ロジック回路側に与え、前記メモリ側又は前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える変換手段と、
を備えたことを特徴とする半導体装置。
【請求項５】
請求項４記載の半導体装置におけるテスト方法であって、
前記メモリパターン入力期間において、前記メモリテストパターンをシリアルに前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段及び前記変換手段を介して前記メモリにパラレルに入力する第１のステップと、
前記プログラム期間の開始から、前記検知信号用外部端子から前記書込終了検知信号が出力されるまでの期間において、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第２のステップと、
前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第３のステップと、
を行うことを特徴とする半導体装置のテスト方法。
【請求項６】
起動信号及びロジックテストパターンを外部からシリアルに入力する入力用外部端子と、
データ格納用のメモリセルアレイを有し、第１の期間にパラレルなメモリテストパターンを入力し、第２の期間に前記入力されたパラレルなメモリテストパターンを前記メモリセルアレイに書き込むメモリと、
前記入力用外部端子から入力された前記シリアルな起動信号に基づき、前記パラレルなメモリテストパーンを生成して前記メモリに与え、前記メモリからのパラレルな出力データをシリアルな出力データに変換するテストパターン生成手段と、
前記テストパターン生成手段を制御する第１のテストアクセスポートコントローラと、
パラレルなロジックテストパターンに基づいてテストを行うロジック回路と、
前記ロジック回路と接続される複数のバウンダリスキャンレジスタにより構成され、前記入力用外部端子から入力された前記シリアルなロジックテストパターンを前記パラレルなロジックテストパターンに変換して前記ロジック回路に与え、前記ロジック回路からのパラレルな出力データをシリアルな出力データに変換するスキャンチェーンと、
前記スキャンチェーンを制御する第２のテストアクセスポートコントローラと、
前記第１の期間では前記入力用外部端子と前記テストパターン生成手段と前記第１のテストアクセスポートコントローラと前記メモリとを接続し、前記第２の期間では前記入力用外部端子と前記スキャンチェーンと前記第２のテストアクセスポートコントローラと前記ロジック回路とを接続する切換手段と、
前記メモリからの出力データ及び前記ロジック回路からの出力データを外部に出力する出力用外部端子と、
を備えたことを特徴とする半導体装置。
【請求項７】
データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれるメモリと、
前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われるロジック回路と、
起動信号を入力し、前記メモリテストパターンを生成して前記メモリに与えるテストパターン生成手段と、
前記テストパターン生成手段に与える前記起動信号又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための入力用外部端子と、
前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための出力用外部端子と、
前記入力用外部端子及び前記出力用外部端子と前記テストパターン生成手段側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記テストパターン生成手段側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する切換手段と、
前記切換手段と前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記ロジック回路側に与え、前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える変換手段と、
を備えた半導体装置におけるテスト方法であって、
前記メモリパターン入力期間において、前記起動信号をシリアルに前記入力用外部端子に入力し、この起動信号から前記切換手段を介して前記テストパターン生成手段により前記メモリテストパターンを生成して前記メモリに入力する第１のステップと、
前記プログラム期間において、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第２のステップと、
前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記テストパターン生成手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する第３のステップと、
を行うことを特徴とする半導体装置のテスト方法。
【請求項８】
前記メモリは、電気的に書き換え可能な不揮発性メモリであるフラッシュメモリで構成したことを特徴とする請求項２、４又は６記載の半導体装置。
【請求項９】
前記メモリは、電気的に書き換え可能な不揮発性メモリであるフラッシュメモリで構成したことを特徴とする請求項１、３、５又は７記載の半導体装置のテスト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
【０００２】
本発明は、電気的に書き換え可能な不揮発性メモリであるフラッシュメモリ（以下「フラッシュＲＯＭ」という。）等のメモリと、中央処理装置（以下「ＣＰＵ」という。）等のロジック回路（論理回路）とを備えた半導体装置、及びその半導体装置のテスト方法に関するものである。
【０００３】
【従来の技術】
【０００４】
従来、半導体装置の実装テストとして、例えば、下記の文献に記載されているようなバウンダリスキャン方式のテスト方法が知られている。このバウンダリスキャン方式のテスト方法では、例えば、IEEE1149.1によりテスト仕様が定められているため、いずれの製造メーカの半導体装置であっても、同じテストパターン信号を生成してテストを行うことができるという利点がある。
文献；特開２００１−１８３４２０号公報
【０００５】
図１３は、従来の半導体装置の概略の構成図である。
【０００６】
この半導体装置１は、ＣＰＵ等のロジック回路２と、フラッシュＲＯＭ１０とを備えている。ロジック回路２は、これをテストするため、あるいは問題等が発生した場合の解析を容易にするために、このロジック回路２の全ての端子に対し、半導体装置１の外部から直接アクセスできるよう、その全ての端子が外部端子３−１，３−２，…に接続されている。同様に、フラッシュＲＯＭ１０は、これをテストするため、あるいは問題等が発生した場合の解析を容易にするために、このフラッシュＲＯＭ１０の全ての端子に対し、半導体装置１の外部から直接アクセスできるよう、その全ての端子が外部端子４−１，４−２，…に接続されている。これらのテスト、解析のために使用される外部端子３−１，３−２，…，４−１，４−２，…は、通常動作時に別の経路を選択できるように、各セレクタに接続された回路構成になっている。
【０００７】
ロジック回路２とフラッシュＲＯＭ１０のテストを行う場合、それぞれのテストパターンを外部端子３−１，３−２，…，４−１，４−２…からそれぞれ入力し、独立して個々に行われるのが一般的である。
【０００８】
図１４は、従来のフラッシュＲＯＭ１０の一例を示す概略の構成図である。
【０００９】
このフラッシュＲＯＭ１０は、一括消去や小セクタ消去が行え、書き換えが容易であるという利点があり、例えば、２５６Ｋワード×８ビット、１２８Ｋワード×１６ビット等のメモリセルアレイ１１を有している。メモリセルアレイ１１を選択するためのアドレス信号A16〜A0は、アドレスバッファ・ラッチ回路１２ でラッチされ、このラッチされたＸアドレスがローデコーダ１３でデコードされ、メモリセルアレイ１１のワード線が選択される。アドレスバッファ・ラッチ回路１２でラッチされたＹアドレスは、カラムデコーダ１４でデコードされ、メモリセルアレイ１１のビット線が選択される。
【００１０】
書き込み用のデータ信号DQ15〜DQ0は、入出力バッファ・データラッチ回路１５ でラッチされ、カラムデコーダ１４で選択されたビット線へ送られ、このビット線とローデコーダ１３で選択されたワード線との交差箇所のメモリセルに、書き込まれる。書き込まれたメモリセルのデータは、ビット線を通して読み出されて入出力バッファ・データラッチ回路１５でラッチされ、このラッチされた読み出しデータ信号DQ15〜DQ0が出力される。
【００１１】
書き込みや読み出しを制御するコントロールロジック１６は、コマンド（例えば、チップセレクト信号CE#、アウトプットイネーブル信号OE#、ライトイネーブル信号WE#）、バイト信号BYTE#、及びリセット信号RESET#を入力して、フラッシュＲＯＭ１０全体を制御し、書き込み処理を行っているときにはレディ／ビジー信号RD/BY#をビジー状態“０”にし、書込み処理終了時にはレディ／ビジー信号RD/BY#をレディ状態“１”にする。
【００１２】
このようなフラッシュＲＯＭ１０をテストする場合、１ワード（例えば、８ビット又は１６ビット）のデータを書き込むためのテストパターンを、書き込み命令のためのパターン入力期間において外部端子４−１，４−２…に入力する。入力されたテストパターンは、入出力バッファ・データラッチ回路１５にラッチされ、パターン入力期間経過後の不揮発性プログラム期間において、メモリセルアレイ１１に書き込まれる。この不揮発性プログラム期間は、フラッシュＲＯＭ１０へテストパターンを入力する必要がない、書き込みのための待ち時間であり、時間として、例えば、最大２００μｓ／１ワードを要する。
【００１３】
１ワードの書き込みが終わると、次の１ワードの書き込みのためのテストパターンを入力する。以後同様に、メモリセルアレイ１１の全ビットに書き込みが行われ、その後、読み出されてテスタで検査される。
【００１４】
【発明が解決しようとする課題】
【００１５】
しかしながら、従来のフラッシュＲＯＭ１０を有する半導体装置１と、そのテスト方法では、次のような課題があった。
【００１６】
図１５は、図１３のテスト時間の一例を示す図である。
【００１７】
フラッシュＲＯＭ１０は、その特性から、データの書き込みに不揮発性プログラム期間が必要であり、例えば、時間として最大２００μｓ／１ワードを要する。メモリセルアレイ１１の全ビットの書き込みのためには、不揮発性プログラム期間として秒単位の時間を必要とし、この期間はテストパターンを入力する必要がなく、書き込みのための単なる待ち時間となる。
【００１８】
従来のテスト方法では、この不揮発性プログラム期間中も、フラッシュＲＯＭ１０に接続している外部端子４−１，４−２，…を占有しており、この時間をフラッシュＲＯＭテスト以外の用途にその外部端子４−１，４−２，…を使用することができなかった。そのため、図１５に示すように、フラッシュＲＯＭ１０のテストとは独立してロジック回路２のテストを行わなければならず、フラッシュＲＯＭ１０を有する半導体装置１のテスト時間を増大させているという課題があった。
【００１９】
【課題を解決するための手段】
【００２２】
前記課題を解決するために、本発明の内の請求項１に係る発明は、メモリと、ロジック回路と、入力用外部端子と、出力用外部端子と、切換手段とを備えた半導体装置におけるテスト方法である。
【００２３】
前記メモリは、データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれる。前記ロジック回路は、前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われる。
【００２４】
前記入力用外部端子は、前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部から入力するための端子である。前記出力用外部端子は、前記メモリの出力データ又は前記ロジック回路の出力データを外部へ出力するための端子である。前記切換手段は、前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する。
【００２５】
そして、第１のステップにおいて、前記メモリパターン入力期間では、前記メモリテストパターンを前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段を介して前記メモリに入力する。第２のステップにおいて、前記プログラム期間では、前記ロジックテストパターンを前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段を介して前記ロジック回路に入力すると共に、前記ロジック回路の出力データを前記切換手段を介して前記出力用外部端子へ出力し、この出力データを検査する。その後、第３のステップにおいて、前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記切換手段を介して前記出力用外部端子へ出力し、この出力データを検査する。
【００２６】
請求項２に係る発明は、半導体装置において、入力用外部端子と、メモリと、第１のスキャンチェーンと、第１のテストアクセスポート（Test Access Port、以下「ＴＡＰ」という。）コントローラと、ロジック回路と、第２のスキャンチェーンと、第２のＴＡＰコントローラと、切換手段と、出力用外部端子とを備えている。
【００２７】
前記入力用外部端子は、メモリテストパターン及びロジックテストパターンを外部からシリアルに入力するための端子である。前記メモリは、データ格納用のメモリセルアレイを有し、第１の期間に前記メモリテストパターンを入力し、第２の期間に前記入力されたメモリテストパターンを前記メモリセルアレイに書き込む。前記第１のスキャンチェーンは、前記メモリと接続される複数のバウンダリスキャンレジスタ（以下「ＢＳＲ」という。）により構成され、前記シリアルなメモリテストパターンをパラレルなメモリテストパターンに変換し、前記メモリからのパラレルな出力データをシリアルな出力データに変換する。
【００２８】
前記第１のＴＡＰコントローラは、前記第１のスキャンチェーンを制御する。前記ロジック回路は、前記ロジックテストパターンに基づいてテストを行う。前記第２のスキャンチェーンは、前記ロジック回路と接続される複数のＢＳＲにより構成され、前記シリアルなロジックテストパターンをパラレルなロジックテストパターンに変換し、前記ロジック回路からのパラレルな出力データをシリアルな出力データに変換する。前記第２のＴＡＰコントローラは、前記第２のスキャンチェーンを制御する。前記切換手段は、前記第１の期間では前記入力用外部端子と前記第１のスキャンチェーンと前記第１のＴＡＰコントローラと前記メモリとを接続し、前記第２の期間では前記入力用外部端子と前記第２のスキャンチェーンと前記第２のＴＡＰコントローラと前記ロジック回路とを接続する。前記出力用外部端子は、前記メモリからの出力データ及び前記ロジック回路からの出力データを外部に出力するための端子である。
【００２９】
請求項３に係る発明は、メモリと、ロジック回路と、入力用外部端子と、出力用外部端子と、切換手段と、変換手段とを備えた半導体装置のテスト方法である。
【００３０】
前記メモリは、データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれる。前記ロジック回路は、前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われる。前記入力用外部端子は、前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための端子である。前記出力用外部端子は、前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための端子である。
【００３１】
前記切換手段は、前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する。前記変換手段は、前記切換手段と前記メモリ側及び前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記メモリ側又は前記ロジック回路側に与え、前記メモリ側又は前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える。
【００３２】
そして、第１のステップにおいて、前記メモリパターン入力期間では、前記メモリテストパターンをシリアルに前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段及び前記変換手段を介して前記メモリにパラレルに入力する。第２のステップにおいて、前記プログラム期間では、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。その後、第３のステップにおいて、前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。
【００３３】
請求項４に係る発明は、半導体装置において、メモリと、ロジック回路と、入力用外部端子と、出力用外部端子と、検知信号用外部端子と、切換手段と、変換手段とを備えている。
【００３４】
前記メモリは、データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれると、書込終了検知信号を出力する。前記ロジック回路は、前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われる。前記入力用外部端子は、前記メモリに与える前記メモリテストパターン又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための端子である。前記出力用外部端子は、前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための端子である。
【００３５】
前記検知信号用外部端子は、前記書込終了検知信号を外部へ出力するための端子である。前記切換手段は、前記入力用外部端子及び前記出力用外部端子と前記メモリ側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記メモリ側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する。前記変換手段は、前記切換手段と前記メモリ側及び前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記メモリ側又は前記ロジック回路側に与え、前記メモリ側又は前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える。
【００３６】
請求項５に係る発明は、請求項４の半導体装置におけるテスト方法であって、第１のステップにおいて、前記メモリパターン入力期間では、前記メモリテストパターンをシリアルに前記入力用外部端子に入力し、このメモリテストパターンを前記切換手段及び前記変換手段を介して前記メモリにパラレルに入力する。第２のステップにおいて、前記プログラム期間の開始から、前記検知信号用外部端子から前記書込終了検知信号が出力されるまでの期間では、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。その後、第３のステップにおいて、前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。
【００３７】
請求項６に係る発明は、半導体装置において、入力用外部端子と、メモリと、テストパターン生成手段と、第１のＴＡＰコントローラと、ロジック回路と、スキャンチェーンと、第２のＴＡＰコントローラと、切換手段と、出力用外部端子とを備えている。
【００３８】
前記入力用外部端子は、起動信号及びロジックテストパターンを外部からシリアルに入力するための端子である。前記メモリは、データ格納用のメモリセルアレイを有し、第１の期間にパラレルなメモリテストパターンを入力し、第２の期間に前記入力されたパラレルなメモリテストパターンを前記メモリセルアレイに書き込む。前記テストパターン生成手段は、前記入力用外部端子から入力された前記シリアルな起動信号に基づき、前記パラレルなメモリテストパーンを生成して前記メモリに与え、前記メモリからのパラレルな出力データをシリアルな出力データに変換する。前記第１のＴＡＰコントローラは、前記テストパターン生成手段を制御する。前記ロジック回路は、パラレルなロジックテストパターンに基づいてテストを行う。
【００３９】
前記スキャンチェーンは、前記ロジック回路と接続される複数のＢＳＲにより構成され、前記入力用外部端子から入力された前記シリアルなロジックテストパターンを前記パラレルなロジックテストパターンに変換して前記ロジック回路に与え、前記ロジック回路からのパラレルな出力データをシリアルな出力データに変換する。
【００４０】
前記第２のＴＡＰコントローラは、前記スキャンチェーンを制御する。前記切換手段は、前記第１の期間では前記入力用外部端子と前記テストパターン生成手段と前記第１のＴＡＰコントローラと前記メモリとを接続し、前記第２の期間では前記入力用外部端子と前記スキャンチェーンと前記第２のＴＡＰコントローラと前記ロジック回路とを接続する。前記出力用外部端子は、前記メモリからの出力データ及び前記ロジック回路からの出力データを外部に出力するための端子である。
【００４１】
請求項７に係る発明は、メモリと、ロジック回路と、テストパターン生成手段と、入力用外部端子と、出力用外部端子と、切換手段と、変換手段とを備えた半導体装置のテスト方法である。
【００４２】
前記メモリは、データ格納用のメモリセルアレイを有し、テストデータを前記メモリセルアレイに書き込むためのメモリテストパターンが、メモリパターン入力期間に入力されると、前記入力されたテストデータが保持され、前記メモリパターン入力期間経過後の所定のプログラム期間内に、前記保持されたテストデータが前記メモリセルアレイに書き込まれる。前記ロジック回路は、前記プログラム期間内にロジックテストパターンが入力されると、前記ロジックテストパターンによって所定のテストが行われる。
【００４３】
前記テストパターン生成手段は、起動信号を入力し、前記メモリテストパターンを生成して前記メモリに与える。前記入力用外部端子は、前記テストパターン生成手段に与える前記起動信号又は前記ロジック回路に与える前記ロジックテストパターンを外部からシリアルに入力するための端子である。前記出力用外部端子は、前記メモリの出力データ又は前記ロジック回路の出力データを外部へシリアルに出力するための端子である。
【００４４】
前記切換手段は、前記入力用外部端子及び前記出力用外部端子と前記テストパターン生成手段側及び前記ロジック回路側との間の入出力経路を切換信号により切り換え接続するものであって、前記メモリパターン入力期間では、前記入力用外部端子及び前記出力用外部端子と前記テストパターン生成手段側とを接続し、前記プログラム期間では、前記入力用外部端子及び前記出力用外部端子と前記ロジック回路側とを接続する。前記変換手段は、前記切換手段と前記ロジック回路側との間の前記入出力経路上に設けられ、前記切換手段から入力されたシリアルなデータをパラレルなデータに変換して前記ロジック回路側に与え、前記ロジック回路側から出力されたパラレルなデータをシリアルなデータに変換して前記切換手段に与える。
【００４５】
そして、第１のステップにおいて、前記メモリパターン入力期間では、前記起動信号をシリアルに前記入力用外部端子に入力し、この起動信号から前記切換手段を介して前記テストパターン生成手段により前記メモリテストパターンを生成して前記メモリに入力する。第２のステップにおいて、前記プログラム期間では、前記ロジックテストパターンをシリアルに前記入力用外部端子に入力し、このロジックテストパターンを前記切換手段及び前記変換手段を介して前記ロジック回路にパラレルに入力すると共に、前記ロジック回路の出力データを前記変換手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。その後、第３のステップにおいて、前記メモリセルアレイのサイズ分、前記第１と第２のステップを繰り返した後、前記メモリセルアレイの全ビットの書込データを読み出して前記テストパターン生成手段及び前記切換手段を介して前記出力用外部端子へシリアルに出力し、この出力データを検査する。
【００４６】
請求項８に係る発明は、請求項２、４又は６の半導体装置において、前記メモリは、フラッシュＲＯＭで構成している。
【００４７】
請求項９に係る発明は、請求項１、３、５又は７の半導体装置のテスト方法において、前記メモリは、フラッシュＲＯＭで構成している。
【００４８】
【発明の実施の形態】
【００４９】
［第１の実施形態］
【００５０】
（構成）
【００５１】
図１は、本発明の第１の実施形態を示す半導体装置の概略の構成図である。
【００５２】
この半導体装置２０は、同一基板（即ち、同一チップ）上に、ＣＰＵ等のロジック回路３０と、メモリ（例えば、電気的に書き換え可能な不揮発性メモリであるフラッシュＲＯＭ）４０とが搭載されている。フラッシュＲＯＭ４０は、例えば、図１４のような回路構成であり、２５６Ｋワード×８ビット又は１２８Ｋワード×１６ビット等のメモリ容量を有している。図１４のメモリセルアレイ１１には、１ワード分のメモリセル４１が多数配列されている。ロジック回路３０とフラッシュＲＯＭ４０の端子数は同一であると仮定する。
【００５３】
半導体装置２０の周辺には、テストパターン等のデータを入力する複数の入力用外部端子５１−１，５１−２，…と、テスト結果等のデータを出力する複数の出力用外部端子５２−１，…と、テストイネーブル信号testenを入力する制御用外部端子５３−１と、モード選択信号modeを入力する制御用外部端子５３−２とが設けられている。
【００５４】
外部端子５１−１，５１−２，…，５２−１，…と、ロジック回路３０及びフラッシュＲＯＭ４０との間には、テスト時の経路と通常動作時の経路を切り換えるための複数のセレクタ６１−１１，６１−１２，…，６１−３１，…，６３−１１，６３−１２，…，６３−２１，６３−２２，…，６３−３１，…，６３−４１，…と、入出力経路を切換信号（例えば、モード選択信号mode）により切り換え接続する切換手段（例えば、複数のセレクタ）６２−１１，６２−１２，…，６２−２１，…とが、設けられている。
【００５５】
即ち、入力用外部端子５１−１，５１−２，…に接続されたセレクタ６１−１１，６１−１２，…は、制御用外部端子５３−１から入力されるテストイネーブル信号testenに基づき、通常動作のための入力経路（破線）と、テスト動作のための入力経路（実線）との、いずれか一方を選択するセレクタであり、この出力側に、セレクタ６２−１１，６２−１２，…が接続されている。セレクタ６２−１１，６２−１２，…は、制御用外部端子５３−２から入力されるモード選択信号modeに基づき、ロジック回路３０のテストのための入力経路と、フラッシュＲＯＭ４０のテストのための入力経路との、いずれか一方を選択するセレクタであり、この出力側に、セレクタ６３−１１・６３−２１，６３−１２・６３−２２，…が接続されている。
【００５６】
セレクタ６３−１１，６３−１２，…は、テストイネーブル信号testenに基づき、通常動作のための入力経路（破線）と、テスト動作のための入力経路（実線）との、いずれか一方を選択するセレクタであり、この出力側に、ロジック回路３０の入力端子が接続されている。セレクタ６３−２１，６３−２２，…は、テストイネーブル信号testenに基づき、通常動作のための入力経路（破線）と、テスト動作のための入力経路（実線）との、いずれか一方を選択するセレクタであり、この出力側に、フラッシュＲＯＭ４０の入力端子が接続されている。
【００５７】
ロジック回路３０の出力端子に接続されたセレクタ６３−３１，…と、フラッシュＲＯＭ４０の出力端子に接続されたセレクタ６３−４１，…とは、テストイネーブル信号testenに基づき、通常動作のための出力経路（破線）と、テスト動作のための出力経路（実線）との、いずれか一方を選択するセレクタであり、この出力側に、セレクタ６２−２１，…が接続されている。セレクタ６２−２１，…は、モード選択信号modeに基づき、ロジック回路３０のテストのための出力経路と、フラッシュＲＯＭ４０のテストのための出力経路との、いずれか一方を選択するセレクタであり、この出力側に、セレクタ６１−３１，…が接続されている。セレクタ６１−３１，…は、テストイネーブル信号testenに基づき、通常動作のための出力経路（破線）と、テスト動作のための出力経路（実線）との、いずれか一方を選択するセレクタであり、この出力側に、外部端子５２−１，…が接続されている。
【００５８】
図１では、ロジック回路３０とフラッシュＲＯＭ４０の端子数が同一であると仮定しているので、外部端子５１−１，５１−２，５２−１，…及びセレクタ６１−１１，６１−１２，６２−１１，６２−１２，６２−２１，６１−３１，…は、ロジック回路３０とフラッシュＲＯＭ４０とで共用している。
【００５９】
（テスト方法）
【００６０】
図２は、図１の半導体装置２０をテストするためのテストパターンを示す図であり、特に、１ワードのデータをフラッシュＲＯＭ４０に書き込むためのメモリテストパターンが詳細に示されている。
【００６１】
このメモリテストパターンは、書き込み命令のための第１の期間であるメモリパターン入力期間Ｔ１と、実際にデータを書き込むための第２の期間であるプログラム期間（例えば、不揮発性プログラム期間）Ｔ２とからなる。不揮発性プログラム期間Ｔ２は、フラッシュＲＯＭ４０へパターンを入力する必要がない待ち時間（Wait）であり、例えば、時間として最大２００μｓ／１ワードを要する。
【００６２】
本実施形態では、この不揮発性プログラム期間Ｔ２を利用し、これと同一期間のロジックパターン入力期間Ｔ３において、ロジック回路３０をテストするためのロジックテストパターンを入力する。フラッシュＲＯＭ４０へのメモリテストパターンの入力か、それともロジック回路３０へのロジックテストパターンの入力かは、モード選択信号modeにより切り換えるようになっている。
【００６３】
図３は、図１のロジック回路３０とフラッシュＲＯＭ４０をテストするためのデータ書込テストのフローチャートである。
【００６４】
このフローチャートにおいて、ステップＳ１で、プログラムがスタートすると、外部端子５３−２に与えられたモード選択信号modeにより、セレクタ６２−１１，６２−１２，…の出力側がフラッシュＲＯＭ４０側に切り換えられると共に、セレクタ６２−２１，…の入力側がフラッシュＲＯＭ４０側に切り換えられる。セレクタ６１−１１，６１−１２，６１−３１，６３−１１，６３−１２，６３−２１，６３−２２，６３−３１，６３−４１，…は、外部端子５３−１に与えられるテストイネーブル信号testenにより、テスト側の経路に切り換えられる。
【００６５】
ステップＳ２において、フラッシュＲＯＭ４０の１ワード分のメモリセル４１に対する書き込みを命令するメモリテストパターンを、外部端子５１−１，５１−２，…に入力する。メモリパターン入力期間Ｔ１の間、メモリテストパターンが入力されると、このメモリテストパターンがセレクタ６１−１１，６１−１２，６２−１１，６２−１２，６３−２１，６３−２２，…を介してフラッシュＲＯＭ４０へ送られる。フラッシュＲＯＭ４０に送られてきた１ワード分のメモリテストパターンは、図１４の入力出力バッファ・データラッチ回路１５にラッチされる。メモリパターン入力期間Ｔ１後、フラッシュＲＯＭ４０は不揮発性プログラム期間Ｔ２に入る。
【００６６】
メモリパターン入力期間Ｔ１が経過すると、ステップＳ３へ進み、モード選択信号modeにより、セレクタ６２−１１，６２−１２，６２−２１，…が、ロジック回路３０側に切り換えられ、外部端子５１−１，５１−２，…からのテストデータの経路が、フラッシュＲＯＭ４０側からロジック回路３０側へ切り換わる。
【００６７】
フラッシュＲＯＭ４０は、ステップＳ４で不揮発性プログラム期間Ｔ２の待ち状態（時間２００μｓ）になっているので、ステップＳ５において、不揮発性プログラム期間Ｔ２と同一期間のロジックパターン入力期間Ｔ３の間、ロジック回路３０をテストするためのロジックテストパターンを２００μｓ以下で外部端子５１−１，５１−２，…に入力する。入力されたロジックテストパターンは、セレクタ６１−１１，６１−１２，６２−１１，６２−１２，６３−１１，６３−１２，…を介して、ロジック回路３０へ送られる。すると、ロジック回路３０で所定のテスト動作が行われ、このテスト結果が、セレクタ６３−３１，６２−２１，６１−３１，…を介して、外部端子５２−１，…から出力されていく。このテスト結果は、テスタで検査され、ロジック回路３０が正常に動作しているか否かの検査が行われる。
【００６８】
一方、フラッシュＲＯＭ４０の不揮発性プログラム期間Ｔ２では、図１４の入力出力バッファ・データラッチ回路１５にラッチされた１ワード分のメモリテストパターンが、ローデコーダ１３及びカラムデコーダ１４によって選択された１ワード分のメモリセル４１に書き込まれていく。
【００６９】
時間２００μｓが経過して不揮発性プログラム期間Ｔ２が経過すると、ステップＳ６へ進み、モード選択信号modeにより、セレクタ６２−１１，６２−１２，６２−２１，…がフラッシュＲＯＭ４０側に切り換わり、テストデータの経路がロジック回路３０側からフラッシュＲＯＭ４０側へ切り換わる。
【００７０】
ステップＳ７において、フラッシュＲＯＭ４０の全ビットの書き込みが終了したか否かが判定される。この場合、１ワード分だけの書き込みしか行われていないので、ステップＳ２へ戻り、フラッシュＲＯＭ４０に対し、２ワード分のメモリセルへのメモリテストパターンの書き込みが、上記と同様にして実行される。
【００７１】
以上の処理を、フラッシュＲＯＭ４０のメモリセル分繰り返され、メモリテストパターンの全ビットの書き込みが終了すると、これがステップＳ７で判定され、ステップＳ８でプログラムが終了する。プログラムが終了すると、図１４のメモリセルアレイ１１に書き込まれた全ビットのデータが、入出力バッファ・データラッチ回路１５から読み出され、図１のセレクタ６３−４１，６２−２１，６１−３１，…を介して、外部端子５２−１，…から出力される。読み出されたデータは、テスタで検査され、フラッシュＲＯＭ４０が正常に動作しているか否かが検査される。
【００７２】
（効果）
【００７３】
図４は、図１の半導体装置２０のテスト時間を示す図である。
【００７４】
この第１の実施形態では、フラッシュＲＯＭ４０の不揮発性プログラム期間Ｔ２の待ち時間を使ってロジック回路３０のテストを行うようにしている。そのため、図４と図１５から明らかなように、半導体装置全体のテスト時間を考えると、この第１の実施形態では、従来に比べて大幅にテスト時間を短縮できる。
【００７５】
［第２の実施形態］
【００７６】
（構成）
【００７７】
図５は、本発明の第２の実施形態を示す半導体装置の概略の構成図であり、第１の実施形態を示す図１中の要素と共通の要素には共通の符号が付されている。
【００７８】
この半導体装置２０Ａは、第１の実施形態と同様に、同一チップ上にＣＰＵ等のロジック回路３０とフラッシュＲＯＭ４０とが搭載されているが、第１の実施形態と異なり、外部端子からのテストデータ入力にＪＴＡＧ規格に準拠した標準シリアルインタフェースを用いている。
【００７９】
そのため、ロジック回路３０の全ての端子が、スキャンチェーン７０に接続されている。スキャンチェーン７０は、複数のＢＳＲ７１−１〜７１−８，…が縦続接続されて構成され、これらがＴＡＰコントローラ８０によって制御されるようになっている。同様に、フラッシュＲＯＭ４０の全ての端子は、スキャンチェーン９０に接続されている。スキャンチェーン９０は、複数のＢＳＲ９１−１〜９１−９，…が縦続接続されて構成され、これらがＴＡＰコントローラ１００によって制御されるようになっている。
【００８０】
ＴＡＰコントローラ８０，１００に対応して、ＪＴＡＧ規格に準拠した５つの入力用及び出力用の外部端子（即ち、ＴＡＰ）５４−１〜５４−５が半導体装置２０Ａに設けられている。入力用ＴＡＰ５４−１〜５４−４のうち、ＴＡＰ５４−１はテストデータ入力信号tdiを入力する外部端子、ＴＡＰ５４−２はテスト クロック信号tckを入力する外部端子、ＴＡＰ５４−３はテストモードセット信 号tmsを入力する外部端子、ＴＡＰ５４−４はテストリセット信号trstnを入力する外部端子である。出力用外部端子であるＴＡＰ５４−５は、テストデータ出力信号tdoを出力する端子である。
【００８１】
テストパターンは４つのＴＡＰ５４−１〜５４−４からシリアルに入力され、出力データが、１つのＴＡＰ５４−５からシリアルに出力される。このシリアルなデータは、スキャンチェーン７０，９０及びＴＡＰコントローラ８０，１００によってパラレルなデータに変換され、又、ロジック回路３０及びフラッシュＲＯＭ４０からのパラレルなデータは、これらのスキャンチェーン７０，９０及びＴＡＰコントローラ８０，１００によってシリアルなデータに変換され、ＴＡＰ５４−１〜５４−５との間でデータの授受が行われる。スキャンチェーン７０，９０及びＴＡＰコントローラ８０，１００により、変換手段が構成されている。
【００８２】
ＴＡＰ５４−１〜５４−５とＴＡＰコントローラ８０，１００との間には、テスト経路を切り換えるための切換手段（例えば、セレクタ）６４−１〜６４−５が設けられている。セレクタ６４−１〜６４−５は、制御用外部端子５３−２から与えられるモード選択信号modeにより、ロジック回路３０側又はフラッシュＲＯＭ４０側へのテスト経路の選択を行う。又、セレクタ６４−１〜６４−５とＴＡＰ５４−１〜５４−５との間には、図示しない制御信号により、通常動作のための経路とテスト動作のための経路を選択するためのセレクタ６５が設けられている。
【００８３】
図５のＢＳＲ７１−１，…，９１−１，…は、同一の回路構成である。又、各ＴＡＰコントローラ８０，１００も、同一の回路構成である。
【００８４】
図６は、図５中のＢＳＲ（例えば、７１−２）の一例を示す構成図である。
【００８５】
このＢＳＲ７１−２は、上記文献にも記載されているように、ＴＡＰコントローラ８０から与えられるバウンダリスキャンセル制御信号（例えば、データレジスタ用シフト信号shift-DR、データレジスタ用クロック信号clock-DR、データレジスタ用アップデート信号update-DR、及びＩＲ（命令レジスタ）命令）により 制御されるレジスタである。
【００８６】
ＢＳＲ７１−２は、他のロジック回路等からのデータと前のＢＳＲ７１−１からのシフトデータとを入力していずれか一方を選択するマルチプレクサ（以下「ＭＵＸ」という。）７１ａと、この出力側に接続されてデータをシフトし、このシフトデータを次のＢＳＲ７１−３へ出力するフリップフロップ（以下「ＦＦ」という。）７１ｂと、このＦＦ７１ｂから出力されたシフトデータを保持するＦＦ７１ｃと、他のロジック回路等からのデータとＦＦ７１ｃの出力データのいずれか一方を選択してロジック回路３０へ出力するＭＵＸ７１ｄとで、構成されている。
【００８７】
ＭＵＸ７１ａは、シフト信号shift-DRが“０”のとき、他のロジック回路等からのデータを選択してＦＦ７１ｂへ出力し、シフト信号shift-DRが“１”のとき、前のＢＳＲ７１−１からのシフトデータを選択してＦＦ７１ｂへ出力する。ＦＦ７１ｂは、クロック信号clock-DRに基づきＭＵＸ７１ａの出力データをシフトし、このシフトデータを次のＢＳＲ７１−３へ出力すると共にＦＦ７１ｃへ出力する。ＦＦ７１ｃは、アップデート信号update-DRに基づき、ＦＦ７１ｂから出 力されたシフトデータを保持する。ＭＵＸ７１ｄは、ＩＲ命令が“０”のとき、他のロジック回路等からのデータを選択してロジック回路３０へ出力し、ＩＲ命令が“１”のとき、ＦＦ７１ｃの出力データを選択してロジック回路３０へ出力する。
【００８８】
このように、ＢＳＲ７１−２は、例えば、ＴＡＰコントローラ８０から与えられるバウンダリスキャンセル制御信号（shift-DR，clock-DR，update-DR，ＩＲ 命令）に基づき、前のＢＳＲ７１−１からのシフトデータを次のＢＳＲ７１−３へ順次送って、バウンダリスキャンパスにおいてデータが正確に転送されるか否かを調べるテストや、あるいは、他のロジック回路等からのデータをロジック回路３０へ送るといった通常動作を行わせることが可能な構成になっている。
【００８９】
図７は、図５中のスキャンチェーン７０及びＴＡＰコントローラ８０の一例を示す概略の構成図である。
【００９０】
ＴＡＰコントローラ８０内には、ＴＡＰ５４−１から与えられるテストデータ入力信号tdiを入力してこれをバイパスするバイパスレジスタ８１が、設けられ ている。テストデータ入力信号tdiは、スキャンチェーン７０にも入力され、こ のスキャンチェーン７０から出力される信号と、バイパスレジスタ８１の出力信号とのいずれか一方が、ＭＵＸ８２で選択されるようになっている。このスキャンチェーン７０、バイパスレジスタ８１、及びＭＵＸ８２により、データレジスタＤＲが構成されている。
【００９１】
ＴＡＰコントローラ８０では、データレジスタＤＲ及び命令レジスタ（ＩＲ）８４を制御するために、例えば、１６状態のステートを生成するステートマシーン８３が設けられている。ステートマシーン８３は、ＴＡＰ５４−２〜５４−４から与えられるテストクロック信号tck、テストモードセット信号tms、及びテストリセット信号trstnを入力し、データレジスタＤＲへ与える制御信号（例えば 、クロック信号clock-DR、シフト信号shift-DR、アップデート信号update-DR、 リセット信号reset、及びテストクロック信号tck）と、命令レジスタ（ＩＲ）８４に与える制御信号（例えば、クロック信号clock-IR、シフト信号shift-IR、アップデート信号update-IR、リセット信号reset、及びテストクロック信号tck） と、セレクト信号selectと、テストクロック信号tckとを出力し、ＴＡＰコント ローラ８０全体及びデータレジスタＤＲを制御する機能を有している。
【００９２】
命令レジスタ（ＩＲ）８４は、ステートマシーン８３から与えられる制御信号に基づき、テスト命令を保持するレジスタであり、この出力側に、命令デコーダ８５及びＭＵＸ８６が接続されている。命令デコーダ８５は、命令レジスタ８４の出力をデコーダし、データレジスタＤＲに対してＩＲ命令を与える回路である。
【００９３】
ＭＵＸ８６は、ステートマシーン８３から与えられるセレクト信号selectに基づき、ＭＵＸ８２の出力信号又は命令レジスタ８４の出力信号のいずれか一方を選択し、ＦＦ８７へ与える。ＦＦ８７は、ステートマシーン８３から与えられるテストクロック信号tckに基づき、ＭＵＸ８６の出力信号を取り込み、テストデ ータ出力信号tdoを出力し、ＴＡＰ５４−５へ送る機能を有している。
【００９４】
このようなスキャンチェーン７０及びＴＡＰコントローラ８０を用いて、上記文献にも記載されているように、種々のバウンダリスキャン方式でのテストが行える。このテスト結果は、ＴＡＰコントローラ８０内のＦＦ８７からテストデータ出力信号tdoの形で出力され、ＴＡＰ５４−５へ送られる。
【００９５】
（テスト方法）
【００９６】
図５の半導体装置２０Ａを用いたテスト方法では、第１の実施形態のテスト方法を示す図２及び図３と同様に、フラッシュＲＯＭ４０の不揮発性プログラム期間Ｔ２を利用し、ロジック回路３０をテストするためのロジックテストパターンを入力する。第１の実施形態との違いは、外部端子からのテストデータ入力に、ＪＴＡＧ規格に準拠した標準シリアルインタフェースを用いていることである。
【００９７】
この第２の実施形態では、メモリテストパターンとロジックテストパターンが、ＪＴＡＧ規格に準拠した４つのＴＡＰ５４−１〜５４−４からシリアルに入力される。このテストパターンがＴＰＡコントローラ８０，１００及びスキャンチェーン７０，９０によってパラレルデータに変換され、ロジック回路３０又はフラッシュＲＯＭ４０に与えられて第１の実施形態と同様のテストが行われる。
【００９８】
テスト結果は、ＴＡＰコントローラ８０，１００の制御によってシリアル信号に変換され、ＴＡＰ５４−５からシリアルなテストデータ出力信号tdoとして出 力される。このテストデータ出力信号tdoをテスタで検査することにより、ロジ ック回路３０及びフラッシュＲＯＭ４０が正常に動作しているか否かの検査が行える。
【００９９】
（効果）
【０１００】
この第２の実施形態では、次の（ａ）、（ｂ）のような効果がある。
【０１０１】
（ａ）第２の実施形態では、第１の実施形態と同様に、大幅にテスト時間を短縮できる。
【０１０２】
（ｂ）第２の実施形態では、ＪＴＡＧ規格に準拠した標準シリアルインタフェースを用いていることから、常に５つの外部端子であるＴＡＰ５４−１〜５４−５で実現できる。このことは、一般に端子数が非常に多く、又、端子数がそれぞれ異なるロジック回路３０とフラッシュＲＯＭ４０のテストを組み合わせる場合において、外部端子を共用化するためのセレクタ６４−１〜６４−５等の回路構成を簡略化できる。さらに、フラッシュＲＯＭ４０と端子数がそれぞれ異なるロジック回路３０のテストを組み合わせる場合においても、常に使用する端子が決まった５つのＴＡＰ５４−１〜５４−５であることから、このＴＡＰ５４−１〜５４−４に与えるテストパターンの生成が非常に容易になるという効果がある。
【０１０３】
［第３の実施形態］
【０１０４】
（構成）
【０１０５】
図８は、本発明の第３の実施形態を示す半導体装置の概略の構成図であり、第２の実施形態を示す図５中の要素と共通の要素には共通の符号が付されている。
【０１０６】
この半導体装置２０Ｂでは、フラッシュＲＯＭ４０を構成する例えば図１４中のコントロールロジック１６から出力されるレディ／ビジー信号RD/BY#のレディ状態“１”を書込終了検知信号readyとして取り出し、セレクタ９２を介して、 モニタ用外部端子５３−３から直接外部へ出力するようにしている。
【０１０７】
その他の構成は、第２の実施形態と同様に、ＪＴＡＧ規格に準拠した５つの外部端子であるＴＡＰ５４−１〜５４−５が設けられ、これがセレクタ６５、セレクタ６４−１〜６４−５、及びＴＡＰコントローラ１００を介して、複数のＢＳＲ９１−１，…で構成されたスキャンチェーン９０に接続されている。
【０１０８】
（テスト方法）
【０１０９】
図９は、図８の半導体装置２０Ｂに対して１ワードのデータをフラッシュＲＯＭ４０に書き込むためのテストパターンを示す図である。
【０１１０】
フラッシュＲＯＭ４０に対するメモリテストパターンは、第１の実施形態の図２と同様に、書込命令のためのメモリパターン入力期間Ｔ１と、実際にデータを書き込むための不揮発性プログラム期間Ｔ２とからなる。不揮発性プログラム期間Ｔ２は、フラッシュＲＯＭ４０へメモリテストパターンを入力する必要がない待ち時間であり、例えば、時間として最大２００μｓ／１ワードを要する。この不揮発性プログラム期間Ｔ２を利用し、ロジックテストパターン入力期間Ｔ３において、ロジック回路３０をテストするためのロジックテストパターンを入力する。
【０１１１】
ここで、第１及び第２の実施形態との違いは、１μｓの時刻ｔ１毎に、書込完了を検知するための書込終了検知信号readyを、モニタ用外部端子５３−３に接 続されたテスタ等でチェックするようにしている。即ち、１μｓ単位の時刻ｔ１で不揮発性プログラム期間Ｔ２が終了する可能性があるわけであり、この期間Ｔ２に行うロジック回路３０をテストするためのテストパターンも、１μｓ単位の時刻ｔ１で完了できるように作られている。
【０１１２】
図１０は、図８のロジック回路３０とフラッシュＲＯＭ４０をテストするためのデータ書込テストのフローチャートであり、第１の実施形態の図３中の要素と共通の要素には共通の符号が付されている。
【０１１３】
ステップＳ１でプログラムがスタートすると、ステップＳ２で、書き込みを命令するテストパターンをＴＡＰ５４−１〜５４−４にシリアルに入力する。入力されたシリアルなテストパターンは、セレクタ６５、セレクタ６４−１〜６４−４、ＴＡＰコントローラ１００、及びスキャンチェーン９０を介してパラレルなテストパターンに変換され、フラッシュＲＯＭ４０に入力される。その後、フラッシュＲＯＭ４０は、不揮発性プログラム期間Ｔ２に入る。ここで、ステップＳ３において、外部端子であるＴＡＰ５４−１〜５４−４からのテストデータの経路を、セレクタ６４−１〜６４−５によってロジック回路３０側へ切り換える。
【０１１４】
ステップＳ３の後、ステップＳ４−１において、１μｓの待ち状態（Wait）になるので、ステップＳ５−０を介してステップＳ５−１において、ロジック回路３０をテストするための１μｓ以下のロジックテストパターンを入力する。ステップＳ４−１での１μｓ後、ステップＳ４−２において、書込完了を検知するための書込終了検知信号readyをモニタ用外部端子５３−３でチェックする。書き 込みが完了している場合、ステップＳ６において、テストパターンの経路を、セレクタ６４−１〜６４−５によってロジック回路３０側からフラッシュＲＯＭ４０側へ切り換え、ステップＳ７を介してステップＳ２へ戻り、上記と同様の処理を行い、次のデータ書き込みをフラッシュＲＯＭ４０のメモリサイズまで行う。
【０１１５】
ステップＳ４−２において書き込みが完了していない場合、ステップＳ４−１へ戻り、再度、１μｓ待機し、その間、ステップＳ５−２，…においてロジック回路３０をテストするための１μｓ以下のテストパターンを入力する。
【０１１６】
書込完了を検知するための書込終了検知信号readyのチェックは、フラッシュ ＲＯＭ４０の不揮発性プログラム期間Ｔ２の最大値である２００μｓを制限として実施する。不揮発性プログラム期間Ｔ２が２００μｓを越えた場合、強制的に書き込みを終了し、セレクタ６４−１〜６４−５によってテストパターンの経路を、ロジック回路３０側からフラッシュＲＯＭ４０側へ切り換え、次のデータの書き込みを行う。
【０１１７】
ステップＳ７において、フラッシュＲＯＭ４０の全メモリセルへの書き込みが完了すると、ステップＳ８においてプログラムを終了する。プログラム終了後、フラッシュＲＯＭ４０に書き込まれた全メモリセルのデータを、ＴＡＰ５４−５からテストデータ出力信号tdoの形で出力し、テスタによって動作状態の良否の 検査を行う。
【０１１８】
（効果）
【０１１９】
この第３の実施形態では、次の（ａ）、（ｂ）のような効果がある。
【０１２０】
（ａ）第３の実施形態によれば、第１及び第２の実施形態と同様に、ロジック回路３０のテストをフラッシュＲＯＭ４０のテスト時間に包括するという効果がある。
【０１２１】
（ｂ）前記（ａ）の効果に加え、フラッシュＲＯＭ４０のテスト時間自体を短縮できるという効果もある。一般に、フラッシュＲＯＭ４０のデータ書き込みは、その最大（制約）値２００μｓよりも短い時間で完了する実力を持っている。例えば、平均１００μｓで書き込みが完了すると仮定した場合、フラッシュＲＯＭ４０のテスト時間は約１／２となる。
【０１２２】
［第４の実施形態］
【０１２３】
（構成）
【０１２４】
図１１は、本発明の第４の実施形態を示す半導体装置の概略の構成図であり、第２の実施形態を示す図５中の要素と共通の要素には共通の符号が付されている。
【０１２５】
この半導体装置２０Ｃでは、図５のフラッシュＲＯＭ４０に接続されたスキャンチェーン９０に代えて、起動信号に基づきメモリテストパターンを生成してフラッシュＲＯＭ４０に与えるテストパターン生成手段（例えば、組込自己テスト回路、Build-In Self Test回路、以下「ＢＩＳＴ回路」という。）１１０を設け、このＢＩＳＴ回路１１０を、図示しない制御信号に基づき、通常動作のための経路とテスト動作のための経路を選択する複数のセレクタ９３−１〜９３−６，…を介して、フラッシュＲＯＭ４０に接続している。
【０１２６】
ＢＩＳＴ回路１１０は、フラッシュＲＯＭ４０をテストするためのアドレス、及びデータ等の信号を生成する回路であり、この回路を制御する信号は、第２の実施形態と同様に、ＪＴＡＧ規格に準拠した５つの外部端子であるＴＡＰ５４−１〜５４−５からＴＡＰコントローラ１００を介して供給される。
【０１２７】
図１２は、図１１中のＢＩＳＴ回路１１０の一例を示す概略の構成図である。
【０１２８】
このＢＩＳＴ回路１１０は、ＴＡＰ５４−１から供給されるテストデータ入力信号tdiと、ＴＡＰコントローラ１００内のステートマシン８３から供給される ＪＴＡＧ制御信号（例えば、クロック信号clock-DR、シフト信号shift-DR、アップデート信号update-DR、リセット信号reset、及びテストクロック信号tck）と を入力し、書込命令に必要となるコマンド信号、アドレス信号、及びデータ信号を生成し、フラッシュＲＯＭ４０に与える回路である。
【０１２９】
ＢＩＳＴ回路１１０は、テストデータ入力信号tdi及びＪＴＡＧ制御信号を入 力する制御レジスタ１１１を有し、この出力側に、命令生成用のコマンドジェネレータ１１２、及びデータを比較するためのデータ比較器１１３が接続されている。コマンドジェネレータ１１２は、制御レジスタ１１１の出力信号に基づき、書込命令に必要となるコマンド信号、アドレス信号、及びデータ信号を生成し、フラッシュＲＯＭ４０に与える。
【０１３０】
データ比較器１１３は、フラッシュＲＯＭ４０からの読出データと、コマンドジェネレータ１１２からの書込データとを比較し、この比較結果（即ち、動作の良否の結果）をシリアルデータの形で出力する。データ比較器１１３の出力側に出力された出力コントローラ１１４は、制御レジスタ１１１の出力信号と、データ比較器１１３から出力されたシリアルデータとを入力し、テストデータ出力信号tdoを出力するものである。このテストデータ出力信号tdoは、ＴＡＰコントローラ１００を介してＴＡＰ５４−５へ送られる。
【０１３１】
（テスト方法）
【０１３２】
第２及び第３の実施形態との相違点として、これらの第２及び第３の実施形態では、フラッシュＲＯＭ書込命令入力時に、フラッシュＲＯＭ４０のコマンド信号、アドレス信号、及びデータ信号の全てをシリアルデータとしてデータ端子であるＴＡＰ５４−１〜５４−４から入力している。これに対し、この第４の実施形態では、これらの信号を生成するためのＢＩＳＴ回路１１０を起動する起動信号（即ち、シリアルデータ信号）をＴＡＰ５４−１〜５４−４に入力している。
【０１３３】
このシリアルデータ信号は、セレクタ６５及びセレクタ６４−１〜６４−４を介してＴＡＰコントローラ１００へ送られる。ＴＡＰコントローラ１００では、送られてきたシリアルデータ信号を受け、内部のステートマシン８３でＪＴＡＧ制御信号を生成し、ＴＡＰ５４−１から送られてきたテストデータ入力信号tdi と共に、ＢＩＳＴ回路１１０へ与える。すると、ＢＩＳＴ回路１１０では、コマンドジェネレータ１１２によって、書込命令に必要となるコマンド信号、アドレス信号、及びデータ信号を生成し、フラッシュＲＯＭ４０に与え、書き込みを行う。
【０１３４】
フラッシュＲＯＭ４０に書き込まれたデータは、ＢＩＳＴ回路１１０内のデータ比較器１１３によって書込データと比較され、この比較結果がシリアルデータとして出力コントローラ１１４へ送られ、この出力コントローラ１１４からテストデータ出力信号tdoが出力される。このテストデータ出力信号tdoは、ＴＡＰコントローラ１００、セレクタ６４−５、及びセレクタ６５を介してＴＡＰ５４−５から出力される。
【０１３５】
（効果）
【０１３６】
この第４の実施形態では、フラッシュＲＯＭ書込命令入力に必要なテストパターン数を大幅に減少でき、フラッシュＲＯＭ４０のテスト時間自体を短縮できるという効果がある。例えば、フラッシュＲＯＭ４０のコマンド信号、アドレス信号、及びデータ信号の全てをシリアルデータとしてＴＡＰ５４−１〜５４−４へ入力するためには、１ワード当り４０テストサイクルが必要となるが、ＢＩＳＴ回路１１０への起動信号の入力は数サイクルで実現できることになる。
【０１３７】
［利用形態］
【０１３８】
本発明は、上記実施形態に限定されず、種々の変形や利用形態が可能である。この変形や利用形態としては、例えば、次の（１）〜（４）のようなものがある。
【０１３９】
（１）第１〜第４の実施形態では、フラッシュＲＯＭ４０のテストと、ＣＰＵ等のロジック回路３０のテストとを、組み合わせた例を説明したが、このロジック回路３０はＣＰＵ以外の種々の回路に適用できる。
【０１４０】
（２）第１〜第４の実施形態では、１個のフラッシュＲＯＭ４０のテストと、１個のロジック回路３０のテストとを、組み合わせた例を説明したが、この１個のフラッシュＲＯＭ４０のテストと組み合わせる対象ブロック数（例えば、ロジック回路３０の数）を２個以上にすることも可能である。
【０１４１】
（３）第１〜第４の実施形態では、フラッシュＲＯＭ４０とロジック回路３０が同一チップ上に搭載されている場合の例を説明したが、例えば、フラッシュＲＯＭ４０がマルチチップパッケージ（ＭＣＰ）として別チップとして構成されている場合に適用することも可能である。
【０１４２】
（４）第１の実施形態では、フラッシュＲＯＭ４０及びロジック回路３０の全端子に直接テストパターンを入力する例を説明し、第２〜第４の実施形態では、ＪＴＡＧ規格に準拠したシリアルアクセスによるテストパターンを入力する例について説明したが、これらのテストパターンの印加方法については、他の種々の印加方法を採用できる。
【０１４３】
【発明の効果】
【０１４４】
以上詳細に説明したように、請求項１に係る発明によれば、メモリのプログラム期間を使ってロジック回路をテストできるので、半導体装置全体のテスト時間を大幅に短縮できる。
【０１４５】
請求項２及び３に係る発明によれば、請求項１に係る発明と同様に、大幅にテスト時間を短縮できる。しかも、この請求項２及び３に係る発明では、入出力用の外部端子からシリアルにデータの入出力を行えるようにしているので、外部端子数を減少でき、さらに、これらの外部端子を共用化するための切換手段の回路構成を簡略化できる。その上、入出力用の外部端子を少なくできるので、これに入力するテストパターンの生成が非常に容易になる。
【０１４６】
請求項４及び５に係る発明によれば、請求項１〜３に係る発明と同様に、ロジック回路のテストをメモリのテスト時間に包括して半導体装置全体のテスト時間を短縮できる。しかも、書込終了検知信号をモニタし、この書込終了検知信号が出力されると、メモリに対して次の書き込みが行われるので、メモリのテスト時間自体を短縮できる。
【０１４７】
請求項６及び７に係る発明によれば、テストパターン生成手段によってテストパターンを生成するようにしたので、メモリ書込命令入力に必要なテストパターン数を大幅に減少でき、メモリのテスト時間自体を短縮できる。
【０１４８】
請求項８及び９に係る発明によれば、メモリをフラッシュＲＯＭで構成したので、このフラッシュＲＯＭのテスト時間の短縮と、信頼性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示す半導体装置の構成図である。
【図２】図１のテストパターンを示す図である。
【図３】図１のデータ書込テストを示すフローチャートである。
【図４】図１のテスト時間を示す図である。
【図５】本発明の第２の実施形態を示す半導体装置の構成図である。
【図６】図５中のＢＳＲを示す構成図である。
【図７】図５中のスキャンチェーン及びＴＡＰコントローラを示す構成図である。
【図８】本発明の第３の実施形態を示す半導体装置の構成図である。
【図９】図８のテストパターンを示す図である。
【図１０】図８のデータ書込テストを示すフローチャートである。
【図１１】本発明の第４の実施形態を示す半導体装置の構成図である。
【図１２】図１１中のＢＩＳＴ回路を示す構成図である。
【図１３】従来の半導体装置を示す構成図である。
【図１４】図１３中のフラッシュＲＯＭを示す構成図である。
【図１５】図１３のテスト時間を示す図である。
【符号の説明】
２０，２０Ａ，２０Ｂ，２０Ｃ    半導体装置
３０    ロジック回路
４０    フラッシュＲＯＭ
５１−１，５１−２，５２−１，５３−１〜５３−３    外部端子
５４−１〜５４−５    外部端子（ＴＡＰ）
６１−１１，６１−１２，６１−３１，６２−１１，６２−１２，６２−２１，６３−１１，６３−１２，６３−２１，６３−２２，６３−３１，６３−４１，６４−１〜６４−５，６５    セレクタ
７０，９０    スキャンチェーン
７１−１〜７１−８，９１−１〜９１−９    バウンダリスキャンレジスタ（ＢＳＲ）
８０，１００    ＴＡＰコントローラ
１１０    組込自己テスト回路（ＢＩＳＴ回路）
【図１】
0003751576.tif 000002
【図２】
0003751576.tif 000003
【図３】
0003751576.tif 000004
【図４】
0003751576.tif 000005
【図５】
0003751576.tif 000006
【図６】
0003751576.tif 000007
【図７】
0003751576.tif 000008
【図８】
0003751576.tif 000009
【図９】
0003751576.tif 000010
【図１０】
0003751576.tif 000011
【図１１】
0003751576.tif 000012
【図１２】
0003751576.tif 000013
【図１３】
0003751576.tif 000014
【図１４】
0003751576.tif 000015
【図１５】
0003751576.tif 000016