(57)【要約】【課題】  論理回路に順序回路が含まれていても、スキャン回路を導入することなく、ＡＴＰＧを用いて論理回路に対するテストパターンを簡易に作成することができる故障検証用テストパターン生成方法及びその装置、故障検証方法及びその装置、並びにプログラムを提供すること。【解決手段】  論理回路が有する順序回路を所定の組み合わせ回路で置換する（ステップＳ１）。続いて、順序回路を組み合わせ回路で置換した後の論理回路に対してＡＴＰＧ等の所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する（ステップＳ２）。そして、順序回路を組み合わせ回路で置換する前の論理回路に上記入力テストパターンを入力して期待値テストパターンを生成する（ステップＳ３）。このようにして生成された入力テストパターンおよび期待値テストパターンからなる故障検証用テストパターンを用いて論理回路の検証を行う。【選択図】      図６
2005207925.tif 000002
【特許請求の範囲】
【請求項１】
順序回路を有する論理回路の故障を検証するためのテストパターンを生成する故障検証用テストパターン生成方法であって、
（ａ）前記順序回路を所定の組み合わせ回路で置換する第１ステップと、
（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、
（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップと
を含む故障検証用テストパターン生成方法。
【請求項２】
前記所定の故障検証用テストパターン手段がＡＴＰＧであることを特徴とする請求項１に記載された故障検証用テストパターン生成方法。
【請求項３】
前記第３ステップでは、論理シミュレータを用いて前記期待値テストパターンを生成することを特徴とする請求項１または２の何れかに記載された故障検証用テストパターン生成方法。
【請求項４】
順序回路を有する論理回路の故障を検証する故障検証方法であって、
（ａ）前記順序回路を所定の組み合わせ回路で置換する第１ステップと、
（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、
（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップと、
（ｄ）前記論理回路を装置に具現化する過程において前記入力テストパターンおよび前記期待値テストパターンを用いて故障検証を行う第４ステップと
を含む故障検証方法。
【請求項５】
前記所定の故障検証用テストパターン手段がＡＴＰＧであることを特徴とする請求項４に記載された故障検証方法。
【請求項６】
前記第３ステップでは、論理シミュレータを用いて前記期待値テストパターンを生成することを特徴とする請求項４または５の何れかに記載された故障検証方法。
【請求項７】
前記第４ステップでは、前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路のレイアウトパターンから抽出された回路の故障検証を行うことを特徴とする請求項４ないし６の何れか１項に記載された故障検証方法。
【請求項８】
前記第４のステップでは、前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路が形成された半導体装置の故障検証を行うことを特徴とする請求項４ないし６の何れか１項に記載された故障検証方法。
【請求項９】
順序回路を有する論理回路の故障を検証するためのテストパターンを生成する故障検証用テストパターン生成装置であって、
前記順序回路を所定の組み合わせ回路で置換する置換処理部と、
前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する入力パターン生成処理部と、
前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する期待値生成処理部と
を備えた故障検証用テストパターン生成装置。
【請求項１０】
順序回路を有する論理回路の故障を検証する故障検証装置であって、
前記順序回路を所定の組み合わせ回路で置換する置換処理部と、
前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する入力パターン生成処理部と、
前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する期待値パターン生成処理部と、
前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路を装置に具現化する過程で形成される回路の故障検証を行う故障検証処理部と
を備えた故障検証装置。
【請求項１１】
コンピュータに、
（ａ）論理回路が有する順序回路を所定の組み合わせ回路で置換する第１ステップと、
（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、
（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置等に形成される論理回路の故障検証用テストパターン生成方法及びその装置、故障検証方法及びその装置、並びに故障検証用テストパターン生成用のコンピュータプログラムに関する。
【背景技術】
【０００２】
一般に、デジタル論理回路は、論理積ゲート（ＡＮＤ）や論理和ゲート（ＯＲ）等からなる組合わせ回路、Ｄフリップフロップ（Ｄ−ＦＦ）やＤラッチ等の順序回路（状態回路）、あるいはメモリセル等を構成要素として設計される。このうち、組合せ回路は、現在の入力に応じて出力が決定される回路特性を有し、一方の順序回路は、現在の出力が過去の入力信号の順序に依存する回路特性を有する。設計された論理回路は、シミュレーション用ツール（論理シミュレータ）を用いて機能検証が行われる。
【０００３】
上述の機能検証では、回路の接続情報であるネットリストと、論理積ゲート等の基本回路要素の機能をモデル化した基本要素モデル情報からなるセルライブラリとを用いて被検証対象の論理回路をコンピュータ上に構築し、テストベクターと呼ばれるテストパターンを論理回路の入力値として論理シミュレーションを実行する。そして、この論理シミュレーションの結果として得られる出力値を所定の期待値と照合することにより、回路機能が正常であるか否かを検証する。この機能検証では、仮に論理回路に物理的な故障が存在していても、出力値に影響がなければ、この故障を問題とはしない。即ち、出力値に影響を与えない故障は検証の対象外とされる。
【０００４】
上述の機能検証に対して故障検証がある。この故障検証は、入力値に対して論理回路の機能に応じた出力値が得られるか否かを検証するものではなく、回路中の物理的故障の有無を検出すること、すなわち故障検証を行うことを目的としたものである。この故障検証でもコンピュータ上に論理回路を構築し、故障検証用テストパターンを入力端子に設定した状態で故障検証シミュレーションを実行することにより故障検証を行っている。この故障検証では、上述の機能検証とは逆に、回路機能が正常か否かは問題とはせず、回路に内在する物理的な故障（例えば、配線のショートやオープンによる縮退故障等）自体の有無を検証する。
【０００５】
上述の故障検証シミュレーションの一種として、いわゆるトグルシミュレーション及びフォールトシミュレーションがある。トグルシミュレーションでは、回路の内部ノードの活性化率、即ちトグルする内部ノードの割合を求める。このトグルシミュレーションを利用すれば、回路全体を有効に活性状態とするような入力テストパターンを得ることができる。また、フォールトシミュレーションでは、上述のトグルシミュレーションを用いて得られた一定の活性化率を有するテストパターンを入力したときの出力値を期待値と比較することにより、回路内部の故障状態を調べる。
【０００６】
このフォールトシミュレーションでは、故障の種類によって故障検出が可能な入力テストパターンが異なるため、所望のフォールトカバレッジが得られるように、複数のテストパターンが準備される。この故障検証用のテストパターンとしては、回路の活性化率とフォールトカバレッジとが共に高くなるものが望ましい。
【特許文献１】特開平５−２０３８２号公報
【特許文献２】特開昭５４−１２２０５３号公報
【特許文献３】特許第２５７２９７１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の故障検出用のテストパターンの要求を満足させるために、一般には、人手作業により試行錯誤を繰り返しながらテストパターンが作成され、そのためにテストパターンの作成に多大な労力を必要としていた。
このような故障検証用テストパターンの作成作業を支援するためのツールとしてＡＴＰＧ(Automatic Test Pattern Generator)が知られている。しかしながら、ＡＴＰＧによれば、その仕様上、入力信号間のタイミング関係を表現することができず、従ってそのままでは順序回路を含む論理回路には適用することができないという問題がある。また、ＡＴＰＧを用いてテストパターンを生成する従来方法によれば、順序回路の出力値を外部から設定するためのいわゆるスキャン回路を導入するため、装置上に具現される回路規模の増大を招くという不都合もある。
【０００８】
本発明は、上記事情に鑑みてなされたもので、論理回路に順序回路が含まれていても、スキャン回路を導入することなく、ＡＴＰＧを用いて論理回路に対するテストパターンを簡易に作成することができる故障検証用テストパターン生成方法及びその装置、故障検証方法及びその装置、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、この発明は以下の構成を有する。
即ち、本発明に係る故障検証用テストパターン生成方法は、順序回路を有する論理回路の故障を検証するためのテストパターンを生成する故障検証用テストパターン生成方法であって、（ａ）前記順序回路を所定の組み合わせ回路で置換する第１ステップと、（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップとを含む。
上記故障検証用テストパターン生成方法において、前記所定の故障検証用テストパターン手段がＡＴＰＧであることを特徴とする。
【００１０】
上記故障検証用テストパターン生成方法において、前記第３ステップでは、論理シミュレータを用いて前記期待値テストパターンを生成することを特徴とする。
本発明に係る故障検証方法は、順序回路を有する論理回路の故障を検証する故障検証方法であって、（ａ）前記順序回路を所定の組み合わせ回路で置換する第１ステップと、（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップと、（ｄ）前記論理回路を装置に具現化する過程において前記入力テストパターンおよび前記期待値テストパターンを用いて故障検証を行う第４ステップとを含む。
【００１１】
上記故障検証方法において、前記所定の故障検証用テストパターン手段がＡＴＰＧであることを特徴とする。
上記故障検証方法において、前記第３ステップでは、論理シミュレータを用いて前記期待値テストパターンを生成することを特徴とする。
上記故障検証方法において、前記第４ステップでは、前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路のレイアウトパターンから抽出された回路の故障検証を行うことを特徴とする。
上記故障検証方法において、前記第４のステップでは、前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路が形成された半導体装置の故障検証を行うことを特徴とする。
【００１２】
本発明に係る故障検証用テストパターン生成装置は、順序回路を有する論理回路の故障を検証するためのテストパターンを生成する故障検証用テストパターン生成装置であって、前記順序回路を所定の組み合わせ回路で置換する置換処理部と、前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する入力パターン生成処理部と、前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する期待値生成処理部とを備える。
【００１３】
本発明に係る故障検証装置は、順序回路を有する論理回路の故障を検証する故障検証装置であって、前記順序回路を所定の組み合わせ回路で置換する置換処理部と、前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する入力パターン生成処理部と、前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する期待値パターン生成処理部と、前記入力テストパターンおよび前記期待値テストパターンを用いて、前記論理回路を装置に具現化する過程で形成される回路の故障検証を行う故障検証処理部とを備える。
【００１４】
本発明に係るプログラムは、コンピュータに、（ａ）論理回路が有する順序回路を所定の組み合わせ回路で置換する第１ステップと、（ｂ）前記順序回路を前記所定の組み合わせ回路で置換した後の前記論理回路に対し所定の故障検証用テストパターン生成手段を適用して入力テストパターンを生成する第２ステップと、（ｃ）前記順序回路を前記所定の組み合わせ回路で置換する前の前記論理回路に前記入力テストパターンを入力して期待値テストパターンを生成する第３ステップとを実行させる。
【発明の効果】
【００１５】
本発明によれば、論理回路に順序回路が含まれていても、スキャン回路を導入することなく、既存のＡＴＰＧを用いて論理回路に対するテストパターンを簡易に生成することができる。従って、故障検証用テストパターンの作成作業や故障検証を効率化することが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら、本発明の実施形態を説明する。
先ず、図１および図２を参照して、本実施形態に係る故障検証用テストパターン生成方法の原理を説明する。本実施形態に係る故障検証用テストパターン生成方法は、ＤフリップフロップやＤラッチ等の順序回路を有する論理回路の故障を検証するために使用されるテストパターンを生成するものであって、以下に説明するように、所定の組合せ回路で論理回路内の順序回路を置換することにより、この順序回路における入力信号間のタイミング関係の制約を排除し、論理回路の各内部ノードにおいてトグルが有効に発生し得るように元の論理回路を一部変更する。これにより、スキャン回路を要することなくＡＴＰＧの利用を可能とし、ＡＴＰＧを用いて所望のフォールトカバレッジを有するテストパターンを生成する。
【００１７】
図１（ａ）に、論理回路が有する順序回路の一種であるＤフリップフロップのシンボルを示す。Ｄフリップフロップ１００は、データ端子Ｄ、クロック端子ＣＫ、出力端子ＱおよびＱｂの４端子を有し、クロック信号ＣＫに対して相補的に動作する２段のＤラッチ（マスタ・スレーブ）から構成される。出力端子Ｑｂは、出力端子Ｑに対する反転信号の端子を表す。図１（ｂ）に、上述のＤフリップフロップを置換するために使用される所定の組合せ回路１１０の構成を示す。この組合せ回路１１０は、論理積ゲート１１１、バッファ１１２、インバータ１１３から構成される。ここで、論理積ゲート１１１の一方の入力部は、上記データ端子Ｄに対応する入力ピン１１０Ａに接続され、その他方の入力部は、上記クロック端子ＣＫに対応する入力ピン１１０Ｂに接続される。論理積ゲート１１１の出力部はバッファ１１２およびインバータ１１３の入力部に接続される。バッファ１１２の出力部は、上記出力端子Ｑに対応する出力ピン１１０Ｃに接続され、インバータ１１３の出力部は、上記出力端子Ｑｂに対応する出力ピン１１０Ｄに接続される。なお、上記の入力ピンおよび出力ピンは、回路設計ツール上での仮想的な端子を意味している（以下同様）。
【００１８】
上述の組合せ回路１１０は、これによって置換されるＤフリップフロップの機能を再現するためのものではなく、その入力信号に対するトグルを出力に有効に発生させるためのものである。例えば、データ端子Ｄに対応する入力ピン１１０Ａをハイレベルに固定し、クロック端子ＣＫに対応する入力ピン１１０Ｂをロウレベルからハイレベルに変化させると、出力端子Ｑに対応する出力ピン１２０Ｄの信号レベルがロウレベルからハイレベルに変化する。従って、入力信号に対して組合せ回路１１０の出力にトグルが有効に発生し、その出力にイベントが発生することになる。
【００１９】
ここで、故障検証の場合、機能検証とは異なり、Ｄフリップフロップなどの順序回路の機能を忠実に再現する必要はなく、入力信号に応答して出力がトグルすれば足りる。換言すると、故障検証用のテストパターンに要求される性能としては、入力信号に対して論理回路の内部ノードにイベントが有効に発生し、これにより所望のフォールトカバレッジが得られればよい。従って、故障検証においては、Ｄフリップフロップ１００のような順序回路を組合せ回路１１０で置換したとしても、故障検証を行う上で何ら不都合はない。また、組合せ回路１１０の入力信号間には、順序回路におけるようなタイミング上の制約が存在しないので、順序回路を組合せ回路１１０で置換して得られる論理回路に対して既存のＡＴＰＧを適用することが可能になる。
【００２０】
図１（ｃ）に、上述の順序回路を置換するための他の組合せ回路１２０の構成を示す。この組合せ回路１２０は、データを直接的に入力するためのテスト用入力ピン１２０Ｂを備えたことを特徴とし、論理積ゲート１２１，１２２、論理和ゲート１２３、バッファ１２４、インバータ１２５，１２６から構成される。ここで、論理積ゲート１２１の一方の入力部は、上記データ端子Ｄに対応する入力ピン１２０Ａに接続される。論理積ゲート１２２の一方の入力部は、この組合せ回路１２０に特有のテスト端子に対応する入力ピン１２０Ｂに接続されると共にインバータ１２６の入力部に接続され、このインバータ１２６の出力部は論理積ゲート１２１の他方の入力部に接続される。論理積ゲート１２２の他方の入力部は、上記クロック端子ＣＫに対応する入力ピン１２０Ｃに接続される。論理積ゲート１２１，１２２の各出力部は論理和ゲート１２３の入力部に接続され、この論理和ゲート１２３の出力部は、バッファ１２４およびインバータ１２５の各入力部に接続される。バッファ１２４の出力部は、出力端子Ｑに対応する出力ピン１２０Ｄに接続され、インバータ１２５の出力部は、出力端子Ｑｂに対応する出力ピン１２０Ｅに接続される。
【００２１】
この組合せ回路１２０は、入力ピン１２０Ｃにロウレベルが印加された状態では、テスト用入力ピン１２０Ｂに印加される信号にかかわらず、入力ピン１２０Ａに入力される信号に応答して出力ピン１２０Ｄ，１２０Ｅの各信号にトグルが発生する。これにより、この組合せ回路１２０の出力にイベントが有効に発生し、回路の活性化率が向上する。従って、上述の組合せ回路１１０と同様に、所望のフォールトカバレッジを有する故障検証用のテストパターンを生成することが可能になる。これに対し、入力ピン１２０Ｃにハイレベルが印加された状態では、インバータ１２６を介して論理積ゲート１２１の他方の入力部にロウレベルが印加される。従ってこの場合、入力ピン１２０Ａに印加される信号にかかわらず、テスト用入力ピン１２０Ｂに印加される信号に応答して出力端子１２０Ｄ，１２０Ｅの信号がトグルする。即ち、この組合せ回路１２０によれば、テスト用入力ピン１２０Ｂに印加される信号によりトグル状態を意図的に制御することができ、上述の組合せ回路１１０に比較して、より多様なトグル状態を設定することが可能になる。
【００２２】
図２（ａ）は、順序回路の他の例であるＤラッチのシンボルを示す。Ｄラッチ２００は、データ端子Ｄ、クロック端子ＳＴ、出力端子Ｏを有する。
図２（ｂ）に、上述のＤラッチを置換するために使用される組合せ回路２１０の構成を示す。この組合せ回路２１０は論理積ゲート２１１から構成され、この論理積ゲート２１１の一方の入力部は、データ端子Ｄに対応する入力ピン２１０Ａに接続されると共に、その他方の入力部は、クロック端子ＳＴに対応する入力ピン２１０Ｂに接続され、その出力部は出力端子Ｏに対応する出力ピン２１０Ｃに接続される。
【００２３】
この組合せ回路２１０もＤラッチ２００の機能を再現するものではなく、その出力にトグルを有効に発生させるためのものである。例えば、組合せ回路２１０において、クロック端子ＳＴに対応する入力ピン２１０Ｂをハイレベルに固定すれば、入力ピン２１０Ａに印加される信号に応答して出力端子２１０Ｃの信号がトグルする。この状態は、Ｄラッチ２００において、クロック端子ＳＴをハイレベルに固定してデータスルーとした状態に対応する。上述の組合せ回路１１０の場合と同様に、Ｄラッチを組合せ回路２１０で置換したとしても、故障検証を行う上で不都合はなく、その入力信号間には、Ｄラッチにおけるようなタイミング上の制約が存在しないので、Ｄラッチを組合せ回路２１０で置換して得られる論理回路に対して既存のＡＴＰＧを適用することが可能になる。
以上で本実施形態の原理を説明した。
【００２４】
次に、図３ないし図５を参照しながら、図６に示すフローに沿って本実施形態に係る故障検証用テストパターンの生成手順（方法）を説明する。
先ず、被検証対象の論理回路について説明しておく。図３に、被検証対象の論理回路３００を概略的に示す。同図に示すように、論理回路３００は、入力バッファ３１１，３１２、周辺組合せ回路３２１，３２２，３２３、Ｄフリップフロップ３３１，３３２，３３３、出力バッファ３４１，３４２，３４３から構成される。ここで、入力バッファ３１１，３１２の各入力部は入力端子３０１，３０２にそれぞれ接続され、各出力部は周辺組合せ回路３２１の入力段に接続される。Ｄフリップフロップ３３１のデータ端子Ｄは周辺組合せ回路３２１の出力段に接続され、その出力端子Ｑは周辺組合せ回路３２２の入力段に接続される。
【００２５】
また、Ｄフリップフロップ３３２のデータ端子Ｄは周辺組合せ回路３２２の出力段に接続され、その出力端子Ｑは周辺組合せ回路３２３の入力段に接続される。上述のＤフリップフロップ３３１，３３２の各クロック端子ＣＫは、入力端子３０３に共通に接続される。出力バッファ３４１，３４２の各入力部は、周辺組合せ回路３２３の出力段にそれぞれ接続され、これら出力バッファ３４１，３４２の各出力部は出力端子３５１，３５２にそれぞれ接続される。Ｄフリップフロップ３３３のデータ端子Ｄおよびクロック端子ＣＫは、周辺組合せ回路内の所定ノードにそれぞれ接続される。出力バッファ３４３の入力部はＤフリップフロップ３３３の出力端子Ｄに接続され、その出力部は出力端子３５３に接続される。このように、論理回路３００は、順序回路であるＤフリップフロップ３３１，３３２，３３３を含んで構成されている。
【００２６】
上述の論理回路３００を被検証対象として、以下のステップを経てテストパターンが生成される。第１ステップとして、上述の図３に示す論理回路３００においてＤフリップフロップ３３１，３３２，３３３（順序回路）を所定の組合わせ回路で置換し、これにより図４に示す論理回路４００、または図５に示す論理回路５００を得る（ステップＳ１）。以下では、説明の便宜上、図３に示す論理回路３００を図４に示す論理回路４００に置き換えた場合について主要な説明を行い、図５に示す例については、その後で相違点のみを補足的に説明する。図４において、組合せ回路４３１，４３２，４３３は、上述のＤフリップフロップ３３１，３３２，３３３を置換したものであり、図１（ｃ）と同様に構成される。図４において、図３に示された要素と共通する要素には同一符号を付す。
【００２７】
第２のステップとして、順序回路を所定の組み合わせ回路で置換した後の論理回路４００に対し既存のＡＴＰＧ（所定の故障検証用テストパターン生成手段）を適用して入力テストパターンを生成する（ステップＳ２）。ここで、同一の入力条件下で比較した場合、組合せ回路４３１，４３２，４３３の出力には、順序回路３３１，３３２，３３３の出力よりも有効にトグルが発生する。換言すると、同一の入力条件に対して、組合せ回路４３１，４３２，４３３の出力は順序回路３３１，３３２，３３３の出力よりも頻繁にトグルし、イベントが発生する。このため、論理回路４００の内部ノードにおけるトグルの発生頻度が、論理回路３００の内部ノードにおけるトグルの発生頻度よりも高くなる。この結果、既存のＡＴＰＧを用いて、フォールトカバレッジに優れたテストパターンの生成が可能になる。
【００２８】
第３のステップとして、既存の論理シミュレータを用いて、上述の第３のステップで生成された入力パターンに対する期待値テストパターンを生成する（ステップＳ３）。即ち、論理シミュレータ上に上述の順序回路を組み合わせ回路で置換する前の図３に示す論理回路３００のネットリストを入力することにより、論理シミュレータ上に論理回路３００を構築する。そして、第２のステップで得られた入力テストパターンを論理シミュレータ上の論理回路３００に入力することにより、その入力パターンに対する出力パターンを期待値テストパターンとして生成する。これにより、上述の第２のステップで生成された入力テストパターンと第３のステップで生成された期待値テストパターンとからなる故障検証用テストパターンが生成される。
【００２９】
ここで、図５に示す論理回路５００について補足説明する。
図５に示す例は、図１（ｂ）と同様の組合せ回路５３１，５３２，５３３で図３に示すＤフリップフロップを置換したものであり、この例によれば、前述したように、テスト用入力端子５０１に接続された各組合せ回路のテスト用入力ピンを介して、外部から組合せ回路にデータを自在に印加することが可能になる。従って、周辺の組合せ回路に依存せずに出力端子Ｑ，Ｑｂの値を任意に決定することが可能になり、これにより論理回路４００の内部ノードのトグルを一層有効に発生させ、フォールトカバレッジが更に改善されたテストパターンを生成することが可能になる。
以上により、故障検証用テストパターンの生成方法を説明した。
【００３０】
次に、上述の故障検証用テストパターンを用いた故障検証方法を説明する。
この故障検証方法は、順序回路を有する論理回路の故障を検証する故障検証方法であって、上述の第１ないし第３のステップに加え、図３に示す論理回路３００を装置に具現化する過程において上述の入力テストパターンおよび期待値テストパターンを用いて故障検証を行う第４のステップを更に含んでいる。
ここで、一般に、論理回路３００を半導体装置に具現化する場合、論理回路３００の設計情報からレイアウトパターン（マスク用の図形データ）が作成され、このレイアウトパターンから露光用のマスクが製作される。そして、このマスクを用いた露光処理をはじめとする各種のプロセス処理がウエハに施され、最終的に論理回路３００が形成された半導体装置が完成する。この一連の過程には、論理回路３００の正常な形成を阻害する要因が多く存在する。例えば、レイアウトパターンを作成する過程で、不要な図形の発生により配線間がショートしたり、逆に、必要な図形の欠落により配線がオープン状態となり、これらは論理回路３００の故障の原因となる。
【００３１】
そこで、第４のステップでは、レイアウトパターンを作成する際に発生する故障要因を検証するために、論理回路３００のレイアウトパターンから回路のネットリストを抽出し、この抽出されたネットリストから得られる回路の故障検証を行う。具体的には、レイアウトパターンから抽出されたネットリストを論理シミュレータに入力し、コンピュータ上に論理回路を構築する。そして、この論理回路に対し、上述の第２のステップで生成された入力テストパターンを入力して論理シミュレータを実行させ、この入力パターンに対して得られる出力パターンを上述の期待値テストパターンと比較する。このとき、出力パターンが期待値パターンと一致していれば、レイアウトパターンに故障要因は存在しないことが検証される。これに対し、出力パターンが期待値パターンと不一致であれば、レイアウトパターンに故障要因が存在することが検証される。この故障要因の所在等は、公知の手法を用いて、入力パターンに対する出力パターンの内容から解析できる。
【００３２】
上述の例では、レイアウトパターンを作成する過程に存在する故障要因を検証する場合を説明したが、同様に、マスクを用いて論理回路３００を半導体装置上に具現化するための各種のプロセス処理においては、例えば製造上の各種欠陥等が故障要因として発生する場合がある。この種の欠陥による故障を検証する場合、第４のステップでは、論理回路３００が形成された半導体装置に対して故障検証を行う。具体的には、前述の第２のステップで生成された入力テストパターンおよび期待値テストパターンを有するテスト用プログラムを予め作成し、このプログラムを半導体試験装置の一種であるロジックテスタに読み込む。そして、このロジックテスタを用いて入力テストパターンを半導体装置に印加し、その入力パターンに対する出力パターンと期待値パターンとを比較することにより故障検証を行う。この場合、論理回路が形成された半導体装置は、必ずしも全てのプロセス処理が終了したものに限定されず、故障検証を実施することが可能であれば、プロセス処理の途中であってもよい。これにより故障を早期に発見することが可能になり、その後の無駄なプロセス処理を防止することができる。
以上で、故障検証方法を説明した。
【００３３】
ここで、本実施形態では、順序回路を組合せ回路に置換した後の論理回路を用いて入力テストパターンを生成する一方（第２のステップ）、置換する前の論理回路を用いて期待値テストパターンを生成している（第３のステップ）。即ち、入力テストパターンと期待値テストパターンは、厳密には異なる論理回路を用いてそれぞれ生成される。従って、上述の第４のステップにおいて、現実の論理回路（置換前の論理回路に相当する回路）に適用する場合、上述の第２のステップで得られた入力テストパターンを適用すると、この入力テストパターンに対して出力されるべきパターンが必ずしも上述の第３のステップで得られた期待値テストパターンと一致しない場合が起こり得る。そこで、このような場合には、必要に応じて、クロック信号（トグル信号）を与え直す。このための方法としては、入力テストパターンの波形属性（例えばセットアップ／ホールド時間）を変更する方法、または入力テストパターン自体を入れ替える方法がある。
【００３４】
ここで、図７（ａ）に、入力テストパターンの波形属性の変更例を示す。同図上段に、上述の第２のステップで得られる入力テストパターンの波形の一例を示し、同図下段に、その波形属性であるセットアップ時間およびホールド時間を変更した波形の一例を示す。この例では、各サイクルでのセットアップ時間およびホールド時間（波形属性）は変更されているが、各サイクルの波形が表す論理値は維持されている。
また、図７（ｂ）に、入力テストパターン自体を入れ替える例を示す。同図上段に、上述の第２のステップで得られる入力テストパターンの波形の一例を示し、同図下段に、その波形自体を入れ替えたものの一例を示す。この例では、各サイクルの波形が表す論理値は必ずしも維持されておらず、論理値が反転しているサイクルも存在する。どのサイクルの論理値を反転するかは、入力テストパターンに対して出力されるべきパターンと期待値テストパターンとの不一致の内容に応じて適切に設定すればよい。
上述のテストパターンの波形属性を変更する作業およびテストパターンを入れ替える作業は、基本的には人手で行うが、この作業は、第２のステップで生成された入力テストパターンを基にした作業であるため、作業者に与える負荷を最小限に抑えることができる。
なお、必要に応じて、上述の波形属性が変更されたテストパターンの波形を反転させて用いてもよく、同様に、入れ替えたテストパターンの波形を反転させてもよい。
【００３５】
次に、図８ないし図１１を参照して、順序回路を組合せ回路で置換することによるトグルの発生頻度（回路の活性化率）の改善効果について説明する。
図８は、本発明を適用する前の被検証対象である論理回路の具体例を示す。同図に示すように、論理和ゲート６０２の一方の入力部には、インバータ６０１を介して信号ＰＩＣの反転信号が与えられると共に、その他方の入力部には信号ＨＩＲＭが与えられ、その出力部はＤフリップフロップ６０３のデータ端子に接続される。Ｄフリップフロップ６０３のクロック端子には信号ＭＣＫが与えられると共に、その出力部はインバータ６０４を介して論理積ゲート６０５の一方の入力部に接続される。論理積ゲート６０５の出力部はＤフリップフロップ６０６のデータ端子に接続されと共に、このＤフリップフロップ６０６のクロック端子には信号ＭＣＫが与えられる。Ｄフリップフロップ６０６の出力端子は論理積ゲート６０７の一方の入力部に接続されると共に、その他方の入力部には信号ＰＩＣが与えられ、その出力信号は信号ＴＧＩＣとされる。
【００３６】
また、否定的論理積ゲート６０８の一方の入力部には信号ＩＣ２ＤＡＣが与えられると共に、その他方の入力部には信号ＰＩＣが与えられ、その出力部は３入力型の否定的論理積ゲート６０９の１つの入力部に接続される。この否定的論理積ゲート６０９の残りの２つの入力部には信号ＳＲＳＴＡＬＬおよび信号ＳＲＳＴＳＷＰが与えられると共に、その出力部は上述の論理積ゲート６０５の他方の入力部に接続される。インバータ６１１の入力部は上述の否定的論理積ゲート６０８の出力部に接続されると共に、その出力信号は信号ＩＣとされる。論理和ゲート６１０の一方の入力部は上述の否定的論理積ゲート６０８の出力部に接続されると共に、その他方の入力部には信号ＳＲＳＴＡＬＬが与えられる。インバータ６１２の入力部は上述の論理和ゲート６１０の出力部に接続されると共に、その出力信号は信号ＣＰＵＩＣとされる。インバータ６１３の入力部は上述の否定的論理積ゲート６０９の出力部に接続されると共に、その出力信号は信号ＳＷＰＩＣとされる。
【００３７】
図９に、上述の図８に示す論理回路のタイミングチャートの一例を示す。図９から理解されるように、時刻ｔ１〜ｔ２の区間と時刻ｔ３〜ｔ４の区間との両区間において、入力パターンを構成する信号ＭＣＫ，ＰＩＣ，ＩＣ２ＤＡＣ，ＳＲＳＴＡＬＬ，ＳＲＳＴＳＷＰ，ＨＩＲＭに対し、出力パターンを構成する信号ＴＧＩＣ，ＩＣ，ＣＰＵＩＣ，ＳＷＰＩＣの４つのうち、３つの信号ＩＣ，ＣＰＵＩＣ，ＳＷＰＩＣのみにトグルが発生しており、信号ＴＧＩＣにはトグルが発生していない。これは、Ｄフリップフロップ６０３，６０６で状態が保存されることに起因している。
【００３８】
図１０は、上述の図７に示す論理回路に対して本発明を適用して得られる論理回路を示す。図１０に示す論理回路は、図８に示すＤフリップフロップ６０３，６０６を所定の組合せ回路８０１，８０２で置換したものであり、この組合せ回路８０１，８０２は、上述の図１（ｂ）に示すものと同様の構成を有している。
図１１に、図１０に示す論理回路のタイミングチャートの一例を示す。図１１から理解されるように、上述の図８の時刻ｔ１〜ｔ３に対応する時刻ｔ１１〜ｔ１４の全区間において、入力パターンを構成する信号ＭＣＫ，ＰＩＣ，ＩＣ２ＤＡＣ，ＳＲＳＴＡＬＬ，ＳＲＳＴＳＷＰ，ＨＩＲＭに対し、出力パターンを構成する信号ＴＧＩＣ，ＩＣ，ＣＰＵＩＣ，ＳＷＰＩＣの全ての信号にトグルが発生しており、各クロック周期において、内部回路の全てが活性化されている。これは、組合せ回路８０１，８０２が上述のＤフリップフロップ６０３，６０６のように状態を保存することがなく、リアルタイムに入力信号に応答して出力信号を形成するためである。このように、順序回路を組合せ回路で置換することにより、論理回路の内部ノードにトグルを有効に発生させることが可能になり、従ってフォールトカバレッジを改善することが可能になる。
【００３９】
最後に、上述の故障検証用テストパターン生成方法および故障検証方法を実施するための装置を説明する。
上述の故障検証用テストパターン生成方法および故障検証方法の各手順は、例えばコンピュータ用のプログラムとして記述することにより、故障検証用テストパターン生成装置および故障検証装置として実現することができる。即ち、このようなプログラムをコンピュータにインストールすることにより、コンピュータおよびその周辺装置には、上述の各ステップを実行するための処理部が構築され、このようなコンピュータおよびその周辺装置は、故障検証用テストパターン生成装置または故障検証装置として機能する。
【００４０】
具体的には、上述の第１ないし第３のステップを実行するためのプログラムをインストールすることにより、そのコンピュータは、順序回路を有する論理回路の故障を検証するためのテストパターンを生成する故障検証用テストパターン生成装置として機能する。即ち、上述の第１のステップを実行するための置換処理部と、上述の第２のステップを実行するための入力パターン生成処理部と、上述の第３のステップを実行するための期待値生成処理部とを備えた故障検証用テストパターン生成装置が構成される。
また、上述の第１ないし第３のステップに加え、上述の第４のステップを実行するためのプログラムをインストールすることにより、そのコンピュータは、上述の置換処理部と入力パターン生成処理部と期待値生成処理部とに加え、上記第４のステップを実行するための故障検証処理部を備え、順序回路を有する論理回路の故障を検証する故障検証装置が構成される。
【００４１】
以下に、本実施形態による効果をまとめる。
（１）論理回路の設計段階で、順序回路のライブラリモデル（参照モデル）を本実施形態による所定の組合せ回路に置換することにより、スキャン回路を導入することなく、ＡＴＰＧを用いてテストパターンを生成することができる。従って、装置上に具現化される回路にはスキャン回路などの冗長な回路部分が含まれず、装置上での回路規模の増加を防止することができる。
（２）ＡＴＰＧの機能を利用してテストパターンを作成することができる。従って、人手作業を省くことができ、テストパターンの作成作業を軽減することができる。
（３）ＡＴＰＧの機能を利用してフォールトカバレッジを概略的に求めることができ、これによりテストが困難な回路部分を把握することができる。
（４）本実施形態により生成されたテストパターンを故障シミュレーションに利用することもできる。
【００４２】
以上、この発明の実施形態について詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述の実施形態では、図１（ｂ）に示す組合せ回路１１０を論理積ゲート１１１を用いて構成したが、論理和ゲート、否定的論理積ゲート、否定的論理和ゲートなど、他のゲート回路を用いてもよく、入力信号間のタイミング上の制約を受けることなく、入力信号に応答して出力信号にイベントが発生するものであればよい。図２（ｂ）に示す組合せ回路２１０についても同様である。上述の図１（ｃ）に示す組合せ回路１２０についても同様であり、入力信号間のタイミング上の制約を受けることなく、入力信号に応答して出力信号にイベントが発生する組合せ回路であってデータを直接的に入力するためのテスト用入力端子を有するものであればよい。
また、上述の実施形態では、基本ゲート回路であるＤフリップフロップやＤラッチを置換する場合を例として説明したが、これに限定されることなく、複数の組合せ回路が全体として順序回路を形成するような場合にも適用することができる。
【００４３】
また、上述の実施形態では、複数のＤフリップフロップ３３１，３３２，３３３を論理積ゲートからなる組合せ回路４３１，４３２，４３３で置換する場合を例として説明したが、例えば論理和ゲートからなる他の組合せ回路を混用して置換するものとしてもよい。この構成によれば、前段側の周辺組合せ回路の構成上、順序回路に入力される複数の入力信号がロウレベルとなる頻度が高い場合には、この順序回路を置換する組合せ回路として論理和ゲートから構成されたものを用いることにより、トグルの発生頻度を向上させることができる。なぜなら、論理和ゲートの場合、一方の入力信号がハイレベルであれば、他方の入力信号が変化しても出力が固定され、トグルが発生しなくなるからである。同様の理由により、順序回路に入力される複数の入力信号がハイレベルとなる頻度が高い場合には、この順序回路を置換する組合せ回路として論理積ゲートから構成されたものを用いることにより、トグルの発生頻度を向上させることができる。
【図面の簡単な説明】
【００４４】
【図１】Ｄフリップフロップを置換するために使用される組合せ回路の構成例を説明するための図である。
【図２】Ｄラッチを置換するために使用される組合せ回路の構成例を説明するための図である。
【図３】本発明の適用対象とされる論理回路の構成例を示す図である。
【図４】本発明に係る組合せ回路が適用された論理回路の構成例を示す図である。
【図５】本発明に係る他の組合せ回路（テスト用端子有り）が適用された論理回路の構成例を示す図である。
【図６】本発明に係る故障検証用テストパターンの生成手順（方法）を示すフローチャートである。
【図７】本発明に係る入力テストパターンの波形属性の変更方法および入れ替え方法を説明するためのタイミングチャートである。
【図８】トグルの改善効果を説明するための論理回路の構成（組合せ回路を適用する前の構成）の一例を示す図である。
【図９】図８に示す論理回路（組合せ回路を適用する前）のタイミングチャートである。
【図１０】トグルの改善効果を説明するための論理回路の構成（組合せ回路を適用した後の構成）の一例を示す図である。
【図１１】図１０に示す論理回路（組合せ回路を適用した後）のタイミングチャートである。
【符号の説明】
【００４５】
１１０，１２０，２１０，４３１，４３２，４３３，５３１，５３２，５３３；組合せ回路、１１１，１２１，１２２，２１１；論理積ゲート、１１２，１２４；バッファ、１１３，１２５，１２６；インバータ、１２３；３００，４００；論理回路、論理和ゲート、３２１，３２２，３２３；周辺組合せ回路、３１１，３１２；入力バッファ、３４１，３４２，３４３；出力バッファ。
【図１】
2005207925.tif 000003
【図２】
2005207925.tif 000004
【図３】
2005207925.tif 000005
【図４】
2005207925.tif 000006
【図５】
2005207925.tif 000007
【図６】
2005207925.tif 000008
【図７】
2005207925.tif 000009
【図８】
2005207925.tif 000010
【図９】
2005207925.tif 000011
【図１０】
2005207925.tif 000012
【図１１】
2005207925.tif 000013