(57)【特許請求の範囲】
【請求項１】
被試験対象回路へ供給される入力パターンのサイクル数をカウントし、前記入力パターンのサイクル数が予め設定されたカウント数と一致した時点で、前記被試験対象回路への前記入力パターンの供給を停止する入力パターン制御回路と、
前記入力パターンを保存する入力パターン保存回路と、
前記入力パターン制御回路からの制御信号を受け、前記被試験対象回路へスキャンシフト信号を供給し、前記被試験対象回路内のスキャンチェインをシフトさせるスキャン制御回路と、
前記スキャンチェインの出力を期待値データとして保存する期待値生成回路と、を備えることを特徴とする集積回路。
【請求項２】
前記スキャン制御回路による前記スキャンチェインのシフト動作中に、前記被試験対象回路から出力された値をスキャン入力として当該被試験対象回路に再度入力させる制御を行う回路を更に備えることを特徴とする請求項１に記載の集積回路。
【請求項３】
前記入力パターン制御回路は、前記入力パターンのサイクル数が前記予め設定されたカウント数と一致した時点で、前記被試験対象回路へのクロック供給を停止させ、
前記スキャン制御回路は、前記入力パターン制御回路が前記被試験対象回路へのクロック供給を停止させた後に、外部から前記被試験対象回路にアクセス可能な程度の周波数を有するクロックを、前記スキャンチェインの長さに応じたサイクルだけ前記被試験対象回路に印加させることを特徴とする請求項１又は２に記載の集積回路。
【請求項４】
被試験対象回路へ供給される入力パターンのサイクル数をカウントし、前記入力パターンのサイクル数が予め設定されたカウント数と一致した時点で、前記被試験対象回路への前記入力パターンの供給を停止する入力パターン制御手段と、
前記入力パターンを保存する入力パターン保存手段と、
前記入力パターン制御手段からの制御信号を受け、前記被試験対象回路へスキャンシフト信号を供給し、前記被試験対象回路内のスキャンチェインをシフトさせるスキャン制御手段と、
前記スキャンチェインの出力を期待値データとして保存する期待値生成手段と、を備えることを特徴とするシミュレーション装置。
【請求項５】
前記スキャン制御手段による前記スキャンチェインのシフト動作中に、前記被試験対象回路から出力された値をスキャン入力として当該被試験対象回路に再度入力させる制御を行う手段を更に備えることを特徴とする請求項４に記載のシミュレーション装置。
【請求項６】
前記入力パターン制御手段は、前記入力パターンのサイクル数が前記予め設定されたカウント数と一致した時点で、前記被試験対象回路へのクロック供給を停止させ、
前記スキャン制御手段は、前記入力パターン制御手段が前記被試験対象回路へのクロック供給を停止させた後に、外部から前記被試験対象回路にアクセス可能な程度の周波数を有するクロックを、前記スキャンチェインの長さに応じたサイクルだけ前記被試験対象回路に印加させることを特徴とする請求項４又は５に記載のシミュレーション装置。
【請求項７】
被試験対象回路へ供給される入力パターンのサイクル数をカウントし、前記入力パターンのサイクル数が予め設定されたカウント数と一致した時点で、前記被試験対象回路への前記入力パターンの供給を停止する入力パターン制御工程と、
前記入力パターンを保存する入力パターン保存工程と、
前記入力パターン制御工程からの制御信号を受け、前記被試験対象回路へスキャンシフト信号を供給し、前記被試験対象回路内のスキャンチェインをシフトさせるスキャン制御工程と、
前記スキャンチェインの出力を期待値データとして保存する期待値生成工程と、を備えることを特徴とするシミュレーション方法。
【請求項８】
請求項７に記載のシミュレーション方法で得られたデータを用いて試験を行う試験方法であって、
前記入力パターン保存工程で保存された前記入力パターンを半導体装置に入力してスキャンシフトさせた際の前記半導体装置の出力値と、前記期待値生成工程で保存された前記期待値データとを比較することで、前記半導体装置の試験を行う工程を備えることを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディレイテスト用のディレイテストパターンを生成する集積回路、シミュレーション装置、及びシミュレーション方法に関する。
【背景技術】
【０００２】
半導体集積回路(以下、適宜「ＬＳＩ」と呼ぶ。)は、製造ばらつき等により、素子の遅延値が規格値を超えてしまうような不良（所謂、遅延故障）が発生することがある。近年ではＬＳＩにおける同期式デジタル回路の動作周波数の高速化が進んでいるため、小さな遅延故障による不良が回路動作不良の原因となる傾向にある。このような動作不良を防ぐために、同期式デジタル回路においては、例えば実際に使用する動作周波数で回路を動作するかを確かめるための試験（以下、適宜「ディレイテスト」と呼ぶ。）を出荷前に実施することが望ましい。
【０００３】
この種の技術として、スキャン方式の故障シミュレーションを行う場合に、レジスタからレジスタへ至るパスの論理を活性化し、それぞれのパスが仕様周波数で動作可能であるか否かをテストする技術が提案されている（特許文献１）。また、遅延故障が特定されないパスを特定し、それらのパスの遅延故障を検出可能なテストパターンを生成すると共に、各パスが活性化されているか否かを確認する技術が提案されている（特許文献２）。更に、各外部入力ピン及びフリップフロップの初期値及び遷移値を用いて、論理回路の組み合わせ部分に対してディレイ故障シミュレーションを行う技術が提案されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−２８７２７１号公報
【特許文献２】特開２００４−５４３２９号公報
【特許文献３】特開平５−７２２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記したような従来の技術では、ＬＳＩを実際の使用形態に沿って動作させるような入力パターンを用いて、ＬＳＩ内部の遅延故障をＬＳＩ外部において効率良く検出することが困難であった。
【課題を解決するための手段】
【０００６】
開示の装置は、ＬＳＩのディレイテスト用のテストパターン（以下、適宜「ディレイテストパターン」と呼ぶ。）を生成する制御を行うために好適に利用される。入力パターン制御回路は、被試験対象回路へ供給される入力パターンのサイクル数をカウントし、予め設定されたカウント数と一致した時点で、被試験対象回路への入力パターンの供給を停止し、入力パターン保存回路は、このような入力パターンを保存する。スキャン制御回路は、入力パターン制御回路からの制御信号を受け、被試験対象回路へスキャンシフト信号を供給し、被試験対象回路内のスキャンチェインをシフトさせる。そして、期待値生成回路は、スキャンチェインの出力を期待値データとして保存する。
【発明の効果】
【０００７】
開示の装置によって得られたパターンを実機（ＬＳＩ）に入力し、これにより得られた出力データと期待値データとを比較することで、実機（ＬＳＩ）内部の不良個所を適切に特定することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】比較例に係るディレイテストを実施するためのフローを示す。
【図２】第１比較例に係るシミュレーション装置の概略構成を示すブロック図である。
【図３】本実施形態に係るシミュレーション装置を構成するコンピューのハードウェア構成例を示すブロック図である。
【図４】本実施形態に係るシミュレーション装置の概略構成を示すブロック図である。
【図５】本実施形態に係る入力パターン制御機構及びスキャン制御機構の構成例を示す。
【図６】本実施形態に係るディレイテストを実施するためのフローを示す。
【図７】第１のステップＳＴＥＰ１の詳細を表したフローを示す。
【図８】入力パターン制御機構及びスキャン制御機構の回路例を示す。
【図９】ステップＳＴＥＰ１−１〜ＳＴＥＰ１−３を行った際の動作波形例を示す。
【図１０】ＳＴＥＰ１−３、ＳＴＥＰ１−４を行った後にステップＳＴＥＰ１−１に戻った際の動作波形例を示す。
【発明を実施するための形態】
【０００９】
以下、実施形態の一例について図面を参照しつつ説明する。
【００１０】
［比較例の問題点］
本実施形態の内容を説明する前に、従来から行われているディレイテスト（以下、従来から行われているディレイテストの手法を適宜「比較例」と呼ぶ。）の問題点について説明する。
【００１１】
図１は、比較例に係るディレイテストを実施するためのフローを示す。図１に示すように、当該フローは２つのステップから構成される。第１のステップＳＴＥＰ１（３０２ａ）は、論理シミュレーション装置等を用いて、入力パターンＶＩ（１０５）を印加して論理シミュレーションを実施することで期待値ＶＯ（１０６ａ）を得る期待値生成過程である。つまり、ディレイテストパターンの生成過程である。第２のステップＳＴＥＰ２（３１２）は、実際のＬＳＩ３１３に入力パターンＶＩ（１０５）を印加することで得た出力値を期待値ＶＯ（１０６ａ）と比較するステップ３１４と、この比較結果を出力するステップ３１５とから構成される試験実施過程である。
【００１２】
ここで、上記した第１のステップＳＴＥＰ１において、どのようなパターンを入力し出力期待値を得るかによって、ディレイテストの特徴・品質が決定される。その手法については、従来から、例えば下記の２種類の手法（以下、それぞれ「第１比較例」及び「第２比較例」と呼ぶ。）が知られている。
・第１比較例：ロジックスキャン試験等で使用するスキャンチェインを使用したテストパターンを生成し試験を実施する手法。
・第２比較例：第１のステップＳＴＥＰ１において、ＬＳＩを実際の使用形態に沿って動作させるような入力パターンＶＩを用意し、論理シミュレーション装置により、ＬＳＩ通常動作時の動作周期で動作させて出力値の期待値ＶＯを得る手法。
【００１３】
図２を参照して、第１比較例に係る手法について具体的に説明する。図２は、第１比較例に係るシミュレーション装置１０１ａの概略構成を示すブロック図である。なお、図２は、スキャン動作時における信号の流れを太線で表している。
【００１４】
シミュレーション装置１０１ａは、コンピュータ等で動作するプログラムである。テストベンチ１０２ａは、ＬＳＩの論理シミュレーションモデルを用いてシミュレーション全体を制御するシステムであり、例えば「Ｖｅｒｉｌｏｇ」記述で書かれている。ＬＳＩの論理シミュレーションモデル１０３ａ（以下では、当該モデルを単に「ＬＳＩ」とも表記する。）は、実際のＬＳＩの回路情報を論理シミュレーション装置で動作可能なプログラム記述にモデル化したものである。例えば、論理シミュレーションモデル１０３ａは、ゲートレベルネットリストやＲＴＬ等の「Ｖｅｒｉｌｏｇ」記述で書かれている。
【００１５】
試験対象回路１０４は、内部にＬＳＩの回路を有する。具体的には、試験対象回路１０４は、６つのフリップフロップＦＦ１〜ＦＦ６、６つのセレクタ回路Ｓ１〜Ｓ６、及び組合せ回路１１５を有する。セレクタ回路Ｓ１〜Ｓ６は、フリップフロップＦＦ１〜ＦＦ６にて、スキャンチェインを選択するか、通常入力を選択するかの選択を行う回路である。ここで、「スキャンチェイン」とは、フリップフロップをシリアルに接続するフリップフロップのチェインを意味し、図２に示す例では、スキャン入力信号ＳＩを入力としてスキャン出力信号ＳＯを出力するようなチェインに対応する。
【００１６】
シミュレーション装置１０１ａで用いられる各信号について具体的に説明する。入力パターンＶＩは、一定サイクルごとに試験対象回路１０４に供給されるパターンである。具体的には、入力パターンＶＩは、ＬＳＩの各構成要素を動作させることが可能なパターンである。例えば、入力パターンＶＩは、パターン発生装置に記憶されており、内部発振クロックＰＣＫに同期してパターン発生装置から出力される。出力パターンＶＯは、試験対象回路１０４からの出力期待値であり、試験対象回路１０４の出力値を一定サイクルごとにサンプリングすることにより得られる（なお、本明細書では、出力パターン及び出力期待値の両方について「ＶＯ」の符号を用いる。）。通常入力信号ＮＩは、通常動作時における入力信号であり、入力パターンＶＩに対応する信号である。通常出力信号ＮＯは、通常動作時における出力信号である。スキャン入力信号ＳＩ及びスキャン出力信号ＳＯは、スキャン試験時のみに使用されるスキャン信号である。
【００１７】
スキャン選択信号ＳＥは、セレクタ回路Ｓ１〜Ｓ６に供給される選択信号であり、当該信号が「１」のときにはスキャンチェインが選択され、当該信号が「０」のときには通常動作回路が選択される。外部入力クロックＥＣＫは、ＬＳＩ１０３ａ外部から入力されるクロックである。内部発振クロックＰＣＫは、ＬＳＩ１０３ａ内部のＰＬＬ１１４で発振されるクロックであり、ＬＳＩ１０３ａ内部の回路は基本的には当該クロックをベースに動作する。内部クロックＣＫは、試験対象回路１０４に供給されるクロック信号であり、図２に示す例では内部クロックＣＫは内部発振クロックＰＣＫと同一のクロックである。
【００１８】
このような第１比較例に係るシミュレーション装置１０１ａは、上記した第１のステップＳＴＥＰ１において、以下のような小ステップ（１）〜（４）を含む動作を行うことで期待値ＶＯを得る。なお、小ステップ（１）→（２）→（３）→（４）の順に動作を行うものとする。
（１）スキャン選択信号ＳＥを「１」に設定して、スキャンチェインを用いて、試験対象回路１０４内の各フリップフロップＦＦ１〜ＦＦ６にスキャン入力信号ＳＩに対応する値を設定するステップ。
（２）スキャン選択信号ＳＥを「１」から「０」に設定し、内部クロックＣＫより第１のクロックパルスを各フリップフロップＦＦ１〜ＦＦ６に印加することで、各フリップフロップＦＦ１〜ＦＦ６の値を変化させるステップ。
（３）遅延故障を測定するための第２のクロックパルスを内部クロックＣＫより各フリップフロップＦＦ１〜ＦＦ６に印加して、各フリップフロップＦＦ１〜ＦＦ６の値を観測するステップ。
（４）スキャン選択信号ＳＥを「０」から「１」に設定し、スキャンチェインを通して出力されたスキャン出力信号ＳＯに対応する値を、期待値ＶＯとして取得するステップ。
【００１９】
上記の動作において、第１のクロックパルスから第２のクロックパルスまでの時間が、ＬＳＩ通常動作時の動作周期に等しければ、第２のクロックパルスにより確定した各フリップフロップＦＦ１〜ＦＦ６の値は、当該動作周期を規格値としたディレイテストの期待値となる。なぜならば、もし遅延故障が発生しているとすれば、第２のクロックパルスにより確定する各フリップフロップＦＦ１〜ＦＦ６の値は異なる値になるからである。したがって、スキャン入力信号ＳＩに対応する値を入力値とし、スキャン出力信号ＳＯに対応する値を期待値とするような動作パターンを用いて、実際のＬＳＩに対するディレイテストを行うことが可能である。
【００２０】
第１比較例に係る手法は、スキャンチェインを挿入することで各フリップフロップの値をＬＳＩ外部に出力することができるため、網羅的にＬＳＩ内部の遅延故障を検出することができる。しかしながら、第１比較例に係る手法は、スキャンチェインが挿入されたフリップフロップ間を結ぶ同期式デジタル回路には適用できるが、ＬＳＩの実際の動作形態と一致しないような場合には適用することは困難であると言える。例えば以下のような場合には第１比較例に係る手法を適用することは困難である。
・ＲＡＭ／ＲＯＭのメモリなどに代表されるようなマクロ(以下、「ハードマクロ」とも呼ぶ。)と同期式デジタル回路との境界を含む場合には、スキャンチェインにより値を自由に設定できない回路を含むため、第１比較例に係る手法を適用することは困難である。
・同期式デジタル回路であっても、複数サイクルの遅延を許すようなパス(以下、「マルチサイクルパス」と呼ぶ。)や異なるクロック間を含むような回路には、第１比較例に係る手法を適用することは困難である。というのは、第２のクロックパルスを印加するタイミングの設定が複雑になるからである。
・例えば、ＳｏＣ（Ｓｙｓｔｅｍ ｏｎ Ｃｈｉｐ）などと呼ばれるようなＣＰＵやバス・ＲＡＭ/ＲＯＭマクロ・高速動作のＩ/Ｏなどを含むような大規模ＬＳＩでは、上記のような回路が多数存在する。そのため、それらの箇所に対して第１比較例に係るディレイテストを実施することは困難である。
・印加するパターンは厳密にはＬＳＩを実際の使用形態に沿って動作させるパターンではないため、第１比較例に係る手法では、ＬＳＩ通常動作中にのみ発生する特定のパスの遅延故障を再現することは困難である。
【００２１】
次に、第２比較例に係る手法の問題点について説明する。第２比較例に係る手法は、ＬＳＩ通常動作時の動作周期で通常動作させることにより試験を実施しているため、以下のような特徴を持つ。
・第１比較例に係る手法においてディレイテストが困難であった、ハードマクロを含む回路やマルチサイクルパスを含む回路に対しても、ＬＳＩ内部の遅延故障の有無を確かめることができる。
・ＬＳＩ使用中にのみ発生するような故障モードであっても、厳密に再現することができる。
【００２２】
一方で、第２比較例に係る手法では、ＬＳＩ内部で遅延故障が発生した場合に、当該故障の発生による試験対象回路内のフリップフロップ値は、ＬＳＩ出力端子を通して期待値に変化が現れるように伝播させる必要がある。しかしながら、ＣＰＵやバス・ＲＡＭ／ＲＯＭマクロ・高速動作のＩ/Ｏを含むような大規模なＬＳＩでは、回路規模に対して試験時に使用できる端子数がかなり少ない。そのため、第２比較例に係る手法では、ＬＳＩ内部で遅延故障が発生していたとしても、それを出力端子の変化としてＬＳＩ外部に伝播させることは困難である。
【００２３】
［シミュレーション装置］
次に、本実施形態に係るシミュレーション装置について説明する。
【００２４】
図３は、本実施形態に係るシミュレーション装置を構成するコンピュータ９１０のハードウェア構成例を示すブロック図である。例えば、このコンピュータ９１０は、ＣＡＤ（computer-aided design）により、ＲＴＬ設計データ及びネットリスト設計データを生成し、シミュレーションを行うことができる。
【００２５】
バス９１４には、ＣＰＵ９１１と、ＲＡＭ９１２と、ＲＯＭ９１３と、可換媒体記憶装置９１５と、外部インターフェース９１６とが接続されている。
【００２６】
ＣＰＵ９１１は、データの処理及び演算を行うと共に、バス９１４を介して接続された上記の構成ユニットを制御するものである。ＲＯＭ９１３には、予めブートプログラムが記憶されており、このブートプログラムをＣＰＵ９１１が実行することにより、コンピュータ９１０が起動する。図示しないハードディスクなどにコンピュータプログラムが記憶されており、そのコンピュータプログラムがＲＡＭ９１２にコピーされ、ＣＰＵ９１１により実行される。このコンピュータ９１０は、コンピュータプログラムを実行することにより、後述するディレイテストのためのシミュレーションなどを行うことができる。
【００２７】
可換媒体記憶装置９１５は、ＣＤ−ＲＯＭやフロッピー（登録商標）ディスクなどの媒体９２４を動作させる装置である。外部インターフェース９１６は、コンピュータ９１０内部と外部とを接続するインターフェースであり、ネットワークに対してコンピュータプログラム及びＲＴＬ設計データ等を入出力することができる。ディスプレイ９２０は、コンピュータ９１０からの出力表示を行い、キーボード９２１及びマウス９２２はコンピュータ９１０への情報入力に使用される。モデム９２３は、ＬＡＮや電話線などを通じてネットワークと接続する。
【００２８】
本実施形態は、コンピュータ９１０がプログラムを実行することによって実現することができる。また、プログラムをコンピュータ９１０に供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００２９】
図４は、本実施形態に係るシミュレーション装置１０１の概略構成を示すブロック図である。
【００３０】
シミュレーション装置１０１は、ＬＳＩの論理シミュレーションモデル１０３（以下では、当該モデルを単に「ＬＳＩ」とも表記する。）内に制御機構１０９を有する点で、上記した第１比較例に係るシミュレーション装置１０１ａと異なる。なお、前述したシミュレーション装置１０１ａと同一の符号を付した構成要素や信号などについては同様の意味を有するものとして、その詳細な説明を省略する。また、特に説明しない構成要素や信号などについては、シミュレーション装置１０１ａと同様であるものとする。図４では、スキャン動作（言い換えると「スキャンシフト動作」。以下同様とする。）を行っている際の信号の流れを太線で表している。
【００３１】
制御機構１０９は、入力パターン制御機構１１０と、スキャン制御機構１１１と、クロック選択機構１１２と、スキャン入力選択機構１１３とを有する。
【００３２】
入力パターン制御機構１１０は、ＬＳＩ１０３内部へのクロック信号を制御する機構である。具体的には、入力パターン制御機構１１０は、内部発振クロックＰＣＫが供給され、内部発振クロックＰＣＫに応じた通常動作クロックＦＣＫをクロック選択機構１１２に供給する。この場合、入力パターン制御機構１１０は、既存の入力パターンＶＩを試験対象回路１０４に印加している際のサイクル数をカウントし、当該サイクル数に基づいて通常動作クロックＦＣＫを生成する。詳しくは、入力パターン制御機構１１０は、カウントしているサイクル数が、試験対象サイクル記憶部１０８に記録されている試験対象サイクルＡＣＩに一致するまでは、内部発振クロックＰＣＫをそのまま通常動作クロックＦＣＫとして出力する。なお、試験対象サイクルＡＣＩは、ディレイテストの検証対象となるパス動作したサイクルである、言い換えると検証対象パスが活性化するようなサイクルである。例えば、試験対象サイクルＡＣＩは、ＬＳＩ通常動作時の動作周期などに相当する。試験対象サイクル記憶部１０８は、複数の試験対象サイクルＡＣＩをリストとして記憶している。
【００３３】
入力パターン制御機構１１０は、カウントしているサイクル数が試験対象サイクルＡＣＩに一致した際に、内部発振クロックＰＣＫをクロックゲーティングした通常動作クロックＦＣＫを出力する。このように内部発振クロックＰＣＫをクロックゲーティングすることで、試験対象回路１０４へのクロック供給が停止される。加えて、入力パターンＶＩは通常動作クロックＦＣＫに同期してパターン発生装置から読み出されるため、内部発振クロックＰＣＫをクロックゲーティングすることで、試験対象回路１０４への入力パターンＶＩの印加が停止され、それに伴う試験対象回路１０４内の動作が停止される。
【００３４】
また、入力パターン制御機構１１０は、上記のように既存の入力パターンＶＩのサイクル数が試験対象サイクルＡＣＩに一致した際に、サイクル数のカウントを停止すると共に、スキャン制御機構１１１にスキャン動作要求信号ＲＥＱ２を供給する。スキャン動作要求信号ＲＥＱ２は、スキャン制御機構１１１によってスキャン動作を実行させるため、及びスキャン制御機構１１１のサイクルカウンタを再び動作させるための要求信号である。
【００３５】
スキャン制御機構１１１は、試験対象回路１０４においてスキャンチェインをシフトさせる動作（即ちスキャン動作）を制御することで、試験対象回路１０４内の各フリップフロップＦＦ１〜ＦＦ６の値を、スキャン出力信号ＳＯとしてＬＳＩ１０３外部に出力させる。具体的には、スキャン制御機構１１１は、入力パターン制御機構１１０からスキャン動作要求信号ＲＥＱ２が供給された際に、スキャンクロックＳＣＫ及びスキャン選択信号ＳＥを生成する。スキャンクロックＳＣＫは、スキャン動作時に使用されるクロックであり、容易にＬＳＩ１０３外部からアクセス可能な程度に低速なクロックが用いられる。スキャン選択信号ＳＥは、セレクタ回路Ｓ１〜Ｓ６に供給される選択信号である。スキャン制御機構１１１は、スキャン動作要求信号ＲＥＱ２が供給された際にスキャン選択信号ＳＥを「１」に設定し、スキャン動作要求信号ＲＥＱ２が供給されない際にはスキャン選択信号ＳＥを「０」に設定する。この場合、スキャン選択信号ＳＥが「１」のときにはスキャンチェインが選択され、スキャン選択信号ＳＥが「０」のときには通常動作回路が選択される。
【００３６】
また、スキャン制御機構１１１は、クロック選択信号ＳＥＬをクロック選択機構１１２に供給する。クロック選択信号ＳＥＬは、通常動作クロックＦＣＫ及びスキャンクロックＳＣＫのいずれかを選択するための信号である。スキャン制御機構１１１は、スキャン動作要求信号ＲＥＱ２が供給された際（つまりスキャン動作時）にクロック選択信号ＳＥＬを「１」に設定し、スキャン動作要求信号ＲＥＱ２が供給されない際（つまり既存入力パターンＶＩ印加時）はクロック選択信号ＳＥＬを「０」に設定する。クロック選択機構１１２は、クロック選択信号ＳＥＬが「１」のときはスキャンクロックＳＣＫを選択し、クロック選択信号ＳＥＬが「０」のときは通常動作クロックＦＣＫを選択する。そして、クロック選択機構１１２は、選択した信号を内部クロックＣＫとして試験対象回路１０４に供給する。なお、クロック選択信号ＳＥＬの変化時に細かいパルスが発生しないように制御することが好ましい。
【００３７】
また、スキャン制御機構１１１は、試験対象回路１０４内のスキャンチェインの長さに応じて、試験対象回路１０４においてスキャンチェインをシフトさせる動作を制御する。具体的には、スキャン制御機構１１１は、スキャンチェインの長さに応じたサイクルだけ、スキャンクロックＳＣＫを試験対象回路１０４に印加する制御を行う。詳しくは、スキャン制御機構１１１は、フリップフロップＦＦの数及びスキャンチェインの本数に基づいて決定されるサイクルだけ、スキャンクロックＳＣＫを印加する。図４に示す例では、フリップフロップが６つ存在し、スキャンチェインが１本であるため、スキャン制御機構１１１は、スキャンクロックＳＣＫを６サイクルだけ印加する。
【００３８】
そして、スキャン制御機構１１１は、このようなサイクルだけスキャンクロックＳＣＫを印加した時点で、スキャン選択信号ＳＥを「０」に設定すると共に、入力パターン制御機構１１０に対してサイクルカウンタ動作要求信号ＲＥＱ１を供給する。サイクルカウンタ動作要求信号ＲＥＱ１は、入力パターン制御機構１１０のサイクルカウンタを再び動作させるための要求信号である。こうしてサイクルカウンタ動作要求信号ＲＥＱ１が入力パターン制御機構１１０に供給された際に、入力パターン制御機構１１０は、試験対象回路１０４への既存の入力パターンＶＩの印加を再開させ、それに伴う試験対象回路１０４内の動作を再開させる。
【００３９】
スキャン入力選択機構１１３には、上記したスキャン選択信号ＳＥ及び通常のスキャン入力信号ＳＩが供給されると共に、スキャンチェイン循環機構１２１を介してスキャン出力信号ＳＯが供給される。スキャン入力選択機構１１３は、スキャン選択信号ＳＥに応じて、スキャン入力信号ＳＩ及びスキャン出力信号ＳＯのいずれかを選択し、選択した信号をスキャン入力信号ｉＳＩとして試験対象回路１０４に供給する。具体的には、スキャン入力選択機構１１３は、スキャン選択信号ＳＥが「１」のときはスキャン出力信号ＳＯを選択し、スキャン選択信号ＳＥが「０」のときはスキャン入力信号ＳＩを選択する。つまり、スキャン入力選択機構１１３は、スキャン動作時に、スキャン出力信号ＳＯをスキャン入力信号ｉＳＩとしてフリップフロップＦＦ１〜ＦＦ６に戻す動作を行う。このようなスキャン入力選択機構１１３及びスキャンチェイン循環機構１２１によれば、スキャンチェインのシフト後に、試験対象回路１０４内のフリップフロップＦＦ１〜ＦＦ６の値を通常動作の停止前の状態に戻すことができる。なお、シミュレーション装置１０１においては、スキャン入力信号ＳＩとして例えば固定値を用いることができる。
【００４０】
上記のようなシミュレーション装置１０１を使用して論理シミュレーションを実行すると、入力パターン制御機構１１０及びスキャン制御機構１１１などの動作により、単純に既存の入力パターンＶＩを印加した場合と比べて異なる動作が行われることとなる。具体的には、シミュレーション装置１０１による論理シミュレーション時のＬＳＩ１０３の入力信号ＮＩ及び出力信号ＳＯの値を記録することで、修正された新しい入力パターンＶＩ’及び新しい出力パターン（出力期待値）ＶＯ’が得られる。つまり、ディレイテストパターンとして、新しい入力パターンＶＩ’及び新しい出力パターンＶＯ’が取得される。新しい入力パターンＶＩ’は、ＬＳＩ１０３への入力値（入力信号ＮＩ）を一定サイクルごとにサンプリングすることで得られるパターンであり、入力パターン制御機構１１０の動作によってホールド等された入力パターンＶＩに相当する。
【００４１】
なお、図４では、入力パターン制御機構１１０及びスキャン制御機構１１１の両方がＬＳＩ１０３内部に実装されている構成を示しているが、その一部がテストベンチ１０２上に実装されていても良い。また、試験対象回路１０４は、上記したフリップフロップＦＦ１〜ＦＦ６やセレクタ回路Ｓ１〜Ｓ６や組合せ回路１１５以外にも、実際にはＲＡＭやＲＯＭなどのメモリマクロ等回路を構成する様々なマクロを有する。また、図４では、組合せ回路１１５を１つのみ示し、フリップフロップＦＦを６つのみしか示していないが、実際には組合せ回路及びフリップフロップは多数存在する。また、図４では、通常入力信号ＮＩ、通常出力信号ＮＯ、スキャン入力信号ＳＩ、及びスキャン出力信号ＳＯを１本のみしか示していないが、実際には複数本存在する。また、図４では内部クロックＣＫを１系統しか示していないが、実際には複数系統存在する。また、図４に示すようにフリップフロップとセレクタ回路とを分離して構成することに限定はされず、フリップフロップとセレクタ回路とを一体に構成しても良い。
【００４２】
［入力パターン制御機構及びスキャン制御機構の構成例］
次に、図５を参照して、上記したシミュレーション装置１０１内の入力パターン制御機構１１０及びスキャン制御機構１１１の構成例について説明する。
【００４３】
入力パターン制御機構１１０は、サイクルカウンタ２０１、比較器２０２、及びクロックゲーティング（ＣＧ）２０３を有する。サイクルカウンタ２０１は、試験対象回路１０４内のサイクル数、つまり既存の入力パターンＶＩ印加中のサイクル数をカウントする。具体的には、サイクルカウンタ２０１は、リセット後において、内部発振クロックＰＣＫを検出する毎に、サイクルカウンタ値を１ずつインクリメントする動作を行う。
【００４４】
比較器２０２は、予め指定されている試験対象サイクルＡＣＩの値と、サイクルカウンタ２０１のサイクルカウンタ値とを比較する。比較器２０２は、試験対象サイクルＡＣＩの値とサイクルカウンタ値とが一致した際に、スキャン制御機構１１１に対してスキャン動作要求を出す、具体的にはスキャン制御機構１１１にスキャン動作要求信号ＲＥＱ２を供給する。加えて、この際に、比較器２０２は、クロックゲーティング２０３にクロック停止要求を出すと共に、サイクルカウンタ２０１にカウンタ停止要求を出す。クロックゲーティング２０３は、比較器２０２からクロック停止要求が出された場合に、内部発振クロックＰＣＫをクロックゲーティングして通常動作クロックＦＣＫを生成する。クロックゲーティング２０３は、生成した通常動作クロックＦＣＫをクロック選択機構１１２に供給する。上記のような入力パターン制御機構１１０の動作により、試験対象回路１０４への入力パターンＶＩの印加が停止され、それに伴う試験対象回路１０４の動作が停止される。
【００４５】
スキャン制御機構１１１は、スキャン動作生成機構２０５及びチェイン長情報記憶部２０６を有する。チェイン長情報記憶部２０６は、試験対象回路１０４内の１本のスキャンチェインに繋がるフリップフロップの数に関する情報（以下、「スキャンチェイン長情報ＳＬＩ」と呼ぶ。）を記憶する。スキャン動作生成機構２０５は、スキャン動作要求信号ＲＥＱ２が供給された際に、スキャンチェイン長情報ＳＬＩに基づいてスキャンクロックＳＣＫを生成すると共に、スキャン選択信号ＳＥを「１」に設定し、且つクロック選択信号ＳＥＬを「１」に設定する。この場合、スキャン動作生成機構２０５は、スキャンチェイン長情報ＳＬＩに対応するサイクル数だけ、スキャンクロックＳＣＫを生成する。スキャン動作生成機構２０５は、スキャンクロックＳＣＫ及びクロック選択信号ＳＥＬをクロック選択機構１１２に供給すると共に、スキャン選択信号ＳＥをセレクタ回路Ｓ１〜Ｓ６及びスキャン入力選択機構１１３に供給する。このようなスキャン動作生成機構２０５の動作により、試験対象回路１０４内のスキャンチェイン長に応じたサイクルだけ、スキャンクロックＳＣＫが試験対象回路１０４に印加されることとなる。
【００４６】
そして、スキャン制御機構１１１は、スキャンクロックＳＣＫをスキャンチェイン長に応じたサイクルだけ印加した時点で、スキャン選択信号ＳＥを「０」に設定し、入力パターン制御機構１１０内のサイクルカウンタ２０１に対してカウンタ再起動要求を出す。具体的には、スキャン制御機構１１１は、サイクルカウンタ２０１にサイクルカウンタ動作要求信号ＲＥＱ１を供給する。これにより、入力パターン制御機構１１０内のサイクルカウンタ２０１は、サイクル数のカウントを再開する。また、入力パターン制御機構１１０は、サイクルカウンタ動作要求信号ＲＥＱ１が供給された際に、試験対象回路１０４への既存の入力パターンＶＩの印加を再開させ、それに伴う試験対象回路１０４内の動作を再開させる。
【００４７】
［ディレイテストのフロー］
次に、図６を参照して、上記したシミュレーション装置１０１によるディレイテストのフローについて説明する。
【００４８】
第１のステップＳＴＥＰ１（３０２）の前段ステップＳＴＥＰ０（３０１）は、論理シミュレーション実施過程である。具体的には、ステップＳＴＥＰ０では、シミュレーション装置１０１は、ＬＳＩを実際の使用形態に沿って動作させる既存の入力パターンＶＩを使用した論理シミュレーションを実施し、検証対象となるパス動作したサイクル(試験対象サイクルＡＣＩ)を調査し記録する。この場合、シミュレーション装置１０１は、少なくとも１以上の試験対象サイクルＡＣＩをリストとして記録する。１つの例では、論理シミュレーション実行時に、取得された波形を目視することで（言い換えると波形観測によるマニュアル観測）、サイクルカウンタ２０１のサイクルカウンタ値を試験対象サイクルＡＣＩとして記録する方法がある。他の例では、論理シミュレーション実行時に、試験対象回路１０４内の信号動作を検出し（言い換えるとテストベンチ１０２による信号動作観測）、そのときのサイクルカウンタ２０１のサイクルカウンタ値を試験対象サイクルＡＣＩとして記録する方法がある。なお、上記では試験対象サイクルに基づいて検証対象パスの活性化を検出しているが、サイクルを用いる代わりに、シミュレーション時間に基づいて検証対象パスの活性化を検出しても良い。
【００４９】
続いて、第１のステップＳＴＥＰ１（３０２）は、期待値生成過程である。言い換えると、ディレイテストパターンとして入力パターンＶＩ’及び出力パターン（出力期待値）ＶＯ’を取得するための過程である。具体的には、第１のステップＳＴＥＰ１では、シミュレーション装置１０１は、既存の入力パターンＶＩおよび前段ステップＳＴＥＰ０で得られた試験対象サイクルＡＣＩを利用して、論理シミュレーションを実施する。そして、シミュレーション装置１０１は、このような論理シミュレーションの実施時に、ＬＳＩ１０３の入力信号ＮＩの値をサンプリングすることで新しい入力パターンＶＩ’を取得すると共に、出力信号ＳＯの値をサンプリングすることで新しい出力期待値ＶＯ’を取得する。なお、第１のステップＳＴＥＰ１の詳細については後述する。
【００５０】
続いて、第２のステップＳＴＥＰ２（３１２）は、試験実施過程である。具体的には、第２のステップＳＴＥＰ２では、シミュレーション装置１０１は、第１のステップＳＴＥＰ１で取得された新しい入力パターンＶＩ’を実際のＬＳＩ３１３に印加することで出力値を得て、当該出力値を期待値ＶＯ’と比較することでＬＳＩ３１３の試験を実施する。なお、第２のステップＳＴＥＰ２については、ここで示した手法以外にも、一般的な公知の試験手法を適用することができる。
【００５１】
次に、図７を参照して、第１のステップＳＴＥＰ１の詳細を示したフローについて説明する。
【００５２】
ステップＳＴＥＰ１−１（３０３）は、既存の入力パターンＶＩを試験対象回路１０４に入力する既存入力パターン実行過程である。具体的には、シミュレーション装置１０１は、まず、上記のステップＳＴＥＰ０で記録した試験対象サイクルＡＣＩを格納し（ステップ３０４）、試験対象回路１０４への既存の入力パターンＶＩの入力を実行する（ステップ３０５）。そして、既存の入力パターンＶＩが終了している場合（ステップ３０６；Ｙｅｓ）、シミュレーション装置１０１は、論理シミュレーションを終了する。つまり、第１のステップＳＴＥＰ１を終了する。
【００５３】
これに対して、既存の入力パターンＶＩが終了していない場合（ステップ３０６；Ｎｏ）、シミュレーション装置１０１内の入力パターン制御機構１１０は、サイクルカウンタ２０１のサイクルカウンタ値（以下「ｉ」と表記する。）と試験対象サイクルＡＣＩの値（以下「ｍ」と表記する。）とが一致するか否かを判定する（ステップ３０７）。サイクルカウンタ値ｉと試験対象サイクルの値ｍとが一致している場合（ステップ３０７；Ｙｅｓ）、ステップＳＴＥＰ１−２（３０８）に進む。この場合、入力パターン制御機構１１０は、スキャン制御機構１１１にスキャン動作要求信号ＲＥＱ２を供給する。これに対して、サイクルカウンタ値ｉと試験対象サイクルの値ｍとが一致していない場合（ステップ３０７；Ｎｏ）、ステップ３０５に戻り、次のサイクル(ｉ＝ｉ＋１)の動作に進む。
【００５４】
続いて、ステップＳＴＥＰ１−２（３０８）では、入力パターン制御機構１１０は、既存入力パターンＶＩの入力を一時停止させ、入力パターンＶＩを保持する。つまり、入力パターン制御機構１１０は、試験対象回路１０４の通常動作を停止させる。
【００５５】
続いて、ステップＳＴＥＰ１−３（３０９）では、シミュレーション装置１０１内のスキャン制御機構１１１は、スキャン選択信号ＳＥを「１」に設定すると共に、試験対象回路１０４にスキャンクロックＳＣＫを印加することで、スキャン動作を実行する。この場合、スキャン制御機構１１１は、印加したスキャンクロックＳＣＫについてのサイクル数（以下「ｊ」と表記する。）が、スキャンチェイン長情報ＳＬＩに対応するサイクル数（以下「ｎ」と表記する。）に達したか否かを判定する（ステップ３１０）。サイクル数ｊがサイクル数ｎに達していない場合（ステップ３１０；Ｎｏ）、ステップ３１０に戻り、次のサイクル(ｊ＝ｊ＋１)に進む。このような判定を行うことで、試験対象回路１０４内のスキャンチェインの長さに応じたサイクルだけスキャンクロックＳＣＫを印加して、フリップフロップＦＦ１〜ＦＦ６の値をスキャン出力信号ＳＯとしてＬＳＩ１０３外部に出力させることができる。
【００５６】
また、ステップＳＴＥＰ１−３では、シミュレーション装置１０１は、スキャン入力選択機構１１３及びスキャンチェイン循環機構１２１によって、スキャン出力信号ＳＯをスキャン入力信号ｉＳＩとしてフリップフロップＦＦ１〜ＦＦ６に戻す。これにより、スキャンチェインのシフト後に、フリップフロップＦＦ１〜ＦＦ６の値を通常動作の停止前の状態に戻すことができる。よって、次の試験対象サイクルＡＣＩについての第１のステップＳＴＥＰ１の処理を直ちに行うことが可能となる。したがって、試験対象サイクル記憶部１０８に記憶された全ての試験対象サイクルＡＣＩに関する第１のステップＳＴＥＰ１の処理を、効率良く行うことが可能となる。
【００５７】
サイクル数ｊがサイクル数ｎに達した場合（ステップ３１０；Ｙｅｓ）、ステップＳＴＥＰ１−４（３１１）に進む。この場合、スキャン制御機構１１は、スキャン選択信号ＳＥを「０」に設定し、入力パターン制御機構１１０にサイクルカウンタ動作要求信号ＲＥＱ１を供給する。そして、ステップＳＴＥＰ１−４では、入力パターン制御機構１１０は、既存の入力パターンＶＩの供給を再開する。
【００５８】
その後、ステップＳＴＥＰ１−１に戻り、シミュレーション装置１０１は、上記した処理を再度行う。具体的には、シミュレーション装置１０１は、既存の入力パターンＶＩが終了するまで（ステップ３０６の判定参照）、ステップＳＴＥＰ１−１〜ＳＴＥＰ１−４の処理を繰り返し行う。例えば、シミュレーション装置１０１は、試験対象サイクル記憶部１０８に記憶された試験対象サイクルＡＣＩのリスト数だけ、処理を繰り返し行う。なお、シミュレーション装置１０１は、上記したステップＳＴＥＰ１の実行時において、ＬＳＩ１０３の入力信号ＮＩ及び出力信号ＳＯの値を記録することで、修正された新しい入力パターンＶＩ’及び新しい出力期待値ＶＯ’を得る。つまり、シミュレーション装置１０１は、新しい入力パターンＶＩ’及び新しい出力期待値ＶＯ’をディレイテストパターンとして取得する。
【００５９】
このようなフローを実行して、新しい入力パターンＶＩ’を使用して実際のＬＳＩ３１３の試験を行うと、既存の入力パターンＶＩを使用した場合と同様に、ＬＳＩ３１３を実際の使用形態に沿って動作させる論理シミュレーションとなる。この場合、試験対象サイクルＡＣＩの値（サイクル）ｍとサイクルカウンタ２０１のサイクルカウンタ値ｉとが一致したサイクルにおける各フリップフロップＦＦ１〜ＦＦ６の値が、スキャン出力信号ＳＯとして出力されることとなる。
【００６０】
ここで、出力されたスキャン出力信号ＳＯの値は、サイクル「ｍ」における各フリップフロップＦＦ１〜ＦＦ６の値に相当する。上記第２のステップＳＴＥＰ２において、実際のＬＳＩ３１３の出力値が期待値ＶＯ’に一致しない場合には、サイクル「ｍ」において正しい値が各フリップフロップＦＦ１〜ＦＦ６に格納できなかったことを意味する。つまり、サイクル「ｍ−１」からサイクル「ｍ」の間の通常動作において何らかの遅延に起因する故障が発生していることがわかる。よって、本実施形態によれば、サイクル「ｍ−１」からサイクル「ｍ」までの間の遅延故障を適切に検出することができると言える。つまり、本実施形態によれば、サイクル「ｍ−１」からサイクル「ｍ」までの間に発生する遅延故障を適切に検出できるディレイテストパターンを生成することが可能となる。
【００６１】
［本実施形態による効果］
上記したように、本実施形態に係るシミュレーション装置１０１は、ＬＳＩ通常動作時の動作周期で通常動作させる既存の動作パターンを基本にして、新しい入力パターンＶＩ’及び新しい出力期待値ＶＯ’を生成して、ディレイテストを実施する。そのため、本実施形態によれば、前述した第２比較例と同様に以下のような特徴を持つ。
・第１比較例に係る手法においてディレイテストが困難であった、ハードマクロを含む回路やマルチサイクルパスを含む回路に対しても、ＬＳＩ内部の遅延故障の有無を確かめることができる。
【００６２】
一方で、本実施形態では、第２比較例と異なり、特定サイクル「ｍ」におけるフリップフロップＦＦ１〜ＦＦ６の値をスキャン出力信号ＳＯとして出力させることができる。そのため、本実施形態によれば、第２比較例と比較して、ＬＳＩ内部で遅延故障が発生していたとしても、それを出力端子の変化として適切にＬＳＩ外部に伝播させることができる。したがって、本実施形態によれば、第２比較例と比較して、ＬＳＩを実際の使用形態に沿って動作させるような入力パターンでありながら、ＬＳＩ内部の遅延故障をＬＳＩ外部において効率良く検出することが可能となる。
【００６３】
［回路構成の一例］
次に、図８を参照して、上記した入力パターン制御機構１１０及びスキャン制御機構１１１の回路例について説明する。
【００６４】
図８は、図５に示した入力パターン制御機構１１０及びスキャン制御機構１１１の構成について、更に具体的な回路形式にて示した図である。図８に示すような入力パターン制御機構１１０及びスキャン制御機構１１１は、本発明における「半導体集積回路」の一例を構成する。なお、図５と同一の符号を付した構成要素及び信号については、同様の意味を有するものとして、ここでは詳細な説明を省略する。
【００６５】
入力パターン制御機構１１０は、主に、サイクルカウンタ２０１と、比較器２０２と、クロックゲーティング２０３と、同期化回路４１１と、カウンタ再開要求回路４１２と、クロック停止要求回路４１３と、を有する。なお、この場合、入力パターン制御機構１１０は入力パターン制御回路に相当する。
【００６６】
サイクルカウンタ２０１は、論理シミュレーション開始後から、既存の入力パターンＶＩ印加中のサイクル数をカウントする。比較器２０２は、試験対象サイクルＡＣＩの値とサイクルカウンタ２０１のサイクルカウンタ値とを比較し、比較結果に応じてストップ信号ＳＴＰ１を生成する。具体的には、比較器２０２は、これらの値が一致した際に、ＬＳＩ１０３内部へのクロック供給を停止させるべく、及びサイクルカウンタ２０１のカウンタを停止させるべく、ストップ信号ＳＴＰ１として「１」を出力する。
【００６７】
同期化回路４１１は、２つのフリップフロップを有しており、内部発振クロックＰＣＫ及びサイクルカウンタ動作要求信号ＲＥＱ１が供給される。同期化回路４１１は、内部発振クロックＰＣＫが高速なクロックであるのに対してスキャンクロックＳＣＫが低速なクロックであることを想定した非同期対策回路である。カウンタ再開要求回路４１２は、同期化回路４１１からの信号が供給され、カウンタ再開要求信号ＲＳＴ１を生成する。具体的には、カウンタ再開要求回路４１２は、同期化回路４１１から供給された信号のエッジ（変化）が検出された際に、サイクルカウンタ２０１のカウンタを再開させるべく、カウンタ再開要求信号ＲＳＴ１として「１」を出力する。基本的には、カウンタ再開要求回路４１２は、サイクルカウンタ動作要求信号ＲＥＱ１が「０」から「１」に切り替わった際に、カウンタ再開要求信号ＲＳＴ１として「１」を一時的に出力する。
【００６８】
クロック停止要求回路４１３は、ストップ信号ＳＴＰ１及びカウンタ再開要求信号ＲＳＴ１が供給され、クロック停止要求信号ＣＥＮを生成する。基本的には、クロック停止要求回路４１３は、ストップ信号ＳＴＰ１として「１」が供給された際にクロック停止要求信号ＣＥＮとして「０」を出力する。このようなクロック停止要求信号ＣＥＮはインバータ４１５により反転されて、反転された信号は所定の処理が施されてスキャン動作要求信号ＲＥＱ２としてスキャン制御機構１１１に供給される。
【００６９】
クロックゲーティング２０３は、内部発振クロックＰＣＫ及びクロック停止要求信号ＣＥＮが供給され、クロック停止要求信号ＣＥＮに応じて内部発振クロックＰＣＫより通常動作クロックＦＣＫを生成する。具体的には、クロックゲーティング２０３は、クロック停止要求信号ＣＥＮとして「０」が供給された際に、内部発振クロックＰＣＫをクロックゲーティングして通常動作クロックＦＣＫを生成する。こうして生成された通常動作クロックＦＣＫは、ＯＲ回路４２０に供給される。なお、クロックゲーティング２０３がクロックゲーティングした際に、サイクルカウンタ２０１はカウントアップを停止する。
【００７０】
他方で、スキャン制御機構１１１は、主に、同期化回路４０１と、カウンタ初期化要求回路４０２と、スキャン選択信号生成回路４０３と、サイクルカウンタ４０４と、比較器４０５と、クロックゲーティング４０６と、チェイン長情報記憶部２０６と、を有する。なお、この場合、スキャン制御機構１１１はスキャン制御回路に相当する。
【００７１】
同期化回路４０１は、２つのフリップフロップを有しており、外部入力クロックＥＣＫ及びスキャン動作要求信号ＲＥＱ２が供給される。同期化回路４０１は、内部発振クロックＰＣＫが高速なクロックであるのに対してスキャンクロックＳＣＫが低速なクロックであることを想定した非同期対策回路である。カウンタ初期化要求回路４０２は、同期化回路４０１からの信号が供給され、カウンタ初期化要求信号ＲＳＴ２を生成する。具体的には、カウンタ初期化要求回路４０２は、同期化回路４０１から供給された信号のエッジ（変化）が検出された際に、サイクルカウンタ４０４のカウンタを初期化するべく、カウンタ初期化要求信号ＲＳＴ２として「１」を出力する。基本的には、カウンタ初期化要求回路４０２は、スキャン動作要求信号ＲＥＱ２が「０」から「１」に切り替わった際に、カウンタ初期化要求信号ＲＳＴ２として「１」を一時的に出力する。
【００７２】
サイクルカウンタ４０４は、スキャン動作を管理するためのサイクルカウンタである。具体的には、サイクルカウンタ４０４は、カウンタ初期化要求回路４０２から要求があった際（つまりカウンタ初期化要求信号ＲＳＴ２として「１」が供給された際）に、サイクルカウンタ値を「１」に初期化し、その後サイクルカウンタ値をインクリメントする。比較器４０５は、スキャンチェイン長情報ＳＬＩに対応するサイクル数とサイクルカウンタ４０４のサイクルカウンタ値とを比較し、比較結果に応じてストップ信号ＳＴＰ２を生成する。具体的には、比較器４０５は、これらの値が一致した際に、スキャンクロックＳＣＫの供給を停止させるべく、及びサイクルカウンタ４０４のカウンタを停止させるべく、ストップ信号ＳＴＰ２として「１」を出力する。
【００７３】
スキャン選択信号生成回路４０３は、ストップ信号ＳＴＰ２及びカウンタ初期化要求信号ＲＳＴ２が供給され、スキャン選択信号ＳＥを生成する。基本的には、スキャン選択信号生成回路４０３は、カウンタ初期化要求信号ＲＳＴ２として「１」が供給された際にスキャン選択信号ＳＥとして「１」を出力する。このようなスキャン選択信号ＳＥはインバータ４０８により反転されて、反転された信号は所定の処理が施されてサイクルカウンタ動作要求信号ＲＥＱ１として入力パターン制御機構１１０に供給される。
【００７４】
クロックゲーティング４０６は、外部入力クロックＥＣＫ及びスキャン選択信号ＳＥが供給され、スキャン選択信号ＳＥに応じて外部入力クロックＥＣＫよりスキャンクロックＳＣＫを生成する。具体的には、クロックゲーティング４０６は、スキャン選択信号ＳＥが「０」である際には外部入力クロックＥＣＫをクロックゲーティングし、これに対して、スキャン選択信号ＳＥが「１」である際には当該クロックゲーティングを停止する。つまり、クロックゲーティング４０６は、スキャン選択信号ＳＥとして「１」が供給された際に、外部入力クロックＥＣＫをスキャンクロックＳＣＫとして出力する。外部入力クロックＥＣＫは比較的低速なクロックであるため、外部入力クロックＥＣＫをスキャンクロックＳＣＫとして用いることで、スキャン動作時に、ＬＳＩ１０３外部から容易にアクセス可能となる。こうして生成されたスキャンクロックＳＣＫは、ＯＲ回路４２０に供給される。なお、クロックゲーティング４０６がクロックゲーティングした際に、サイクルカウンタ４０４はカウントアップを停止する。
【００７５】
ＯＲ回路４２０は、前述したクロック選択機構１１２の一例に相当する。ＯＲ回路４２０は、通常動作クロックＦＣＫ及びスキャンクロックＳＣＫが供給され、これらに応じて内部クロックＣＫを生成する。具体的には、ＯＲ回路４２０は、通常動作クロックＦＣＫが停止している際（つまり値が「０」で固定されている際）には、スキャンクロックＳＣＫを内部クロックＣＫとして出力する。これに対して、ＯＲ回路４２０は、スキャンクロックＳＣＫが停止している際（つまり値が「０」で固定されている際）には、通常動作クロックＦＣＫを内部クロックＣＫとして出力する。このようにＯＲ回路４２０が順序動作を行って通常動作クロックＦＣＫ及びスキャンクロックＳＣＫの論理和（ＯＲ）を演算することで、クロック選択論理を適切に実現することができる。
【００７６】
なお、図８では、入力パターン制御機構１１０及びスキャン制御機構１１１の両方がＬＳＩ１０３内部にハードウェアとして実装されているが、その一部機能がハードウェア化されずテストベンチ１０２上の記述として実装されていても良い。但し、入力パターン制御機構１１０については、ＬＳＩ１０３内部にハードウェアとして実装させることが望ましい。その理由は以下の通りである。
【００７７】
近年のＬＳＩでは、通常動作時の内部発振クロックＰＣＫは、ＰＬＬ等で高速発振したものを使用している場合が多い。一方で、ＬＳＩを試験する際に使用できるクロック周波数は試験装置によって決められるが、その周波数がＰＬＬ等で高速発振した周波数に比べて低い場合が多い。従って、ＬＳＩ外部からは低速な周波数でしかＬＳＩ内部にアクセスできないのに対して、ＬＳＩ内部では高速動作をしているといった状況が発生し得る。このような状況では、入力パターン制御機構１１０内のサイクルカウンタ２０１を所望のサイクル「ｍ」で確実に止めるには、クロック停止要求信号ＣＥＮを試験対象回路１０４内の通常動作クロックＦＣＫで動作させる必要があると言える。しかしながら、ＬＳＩ試験においては、ＬＳＩ外部からは非常に高速な周波数でのアクセスは困難である。従って、入力パターン制御機構１１０をＬＳＩ１０３内部にハードウェアとして実装させることが望ましい。
【００７８】
［動作波形の一例］
次に、図９及び図１０を参照して、図８に示した入力パターン制御機構１１０及びスキャン制御機構１１１を実装したシミュレーション装置１００の動作波形の一例について説明する。
【００７９】
図９は、図７に示したフローのステップＳＴＥＰ１−１〜ＳＴＥＰ１−３を行った際の動作波形例を示す。なお、図９では、サイクルカウンタ２０１のサイクルカウンタ値を「ＣＣ１」と表記し、サイクルカウンタ４０４のサイクルカウンタ値を「ＣＣ２」と表記する（以下同様とする。）。その他の符号については上記した通りである。
【００８０】
まず、サイクル５０１では、既存の入力パターンＶＩを入力するステップＳＴＥＰ１−１の実行中に、試験対象サイクルＡＣＩの値「ｍ」とサイクルカウンタ２０１のサイクルカウンタ値「ｉ」が一致する。そのため、入力パターン制御機構１１０のクロック停止要求信号ＣＥＮが「１」から「０」に変化する。このようなクロック停止要求信号ＣＥＮの変化がクロックゲーティング２０３に伝わることで、通常動作クロックＦＣＫの供給が停止されると共に、サイクルカウンタ２０１のカウントアップが停止される。続いて、サイクル５０２では、スキャン制御機構１１１に対してスキャン動作要求信号ＲＥＱ２として「１」が供給される（ステップＳＴＥＰ１−２）。
【００８１】
続いて、サイクル５０３では、入力パターン制御機構１１０によるスキャン動作要求信号ＲＥＱ２を受けて、スキャン選択信号ＳＥが「１」になる（ステップＳＴＥＰ１−３）。そして、サイクル５０４以降では、スキャンクロックＳＣＫの動作が始まり、フリップフロップＦＦ１〜ＦＦ６の値がスキャン出力信号ＳＯとしてＬＳＩ１０３外部に出力される（ステップＳＴＥＰ１−３）。また、スキャン出力信号ＳＯがフリップフロップＦＦ１〜ＦＦ６に戻されることで、スキャンチェインのシフト後に、フリップフロップＦＦ１〜ＦＦ６の値が通常動作の停止前の状態に戻される。
【００８２】
次に、図１０は、図７に示したフローのステップＳＴＥＰ１−３、ＳＴＥＰ１−４を行った後にステップＳＴＥＰ１−１に戻った際の動作波形例を示す。
【００８３】
まず、サイクル６０１では、スキャン制御機構１１１内のサイクルカウンタ４０４のサイクルカウンタ値「ｊ」がスキャンチェイン長「ｎ」と一致する（ステップＳＴＥＰ１−３）。そのため、スキャン選択信号ＳＥが「０」になり、スキャンクロックＳＣＫの動作が停止される。
【００８４】
続いて、サイクル６０２では、入力パターン制御機構１１０に対してサイクルカウンタ動作要求信号ＲＥＱ１として「１」が供給される（ステップＳＴＥＰ１−４）。そして、サイクル６０３では、スキャン制御機構１１１によるサイクルカウンタ動作要求信号ＲＥＱ１を受けて、クロック停止要求信号ＣＥＮが「０」から「１」に変化する（ステップＳＴＥＰ１−４）。このようなクロック停止要求信号ＣＥＮの変化がクロックゲーティング２０３に伝わることで、通常動作クロックＦＣＫの供給が再開される。
【００８５】
したがって、サイクル６０４以降では、既存の入力パターンＶＩが入力されて通常動作が復帰される。また、サイクルカウンタ２０１のカウントアップが再開される。
【符号の説明】
【００８６】
１０１  シミュレーション装置
１０２  テストベンチ
１０３  ＬＳＩの論理シミュレーションモデル
１０４  試験対象回路
１０９  制御機構
１１０  入力パターン制御機構
１１１  スキャン制御機構
１１２  クロック選択機構
１１３  スキャン入力選択機構
１１５  組合せ回路
２０１  サイクルカウンタ
２０２  比較器
２０３  クロックゲーティング
２０５  スキャン動作生成機構
９１０  コンピュータ
ＦＦ１〜ＦＦ６  フリップフロップ
【図１】
0005408052.tif 000002
【図２】
0005408052.tif 000003
【図３】
0005408052.tif 000004
【図４】
0005408052.tif 000005
【図５】
0005408052.tif 000006
【図６】
0005408052.tif 000007
【図７】
0005408052.tif 000008
【図８】
0005408052.tif 000009
【図９】
0005408052.tif 000010
【図１０】
0005408052.tif 000011