(57)【要約】【課題】  本発明の課題は、メモリマクロとユーザー論理回路間の論理における遅延故障を検出可能とすることを目的とする。【解決手段】  上記課題は、メモリマクロと、入力側ユーザー論理回路からの出力とスキャンフリップフロップからの出力のいずれか一方を選択して前記メモリマクロに入力すると共に、該入力側ユーザー論理回路からの出力を該スキャンフリップフロップに取り込む入力側テスト回路と、前記メモリマクロからの出力とスキャンフリップフロップからの出力のいずれか一方を選択して出力側ユーザー論理回路に入力すると共に、該前記メモリマクロからの出力を該スキャンフリップフロップに取り込む出力側テスト回路とを有する半導体装置により達成される。【選択図】  図１
2010197149.tif 000002
【特許請求の範囲】
【請求項１】
メモリマクロと、
入力側ユーザー論理回路からの出力とスキャンフリップフロップからの出力のいずれか一方を選択して前記メモリマクロに入力すると共に、該入力側ユーザー論理回路からの出力を該スキャンフリップフロップに取り込む入力側テスト回路と、
前記メモリマクロからの出力とスキャンフリップフロップからの出力のいずれか一方を選択して出力側ユーザー論理回路に入力すると共に、該前記メモリマクロからの出力を該スキャンフリップフロップに取り込む出力側テスト回路とを有する半導体装置。
【請求項２】
前記入力側テスト回路は、更に、
前記入力側ユーザー論理回路からの出力と前記スキャンフリップフロップからの出力のいずれか一方を選択して、前記メモリマクロへ入力する第一の入力側マルチプレクサと、
前記第一の入力側マルチプレクサからの出力と反転させた該出力のいずれか一方を選択して、前記スキャンフリップフロップへ出力する第二の入力側マルチプレクサと
を有するようにした請求項１記載の半導体装置。
【請求項３】
前記入力側テスト回路は、前記メモリマクロのデータ入力用のデータ入力端子とアクセス制御用のアクセス制御端子に対応させて各々備えられ、
前記アクセス制御端子に対応する前記入力側テスト回路は、更に、
前記スキャンフリップフロップからの出力に対して論理積演算を行って前記メモリマクロへの入力をマスクする論理積回路を有し、
前記第一の入力側マルチプレクサは、前記論理積回路からの出力又は前記ユーザー論理回路からの出力のいずれかを選択して出力するようにした請求項２記載の半導体装置。
【請求項４】
前記出力側テスト回路は、更に、
前記メモリマクロからの出力と前記スキャンフリップフロップからの出力のいずれか一方を選択して、前記出力側ユーザー論理回路へ入力する第一の出力側マルチプレクサと、
前記第一の出力側マルチプレクサからの出力と反転させた該出力のいずれか一方を選択して、前記スキャンフリップフロップへ出力する第二の出力側マルチプレクサと
を有するようにした請求項１記載の半導体装置。
【請求項５】
請求項１乃至４に記載の半導体装置の試験方法であって、
前記入力側ユーザー論理回路の遷移故障を検出するためのテストパターンをスキャンシフトによりシフトインさせ、前記入力側ユーザー論理回路からの出力を選択させるように前記入力側テスト回路を制御するステップと、
遅延試験のクロックを供給するステップと、
前記メモリマクロがデータを読み出すステップと、
前記メモリマクロからの読み出したデータの出力を選択させるように前記出力側テスト回路を制御するステップと、
スキャンシフトにより読み出した前記出力側テスト回路のスキャンフリップフロップの値を期待値と比較するステップとを有する半導体装置の試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びその試験方法に関する。
【背景技術】
【０００２】
近年より、ＬＳＩ設計において、遅延故障を検出することはＬＳＩの品質を上げる上で重要な課題であり、さまざまな手法によって遅延故障の検証がなされている。
【０００３】
例えば、非同期式のＲＡＭの入出力側に組み合わせ回路が存在する構成において、スキャンパスを構成するＲＡＭの入力側に備えられたスキャンフリップフロップを出力側の組み合わせ回路のロジックテストにも用いるように構成し、遅延故障の検証を可能とすると共に面積の利用効率を改善したり、機能的メモリ素子を用いてテスト専用メモリ素子の機能を提供することによって実質的な数のテスト専用周辺メモリ素子の必要性をなくすようにしたり、或いは、ＲＡＭテストモード信号が不活性である時には、ＲＡＭに入力したデータを出力側に備えられた各出力端子に対応するスキャンフリップフロップに供給する構成とすることにより、論理回路の機能試験時には論理回路からＲＡＭ回路への出力を出力側の各スキャンフリップフロップでキャプチャすることができ、通常動作において使用されないＲＡＭを試験するためだけの回路によるチップ上の占有面積を削減できるようにした技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−７３６４１号公報
【特許文献２】特開２００４−５１８２２２号公報
【特許文献３】特開２００２−３２３５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、上記従来技術では、組み合わせ回路等の各ユーザー論理回路とＲＡＭ等のメモリマクロとは、夫々で遅延故障を検証しなければならない。つまり、遅延を検証するためのテストパターンをユーザー論理回路毎及びメモリ毎に作成することになる。
【０００６】
しかしながら、このようなテストパターンによる検証では、テストパターンの作成に工数が掛かるのみならず、各ユーザー論理回路とメモリマクロとの間の遅延を検証することができない、また、メモリマクロの出力側のユーザー論理回路に対する検証では、メモリマクロの動作の影響が考慮されないなど、ユーザー論理回路とメモリマクロとによる一連の動作において遅延故障を高い精度で検証できなかった。
【課題を解決するための手段】
【０００７】
開示の半導体装置は、メモリマクロと、入力側ユーザー論理回路からの出力とスキャンフリップフロップからの出力のいずれか一方を選択して前記メモリマクロに入力すると共に、該入力側ユーザー論理回路からの出力を該スキャンフリップフロップに取り込む入力側テスト回路と、前記メモリマクロからの出力とスキャンフリップフロップからの出力のいずれか一方を選択して出力側ユーザー論理回路に入力すると共に、該前記メモリマクロからの出力を該スキャンフリップフロップに取り込む出力側テスト回路とを有する。
【発明の効果】
【０００８】
半導体装置の遅延故障を検出するためのテストパターンの作成工数を削減できる。また、メモリマクロとユーザー論理回路間の同じ動作パスを用いて半導体装置の一連の動作において遅延故障を検証することができる。
【図面の簡単な説明】
【０００９】
【図１】ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第一実施例の回路構成の概略図である。
【図２】図１に示す半導体装置の回路構成におけるメモリマクロのデータ入力端子の遅延故障検出方法を説明するための図である。
【図３】図１に示す半導体装置の回路構成におけるメモリマクロのデータ入力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【図４】図１に示す半導体装置の回路構成におけるメモリマクロのアドレス入力端子の遅延故障検出方法を説明するための図である。
【図５】図１に示す半導体装置の回路構成におけるメモリマクロのアドレス入力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【図６】図１に示す半導体装置の回路構成におけるメモリマクロのデータ出力端子の遅延故障検出方法を説明するための図である。
【図７】図１に示す半導体装置の回路構成におけるメモリマクロのデータ出力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【図８】図１に示す半導体装置のテスト動作に要する負荷を説明するための図である。
【図９】図１に示す半導体装置の回路構成におけるメモリマクロのライトイネーブル端子の遅延故障検出方法を説明するための図である。
【図１０】図１に示す半導体装置の回路構成におけるメモリマクロのライトイネーブル端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【図１１】ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第二実施例の回路構成の概略図である。
【図１２】図１１に示す半導体装置の回路構成におけるメモリマクロのデータマスク端子の遅延故障検出方法を説明するための図である。
【図１３】図１１に示す半導体装置の回路構成におけるメモリマクロのデータマスク端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【図１４】ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第三実施例の回路構成の概略図である。
【図１５】図１４に示す半導体装置の回路構成におけるメモリマクロのチップイネーブル端子の遅延故障検出方法を説明するための図である。
【図１６】図１４に示す半導体装置の回路構成におけるメモリマクロのチップイネーブル端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１１】
図１は、ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第一実施例の回路構成の概略図である。図１中、本実施の形態を説明するために必要な構成のみが示され、他は省略される。図１において、半導体装置１は、メモリマクロ９と、ユーザー論理回路Ａ、Ｂ、Ｃ及びＤと、テスト用回路１００、２００、３００及び４００とを有する。
【００１２】
メモリマクロ９は、複数のデータ入力端子Ｄｉｎ［０］〜［ｎ］（以下、総称してデータ入力Ｄｉｎ端子）と、複数のアドレス入力端子Ａｄｒ［０］〜［ｍ］（以下、総称してアドレス入力Ａｄｒ端子）と、複数のデータ出力端子Ｄｏｕｔ［０］〜［ｎ］（以下、総称してデータ出力Ｄｏｕｔ端子）と、データ書き込み用のライトイネーブルＷＥ端子と、クロック供給を受けるＣＫ端子とを有する。
【００１３】
テスト用回路１００は各データ入力Ｄｉｎ端子に対応して設けられ、テスト用回路２００は各アドレス入力Ａｄｒ端子に対応して設けられ、そして、テスト用回路４００は各データ出力Ｄｏｕｔ端子に対応して設けられる。
【００１４】
ユーザー論理回路Ａはデータ入力Ｄｉｎ端子へと対応するテスト用回路１００を介して接続され、ユーザー論理回路Ｂはアドレス入力Ａｄｒ端子へと対応するテスト用回路２００を介して接続され、ユーザー論理回路Ｃはデータ出力Ｄｏｕｔ端子へと対応するテスト用回路４００を介して接続され、ユーザー論理回路ＤはライトイネーブルＷＥ端子へとそのテスト用回路３００を介して接続される。
【００１５】
ここで、説明を簡単にするため、テスト用回路１００は、データ入力端子Ｄｉｎ［０］に対してのみ構成がしめされるが、データ入力端子Ｄｉｎ［１］〜［ｎ］に対しても同様に構成される。テスト用回路２００及びテスト用回路４００についても同様である。
【００１６】
テスト用回路１００は、データ入力Ｄｉｎ端子をテストするために構成される回路であり、ＳＦＦ（スキャンフリップフロップ）１１と、ｍｕｘ（マルチプレクサ）１１、１２及び１３と、ＩＮＶ（インバータ）１７と、メモリＢＩＳＴ回路１９とを有する。メモリマクロ９のデータ入力Ｄｉｎ端子は、メモリマクロ９にデータを入力する端子である。
【００１７】
ＳＦＦ１１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、メモリマクロ９のテスト用の値がスキャンシフトによって入力されたり、ユーザー論理回路Ａの出力を取り込むために使用される。また、ＳＦＦ１１は、ｍｕｘ１３からの信号を入力し、ｍｕｘ１２へと出力する。
【００１８】
ｍｕｘ１１は、選択信号Ｓ１１に応じて、ＳＦＦ１１又はメモリＢＩＳＴ１９のいずれかによるメモリテスト用の入力又は動作させたユーザー論理回路Ａからの入力の一方を選択して、メモリマクロ９のデータ入力Ｄｉｎ端子へ出力する。ｍｕｘ１２は、選択信号Ｓ１２に応じて、ＳＦＦ１１からの入力又はメモリＢＩＳＴ回路１９からの入力の一方を選択して、ｍｕｘ１１へ出力する。ｍｕｘ１３は、選択信号Ｓ１３に応じて、ｍｕｘ１１からの入力又はＩＮＶ１７によってｍｕｘ１１からの出力を反転させた入力の一方を選択して、ＳＦＦ１１へ出力する。ＩＮＶ１７は、ｍｕｘ１１からの出力を反転させてｍｕｘ１３に入力する。
【００１９】
テスト用回路２００は、アドレス入力Ａｄｒ端子をテストするために構成される回路であり、ＳＦＦ２１と、ｍｕｘ２１、２２及び２３と、ＩＮＶ２７と、ＡＮＤ２８と、メモリＢＩＳＴ回路２９とを有する。メモリマクロ９のアドレス入力Ａｄｒ端子は、メモリマクロ９に入力されたデータを書き込むためのアドレスを入力する端子である。
【００２０】
ＳＦＦ２１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、メモリマクロ９のテスト用の値がスキャンシフトによって入力されたり、ユーザー論理回路Ｂの出力を取り込むために使用される。また、ＳＦＦ２１は、ｍｕｘ２３からの信号を入力し、ＡＮＤ２８を介してｍｕｘ２２へと出力する。
【００２１】
ｍｕｘ２１は、選択信号Ｓ２１に応じて、ＳＦＦ２１又はメモリＢＩＳＴ２９のいずれかによるメモリテスト用の入力又は動作させたユーザー論理回路Ｂからの入力の一方を選択して、メモリマクロ９のアドレス入力Ａｄｒ端子へ出力する。ｍｕｘ２２は、選択信号Ｓ２２に応じて、ＳＦＦ２１からの入力又はメモリＢＩＳＴ回路２９からの入力の一方を選択して、ｍｕｘ２１へ出力する。ｍｕｘ２３は、選択信号Ｓ２３に応じて、ｍｕｘ２１からの入力又はＩＮＶ２７によってからの出力を反転させた入力の一方を選択して、ＳＦＦ２１へ出力する。
【００２２】
ＩＮＶ２７は、ｍｕｘ２１からの出力を反転させてｍｕｘ２３に入力する。ＡＮＤ２８は、アドレスを固定するためのアドレスマスクＡＭ信号とＳＦＦ２１からの信号との論理積をｍｕｘ２２へ出力する。
【００２３】
テスト用回路３００は、ライトイネーブルＷＥ端子をテストするために構成される回路であり、ＳＦＦ３１と、ｍｕｘ３１、３２及び３３と、ＩＮＶ３７と、ＡＮＤ３８と、メモリＢＩＳＴ回路３９とを有する。メモリマクロ９のライトイネーブルＷＥ端子は、メモリマクロ９へのデータの書き込みを制御する端子である。
【００２４】
ＳＦＦ３１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、メモリマクロ９のテスト用の値がスキャンシフトによって入力されたり、ユーザー論理回路Ｄの出力を取り込むために使用される。また、ＳＦＦ３１は、ｍｕｘ３３からの信号を入力し、ＡＮＤ３８を介してｍｕｘ３２へと出力する。
【００２５】
ｍｕｘ３１は、選択信号Ｓ３１に応じて、ＳＦＦ３１又はメモリＢＩＳＴ３９のいずれかによるメモリテスト用の入力又は動作させたユーザー論理回路Ｄからの入力の一方を選択して、メモリマクロ９のライトイネーブルＷＥ端子へ出力する。ｍｕｘ３２は、選択信号Ｓ３２に応じて、ＳＦＦ３１からの入力又はメモリＢＩＳＴ回路３９からの入力の一方を選択して、ｍｕｘ３１へ出力する。ｍｕｘ３３は、選択信号Ｓ３３に応じて、ｍｕｘ３１からの入力又はＩＮＶ３７によってｍｕｘ３１からの出力を反転させた入力の一方を選択して、ＳＦＦ３１へ出力する。
【００２６】
ＩＮＶ３７は、ｍｕｘ３１からの出力を反転させてｍｕｘ３３に入力する。ＡＮＤ３８は、アドレスを固定するためのアドレスマスクＡＭ信号とＳＦＦ３１からの信号との論理積をｍｕｘ３２へ出力する。
【００２７】
テスト用回路４００は、データ出力Ｄｏｕｔ端子をテストするために構成される回路であり、ＳＦＦ４１と、ＳＦＦ４２と、ｍｕｘ４１及び４２と、ＩＮＶ４７とを有する。メモリマクロ９のデータ出力Ｄｏｕｔ端子は、メモリマクロ９からデータを出力する端子である。
【００２８】
ＳＦＦ４１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、ユーザー論理回Ｃの出力を取り込むために使用される。ＳＦＦ４２は、テスト用のスキャンチェーンでシフトレジスタとして使用され、ユーザー論理回路Ｃのテスト用の値がスキャンシフトによって入力されたり、メモリマクロ９からの出力を取り込むために使用される。また、ＳＦＦ４２は、ｍｕｘ４２からの信号を入力し、ｍｕｘ４１へと出力する。
【００２９】
ｍｕｘ４１は、選択信号Ｓ４１に応じて、ＳＦＦ４２からのユーザー論理回路Ｃのテスト用の入力又はメモリマクロ９のデータ出力端子からの入力の一方を選択して、ユーザー論理回路Ｃへと出力する。ｍｕｘ４２は、選択信号Ｓ４２に応じて、ｍｕｘ４１からの入力又はＩＮＶ４７によってｍｕｘ４１からの出力を反転させた入力の一方を選択して、ＳＦＦ４２へ出力する。
【００３０】
このような構成を持つ半導体装置１では、ＳＦＦ１１、ＳＦＦ２１、ＳＦＦ３１、ＳＦＦ４１、ＳＦＦ４２が、スキャンチェーンを形成しシフトレジスタとして使用される。テスターがテストパターンをスキャンシフトでシフトインし、半導体装置１を動作させることによって、ＳＦＦ４１で取り込まれた（キャプチャされた）値と期待値、ＳＦＦ４２で取り込まれた（キャプチャされた）値と期待値とを比較することによって、遅延故障の検証を行なう。また、テスターが、選択信号Ｓ１１からＳ１３、Ｓ２１からＳ２３、アドレスマスクＡＭ信号、選択信号Ｓ３１からＳ３３、ライトイネーブルマスクＷＭ信号、及び選択信号Ｓ４１及びＳ４２を制御する。
【００３１】
このような第一の回路構成における、データ入力Ｄｉｎ端子、アドレス入力Ａｄｒ端子、データ出力Ｄｏｕｔ端子、ライトイネーブルＷＥ端子の遅延故障の検出方法について説明する。
【００３２】
テスターによって遅延故障を検出するために、半導体装置１は、テストボードに搭載されテスターヘッドと電気的に接続され、テスターと信号線などで接続されるテスターヘッドを介して、テスターからの選択信号によって動作し、印加されたテスト信号に応じた応答信号をテスターへ通知する。テスターは予めテストパターン生成プログラムによって作成されたテストパターンと期待値とを用いて、半導体装置１にテストパターンを印加し、各種選択信号によってテスト動作を制御し、半導体装置１から得られた値と期待値とを比較して遅延故障を検出する。テストパターン生成プログラムは、ＣＰＵ、メモリ、補助記憶装置、入出力ユニット、表示ユニットなどを有するコンピュータ装置で動作する、半導体装置のテストパターン及び期待値を生成するＣＰＵによって実行可能なプログラムである。
【００３３】
以下の説明において、遅延故障を検出するためのテストパターンによる回路の動作をＳｔｅｐで示し説明する。先ず、ユーザー論理回路Ａの遅延による影響を考慮したメモリマクロ９のデータ入力Ｄｉｎ端子の遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図２及び図３で説明する。
【００３４】
図２は、図１に示す半導体装置の回路構成におけるメモリマクロのデータ入力端子の遅延故障検出方法を説明するための図である。図２において、前処理として、テストパターン生成プログラム９０によって、ユーザー論理回路Ａの遷移故障をＳＦＦ１１で検出するためのテストパターン及び期待値を生成する。メモリマクロ９のアドレスは任意の値（例えば、「０」番地）に固定される。
【００３５】
テスター９５は、テストパターン、選択信号Ｓ１１からＳ４２、クロック信号などを供給するため、また半導体装置１から出力データを取得するために、テスターヘッドを介して半導体装置１に設けられた所定の端子に接続される。テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、データ入力Ｄｉｎ端子に掛かる遅延故障検出処理を実行する。
【００３６】
Ｓｔｅｐ１において、テスター９５は、ユーザー論理回路Ａの遷移故障をＳＦＦ１１で検出するテストパターンをスキャンシフトでシフトインする。このパターンでは、データを書き込むメモリマクロ９上のアドレスを固定する。このとき、ＳＦＦ３１には１をシフトインする。
【００３７】
Ｓｔｅｐ２において、テスター９５は、ユーザー論理回路Ａを含むロジック部とメモリマクロ９及びテスト用回路１００から４００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１を高速動作させ、ユーザー論理回路Ａの遷移故障の影響をＳＦＦ１１及びメモリマクロ９まで伝播させる。このとき、メモリマクロ９ではＳｔｅｐ１で設定したアドレスにユーザー論理回路Ａの遅延故障の影響を取り込む。
【００３８】
Ｓｔｅｐ３において、テスター９５は、Ｓｔｅｐ１で設定したアドレスからデータを読み出す。Ｓｔｅｐ４において、テスター９５は、ＳＦＦ４２でメモリマクロ９から出力されたデータをキャプチャする。そして、Ｓｔｅｐ５において、スキャンシフトにより値を読み出してＳＦＦ４２の値を期待値と比較し遅延故障を検出する。Ｓｔｅｐ３及びＳｔｅｐ４では、選択信号Ｓ１２によってメモリＢＩＳＴ回路１９などの回路を使用してもよい。
【００３９】
このように、ユーザー論理回路Ａの遅延故障の影響がメモリマクロ９に取り込まれるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【００４０】
図３は、図１に示す半導体装置の回路構成におけるメモリマクロのデータ入力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。テストパターンの動作を説明するための各表は、テストパターンの各ステップに対応させて、データ入力、アドレス入力、ライトイネーブル、データマスク、チップイネーブル、メモリ内部、データ出力、キャプチャＦＦなどの項目で構成される。
【００４１】
データ入力の項目では、ｍｕｘ１１、１２及び１３の制御端子の状態と、データ入力用のメモリ端子の状態とが示される。ｍｕｘ１１、１２及び１３の制御端子の状態は、対応する選択信号Ｓ１１、Ｓ１２及びＳ１３の値で示される。また、データ入力用のメモリ端子の状態は、データ入力Ｄｉｎ端子の値で示される。
【００４２】
アドレス入力の項目では、ｍｕｘ２１、２２、２３及びＡＮＤ２８の制御端子の状態と、アドレス入力用のメモリ端子の状態とが示される。ｍｕｘ２１、２２、２３及びＡＮＤ２８の制御端子の状態は、対応する選択信号Ｓ２１、Ｓ２２、２３及びアドレスマスクＡＭ信号の値で示される。また、アドレス入力用のメモリ端子の状態は、アドレス入力Ａｄｒ端子の値で示される。
【００４３】
ライトイネーブルの項目では、ｍｕｘ３１、３２、３３及びＡＮＤ３８の制御端子の状態と、ライトイネーブル用のメモリ端子の状態とが示される。ｍｕｘ３１、３２、３３及びＡＮＤ３８の制御端子の状態は、対応する選択信号Ｓ３１、Ｓ３２、Ｓ３３及びライトイネーブルマスクＷＭ信号の値で示される。また、ライトイネーブル用のメモリ端子の状態は、ライトイネーブルＷＥ端子の値で示される。
【００４４】
データマスク及びチップイネーブルの項目については、半導体装置が各端子を持つメモリマクロを備えた構成にて後述されるため、ここではその説明を省略する。
【００４５】
メモリ内部の項目では、特定のアドレスの状態を示す。
【００４６】
データ出力の項目では、ｍｕｘ４１及び４２の制御端子の状態と、データ出力用のメモリ端子の状態とが示される。ｍｕｘ４１及び４２の制御端子の状態は、対応する選択信号Ｓ４１及びＳ４２の値で示される。また、データ出力用のメモリ端子の状態は、データ出力端子Ｄｏｕｔの値で示される。
【００４７】
キャプチャＦＦの項目では、スキャンチェーンのうちメモリマクロ９の出力側の、テスター９５によって期待値と比較されるＳＦＦ４２の状態が示される。
【００４８】
各表は、以下のことを前提とする。
・「Ｘ」は「０」でも「１」でもよい信号値（don’t care）を示す。
・特定のアドレスとは、Ｓｔｅｐ２でデータをキャプチャした際の試験対象のメモリのアドレスを示す。
・テストパターンに特に説明がない場合には、表中の値は、クロック印加前の状態を示す。
・表中の（）内の値は、各ステップのクロック印加後にその値になることを示す。
・表中で「０／１」は回路が正常な状態では「０」となるが、故障が存在する状態では「１」となることを示す。逆に「１／０」は回路が正常な状態では「１」となるが、故障が存在する状態では「０」となることを示す。
【００４９】
アドレス入力Ａｄｒ端子以外の他の各端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表も同様である。各表において、メモリマクロ９に備えられていない端子の項目については斜線で示される。
【００５０】
図３（Ａ）に示す表では、メモリマクロ９のデータ入力Ｄｉｎ端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のデータ入力Ｄｉｎ端子へのデータを「０」から「１」へと変化させた場合において、ユーザー論理回路Ａの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。
【００５１】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力の項目における選択信号Ｓ１１を「０」に制御し、ライトイネーブルの項目における選択信号Ｓ３１からＳ３３及びライトイネーブルマスクＷＭの全て「１」に制御することによって、メモリマクロ９のデータ入力Ｄｉｎ端子にデータが取り込まれてユーザー論理回路Ａの影響がメモリマクロ９に伝播される。また、選択信号Ｓ１３を「１」に制御することによって、ユーザー論理回路Ａの影響がＳＦＦ１１に伝播される。従って、Ｓｔｅｐ２において、データ入力の項目におけるメモリマクロ９のデータ入力Ｄｉｎ端子の状態が「０」から「１」へと変化し、メモリ内部の項目における特定のアドレスの状態は、ユーザー論理回路Ａからメモリマクロ９の経路で遅延がなく正常であれば「１」を示し、遅延があれば「０」を示す。
【００５２】
ここで、アドレス入力の項目における選択信号Ｓ２１及びＳ２２を「１」に制御し、かつ、アドレスマスクＡＭ信号を「０」に制御して、メモリマクロ９のアドレス入力Ａｄｒ端子を全て「０」に設定しておくことによって、特定のアドレスを「０」番地としておくことができる。
【００５３】
Ｓｔｅｐ３及びＳｔｅｐ４において、特定のアドレスからデータを読み出すために、ライトイネーブルの項目におけるライトイネーブルマスクＷＭを「０」にする。Ｓｔｅｐ３では、メモリマクロ９内で特定アドレス（この場合、「０」番地）からデータが読み出され、Ｓｔｅｐ４において、データ出力の項目における選択信号Ｓ４１を「０」に制御し、かつ、選択信号Ｓ４２を「１」に制御することによって、メモリマクロ９からの出力データがＳＦＦ４２へと取り込まれる。
【００５４】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４２は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【００５５】
図３（Ｂ）に示す表では、メモリマクロ９のデータ入力端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のデータ入力Ｄｉｎ端子へのデータを「１」から「０」へと変化させた場合において、ユーザー論理回路Ａの影響が考慮されるようにしたテストパターンの動作例を示す。
【００５６】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力の項目における選択信号Ｓ１１を「０」に制御し、ライトイネーブルの項目における選択信号Ｓ３１からＳ３３及びライトイネーブルマスクＷＭの全て「１」に制御することによって、メモリマクロ９のデータ入力Ｄｉｎ端子にデータが取り込まれユーザー論理回路Ａの影響がメモリマクロ９に伝播される。また、選択信号Ｓ１３を「１」に制御することによって、ユーザー論理回路Ａの影響がＳＦＦ１１に伝播される。従って、Ｓｔｅｐ２において、データ入力の項目におけるメモリマクロ９のデータ入力Ｄｉｎ端子の状態が「１」から「０」へと変化し、メモリ内部の項目における特定のアドレスの状態は、ユーザー論理回路Ａからメモリマクロ９の経路で遅延がなく正常であれば「０」を示し、遅延があれば「１」を示す。
【００５７】
ここで、アドレス入力の項目における選択信号Ｓ２１及びＳ２２を「１」に制御し、かつ、アドレスマスクＡＭ信号を「０」に制御して、メモリマクロ９のアドレス入力Ａｄｒ端子を全て「０」に設定しておくことによって、特定のアドレスを「０」番地としておくことができる。
【００５８】
Ｓｔｅｐ３及びＳｔｅｐ４において、特定のアドレスからデータを読み出すために、ライトイネーブルの項目におけるライトイネーブルマスクＷＭ信号を「０」にする。Ｓｔｅｐ３では、メモリマクロ９内で特定アドレス（この場合、「０」番地）からデータが読み出され、Ｓｔｅｐ４において、データ出力における選択信号Ｓ４１を「０」に制御し、かつ、選択信号Ｓ４２を「１」に制御することによって、メモリマクロ９からの出力データがＳＦＦ４２へと取り込まれる。
【００５９】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４２は、正常な場合は「０」を示し、遅延故障があった場合は「１」を示す。
【００６０】
次に、ユーザー論理回路Ｂの遅延による影響を考慮したメモリマクロ９のアドレス入力Ａｄｒ端子の遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図４及び図５で説明する。
【００６１】
図４は、図１に示す半導体装置の回路構成におけるメモリマクロのアドレス入力端子の遅延故障検出方法を説明するための図である。図４において、前処理として、テストパターン生成プログラム９０によって、ユーザー論理回路Ｂの遷移故障をＳＦＦ２１で検出するためのテストパターン及び期待値を生成する。ＳＦＦ１１は自分の値を反転させる構成とする。
【００６２】
テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、アドレス入力Ａｄｒ端子に掛かる遅延故障検出処理を実行する。
【００６３】
Ｓｔｅｐ０において、テスター９５は、初期化処理として、メモリＢＩＳＴ回路２９を動作させ、すべてのメモリマクロ９上のアドレスに同じ値（例えば、「０」）を書き込む。そして、Ｓｔｅｐ１において、スキャンシフトにより、ユーザー論理回路Ｂの遷移故障をＳＦＦ２１で検証するためのテストパターンをセットする。このスキャンシフトの際、ＳＦＦ１１に「０」を入れておく。
【００６４】
Ｓｔｅｐ２において、テスター９５は、ユーザー論理回路Ｂを含むロジック部とメモリマクロ９及びテスト用回路１００から４００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１を高速動作させ、ユーザー論理回路Ｂの遷移故障の影響をＳＦＦ２１及びメモリマクロ９まで伝播させる。このとき、Ｃａｐｔｕｒｅクロックが印加された後のメモリマクロ９には、ＳＦＦ２１が示すメモリマクロ９の特定のアドレスにＳＦＦ１１の信号遷移の結果が取り込まれた状態となる。ＳＦＦ１１の信号遷移は、テスト用回路１００のＩＮＶ１７によって、Ｓｔｅｐ１で設定された入力データ「０」が反転し「１」となることによる。ここで、全ビット１のアドレスが存在しない場合には複数のパターンに分けてもよい。
【００６５】
Ｓｔｅｐ３において、テスター９５は、ＳＦＦ２１の値でセットされたメモリアドレスのデータを読み出す。Ｓｔｅｐ４において、テスター９５は、ＳＦＦ４２でメモリマクロ９から読み出されたデータの値をキャプチャする。そして、Ｓｔｅｐ５において、スキャンシフトにより値を読み出してＳＦＦ４２の値を期待値と比較し遅延故障を検出する。ここでの期待値は、全てのデータ信号が「１」を示す。
【００６６】
このように、ユーザー論理回路Ｂの遅延故障の影響がメモリマクロ９に取り込まれるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【００６７】
図５は、図１に示す半導体装置の回路構成におけるメモリマクロのアドレス入力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。図５中に示されるテストパターンの動作を説明するための各表は、図３に示す表と同様の項目で構成され、また、表中の表現も同様の前提に基づくため、それら説明を省略する。
【００６８】
図５（Ａ）に示す表では、メモリマクロ９のアドレス入力Ａｄｒ端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のアドレス入力Ａｄｒ端子へのデータを「０」から「１」へと変化させた場合において、ユーザー論理回路Ｂの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。
【００６９】
Ｓｔｅｐ０において、アドレス入力の項目における選択信号Ｓ２１を「１」及び選択信号Ｓ２２を「０」に制御して、メモリＢＩＳＴ回路２９を動作させて、メモリＢＩＳＴ回路２９から出力されたアドレスがメモリマクロ９のアドレス入力Ａｄｒ端子に設定される。一方、データ入力の項目における選択信号Ｓ１１及びＳ１２を「１」及び選択信号Ｓ１３を「０」に制御しておくことで、Ｓｔｅｐ１にてＳＦＦ１１に設定される「０」がＳｔｅｐ２でＩＮＶ１９によって「１」に反転させるようにする。また、ライトイネーブルの項目における選択信号Ｓ３１を「１」及び選択信号Ｓ３２を「０」に制御して、メモリＢＩＳＴ回路３９からの出力を有効にし、「１」のライトイネーブル信号ＷＥをメモリ端子ＷＥに入力させる。
【００７０】
Ｓｔｅｐ１（シフト後）において、アドレス入力の項目における選択信号Ｓ２１を「０」及び選択信号Ｓ２３を「１」に制御することによって、Ｓｔｅｐ２にてＳＦＦ２１でユーザー論理回路Ｂの影響を取得できるようにする。Ｓｔｅｐ２では、アドレス入力の項目における選択信号Ｓ２１を「１」に制御することによって、Ｓｔｅｐ１のスキャンシフトによってＳＦＦ２１に設定された特定のアドレスがメモリマクロ９のアドレス入力Ａｄｒ端子に入力されることにより、例えば、全ビット「０」から全ビット「１」へと変化させる。
【００７１】
一方、Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、ライトイネーブルの項目における選択信号Ｓ３１からＳ３３及びライトイネーブルマスクＷＭの全て「１」に制御することによって、メモリマクロ９のデータ入力Ｄｉｎ端子にデータが、ＳＦＦ２１の示す特定のアドレスに取り込まれる。従って、Ｓｔｅｐ２にて、特定のアドレス（この場合、「０」番地）にデータが遅延故障なく書き込まれている場合には「１」が格納され、遅延故障があった場合には「０」が格納される。
【００７２】
Ｓｔｅｐ３及びＳｔｅｐ４において、ライトイネーブルの項目におけるライトイネーブルマスクＷＭ信号を「０」に制御して、特定のアドレスからデータを読み出す。ここで、Ｓｔｅｐ３にて、アドレスマスクＡＭ信号を「１」に制御して、メモリアドレスを固定しておく。このようにして、Ｓｔｅｐ３では、メモリマクロ９内で特定のアドレス（この場合、「０」番地）からデータが読み出され、Ｓｔｅｐ４において、データ出力における選択信号Ｓ４１を「０」に制御し、かつ、選択信号Ｓ４２を「１」に制御することによって、メモリマクロ９からの出力データがＳＦＦ４２へと取り込まれる。
【００７３】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４２は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【００７４】
このような制御によって、例えば、アドレス入力Ａｄｒ端子の全ビットを「０」から「１」へと立ち上げた場合の遅延故障を、ユーザー論理回路Ｂの影響を考慮して検証することができる。
【００７５】
図５（Ｂ）に示す表では、メモリマクロ９のアドレス入力Ａｄｒ端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のアドレス入力Ａｄｒ端子へのデータを「１」から「０」へと変化させた場合において、ユーザー論理回路Ｂの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。図５（Ａ）に示す表との違いのみを説明し、他動作は同様であるので説明を省略する。
【００７６】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、ＳＦＦ２１に設定された特定のアドレスがメモリマクロ９のアドレス入力Ａｄｒ端子に入力されることにより、例えば、全ビット「０」から全ビット「１」へと変化させる。ここで、Ｓｔｅｐ２にて、特定のアドレス（この場合、全ビット「１」で指定されるメモリアドレス）にデータが遅延故障なく書き込まれている場合には「１」が格納され、遅延故障があった場合には「０」が格納される。従って、Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４２は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【００７７】
このような制御によって、例えば、アドレス入力Ａｄｒ端子の全ビットを「１」から「０」へと立ち上げた場合の遅延故障を、ユーザー論理回路Ｂの影響を考慮して検証することができる。
【００７８】
次に、ユーザー論理回路Ｃの遅延故障の検証の際にメモリマクロ９のデータ出力Ｄｏｕｔ端子の遅延の影響を考慮した遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図６及び図７で説明する。
【００７９】
図６は、図１に示す半導体装置の回路構成におけるメモリマクロのデータ出力端子の遅延故障検出方法を説明するための図である。図６において、前処理として、テストパターン生成プログラム９０によって、ＳＦＦ４２からＳＦＦ４１の間の遷移故障を検出するテストパターン及び期待値を生成する。ＳＦＦ４２は自分の値を反転させる構成とする。
【００８０】
テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、データ入力Ｄｉｎ端子に掛かる遅延故障検出処理を実行する。
【００８１】
Ｓｔｅｐ１において、テスター９５は、生成済みのテストパターンのうちＳＦＦ４２にスキャンシフト動作で設定されるテストパターンをＳＦＦ１１に設定する。Ｓｔｅｐ２において、テスター９５は、アドレス０にＳＦＦ１１と同じ値を記憶させ、アドレス１にＳＦＦ１１の反転値を記憶させる。そして、Ｓｔｅｐ３において、ＳＦＦ４２の値と同じ値（アドレス０の値）が出力されるように、メモリマクロ９の値を読み出しておく。また、アドレス０及びアドレス１の夫々の値を記憶させてアドレス０の値を読み出す方法として、例えば、Ｓｔｅｐ１〜３として、メモリＢＩＳＴ回路１９を動作させてもよい。
【００８２】
Ｓｔｅｐ４において、ユーザー論理回路Ｃの検出に設定されるテストパターンをスキャンシフト動作で設定する。
【００８３】
Ｓｔｅｐ５において、テスター９５は、ユーザー論理回路Ｃを含むロジック部とメモリマクロ９及びテスト用回路１００から４００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１を高速動作させ、メモリマクロ９のデータ出力Ｄｏｕｔ端子からＳＦＦ４２を動作させるのと同じ信号（メモリマクロ９のアドレス１の値）を出力させて、ＳＦＦ４１でキャプチャする。
【００８４】
Ｓｔｅｐ６において、テスター９５は、スキャンシフトにより値を読み出して、ＳＦＦ４１の期待値と比較し遅延故障を検出する。
【００８５】
このように、ユーザー論理回路Ｃの遅延故障の検証の際にメモリマクロ９のデータ出力Ｄｏｕｔ端子の遅延の影響を考慮することができるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【００８６】
図７は、図１に示す半導体装置の回路構成におけるメモリマクロのデータ出力端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。テストパターンの動作を説明するための各表は、図３に示す表と同様の項目で構成され、また、表中の表現も同様の前提に基づくため、それら説明を省略する。
【００８７】
図７（Ａ）に示す表では、メモリマクロのデータ出力Ｄｏｕｔ端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のデータ出力Ｄｏｕｔ端子から出力されるデータを「０」から「１」へと変化させた場合におけるテストパターンの動作例を示す。
【００８８】
Ｓｔｅｐ１（設定後）及びＳｔｅｐ２において、データ入力項目における選択信号Ｓ１１及びＳ１２を「１」に、かつ選択信号Ｓ１３を「０」に制御し、ライトイネーブルの項目における選択信号Ｓ３１からＳ３３及びライトイネーブルマスクＷＭ信号の全てを「１」に制御することによって、スキャンシフト動作後にＳＦＦ４２と同一の値が設定されたＳＦＦ１１の値と、選択信号Ｓ１３を「０」に制御することによるＳＦＦ１１の反転値とが順次メモリマクロ９のデータ入力Ｄｉｎ端子に取り込まれる。この際、アドレス入力項目における選択信号Ｓ２１、Ｓ２２及びアドレスマスクＡＭ信号を「１」に、かつ選択信号Ｓ２３を「０」に制御しておくことによって、例えば、ＳＦＦ４２と同一値がアドレス０に格納され、その反転値がアドレス１に格納される。
【００８９】
よって、Ｓｔｅｐ３において、アドレス０には値「０」及びアドレス１には値「１」が格納された状態から、アドレス０の値「０」を出力されるようにメモリマクロ９の値を読み出しておく。Ｓｔｅｐ４（シフト後）において、スキャンシフト動作によりユーザー論理回路Ｃの遅延故障の検出パターンを設定する。Ｓｔｅｐ５において、データ出力項目における選択信号Ｓ４１及びＳ４２を「０」に制御することによって、ＳＦＦ４２を動作させるのと同様の動作をメモリマクロ９のデータ出力Ｄｏｕｔ端子から行なうようにすると共に、その値をＳＦＦ４１に取り込む。
【００９０】
Ｓｔｅｐ６では、テスター９５がＳＦＦ４１の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４１は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【００９１】
このような制御によって、データ出力Ｄｏｕｔ端子の立ち上がりにおける遅延故障を、ＳＦＦ４２からＳＦＦ４１の間の遅延故障を検出するテストパターンを用いて、メモリマクロ９のデータ出力端子Ｄｏｕｔ［ｎ：０］からユーザー論理回路Ｃまでの経路を含めたＳＦＦ４１までの遅延を検証することができる。
【００９２】
図７（Ｂ）に示す表では、メモリマクロ９のデータ出力端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のデータ出力端子から出力されるデータを「１」から「０」へと変化させた場合におけるテストパターンの動作例を示す。図７（Ａ）は、ＳＦＦ４２にスキャンシフトで設定される値が「０」である場合の動作を示す表であったのに対し、図７（Ｂ）は、ＳＦＦ４２にスキャンシフトで設定される値が「１」である場合の動作を示す表であり、動作は同様になされるのでその説明を省略する。ただし、Ｓｔｅｐ５にて、テスター９５がＳＦＦ４１の値と期待値とを比較して遅延故障を検出する際には、ＳＦＦ４１は、正常な場合は「０」を示し、遅延故障があった場合は「１」を示す。
【００９３】
このような制御によって、データ出力端子の立ち下がりにおける遅延故障を、ＳＦＦ４２からＳＦＦ４１の間の遅延故障を検出するテストパターンを用いて、メモリマクロ９のデータ出力Ｄｏｕｔ端子からユーザー論理回路Ｃまでの経路を含めたＳＦＦ４１までの遅延を検証することができる。
【００９４】
特に、このデータ出力端子の遅延故障の検出では、図８に示すようにテストパターンの作成を少ない工数で実現することができる。図８は、図１に示す半導体装置のテスト動作に要する負荷を説明するための図である。図８において、処理順序を示すＳｔｅｐ１からＳｔｅｐ6毎に、テスト時の回路動作の概要と、対象とする遅延故障を検証するためのテストパターン作成処理の有無と、テストに要する負荷とを示している。
【００９５】
アドレス０に「０」を書き込むＳｔｅｐ１と、アドレス１に「１」を書き込むＳｔｅｐ２とで、テストパターンを必要とするがユーザー論理回路Ｃの遅延故障を検出するパターンのうち、ＳＦＦ４１に設定する信号値を用いればよい。また、アドレス０から「０」を読み出すＳｔｅｐ３は、テストパターンの作成を必要としない。Ｓｔｅｐ４およびＳｔｅｐ６はシフト動作を行うだけなので、実際は、Ｓｔｅｐ５のテストパターンだけを作成する必要がある。
【００９６】
従来技術では、Ｓｔｅｐ１からＳｔｅｐ３およびＳｔｅｐ５において、ユーザー論理回路Ａ、Ｂ、Ｃ及びＤの動作を考慮したテストパターンを作成しなければならないのに対して、図１の半導体装置１の動作ロジックをテストする場合には、Ｓｔｅｐ５で必要とされるテストパターンのみでよく、かつ、ユーザー論理回路Ｃの動作のみを考慮したテストパターンを作成するだけである。Ｓｔｅｐ１〜Ｓｔｅｐ３では、上述したように、選択信号Ｓ１１〜Ｓ１３、Ｓ２１〜Ｓ２３、Ｓ３１〜Ｓ３３、Ｓ４１〜Ｓ４４に特定の信号をセットするのみである。図８はデータ出力端子の例であるが、メモリマクロのその他の端子、データ入力端子、アドレス入力端子、ライトイネーブル端子、データマスク端子およびチップイネーブル端子の遅延故障についても、同様に対象とする遅延故障のテストに要する負荷を削減することができる。
【００９７】
次に、ユーザー論理回路Ｄの遅延による影響を考慮したメモリマクロ９のライトイネーブルＷＥ端子の遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図９及び図１０で説明する。
【００９８】
図９は、図１に示す半導体装置の回路構成におけるメモリマクロのライトイネーブル端子の遅延故障検出方法を説明するための図である。図９において、前処理として、テストパターン生成プログラム９０によって、ユーザー論理回路Ｄの遷移故障をＳＦＦ３１で検出するためのテストパターン及び期待値を生成する。
【００９９】
テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、ライトイネーブルＷＥ端子に掛かる遅延故障検出処理を実行する。
【０１００】
Ｓｔｅｐ１において、テスター９５は、スキャンシフトにより前処理で生成済みの“ユーザー論理回路Ｄの遷移故障をＳＦＦ３１で検出するためのテストパターン”をセットする。このスキャンシフトの際、ＳＦＦ１１に「０」を入れておく。
【０１０１】
Ｓｔｅｐ２において、テスター９５は、ユーザー論理回路Ｄを含むロジック部とメモリマクロ９及びテスト用回路１００から４００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１を高速動作させ、ユーザー論理回路Ｄの遷移故障の影響をＳＦＦ３１及びメモリマクロ９のライトイネーブルＷＥ端子まで伝播させる。このとき同時に、メモリマクロ９にはＳｔｅｐ２で書き込んだメモリアドレスにユーザー論理回路Ｄの遅延故障の影響が書き込まれる。
【０１０２】
Ｓｔｅｐ３において、テスター９５は、ＳＦＦ２１の値でセットされたメモリアドレスのデータを読み出す。Ｓｔｅｐ４において、テスター９５は、ＳＦＦ４２でメモリマクロ９から読み出されたデータの値をキャプチャする。そして、Ｓｔｅｐ５において、スキャンシフトにより値を読み出してＳＦＦ４２の値を期待値と比較し遅延故障を検出する。
【０１０３】
このように、ユーザー論理回路Ｄの遅延故障の影響がメモリマクロ９に取り込まれるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【０１０４】
図１０は、図１に示す半導体装置の回路構成におけるメモリマクロのライトイネーブルＷＥ端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。図１０中に示されるテストパターンの動作を説明するための各表は、図３に示す表と同様の項目で構成され、また、表中の表現も同様の前提に基づくため、それら説明を省略する。
【０１０５】
図１０（Ａ）に示す表では、メモリマクロ９のライトイネーブルＷＥ端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のライトイネーブルＷＥ端子への信号を「０」から「１」へと変化させた場合において、ユーザー論理回路Ｄの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。
【０１０６】
Ｓｔｅｐ１（シフト後）からＳｔｅｐ４において、アドレス入力の項目における選択信号Ｓ２１〜Ｓ２３及びアドレスマスクＡＭ信号をすべて「１」に制御することによって、ＳＦＦ２１にシフトインされたアドレスを特定のアドレスとして固定して、そのメモリアドレスにのみデータの書き込み及び読み出しがなされるようにする。ここで、アドレスマスクＡＭ信号を「０」に制御するならば、選択信号Ｓ２３は「Ｘ（don’t care）」でもよい。
【０１０７】
また、Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力項目における選択信号Ｓ１１及びＳ１２を「１」、かつ選択信号Ｓ１３を「０」に制御することによって、ＳＦＦ１１からの信号が、Ｓｔｅｐ２にてＩＮＶ１７によって「０」から「１」へと変化する。一方、ライトイネーブル項目における選択信号Ｓ３１を「０」及び選択信号Ｓ３２を「１」、かつライトイネーブル信号ＷＥを「１」に制御することによって、ＳＦＦ３１でユーザー論理回路Ｄの影響を取得できるようにし、特定のアドレスへの書き込みが許可されることにより、メモリマクロ９のデータ入力Ｄｉｎ端子の値が「０」から「１」への変化に応じて、特定のアドレスに変化した値「１」が書き込まれる。
【０１０８】
Ｓｔｅｐ３及びＳｔｅｐ４において、ライトイネーブルの項目における選択信号Ｓ３１及びＳ３２を「１」、かつライトイネーブルマスクＷＭ信号を「０」に制御することによって、書き込み不可に制御しておき、また、Ｓｔｅｐ４において、データ出力の項目における選択信号Ｓ４１を「０」、かつ選択信号Ｓ４２を「１」に制御する。この制御により、ＳＦＦ２１からの値でセットされた特定のアドレスからデータを読み出し、ＳＦＦ４２でメモリマクロ９から読み出されたデータをキャプチャする。
【０１０９】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４２は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【０１１０】
このような制御によって、ライトイネーブルＷＥ端子を「０」から「１」へと立ち上げた場合の遅延故障を、ユーザー論理回路Ｄの影響を考慮して検証することができる。
【０１１１】
図１０（Ｂ）に示す表では、メモリマクロ９のライトイネーブルＷＥ端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９のライトイネーブルＷＥ端子への信号を「１」から「０」へと変化させた場合において、ユーザー論理回路Ｄの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。図１０（Ａ）に示す表との違いのみを説明し、他動作は同様であるので説明を省略する。
【０１１２】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力項目における選択信号Ｓ１１及びＳ１２を「１」、かつ選択信号Ｓ１３を「０」に制御することによって、ＳＦＦ１１からの信号が、Ｓｔｅｐ２にてＩＮＶ１７によって「０」から「１」へと変化する。
【０１１３】
一方、Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、ライトイネーブル項目における選択信号Ｓ３１を「０」及び選択信号Ｓ３２を「１」、かつライトイネーブルＷＥ信号を「１」に制御することによって、ＳＦＦ３１でユーザー論理回路Ｄの影響を取得できるようにし、Ｓｔｅｐ３及びＳｔｅｐ４において、ライトイネーブルの項目における選択信号Ｓ３１及びＳ３２を「１」、かつライトイネーブルマスクＷＭ信号を「０」に制御することによって、書き込み不可に制御することによって、特定のアドレスへの書き込みが許可直後に不可とすることにより、メモリマクロ９のデータ入力Ｄｉｎ端子の値が「０」から「１」へと変化しても、ライトイネーブルＷＥ端子の遅延故障がなければ、特定のアドレスに変化した値「１」が書き込まれることなく値「０」を示し、遅延故障があれば値「１」が書き込まれる。
【０１１４】
よって、Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する際には、ＳＦＦ４２は、正常な場合は「０」を示し、遅延故障があった場合は「１」を示す。
【０１１５】
このような制御によって、ライトイネーブルＷＥ端子を「１」から「０」へと立ち下げた場合の遅延故障を、ユーザー論理回路Ｄの影響を考慮して検証することができる。
【０１１６】
次に、メモリマクロ９が更にデータマスクＤＭ端子を備えた場合について、図１１から図１３で説明する。図１１は、ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第二実施例の回路構成の概略図である。図１１中、本実施の形態を説明するために必要な構成のみが示され、他は省略される。図１１において、半導体装置１−２は、メモリマクロ９−２と、ユーザー論理回路Ａ、Ｂ、Ｃ、Ｄ及びＥと、テスト用回路１００、２００、３００、４００及び５００とを有する。
【０１１７】
第二実施例における回路構成では、メモリマクロ９−２は、図１に示すメモリマクロ９の種々の端子に加えて、複数のアドレス入力端子Ａｄｒ［０］〜［ｍ］に対応するデータマスク端子ＤＭ［０］〜［ｍ］（以下、総称してデータマスクＤＭ端子と言う。）を更に有している。メモリマクロ９−２のデータマスクＤＭ端子は、対応するデータ入力Ｄｉｎ端子に対して、ビット毎に書き込み可否を制御する端子である。
【０１１８】
よって、半導体装置１−２は、図１に示す半導体装置の第一実施例における回路構成に加えて、データマスクＤＭ端子への遅延故障を検証するための回路を有している。従って、第一実施例における回路構成と同様の構成部分の説明は省略され、データマスクＤＭ端子への遅延故障検証に係るユーザー論理回路Ｅ及びテスト用回路５００等について説明する。
【０１１９】
ユーザー論理回路ＥはデータマスクＤＭ端子へと対応するテスト用回路５００を介して接続される。
【０１２０】
テスト用回路５００は、データマスクＤＭ端子をテストするために構成される回路であり、ＳＦＦ５１と、ｍｕｘ５１、５２及び５３と、ＩＮＶ５７と、ＡＮＤ５８と、メモリＢＩＳＴ回路５９とを有する。
【０１２１】
ＳＦＦ５１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、メモリマクロ９−２のテスト用の値がスキャンシフトによって入力されたり、ユーザー論理回路Ｅの出力を取り込むために使用される。また、ＳＦＦ５１は、ｍｕｘ５３からの信号を入力し、ＡＮＤ５８を介してｍｕｘ５２へと出力する。
【０１２２】
ｍｕｘ５１は、選択信号Ｓ５１に応じて、ＳＦＦ５１又はメモリＢＩＳＴ５９のいずれかによるメモリテスト用の入力又は動作させたユーザー論理回路Ｅからの入力の一方を選択して、メモリマクロ９−２のデータマスクＤＭ端子へ出力する。ｍｕｘ５２は、選択信号Ｓ５２に応じて、ＳＦＦ５１からの入力又はメモリＢＩＳＴ回路５９からの入力の一方を選択して、ｍｕｘ５１へ出力する。ｍｕｘ５３は、選択信号Ｓ５３に応じて、ｍｕｘ５１からの入力又はＩＮＶ５７によってからの出力を反転させた入力の一方を選択して、ＳＦＦ５１へ出力する。
【０１２３】
ＩＮＶ５７は、ｍｕｘ５１からの出力を反転させてｍｕｘ５３に入力する。ＡＮＤ５８は、データマスク（ＤＭ）を固定するためのＤＭマスクＤＭＭ信号とＳＦＦ５１からの信号との論理積をｍｕｘ５２へ出力する。
【０１２４】
図１に示す構成と同様に、半導体装置１−２においても、ＳＦＦ１１、ＳＦＦ２１、ＳＦＦ３１、ＳＦＦ４１、ＳＦＦ４２、ＳＦＦ５１が、スキャンチェーンを形成しシフトレジスタとして使用される。テスターがテストパターンをスキャンシフトでシフトインし、半導体装置１−２を動作させることによって、ＳＦＦ４１で取り込まれた（キャプチャされた）値と期待値、ＳＦＦ４２で取り込まれた（キャプチャされた）値と期待値とを比較することによって、遅延故障の検証を行なう。また、テスターが、選択信号Ｓ１１からＳ１３、Ｓ２１からＳ２３、アドレスマスクＡＭ信号、選択信号Ｓ３１からＳ３３、ライトイネーブルマスクＷＭ信号、選択信号Ｓ４１及びＳ４２、選択信号Ｓ５１からＳ５３、ＤＭマスクＤＭＭ信号を制御する。
【０１２５】
このような第二の回路構成における、ユーザー論理回路Ｅの遅延による影響を考慮したメモリマクロ９−２のデータマスクＤＭ端子の遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図１２及び図１３で説明する。
【０１２６】
図１２は、図１１に示す半導体装置の回路構成におけるメモリマクロのデータマスク端子の遅延故障検出方法を説明するための図である。図１２において、前処理として、テストパターン生成プログラム９０によって、ユーザー論理回路Ｅの遷移故障をＳＦＦ５１で検出するためのテストパターン及び期待値を生成する。
【０１２７】
テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、データマスクＤＭ端子に掛かる遅延故障検出処理を実行する。
【０１２８】
Ｓｔｅｐ１において、テスター９５は、スキャンシフトにより前処理で生成済みの“ユーザー論理回路Ｅの遷移故障をＳＦＦ５１で検出するためのテストパターン”をセットする。このスキャンシフトの際、ＳＦＦ１１に「０」を入れ、かつＳＦＦ３１に「１」を入れておく。
【０１２９】
Ｓｔｅｐ２において、テスター９５は、ユーザー論理回路Ｅを含むロジック部とメモリマクロ９−２及びテスト用回路１００から５００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１−２を高速動作させ、ユーザー論理回路Ｅの遷移故障の影響をＳＦＦ５１及びメモリマクロ９−２のデータマスク端子まで伝播させる。このとき同時に、メモリマクロ９−２にはＳｔｅｐ２で書き込んだメモリアドレスにユーザー論理回路Ｅの遅延故障の影響が書き込まれる。
【０１３０】
Ｓｔｅｐ３において、テスター９５は、ＳＦＦ２１の値でセットされたメモリアドレスのデータを読み出す。Ｓｔｅｐ４において、テスター９５は、ＳＦＦ４２でメモリマクロ９−２から読み出されたデータの値をキャプチャする。そして、Ｓｔｅｐ５において、スキャンシフトにより値を読み出してＳＦＦ４２の値を期待値と比較し遅延故障を検出する。
【０１３１】
このように、ユーザー論理回路Ｅの遅延故障の影響がメモリマクロ９−２に取り込まれるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【０１３２】
図１３は、図１１に示す半導体装置の回路構成におけるメモリマクロのデータマスク端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。図１３中の各表におけるチップイネーブルの項目は、メモリマクロ９−２がチップイネーブルＣＥ端子を備えない構成であるため、斜線で示される。
【０１３３】
データマスクの項目では、図１１に示されるｍｕｘ５１、５２、５３及びＡＮＤ５８の制御端子の状態と、データマスク用のメモリ端子の状態とが示される。ｍｕｘ５１、５２、５３及びＡＮＤ５８の制御端子の状態は、対応する選択信号Ｓ５１、Ｓ５２、Ｓ５３及びＤＭマスクＤＭＭ信号の値で示される。また、データマスク用のメモリ端子の状態は、データマスクＤＭ端子の値で示される。
【０１３４】
図１３（Ａ）に示す表では、メモリマクロ９−２のデータマスク端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９−２のデータマスクＤＭ端子へのデータを「０」から「１」へと変化させた場合において、ユーザー論理回路Ｅの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。
【０１３５】
Ｓｔｅｐ１（シフト後）からＳｔｅｐ４まで、アドレス入力の項目における制御信号Ｓ２１〜Ｓ２３及びアドレスマスクＡＭ信号を「１」に制御することによって、特定のアドレスにのみデータの書き込み及び読み出しを行なうようにする。
【０１３６】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力の項目における選択信号Ｓ１１及びＳ１２を「１」に制御することによって、ＳＦＦ１１に入力されていた値「０」をデータ入力Ｄｉｎ端子に入力するようにし、また選択信号Ｓ１３を「０」に制御しておくことで、Ｓｔｅｐ１にてＳＦＦ１１に入力された「０」がＳｔｅｐ２でＩＮＶ１９によって「１」に反転されるようにする。
【０１３７】
また、ライトイネーブルの項目において、選択信号Ｓ３１、Ｓ３２及びライトイネーブルマスクＷＭ信号を「１」、及び選択信号Ｓ３３を「０」に制御し、メモリマクロ９−２のライトイネーブルＷＥ端子を「１」にして書き込み可能の状態に制御する。
【０１３８】
更に、データマスクの項目における選択信号Ｓ５１を「０」、及び選択信号Ｓ５３を「１」に制御することによって、ユーザー論理回路Ｅの影響がメモリマクロ９−２のデータマスクＤＭ端子とＳＦＦ５１とに伝播させる。この場合、Ｓｔｅｐ２にてビットへの書き込み不可から書き込み可へと状態が遷移するため、「０」から「１」へのデータ遷移に対して、正常であれば特定のアドレスにて「１」を示し、遅延がれば「０」を示す。
【０１３９】
Ｓｔｅｐ３及びＳｔｅｐ４において、データの読み出す中のデータの特定のアドレスへの書き込みを不可にするため、ライトイネーブルの項目におけるライトイネーブルマスクＷＭ信号を「０」に制御する。Ｓｔｅｐ３では、メモリマクロ９−２内で特定アドレスからデータが読み出され、Ｓｔｅｐ４において、データ出力の項目における選択信号Ｓ４１を「０」に制御し、かつ、選択信号Ｓ４２を「１」に制御することによって、メモリマクロ９−２からの出力データがＳＦＦ４２へと取り込まれる。
【０１４０】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４１は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【０１４１】
このような制御によって、データマスクＤＭ端子を「０」から「１」へと立ち上げた場合の遅延故障を、ユーザー論理回路Ｅの影響を考慮して検証することができる。
【０１４２】
図１３（Ｂ）に示す表では、メモリマクロ９−２のデータマスクＤＭ端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９−２のデータマスクＤＭ端子へのデータを「１」から「０」へと変化させた場合において、ユーザー論理回路Ｅの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。図１３（Ａ）に示す表における同様の制御であるため、その説明を省略する。
【０１４３】
データマスクの項目における選択信号Ｓ５１を「０」、及び選択信号Ｓ５３を「１」に制御することによって、ユーザー論理回路Ｅの影響がメモリマクロ９−２のデータマスクＤＭ端子とＳＦＦ５１とに伝播させる。この場合、Ｓｔｅｐ２にてビットへの書き込み可から書き込み不可へと状態が遷移するため、「０」から「１」へのデータ遷移に対して、正常であれば特定のアドレスにて「０」を示し、遅延によってデータが書き込まれてしまった場合は「１」を示す。
【０１４４】
従って、Ｓｔｅｐ５にて、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する際には、ＳＦＦ４１は、正常な場合は「０」を示し、遅延故障があった場合は「１」を示す。
【０１４５】
このような制御によって、データマスクＤＭ端子を「１」から「０」へと立ち下げた場合の遅延故障を、ユーザー論理回路Ｅの影響を考慮して検証することができる。
【０１４６】
次に、メモリマクロ９が更にチップイネーブルＣＥ端子を備えた場合について、図１４から図１６で説明する。図１４は、ユーザー論理回路とメモリマクロ間の遅延故障の検証を可能とする半導体装置の第三実施例の回路構成の概略図である。図１４中、本実施の形態を説明するために必要な構成のみが示され、他は省略される。図１４において、半導体装置１−３は、メモリマクロ９−３と、ユーザー論理回路Ａ、Ｂ、Ｃ、Ｄ及びＦと、テスト用回路１００、２００、３００、４００及び６００とを有する。
【０１４７】
第三実施例における回路構成では、メモリマクロ９−３は、図１に示すメモリマクロ９の種々の端子に加えて、チップイネーブルＣＥ端子を更に有している。チップイネーブルＣＥ端子は、ライトモードやリードモードなどに関係なくデータが書き換わる可能性がある場合にそれを防ぎ、データを保持するための端子である。
【０１４８】
よって、半導体装置１−３は、図１に示す半導体装置の第一実施例における回路構成に加えて、チップイネーブルＣＥ端子への遅延故障を検証するための回路を有している。従って、第一実施例における回路構成と同様の構成部分の説明は省略され、チップイネーブルＣＥ端子への遅延故障検証に係るユーザー論理回路Ｆ及びテスト用回路６００等について説明する。
【０１４９】
ユーザー論理回路ＦはチップイネーブルＣＥ端子へと対応するテスト用回路６００を介して接続される。
【０１５０】
テスト用回路６００は、チップイネーブルＣＥ端子をテストするために構成される回路であり、ＳＦＦ６１と、ｍｕｘ６１、６２及び６３と、ＩＮＶ６７と、ＡＮＤ６８と、メモリＢＩＳＴ回路６９とを有する。
【０１５１】
ＳＦＦ６１は、テスト用のスキャンチェーンでシフトレジスタとして使用され、メモリマクロ９−３のテスト用の値がスキャンシフトによって入力されたり、ユーザー論理回路Ｆの出力を取り込むために使用される。また、ＳＦＦ６１は、ｍｕｘ６３からの信号を入力し、ＡＮＤ６８を介してｍｕｘ６２へと出力する。
【０１５２】
ｍｕｘ６１は、選択信号Ｓ６１に応じて、ＳＦＦ６１又はメモリＢＩＳＴ６９のいずれかによるメモリテスト用の入力又は動作させたユーザー論理回路Ｆからの入力の一方を選択して、メモリマクロ９−３のチップイネーブルＣＥ端子へ出力する。ｍｕｘ６２は、選択信号Ｓ６２に応じて、ＳＦＦ６１からの入力又はメモリＢＩＳＴ回路６９からの入力の一方を選択して、ｍｕｘ６１へ出力する。ｍｕｘ６３は、選択信号Ｓ６３に応じて、ｍｕｘ６１からの入力又はＩＮＶ６７によってからの出力を反転させた入力の一方を選択して、ＳＦＦ６１へ出力する。
【０１５３】
ＩＮＶ６７は、ｍｕｘ６１からの出力を反転させてｍｕｘ６３に入力する。ＡＮＤ６８は、チップイネーブル（ＣＥ）を固定するためのＣＥマスクＣＭ信号とＳＦＦ６１からの信号との論理積をｍｕｘ６２へ出力する。
【０１５４】
図１に示す構成と同様に、半導体装置１−３においても、ＳＦＦ１１、ＳＦＦ２１、ＳＦＦ３１、ＳＦＦ４１、ＳＦＦ４２、ＳＦＦ５１、ＳＦＦ６１が、スキャンチェーンを形成しシフトレジスタとして使用される。テスターがテストパターンをスキャンシフトでシフトインし、半導体装置１−３を動作させることによって、ＳＦＦ４１で取り込まれた（キャプチャされた）値と期待値、ＳＦＦ４２で取り込まれた（キャプチャされた）値と期待値とを比較することによって、遅延故障の検証を行なう。また、テスターが、選択信号Ｓ１１からＳ１３、Ｓ２１からＳ２３、アドレスマスクＡＭ信号、選択信号Ｓ３１からＳ３３、ライトイネーブルマスクＷＭ信号、選択信号Ｓ４１及びＳ４２、選択信号Ｓ５１からＳ５３、ＤＭマスクＤＭＭ信号、選択信号Ｓ６１からＳ６３、ＣＥマスクＣＭ信号を制御する。
【０１５５】
このような第三の回路構成における、ユーザー論理回路Ｆの遅延による影響を考慮したメモリマクロ９−３のチップイネーブルＣＥ端子の遅延故障検出方法及びそのような遅延故障検出を検出するためのテストパターンの動作について図１５及び図１６で説明する。
【０１５６】
図１５は、図１１に示す半導体装置の回路構成におけるメモリマクロのチップイネーブルＣＥ端子の遅延故障検出方法を説明するための図である。図１５において、前処理として、テストパターン生成プログラム９０によって、ユーザー論理回路Ｆの遷移故障をＳＦＦ６１で検出するためのテストパターン及び期待値を生成する。
【０１５７】
テスター９５は、テストパターン生成プログラム９０によって生成されたテストパターン及び期待値を読み込んで、チップイネーブルＣＥ端子に掛かる遅延故障検出処理を実行する。
【０１５８】
Ｓｔｅｐ１において、テスター９５は、スキャンシフトにより前処理で生成済みの“ユーザー論理回路Ｆの遷移故障をＳＦＦ６１で検出するためのテストパターン”をセットする。このスキャンシフトの際、ＳＦＦ１１に「０」を入れ、かつＳＦＦ３１に「１」を入れておく。
【０１５９】
Ｓｔｅｐ２において、テスター９５は、ユーザー論理回路Ｆを含むロジック部とメモリマクロ９及びテスト用回路１００から６００を含むメモリ部とに遅延試験用の高速な、ＬａｕｎｃｈクロックとＣａｐｔｕｒｅクロックとを印加して半導体装置１−３を高速動作させ、ユーザー論理回路Ｅの遷移故障の影響をＳＦＦ６１及びメモリマクロ９−３のチップイネーブルＣＥ端子まで伝播させる。このとき同時に、メモリマクロ９−３にはＳｔｅｐ２で書き込んだメモリアドレスにユーザー論理回路Ｆの遅延故障の影響が書き込まれる。
【０１６０】
Ｓｔｅｐ３において、テスター９５は、ＳＦＦ２１の値でセットされたメモリアドレスのデータを読み出す。Ｓｔｅｐ４において、テスター９５は、ＳＦＦ４２でメモリマクロ９−３から読み出されたデータの値をキャプチャする。そして、Ｓｔｅｐ５において、スキャンシフトにより値を読み出してＳＦＦ４２の値を期待値と比較し遅延故障を検出する。
【０１６１】
このように、ユーザー論理回路Ｆの遅延故障の影響がメモリマクロ９−３に取り込まれるため、より実動作に基づいた精度の高い遅延故障の検出を行なうことができる。
【０１６２】
図１６は、図１４に示す半導体装置の回路構成におけるメモリマクロのチップイネーブル端子の遅延故障を検出するテストパターンの動作に応じた各状態を説明するための表を示す図である。図１６中の各表におけるデータマスクの項目は、メモリマクロ９−３がデータマスクＤＭ端子を備えない構成であるため、斜線で示される。
【０１６３】
チップイネーブルの項目では、図１４に示されるｍｕｘ６１、６２、６３及びＡＮＤ６８の制御端子の状態と、チップイネーブル用のメモリ端子の状態とが示される。ｍｕｘ６１、６２、６３及びＡＮＤ６８の制御端子の状態は、対応する選択信号Ｓ６１、Ｓ６２、Ｓ６３及びＣＥマスクＣＭ信号の値で示される。また、チップイネーブル用のメモリ端子の状態は、チップイネーブルＣＥ端子の値で示される。
【０１６４】
図１６（Ａ）に示す表では、メモリマクロ９−３のデータマスク端子の立ち上がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９−３のチップイネーブルＣＥ端子へのデータを「０」から「１」へと変化させた場合において、ユーザー論理回路Ｆの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。
【０１６５】
Ｓｔｅｐ１（シフト後）からＳｔｅｐ４まで、アドレス入力の項目における制御信号Ｓ２１〜Ｓ２３及びアドレスマスクＡＭ信号を「１」に制御することによって、特定のアドレスにのみデータの書き込み及び読み出しを行なうようにする。
【０１６６】
Ｓｔｅｐ１（シフト後）及びＳｔｅｐ２において、データ入力の項目における選択信号Ｓ１１及びＳ１２を「１」に制御することによって、ＳＦＦ１１に入力されていた値「０」をデータ入力Ｄｉｎ端子に入力するようにし、また選択信号Ｓ１３を「０」に制御しておくことで、Ｓｔｅｐ１にてＳＦＦ１１に入力された「０」がＳｔｅｐ２でＩＮＶ１９によって「１」に反転されるようにする。
【０１６７】
また、ライトイネーブルの項目において、選択信号Ｓ３１、Ｓ３２及びライトイネーブルマスクＷＭ信号を「１」、及び選択信号Ｓ３３を「０」に制御し、メモリマクロ９−３のライトイネーブルＷＥ端子を「１」にして書き込み可能の状態に制御する。
【０１６８】
更に、チップイネーブルの項目における選択信号Ｓ６１を「０」、及び選択信号Ｓ６３を「１」に制御することによって、ユーザー論理回路Ｆの影響がメモリマクロ９−３のチップイネーブルＣＥ端子とＳＦＦ６１とに伝播させる。この場合、Ｓｔｅｐ２にてチップのデータ書き換え不可から書き換え可へと状態が遷移するため、「０」から「１」へのデータ遷移に対して、正常であれば特定のアドレスにて「１」を示し、遅延がれば「０」を示す。
【０１６９】
Ｓｔｅｐ３及びＳｔｅｐ４において、データの読み出す中のデータの特定のアドレスへの書き込みを不可にするため、ライトイネーブルの項目におけるライトイネーブルマスクＷＭ信号を「０」に制御する。Ｓｔｅｐ３では、メモリマクロ９−３内で特定アドレスからデータが読み出され、Ｓｔｅｐ４において、データ出力の項目における選択信号Ｓ４１を「０」に制御し、かつ、選択信号Ｓ４２を「１」に制御することによって、メモリマクロ９−３からの出力データがＳＦＦ４２へと取り込まれる。
【０１７０】
Ｓｔｅｐ５では、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する。ＳＦＦ４１は、正常な場合は「１」を示し、遅延故障があった場合は「０」を示す。
【０１７１】
このような制御によって、チップイネーブルＣＥ端子を「０」から「１」へと立ち上げた場合の遅延故障を、ユーザー論理回路Ｆの影響を考慮して検証することができる。
【０１７２】
図１６（Ｂ）に示す表では、メモリマクロ９−３のチップイネーブルＣＥ端子の立ち下がり遅延故障を検出するテストパターンの動作を示している。メモリマクロ９−３のチップイネーブルＣＥ端子へのデータを「１」から「０」へと変化させた場合において、ユーザー論理回路Ｆの遅延による影響が考慮されるようにしたテストパターンの動作例を示す。図１６（Ａ）に示す表における同様の制御であるため、その説明を省略する。
【０１７３】
データマスクの項目における選択信号Ｓ６１を「０」、及び選択信号Ｓ６３を「１」に制御することによって、ユーザー論理回路Ｆの影響がメモリマクロ９−３のチップイネーブルＣＥ端子とＳＦＦ６１とに伝播させる。この場合、Ｓｔｅｐ２にてチップのデータ書き換え可から書き換え不可へと状態が遷移するため、「０」から「１」へのデータ遷移に対して、正常であれば特定のアドレスにて「０」を示し、遅延によってデータが書き換えられてしまった場合は「１」を示す。
【０１７４】
従って、Ｓｔｅｐ５にて、テスター９５がＳＦＦ４２の値と期待値とを比較して遅延故障を検出する際には、ＳＦＦ４１は、正常な場合は「０」を示し、遅延故障があった場合は「１」を示す。
【０１７５】
このような制御によって、チップイネーブルＣＥ端子を「１」から「０」へと立ち下げた場合の遅延故障を、ユーザー論理回路Ｆの影響を考慮して検証することができる。
【０１７６】
上述した実施例における半導体装置では、メモリマクロの入力側の各端子にユーザー論理回路Ａ、Ｂ、Ｄ、Ｅ、Ｆ夫々から直接メモリマクロへと入力させるように選択する仕組み（マルチプレクサｍｕｘ１１、２１、３１、５１、６１、及び選択信号Ｓ１１、Ｓ１２、Ｓ３１、Ｓ５１、Ｓ６１）を備えることによって、ユーザー論理回路Ａ、Ｂ、Ｄ、Ｅ、Ｆ夫々の動作の遅延の影響をメモリマクロへ取り込んで検証することができる。また、メモリマクロへの入力信号を反転させてスキャンフリップフロップへ入力する仕組み（インバータＩＮＶ１７、２７、３７、５７、６７）を備えることによって、メモリの入力端子の状態を遷移させたり、出力端子の状態を遷移させたりすることができる。
【０１７７】
同様に、メモリマクロの出力側の端子にユーザー論理回路Ｃへと直接出力させるように選択する仕組み（マルチプレクサｍｕｘ４１、及び選択信号Ｓ４１）を備えることによって、メモリマクロの出力側の端子の状態遷移の遅延をユーザー論理回路Ｃの動作に影響させて検証することができる。また、ユーザー論理回路Ｃへの信号を反転させてスキャンフリップフロップへ入力する仕組み（インバータＩＮＶ４７）を備えることによって、ユーザー論理回路Ｃへの信号の状態を遷移させてユーザー論理回路Ｃへ与えることができる。
【０１７８】
更に、上述した実施例における半導体装置では、メモリマクロの入力側のユーザー論理回路と出力側のユーザー論理回路とメモリマクロとを動作させて試験することができるため、従来技術では実現できなかったメモリマクロとユーザー論理回路間の実動作における遅延を考慮でき、より精度の高い遅延検証を行なうことができる。また、メモリマクロとユーザー論理回路間の遅延故障を、メモリマクロとユーザー論理回路間の同じ動作パスを用いて個別に試験可能とする。
【０１７９】
テストパターン生成プログラム９０は、特にデータ出力端子に関しては、遷移遅延試験やパス遅延試験などのＦＦとＦＦとの間だけの故障を対象にしたテストパターンを生成すればよい。そのため、テストパターン生成プログラム９０で作成すべきパターンのサイクル数を２サイクルとすることができる。従って、テストパターン生成プログラム９０による処理時間の増加、故障検出率の低下、パターン数増加などの問題を解決できる。また、テストパターン生成用のメモリマクロのモデルを用意する必要がない。
【０１８０】
以上の説明に関し、更に以下の項を開示する。
（付記１）
メモリマクロと、
入力側ユーザー論理回路からの出力とスキャンフリップフロップからの出力のいずれか一方を選択して前記メモリマクロに入力すると共に、該入力側ユーザー論理回路からの出力を該スキャンフリップフロップに取り込む入力側テスト回路と、
前記メモリマクロからの出力とスキャンフリップフロップからの出力のいずれか一方を選択して出力側ユーザー論理回路に入力すると共に、該前記メモリマクロからの出力を該スキャンフリップフロップに取り込む出力側テスト回路とを有する半導体装置。
（付記２）
前記入力側テスト回路は、更に、
前記入力側ユーザー論理回路からの出力と前記スキャンフリップフロップからの出力のいずれか一方を選択して、前記メモリマクロへ入力する第一の入力側マルチプレクサと、
前記第一の入力側マルチプレクサからの出力と反転させた該出力のいずれか一方を選択して、前記スキャンフリップフロップへ出力する第二の入力側マルチプレクサと
を有するようにした付記１記載の半導体装置。
（付記３）
前記入力側テスト回路は、前記メモリマクロのデータ入力用のデータ入力端子とアクセス制御用のアクセス制御端子に対応させて各々備えられ、
前記アクセス制御端子に対応する前記入力側テスト回路は、更に、
前記スキャンフリップフロップからの出力に対して論理積演算を行って前記メモリマクロへの入力をマスクする論理積回路を有し、
前記第一の入力側マルチプレクサは、前記論理積回路からの出力又は前記ユーザー論理回路からの出力のいずれかを選択して出力するようにした付記２記載の半導体装置。
（付記４）
前記アクセス制御端子は、アドレス入力端子、ライトイネーブル端子、データマスク端子、及びチップイネーブル端子のうち１又は複数である付記３記載の半導体装置。
（付記５）
前記出力側テスト回路は、更に、
前記メモリマクロからの出力と前記スキャンフリップフロップからの出力のいずれか一方を選択して、前記出力側ユーザー論理回路へ入力する第一の出力側マルチプレクサと、
前記第一の出力側マルチプレクサからの出力と反転させた該出力のいずれか一方を選択して、前記スキャンフリップフロップへ出力する第二の出力側マルチプレクサと
を有するようにした付記１記載の半導体装置。
（付記６）
付記１乃至５に記載の半導体装置の試験方法であって、
前記入力側ユーザー論理回路の遷移故障を検出するためのテストパターンをスキャンシフトによりシフトインさせ、前記入力側ユーザー論理回路からの出力を選択させるように前記入力側テスト回路を制御するステップと、
遅延試験のクロックを供給するステップと、
前記メモリマクロがデータを読み出すステップと、
前記メモリマクロからの読み出したデータの出力を選択させるように前記出力側テスト回路を制御するステップと、
スキャンシフトにより読み出した前記出力側テスト回路のスキャンフリップフロップの値を期待値と比較するステップとを有する半導体装置の試験方法。
（付記７）
付記１乃至５に記載の半導体装置の試験方法であって、
前記出力側ユーザー論理回路の出力を取り込む第一フリップフロップから前記出力側テスト回路の第二フリップフロップとの間の遷移故障を検出するテストパターンのうち、該第二フリップフロップにスキャンシフト動作で設定されるテストパターンがデータ入力されるように前記入力側テスト回路のスキャンフリップフロップにシフトインさせ、前記メモリマクロからの出力を選択させるように前記出力側テスト回路を制御するステップと、
第一アドレスに前記入力側テスト回路のスキャンフリップフロップの値を記憶させ、第二アドレスに該値の反転値を記憶させるステップと、
前記メモリマクロから前記第一アドレスの値を読み出すステップと、
遅延試験のクロックを供給してメモリマクロのデータ出力端子から第二アドレスの値を出力させ、前記第一フリップフロップで取り込むステップと、
スキャンシフトにより読み出した前記第一のスキャンフリップフロップの値を期待値と比較するステップとを有する半導体装置の試験方法。
【０１８１】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１８２】
１、１−２、１−３  半導体装置
９、９−２、９−３  メモリ
１９、２９、３９、４９、５９、６９  メモリＢＩＳＴ回路
１００、２００、３００、４００、５００、６００  テスト用回路
Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ  ユーザー論理回路
Ａｄｒ［０］〜［ｍ］    アドレス入力端子
Ｄｉｎ［０］〜［ｎ］    データ入力端子
Ｄｏｕｔ［０］〜［ｎ］  データ出力端子
ＤＭ［０］〜［ｍ］      データマスク端子
ＷＥ        ライトイネーブル端子
ＣＥ        チップイネーブル端子
ＡＮＤ２８、ＡＮＤ３８、ＡＮＤ５８、ＡＮＤ６８  論理積回路
ＩＮＶ１７、ＩＮＶ２７、ＩＮＶ３７  インバータ回路
ＩＮＶ４７、ＩＮＶ５７、ＩＮＶ６７  インバータ回路
ｍｕｘ１１、ｍｕｘ１２、ｍｕｘ１３  マルチプレクサ
ｍｕｘ２１、ｍｕｘ２２、ｍｕｘ２３  マルチプレクサ
ｍｕｘ３１、ｍｕｘ３２、ｍｕｘ３３  マルチプレクサ
ｍｕｘ４１、ｍｕｘ４２  マルチプレクサ
ｍｕｘ５１、ｍｕｘ５２、ｍｕｘ５３  マルチプレクサ
ｍｕｘ６１、ｍｕｘ６２、ｍｕｘ６３  マルチプレクサ
ＳＦＦ１１、ＳＦＦ２１、ＳＦＦ３１  スキャンフリップフロップ
ＳＦＦ４１、ＳＦＦ４２、ＳＦＦ５１、ＳＦＦ６１  スキャンフリップフロップ
Ｓ１１、Ｓ１２、Ｓ１３  選択信号
Ｓ２１、Ｓ２２、Ｓ２３  選択信号
Ｓ３１、Ｓ３２、Ｓ３３  選択信号
Ｓ４１、Ｓ４２  選択信号
Ｓ５１、Ｓ５２、Ｓ５３  選択信号
Ｓ６１、Ｓ６２、Ｓ６３  選択信号
ＡＤＲ＿ＭＡＳＫ（ＡＭ）  アドレスマスクＡＭ信号
ＷＥ＿ＭＡＳＫ（ＷＭ）    ライトイネーブルマスクＷＭ信号
ＤＭ＿ＭＡＳＫ（ＤＭＭ）  ＤＭマスクＤＭＭ信号
ＣＥ＿ＭＡＳＫ（ＣＭ）    チップイネーブルＣＭ信号
【図１】
2010197149.tif 000003
【図２】
2010197149.tif 000004
【図３】
2010197149.tif 000005
【図４】
2010197149.tif 000006
【図５】
2010197149.tif 000007
【図６】
2010197149.tif 000008
【図７】
2010197149.tif 000009
【図８】
2010197149.tif 000010
【図９】
2010197149.tif 000011
【図１０】
2010197149.tif 000012
【図１１】
2010197149.tif 000013
【図１２】
2010197149.tif 000014
【図１３】
2010197149.tif 000015
【図１４】
2010197149.tif 000016
【図１５】
2010197149.tif 000017
【図１６】
2010197149.tif 000018