(57)【特許請求の範囲】
【請求項１】
ＣＭＯＳ集積回路の論理シミュレーション中に現れたｎ個のスタンバイ状態のサイクルにおける各ｍ個のネットの状態を表すｍビットデータの中から、ｍビットデータを構成する全てのビットの値が少なくとも１回は１及び０となる組み合わせを選択抽出し、選択抽出したｍビットデータに対応するサイクルをＩＤＤＱテスト用のサイクルとして選択抽出するＩＤＤＱテスト用サイクル選択抽出装置であって、
前記論理シミュレーションの実行時における各動作サイクルの内、スタンバイ状態にあるサイクルを検出するスタンバイサイクル検出手段と、
全サイクルの論理シミュレーション終了後に、上記集積回路内のｍ個のネットの状態を表すｍビットデータを、上記スタンバイサイクル検出手段により検出されたｎ個のスタンバイ状態のサイクル毎に保存するデータ保存手段と、
ｍビットデータを構成する各ビットに一対一に対応するトグル済みフラグの記憶手段と、
ｍビットデータを順次与えられ、与えられたｍビットデータに基づいてトグル済みフラグを更新するフラグ更新手段であって、ｍビットデータを与えられると、該ｍビットデータ及びその前に与えられたｍビットデータのトグル済みフラグのセットされていないビットのデータについて、ビット単位の比較を行い、一方が”１”で他方が”０”のデータ値を持つビットに対応するトグル済みフラグをセットするフラグ更新手段と、
上記データ保存手段に記憶するｎ個のｍビットデータの中から、互いのハミング距離が最も離れている２つのｍビットデータを第１及び第２の選択抽出データとして選択し、上記フラグ更新手段に第１及び第２の選択抽出データの順で与える第１データ選択手段と、
上記フラグ更新手段によるトグル済みフラグの更新後、ｍビットデータの内、未だトグル済みフラグが立っていないビット位置を認識する認識手段と、
認識手段によりトグル済みフラグが立っていないと認識されたビット位置にのみ着目して、上記データ保存手段に保存されているｍビットデータの中から、既に選択抽出されたｍビットデータからのハミング距離が最も大きなｍビットデータを選択し、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与える第２データ選択手段とを備え、
上記第１データ選択手段は、選択抽出の対象となるｍビットデータの中から、ｍビットの中に”１”が最も多く含まれているデータと、”０”が最も多く含まれているデータとを選択し、選択した前記２つのｍビットデータのうち一方のｍビットデータの各ビットの値が全て”０”であり、他方のｍビットデータの各ビットの値が全て”１”の場合には、この２つのデータのみでテストを行うことができると判断して選択抽出処理を終了することを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項２】
請求項１に記載するＩＤＤＱテスト用サイクル選択抽出装置において、
上記第２データ選択手段は、トグル済みフラグの立っていないビット位置のデータに関して、選択抽出の対象となるｍビットデータの中から、ｍビットの中に”１”が最も多く含まれているデータと、”０”が最も多く含まれているデータとを選択し、これが全て”０”または”１”のパターンの場合には選択抽出処理を終了し、これ以外の場合であって、”１”が最も多く含まれているデータが複数ある場合は、それらの複数のデータのうちデータの値が最大のｍビットデータを選択し、”０”が最も多く含まれているデータが複数ある場合は、それらの複数のデータのうちデータの値が最小のｍビットデータを選択することを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項３】
ＣＭＯＳ集積回路の論理シミュレーションの実行に伴い、ＩＤＤＱテスト用のサイクルを選択抽出するＩＤＤＱテスト用サイクル選択抽出装置であって、
ＣＭＯＳ集積回路の論理シミュレーションを実行する論理シミュレーション手段と、
論理シミュレーション手段によるシミュレーション実行時における動作サイクル毎に、当該サイクルに前記集積回路がスタンバイ状態にあるか否かを判断する判断手段と、
判断手段により最初にスタンバイ状態であると判断されたサイクルを第１のＩＤＤＱテスト用サイクルとして選択する第１サイクル選択手段と、
ハミング距離に対して、比較対象となるデータのビット数に応じて所定のしきい値を設定するしきい値設定手段と、
第１サイクル選択手段による選択の後に、判断手段によりスタンバイ状態にあると判断されるサイクルの内、上記選択された第１のＩＤＤＱテスト用のサイクルにおける上記集積回路内のｍ個のネットの状態を表すｍビットのデータとのハミング距離が上記しきい値設定手段の設定したしきい値よりも大きなｍビットのデータを有する最初のサイクルを、第２のＩＤＤＱテスト用のサイクルとして選択する第２サイクル選択手段と、
ｍビットデータを構成する各ビットに一対一に対応するトグル済みフラグの記憶手段と、
ｍビットデータを順次与えられ、与えられたｍビットデータに基づいてトグル済みフラグを更新するフラグ更新手段であって、ｍビットデータが与えられると、該ｍビットデータ及びその前に与えられたｍビットデータのトグル済みフラグのセットされていないビットのデータについて、ビット単位の比較を行い、一方が”１”で他方が”０”のデータ値を持つビットに対応するトグル済みフラグをセットするフラグ更新手段と、
第１及び第２サイクル選択手段により第１及び第２のＩＤＤＱテスト用として選択された２つのサイクルにおける前記集積回路内のｍ個のネットの状態を表す２つのｍビットデータを第１及び第２の選択抽出データとして選択し、上記フラグ更新手段に第１及び第２の選択抽出データの順で与える第１データ選択手段と、
上記フラグ更新手段によるトグル済みフラグの更新後、未だトグル済みフラグが立っていないビットデータの位置を認識する認識手段と、
既に選択したｍビットデータの上記認識手段によりトグル済みフラグが立っていないと認識されたビット位置のみに着目し、上記判断手段によりスタンバイ状態であると判断されたサイクルであって、上記着目するビット位置でのハミング距離が上記しきい値設定手段により設定されたしきい値よりも大きいｍビットデータを示すサイクルを選択し、選択したサイクルのｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与える第２データ選択手段とを備えることを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項４】
請求項１乃至請求項３に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
上記第２データ選択手段は、トグル認識レジスタ内におけるトグル済みフラグが立ったビットの個数が所定値以上になるまでの間、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与えることを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項５】
請求項１乃至請求項３に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
上記第２データ選択手段は、所定数のＩＤＤＱテスト用のサイクルが選択抽出されるまでの間、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与えることを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項６】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路内に含まれるインバータの数を検出する検出手段を備え、
上記記憶手段は、上記検出手段により検出したインバータの入出力ネットの何れか一方だけを前記集積回路内のネットとして取り扱うことを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項７】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路内に含まれるバッファの数を検出する検出手段を備え、
上記記憶手段は、上記検出手段により検出したバッファの入出力ネットの何れか一方だけを前記集積回路内のネットとして取り扱うことを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項８】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路内のネットの内、有効に取り扱うネットを指定するための指定手段を備え、
上記記憶手段は、上記指定手段により指定されたｍ個のネットの状態を表すｍビットデータを保存することを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項９】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路内のネットの内、有効に取り扱う、１以上の回路より構成される機能ブロック回路を指定するための指定手段を備え、
上記記憶手段は、上記指定手段により指定された機能ブロック内に内包されるｍ個のネットの状態を表すｍビットデータを保存する手段を備えることを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項１０】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路の階層設計データの中から、有効に取り扱う所定の階層を指定するための指定手段を備え、
上記記憶手段は、指定手段により指定された階層に属する回路のｍ個のネットの状態を表すｍビットデータを保存することを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項１１】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、論理シミュレーションの対象となる前記集積回路の中から、有効に取り扱う特定のネットの接続されている電源系統を指定するための指定手段と、
上記記憶手段は、指定手段により指定された電源系統に接続されているｍ個のネットの状態を表すｍビットデータを保存することを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【請求項１２】
請求項１乃至請求項５に記載する何れか１つのＩＤＤＱテスト用サイクル選択抽出装置であって、
更に、全動作サイクルの中で、有効に取り扱うサイクルを指定するための指定手段を備え、
上記指定手段により指定されたサイクルを処理対象とすることを特徴とするＩＤＤＱテスト用サイクル選択抽出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、論理シミュレーションを利用して、半導体集積回路のＩDDQテスト用のサイクルを選択抽出する装置に関する。
【０００２】
【従来の技術】
ＣＭＯＳ集積回路の微細化、高集積化が進むにつれて、テスト工程の負担が急激に増加している。実際、テストパターンの数は年々増加している。厄介なことに、現在主流のファンクションテストでは発見しにくいタイプの新たな故障モードが増加する傾向にある。この新たな故障モードは、例えば、開放故障やスイッチング動作時の過渡状態でしか発生しない故障などである。
このため、上記ファンクションテストのみを使用した場合、上記新たな故障を含んでいるものが良品として出荷されてしまい、機器に組み込まれてしまうケースが増加しつつある。
【０００３】
上記の新たな故障モードを検出するための新たなテスト方法としてＩDDQテストが注目されている。ＩDDQテストは、静止状態にあるＣＭＯＳ集積回路に流れる微少な電源電流を測定し、その電流値の大小によって故障を検出するものである。これは、正常なＣＭＯＳ回路では、そのスタンバイ状態（静止時）において、電源電流は僅かしか流れないことを利用するものである。即ち、スタンバイ状態においてＣＭＯＳ回路に多量の電流が流れる場合には、回路内に何らかの欠陥（故障）を含んでいることを意味する。通常の集積回路の動作時、その内部状態は時々刻々変化するが、動作中の各サイクルの内、スタンバイ状態を実現しているサイクルを検出し、検出したサイクルにおけるスタンバイ電流を測定することでＩDDQテストを実行することができる。
【０００４】
ところで、論理シミュレーションを使って、あるサイクルにおいてスタンバイ状態が実現されているかどうかを知る技術については周知である。例えば、特開平４−４４１７２号公報では、以下の４つの条件が満たされている時が電源電流を測定するべきスタンバイ状態であるとしている。
（１）複数のゲートの出力信号が競合する（バスコンフリクト）の状態でないこと。
（２）バスに接続されている全てのゲート出力がハイインピーダンス”Ｚ”の状態ではないこと。
（３）プルアップ付きのノードの論理値が”Ｈ”であること。
（４）プルダウン付きのノードの論理値が”Ｌ”であること。
【０００５】
テストの品質（＝そのテストによる故障検出能力）だけを考慮するならば、できるだけ多様な内部状態でのテストを行った方がよい。従って、スタンバイ状態が実現されている全てのサイクルについてテストを行うことが最も望ましい。しかし、実際には、テスト時間がそのまま製造コストに影響してくるため、テストの品質を一定のレベルに維持しつつ、できるだけテスト時間を短くすることが要求される。
また、ＩDDQテストは、電流を測定するものである。一般に電流測定は電圧測定よりも時間がかかるため、テスト時間を短くするには、電流の測定回数を減らすことが望まれる。それには、全スタンバイサイクルでテストするのではなく、テストの品質を維持するのに必要にして十分なスタンバイサイクルを選択抽出することが要求される。現在、上記２つの要求を満たす方法として、以下の２つが知られている。
【０００６】
涌井一夫、尾野年信、吉田正昭による論文「ＩDDQテスト用パタン選択の一手法」，１９９５年電子情報通信学会エレクトロニクスソサエティ大会講演論文集２，ｐ．１８５，講演番号ｃ−４６３，１９９５年０９月において、次のような方法（以下、第１の方法という）が提案されている。
まず、操作者がＩDDQテストを行うサイクルの数ｎを指定する。機能試験用テストパターンを入力して論理シミュレーションを実行し、仮に最初のｎ個のスタンバイサイクルを選択抽出する。ここで、選択抽出したｎ個のスタンバイサイクルについてＩDDQテストを行い、そのｎ回のテストによる故障検出率を計算する。後に続くサイクルについて１つづつ調べ、もし選択抽出済みのｎ個のうち何れかのサイクルと交換して故障検出率が向上するなら、交換を実施する。これを全てのサイクルについて調べ終わるまで行う。
【０００７】
マオ（Weiwei Mao）、グラティ（Ravi K.Gulati）等による論文「Quiescent Current Testing Methodology for Detecting Leaksge Faults（漏れ故障を検出する静止電流テスト方法）」，ＩＥＥＥ主催ＩＣＣＡＤ学会論文集，１９９０年，ｐｐ．２８０〜２８３において次のような方法（以下、第２の方法という）が提案されている。
予め操作者が回路中の全てのゲートについて、どのような入力状態になったらどのような故障が検出されるかを定義した故障テーブルを作成しておく。この故障テーブルを参照しつつ論理シミュレーションを実行する。論理シミュレーションの実行中において、操作者がＩDDQテストをするサイクルの数ｎを定義しなかった場合は、１つでも新たな故障が検出されたサイクルをテストサイクルに加える。また、操作者がＩDDQテストをするサイクルの数ｎを指定した場合には、そのサイクルにおいて新たに検出される故障の数が、１サイクルあたり検出が期待される数よりも大きい場合にのみ、そのサイクルをテストサイクルに加える。
【０００８】
【発明が解決しようとする課題】
上記第１の方法では、操作者がＩDDQテストをするサイクルの数ｎを指定しなければならないことが第１の問題となる。必要十分なＩDDQテストのために何サイクル必要かは、予めわかるものではない。結果的に適当な数を指定するしかないため、この方法で抽出されたテストサイクルは必要量に全く足りないということになるかも知れないし、逆に過剰となるかもしれない。何れにしても当該方法では最適な解が得られない場合の方が多い。
【０００９】
また、第２の問題として、最初のｎサイクルと交換して故障検出率が向上するかどうかを全てのサイクルについて調べなければならないので処理時間がかかることが挙げられる。極端な場合、最初のｎサイクルが解であり、以降のどのサイクルと交換しても故障検出率が向上しないというようなケースも考えられる。このような場合であっても、当該方法では、全てのサイクルについて調べるため、時間を浪費することになる。特に用意された機能試験用テストパターンが長大な場合には、このような無駄な処理時間が問題となる。
【００１０】
上記第２の方法では、故障テーブルを予め作成しなければならないのが第１の問題である。一旦作成した故障テーブルは、他の回路にも流用できるが、上記第２の方法には他にも問題がある。
例えば、操作者がＩDDQテストを行うサイクルの数ｎを指定する場合には、上記第１の方法と同様の問題がある。また、操作者がＩDDQテストをするサイクルの数ｎを指定しない場合には、必ずしも操作者の所望する最適解が得られないという問題もある。
例えば、用意された機能試験用テストパターンによる一連の動作サイクルの最後の２サイクルのみで全ての故障が検出できる場合を考えてみる。このような場合でも、第２の方法では動作サイクルを時間的に前から吟味するため、上記２つのサイクルよりも前にあるサイクルを選択抽出してしまう場合がある。この結果、本来必要なサイクルよりも多くのサイクルを選択抽出してしまうといった問題を有する。
【００１１】
本発明は、上記問題を解決するためになされたものであり、ＣＭＯＳ集積回路の機能試験用テストパターンによる動作サイクルの中から、ＩDDQテスト用のテストサイクルを必要にして十分な数だけ、的確かつ迅速に抽出・選択する装置を提供すことを目的とする。
【００１２】
【課題を解決するための手段】
本発明の第１のＩＤＤＱテスト用サイクル選択抽出装置は、ＣＭＯＳ集積回路の論理シミュレーション中に現れたｎ個のスタンバイ状態のサイクルにおける各ｍ個のネットの状態を表すｍビットデータの中から、ｍビットデータを構成する全てのビットの値が少なくとも１回は１及び０となる組み合わせを選択抽出し、選択抽出したｍビットデータに対応するサイクルをＩＤＤＱテスト用のサイクルとして選択抽出するＩＤＤＱテスト用サイクル選択抽出装置であって、前記論理シミュレーションの実行時における各動作サイクルの内、スタンバイ状態にあるサイクルを検出するスタンバイサイクル検出手段と、全サイクルの論理シミュレーション終了後に、前記集積回路内のｍ個のネットの状態を表すｍビットデータを、上記スタンバイサイクル検出手段により検出されたｎ個のスタンバイ状態のサイクル毎に保存するデータ保存手段と、ｍビットデータを構成する各ビットに一対一に対応するトグル済みフラグの記憶手段と、ｍビットデータを順次与えられ、与えられたｍビットデータに基づいてトグル済みフラグを更新するフラグ更新手段であって、ｍビットデータを与えられると、ｍビットデータ及びその前に与えられたｍビットデータのトグル済みフラグのセットされていないビットのデータについて、ビット単位の比較を行い、一方が”１”で他方が”０”のデータ値を持つビットに対応するトグル済みフラグをセットするフラグ更新手段と、上記データ保存手段に記憶するｎ個のｍビットデータの中から、互いのハミング距離が最も離れている２つのｍビットデータを第１及び第２の選択抽出データとして選択し、上記フラグ更新手段に第１及び第２の選択抽出データの順で与える第１データ選択手段と、上記フラグ更新手段によるトグル済みフラグの更新後、ｍビットデータの内、未だトグル済みフラグが立っていないビット位置を認識する認識手段と、認識手段によりトグル済みフラグが立っていないと認識されたビット位置にのみ着目して、上記データ保存手段に保存されているｍビットデータの中から、既に選択抽出されたｍビットデータからのハミング距離が最も大きなｍビットデータを選択し、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与える第２データ選択手段とを備え、上記第１データ選択手段は、選択抽出の対象となるｍビットデータの中から、ｍビットの中に”１”が最も多く含まれているデータと、”０”が最も多く含まれているデータとを選択し、選択した前記２つのｍビットデータのうち一方のｍビットデータの各ビットの値が全て”０”であり、他方のｍビットデータの各ビットの値が全て”１”の場合には、この２つのデータのみでテストを行うことができると判断して選択抽出処理を終了することを特徴とする。
上記構成のＩＤＤＱテスト用サイクルの選択抽出装置では、ＣＭＯＳ集積回路の論理シミュレーションの終了後に、データ保存手段に保存した各スタンバイサイクル時における回路内のｍ個のネットの状態を表すｍビットデータの中からｍビットデータを構成する各ビットの値が少なくとも１回は１及び０となる最小の組み合わせを選択抽出することができる。この選択抽出したｍビットデータに対応するサイクルを、ＩＤＤＱテスト用のサイクルとして使用することで、数少ないテストサイクルで必要十分なＩＤＤＱテストを実施することができる。
また、上記構成のＩＤＤＱテスト用サイクルの選択抽出装置では、選択抽出すべきＩＤＤＱテスト用のサイクル数ｎを指定する必要がないといった利点も有する。
なお、上記ＩＤＤＱテスト用のサイクル選択抽出装置として機能させる処理プログラムを記録した媒体を用いて、コンピュータを制御しても良い。
【００１３】
上記のＩＤＤＱテスト用サイクル選択抽出装置において、上記第２データ選択手段は、トグル済みフラグの立っていないビット位置のデータに関して、選択抽出の対象となるｍビットデータの中から、ｍビットの中に”１”が最も多く含まれているデータと、”０”が最も多く含まれているデータとを選択し、これが全て”０”または”１”のパターンの場合には選択抽出処理を終了し、これ以外の場合であって、”１”が最も多く含まれているデータが複数ある場合は、それらの複数のデータのうちデータの値が最大のｍビットデータを選択し、”０”が最も多く含まれているデータが複数ある場合は、それらの複数のデータのうちデータの値が最小のｍビットデータを選択することが好ましい。
【００１４】
本発明の第２のＩDDQテスト用サイクル選択抽出装置は、ＣＭＯＳ集積回路の論理シミュレーションの実行に伴い、ＩDDQテスト用のサイクルを選択抽出するＩDDQテスト用サイクル選択抽出装置であって、ＣＭＯＳ集積回路の論理シミュレーションを実行する論理シミュレーション手段と、論理シミュレーション手段によるシミュレーション実行時における動作サイクル毎に、当該サイクルに前記集積回路がスタンバイ状態にあるか否かを判断する判断手段と、判断手段により最初にスタンバイ状態であると判断されたサイクルを第１のＩDDQテスト用サイクルとして選択する第１サイクル選択手段と、ハミング距離に対して、比較対象となるデータのビット数に応じて所定のしきい値を設定するしきい値設定手段と、第１サイクル選択手段による選択の後に、判断手段によりスタンバイ状態にあると判断されるサイクルの内、上記選択された第１のＩDDQテスト用のサイクルにおける前記集積回路内のｍ個のネットの状態を表すｍビットのデータとのハミング距離が上記しきい値設定手段の設定したしきい値よりも大きなｍビットのデータを有する最初のサイクルを、第２のＩDDQテスト用のサイクルとして選択する第２サイクル選択手段と、第１及び第２サイクル選択手段により第１及び第２のＩDDQテスト用として選択された２つのサイクルにおける回路内のｍ個のネットの状態を表す２つのｍビットデータを保存するデータ保存手段と、ｍビットデータを構成する各ビットに一対一に対応するトグル済みフラグの記憶手段と、ｍビットデータを順次与えられ、与えられたｍビットデータに基づいてトグル済みフラグを更新するフラグ更新手段であって、ｍビットデータを与えられると、ｍビットデータ及びその前に与えられたｍビットデータのトグル済みフラグのセットされていないビットのデータについて、ビット単位の比較を行い、一方が”１”で他方が”０”のデータ値を持つビットに対応するトグル済みフラグをセットするフラグ更新手段と、上記データ保存手段に保存する２つのｍビットデータを第１及び第２の選択抽出データとして選択し、上記フラグ更新手段に第１及び第２の選択抽出データの順で与える第１データ選択手段と、上記フラグ更新手段によるトグル済みフラグの更新後、未だトグル済みフラグが立っていないビットデータの位置を認識する認識手段と、既に選択したｍビットデータの上記認識手段によりトグル済みフラグが立っていないと認識されたビット位置のみに着目し、上記判断手段によりスタンバイ状態であると判断されたサイクルであって、上記着目するビット位置でのハミング距離が上記しきい値設定手段により設定されたしきい値よりも大きいｍビットデータを示すサイクルを選択し、選択したサイクルのｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与える第２データ選択手段とを備えることを特徴とする。
上記構成のＩDDQテスト用サイクル選択抽出装置では、論理シミュレータによる論理シミュレーションの実行と連動して動作するため、論理シミュレーションの終了と同時にＩDDQテスト用のサイクル抽出処理が完了する。このように、迅速に処理結果が得られるので、回路設計の作業効率が向上する。
【００１５】
上記何れか１つのＩDDQテスト用サイクル選択抽出装置であって、上記第２データ選択手段は、トグル認識レジスタ内におけるトグル済みフラグが立ったビットの個数が所定値以上になるまでの間、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与えることとしても良い。また、上記第２データ選択手段は、所定数のＩDDQテスト用のサイクルが選択抽出されるまでの間、選択したｍビットデータを新たな選択抽出データとして上記フラグ更新手段に与えることとしても良い。
上記構成を採用することで、操作者が得たい結果を迅速に得ることができる。
【００１６】
上記何れか１つのＩDDQテスト用サイクル選択抽出装置であって、更に、論理シミュレーションの対象となる前記集積回路内に含まれるインバータの数を検出する検出手段を備え、上記記憶手段は、上記検出手段により検出したインバータの入出力ネットの何れか一方だけを前記集積回路内のネットとして取り扱うこととしても良い。
また、更に、論理シミュレーションの対象となる前記集積回路内に含まれるバッファの数を検出する検出手段を備え、上記記憶手段は、上記検出手段により検出したバッファの入出力ネットの何れか一方だけを前記集積回路内のネットとして取り扱うこととしても良い。
上記構成を採用することで、処理で用いるｍビットデータのビット数を少なくすることができるため、処理を高速化することができ、処理に要求されるメモリの量も少なくすることができる。
【００１７】
また、更に、論理シミュレーションの対象となる前記集積回路内のネットの内、有効に取り扱うネットを指定するための指定手段を備え、上記記憶手段は、上記指定手段により指定されたｍ個のネットの状態を表すｍビットデータを保存することとしても良い。
また、更に、論理シミュレーションの対象となる前記集積回路内のネットの内、有効に取り扱う、１以上の回路より構成される機能ブロック回路を指定するための指定手段を備え、上記記憶手段は、上記指定手段により指定された機能ブロック内に内包されるｍ個のネットの状態を表すｍビットデータを保存する手段を備えることとしても良い。
また、更に、論理シミュレーションの対象となる前記集積回路の階層設計データの中から、有効に取り扱う所定の階層を指定するための指定手段を備え、上記記憶手段は、指定手段により指定された階層に属する回路内のｍ個のネットの状態を表すｍビットデータを保存することとしても良い。
また、更に、論理シミュレーションの対象となる前記集積回路の中から、有効に取り扱う特定のネットの接続されている電源系統を指定するための指定手段と、上記記憶手段は、指定手段により指定された電源系統に接続されているｍ個のネットの状態を表すｍビットデータを保存することとしても良い。
上記何れかの構成を採用することで、ｍビットデータのビット数を操作者の指示に従って減少することができるため処理の高速化が図られると共に、処理に要するメモリ量を少なくすることができる。また、集積回路全体ではなく、操作者が明示的に指定した部分だけを対象としてテストを実行することができるため、不必要なテストを排除し、テスト時間の短縮を図ることができる。
【００１８】
また、更に、全動作サイクルの中で、有効に取り扱うサイクルを指定するための指定手段を備え、上記指定手段により指定されたサイクルを処理対象とすることとしても良い。
上記構成を採用することで、ＩDDQテストに不必要な初期化テストや、シミュレーション上ではスタンバイサイクルなのだが、実際のデバイスではそうでないことが予めわかっているサイクルなどを選択抽出の対象外にすることができる。これにより真に必要十分なテストサイクルだけを選択抽出してテスト開発期間を短縮することができると共に、テスト品質も向上することができる。
【００１９】
【発明の実施の形態】
本発明のＩDDQテスト用サイクル選択抽出装置は、少数のスタンバイサイクルを用いて迅速かつ正確なＩDDQテストを実行可能にすることを目的として、ｎ個あるスタンバイサイクルにおける回路内のｍ個のネットの状態を表すｍビットデータの中から、ｍビットデータを構成する各ビットの値が少なくとも１回は１及び０となる最小の組み合わせを選択抽出し、当該選択抽出したｍビットデータに対応するサイクルをＩDDQテスト用のサイクルとして選択抽出することを特徴とする。これは、ｍビットデータを構成する各ビットの値が１及び０の値をとることで、必要十分なＩDDQテストが実行できるという経験則に基づく。
以下、添付の図面を用いて、上記特徴を具備する本発明のＩDDQテスト用サイクル選択抽出装置の実施の形態１及び実施の形態２について、順に説明する。
【００２０】
（１）実施の形態１
図１は、ＩDDQテスト用サイクル選択抽出装置１５０の機能ブロックを示す図である。論理シミュレーション装置１００は、所定のハードウェア記述言語を用いて記述されたＣＭＯＳ集積回路の論理シミュレーションを実行し、その結果、スタンバイサイクルについての情報、及び、当該論理回路の内部ネットに関する情報をＩDDQテスト用サイクル選択抽出装置１５０へと出力する。
【００２１】
ＩDDQテスト用サイクル選択抽出装置１５０内部において、データ編集部１５１は、論理シミュレーション装置１００より送られてくる論理シミュレーションの結果及びスタンバイサイクルについての情報から、スタンバイサイクルにおいて、全部でＭ個ある内部ネットの内、ＩDDQテスト用サイクルの選択抽出処理で有効に取り扱うｍ個の内部ネットを特定し、特定した各ネットの信号状態を表すｍビットデータを出力する。なお、後に説明するように、上記Ｍ個全ての内部ネットを、ＩDDQテスト用サイクルの選択抽出処理で有効な内部ネットとして取り扱うこととしても良いし、インバータやバッファ等、入力と出力が一対一に対応している素子については、その入出力ネットの何れか一方だけを、ＩDDQテスト用サイクルの選択抽出処理で有効な内部ネットとして取り扱うこととしても良い。またＩDDQテスト用サイクルの選択抽出処理で有効に取り扱う内部ネットは、操作者の設定に基づいて直接指定しても良いし、所定の規則に基づき区画される単位（機能ブロック、階層構造、電源系統）で指定しても良い。論理回路内に存在するＭ個の内部ネットは、論理シミュレーション装置１００内部に備える当該論理回路の記述データに基づいて特定することができる。なお、データ編集部１５１は、論理シミュレーション装置１００内部に備えることとしても良い。
【００２２】
ｍビットのデータ格納部１５２は、データ編集部１５１より出力されるｍビットのデータを格納する。
処理終了条件入力部１５３は、ＩDDQテスト用サイクル選択抽出部１５４において実行するＩDDQテスト用サイクルの選択抽出条件、及び、処理終了条件を外部より設定するためのマン・マシンインターフェースである。
ＩDDQテスト用サイクル選択抽出部１５４は、ｎ個あるスタンバイサイクルにおける回路内のｍ個のネットの状態を表すｍビットデータの中から、ｍビットデータを構成する各ビットの値が少なくとも１回は１及び０となる最小の組み合わせを選択抽出する。
印刷・表示部１５５は、上記ＩDDQテスト用サイクル選択抽出部１５４により選択抽出された各サイクルについて、論理シミュレーションの開始より何番目のサイクルであるのかを表す情報を印刷または表示する。
【００２３】
図２は、ＩDDQテスト用サイクルの選択抽出装置１５０のハードウェア構成を示す図である。本装置１５０は、キーボード２００、マウス２０１、記憶装置２０２、データ処理装置２０３、ディスプレイ２０４、及び、プリンタ２０５より構成される。
【００２４】
キーボード２００及びマウス２０１は、図１に示した処理終了条件入力部１５３として機能する。記憶装置２０２は、図１に示したｍビットデータ格納部１５２として機能する。データ処理装置２０３は、中央演算処理装置（ＣＰＵ）、及び、ＩDDQテスト用サイクル選択抽出処理プログラムを格納するメモリより構成される。データ処理装置２０３を構成する中央演算処理部は、メモリに書き込まれているＩDDQテスト用サイクル選択抽出処理プログラムを実行して、図１に示したデータ編集部１５１、及び、ＩDDQテスト用サイクルの選択抽出部１５４として機能する。ディスプレイ２０４及びプリンタ２０５は、図１に示した印刷・表示部１５５として機能する。
【００２５】
図３は、データ処理装置２０３の実行するＩDDQテスト用サイクルの選択抽出処理のフローチャートである。以下、本図のフローに従ってＩDDQテスト用サイクルの選択抽出処理について説明する。
【００２６】
まず、論理シミュレーション装置１００より送られてくる処理対象のＣＭＯＳ集積回路の内部ネットについての情報に基づいて、ＩDDQテスト用サイクルの選択抽出処理で有効に取り扱うｍ個のネットを特定する（ステップＳ１）。なお、この処理内容については後に図５〜図１０を用いて説明する。処理対象のＣＭＯＳ集積回路に対する論理シミュレーションの結果より、上記ステップＳ１において特定されたｍ個の内部ネットについて、動作サイクル（その数は回路の規模などにより変動する）中に存在したｎ個のスタンバイ状態の全サイクルを検出し、検出したサイクルにおける各ネットの論理値を所定の順序で並べてｍビットのデータとした後に、記憶装置２０２に保存する（ステップＳ２）。
なお、上記ｎ個のｍビットのデータは、論理シミュレーションの開始から何番目の動作サイクルであるのかを特定するデータと共に、以下の処理の便宜のため、出現タイミングの早いものから順に第１〜第ｎの識別番号を付して記憶装置２０２に保存しておく。また、ある動作サイクルにおいてスタンバイ状態が実現されているか否かを判断する技術については、周知であるため（例えば、特開平４−４４１７２号公報）、ここでの説明は省略する。
【００２７】
記憶装置２０２に記憶したｎ個のｍビットデータの中から、ハミング距離の最大の２つのデータを選択抽出する（ステップＳ３）。なお、当該処理の具体的な内容については後に図１１を用いて説明する。選択抽出した一方のｍビットデータの各ビットの値が全て”０”であり、他方のｍビットデータの各ビットの値が全て”１”の場合（ステップＳ４でＹＥＳ）、この２つのｍビットデータだけで全ｍ個のネットの値を”１”と”０”の両方の状態に設定してテストを行うことができる。このため、この２つのデータだけで必要十分なテストを行うことができると判断して、以降の選択抽出処理をスキップし、処理結果の出力処理を実行するステップＳ１０へと進む。
【００２８】
一方、上記ステップＳ２において選択した２つのデータの内、少なくとも一方のデータが、”０”または”１”のみで構成されていない場合には（ステップＳ４でＮＯ）、この２つのデータだけでは十分なテストを行うことができないと判断して、以下のステップＳ５〜Ｓ９の処理を実行する。
【００２９】
まず、選択抽出した２つのｍビットデータの各ビット毎の値を比較してトグル認識レジスタの値を更新する（ステップＳ５）。このトグル認識レジスタは、図４に示すように各々ｍビット（最大でＭビットである）のトグル済みフラグ記憶部２５０と未トグルデータ記憶部２５１を並べてなる合計で２×ｍビットのレジスタであり、データ処理装置２０３内に備えるメモリを用いて実現される。ここで、トグル済みフラグは、ビットデータが”０”、”１”の値をとり、トグル済みであると判断された場合に”１”にセットされるフラグである。トグル済みフラグ記憶部２５０は、ｍビット分のトグル済みフラグの値を格納し、未トグルデータ記憶部２５１は、トグルが未だ済んでいないビット位置のデータ値を記憶する。即ち、上記ステップＳ５において、比較したビットの一方が”１”で他方が”０”の場合には、上記トグル済みフラグ記憶部２５０の対応するビット位置の値を”１”にセットし、対応するビットのデータが共に”１”又は”０”の場合には、上記トグル済みフラグ記憶部２５０の対応するビット位置の値を”０”にセットすると共に、上記未トグルデータ記憶部２５１の対応するビット位置にデータの値を書き込む。
【００３０】
既に選択したｍビットデータの内、トグル認識レジスタ内のトグル済みフラグの値が”０”のビット位置のデータのみに着目する。このトグル済みフラグの値が”０”のビット位置のデータを並べて構成されるデータと、未だ選択抽出されていない複数のｍビットデータの中から、上記トグル済みフラグの値が”０”のビット位置のデータを並べて構成されるデータについて、ハミング距離の最も大きなｍビットデータを選択抽出する（ステップＳ６）。
【００３１】
ここで、ステップＳ６における処理の内容について補足説明する。例えば、上記ステップＳ３において選択した２つのｍビットデータが”１１１１１１１０…０００”及び”０００００００１…０００”の場合であって、上記ステップＳ５においてトグル済みフラグが”１１１１１１１１…０００”とセットされた場合を想定する。この場合、ステップＳ６ではトグル済みフラグの値が”０”のビット位置のデータを並べて構成される３ビットのデータ”０００”に着目し、該当するビット位置のデータを並べて構成される３ビットデータについて、着目したデータに対するハミング距離の最も大きなｍビットデータを、未だ選択抽出されていない複数のｍビットデータの中から選択抽出する。例えば、”××××××××…１１１”（但し、×は任意の値）のようなｍビットデータが存在する場合には、このｍビットデータを選択抽出する。
【００３２】
上記ステップＳ６において選択抽出したｍビットデータとの比較を行い、上記残りのビットに関してトグル認識レジスタ内のトグル済みフラグ記憶部２５０の対応するビットのフラグの値を更新する（ステップＳ７）。トグル認識レジスタ内のトグル済みフラグ記憶部２５０のｍビット全てのフラグの内、未だ１にセットされていないビットが存在するか、未だ選択抽出されていないｍビットデータが存在する場合であって（ステップＳ８でＹＥＳ）、更に操作者により指定された処理終了条件が満足されていない場合には（ステップＳ９でＮＯ）、ステップＳ６に戻り処理を継続する。
【００３３】
他方、トグル認識レジスタ内のトグル済みフラグ２５０のｍビット全てのフラグの値が１にセットされている場合、又は、ｎ個あるｍビットデータの全てが選択抽出された場合（ステップＳ８でＮＯ）、処理を終了して、処理結果の出力処理を実行するステップＳ１０へと進む。
また、上記ステップＳ８でＹＥＳの場合であっても、キーボード１００又はマウス１０１の入力部を介して操作者により指定された所定の処理終了条件が満足された場合には（ステップＳ９でＹＥＳ）、処理結果の出力を実行するステップＳ１０へと進む。ステップＳ１０では、選択抽出したサイクルを全てＩDDQテスト用サイクルとして、これらのサイクルが論理シミュレーションの開始から何番目の動作サイクルであるのかを特定する情報（データ）をディスプレイ１０４に表示出力すると共に、プリンタ１０５により印刷出力を行う。
【００３４】
図５は、論理シミュレーション装置１００より送られてくる処理対象の論理回路の内部ネットについての情報に基づいて、有効に取り扱うｍ個のネットを特定する処理（図３、ステップＳ１）の具体的な内容を表すフローチャートである。まず、論理シミュレーション装置１００に、処理対象のＣＭＯＳ集積回路の構成を表す記述データ、又は、内部ネットに関する情報を要求し、これを受け取る（ステップＳ２０）。受け取った上記データ又は情報に基づいて、回路内に含まれるインバータの入出力ネットの何れか一方のみを回路内のネットとして取り扱うこととして、有効なｍ個のネットを特定した後に（ステップＳ２１）、リターンする。
【００３５】
図６は、上記有効に取り扱うｍ個のネットを特定する処理（図３、ステップＳ１）の第１の変形例のフローチャートである。まず、論理シミュレーション装置１００に、処理対象の論理回路の構成を表す記述データ、又は、内部ネットに関する情報を要求し、これを受け取る（ステップＳ２２）。受け取った上記データ又は情報に基づいて、回路内に含まれるバッファの入出力ネットの何れか一方のみを回路内のネットとして取り扱うこととして、有効なｍ個のネットを特定した後に（ステップＳ２３）、リターンする。
【００３６】
図７は、上記有効に取り扱うｍ個のネットを特定する処理（図３、ステップＳ１）の第２の変形例のフローチャートである。まず、論理シミュレーション装置１００に、処理対象の論理回路の構成を表す記述データ、又は、内部ネットに関する情報を要求し、これを受け取る（ステップＳ２４）。受け取った上記データ又は情報より回路内の全部でＭ個のネットについて調べ、上記Ｍ個のネットから操作者による指定に基づいて特定されるｍ個の内部ネットを有効に取り扱うものとした後に（ステップＳ２５）、リターンする。
【００３７】
図８は、上記有効に取り扱うｍ個のネットを特定する処理（図３、ステップＳ１）の第３の変形例のフローチャートである。まず、論理シミュレーション装置１００に、処理対象の論理回路の構成を表す記述データを要求し、これを受け取る（ステップＳ２６）。受け取った上記記述データより回路内の全部でＭ個のネットについて調べ、上記Ｍ個のネットの中から予め指定された機能ブロックに入出力するｍ個のネットを有効に取り扱うものとした後に（ステップＳ２７）、リターンする。
また、上記ステップＳ２７において、予め指定された機能ブロックではなく、予め指定された所定の階層に属する回路のｍ個のネットを有効に取り扱うものとしても良い。
【００３８】
以下、図９を用いて上記第３の変形例の処理について補足説明を行う。
図９の（ａ），（ｂ），（ｃ）は、機能ブロックＡ内の回路構成を順に詳しく示した図である。操作者が、図９の（ａ）に示す機能ブロックＡを指定した場合には、上記ステップＳ２７では、当該機能ブロックＡ内に存在する全ての素子についての内部ネット２６５〜２８５が有効な内部ネットとして選択される。また、図９の（ｂ）に示すように、機能ブロックＡを構成する機能ブロック（サブブロック）ａ１、ａ２、又は、ａ３が選択された場合には、選択された機能ブロック内に存在する全ての素子についての内部ネットが選択される。例えば、機能ブロックａ１が選択された場合には、内部ネット２７２，２７３，２７４，２７６が選択される。
一方、図９の（ａ）に示す機能ブロックＡの属する階層が指定された場合には、内部ネット２６０〜２６４が有効な内部ネットとして選択される。また、図９の（ｂ）に示すように、機能ブロックａ１、ａ２及びａ３の属する階層が指定された場合には、内部ネット２６５〜２７１が有効な内部ネットとして取り扱われる。
【００３９】
図１０は、上記有効に取り扱うｍ個のネットを特定する処理（図３、ステップＳ１）の第４の変形例のフローチャートである。まず、論理シミュレーション装置１００に、処理対象の論理回路の構成を表す記述データを要求し、これを受け取る（ステップＳ２８）。受け取った上記記述データより回路内の全部でＭ個のネットについて調べ、上記Ｍ個のネットの中から操作者により予め指定された電源系統に属するｍ個のネットを有効なネットとした後に（ステップＳ２９）、リターンする。
【００４０】
図１１は、記憶装置２０２に記憶されているｎ個のｍビットデータの中から相互のハミング距離が近似的に最大とみなすことのできる２つのデータを選択抽出する処理（図３のステップＳ３）の具体的処理手順を示すフローチャートである。
まず、記憶装置２０２に記憶するｎ個のｍビットデータより”１”を最も多く含むデータ、及び、”０”を最も多く含むデータを選択抽出する（ステップＳ３０）。”１”を最も多く含むとして選択したｍビットデータの値が最大となるデータと、”０”を最も多く含むとして選択したｍビットデータの値が最小となるデータとを選択抽出する（ステップＳ３１）。
上記処理では、ｎ個のｍビットデータの内、常にハミング距離の最大の組み合わせが選択抽出されるとは限らない。全ての組み合わせについて、そのハミング距離を求めるのは長時間を要するのに対して、本処理は短時間で近似解を得ることができることを特徴とするからである。なお、本処理において、ｍビットデータの全てのビット値が”１”のデータ、及び、”０”のデータが存在する場合、この２つのデータは必ず選択されるため、既に説明した図３の処理内容には何の影響も与えない。
【００４１】
図１２は、ネット数がｍのＣＭＯＳ集積回路に対して論理シミュレーションを実行し、合計で１０個のスタンバイ状態が検出された場合に記憶装置２０２に保存される１０個のｍビットデータに対して、上記図３を用いて説明したＩDDQテスト用のサイクルの選択抽出処理を実行した場合の処理内容を説明するための図である。
【００４２】
まず、１０個のｍビットデータよりハミング距離が最大とされる２つのデータを、上記図１１を用いて説明したステップＳ３の処理により選択抽出する。この結果、選択抽出されるのは、識別番号ｎ＝１のデータ及びｎ＝１０のデータである。この２つのデータを比較すると、下位３ビットを除く全てのビットの値は、一方が”１”で他方が”０”であるトグルの関係にあることがわかる。そこで、（ａ）に示すように、識別番号ｎ＝１又はｎ＝１０のｍビットデータの下位３ビットを除く全てのトグル認識レジスタ内のトグル済みフラグ記憶部２５０の対応する位置のビットの値を”１”にセットすると共に、未トグルデータ記憶部２５１の対応する位置に、識別番号ｎ＝１又はｎ＝１０のｍビットデータの下位３ビットのデータ”０００”の値を記憶する。
【００４３】
次に、未だ選択抽出されていないｍビットデータの中から、その下位３ビットのデータが、識別番号ｎ＝１又はｎ＝１０のｍビットデータの下位３ビットのデータ”０００”と、最もハミング距離の大きなデータを選択抽出する。本例の場合、下位３ビットのデータが”０１１”である識別番号ｎ＝５のデータが選択抽出される。（ｂ）に示すように、この選択抽出した識別番号ｎ＝５のデータの下位３ビットのデータに基づいてトグル認識レジスタ内のトグル済みフラグ記憶部２５０の下位２ビットの値を”１”にセットする。
【００４４】
最後に残った下位第３ビット目にあるデータ”０”と最もハミング距離の離れているデータ、即ち、下位第３ビット目のデータ値が”１”である識別番号ｎ＝４のデータを選択する。このデータを選択抽出することにより（ｃ）に示すように、トグル認識レジスタ内のトグル済みフラグ記憶部２５０の全てのビットの値が”１”にセットされる。
【００４５】
このようにトグル認識レジスタ内のトグル済みフラグ記憶部２５０のｍビット全ての値が”１”にセットされた場合に、これら４つのｍビットデータに対応するサイクルをＩDDQテスト用のサイクルとして選択抽出し、論理シミュレーションの開始から何番目のサイクルであるのかを特定する情報（データ）をディスプレイ２０４に表示すると共に、プリンタ２０５により印刷出力を行う。
【００４６】
以上に説明したように、実施の形態１にかかるＩDDQテスト用サイクル選択抽出装置によれば、論理シミュレーション装置１００によるシミュレーションの実行により得られるｎ個のスタンバイサイクルにおける回路内のｍ個のネットの状態を表すｍビットデータの中から、ｍビットデータを構成する各ビットの値が少なくとも１回は１及び０となる最小の組み合わせを正確かつ迅速に選択抽出し、当該選択抽出したｍビットデータに対応するサイクルをＩDDQテスト用のサイクルとして選択抽出することができる。
【００４７】
（２）実施の形態２
上記本発明の実施の形態１にかかる装置では、まず、論理シミュレーション装置１００によるＣＭＯＳ集積回路の論理シミュレーションを実行した後にＩDDQテスト用のサイクルの検出処理を実行した。これに対して、実施の形態２にかかる装置では、ＣＭＯＳ集積回路に対する論理シミュレーションの実行に連動して、ＩDDQテスト用のサイクルを検出することを特徴とする。
【００４８】
図１３は、実施の形態２にかかるＩDDQテスト用サイクル選択抽出装置３００の機能ブロックを示す図である。論理シミュレーション部３０１は、以下に説明するテスト用サイクル選択抽出部３０３によるタイミング制御に基づいて、所定のハードウェア記述言語で記述されたＣＭＯＳ集積回路の論理シミュレーションを実行し、１サイクル毎のシミュレーション結果を出力する。
【００４９】
データ編集部３０２は、論理シミュレーション部３０１より送られてくる論理シミュレーションの結果及びＣＭＯＳ集積回路の情報から、スタンバイサイクルにおいて、全部でＭ個ある内部ネットの内、有効に取り扱うｍ個の内部ネットを特定し、特定した各ネットの信号状態を表すｍビットデータを出力する。なお、このデータ編集部３０２は、上記実施の形態１のＩDDQテスト用サイクル選択抽出装置１５０内の備えられるデータ編集部３０２と同じ処理を実行するものであり、ここでの重複した説明は省略する。
【００５０】
テスト用サイクル選択抽出部３０３は、データ編集部３０２を介して送られてくるスタンバイサイクルのｍビットデータが、直前に選択抽出したサイクルのｍビットデータと、ハミング距離に関して所定の条件を満足する場合にのみ、当該サイクルをＩDDQテスト用のサイクルとして選択する。テスト用サイクル選択抽出部３０３は、この判断を行った後に、論理シミュレーション部３０１に対して、次のサイクルのシミュレーションを実行させる。
【００５１】
処理終了条件入力部３０４は、上記テスト用サイクル選択抽出部３０３において実行するＩDDQテスト用サイクルの選択抽出条件、及び、処理終了条件を外部より設定するためのマン・マシンインターフェースである。
印刷・表示部３０５は、上記テスト用サイクル選択抽出部３０３により選択抽出された各サイクルについて、論理シミュレーションの開始より何番目のサイクルであるのかを表す情報を印刷又は表示する。
【００５２】
図１４は、ＩDDQテスト用サイクル選択抽出装置３００のハードウェア構成を示す図である。本装置１５０は、キーボード４００、マウス４０１、記憶装置４０２、データ処理装置４０３、ディスプレイ４０４、及び、プリンタ４０５より構成される。
【００５３】
キーボード４００及びマウス４０１は、図１３に示した処理終了条件入力部３０４として機能する。データ処理装置４０３は、中央演算処理装置（ＣＰＵ）及びプログラムを格納するメモリより構成され、中央演算処理部がメモリに書き込まれているＩDDQテスト用サイクル選択抽出処理プログラムを実行することで、図１３に示したデータ編集部３０２、及び、ＩDDQテスト用サイクルの選択抽出部３０３として機能する。ディスプレイ４０４及びプリンタ４０５は、図１３に示した印刷・表示部１５５として機能する。
【００５４】
図１５は、データ処理装置４０３の実行するＩDDQテスト用サイクル選択抽出処理のフローチャートである。以下、本図のフローに従ってＩDDQテスト用のサイクルの選択抽出処理について説明する。
【００５５】
まず、論理シミュレーション部３０１によるＣＭＯＳ集積回路の論理シミュレーションを開始し、各動作サイクルにおける各ネットの状態より最初のスタンバイ状態を検出する（ステップＳ６０）。論理シミュレーション部３０１から送られてくるＣＭＯＳ集積回路の内部ネットについての情報に基づいて、有効に取り扱うｍ個のネットを特定し、各ネットの論理値を所定の順序で並べてｍビットのデータとして出力する（ステップＳ６１）。なお、この処理内容は、既に図５〜図１０を用いて説明した上記実施の形態１のデータ処理装置２０３の実行するステップＳ１の処理と同じであり、ここでの重複した説明は省く。
【００５６】
最初に検出されたスタンバイ状態におけるサイクルを第１のＩDDQテスト用のサイクルとし、論理シミュレーションの開始より何番目のサイクルであるのかを特定する情報、第１番目にＩDDQテスト用のサイクルとして選択抽出されたことを表すデータ、及び、このサイクルにおける各ネットの論理値を所定の順序で並べて表したｍビットのデータを記憶装置４０２に保存すると共に、トグル認識レジスタ内のデータをリセットしておく（ステップＳ６２）。なお、このトグル認識レジスタの構成は、実施の形態１のものと同じであり、トグル済みフラグ記憶部２５０及び未トグルデータ記憶部２５１よりなり、データ処理装置４０３内に備えるメモリを用いて実現される。
【００５７】
この後、論理シミュレーションを続行して１サイクル分時計を進め（ステップＳ６３）、次のサイクルがスタンバイ状態であるか否かについての判断を行う（ステップＳ６４）。ここで、論理シミュレーションを実行したサイクルがスタンバイサイクルでない場合（ステップＳ６４でＮＯ）、上記ステップＳ６３に戻り、次のサイクルについての論理シミュレーションを実行する。
【００５８】
論理シミュレーションを実行したサイクルがスタンバイサイクルの場合（ステップＳ６４でＹＥＳ）、当該サイクルにおけるｍビットデータと、１つ前のタイミングでＩDDQテスト用のサイクルであるとして選択抽出されたサイクルのｍビットデータについて、トグル済みフラグの値が”０”のビット位置のデータのみに着目した場合のハミング距離が所定の基準値以上であるか否かについての判断を行う（ステップＳ６５）。
【００５９】
ここで、ハミング距離が所定値以上で無い場合（ステップＳ６５でＮＯ）、上記ステップＳ６３に戻り、次のサイクルについての論理シミュレーションを実行する。なお、上記所定の基準値は、ｍビットデータの内、トグル済みフラグが”０”のビットの数に応じて、所定の規則に従い変更する。例えば、トグル済みフラグが”０”のビット数がｐ（但し、ｍ≧ｐ）である場合、上記所定の基準値をｐ−２（但し、ｐ≦２の場合には１）に設定する。
【００６０】
一方、当該サイクルがスタンバイ状態にあると判断された場合であって（ステップＳ６４でＹＥＳ）、ハミング距離が上記所定の基準値以上の場合には（ステップＳ６５でＹＥＳ）、当該サイクルを次のＩDDQテスト用のサイクルとして選択抽出し、当該サイクルが論理シミュレーションの開始より何番目のサイクルであるのかを特定するデータ、第１番目にＩDDQテスト用のサイクルとして選択抽出されたことを表すデータ、及び、このサイクルにおける各ネットの論理値を所定の順序で並べて表したｍビットのデータを記憶装置２０２に保存する（ステップＳ６６）。
【００６１】
トグル認識レジスタ内のトグル済みフラグ記憶部２５０の値が”０”のビット位置のデータのみに着目し、上記ステップＳ６６で選択したＩDDQテスト用のサイクルにおけるｍビットデータと、その直前に選択したｍビットデータとの比較を行い、トグル認識レジスタ内のトグル済みフラグ記憶部２５０内のデータの更新を行う（ステップＳ６７）。
未処理のサイクルが存在する場合、又は、トグル認識レジスタに”０”にセットされているビットが未だ存在している場合であって（ステップＳ６８でＹＥＳ）、操作者により設定された終了条件を未だ満足していない場合（ステップＳ６９でＮＯ）、上記ステップＳ６３に戻り、次のサイクルについての処理を行う。
【００６２】
一方、全てのサイクルに対する処理が終了した場合、又は、トグル認識レジスタの各ビットが１にセットされた場合には（ステップＳ６８でＮＯ）、処理を終了し、ディスプレイ２０４及びプリンタ２０５等へ処理結果を出力するステップＳ７０へと進む。また、未処理サイクルが残っている場合、又は、トグル認識レジスタの”０”にセットされているビットが残存している場合であっても（ステップＳ６８でＹＥＳ）、操作者が指定した終了条件を満足した場合には（ステップＳ６９でＹＥＳ）、処理を終了し、ディスプレイ２０４及びプリンタ２０５等へ処理結果を出力するステップＳ７０へと進む。ステップＳ７０では、選択抽出し記憶装置２０２に保存したＩDDQテスト用の各サイクルについて、論理シミュレーションの開始から何番目の動作サイクルであるのかを特定する情報（データ）をディスプレイ２０４に表示出力すると共に、プリンタ２０５により印刷出力する。
【００６３】
以上に説明したように、実施の形態２にかかるＩDDQテスト用サイクルの選択抽出装置３００は、論理シミュレーション部３０１における論理シミュレーションの実行に連動してＩDDQテスト用のサイクルを選択抽出するため、論理シミュレーションの終了と共に、ＩDDQテスト用サイクルの選択処理を終了する。これにより、処理に要する時間を短くすることができる。
【００６４】
【発明の効果】
本発明の第１のＩDDQテスト用サイクル選択抽出装置では、選択抽出すべきＩDDQテスト用のサイクル数ｎを指定せずとも、必要十分な個数のテストサイクルを選択抽出することができる。このため、半導体集積回路の出荷前に漏れのない正確なＩDDQテストを迅速に実行することができる。
【００６５】
また、好ましい構成の装置では、トグル済みフラグの立っていないデータに関して、互いのハミング距離の最も大きなデータの近似解を迅速に得ることが可能となるため、全体の処理時間を短縮することができる。
【００６６】
本発明の第２のＩDDQテスト用サイクル選択抽出装置では、論理シミュレータによる論理シミュレーションの実行と連動して動作するため、論理シミュレーションの終了と同時にＩDDQテスト用のサイクル抽出処理を終了することができる。このように、迅速に処理結果が得られるので、ＩDDQテストの作業効率が向上する。
【００６７】
より好ましい構成の上記第１又は第２の装置では、回路内に存在するインバータやバッファなど、その入出力が一対一に対応する素子については、その入出力ネットの何れか一方のみを有効なネットとする。また、処理対象となるネットを、機能ブロック単位で、階層設計データの中から電源系統に準じて、又は、直接指定しても良い。これにより、無駄なデータの比較検証を省き、ＩDDQテスト用のサイクルを検出するのに要する時間を短縮することができる。
【００６８】
また、より好ましい構成の上記第１又は第２の装置では、論理シミュレーションの対象となる全動作サイクルの中で、有効に取り扱うサイクルを指定することで、不必要なサイクルについて無駄な処理を省き、処理に要する時間を短縮することができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１にかかるＩDDQテスト用サイクル選択装置の機能ブロック図である。
【図２】  本発明の実施の形態１にかかるＩDDQテスト用サイクル選択装置のハードウェア構成図である。
【図３】  データ処理装置の実行する処理を示すフローチャートである。
【図４】  トグル認識レジスタのデータ構成を示す図である。
【図５】  有効に取り扱うｍ個のネットを特定する処理を具体的に示すフローチャートである。
【図６】  有効に取り扱うｍ個のネットを特定する処理を具体的に示すフローチャートである。
【図７】  有効に取り扱うｍ個のネットを特定する処理を具体的に示すフローチャートである。
【図８】  有効に取り扱うｍ個のネットを特定する処理を具体的に示すフローチャートである。
【図９】  機能ブロックの定義について説明するための図である。
【図１０】  有効に取り扱うｍ個のネットを特定する処理を具体的に示すフローチャートである。
【図１１】  ｎ個のｍビットデータの中からハミング距離の大きなデータを選択抽出する処理のフローチャートである。
【図１２】  １０個のｍビットデータに対するデータ処理装置による処理例を示す図である。
【図１３】  実施の形態２にかかるＩDDQテスト用サイクル選択抽出装置の機能ブロックを示す図である。
【図１４】  実施の形態２にかかるＩDDQテスト用サイクル選択抽出装置のハードウェア構成図である。
【図１５】  実施の形態２にかかるＩDDQテスト用サイクル選択抽出装置の処理のフローチャートである。
【符号の説明】
１００…論理シミュレーション装置
１５０，３００…ＩDDQテスト用サイクル選択抽出装置
１５１，３０２…データ編集部
１５２…スタンバイサイクルのｍビットデータ格納部
１５３，３０４…処理終了条件入力部
１５４，３０３…ＩDDQテスト用サイクル選択抽出部
１５５，３０５…選択抽出済みサイクル印刷・表示部
２００，４００…キーボード
２０１，４０１…マウス
２０２，４０２…記憶装置
２０３，４０３…データ処理装置
２０４，４０４…ディスプレイ
２０５，４０５…プリンタ
２５０…トグル済みフラグ記憶部
２５１…未トグルデータ記憶部
２６０〜２８５…内部ネット
３０１…論理シミュレーション部
【図１】
0003689537.tif 000002
【図２】
0003689537.tif 000003
【図３】
0003689537.tif 000004
【図４】
0003689537.tif 000005
【図５】
0003689537.tif 000006
【図６】
0003689537.tif 000007
【図７】
0003689537.tif 000008
【図８】
0003689537.tif 000009
【図９】
0003689537.tif 000010
【図１０】
0003689537.tif 000011
【図１１】
0003689537.tif 000012
【図１２】
0003689537.tif 000013
【図１３】
0003689537.tif 000014
【図１４】
0003689537.tif 000015
【図１５】
0003689537.tif 000016