(57)【特許請求の範囲】
【請求項１】
一または複数のトランジスタを有する一または複数のセルを用いて設計された半導体集積回路について、該半導体集積回路の動作を検査するテストパターンを生成する半導体集積回路のテストパターン生成方法であって、
該半導体集積回路を構成する各セルのセル種別毎に、該セル内の各トランジスタ端子間電圧と該セルの入出力端子電圧とに対応して、該各トランジスタ端子間電圧のそれぞれが、指定した判定電圧値以上である期間の累計が、特定時間以上存在するか否かで該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、
一定値以上の電圧を印加する各トランジスタ端子間を選択し、当該トランジスタ端子間に対して所定電圧が印加できるように当該トランジスタを持つセルにセル状態を入力値として割り当て、
当該セル状態を実現させるために該セルの外部入力端子の入力シーケンスをテストパターンとして生成するテストパターン生成工程を有する半導体集積回路のテストパターン生成方法。
【請求項２】
前記テストパターン生成工程は、
前記半導体集積回路を構成する全ての対象セルのトランジスタ端子間の活性化対象リストから、一つのトランジスタ端子間を選択する工程と、
該選択したトランジスタ端子間を活性化させるためのそのトランジスタを含む対象セルのセル状態を、前記トランジスタ活性条件表から選択する工程と、
該選択したトランジスタ端子間を活性化させるために、該選択したセル状態の論理値を入力値として割り当てるように該対象セルの入力値を求め、当該対象セルの入力値を前記外部入力端子の入力シーケンスとしてテストパターンを生成する工程とを有する請求項１に記載の半導体集積回路のテストパターン生成方法。
【請求項３】
前記テストパターン生成工程は、
前記対象セルの選択トランジスタ端子間が活性化するように、求めた対象セルの入力値を外部入力値として割り当てて該対象セルを論理シュミレーションにより論理動作させる工程と、
該論理シュミレーションにより該対象セルの選択トランジスタ端子間が活性化できた場合には、その端子間に活性化可能フラグを立てて前記活性化対象リストから外すと共に、該対象セルの選択トランジスタ端子間が全ての外部入力値の組合せに対して活性化できない場合には、活性化不可能フラグを立てて該活性化対象リストから外す工程と、
該外部入力値で論理シュミレーションを実行したときに、他の活性化可能なトランジスタ端子間も活性化対象リストから外す工程とをさらに有し、
該他の活性化可能なトランジスタ端子間も活性化対象リストから外す処理をした後に、前記一つのトランジスタ端子間を選択する工程に戻って、全てのトランジスタ端子間に対して活性化の有無を調べ終わるまで処理を繰り返す請求項２に記載の半導体集積回路のテストパターン生成方法。
【請求項４】
前記テストパターン生成工程は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させる回数を指定し、その回数を超えるように該トランジスタ端子間に対して複数のテストベクトルを与える請求項１に記載の半導体集積回路のテストパターン生成方法。
【請求項５】
前記テストパターン生成工程は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障が発生した場合に縮退故障を設定し、その故障の影響を外部出力端子まで出力させることができるように前記テストパターンを生成する請求項１に記載の半導体集積回路のテストパターン生成方法。
【請求項６】
前記テストパターン生成工程は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、ＡＴＰＧ(自動テストパターン生成ツール)を用いて前記テストパターンを生成する請求項１に記載の半導体集積回路のテストパターン生成方法。
【請求項７】
前記テストパターン生成工程は、
前記セルがスキャンフリップフロップの論理値を、スキャン設計構造を用いて割り当てる請求項１に記載の半導体集積回路のテストパターン生成方法。
【請求項８】
前記テストパターン生成工程は、
前記スキャン設計構造を用いて、対象セルのセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障がある場合に、前記縮退故障を設定し、その故障の影響を次段のセルのスキャンフリップフロップまで出力することができるように前記テストパターンを生成する請求項７に記載の半導体集積回路のテストパターン生成方法。
【請求項９】
請求項１〜８のいずれかに記載の半導体集積回路のテストパターン生成方法の工程をコンピュータに実行させるための処理手順が記述された制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムが格納されたコンピュータ読み取り可能な可読記憶媒体。
【請求項１１】
一または複数のトランジスタを有する一または複数のセルを用いて設計された半導体集積回路について、該半導体集積回路の動作を検査するテストパターンを生成する半導体集積回路のテストパターン生成装置であって、
該半導体集積回路を構成する各セルのセル種別毎に、該セル内の各トランジスタ端子間電圧と該セルの入出力端子電圧とに対応して、該各トランジスタ端子間電圧のそれぞれが、指定した判定電圧値以上である期間の累計が、特定時間以上存在するか否かで該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、
一定値以上の電圧を印加する各トランジスタ端子間を選択し、当該トランジスタ端子間に対して所定電圧が印加できるように当該トランジスタを持つセルに該セル状態を入力値として割り当て、
当該セル状態を実現させるために該セルの外部入力端子の入力シーケンスをテストパターンとして生成するテストパターン生成手段を有する半導体集積回路のテストパターン生成装置。
【請求項１２】
前記テストパターン生成手段は、
前記半導体集積回路を構成する全ての対象セルのトランジスタ端子間の活性化対象リストから、一つのトランジスタ端子間を選択する手段と、
該選択したトランジスタ端子間を活性化させるためのそのトランジスタを含む対象セルのセル状態を、前記トランジスタ活性条件表から選択する手段と、
該選択したトランジスタ端子間を活性化させるために、該選択したセル状態の論理値を入力値として割り当てるように該対象セルの入力値を求め、当該対象セルの入力値を前記外部入力端子の入力シーケンスとしてテストパターンを生成する手段とを有する請求項１１に記載の半導体集積回路のテストパターン生成装置。
【請求項１３】
前記テストパターン生成手段は、
前記対象セルの選択トランジスタ端子間が活性化するように、求めた対象セルの入力値を外部入力値として割り当てて該対象セルを論理シュミレーションにより論理動作させる手段と、
該論理シュミレーションにより該対象セルの選択トランジスタ端子間が活性化できた場合には、その端子間に活性化可能フラグを立てて前記活性化対象リストから外すと共に、該対象セルの選択トランジスタ端子間が全ての外部入力値の組合せに対して活性化できない場合には、活性化不可能フラグを立てて該活性化対象リストから外す手段と、
該外部入力値で論理シュミレーションを実行したときに、他の活性化可能なトランジスタ端子間も活性化対象リストから外す手段とをさらに有し、
該他の活性化可能なトランジスタ端子間も活性化対象リストから外す処理をした後に、前記一つのトランジスタ端子間を選択する工程に戻って、全てのトランジスタ端子間に対して活性化の有無を調べ終わるまで処理を繰り返す請求項１２に記載の半導体集積回路のテストパターン生成装置。
【請求項１４】
前記テストパターン生成手段は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させる回数を指定し、その回数を超えるように該トランジスタ端子間に対して複数のテストベクトルを与える請求項１１に記載の半導体集積回路のテストパターン生成装置。
【請求項１５】
前記テストパターン生成手段は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障が発生した場合に縮退故障を設定し、その故障の影響を外部出力端子まで出力させることができるように前記テストパターンを生成する請求項１１に記載の半導体集積回路のテストパターン生成装置。
【請求項１６】
前記テストパターン生成手段は、
前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、ＡＴＰＧ(自動テストパターン生成ツール)を用いて前記テストパターンを生成する請求項１１に記載の半導体集積回路のテストパターン生成装置。
【請求項１７】
前記テストパターン生成手段は、
前記セルがスキャンフリップフロップの論理値を、スキャン設計構造を用いて割り当てる請求項１１に記載の半導体集積回路のテストパターン生成装置。
【請求項１８】
前記テストパターン生成手段は、
前記スキャン設計構造を用いて、対象セルのセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障がある場合に、前記縮退故障を設定し、その故障の影響を次段のセルのスキャンフリップフロップまで出力することができるように前記テストパターンを生成する請求項１７に記載の半導体集積回路のテストパターン生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一または複数のトランジスタを有する一または複数のセルを用いて設計した半導体集積回路の動作を検査するための半導体集積回路のテストパターン生成方法およびこれを実施する半導体集積回路のテストパターン生成装置、このテストパターン生成方法の各工程をコンピュータに実行させるための処理手順が記述された制御プログラム、この制御プログラムが格納されたコンピュータ読み取り可能な可読記録媒体に関する。
【背景技術】
【０００２】
従来、半導体集積回路の製造の一環として、半導体集積回路に対して出荷前に不良品を検出してより信頼性の高い製品を出荷するために各種の試験が行われている。この出荷前の信頼性試験には、半導体集積回路を構成する各トランジスタのゲート酸化膜を代表とするトランジスタ端子間の信頼性を確認する検査がある。
【０００３】
具体的には、検査対象の半導体集積回路について、回路を構成する各トランジスタのゲート酸化膜の検査用のテストパターンを予め作成しておき、高温環境下において、半導体集積回路の電源端子に定格電圧よりも高い電圧を印加した状態で、作成したテストパターンを半導体集積回路の入力端子から入力する。この方法で半導体集積回路を構成する各トランジスタのゲート酸化膜に特定電圧を必要時間印加し、各トランジスタのゲート酸化膜の絶縁耐久性を検査している。
【０００４】
このようなゲート酸化膜の絶縁耐久性などの出荷時の検査では、全てのトランジスタに対して適切な電圧を適切な時間だけ印加する必要があり、それぞれのトランジスタに印加される電圧および時間にばらつきが生じた場合、精度の高い出荷検査を行うことができない。したがって、半導体集積回路を構成する全てのトランジスタに対して、適切な時間だけ印加できるようなテストパターンを作成することが望ましい。
【０００５】
上記検査において、半導体集積回路を構成するトランジスタのそれぞれに適切な電圧が適切な時間だけ印加されているか否かを把握することは困難である。したがって、作成したテストパターンの良否を検証することが困難であるため、全てのトランジスタに適切な電圧を印加できるテストパターンを作成することは非常に困難であるという問題がある。また、半導体集積回路の回路規模の増大に伴ってテストパターンの作成も困難になってきている。
【０００６】
従来は、厳しい条件で長時間行う加速耐久試験（バーンインテスト）などの信頼性試験において、テスト品質を評価する尺度として、トグル率を用いている。このトグル率とは、ロジック回路の信頼性試験用パターンが半導体集積回路内部のセルとセルを接続する配線の論理値を「０」と「１」に変化させることができる配線数の割合を全配線数に対して示す値である。
【０００７】
特許文献１では、ロジック回路のバーンイン信頼性試験において、トグル率を用いてテストパターンを評価している。これを図９を用いて説明する。
【０００８】
図９は、特許文献１に開示されている従来のゲートレベルネットリストを示す回路図である。
【０００９】
図９において、ナンドゲートの入力端子Ａにテストパターンとして「１０１」が入力され、その入力端子Ｂにテストパターンとして「０１１」が入力される。即ち、入力端子Ａにテストパターン「１」を入力すると同時に入力端子Ｂにテストパターン「０」を入力する。次に、入力端子Ａにテストパターン「０」を入力すると同時に入力端子Ｂにテストパターン「１」を入力する。さらに、入力端子Ａにテストパターン「１」を入力すると同時に入力端子Ｂにテストパターン「１」を入力する。この場合に、ナンドゲートの出力配線に「１１０」の出力値が出力され、その出力値がインバータを介して出力配線に「００１」の出力値が出力される。要するに、テストパターン「１０１」および「０１１」を入力した場合に、ナンドゲートの出力端に接続される配線の論理値として「１１０」、さらに、インバータの出力端に接続される配線の論理値として「００１」が順次得られれば、論理的な出力結果だけを見て回路が活性化されているものとして、信頼性試験結果としては、良品となる。
【００１０】
非特許文献１では、ＡＴＰＧ（オートマチックテストパターンジェネレータ）のマニュアルについて開示している。この場合、ロジック回路の標準セル間を接続する配線のトグル率を向上させるテストパターンを生成することができる。ここでは、検査対象のロジック回路はスキャン設計されており、トグル対象となる信号線に対して、「０」または「１」が印加されるように、スキャンフリップフロップの値を決定している。その決定した値は、スキャン設計構造を利用して、スキャン入力端子から、各スキャンフリップフロップに設定し、対象となる信号線をトグルさせている。
【特許文献１】特開２００２−３４０９８８号公報
【非特許文献１】Synopsys社製自動テストパターン生成ツール「TetraMAX」User Guide Version Y-2006.06
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記特許文献１のようなトグル率（論理値）だけによるテスト品質の評価方法では、約数個〜数十個のトランジスタで構成される標準セルをライブラリ化し、そのセルライブラリを用いて設計されるロジック回路に対して、セル内部、例えば図９ではナンドゲートやインバータを構成する各トランジスタそのものがそれぞれ確実に活性化できているかどうか、即ち、セル内部の各トランジスタ自体の各端子間(例えばドレイン（Ｄ）・ソース（Ｓ）間、ゲート（Ｇ）・ソース（Ｓ）間、ゲート（Ｇ）・ドレイン（Ｄ）間)に適切な電圧が所定時間印加されているかどうかの保証は全くない。このように、信頼性試験の目的である、セル内部の各トランジスタの各端子間の耐久性（絶縁性）を調べるストレス試験において、各トランジスタがそれぞれ適切に活性化できているという保証はないという問題を有している。
【００１２】
一方、非特許文献１では、トグル率を向上させるためのテストパターンの生成を行なうことはできるが、信号線に少なくとも１回は「０」または「１」が印加するという条件でテストパターンを生成しているため、この場合も、セル内部の各トランジスタの全ての各端子間に対して所定電圧が印加されているかどうか、さらにその各端子間に印加する電圧が必要な時間(この場合は必要な印加回数、印加回数が分かれば印加時間も累積時間として分かる)だけ印加できているかどうかの保証は全くないという問題を有している。
【００１３】
図１０は、図９のゲートレベルネットリストをトランジスタレベルで示す回路図である。
【００１４】
図１０において、トランジスタが活性化できない場合として、例えば入力端子ＡおよびＢに入力値として単に「０」および「０」だけを入力した場合に、当然のことながら、図９のナンドゲートを構成する例えばトランジスタｍ０のゲート・ソース間電圧はゼロ電圧であり、トランジスタｍ０のゲート・ソース間には電圧が印加されず、トランジスタｍ０は活性化できていない。
【００１５】
ここで、従来技術で用いているトグル率の向上を目的としたテストパターン生成では、実際に全てのトランジスタを活性化できていないことについて、以下に詳細に説明する。
【００１６】
まず、トランジスタの活性化について説明する。
【００１７】
図１１は、セル内部に存在するトランジスタが活性化される条件を示す図である。
【００１８】
図１１において、Ｇ，Ｄ，Ｓはトランジスタの各端子名を表し、それぞれゲート、ドレイン、ソースを表している。また、Ｖｇｓはゲート・ソース間電圧、Ｖｄｓはドレイン・ソース間電圧、Ｖｇｄはゲート・ドレイン間電圧を表している。テストパターン印加期間中に、トランジスタ端子間電圧Ｖｇｓ，Ｖｄｓ， Ｖｇｄのそれぞれが、指定した判定電圧値以上である期間の累計が、特定時間以上存在すれば、そのトランジスタは活性化されたものと判断することができる。
【００１９】
トランジスタ端子間電圧は、ロジック回路の電源電圧ＶＤＤと、そのトランジスタを持つセルのセル状態で決まる。このセル状態とは、アンドゲートやナンドゲート、オアーゲートやノアーゲート、インバータなどのセルの入力論理値と出力論理値との組合せである。したがって、トランジスタ端子間電圧は、ロジック回路の電源電圧ＶＤＤが既知であれば、入力論理値と出力論理値で決まるため、トランジスタ端子間を活性化させるためには、そのセル状態を実現するような論理値をフリップフロップや外部入力端子に設定することで実現可能である。また、フリップフロップの値を決定するために、外部入力論理値のシーケンスを決定することで実現できる。
【００２０】
なお、図１１には図示していないが、基板側とトランジスタの３端子Ｇ，Ｄ，Ｓそれぞれとの電圧も考えられ、本発明に係わることにおいて、これらを活性化条件として加えても構わない。
【００２１】
次に、トランジスタの活性化率について説明する。
【００２２】
図１１に示した条件を満たすトランジスタ数をロジック回路内部に存在する全てのトランジスタ数で割り算した値をトランジスタの活性化率と定義する。
【００２３】
次に、トランジスタ活性テーブルの作成方法について説明する。
【００２４】
図１２は、２入力ＮＡＮＤセルライブラリを示す図であって、（ａ）は、ナンドゲートを示す回路図、（ｂ）は２入力値Ａ，Ｂと出力値Ｙとの関係を示す図、（ｃ）は、（ａ）のナンドゲートをトランジスタベースで示す回路図、（ｄ）は、（ｃ）の回路図をＳＰＩＣＥ用ネットリストとして表現したネットリスト図である。
【００２５】
図１３は、図１２（ｃ）のＮＡＮＤセルライブラリに対する「ＳＰＩＣＥ」のＤＣ解析条件例を示す図である。
【００２６】
図１３の４つの条件(全状態を再現するための４つの入力電圧条件)でＳＰＩＣＥシミュレーションを行うことにより、図１２（ｃ）のセル内部の４つのトランジスタｍ０，ｍ１，ｍ２，ｍ３の各端子Ｖｇｓ，Ｖｄｓ，Ｖｇｄが規定の電圧値以上であるかどうかを判定する。
【００２７】
ここでのナンドゲート（ＮＡＮＤゲート）のような組合せセルの場合は、「ＳＰＩＣＥ」のＤＣ解析を行うだけで電圧値を求めることができる。このＤＣ解析は、トランジェント解析とは違い、時間変化に伴うシミュレーションを実施しないので、高速で実施することが可能である。フリップフロップのような順序セルに対しては、ＤＣ解析では出力値をコントロールすることが容易でないので、時間精度を粗くしたトランジェント解析を行うことにより、全状態でのトランジスタの端子間電圧を計算することができる。これらの作業は、同一のセルライブラリに対して一度実施するだけでよく、一度、セルライブラリに対して実施しておけば、同じライブラリを使った別のロジック回路に対して、改めてトランジスタ活性テーブルを生成する必要はない。
【００２８】
図１４は、図１２（ａ）の２入力ＮＡＮＤセルに対するトランジスタ活性条件テーブルの一例を示す図である。
【００２９】
図１４では、図１２（ａ）の２入力ＮＡＮＤセルを構成する４つのトランジスタｍ０，ｍ１，ｍ２，ｍ３それぞれの各端子Ｖｇｓ，Ｖｄｓ，Ｖｇｄがセル状態（Ａ，Ｂ）＝（００），（０１），（１０），（１１）に対して規定する所定電圧値以上なら「１」、そうでないならば「０」で示している。
【００３０】
前述したように、図１３は、２入力ＮＡＮＤセルライブラリを示す図であったが、これに限らず、図１５は、ＩＮＶセルライブラリを示す図であって、（ａ）はインバータ（ＩＮＶ）を示す回路図、（ｂ）は１入力値Ａと出力値Ｙとの関係を示す図、（ｃ）は、（ａ）のインバータをトランジスタベースで示す回路図、（ｄ）は、（ｃ）の回路図をＳＰＩＣＥ用ネットリストとして表現したネットリスト図である。
【００３１】
同様に、図１６は、ＩＮＶセルライブラリに対するトランジスタ活性テーブルを示している。
【００３２】
次に、トランジスタ活性化率算出方法と、従来技術の問題点について説明する。
【００３３】
図１７は、トランジスタ活性化率算出方法と従来技術の問題点を説明するためのサンプル回路である。図１７のサンプル回路を用いて、従来技術のトグル率によるテスト品質の評価における問題点について詳細に説明する。
【００３４】
図１７に示すように、このサンプル回路は、各外部入力端子ａ，ｂ，ｃ，ｄ，ｅからそれぞれ各入力電圧ａ，ｂ，ｃ，ｄ，ｅをそれぞれ入力し、外部出力端子ｙから出力電圧ｙを出力する。このサンプル回路を構成する各セルとして、セルｇ１，ｇ３，ｇ５，ｇ６が２入力ＮＡＮＤセル、セルｇ２，ｇ４がインバータセルである。これらの各セルを、内部信号線の内部ノードｎ１，ｎ２，ｎ３，ｎ４，ｎ５でそれぞれ電気的に接続している。図１７のサンプル回路をテストする各入力電圧ａ，ｂ，ｃ，ｄ，ｅのテストパターンとして、図１８（ｂ）のテストパターンを印加した場合の各信号線の論理値が推移する電圧波形を図１８（ａ）に示している。
【００３５】
図１８（ａ）を見ると、全ての入力電圧ａ，ｂ，ｃ，ｄ，ｅ、出力電圧ｙおよび内部ノードｎ１，ｎ２，ｎ３，ｎ４，ｎ５が一度は「０」（ローレベル）または「１」（ハイレベル）になっていることから、図１８（ｂ）のテストパターンを図１７のサンプル回路に印加した場合は、トグル率は１００パーセントであることが分かる。
【００３６】
図１７で使用しているＮＡＮＤセルとＩＮＶセルのトランジスタ構成がそれぞれ図１２（ｃ）および図１５（ｃ）に示す回路であったとして、図１７のサンプル回路をトランジスタレベルで見てみると、入力電圧ベクトル（ａ，ｂ，ｃ，ｄ，ｅ）=「００１００」のとき、ＮＡＮＤセルｇ１の入力論理値は（Ａ，Ｂ）=「００」であり、このときのＮＡＮＤセルｇ１内の各トランジスタの端子間電圧が印加されているか否か(活性化されているか否か)は、図１４のトランジスタ活性テーブルの「１」を参照することで分かる。
【００３７】
ＮＡＮＤセルｇ１の入力論理値は（Ａ，Ｂ）=「００」の場合は、トランジスタｍ１の端子間電圧ＶｇｓおよびＶｄｓ、トランジスタｍ２の端子間電圧ＶｇｓおよびＶｇｄ、トランジスタｍ３の端子間電圧ＶｇｓおよびＶｇｄが「１」で活性化されていることが分かる。
【００３８】
これと同様に、入力電圧ベクトル（ａ，ｂ，ｃ，ｄ，ｅ）＝「１１０１１」の場合は、ＮＡＮＤセルｇ１の入力論理値(セル状態ともいう)が（Ａ，Ｂ）＝「１１」、入力電圧ベクトル（ａ，ｂ，ｃ，ｄ，ｅ）＝「１００００」と「１０１００」の場合は、ＮＡＮＤセルｇ１の入力論理値(セル状態ともいう)が（Ａ，Ｂ）＝「１０」となる。図１８（ｂ）のテストパターンの全ての入力電圧ベクトルを印加すると、ＮＡＮＤセルｇ１のセル状態は（Ａ，Ｂ）=「００」，「１１」および「１０」の３通りとなり、図１４のトランジスタ活性テーブルを参照すると、セル状態に対するトランジスタｍ０、ｍ１、ｍ２、ｍ３の各端子間電圧Ｖｇｓ，Ｖｄｓ，Ｖｇｄはそれぞれ、一度は必ず「１」で活性化されていることになる。ただし、ここでは各トランジスタ端子間にテストパターンの単位時間の１００ｎｓ以上電圧が印加されたら活性化されたものとしている。この場合、ＮＡＮＤセルｇ１において、全てのトランジスタが活性化されたため、ＮＡＮＤセルｇ１のトランジスタ活性化率は１００パーセント(４個中のトランジスタで活性化されたものが４個)となる。
【００３９】
以上のことを図１７のサンプル回路の他のセルについて調べると、ＮＡＮＤセルｇ３、ｇ５、インバータセルｇ２，ｇ４も図１８（ｂ）のテストパターンの全ての入力電圧ベクトルを印加し、図１８（ａ）の電圧波形と図１４のＮＡＮＤセルおよび図１６のインバータセルのトランジスタ活性化テーブルを参照した結果、それぞれのセルにおいて、トランジスタ活性化率は１００パーセントになっている。
【００４０】
しかし、ＮＡＮＤセルｇ５については、図１８（ｂ）のテストパターンの全ての入力電圧ベクトルを印加すると、ＮＡＮＤセルｇ５のセル状態（入力値）は、図１８のノードｎ４，ノードｎ１の電位から、順に（Ａ，Ｂ）＝「１１」，「００」，「０１」，「１１」となり、図１４のトランジスタ活性化テーブルにおいて「１０」がないことが分かる。これらのセル状態（入力値）から各トランジスタ端子間の活性化の有無を図１４のトランジスタ活性化テーブルから参照すると、トランジスタｍ０の端子間電圧Ｖｄｓだけが、入力値「１０」のみが「１」でその他は「０」であるため、ＮＡＮＤセルｇ５のトランジスタｍ０の端子間電圧Ｖｄｓのみが印加されておらず、活性化されていないことが分かる。この結果、このＮＡＮＤセルｇ５のトランジスタ活性化率は３/４＝７５パーセントということになる。
【００４１】
以上から、図１７のサンプル回路全体のトランジスタ活性化率を求める。セルｇ１，ｇ２，ｇ３，ｇ４，ｇ５，ｇ６の活性化されたトランジスタ個数は、それぞれ、４個，２個，４個，２個，３個，４個であるから、合計すると１９個となり、全体のトランジスタ数は２０個であるから、図７のサンプル回路全体のトランジスタ活性化率は１９/２０=９５パーセントとなることが分かる。
【００４２】
その結果、図１８（ｂ）のテストパターンを図１７のサンプル回路に適用した場合、トグル率は１００パーセントであるものの、トランジスタ活性化率波９５パーセントとなり、従来技術で用いているトグル率の向上を目的としたテストパターンの生成では、実際に全てのトランジスタを活性化できていないことが分かる。
【００４３】
本発明は、上記従来の問題を解決するもので、トグル率のようにセル間の配線電圧のように論理値で検査するのではなく、セルを構成する全ての各トランジスタの各端子間に所定電圧を所定時間だけより確実に印加して、トランジスタ活性化率をより向上させることができる半導体集積回路のテストパターン生成方法およびこれを実行するための半導体集積回路のテストパターン生成装置、このテストパターン生成方法の各工程をコンピュータに実行させるための処理手順が記述された制御プログラム、この制御プログラムが格納されたコンピュータ読み取り可能な可読記録媒体を提供することである。
【課題を解決するための手段】
【００４４】
本発明の半導体集積回路のテストパターン生成方法は、一または複数のトランジスタを有する一または複数のセルを用いて設計された半導体集積回路について、該半導体集積回路の動作を検査するテストパターンを生成する半導体集積回路のテストパターン生成方法であって、該半導体集積回路を構成する各セルのセル種別毎に、該セル内の各トランジスタ端子間電圧と該セルの入出力端子電圧とに対応して、該各トランジスタ端子間電圧のそれぞれが、指定した判定電圧値以上である期間の累計が、特定時間以上存在するか否かで該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、一定値以上の電圧を印加する各トランジスタ端子間を選択し、当該トランジスタ端子間に対して所定電圧が印加できるように当該トランジスタを持つセルにセル状態を入力値として割り当て、当該セル状態を実現させるために該セルの外部入力端子の入力シーケンスをテストパターンとして生成するテストパターン生成工程を有するものであり、そのことにより上記目的が達成される。
【００４５】
また、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記半導体集積回路を構成する全ての対象セルのトランジスタ端子間の活性化対象リストから、一つのトランジスタ端子間を選択する工程と、該選択したトランジスタ端子間を活性化させるためのそのトランジスタを含む対象セルのセル状態を、前記トランジスタ活性条件表から選択する工程と、該選択したトランジスタ端子間を活性化させるために、該選択したセル状態の論理値を入力値として割り当てるように該対象セルの入力値を求め、当該対象セルの入力値を前記外部入力端子の入力シーケンスとしてテストパターンを生成する工程とを有する。
【００４６】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記対象セルの選択トランジスタ端子間が活性化するように、求めた対象セルの入力値を外部入力値として割り当てて該対象セルを論理シュミレーションにより論理動作させる工程と、該論理シュミレーションにより該対象セルの選択トランジスタ端子間が活性化できた場合には、その端子間に活性化可能フラグを立てて前記活性化対象リストから外すと共に、該対象セルの選択トランジスタ端子間が全ての外部入力値の組合せに対して活性化できない場合には、活性化不可能フラグを立てて該活性化対象リストから外す工程と、該外部入力値で論理シュミレーションを実行したときに、他の活性化可能なトランジスタ端子間も活性化対象リストから外す工程とをさらに有し、該他の活性化可能なトランジスタ端子間も活性化対象リストから外す処理をした後に、前記一つのトランジスタ端子間を選択する工程に戻って、全てのトランジスタ端子間に対して活性化の有無を調べ終わるまで処理を繰り返す。
【００４７】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記トランジスタ端子間に一定値以上の所定電圧を印加させる回数を指定し、その回数を超えるように該トランジスタ端子間に対して複数のテストベクトルを与える。
【００４８】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障が発生した場合に縮退故障を設定し、その故障の影響を外部出力端子まで出力させることができるように前記テストパターンを生成する。
【００４９】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、ＡＴＰＧ(自動テストパターン生成ツール)を用いて前記テストパターンを生成する。
【００５０】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記セルがスキャンフリップフロップの論理値を、スキャン設計構造を用いて割り当てる。
【００５１】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成方法におけるテストパターン生成工程は、前記スキャン設計構造を用いて、対象セルのセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障がある場合に、前記縮退故障を設定し、その故障の影響を次段のセルのスキャンフリップフロップまで出力することができるように前記テストパターンを生成する。
【００５２】
本発明の制御プログラムは、本発明の上記半導体集積回路のテストパターン生成方法の各工程をコンピュータに実行させるための処理手順が記述されたものであり、そのことにより上記目的が達成される。
【００５３】
本発明の可読記録媒体は、本発明の上記制御プログラムが格納されたコンピュータ読み取り可能なものであり、そのことにより上記目的が達成される。
【００５４】
本発明の半導体集積回路のテストパターン生成装置は、一または複数のトランジスタを有する一または複数のセルを用いて設計された半導体集積回路について、該半導体集積回路の動作を検査するテストパターンを生成する半導体集積回路のテストパターン生成装置であって、該半導体集積回路を構成する各セルのセル種別毎に、該セル内の各トランジスタ端子間電圧と該セルの入出力端子電圧とに対応して、該各トランジスタ端子間電圧のそれぞれが、指定した判定電圧値以上である期間の累計が、特定時間以上存在するか否かで該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、一定値以上の電圧を印加する各トランジスタ端子間を選択し、当該トランジスタ端子間に対して所定電圧が印加できるように当該トランジスタを持つセルに該セル状態を入力値として割り当て、  当該セル状態を実現させるために該セルの外部入力端子の入力シーケンスをテストパターンとして生成するテストパターン生成手段を有するものであり、そのことにより上記目的が達成される。
【００５５】
また、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記半導体集積回路を構成する全ての対象セルのトランジスタ端子間の活性化対象リストから、一つのトランジスタ端子間を選択する手段と、該選択したトランジスタ端子間を活性化させるためのそのトランジスタを含む対象セルのセル状態を、前記トランジスタ活性条件表から選択する手段と、該選択したトランジスタ端子間を活性化させるために、該選択したセル状態の論理値を入力値として割り当てるように該対象セルの入力値を求め、当該対象セルの入力値を前記外部入力端子の入力シーケンスとしてテストパターンを生成する手段とを有する。
【００５６】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記対象セルの選択トランジスタ端子間が活性化するように、求めた対象セルの入力値を外部入力値として割り当てて該対象セルを論理シュミレーションにより論理動作させる手段と、該論理シュミレーションにより該対象セルの選択トランジスタ端子間が活性化できた場合には、その端子間に活性化可能フラグを立てて前記活性化対象リストから外すと共に、該対象セルの選択トランジスタ端子間が全ての外部入力値の組合せに対して活性化できない場合には、活性化不可能フラグを立てて該活性化対象リストから外す手段と、該外部入力値で論理シュミレーションを実行したときに、他の活性化可能なトランジスタ端子間も活性化対象リストから外す手段とをさらに有し、該他の活性化可能なトランジスタ端子間も活性化対象リストから外す処理をした後に、前記一つのトランジスタ端子間を選択する工程に戻って、全てのトランジスタ端子間に対して活性化の有無を調べ終わるまで処理を繰り返す。
【００５７】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記トランジスタ端子間に一定値以上の所定電圧を印加させる回数を指定し、その回数を超えるように該トランジスタ端子間に対して複数のテストベクトルを与える。
【００５８】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障が発生した場合に縮退故障を設定し、その故障の影響を外部出力端子まで出力させることができるように前記テストパターンを生成する。
【００５９】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記トランジスタ端子間に一定値以上の所定電圧を印加させるために、該トランジスタ端子を持つセルにセル状態を割り当てた後、ＡＴＰＧ(自動テストパターン生成ツール)を用いて前記テストパターンを生成する。
【００６０】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記セルがスキャンフリップフロップの論理値を、スキャン設計構造を用いて割り当てる。
【００６１】
さらに、好ましくは、本発明の半導体集積回路のテストパターン生成装置におけるテストパターン生成手段は、前記スキャン設計構造を用いて、対象セルのセル状態を割り当てた後、該セル状態で決まるそのセルの出力論理値に対して固定故障がある場合に、前記縮退故障を設定し、その故障の影響を次段のセルのスキャンフリップフロップまで出力することができるように前記テストパターンを生成する。
【００６２】
上記構成により、以下、本発明の作用を説明する。
【００６３】
本発明においては、半導体集積回路を構成する各セルのセル種別毎に、セル内の各トランジスタ端子間電圧とセルの入出力端子電圧とに対応して該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、一定値以上の電圧を印加する各トランジスタ端子間を選択し、このトランジスタ端子間に対して所定電圧が印加できるようにこのトランジスタを持つセルにセル状態を入力値として割り当て、このセル状態を実現させるためにセルの外部入力端子の入力シーケンスをテストパターンとして生成している。
【００６４】
これによって、多数のトランジスタを有する半導体集積回路としてのロジック回路など、信頼性試験におけるテストパターンを、セルを構成する各トランジスタの端子間電圧レベルの精度で、回路を構成するトランジスタ全体に渡りムラなく活性化させることを可能とするテストパターンを生成することが可能となる。したがって、従来のトグル率のようにセル間の配線電圧のように論理値だけで検査するのではなく、全トランジスタの端子間電圧レベルでトランジスタの活性化率を向上させるべく生成したテストパターンを用いて半導体集積回路を検査することにより、セルを構成する全ての各トランジスタの各端子間に所定電圧を所定時間だけより確実に印加することが可能となって、トランジスタ活性化率をより向上させることが可能となり、半導体集積回路を用いた製品の品質向上を実現することが可能となる。
【発明の効果】
【００６５】
以上により、本発明によれば、多数のトランジスタを有する半導体集積回路としてのロジック回路など、信頼性試験におけるテストパターンを、セルを構成する各トランジスタの端子間電圧レベルの精度で、回路を構成するトランジスタ全体に渡りムラなく活性化させることを可能とするテストパターンを生成することができる。
【発明を実施するための最良の形態】
【００６６】
以下に、本発明の半導体集積回路のテストパターン生成方法およびこれを実行するための半導体集積回路のテストパターン生成装置の実施形態１について図面を参照しながら詳細に説明する。
【００６７】
図１は、本発明に係る半導体集積回路のテストパターンを生成するテストパターン生成装置としての例えばＥＷＳ(Engineering Work Station)の要部構成例を示すブロック図である。
【００６８】
図１において、本実施形態の半導体集積回路のテストパターン生成装置１０は、全体を制御する制御部１（ＣＰＵ；中央演算処理装置）と、可読記録媒体としての記憶装置のＨＤＤ２と、ＣＰＵ起動時にワークメモリとして働くＲＡＭ３と、入力操作を行うためのキーボードやマウスなどの操作部４と、初期画面、入力画面および演算結果画面などを各種画面を表示するディスプレイからなる表示部５と、ＬＡＮなどによる他のＥＷＳなどとの間でデータ伝送（送受信）を行う通信インターフェイス６とを有しており、それぞれがバス７で相互に接続されている。
【００６９】
ＨＤＤ２には、ＳＰＩＣＥプログラム、ＳＰＩＣＥ記述のセルライブラリ、テストパターン生成プログラム、論理シミュレーションプログラム、故障シミュレーションプログラム、論理シミュレーション用セルライブラリ、ネットリスト、生成されたテストパターンが格納されており、トランジスタ活性テーブル生成手順と図２で示すフローチャートの手順にしたがってそれぞれの各制御プログラムが実行される。
【００７０】
ＳＰＩＣＥプログラム、ＳＰＩＣＥネットリスト記述のセルライブラリ（図１２（ｄ）；例えばトランジスタｍ０で、ドレインが「Ｆ」、ゲートが「Ｂ」、ソースが「ＧＮＤ」、バルク（基板）が「ＧＮＤ」、トランジスタ特性がＮチャンネルで「ＴＮ」）、ＳＰＩＣＥ用テストベンチ（ＳＰＩＣＥネットリスト記述のセルライブラリの入力Ａ，Ｂに対して「００」〜「１１」の全通りのシミュレーションをかけるための全入力を与えるテストパターン）を用いて、図１２（ｄ）のセルライブラリを読み込んで各トランジスタの各入力端子をリストアップし、各入力端子（例えばＡ，Ｂ）の全組合せ（例えばＡ，Ｂであれば「００」〜「１１」までの４通り）を作り、例えば「００」〜「１１」を各入力端子Ａ，Ｂに順に入力してその出力（出力ノードの電圧値）を求め、各端子の端子間電圧を求め、各端子の端子間電圧が活性化条件の所定電圧よりも高いか低いかの比較手段による比較により、「１」（活性化）か「０」（不活性化）かの前述の図１４のようなセルライブラリ別トランジスタ活性テーブルを生成する。
【００７１】
また、制御プログラムとしてのテストパターン生成プログラム、制御プログラムとしての論理シミュレーションプログラム、制御プログラムとしての故障シミュレーションプログラム、論理シミュレーション用セルライブラリおよびネットリストを用いて、本発明で求めるテストパターンおよび、未活性トランジスタリストを生成する。
【００７２】
テストパターン生成プログラム（テストパターン生成手段）は、後述する図２のフローチャートのように本発明のテストパターンを生成するためのものである。
【００７３】
論理シミュレーションプログラム（論理シミュレーション手段）は、外部入力制御線の外部入力値（テストパターン）で論理シュミレーションを実行して各ノードの値（「１」か「０」）を決めるためのものである。
【００７４】
故障シミュレーションプログラム（故障シミュレーション手段）は、論理的な回路動作も検査するものであり、外部入力制御線の外部入力値（テストパターン）で論理シュミレーションを実行したときに、例えばノードｎ１が「０」固定の故障があり、それが外部出力値に影響するかどうかを調べる。要するに、故障シミュレーションプログラム（故障シミュレーション手段）は、ある１つのトランジスタ端子間に、ある一定値以上の電圧を印加させるために、そのトランジスタを持つセルのセル状態（入力値）を割り当てた後に、そのセル状態（入力値）で決まるそのセルの出力論理値に対して固定故障がある場合に縮退故障を設定し、その故障の影響が外部出力端子まで出力値として出力するまで別のセル状態（入力値）を割り当てるようにテストパターンを生成する。
【００７５】
なお、可読記録媒体としてハードディスク（ＨＤＤ２）の他に、携帯自在な光ディスク、光磁気ディスク、磁気ディスクおよびＩＣメモリなどで構成されていてもよい。この制御プログラムおよびそのデータなどがＨＤＤ２に記憶されるが、この制御プログラムおよびそのデータは、他の可読記録媒体から、または、無線、有線またはインターネットなどを介してＨＤＤ２にダウンロードされてもよい。
【００７６】
図２は、図１の半導体集積回路のテストパターン生成装置１０の動作を説明するためのフローチャートである。
【００７７】
図１の半導体集積回路のテストパターン生成装置１０を起動させると、まず、ステップＳ１で、半導体集積回路内の例えばナンドゲートやインバータなどの各種セルについて全てのトランジスタ端子間を活性化対象リストに加える。
【００７８】
次に、ステップＳ２で、全てのトランジスタ端子間に対して、前述の図１４のようなセルライブラリ別トランジスタ活性テーブルを用いて活性化の有無を調べたかどうかを判定する。全てのトランジスタ端子間について、活性化の有無を調べた場合（ｙｅｓ）には、テストパターン生成処理を終了する。また、全てのトランジスタ端子間について活性化の有無を調べていない場合（ｎｏ）には、次のステップＳ３の処理に移行する。
【００７９】
続いて、ステップＳ３で、活性化対象リストから、活性化対象リストで残っている全てのトランジスタ端子間のうち一つのトランジスタ端子間を選択する。
【００８０】
その後、ステップＳ４で、その選択トランジスタ端子間を活性化するためのそのトランジスタを含むセルの状態（入力値が「１」か「０」）を、前述の図１４のようなセルライブラリ別トランジスタ活性テーブルから選択する。
【００８１】
さらに、ステップＳ５で、その対象セル（図１７の例えばＮＡＮＤセルｇ５）の入力端子Ａ，Ｂに入力値として論理値（図１７のｎ４が「１」でｎ１が「０」）を割り当て、ｎ４を「１」にするためにはその対象セルの入力値を制御可能な外部入力制御線ｃ、ｅを求め、ｎ１を「０」にするためにはその対象セルの入力値を制御可能な外部入力制御線ａ、ｂを求める。
【００８２】
さらに、ステップＳ６で、その対象セル（図１７の例えばＮＡＮＤセルｇ５）の選択トランジスタ端子間が活性化するように外部入力制御線ａ，ｂ，ｃ，ｅの外部入力値を割り当てる。
【００８３】
さらに、ステップＳ７で、選択トランジスタ端子間が活性化できた場合には、その端子間に活性化可能フラグを立てて活性化対象リストから外す。また、全ての外部入力制御線ａ，ｂ，ｃ，ｅの値の組合せに対して活性化できない場合には、活性化不可能フラグを立てて活性化対象リストから外す。
【００８４】
最後に、ステップＳ８で、得られたａ，ｂ，ｃ，ｅの外部入力値で論理シュミレーションを実行し、このとき、他の活性化可能なトランジスタ端子間も活性化できている可能性があるのでそれを調べ、可能なものは活性化対象リストから外す。その後、ステップＳ２の処理に戻って、全てのトランジスタ端子間に対して活性化の有無を調べ終わるまで上記処理を繰り返す。これによって、外部入力端子の外部入力値として入力シーケンス（テストパターン）を生成すると共に、未活性トランジスタのリストを作成する。なお、所定時間以上経過しても処理が終わらない場合に、未活性トランジスタのリストを表示部５で表示させてテストパターン生成処理を終了するようにしてもよい。
【００８５】
以上により、本実施形態の半導体集積回路のテストパターン生成装置１０では、活性化可能なトランジスタ端子間に対しては、全て活性化可能となり、多数のトランジスタを有するロジック回路としての半導体集積回路において、信頼性試験におけるテストパターンを、各トランジスタの端子間レベルの精度で、回路全体に渡りムラなく活性化することが可能なテストパターンを生成することができる。
【００８６】
ここで、本実施形態の半導体集積回路のテストパターン生成装置１０を用いて、トランジスタ活性テーブルを使った半導体集積回路のテストパターン生成方法について、以下に詳細に説明する。
【００８７】
本実施形態の半導体集積回路のテストパターン生成方法は、一または複数のトランジスタを有する一または複数のセルを用いて設計された半導体集積回路について、半導体集積回路を検査するテストパターンを生成するトランジスタ活性テーブルを使った半導体集積回路のテストパターン生成方法であって、セルのセル種別毎に、セル内のトランジスタの各端子間電圧値とセルの入出力端子電圧値とで決まるセル状態（入力値）の対応表を用いて、一定値以上の電圧を印加するトランジスタの各端子間を選択し、当該トランジスタ端子間に対して電圧が印加できるように当該トランジスタが持つセルにセル状態（入力値）を割り当て、当該セル状態（入力値）を実現させるために外部入力端子の入力シーケンスを生成する。
【００８８】
まず、このテストパターン生成方法を組合せ回路に適用した場合について説明する。
【００８９】
本実施形態の半導体集積回路のテストパターン生成方法の一例として、図１７のサンプル回路を使って、このセルｇ５のトランジスタｍ０を活性化させるためのテストパターン生成の手順を説明する。なお、実際には、どのセルのどのトランジスタから始めても構わない。
【００９０】
図１７のＮＡＮＤセルｇ５のトランジスタｍ０の端子間電圧Ｖｄｓのみが所定電圧の印加が為されていないことについて前述したが、このＮＡＮＤセルｇ５のトランジスタｍ０を活性化させるためには、トランジスタｍ０の３端子間電圧Ｖｇｓ，Ｖｄｓ，Ｖｇｄを活性化させる必要がある。全てのセルの全てのトランジスタ端子間を活性化対象リストに加えて、その活性化対象リストから、ＮＡＮＤセルｇ５のトランジスタｍ０の端子間電圧Ｖｄｓを選択する。そのＮＡＮＤセルｇ５のトランジスタｍ０の端子間電圧Ｖｄｓの活性化を目的としてテストパターンの生成を行う。ＮＡＮＤセルｇ５のトランジスタｍ０の端子間電圧Ｖｄｓを活性化させるためには、図１４のトランジスタ活性テーブルにより、ＮＡＮＤセルｇ５のセル状態が（Ａ，Ｂ）=「１０」である必要がある。
【００９１】
このため、まず、図１７の信号線（ｎ４，ｎ１）に「１０」を割り当てる。信号線（ｎ４，ｎ１）の論理値をコントロールできる外部入力信号線を求める。その信号線は、（ａ，ｂ，ｃ，ｅ）の４つである。（ａ，ｂ，ｃ，ｅ）に（ｎ４，ｎ１）＝「１０」となるように論理値を割り当てる。この（ａ，ｂ，ｃ，ｅ）への論理値の割り当てる方法としては、「０」または「１」の乱数を発生させて論理シミュレーションを実行し、信号線（ｎ４，ｎ１）＝「１０」となる（ａ，ｂ，ｃ，ｅ）の入力電圧ベクトルを採用する方法や、ＰＯＤＥＭやＤアルゴリズムなど一般的に知られているＡＴＰＧアルゴリズムを用いてもよい。この結果、（ａ，ｂ，ｃ，ｅ）に「１１１０」を割り当てる。
【００９２】
まだ、割り当てられていない外部入力信号線ｄには、この時点で「０」または「１」の乱数など任意の「０」または「１」を割り当てる。全ての外部入力信号線（ａ，ｂ，ｃ，ｄ，ｅ）の値が決まると、論理シミュレーションを実行し、各セルのセル状態を調べ、自身のトランジスタ(ＮＡＮＤセルｇ５のトランジスタｍ０)での他のトランジスタ端子間Ｖｇｓ，Ｖｇｄ、ＮＡＮＤセルｇ５内部の他のトランジスタ端子間Ｖｇｓ，Ｖｄｓ，Ｖｇｄ、他のセル内部のトランジスタ端子間Ｖｇｓ，Ｖｄｓ，Ｖｇｄが活性化されているかどうかをチェックし、活性化されているトランジスタ端子間は、活性化済みというフラグを立て、活性化対象から除外する。ＮＡＮＤセルｇ５に着目すると、論理シミュレーション後、図１４のトランジスタ活性テーブルを参照する。（ａ，ｂ，ｃ，ｅ）＝「１１１０」(ｄは任意の値)の外部入力値に対して、ＮＡＮＤセルｇ５のセル状態は、（Ａ，Ｂ）＝「１０」であるから、トランジスタｍ０の端子間電圧Ｖｇｓ、トランジスタｍ３の端子間電圧Ｖｇｓ、トランジスタｍ３の端子間電圧Ｖｇｄが活性化されていることが分かる。これらは活性化済みというフラグを立て、活性化対象リストから除外する。
【００９３】
トランジスタｍ０を活性化させるためには、あと端子間電圧Ｖｇｄを活性化させる必要がある。端子間電圧Ｖｇｄを活性化させるためには、図１４のトランジスタ活性テーブルを参照すると、セル状態が（Ａ，Ｂ）＝（０１）または（１１）である必要がある。そこで、端子間電圧Ｖｄｓを活性化したときと同様の方法で、信号線（ｎ４，ｎ１）に（０１）を割り当て、（ｎ４，ｎ１）の論理値をコントロールできる外部入力信号線（ａ，ｂ，ｃ，ｅ）の値を決定する。または、ＮＡＮＤセルｇ５のセル状態が（０１）と（１１）のどちらかでよいので、（ｎ４，ｎ１）＝（Ｘ，１）（Ｘはドントケアを表し「０」と「１」のどちらでも構わない)を割り当て、ｎ１＝１となるようにｎ１をコントロールできる外部入力信号線（ａ，ｂ）の論理値を求めてもよい。
【００９４】
以上の手順を用いて、ＮＡＮＤセルｇ５のトランジスタｍ０を活性化するテストベクトルを生成した。ＮＡＮＤセルｇ５をコントロールする外部入力信号線（ａ，ｂ，ｃ，ｅ）の全ての論理値の組合せを印加しても、ｍ０のいずれのトランジスタ端子間が活性化しない場合は、活性化不可能としてそのトランジスタ端子間とそのトランジスタ自身にフラグを立て、活性化対象リストから除外する。
【００９５】
まだ、ＮＡＮＤセルｇ５以外のセルや、ＮＡＮＤセルｇ５内のトランジスタｍ０以外のトランジスタのうち、活性化されていないトランジスタ端子間を活性化対象リストから一つ選択し、以上の方法でその選択したトランジスタ端子間に対して新たに外部入力信号線（ａ，ｂ，ｃ，ｄ，ｅ）のテストベクトルを生成する。
【００９６】
活性化対象リストから活性化されていないトランジスタ端子間がなくなるまで、上記の方法を繰り返し、回路内部のすべてのトランジスタ端子間に対してテストベクトルを求める。得られたテストベクトルを順に外部入力信号線に入力するシーケンスを作成し、テストパターンとする。
【００９７】
次に、このテストパターン生成方法を順序回路に適用した場合について説明する。
【００９８】
図３に順序回路の一例を示している。図６は、図３のフリップフロップの構成図である。なお、図７は、図８の非同期リセット付きデータフリップフロップ（ＤＦＦ）のセルライブラリを示すトランジスタ回路図である。図８は、非同期リセット付きデータフリップフロップ（ＤＦＦ）セルライブラリを示す図であって、（ａ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）を示す構成図、（ｂ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）の論理動作を示す図、（ｃ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）セルライブラリのＳＰＩＣＥネットリストを示す図である。
【００９９】
フリップフロップでは、データ入力の他に、クロック入力やセット／リセット入力がある。
【０１００】
図３には、一部として、図１７のサンプル回路に組み合わせる組合せ回路が含まれている。
【０１０１】
図３のＮＡＮＤセルｇ５の内部のトランジスタ端子間を活性化するテストパターンを生成するには、ＮＡＮＤセルｇ５の入力論理値をコントロールすることができるフリップフロップｆｆ１，ｆｆ２，ｆｆ３，ｆｆ５の論理値を決定する必要がある。例えば、ＮＡＮＤセルｇ５の内部のトランジスタｍ０の端子間電圧Ｖｄｓを活性化可能なフリップフロップｆｆ１，ｆｆ２，ｆｆ３，ｆｆ５の値（ｆｆ１，ｆｆ２，ｆｆ３，ｆｆ５）＝「１１１０」を、前述の組合せ回路の場合の方法で求め、（ｆｆ１，ｆｆ２，ｆｆ３，ｆｆ５）＝「１１１０」の値が設定されるように、外部入力値（ｐｉ１，ｐｉ２，ｐｉ３，ｐｉ４）の入力シーケンスを求めることにより、トランジスタ端子間の活性化可能なテストパターンを生成する。
【０１０２】
また、フリップフロップ内部のトランジスタを活性化する方法について説明する。フリップフロップ内のトランジスタを活性化させる場合も、組合せセルの場合と同じように、フリップフロップセルのトランジスタ活性テーブルを作成し、そのトランジスタ活性テーブルに基づいて各トランジスタの端子間が活性化したかどうかを調べる。組合せセルと比べて、フリップフロップの場合は、セル内部のトランジスタの状態は、入力論理値と出力論理値の組合せで決まるため、例えば、図８の非同期リセット付きデータフリップフロップの場合は、データＤ，クロック信号ＣＫ，リセット信号ＲＢ，出力Ｑの各端子の論理値の組合せ（セル状態）に対して、内部の各トランジスタの端子間の活性化の有無をトランジスタ活性テーブルとして作成する。セル内部に未活性のトランジスタがあるときに、それを活性化するデータＤ，クロック信号ＣＫ，リセット信号ＲＢ，出力Ｑの各端子の論理値の組合せをトランジスタ活性テーブルから参照し、その論理値が出現するように、外部入力の入力シーケンスを生成する。
【０１０３】
ここで、トランジスタ活性時間「ストレス時間」について説明する。
【０１０４】
図１８（ｂ）のテストパターンの全ての入力電圧ベクトルを印加すると、図１７のＮＡＮＤセルｇ１のセル状態は順に（Ａ，Ｂ）=「００」，「１１」，「１０」，「１０」となる。このうち「１０」が２回印加されている。これらの「００」，「１１」，「１０」のセル状態になった時間は図１８（ｂ）よりテストパターンの単位時間１００ｎｓであるので、それぞれ、「００」が１００ｎｓ，「１１」が１００ｎｓ， 「１０」が２００ｎｓである。ＮＡＮＤセルｇ１のトランジスタｍ０に着目すると、図１４のテーブルより、トランジスタｍ０の端子間電圧Ｖｇｓは（Ａ，Ｂ）=「１１」，「１０」のときに活性化されているので、トランジスタｍ０の端子間電圧Ｖｇｓの活性時間は、３００ｎｓ、トランジスタｍ０の端子間電圧Ｖｄｓは（Ａ，Ｂ）=「１０」のときに活性化されるので、活性時間は２００ｎｓ、トランジスタｍ０の端子間電圧Ｖｇｄは（Ａ，Ｂ）=「１１」のとき活性化されるので、１００ｎｓの活性時間となる。この結果、トランジスタｍ０の活性時間は、トランジスタｍ０の端子間電圧Ｖｇｓ，Ｖｄｓ，Ｖｇｄのうち、活性時間が最も少ない１００ｎｓとなっている。
【０１０５】
次に、トランジスタ活性時間(ストレス時間)を考慮した場合についての説明する。
【０１０６】
ストレス時間を設定する場合、ある１つのトランジスタの端子間にある一定値以上の電圧を印加させることができる回数を指定し、その回数を超えるようにトランジスタ端子間（ＧＳ間、ＤＳ間、ＧＤ間）に対して複数のテストベクトルを生成する。
【０１０７】
図１８（ｂ）のテストパターンの全ての入力ベクトルを印加すると、図１７のＮＡＮＤセルｇ１のセル状態は順に（Ａ，Ｂ）＝「００」，「１１」，「１０」，「１０」となる。この場合、前述したように「１０」が２回印加されている。「００」，「１１」，「１０」の状態になった時間は、図１８（ｂ）よりテストパターンの単位時間１００ｎｓであるので、それぞれ、「００」が１００ｎｓ、「１１」が１００ｎｓ、「１０」が２００ｎｓである。ＮＡＮＤセルｇ１のトランジスタｍ０に着目すると、図１４のテーブルより、端子間電圧Ｖｇｓは（Ａ，Ｂ）＝「１１」，「１０」のときに活性化されるので、端子間電圧Ｖｇｓの活性時間は、合計３００ｎｓ、端子間電圧Ｖｄｓは（Ａ，Ｂ）＝「１０」のときに活性化されるので、活性時間は合計２００ｎｓ、端子間電圧Ｖｇｄは（Ａ，Ｂ）＝「１１」のとき活性化されるので、合計１００ｎｓの活性時間となる。
【０１０８】
ここで、必要な活性化時間が２００ｎｓであるとすると、端子間電圧Ｖｇｄは活性化できていないことになる。この場合、図１４の活性化テーブルを参照し、トランジスタｍ０の端子間電圧Ｖｇｄを活性化させる目的で、セル状態（Ａ，Ｂ）＝「１１」または「０１」が２回以上出現するように、外部入力値、あるいは外部入力シーケンスを設定する。図１７の場合は、外部入力値（ａ，ｂ）＝「１１」，「０１」のいずれかが２回以上入力するようにテストパターンを生成する。このように、各トランジスタ端子が活性化する回数(または時間)を指定することにより、適切な時間だけ各トランジスタ端子間に電圧を印加するテストパターンを生成することができる。
【０１０９】
次に、セルの出力に縮退故障を設定する場合(請求項3)についての説明する。
【０１１０】
セルの出力に縮退故障を設定する場合には、ある一つのトランジスタ端子間に、ある一定値以上の電圧を印加させるために、そのトランジスタを持つセルのセル状態を割り当てた後、そのセル状態で決まるそのセルの出力論理値に対して、縮退故障を設定し、その縮退故障の影響を外部出力端子まで出力させることができる。
【０１１１】
バーンインなどの信頼性試験のテストパターンを印加した結果、故障が顕在化した場合、この故障の影響を外部出力端子で観測することが必要である。
【０１１２】
図４に、ＮＡＮＤセルｇ５を構成するトランジスタｍ０の端子間電圧Ｖｄｓが活性化されて、ＮＡＮＤセルｇ５の出力信号線ｎ５の論理値が、正常値「１」で故障発生時「０」となる０縮退故障が発生した場合を表している。図４は、図３（または図１７）の一部を表している。図４は、図３（または図１７）の外部入力に（ａ，ｂ，ｃ，ｅ）＝「１１１０」を割り当てた場合、ＮＡＮＤセルｇ５の出力信号線ｎ５に０縮退故障が励起されている様子を表している。
【０１１３】
この故障の影響を外部出力端子まで伝搬するときには、出力信号線ｎ５から外部出力値までをコントロールすることができる外部入力端子リスト（ｄ）を求め、その外部入力に故障の影響が外部出力まで伝搬するように値を割り当てる。図４においては、ｄ＝１を割り当てると、外部出力端子ｙで故障の影響を観測することができる。故障の影響を伝搬するための外部入力値の割り当てる方法としては、「０」または「１」の乱数を発生させて故障シミュレーションを実行し、外部出力端子に故障の影響が伝搬する外部入力ベクトルを採用する方法や、ＰＯＤＥＭやＤアルゴリズムなど一般的に知られているＡＴＰＧアルゴリズムを用いてもよい。
【０１１４】
０縮退故障か、１縮退故障になるかは、図１４のトランジスタ活性テーブルによりトランジスタ端子間が「１」になっている場合のセル状態と、そのセルの論理機能(例えば、図１２（ｂ）および図１５（ｂ）)によって定まる。
【０１１５】
以上の方法で、バーンインなどの信頼性試験のテストパターンを印加した結果、セルの出力の故障が現れた場合、故障の影響を外部出力端子まで伝搬し、観測することが可能となる。
【０１１６】
順序回路の場合、故障の影響を外部出力端子まで伝搬するために必要な、外部入力ベクトルのシーケンスを生成する。
【０１１７】
次に、自動テストパターン生成(ＡＴＰＧ)アルゴリズムを使った場合について説明する。
【０１１８】
ＡＴＰＧアルゴリズムを使う場合には、ある一つのトランジスタ端子間に、ある一定値以上の電圧を印加させるために、そのトランジスタを持つセルのセル状態を割り当てた後、ＡＴＰＧ(自動テストパターン生成ツール) アルゴリズムを用いて外部入力端子の入力シーケンスを生成する。
【０１１９】
組合せ回路の場合は、一般によく知られているＰＯＤＥＭやＤアルゴリズムなどのＡＴＰＧアルゴリズム(自動テストパターン生成ツール)を用いて、トランジスタを活性化するためのセル状態を実現する。故障がセルの出力端子に発生した場合も同様に、ＡＴＰＧアルゴリズムを用いて外部出力端子まで故障の影響を伝搬させる。
【０１２０】
順序回路の場合も、同様に一般的によく知られている順序回路用のＡＴＰＧ(自動テストパターン生成ツール) アルゴリズムを用いてテストパターンを生成する。
【０１２１】
次に、テスト設計がスキャンの場合について説明する。
【０１２２】
図５に、スキャン設計された順序回路の一例を示す。これは、図３の順序回路に対してスキャン設計した一例である。
【０１２３】
スキャン設計とは、フリップフロップを図６で示すスキャンフリップフロップに置き換えて、図５のＳＯ端子を次のスキャンフリップフロップのＳＩ端子に接続させて、ＳＣＡＮＥＮ＝１のときにシフトレジスタとして動作させ、テスト時の各スキャンフリップフロップの値を設定する設計である。図５では、フリップフロップｆｆ１，ｆｆ２，ｆｆ３，ｆｆ４，ｆｆ５がスキャンチェーンのシフトレジスタとして、フリップフロップｆｆ６が別のスキャンチェーンのシフトレジスタとして構成されている。このスキャン設計を行うことで、順序回路は組合せ回路として扱えるため、スキャン設計したときには、ＰＯＤＥＭやＤアルゴリズムなどのＡＴＰＧアルゴリズムが適用でき、順序回路のテストパターン生成に比べて、容易にトランジスタ活性化のためのテストパターン生成が可能となる。
【０１２４】
また、スキャンシフト途中でも組合せ回路は動作するため、シフトレジスタ動作を考慮して、テストパターンを生成することも可能である。例えば、組合せ回路としてテストベクトル(各スキャンフリップフロップの値)を一度生成し、それをスキャン入力端子からシフト動作させるときに、各セル内のトランジスタが活性化可能か論理シミュレーションで検証し、シフト動作途中で活性化されたトランジスタの回数をカウントすることにより、活性時間を保証することが可能である。
【０１２５】
以上により、本実施形態によれば、ＨＤＤ２の制御プログラムとしてのテストパターン生成プログラムに基づいて、ＣＰＵ１が、半導体集積回路を構成する各セルのセル種別毎に、セル内の各トランジスタ端子間電圧とセルの入出力端子電圧とに対応して該トランジスタの活性化の有無を示したトランジスタ活性条件表を用いて、一定値以上の電圧を印加する各トランジスタ端子間を選択し、このトランジスタ端子間に対して所定電圧が印加できるようにこのトランジスタを持つセルにセル状態を入力値として割り当て、このセル状態を実現させるためにセルの外部入力端子の入力シーケンスをテストパターンとして生成する。これによって、多数のトランジスタを有する半導体集積回路としてのロジック回路など、信頼性試験におけるテストパターンを、セルを構成する各トランジスタの端子間電圧レベルの精度で、回路を構成するトランジスタ全体に渡りムラなく活性化させることを可能とするテストパターンを生成することが可能となる。したがって、従来のトグル率のようにセル間の配線電圧のように論理値だけで検査するのではなく、全トランジスタの端子間電圧レベルでトランジスタの活性化率を向上させるべく生成したテストパターンを用いて半導体集積回路を検査することにより、セルを構成する全ての各トランジスタの各端子間に所定電圧を所定時間だけより確実に印加することが可能となって、トランジスタ活性化率をより向上させることが可能となり、半導体集積回路を用いた製品の品質向上を実現することが可能となる。
【０１２６】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【産業上の利用可能性】
【０１２７】
本発明は、一または複数のトランジスタを有する一または複数のセルを用いて設計した半導体集積回路を検査するための半導体集積回路のテストパターン生成方法およびこれを実施する半導体集積回路のテストパターン生成装置の分野において、多数のトランジスタを有する半導体集積回路としてのロジック回路など、信頼性試験におけるテストパターンを、セルを構成する各トランジスタの端子間電圧レベルの精度で、回路を構成するトランジスタ全体に渡りムラなく活性化させることを可能とするテストパターンを生成することができる。従来のトグル率のようにセル間の配線電圧のように論理値だけで検査するのではなく、更に具体的な全トランジスタの端子間電圧レベルでトランジスタの活性化率を向上させるべく生成したテストパターンを用いて半導体集積回路を検査することにより、各セルを構成する全ての各トランジスタの各端子間に所定電圧を所定時間だけより確実に印加することが可能となって、トランジスタ活性化率をより向上させることが可能となり、半導体集積回路を用いた製品の品質向上を実現することができる。
【図面の簡単な説明】
【０１２８】
【図１】本発明に係る半導体集積回路のテストパターンを生成するテストパターン生成装置としてのＥＷＳ(Engineering Work Station)の要部構成例を示すブロック図である。
【図２】図１の半導体集積回路のテストパターン生成装置の動作を説明するためのフローチャートである。
【図３】図１７のサンプル回路に組み合わせる組合せ回路を含む順序回路の一例を示す回路図である。
【図４】図３の外部入力に（ａ，ｂ，ｃ，ｅ）＝「１１１０」を割り当てた場合、ＮＡＮＤセルｇ５の出力信号線ｎ５に０縮退故障が励起されている様子を示す回路図である。
【図５】図３の順序回路に対してスキャン設計した一例を示す回路図である
【図６】図３のフリップフロップの構成図である。
【図７】図８の非同期リセット付きデータフリップフロップ（ＤＦＦ）のセルライブラリを示すトランジスタ回路図である。
【図８】非同期リセット付きデータフリップフロップ（ＤＦＦ）セルライブラリを示す図であって、（ａ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）を示す構成図、（ｂ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）の論理動作を示す図、（ｃ）は、非同期リセット付きデータフリップフロップ（ＤＦＦ）セルライブラリのＳＰＩＣＥネットリストを示す図である。
【図９】特許文献１に開示されている従来のゲートレベルネットリストを示す回路図である。
【図１０】図９のゲートレベルネットリストをトランジスタレベルで示す回路図である。
【図１１】セル内部に存在するトランジスタが活性化される条件を示す図である。
【図１２】２入力ＮＡＮＤセルライブラリを示す図であって、（ａ）は、ナンドゲートを示す回路図、（ｂ）は２入力値Ａ，Ｂと出力値Ｙとの関係を示す図、（ｃ）は、（ａ）のナンドゲートをトランジスタベースで示す回路図、（ｄ）は、（ｃ）の回路図をＳＰＩＣＥ用ネットリストとして表現したネットリスト図である。
【図１３】図１２（ｃ）のＮＡＮＤセルライブラリに対する「ＳＰＩＣＥ」のＤＣ解析条件例を示す図である。
【図１４】図１２（ａ）の２入力ＮＡＮＤセルに対するトランジスタ活性条件テーブルの一例を示す図である。
【図１５】ＩＮＶセルライブラリを示す図であって、（ａ）はインバータ（ＩＮＶ）を示す回路図、（ｂ）は１入力値Ａと出力値Ｙとの関係を示す図、（ｃ）は、（ａ）のインバータをトランジスタベースで示す回路図、（ｄ）は、（ｃ）の回路図をＳＰＩＣＥ用ネットリストとして表現したネットリスト図である。
【図１６】図１５（ａ）のＩＮＶセルに対するトランジスタ活性条件テーブルの一例を示す図である。
【図１７】トランジスタ活性化率算出方法と従来技術の問題点を説明するためのサンプル回路である。
【図１８】（ａ）は、（ｂ）のテストパターンを印加した場合の各信号線の論理値が推移する電圧波形図、図１７のサンプル回路をテストする各入力電圧のテストパターンを示す図である。
【符号の説明】
【０１２９】
１  ＣＰＵ（制御部）
２  ＨＤＤ
３  ＲＡＭ
４  操作部
５  表示部
６  通信インターフェイス
７  バス
１０  半導体集積回路のテストパターン生成装置
【図１】
0005426842.tif 000002
【図２】
0005426842.tif 000003
【図３】
0005426842.tif 000004
【図４】
0005426842.tif 000005
【図５】
0005426842.tif 000006
【図６】
0005426842.tif 000007
【図７】
0005426842.tif 000008
【図８】
0005426842.tif 000009
【図９】
0005426842.tif 000010
【図１０】
0005426842.tif 000011
【図１１】
0005426842.tif 000012
【図１２】
0005426842.tif 000013
【図１３】
0005426842.tif 000014
【図１４】
0005426842.tif 000015
【図１５】
0005426842.tif 000016
【図１６】
0005426842.tif 000017
【図１７】
0005426842.tif 000018
【図１８】
0005426842.tif 000019