(57)【要約】【課題】内部に設けられた複数のメモリ部の検査に関わる処理を、回路面積の増大を抑えつつ実行することができる半導体集積回路を提供する。【解決手段】複数のメモリ部ＭＥＭ１のテストを行う際、検査回路ＢＴ１において発生するテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）は、スキャンフリップフロップを用いて形成される第１のデータシフト回路の各レジスタ（ＳＦ５〜ＳＦ８）を順にシフトされて、各メモリ部に転送される。そして、このテスト入力データに応じたテスト出力データは、スキャンフリップフロップを用いて形成される第２のデータシフト回路の各レジスタ（ＳＦ９）を順にシフトされて、検査回路ＢＴ１に取り込まれる。これにより、テスト対象のメモリ部ごとに検査回路を設ける方式と比べて、回路規模の増大を抑制することができる。【選択図】      図１
2006114147.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ部と、上記複数のメモリ部に接続される論理回路と、上記論理回路のスキャンテストを行うための複数のスキャンフリップフロップとを有する半導体集積回路であって、
上記複数のメモリ部に対応する複数段のレジスタを有し、上記メモリ部のテストを行う第１の動作モードにおいて、上記メモリ部のテスト入力データを初段のレジスタから後段のレジスタへ順にシフトさせる第１のデータシフト回路と、
上記第１の動作モードにおいて、上記第１のデータシフト回路の各レジスタにシフトされる上記テスト入力データを選択して、各レジスタに対応する上記メモリ部にそれぞれ入力し、上記論理回路から上記メモリ部にアクセスする第２の動作モードにおいて、上記論理回路から出力されるデータを選択して上記メモリ部に入力する第１の選択回路と、
を有し、
上記第１のデータシフト回路の各レジスタは、上記スキャンフリップフロップを用いて形成される、
半導体集積回路。
【請求項２】
上記第１の選択回路は、上記スキャンテストを行う第３の動作モードにおいて、上記論理回路の出力データを選択して上記メモリ部に入力し、
上記第１の動作モードにおいて、上記第１のデータシフト回路の各レジスタから出力される上記テスト入力データを選択して、各レジスタの次段にそれぞれ入力し、上記第３の動作モードにおいて、上記第１の選択回路から各メモリ部に入力されるデータを選択して、各メモリ部に対応する上記第１のデータシフト回路のレジスタを形成する上記スキャンフリップフロップにそれぞれ入力する第２の選択回路を有する、
請求項１に記載の半導体集積回路。
【請求項３】
上記複数のメモリ部に対応する複数段のレジスタを有し、上記第１の動作モードにおいて、上記テスト入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データを上記複数のメモリ部のそれぞれについて生成し、当該生成したテスト出力データを対応するレジスタにそれぞれラッチさせ、当該ラッチさせたテスト出力データを後段のレジスタへ順にシフトさせる第２のデータシフト回路を有し、
上記第２のデータシフト回路の各レジスタは、上記スキャンフリップフロップを用いて形成される、
請求項１に記載の半導体集積回路。
【請求項４】
上記第２のデータシフト回路は、上記複数段のレジスタに対応する複数のテスト出力データ生成回路を有し、
上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が期待値と一致しない場合、第１の値を持つテスト出力データを生成して当該レジスタにラッチさせ、当該メモリ部の出力データが期待値と一致する場合は、第２の値を持つテスト出力データを生成して当該レジスタにラッチさせ、
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が期待値と一致しない場合、または、当該レジスタの前段からシフトされる上記テスト出力データが上記第１の値を持つ場合に、上記第１の値を持つテスト出力データを生成して当該レジスタにラッチさせ、当該メモリ部の出力データの値が期待値と一致し、かつ、当該レジスタの前段からシフトされる上記テスト出力データが上記第２の値を持つ場合は、上記第２の値を持つテスト出力データを生成して当該レジスタにラッチさせる、
請求項３に記載の半導体集積回路。
【請求項５】
上記複数のメモリ部に対応する複数段のレジスタを有し、上記第１の動作モードにおいて、期待値データを初段のレジスタから後段のレジスタへ順にシフトさせる第３のデータシフト回路を有し、
上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値と、当該メモリ部に対応する上記第３のデータシフト回路のレジスタにシフトされる上記期待値データの値とが一致しない場合、上記第１の値を持つテスト出力データを生成し、当該メモリ部の出力データが当該期待値データの値と一致する場合は、上記第２の値を持つテスト出力データを生成し、
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値と、当該メモリ部に対応する上記第３のデータシフト回路のレジスタにシフトされる上記期待値データの値とが一致しない場合、または、当該レジスタの前段からシフトされる上記テスト出力データが上記第１の値を持つ場合に、上記第１の値を持つテスト出力データを生成し、当該メモリ部の出力データの値が当該期待値データの値と一致し、かつ、当該レジスタの前段からシフトされる上記テスト出力データが上記第２の値を持つ場合は、上記第２の値を持つテスト出力データを生成する、
請求項４に記載の半導体集積回路。
【請求項６】
上記第３のデータシフト回路のレジスタは、上記スキャンフリップフロップを用いて形成される、
請求項５に記載の半導体集積回路。
【請求項７】
上記テスト出力データ生成回路は、上記第１の動作モードにおいて、テスト結果の出力の無効化を指示する制御信号が入力される場合、対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が上記期待値を有するものとして上記テスト出力データを生成する、
請求項４に記載の半導体集積回路。
【請求項８】
上記第２のデータシフト回路は、上記複数段のレジスタに対応する複数のテスト出力データ生成回路を有し、
上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせ、
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせ、当該読み出しの無効化を指示する制御信号が入力される場合は、当該レジスタの前段からシフトされる上記テスト出力データを当該レジスタにラッチさせる、
請求項３に記載の半導体集積回路。
【請求項９】
上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせ、
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせ、当該読み出しの無効化を指示する制御信号が入力される場合は、当該レジスタの前段からシフトされる上記テスト出力データを当該レジスタにラッチさせる、
請求項４に記載の半導体集積回路。
【請求項１０】
上記第１の動作モードにおいて、上記第１のデータシフト回路の初段に供給する上記テスト入力データを生成するテスト入力データ生成回路を有する、
請求項１に記載の半導体集積回路。
【請求項１１】
上記第１の動作モードにおいて、上記第１のデータシフト回路の初段に供給する上記テスト入力データを生成するテスト入力データ生成回路と、
上記第１の動作モードにおいて、上記第２のデータシフト回路の終段から出力されるテスト出力データを取得し、当該取得したテスト出力データに基づいて上記メモリ部の良否を判定する判定回路と、を有する、
請求項３に記載の半導体集積回路。
【請求項１２】
複数のメモリ部と、上記複数のメモリ部に接続される論理回路と、上記論理回路のスキャンテストを行うための複数のスキャンフリップフロップとを有する半導体集積回路であって、
上記複数のメモリ部に対応する複数段のレジスタを有し、上記メモリ部にテスト用のデータを入力して上記メモリ部のテストを行う動作モードにおいて、上記テスト用の入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データを上記複数のメモリ部のそれぞれについて生成し、当該生成したテスト出力データを対応するレジスタにそれぞれラッチさせ、当該ラッチさせたテスト出力データを後段のレジスタへ順にシフトさせるデータシフト回路を有し、
上記データシフト回路の各レジスタは、上記スキャンフリップフロップを用いて形成される、
半導体集積回路。
【請求項１３】
上記動作モードにおいて、上記データシフト回路の終段から出力されるデータを取得し、当該取得したデータに基づいて上記メモリ部の良否を判定する判定回路を有する、
請求項１２に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＲＡＭ等のメモリと論理回路とを混載した半導体集積回路に関するものである。
【背景技術】
【０００２】
半導体回路の加工寸法の微細化に伴って、これまで複数の半導体チップ上に分かれていた機能ブロックを１つの半導体チップに統合した、いわゆるＳｏＣ（system on a chip）と称されるタイプの半導体集積回路が登場している。
【０００３】
特に近年では、サイズやコストへの要求が厳しい携帯型の電子機器の分野において、ＳＲＡＭやＤＲＡＭ等の高速なメモリを論理回路とともに混載した半導体集積回路が広く使用されるようになってきている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら一方で、加工寸法の微細化と集積率の向上によって、半導体メモリの全ビットを欠陥なしに製造することは極めて困難になってきている。そのため、半導体集積回路に搭載されるメモリの欠陥の有無を効率良く検査することが課題となっている。
【０００５】
一般に、半導体集積回路の論理回路の検査手法として、スキャンテストが知られている。
スキャンテストを行う半導体集積回路中には、スキャンパス回路と称されるシフトレジスタが予め搭載されている。スキャンパス回路は、検査対象の論理回路の入力もしくは出力に接続されており、通常動作時には、論理回路の入出力信号をそのまま透過するため、論理的な機能に影響を与えない。一方、スキャンテストを行う場合、スキャンパス回路は、半導体集積回路の外部からシリアルに転送されるテストパターンをラッチして、検査対象の論理回路に入力する。そして、このテストパターンに応じて論理回路から出力される信号を取り込み、これを半導体集積回路の外部へシリアルに転送する。
このスキャンテストの手法では、１つのテスト結果（入力データと出力データとの組）を得るために、テストパターンをその都度シリアル転送する必要があるため、これを半導体集積回路に混載されるメモリの検査に応用すると、テスト時間が非常に長くなってしまうという問題が生じる。
【０００６】
そこで、通常は、半導体集積回路の内部にメモリ検査用の回路を予め搭載し、この検査回路においてテストパターンの発生と出力データの検査処理を行う手法がとられている。半導体集積回路の内部に自己の検査回路を搭載する手法は、一般にＢＩＳＴ（built in self test）と称されている。
【０００７】
図９は、複数のメモリ部とその検査回路を搭載した従来の半導体集積回路の構成例を示す図である。
【０００８】
図９に示す半導体集積回路は、メモリ検査に関連する回路ブロックとして、メモリテストブロック１０１，１０２，１０３を有している。
メモリテストブロック１０１〜１０３は、それぞれ、ＳＲＡＭ等のメモリ部ＭＥＭ１０１と、その入出力に接続される論理回路ＬＧ１０１およびＬＧ１０２と、スキャンフリップフロップＳＦ１０１，…，ＳＦ１１０と、セレクタＳＥＬ１０１，…，ＳＥＬ１０５と、メモリの検査回路ＢＴ１０１とを含んでいる。
【０００９】
通常の動作時において、メモリ部ＭＥＭ１０１には、セレクタＳＥＬ１０１〜ＳＥＬ１０４を介して、論理回路ＬＧ１０１の出力信号（書き込みデータＤＩＮ、アドレスデータＡＤＲ、チップ選択信号ＣＳ、リード／ライト選択信号ＲＷ）が入力される。また、メモリ部ＭＥＭ１０１の読み出しデータＤＯＵＴは、セレクタＳＥＬ１０５を介して論理回路ＬＧ１０２に出力される。
【００１０】
スキャンフリップフロップＳＦ１０１〜ＳＦ１１０は、図示しない他のスキャンフリップフロップとともにスキャンパス回路を構成する。
スキャンテスト時において、論理回路ＬＧ１０１には、スキャンフリップフロップＳＦ１０１〜ＳＦ１０４にセットされるデータが入力される。論理回路ＬＧ１０２には、スキャンフリップフロップＳＦ１０９にセットされるデータがセレクタＳＥＬ１０５を介して入力される。
そして、このテスト用の入力データに応じた論理回路ＬＧ１０１の出力データは、セレクタＳＥＬ１０１〜ＳＥＬ１０４を介してスキャンフリップフロップＳＦ１０５〜ＳＦ１０８に取り込まれる。論理回路ＬＧ１０２の出力データは、スキャンフリップフロップＳＦ１１０に取り込まれる。
【００１１】
一方、メモリの検査時において、メモリ部ＭＥＭ１０１には、検査回路ＢＴ１０１が発生するテストパターン（書き込みデータＤＩＮ、アドレスデータＡＤＲ、チップ選択信号ＣＳ、リード／ライト選択信号ＲＷ）がセレクタＳＥＬ１０１〜ＳＥＬ１０４を介して入力される。そして、このテストパターンに応じたメモリ部ＭＥＭ１０１の読み出しデータＤＯＵＴが、セレクタＳＥＬ１０５を介して検査回路ＢＴ１０１に入力される。検査回路ＢＴ１０１では、入力した読み出しデータＤＯＵＴに基づいて、メモリ部ＭＥＭ１０１の欠陥の有無が検査される。
各メモリテストブロック（１０１〜１０３）における検査回路ＢＴ１０１の検査結果Ｓ１０３は、半導体集積回路の外部の検査装置に取り込まれて、メモリ部の欠陥の解析等に用いられる。
【００１２】
このように、図９に示す従来の半導体集積回路では、各メモリテストブロック（１０１〜１０３）に検査回路ＢＴ１０１をそれぞれ設けているため、検査回路ＢＴ１０１による回路面積の増大が問題となる。
【００１３】
特に近年では、半導体回路と微細化と低電圧化によってメモリの不良モードが多様化している。すなわち、隣接するメモリセルがまとまって不良を起こすモードや、各メモリセルが点状に散らばるようにして個々に不良を起こすモードなどが混在する。そのため、簡易的なテストパターンでは十分に不良を検出することが困難になりつつある。
その結果、ＢＩＳＴ手法によって半導体集積回路に組み込まれるメモリの検査回路には、多様な不良モードに対処できる詳細なテストパターンを発生し、また、これに応じて得られる多数のテスト結果を処理する高い検査能力が求められている。
こうした高性能の検査回路は、多数の回路素子を必要とするため、検査対象のメモリごとに検査回路を設ける上述のような方式にこれを適用すると、著しく回路面積が増大してしまうという不利益を生じる。
【００１４】
検査回路による回路面積の増大を緩和するため、例えば図１０に示すように、複数のメモリテストブロックで検査回路を共用する方式も考えられる。
【００１５】
図１０に示す半導体集積回路は、メモリテストブロック１０４，１０５，１０６を有している。
メモリテストブロック１０４〜１０６は、先に述べたメモリテストブロック１０１〜１０３における検査回路ＢＴ１０１を削除したものである。
メモリテストブロック１０４〜１０６におけるメモリ部ＭＥＭ１０１の検査は、共通の検査回路ＢＴ１０２において行われる。
【００１６】
しかしながら、図１０に示すように検査回路を共有する方式は、メモリと検査回路との間の配線遅延によってテスト速度が低下するという問題がある。
すなわち、メモリの数が多くなると、メモリから検査回路までの配線長が長くなり、配線の寄生容量によって信号遅延が生じるため、テスト速度が遅くなる。そのため、テスト速度の低下を許容範囲に収めるためには、検査回路を共有するメモリの数に制限を加える必要がある。従って、メモリ数が多い場合やメモリの動作速度が速い場合には、検査回路を複数設けなくてはならず、回路面積の増大が問題となる。
【００１７】
本発明はかかる事情に鑑みてなされたものであり、その目的は、内部に設けられた複数のメモリ部の検査に関わる処理を、回路面積の増大を抑えつつ実行することができる半導体集積回路を提供することにある。
【課題を解決するための手段】
【００１８】
上記の目的を達成する第１の観点の発明は、複数のメモリ部と、上記複数のメモリ部に接続される論理回路と、上記論理回路のスキャンテストを行うための複数のスキャンフリップフロップとを有する半導体集積回路であって、第１のデータシフト回路と、第１の選択回路とを有する。
上記第１のデータシフト回路は、上記複数のメモリ部に対応する複数段のレジスタを有しており、上記メモリ部のテストを行う第１の動作モードにおいて、上記メモリ部のテスト入力データを初段のレジスタから後段のレジスタへ順にシフトさせる。
上記第１の選択回路は、上記第１の動作モードにおいて、上記第１のデータシフト回路の各レジスタにシフトされる上記テスト入力データを選択して、各レジスタに対応する上記メモリ部にそれぞれ入力し、上記論理回路から上記メモリ部にアクセスする第２の動作モードにおいて、上記論理回路から出力されるデータを選択して上記メモリ部に入力する。
上記第１のデータシフト回路の各レジスタは、上記スキャンフリップフロップを用いて形成される。
【００１９】
上記第１の観点によると、上記論理回路から上記メモリ部にアクセスする上記第２の動作モードにおいて、上記論理回路の出力データが上記第１の選択回路を介して上記メモリ部に入力される。
一方、上記メモリ部のテストを行う第１の動作モードにおいて、上記第１のデータシフト回路では、上記メモリ部に対するテスト入力データが初段のレジスタから後段のレジスタへ順にシフトされる。上記第１のデータシフト回路の各レジスタにシフトされる上記テスト入力データは、上記第１の選択回路を介して、各レジスタに対応する上記メモリ部へそれぞれ入力される。
これにより、上記第１の動作モードにおいて、上記テスト入力データは、上記スキャンフリップフロップを用いて形成される上記第１のデータシフト回路の各レジスタを順にシフトして、上記複数のメモリ部に転送される。
【００２０】
なお、上記第１の選択回路は、上記スキャンテストを行う第３の動作モードにおいて、上記論理回路の出力データを選択して上記メモリ部に入力しても良い。この場合、上記第１の観点の発明は、上記第１の動作モードにおいて、上記第１のデータシフト回路の各レジスタから出力される上記テスト入力データを選択して、各レジスタの次段にそれぞれ入力し、上記第３の動作モードにおいて、上記第１の選択回路から各メモリ部に入力されるデータを選択して、各メモリ部に対応する上記第１のデータシフト回路のレジスタを形成する上記スキャンフリップフロップにそれぞれ入力する第２の選択回路を有しても良い。
【００２１】
上記の構成によると、上記第１の動作モードにおいて、上記第１のデータシフト回路の各レジスタから出力される上記テスト入力データは、上記第２の選択回路を介して、各レジスタの次段にそれぞれ入力される。
また、上記スキャンテストを行う第３の動作モードにおいて、各メモリ部には、上記第１の選択回路を介して上記論理回路の出力データが入力され、当該論理回路の出力データが、上記第２の選択回路を介して、各メモリ部に対応する上記第１のデータシフト回路のレジスタを形成する上記スキャンフリップフロップにそれぞれ入力される。
これにより、上記第１の動作モードにおいて上記メモリ部に上記テスト入力データを転送するレジスタを形成するスキャンフリップフロップには、上記第３のモードにおいて、上記論理回路から当該メモリ部に対して出力されるデータが入力される。
【００２２】
また、上記第１の観点の発明は、第２のデータシフト回路を有しても良い。
上記第２のデータシフト回路は、上記複数のメモリ部に対応する複数段のレジスタを有しており、当該レジスタがそれぞれ上記スキャンフリップフロップを用いて形成される。
上記第２のデータシフト回路は、上記第１の動作モードにおいて、上記テスト入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データを上記複数のメモリ部のそれぞれについて生成し、当該生成したテスト出力データを対応するレジスタにそれぞれラッチさせ、当該ラッチさせたテスト出力データを後段のレジスタへ順にシフトさせる。
【００２３】
上記の構成によると、上記第１の動作モードにおいて、上記第２のデータシフト回路では、上記テスト入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データが上記複数のメモリ部のそれぞれについて生成される。当該生成されたテスト出力データは、対応するレジスタにそれぞれラッチされ、後段のレジスタへ順にシフトされる。
これにより、上記第１の動作モードにおいて、上記テスト出力データは、上記スキャンフリップフロップを用いて形成される上記第２のデータシフト回路の各レジスタを順にシフトして、終段のレジスタから出力される。
【００２４】
上記第２のデータシフト回路は、上記複数段のレジスタに対応する複数のテスト出力データ生成回路を有しても良い。
上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が期待値と一致しない場合、第１の値を持つテスト出力データを生成して当該レジスタにラッチさせ、当該メモリ部の出力データが期待値と一致する場合は、第２の値を持つテスト出力データを生成して当該レジスタにラッチさせても良い。
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が期待値と一致しない場合、または、当該レジスタの前段からシフトされる上記テスト出力データが上記第１の値を持つ場合に、上記第１の値を持つテスト出力データを生成して当該レジスタにラッチさせ、当該メモリ部の出力データの値が期待値と一致し、かつ、当該レジスタの前段からシフトされる上記テスト出力データが上記第２の値を持つ場合は、上記第２の値を持つテスト出力データを生成して当該レジスタにラッチさせても良い。
【００２５】
上記の構成によると、上記第１の動作モードにおいて、上記テスト入力データに応答して上記メモリ部から出力されるデータの値が期待値と一致しない場合、当該メモリ部に対応する上記第２のデータシフト回路のレジスタには、当該レジスタに対応するテスト出力データ生成回路によって、上記第１の値を持つテスト出力データが生成されて、当該レジスタにラッチされる。そして、この第１の値を持つテスト出力データが当該レジスタより後段にシフトされると、後段のレジスタに対応するテスト出力データ生成回路においても上記第１の値を持つテスト出力データが生成される。その結果、上記第１の値を持つテスト出力データが後段のレジスタに次々と伝播し、終段のレジスタから出力される。
一方、上記テスト入力データに応答して上記複数のメモリ部より出力されるデータの値が全て期待値と一致する場合、上記複数のテスト出力データ生成回路の何れにおいても上記第２の値を持つテスト出力データが生成されるため、上記第２のデータシフト回路の終段のレジスタからは上記第２の値を持つテスト出力データが出力される。
【００２６】
また、上記第１の観点の発明は、第３のデータシフト回路を有しても良い。
上記第３のデータシフト回路は、上記複数のメモリ部に対応する複数段のレジスタを有しており、上記第１の動作モードにおいて、期待値データを初段のレジスタから後段のレジスタへ順にシフトさせる。上記第３のデータシフト回路のレジスタは、好適には、上記スキャンフリップフロップを用いて形成される。
この場合、上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値と、当該メモリ部に対応する上記第３のデータシフト回路のレジスタにシフトされる上記期待値データの値とが一致しない場合、上記第１の値を持つテスト出力データを生成し、当該メモリ部の出力データが当該期待値データの値と一致する場合は、上記第２の値を持つテスト出力データを生成しても良い。
上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータの値と、当該メモリ部に対応する上記第３のデータシフト回路のレジスタにシフトされる上記期待値データの値とが一致しない場合、または、当該レジスタの前段からシフトされる上記テスト出力データが上記第１の値を持つ場合に、上記第１の値を持つテスト出力データを生成し、当該メモリ部の出力データの値が当該期待値データの値と一致し、かつ、当該レジスタの前段からシフトされる上記テスト出力データが上記第の値を持つ場合は、上記第２の値を持つテスト出力データを生成しても良い。
【００２７】
上記の構成によると、上記第１の動作モードにおいて、上記第３のデータシフト回路では、上記スキャンフリップフロップによって形成される初段のレジスタから後段のレジスタへ、上記期待値データが順にシフトされる。
上記第１の動作モードにおいて、上記メモリ部から上記テスト入力データに応答して出力されるデータの値と、当該メモリ部に対応する上記第３のデータシフト回路のレジスタにシフトされる上記期待値データの値とが一致しない場合、当該メモリ部に対応する上記第２のデータシフト回路のレジスタには、当該レジスタに対応するテスト出力データ生成回路によって、上記第１の値を持つテスト出力データが生成されて、当該レジスタにラッチされる。そして、この第１の値を持つテスト出力データが当該レジスタより後段にシフトされると、後段のレジスタに対応するテスト出力データ生成回路においても上記第１の値を持つテスト出力データが生成される。その結果、上記第１の値を持つテスト出力データが後段のレジスタに次々と伝播し、終段のレジスタから出力される。
一方、上記テスト入力データに応答して上記複数のメモリ部より出力されるデータの値が、各メモリ部に対応する上記第３のデータシフト回路の各レジスタにシフトされる上記期待値データの値と全て一致する場合、上記複数のテスト出力データ生成回路の何れにおいても上記第２の値を持つテスト出力データが生成されるため、上記第２のデータシフト回路の終段のレジスタからは上記第２の値を持つテスト出力データが出力される。
【００２８】
なお、上記テスト出力データ生成回路は、上記第１の動作モードにおいて、テスト結果の出力の無効化を指示する制御信号が入力される場合、対応するメモリ部から上記テスト入力データに応答して出力されるデータの値が上記期待値を有するものとして上記テスト出力データを生成しても良い。
これにより、上記複数のテスト出力データ生成回路のうち、特定の１つを除く残りのテスト出力データ生成回路に対して上記テスト結果の出力の無効化を指示する制御信号が入力された場合に、上記第２のデータシフト回路の終段のレジスタから出力される上記テスト出力データの値は、当該特定のテスト出力データ生成回路において生成されるテスト出力データの値と等しくなる。
【００２９】
また、上記第１の観点の発明において、上記第２のデータシフト回路は、次のように動作しても良い。
すなわち、上記第２のデータシフト回路の初段のレジスタに対応する上記テスト出力データ生成回路は、上記第１の動作モードにおいて、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせても良い。
また、上記第２のデータシフト回路の上記初段に続く後段のレジスタに対応する上記テスト出力データ生成回路は、上記メモリ部の出力データの読み出しを指示する制御信号が入力される場合、当該レジスタに対応するメモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータを、上記テスト出力データとして当該レジスタにラッチさせ、当該読み出しの無効化を指示する制御信号が入力される場合は、当該レジスタの前段からシフトされる上記テスト出力データを当該レジスタにラッチさせても良い。
これにより、次のような作用が生じる。
上記複数のテスト出力データ生成回路のうち、特定の１つのテスト出力データ生成回路に対して上記メモリ部の出力データの読み出しを指示する制御信号が入力され、残りのテスト出力データ生成回路に対して当該読み出しの無効化を指示する制御信号が入力されるものとする。この場合、当該特定のテスト出力データ生成回路に対応する上記第２のデータシフト回路のレジスタ（特定レジスタ）には、この特定レジスタに対応するメモリ部（特定メモリ部）より上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータがラッチされる。また、特定レジスタに続く後段のレジスタが存在する場合、その後段のレジスタには、特定レジスタにラッチされるテスト出力データがシフトされてラッチされる。従って、上記第２のデータシフト回路の終段のレジスタからは、上記テスト出力データとして、特定メモリ部から上記テスト入力データに応答して出力されるデータもしくはこれに応じたデータが出力される。
【００３０】
なお、上記第１の観点の発明は、上記第１の動作モードにおいて、上記第１のデータシフト回路の初段に供給する上記テスト入力データを生成するテスト入力データ生成回路を有しても良い。
また、上記第１の観点の発明は、上記第１の動作モードにおいて、上記第２のデータシフト回路の終段から出力されるテスト出力データを取得し、当該取得したテスト出力データに基づいて上記メモリ部の良否を判定する判定回路を有しても良い。
【００３１】
上記の目的を達成する第２の観点の発明は、複数のメモリ部と、上記複数のメモリ部に接続される論理回路と、上記論理回路のスキャンテストを行うための複数のスキャンフリップフロップとを有する半導体集積回路であって、データシフト回路を有する。
上記データシフト回路は、上記複数のメモリ部に対応する複数段のレジスタを有しており、上記メモリ部にテスト用のデータを入力して上記メモリ部のテストを行う動作モードにおいて、上記テスト用の入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データを上記複数のメモリ部のそれぞれについて生成し、当該生成したテスト出力データを対応するレジスタにそれぞれラッチさせ、当該ラッチさせたテスト出力データを後段のレジスタへ順にシフトさせるデータシフト回路を有する。
上記データシフト回路の各レジスタは、上記スキャンフリップフロップを用いて形成される。
【００３２】
上記第２の観点によると、上記メモリ部のテストを行う動作モードにおいて、上記データシフト回路では、上記テスト用の入力データに応答して上記メモリ部から出力されるデータに応じたテスト出力データが上記複数のメモリ部のそれぞれについて生成される。当該生成されたテスト出力データは、対応するレジスタにそれぞれラッチされ、後段のレジスタへ順にシフトされる。
これにより、上記メモリ部のテストを行う動作モードにおいて、上記テスト出力データは、上記スキャンフリップフロップを用いて形成される上記データシフト回路の各レジスタを順にシフトして、終段のレジスタから出力される。
【発明の効果】
【００３３】
本発明によれば、第１に、メモリ部に入力するテスト用の入力データの転送にスキャンフリップフロップを利用することによって、回路面積の増大を抑えつつ複数のメモリ部のテストを行うことが可能になる。
また第２に、テスト用の入力データに応答してメモリ部から出力されるデータに応じたテスト出力データの転送にスキャンフリップフロップを利用することによって、回路面積の増大を抑えつつ複数のメモリ部のテストを行うことが可能になる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施形態について、図面を参照しながら説明する。
【００３５】
図１は、本発明の実施形態に係る半導体集積回路の構成の一例を示す図である。
図１に示す半導体集積回路は、メモリ検査に関連する回路ブロックとして、ｎ個（ｎは１より大きい任意の整数を示す。以下同じ。）のメモリテストブロック１＿１，…１＿ｎを有している。
メモリテストブロック１＿１〜１＿ｎは、それぞれ、メモリ部ＭＥＭ１と、論理回路ＬＧ１およびＬＧ２と、スキャンフリップフロップＳＦ１，…，ＳＦ１１と、セレクタＳＥＬ１，…，ＳＥＬ９と、テスト出力データ生成回路１０とを有する。
また、図１に示す半導体集積回路は、メモリテストブロック１＿１〜１＿ｎの検査を行う検査回路ＢＴ１を有する。
【００３６】
図１に示す半導体集積回路の構成要素と本発明の構成要素とは、次のような対応関係を有する。
メモリ部ＭＥＭ１は、本発明のメモリ部の一実施形態である。
各メモリテストブロックの論理回路ＬＧ１およびＬＧ２を含む回路は、本発明の論理回路の一実施形態である。
スキャンフリップフロップＳＦ１〜ＳＦ１１は、本発明のスキャンフリップフロップの一実施形態である。
スキャンフリップフロップＳＦ５〜ＳＦ８によって形成されるレジスタは、本発明の第１のデータシフト回路におけるレジスタの一実施形態である。
各メモリテストブロックのセレクタＳＥＬ１〜ＳＥＬ４を含む回路は、本発明の第１の選択回路の一実施形態である。
各メモリテストブロックのセレクタＳＥＬ５〜ＳＥＬ８を含む回路は、本発明の第２の選択回路の一実施形態である。
スキャンフリップフロップＳＦ９によって形成されるレジスタは、本発明の第２のデータシフト回路におけるレジスタの一実施形態である。
スキャンフリップフロップＳＦ１０によって形成されるレジスタは、本発明の第３のデータシフト回路におけるレジスタの一実施形態である。
テスト出力データ生成回路１０は、本発明のテスト出力データ生成回路の一実施形態である。
【００３７】
メモリ部ＭＥＭ１は、本実施形態に係る半導体集積回路において論理回路とともに搭載される複数のメモリ部の１つであり、例えばＳＲＡＭやＤＲＡＭなどのメモリを含む。
【００３８】
図１の例に示すメモリ部ＭＥＭ１は、書き込みデータＤＩＮ、アドレスデータＡＤＲ、チップ選択信号ＣＳ、リード／ライト選択信号ＲＷを入力し、読み出しデータＤＯＵＴを出力する。
【００３９】
メモリ部ＭＥＭ１は、例えば、チップ選択信号ＣＳが値‘１’のときにアクセス可能となり、このときリード／ライト選択信号ＲＷが値‘１’であれば書き込み動作、値‘０’であれば読み出し動作を実行する。
書き込み動作においては、アドレスデータＡＤＲによって指示される記憶領域に書き込みデータＤＩＮを書き込む。
読み出し動作においては、アドレスデータＡＤＲによって指示される記憶領域に格納されたデータを読み出しデータＤＯＵＴとして出力する。
【００４０】
論理回路ＬＧ１は、メモリ部ＭＥＭ１に対して入力されるデータ（ＤＩＮ，ＡＤＲ，ＣＳ，ＲＷ）を生成する回路であり、例えばランダムロジックによって構成される。
【００４１】
論理回路ＬＧ２は、メモリ部ＭＥＭ１から読み出されるデータを入力して処理する回路であり、例えばランダムロジックによって構成される。
【００４２】
なお、論理回路ＬＧ１およびＬＧ２の論理機能は、メモリテストブロックごとに異なっても良いし、同一でも良い。
【００４３】
スキャンフリップフロップＳＦ１〜ＳＦ１１は、他の図示しないスキャンフリップフロップとともに、スキャンテストを実行するためのスキャンパス回路を構成するフリップフロップである。各スキャンフリップフロップは、半導体集積回路内部の論理回路にそれぞれ接続されており、スキャンパス回路は、このスキャンフリップフロップを複数縦続に接続した１本（もしくは複数本）のシフトレジスタを構成する。
スキャンテストを行う動作モード（第３の動作モード）において、スキャンパス回路に半導体集積回路の外部（もしくは内部）に設けられた検査装置からテスト用のデータがシリアル転送されて、各スキャンフリップフロップにセットされる。内部の論理回路には、スキャンフリップフロップにセットされたテスト用のデータが入力される。このテスト用データに応じた論理回路の出力データは、各スキャンフリップフロップによってラッチされ、スキャンパス回路からシリアル転送により半導体集積回路の外部（もしくは内部）の検査装置へ出力される。
【００４４】
スキャンフリップフロップＳＦ１〜ＳＦ４は、スキャンテストの際、論理回路ＬＧ１にテスト用のデータを入力する。
【００４５】
スキャンフリップフロップＳＦ５〜ＳＦ８は、スキャンテストの際に、メモリ部ＭＥＭ１へ入力されるデータを保持する。
すなわち、スキャンフリップフロップＳＦ５は、論理回路ＬＧ１からセレクタＳＥＬ５を介して入力される書き込みデータＤＩＮを保持する。
スキャンフリップフロップＳＦ６は、論理回路ＬＧ１からセレクタＳＥＬ２を介して入力されるアドレスデータＡＤＲを保持する。
スキャンフリップフロップＳＦ７は、論理回路ＬＧ１からセレクタＳＥＬ３を介して入力されるチップ選択信号ＣＳを保持する。
スキャンフリップフロップＳＦ８は、論理回路ＬＧからセレクタＳＥＬ４を介して入力されるリード／ライト選択信号ＲＷを保持する。
【００４６】
従って、スキャンテストを行う第３の動作モードにおいて、論理回路ＬＧ１には、スキャンフリップフロップＳＦ１〜ＳＦ４からテスト用のデータが入力され、これに応じた論理回路ＬＧ１の出力データがスキャンフリップフロップＳＦ５〜ＳＦ８に取り込まれる。取り込まれた出力データを外部もしくは内部の検査装置で解析することにより、論理回路ＬＧ１の故障を検出することが可能になる。
【００４７】
更に、スキャンフリップフロップＳＦ５〜ＳＦ８は、メモリ部ＭＥＭ１のテストを行う動作モード（第１の動作モード）において、メモリ部ＭＥＭ１に供給するテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）を保持するレジスタを形成している。
各メモリテストブロックに含まれるこのレジスタ（ＳＦ５〜ＳＦ８）は、メモリテストブロック１＿１，…，１＿ｎの順に縦続接続されており、１つのデータシフト回路（第１のデータシフト回路）を形成している。
第１のデータシフト回路は、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、検査回路ＢＴ１より供給されるテスト入力データを、初段のレジスタ（すなわちメモリテストブロック１＿１のレジスタ）から後段のレジスタへ順にシフトさせる働きを有する。
【００４８】
スキャンフリップフロップＳＦ９は、スキャンテストを行う第３の動作モードにおいて、メモリ部ＭＥＭ１の読み出しデータを置換して論理回路ＬＧ２に入力するためのデータを保持する。すなわち、スキャンテストの際にスキャンフリップフロップＳＦ９にセットされるデータは、セレクタＳＥＬ９を介して論理回路ＬＧ２に入力される。
【００４９】
スキャンフリップフロップＳＦ１１は、スキャンテストを行う第３の動作モードにおいて、論理回路ＬＧ２から出力されるデータを保持する。
【００５０】
従って、スキャンテストを行う第３の動作モードにおいて、論理回路ＬＧ２には、スキャンフリップフロップＳＦ９よりセレクタＳＥＬ９を介してテスト用のデータが入力され、これに応じた論理回路ＬＧ２の出力データがスキャンフリップフロップＳＦ１１に取り込まれる。この出力データを解析することにより、論理回路ＬＧ２の故障を検出することが可能になる。
【００５１】
また、スキャンフリップフロップＳＦ９は、メモリ部ＭＥＭ１のテストを行う動作モード（第１の動作モード）において、テスト出力データ生成回路１０より出力されるテスト出力データを保持するためのレジスタを形成している。テスト出力データは、後ほど詳しく説明するように、テスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）に応答してメモリ部ＭＥＭ１より出力される読み出しデータＤＯＵＴに応じたデータである。
各メモリテストブロックに含まれるこのレジスタ（ＳＦ９）は、メモリテストブロック１＿１，…，１＿ｎの順に縦続接続されており、１つのデータシフト回路（第２のデータシフト回路）を形成している。
第２のデータシフト回路は、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、上述したテスト出力データを初段のレジスタ（すなわちメモリテストブロック１＿１のレジスタ）から後段のレジスタへ順にシフトさせる働きを有する。
【００５２】
スキャンフリップフロップＳＦ１０は、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、期待値データを保持するためのレジスタを形成している。期待値データは、後述するテスト出力データ生成回路１０において、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴがテスト入力データに応じた期待値を有しているか否かの判定を行うために用いられるデータであり、検査回路ＢＴ１において生成される。
各メモリテストブロックに含まれるこのレジスタ（ＳＦ１０）は、メモリテストブロック１＿１，…，１＿ｎの順に縦続接続されており、１つのデータシフト回路（第３のデータシフト回路）を形成している。
第３のデータシフト回路は、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、上述した期待値データを初段のレジスタ（すなわちメモリテストブロック１＿１のレジスタ）から後段のレジスタへ順にシフトさせる働きを有する。
【００５３】
セレクタＳＥＬ１〜ＳＥＬ４は、図示しない制御回路から供給される制御信号Ｓ１に従って、次のような信号選択動作を行う。
すなわち、セレクタＳＥＬ１は、論理回路ＬＧ１およびＬＧ２からメモリ部ＭＥＭ１にアクセスする通常の動作モード（第２の動作モード）において、論理回路ＬＧ１から出力される書き込みデータＤＩＮを選択してメモリ部ＭＥＭ１に入力し、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、スキャンフリップフロップＳＦ５にシフトされるテスト入力データＤＩＮ＿Ｔを選択してメモリ部ＭＥＭ１に入力する。
同様に、セレクタＳＥＬ２は、第２の動作モードにおいて、論理回路ＬＧ１から出力されるアドレスデータＡＤＲを選択してメモリ部ＭＥＭ１に入力し、第１の動作モードにおいて、スキャンフリップフロップＳＦ６にシフトされるテスト入力データＡＤＲ＿Ｔを選択してメモリ部ＭＥＭ１に入力する。
セレクタＳＥＬ３は、第２の動作モードにおいて、論理回路ＬＧ１から出力されるチップ選択信号ＣＳを選択してメモリ部ＭＥＭ１に入力し、第１の動作モードにおいて、スキャンフリップフロップＳＦ７にシフトされるテスト入力データＣＳ＿Ｔを選択してメモリ部ＭＥＭ１に入力する。
セレクタＳＥＬ４は、第２の動作モードにおいて、論理回路ＬＧ１から出力されるリード／ライト選択信号ＲＷを選択してメモリ部ＭＥＭ１に入力し、第１の動作モードにおいて、スキャンフリップフロップＳＦ８にシフトされるテスト入力データＣＳ＿Ｔを選択してメモリ部ＭＥＭ１に入力する。
【００５４】
セレクタＳＥＬ５〜ＳＥＬ８は、図示しない制御回路から供給される制御信号Ｓ５に従って、次のような信号選択動作を行う。
すなわち、セレクタＳＥＬ５は、スキャンテストを行う第３の動作モードにおいて、セレクタＳＥＬ１からメモリ部ＭＥＭ１に入力される書き込みデータＤＩＮを選択してスキャンフリップフロップＳＦ５に入力し、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、第１のデータシフト回路の前段のレジスタから出力されるテスト入力データＤＩＮ＿Ｔ（メモリテストブロック１＿１のセレクタＳＥＬ５にあっては、検査回路ＢＴ１より供給されるテスト入力データＤＩＮ＿Ｔ）を選択してスキャンフリップフロップＳＦ５に入力する。
同様に、セレクタＳＥＬ６は、第３の動作モードにおいて、セレクタＳＥＬ２からメモリ部ＭＥＭ１に入力されるアドレスデータＡＤＲを選択してスキャンフリップフロップＳＦ６に入力し、第１の動作モードにおいて、第１のデータシフト回路の前段のレジスタから出力されるテスト入力データＡＤＲ＿Ｔ（メモリテストブロック１＿１のセレクタＳＥＬ６にあっては、検査回路ＢＴ１より供給されるテスト入力データＡＤＲ＿Ｔ）を選択してスキャンフリップフロップＳＦ６に入力する。
セレクタＳＥＬ７は、第３の動作モードにおいて、セレクタＳＥＬ３からメモリ部ＭＥＭ１に入力されるチップ選択信号ＣＳを選択してスキャンフリップフロップＳＦ７に入力し、第１の動作モードにおいて、第１のデータシフト回路の前段のレジスタから出力されるテスト入力データＣＳ＿Ｔ（メモリテストブロック１＿１のセレクタＳＥＬ７にあっては、検査回路ＢＴ１より供給されるテスト入力データＣＳ＿Ｔ）を選択してスキャンフリップフロップＳＦ７に入力する。
セレクタＳＥＬ８は、第３の動作モードにおいて、セレクタＳＥＬ４からメモリ部ＭＥＭ１に入力されるリード／ライト選択信号ＲＷを選択してスキャンフリップフロップＳＦ８に入力し、第１の動作モードにおいて、第１のデータシフト回路の前段のレジスタから出力されるテスト入力データＲＷ＿Ｔ（メモリテストブロック１＿１のセレクタＳＥＬ８にあっては、検査回路ＢＴ１より供給されるテスト入力データＲＷ＿Ｔ）を選択してスキャンフリップフロップＳＦ８に入力する。
【００５５】
セレクタＳＥＬ９は、図示しない制御回路から供給される制御信号Ｓ２に従って、次のような信号選択動作を行う。
すなわち、メモリ部ＭＥＭ１のテストを行う第１の動作モード、ならびに、論理回路ＬＧ１およびＬＧ２からメモリ部ＭＥＭ１にアクセスする第２の動作モードにおいて、メモリ部ＭＥＭ１から出力される読み出しデータＤＯＵＴを選択して、論理回路ＬＧ２に入力する。スキャンテストを行う第３の動作モードにおいては、スキャンフリップフロップＳＦ９に保持されるスキャンテスト用の入力データを選択して、論理回路ＬＧ２に入力する。
【００５６】
テスト出力データ生成回路１０は、メモリ部ＭＥＭ１のテストを行う第１の動作モードにおいて、第１のデータシフト回路のレジスタ（ＳＦ５〜ＳＦ８）に保持されるテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）に応答してメモリ部ＭＥＭ１から出力される読み出しデータＤＯＵＴに応じて、テスト出力データを生成する。そして、生成したテスト出力データを第２のデータシフト回路のレジスタ（ＳＦ９）に入力し、これにラッチさせる。
【００５７】
例えばテスト出力データ生成回路１０は、図示しない制御回路より与えられる制御信号に従って、３種類のテスト出力データ（第１〜第３のテスト出力データ）を生成する。
【００５８】
第１のテスト出力データは、テスト対象となるｎ個のメモリ部の中に、期待値データと一致しない読み出しデータＤＯＵＴを出力するメモリ部が含まれているか否か検出するためのデータである。
第１のテスト出力データを生成する場合、各メモリテストブロックのテスト出力データ生成回路１０は、例えば次のように動作する。
メモリテストブロック１＿１に属するテスト出力データ生成回路１０（すなわち、第２のデータシフト回路の初段レジスタに対応するテスト出力データ生成回路１０）は、メモリテストブロック１＿１に属するメモリ部ＭＥＭ１からテスト入力データに応答して出力される読み出しデータＤＯＵＴと、メモリテストブロック１＿１に属する第３のデータシフト回路のレジスタ（ＳＦ１０）に入力される期待値データとを比較する。そして、この両者が一致する場合は値‘０’、両者が一致しない場合は値‘１’のテスト出力データを生成して、メモリテストブロック１＿１に属する第２のデータシフト回路のレジスタ（ＳＦ９）にラッチさせる。
メモリテストブロック１＿ｉ（ｉは２からｎまでの整数を示す。以下同じ。）に属するテスト出力データ生成回路１０（すなわち、第２のデータシフト回路の後段レジスタに対応するテスト出力データ生成回路１０）は、メモリテストブロック１＿ｉに属するメモリ部ＭＥＭ１からテスト入力データに応答して出力される読み出しデータＤＯＵＴと、メモリテストブロック１＿ｉに属する第３のデータシフト回路のレジスタ（ＳＦ１０）に対し前段からシフトされる期待値データとを比較する。そして、この両者が一致し、かつ、第２のデータシフト回路の前段のレジスタ（ＳＦ９）よりシフトされるテスト出力データが値‘０’の場合に、値‘０’のテスト出力データを生成して、メモリテストブロック１＿ｉに属する第２のデータシフト回路のレジスタ（ＳＦ９）にラッチさせる。上記比較の結果において両者が一致しない場合や、第２のデータシフト回路の前段のレジスタ（ＳＦ９）よりシフトされるテスト出力データが値‘１’の場合は、値‘１’のテスト出力データを生成して、メモリテストブロック１＿ｉに属する第２のデータシフト回路のレジスタ（ＳＦ９）にラッチさせる。
これにより、第２のデータシフト回路の終段のレジスタ（メモリテストブロック１＿ｎに属するスキャンフリップフロップＳＦ９）にシフトされるテスト出力データの値は、ｎ個のメモリ部の中に期待値データと一致しない読み出しデータＤＯＵＴを出力するメモリ部が１つでも含まれている場合に値‘１’、ｎ個のメモリ部の読み出しデータＤＯＵＴが全て期待値データと一致する場合に値‘０’となる。
【００５９】
第２のテスト出力データは、テスト対象となるｎ個のメモリ部のうち、選択された特定のメモリ部より出力される読み出しデータＤＯＵＴが期待値データと一致しているか否か検出するためのデータである。
第２のテスト出力データを生成する場合、各メモリテストブロックのテスト出力データ生成回路１０は、例えば次のように動作する。
特定のメモリ部ＭＥＭ１と同じメモリテストブロック１＿ｊ（ｊは、１からｎまでの任意の整数を示す。以下同じ。）に属するテスト出力データ生成回路１０は、上述した第１のテスト出力データと同じ値のデータを生成する。
このメモリテストブロック１＿ｊを除く他のメモリテストブロックに属するテスト出力データ生成回路１０は、期待値データとの比較結果の出力を無効にする。すなわち、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴが常に期待値データと一致しているものとして、上述した第１のテスト出力データと同じ値のデータを生成する。
これにより、第２のデータシフト回路の終段のレジスタ（メモリテストブロック１＿ｎに属するスキャンフリップフロップＳＦ９）にシフトされるテスト出力データは、メモリテストブロック１＿ｊに属するテスト出力データ生成回路１０で生成されるテスト出力データと等しくなる。すなわち、特定のメモリ部ＭＥＭ１の読み出しデータＤＯＵＴが期待値データと一致する場合に値‘０’、一致しない場合に値‘１’となる。
【００６０】
第３のテスト出力データは、テスト対象となるｎ個のメモリ部のうち、選択された特定のメモリ部より出力される読み出しデータＤＯＵＴを検査するためのデータである。
第３のテスト出力データを生成する場合、各メモリテストブロックのテスト出力データ生成回路１０は、例えば次のように動作する。
メモリテストブロック１＿１に属するテスト出力データ生成回路１０（すなわち、第２のデータシフト回路の初段レジスタに対応するテスト出力データ生成回路１０）は、メモリテストブロック１＿１に属するメモリ部ＭＥＭ１が特定のメモリ部として選ばれた場合、第３のテスト出力データとして、このメモリ部ＭＥＭ１からテスト入力データに応答して出力される読み出しデータＤＯＵＴを、メモリテストブロック１＿１に属する第２のデータシフト回路のレジスタ（ＳＦ９）にラッチさせる。
メモリテストブロック１＿ｉに属するテスト出力データ生成回路１０（すなわち、第２のデータシフト回路の後段レジスタに対応するテスト出力データ生成回路１０）は、メモリテストブロックに属するメモリ部ＭＥＭ１が特定のメモリ部として選ばれた場合、このメモリ部ＭＥＭ１からテスト入力データに応答して出力される読み出しデータＤＯＵＴを、同一メモリテストブロックに属する第２のデータシフト回路のレジスタ（ＳＦ９）に第３のテスト出力データとしてラッチさせる。同一メモリテストブロックに属するメモリ部ＭＥＭ１が特定のメモリ部として選ばれない場合は、第２のデータシフト回路の前段のレジスタ（ＳＦ９）からシフトされる第３のテスト出力データを、同一メモリテストブロックに属する第２のデータシフト回路のレジスタ（ＳＦ９）にラッチさせる。
これにより、第２のデータシフト回路の終段のレジスタ（メモリテストブロック１＿ｎに属するスキャンフリップフロップＳＦ９）にシフトされる第３のテスト出力データは、特定のメモリ部ＭＥＭ１より出力される読み出しデータＤＯＵＴと等しくなる。
【００６１】
図２は、メモリテストブロック１＿ｉに属するテスト出力データ生成回路１０の構成の一例を示す図である。図２の例において、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴは８ビットである。
【００６２】
図２に示すテスト出力データ生成回路１０は、比較回路１１と、セレクタ１２と、ＡＮＤ回路１３と、ＯＲ回路１４とを有する。
【００６３】
比較回路１１は、第３のデータシフト回路における前段のレジスタ（メモリテストブロック１＿（ｉ−１）に属するスキャンフリップフロップＳＦ１０）から出力される期待値データＥＶｉ−１と、同一のメモリテストブロック１＿ｉに属するメモリ部ＭＥＭ１から出力される読み出しデータＤＯＵＴとを比較し、両者が一致する場合に値‘０’、一致しない場合に値‘１’の判定信号を出力する。
【００６４】
セレクタ１２は、入力される制御信号Ｓ３に従って、比較回路１１より出力される判定信号か、または、読み出しデータＤＯＵＴの最下位ビット（第０ビット）の信号の何れか一方を選択し出力する。
上述した第１のテスト出力データまたは第２のテスト出力データを生成する場合、セレクタ１２によって比較回路１１の判定信号が選択される。第３のテスト出力データを生成する場合は、セレクタ１２によって読み出しデータＤＯＵＴの最下位ビットが選択される。
【００６５】
ＡＮＤ回路１３は、読み出しデータＤＯＵＴの最下位ビットを除く上位７ビットのデータ、および、セレクタ１２より出力される１ビットの信号で構成される全８ビットのデータと、入力される１ビットの制御信号Ｓ４との論理積をそれぞれ演算し、演算結果の８ビットのデータを出力する。
【００６６】
ＯＲ回路１４は、ＡＮＤ回路１３から出力される８ビットのデータと、第２のデータシフト回路における前段のレジスタ（メモリテストブロック１＿（ｉ−１）に属するスキャンフリップフロップＳＦ９）から出力される８ビットのテスト出力データＴＤｉ−１との論理和を演算し、演算結果の８ビットのデータをテスト出力データＴＤｉとして出力する。
【００６７】
なお、メモリテストブロック１＿１に属するテスト出力データ生成回路１０は、前段からのテスト出力データが存在しないため、図２に示す構成におけるＯＲ回路１４を省略しても良い。すなわち、ＡＮＤ回路１３の出力をテスト出力データＴＤ１としてそのまま出力して良い。
あるいは、図２に示すテスト出力データ生成回路１０と同一構成とし、前段からのテスト出力データとして全ビットが値‘０’のデータを入力しても良い。
以上が、テスト出力データ生成回路の説明である。
【００６８】
検査回路ＢＴ１は、メモリ部のテストを行う第１の動作モードにおいて、第１のデータシフト回路の初段のレジスタ（メモリテストブロック１＿１のスキャンフリップフロップＳＦ５〜ＳＦ８）に供給するテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）を生成する。
また、検査回路ＢＴ１は、この第１の動作モードにおいて、第２のデータシフト回路の終段（メモリテストブロック１＿ｎのスキャンフリップフロップＳＦ９）から出力されるテスト出力データを取得し、この取得したテスト出力データに基づいて各メモリ部の良否を判定する。
【００６９】
ここで、上述した構成を有する半導体集積回路の動作について、動作モードごとに分けて説明する。
【００７０】
＜第２の動作モード（論理回路ＬＧ１およびＬＧ２からメモリ部ＭＥＭ１にアクセスする動作モード）＞
第２の動作モードにおいて、セレクタＳＥＬ１〜ＳＥＬ４は、論理回路ＬＧ１より出力される書き込みデータＤＩＮ、アドレスデータＡＤＲ、チップ選択信号ＣＳ、リード／ライト選択信号ＲＷを選択してメモリ部ＭＥＭ１に入力する。
また、セレクタＳＥＬ９は、メモリ部ＭＥＭ１より出力される読み出しデータＤＯＵＴを選択して論理回路ＬＧ２に入力する。
これにより、論理回路ＬＧ１およびＬＧ２によってメモリ部ＭＥＭ１に対する通常のアクセスが行われる。
【００７１】
＜第３の動作モード（スキャンテストを行う動作モード）＞
第３の動作モードにおいて、セレクタＳＥＬ１〜ＳＥＬ４は、論理回路ＬＧ１より出力される書き込みデータＤＩＮ、アドレスデータＡＤＲ、チップ選択信号ＣＳ、リード／ライト選択信号ＲＷを選択してメモリ部ＭＥＭ１に入力する。
一方、セレクタＳＥＬ９は、スキャンフリップフロップＳＦ９にセットされるスキャンテスト用の入力データを選択して論理回路ＬＧ２に入力する。
【００７２】
スキャンパス回路には、半導体集積回路の外部（もしくは内部）に設けられた検査装置から供給されるテスト用のデータがシリアル転送されて、各スキャンフリップフロップにセットされる。これにより、スキャンフリップフロップＳＦ１〜ＳＦ４には論理回路ＬＧ１への入力データがセットされ、スキャンフリップフロップＳＦ９には論理回路ＬＧ２への入力データがセットされる。
スキャンフリップフロップＳＦ１〜ＳＦ４にセットされる入力データに応じたた論理回路ＬＧ１の出力データは、セレクタＳＥＬ５〜ＳＥＬ８を介してスキャンフリップフロップＳＦ５〜ＳＦ８に入力され、これにラッチされる。また、スキャンフリップフロップＳＦ９にセットされる入力データに応じた論理回路ＬＧ２の出力データは、セレクタＳＥＬ９を介してスキャンフリップフロップＳＦ１１に入力され、これにラッチされる。
各スキャンフリップフロップにラッチされた論理回路の出力データは、スキャンパス回路をシリアルに転送され、半導体集積回路の外部（もしくは内部）に設けられた検査装置に取り込まれる。検査装置では、スキャンパス回路から取り込まれたデータが解析されて、半導体集積回路内の論理回路（ＬＧ１，ＬＧ２等）の欠陥の有無が検査される。
【００７３】
＜第１の動作モード（メモリ部のテストを行う動作モード）＞
第１の動作モードにおいて、セレクタＳＥＬ５〜ＳＥＬ８は、第１のデータシフト回路の前段のレジスタ（ＳＦ５〜ＳＦ８）からシフトされるテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）を選択して、その次段のレジスタ（ＳＦ５〜ＳＦ８）に入力する。
また、セレクタＳＥＬ１〜ＳＥＬ４は、第１のデータシフト回路のレジスタ（ＳＦ５〜ＳＦ８）に保持されるテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）を選択して、メモリ部ＭＥＭ１に入力する。
更に、セレクタＳＥＬ９は、メモリ部ＭＥＭ１より出力される読み出しデータＤＯＵＴを選択して、テスト出力データ生成回路１０に入力する。
【００７４】
図３は、第１のデータシフト回路および第２のデータシフト回路におけるデータシフト動作の一例を図解したタイミングチャートである。
検査回路ＢＴ１は、例えば、半導体集積回路内の図示しないクロック信号ＣＫ（図３（Ａ））に同期して、順次にテスト入力データＩＮ０，ＩＮ１，…を発生する（図３（Ｂ））。第１のデータシフト回路は、検査回路ＢＴ１より供給されるこのテスト入力データを、クロック信号ＣＫに同期して順次に初段のレジスタから後段のレジスタへシフトさせる（図３（Ｃ）〜（Ｅ））。これにより、メモリテストブロック１＿１〜１＿３の各メモリ部ＭＥＭ１には、テスト入力データＩＮ０，ＩＮ１，…が順次に入力される。
【００７５】
テスト入力データＩＮ０，ＩＮ１，…に応答してメモリ部ＭＥＭ１から読み出しデータＤＯＵＴが出力されると、各メモリテストブロックのテスト出力データ生成回路１０は、読み出しデータＤＯＵＴに応じたテスト出力データＯＵＴ０，ＯＵＴ１，…を順次に生成する。第２のデータシフト回路は、この生成されたテスト出力データを、クロック信号ＣＫに同期して順次に初段のレジスタから後段のレジスタへシフトさせる（図３（Ｆ）〜（Ｈ））。そして、終段のレジスタ（図２の例ではメモリテストブロック１＿３のスキャンフリップフロップＳＦ９）より出力されるテスト出力データが、クロック信号ＣＫに同期して検査回路ＢＴ１に順次取り込まれる（図３（Ｉ））。
【００７６】
各メモリテストブロックのテスト出力データ生成回路１０は、図示しない制御回路より入力される制御信号Ｓ３およびＳ４に従って、３種類のテスト出力データ（第１〜第３のテスト出力データ）の何れかを生成する。
【００７７】
第１のテスト出力データを生成する場合、各テスト出力データ生成回路１０のセレクタ１２は、比較回路１１の判定信号を選択して出力するように、制御信号Ｓ３によって制御される。また、各テスト出力データ生成回路１０の制御信号Ｓ４は、全て値‘１’に設定される。
これにより、第２のデータシフト回路のレジスタ（ＳＦ９）の最上位ビット（第７ビット）には、比較回路１１より出力される判定信号と、前段のレジスタから出力されるテスト出力データの最上位ビットとの論理和が入力され、この論理和がテスト出力データの最上位ビットとして次段に出力される。従って、第２のデータシフト回路の終段のレジスタ（メモリテストブロック１＿ｎのスキャンフリップフロップＳＦ９）より出力されるテスト出力データの最上位ビットは、各テスト出力データ生成回路１０において比較回路１１より出力される判定信号の全論理和と等しくなる。
また、図３に示すタイミングチャートから分かるように、前段のレジスタから出力されるテスト出力データと、比較回路１１において比較判定されるメモリ部ＭＥＭ１の読み出しデータＤＯＵＴとは、何れも同一のテスト入力データに応じて生成されるデータである。
従って、第２のデータシフト回路の終段から検査回路ＢＴ１に出力される第１のテスト出力データの最上位ビットは、同一テスト入力データに応じて各テスト出力データ生成回路１０の比較回路１１より出力される判定信号の全論理和と等しくなる。
その結果、同一のテスト入力データに対するｎ個のメモリ部ＭＥＭ１の読み出しデータＤＯＵＴが全て期待値データに一致する場合、第２のデータシフト回路の終段から出力されるテスト出力データの最上位ビットは値‘０’になる。また、ｎ個のメモリ部ＭＥＭ１の中に期待値データと一致しない読み出しデータＤＯＵＴを出力するメモリ部が１つでも含まれる場合、第２のデータシフト回路の終段から出力されるテスト出力データの最上位ビットは値‘１’になる。
【００７８】
一方、第２のテスト出力データを生成する場合、各テスト出力データ生成回路１０のセレクタ１２は、比較回路１１の判定信号を選択するように、制御信号Ｓ３によって制御される。また、ｎ個のメモリテストブロックのうち、選択された特定のメモリテストブロックに属するテスト出力データ生成回路１０の制御信号Ｓ４が値‘１’に設定され、残りのメモリテストブロックに属するテスト出力データ生成回路１０の制御信号Ｓ４が値‘０’に設定される。
これにより、この特定のメモリテストブロックを除いた他のメモリテストブロックに属するテスト出力データ生成回路１０において、ＡＮＤ回路１４の出力信号の全ビットは値‘０’になる。そのため、このメモリテストブロックに属する第２のデータシフト回路のレジスタ（ＳＦ９）には、前段のレジスタよりシフトされるテスト出力データがそのままラッチされる。
結果として、第２のデータシフト回路の終段から出力される第１のテスト出力データの最上位ビットは、特定のメモリテストブロックにおける比較回路１１の判定信号と等しくなる。すなわち、この最上位ビットは、特定のメモリテストブロックに属するメモリ部ＭＥＭ１の読み出しデータＤＯＵＴが期待値データに一致する場合に値‘０’、一致しない場合に値‘１’となる。
【００７９】
第３のテスト出力データを生成する場合、各テスト出力データ生成回路１０のセレクタ１２は、読み出しデータＤＯＵＴの最上位ビット（第７ビット）を選択するように、制御信号Ｓ３によって制御される。また、ｎ個のメモリテストブロックのうち、選択された特定のメモリテストブロックに属するテスト出力データ生成回路１０の制御信号Ｓ４が値‘１’に設定され、残りのメモリテストブロックに属するテスト出力データ生成回路１０の制御信号Ｓ４が値‘０’に設定される。
これにより、この特定のメモリテストブロックを除いた他のメモリテストブロックに属するテスト出力データ生成回路１０において、ＡＮＤ回路１４の出力信号の全ビットは値‘０’になる。そのため、このメモリテストブロックに属する第２のデータシフト回路のレジスタ（ＳＦ９）には、前段のレジスタよりシフトされるテスト出力データがそのままラッチされる。
結果として、第２のデータシフト回路の終段から出力される第１のテスト出力データは、特定のメモリテストブロックにおけるメモリ部ＭＥＭ１の読み出しデータＤＯＵＴと等しくなる。
【００８０】
以上説明したように、本実施形態に係る半導体集積回路によれば、複数のメモリ部ＭＥＭ１のテストを行う際、検査回路ＢＴ１において発生するテスト入力データが、スキャンフリップフロップを用いて形成される第１のデータシフト回路の各レジスタ（ＳＦ５〜ＳＦ８）を順にシフトされて各メモリ部に転送される。そして、このテスト入力データに応じたテスト出力データが、スキャンフリップフロップを用いて形成される第２のデータシフト回路の各レジスタ（ＳＦ９）を順にシフトされて検査回路ＢＴ１に取り込まれる。そのため、図９に示すようにテスト対象のメモリ部ごとに検査回路を設ける方式と比べて、回路規模の増大を抑制することができる。
【００８１】
また、メモリ部ＭＥＭ１に対してテスト入力データを供給する第１のデータシフト回路のレジスタ（ＳＦ５〜ＳＦ８）や、メモリ部ＭＥＭ１のテスト出力データを取り込む第２のデータシフト回路のレジスタ（ＳＦ９）は、何れもスキャンフリップフロップを有効に利用することによって各メモリ部ＭＥＭ１の近くに配置することが可能である。そのため、複数のメモリ部と共通の検査回路とを長い配線で接続しなくてはならない図１０に示す方式と比べて、配線による信号遅延を短くし、テスト速度を高速化することができる。
【００８２】
更に、本実施形態に係る半導体集積回路によれば、共通の検査回路において複数のメモリ部を高速に検査することが可能になるため、全体の回路面積の増大を抑えつつ、検査回路ＢＴ１として、多様な不良モードに対処できる検査能力の高い回路を採用することが可能になる。これにより、半導体集積回路の信頼性を向上させることができる。
【００８３】
以上、本発明の実施形態について詳しく説明したが、本発明は上記の形態のみに限定されるものではなく、種々のバリエーションを含んでいる。
【００８４】
図１の例では、テスト入力データの転送用のレジスタにスキャンフリップフロップを用いているが、図４に示すように、これを通常のフリップフロップに置き換えても良い。
図４に示す半導体集積回路は、図１に示す半導体集積回路における各メモリテストブロックにおいてセレクタＳＥＬ５〜ＳＥＬ８を削除し、換わりにフリップフロップＦ５〜Ｆ８を追加したものである。
セレクタＳＥＬ５〜ＳＥＬ８は、上述した第１のデータシフト回路における１段のレジスタに対応し、メモリテストブロック１＿１〜１＿ｎの順に縦続接続されている。そして、このデータシフト回路の初段のレジスタ（メモリテストブロック１＿１のフリップフロップＦ５〜Ｆ８）に検査回路ＢＴ１からのテスト入力データ（ＤＩＮ＿Ｔ，ＡＤＲ＿Ｔ，ＣＳ＿Ｔ，ＲＷ＿Ｔ）が入力され、終段のレジスタ（メモリテストブロック１＿ｎのフリップフロップＦ５〜Ｆ８）から検査回路ＢＴ１へテスト出力データが出力される。
図４に示す半導体集積回路においても、テスト出力データの転送についてはスキャンフリップフロップを有効に利用するため、回路規模の増大を抑える効果がある。
【００８５】
また、図１の例では、テスト出力データの転送用のレジスタにスキャンフリップフロップを用いているが、図５に示すように、これを通常のフリップフロップに置き換えても良い。
図５に示す半導体集積回路は、図１に示す半導体集積回路における各メモリテストブロックにフリップフロップＦ９およびＦ１０を追加したものである。
フリップフロップＦ９は、図１に示す半導体集積回路におけるスキャンフリップフロップＳＦ９を置き換えるフリップフロップであり、上述した第２のデータシフト回路における１段のレジスタに対応する。また、フリップフロップＦ１０は、図１に示す半導体集積回路におけるスキャンフリップフロップＳＦ１０を置き換えるフリップフロップであり、上述した第３のデータシフト回路における１段のレジスタに対応する。
図５に示す半導体集積回路においても、テスト入力データの転送についてはスキャンフリップフロップを有効に利用するため、回路規模の増大を抑える効果がある。
【００８６】
更に、上述の実施形態では、テスト出力データ生成回路１０において３種類のテスト出力データを生成する例を示しているが、本発明はこれに限らない。例えば、これらの種類のうちの一部を生成する構成としても良い。
【００８７】
図６に示すテスト出力データ生成回路１０Ａは、第１のテスト出力データのみを生成する場合の構成例を示す。
このテスト出力データ生成回路１０Ａは、図２に示すテスト出力データ生成回路１０におけるセレクタ１２、ＡＮＤ回路１３、およびＯＲ回路１４を削除し、代わりにＯＲ回路１５を設けたものである。
ＯＲ回路１５は、メモリテストブロック１＿ｉに属する第２のデータシフト回路のレジスタ（ＳＦ９）から出力される１ビットのテスト出力データＴＤｉ−１と、比較回路１１から出力される判定信号との論理和を演算し、これをメモリテストブロック１＿ｉに属する第２のデータシフト回路のレジスタ（ＳＦ９）に入力する。
この場合、第２のデータシフト回路の各レジスタ（ＳＦ９）は１ビットで良い。
【００８８】
図７に示すテスト出力データ生成回路１０Ｂは、第３のテスト出力データのみを生成する場合の構成例を示す。
このテスト出力データ生成回路１０Ｂは、図２に示す出力データ生成回路１０における比較回路１１およびセレクタ１２を削除したものである。
この場合、ＡＮＤ回路１３においては、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴの各ビットと制御信号Ｓ４との論理積がそれぞれ演算される。
【００８９】
また、図１に示す半導体集積回路では、テスト入力データごとに生成した期待値データを第３のデータシフト回路によってシフトさせ、これを各テスト出力データ生成回路１０に供給しているが、本発明はこれに限定されない。
テスト入力データに依らない一定値の期待値データを用いて各メモリ部ＭＥＭ１のテストを行うことが可能な場合は、例えば図８に示すように、各テスト出力データ生成回路１０の比較回路１１へ検査回路ＢＴ１から期待値データを直接入力しても良い。
【００９０】
上述の実施形態では、半導体集積回路の内部に検査回路を設ける例を示したが、これに限らず、半導体集積回路の外部の検査回路を用いてメモリ部のテストを行っても良い。
【００９１】
上述の実施形態では、テスト入力データの生成処理と、テスト出力データに基づく良否判定処理とを検査回路ＢＴ１において両方実行することが可能であるが、これに限らず、例えば一方の処理のみ行う回路（テスト入力データ生成回路、判定回路）を設けても良い。
【００９２】
図２に示すテスト出力データ生成回路１０において生成される第３のテスト出力データは、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴと同一値のデータであるが、本発明はこれに限定されない。第３のテスト出力データは、少なくとも読み出しデータＤＯＵＴに応じたデータであれば良く、例えば、メモリ部ＭＥＭ１の読み出しデータＤＯＵＴの各ビットを論理反転させたデータでも良い。
【００９３】
図２に示すテスト出力データ生成回路１０では、制御信号Ｓ３およびＳ４に従って、第１〜第３のテスト出力データのうち何れか１つのデータを選択的に生成可能であるが、本発明はこれに限らない。例えば、これらのデータのうちの２つもしくは３つを並列的に生成し、これをスキャンフリップフロップで形成されるレジスタによって検査回路に転送させても良い。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態に係る半導体集積回路の構成の一例を示す図である。
【図２】テスト出力データ生成回路の構成の一例を示す図である。
【図３】図１に示す半導体集積回路におけるテスト入力データおよびテスト出力データの転送動作の一例を図解したタイミングチャートである。
【図４】本発明の実施形態に係る半導体集積回路の第１の変形例を示す図である。
【図５】本発明の実施形態に係る半導体集積回路の第２の変形例を示す図である。
【図６】テスト出力データ生成回路の第１の変形例を示す図である。
【図７】テスト出力データ生成回路の第２の変形例を示す図である。
【図８】第３のデータシフト回路を省略した本実施形態の変形例を説明するための図である。
【図９】メモリ部のテスト機能を有する従来の半導体集積回路の一例を示す第１の図である。
【図１０】メモリ部のテスト機能を有する従来の半導体集積回路の一例を示す第２の図である。
【符号の説明】
【００９５】
１＿１〜１＿ｎ…メモリテストブロック、ＢＴ１…検査回路、ＳＦ１〜ＳＦ１１…スキャンフリップフロップ、ＭＥＭ１…メモリ部、ＳＥＬ１〜ＳＥＬ９…セレクタ、１０…テスト出力データ生成回路、ＬＧ１，ＬＧ２…論理回路
【図１】
2006114147.tif 000003
【図２】
2006114147.tif 000004
【図３】
2006114147.tif 000005
【図４】
2006114147.tif 000006
【図５】
2006114147.tif 000007
【図６】
2006114147.tif 000008
【図７】
2006114147.tif 000009
【図８】
2006114147.tif 000010
【図９】
2006114147.tif 000011
【図１０】
2006114147.tif 000012