(57)【要約】  コンピュータが、集積回路(ＩＣ)チップの動作を、ＩＣチップ内のスキャン回路をテストするためにシミュレートするためのコンピュータプログラムを作成するためにプログラムされる。コンピュータはＩＣチップの構造内の組合せ論理回路を通る第１のスキャンセルの出力ポートから始まり、第２のスキャンセルの入力ポートで終端するパスをトレースするようにプログラムされる。第１及び第２のスキャンセルが共通スキャンイネーブル信号を受け取っている場合には、コンピュータはコンピュータプログラムの少なくとも一部である、例えば、共通スキャンイネーブル信号が非アクティブである場合は、条件付でパスを通る信号の伝搬のシミュレーションを実施し、他方で共通スキャンイネーブル信号がアクティブである場合は、シミュレーションの実施をスキップするソフトウエアを生成する。コンピュータはコンピュータプログラムのその部分を、コンピュータプログラムの他のそのような部分とともに使用するために、メモリに格納する。【特許請求の範囲】
【請求項１】
集積回路(ＩＣ)チップに含まれるスキャンセルをテストするために、前記ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するコンピュータで実施される方法において、
前記ＩＣチップの構造内の組合せ論理回路を通るパスをトレースする工程であって、該パスが前記構造内の第１のスキャンセルの出力ポートから始まり、該パスが前記構造内の第２のスキャンセルの入力ポートを終端とする工程と、
前記パスを通る信号の伝搬をシミュレートするための第１の命令セットをつくり出す工程と、
第２の命令セットをつくり出すために前記第１の命令セットを修正する工程であって、前記第２の命令セットが、前記第１の命令セットの実行に合わせられた、予め定められた条件を必要とする工程と、
前記第１の命令セット及び前記第２の命令セットを前記コンピュータプログラムの一部としてメモリに格納する工程と、
を備えることを特徴とする方法。
【請求項２】
前記第１の命令セットを修正する工程が、前記第１のスキャンセル及び前記第２のスキャンセルのそれぞれに共通スキャンイネーブル信号が供給されていれる場合には前記第１の命令セットを修正する工程を有し、
前記第１の命令セット及び前記第２の命令セットを格納する工程が、前記第１のスキャンセル及び前記第２のスキャンセルのそれぞれが相異なるスキャンイネーブル信号を受け取っていれる場合には前記第１の命令セット及び前記第２の命令セットを格納する工程を有する、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１の命令セット及び前記第２の命令セットを格納する工程が、前記第１のスキャンセル及び前記第２のスキャンセルのそれぞれに共通スキャンイネーブル信号が供給されている場合には前記第２の命令セットを格納する工程を有することを特徴とする請求項１に記載の方法。
【請求項４】
前記予め定められた条件が、前記共通スキャンイネーブル信号が非アクティブであることを特徴とする請求項３に記載の方法。
【請求項５】
前記トレースする工程に先立ち、複数のスキャンセルが少なくとも前記第１のスキャンセル及び第２のスキャンセルを含むことを前記構造から決定する工程をさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記決定する工程が、前記複数のスキャンセルのそれぞれについて、フリップフロップ及び前記フリップフロップに先行するマルチプレクサを識別する工程を有することを特徴とする請求項５に記載の方法。
【請求項７】
前記決定する工程が、前記構造に基づき、前記フリップフロップ及び前記マルチプレクサをインスタンスとして含む少なくとも１つのモジュールを識別する工程を有することを特徴とする請求項６に記載の方法。
【請求項８】
前記決定する工程が、前記マルチプレクサを表すために前記モジュールによって用いられるユーザ定義プリミティブを識別する工程を有することを特徴とする請求項７に記載の方法。
【請求項９】
集積回路(ＩＣ)チップに含まれるスキャンセルをテストするために、前記ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するための装置において、
前記ＩＣチップを表す構造をコード化したメモリと、
前記構造内の組合せ論理回路を通るパスをトレースするための手段であって、該パスが前記構造内の第１のスキャンセルの出力ポートから始まり、該パスが前記構造内の第２のスキャンセルの入力ポートを終端とする手段と、
前記第１のスキャンセル及び前記第２のスキャンセルが共通のスキャンイネーブル信号を受け取っているか否かをチェックするための手段と、
条件付きで、前記共通スキャンイネーブル信号が非アクティブであれば前記パスを通して信号を伝搬させ、前記共通イネーブル信号がアクティブであれば前記パスを通して信号を伝搬させないための前記コンピュータプログラムの少なくとも一部を生成するための手段と、
前記コンピュータプログラムの前記部分を前記メモリに格納するための手段と、
を備えることを特徴とする装置。
【請求項１０】
前記構造から、少なくとも前記第１のスキャンセル及び前記第２のスキャンセルを含む、複数のスキャンセルを決定するための手段をさらに備えることを特徴とする請求項９に記載の装置。
【請求項１１】
前記決定するための手段が、前記複数のスキャンセルのそれぞれについて、フリップフロップ及び前記フリップフロップに先行するマルチプレクサを識別するための手段を有することを特徴とする請求項１０に記載の装置。
【請求項１２】
前記決定するための手段が、前記構造に基づき、前記フリップフロップ及び前記マルチプレクサをインスタンスとして含む少なくとも１つのモジュールを識別するための手段を有することを特徴とする請求項１０に記載の装置。
【請求項１３】
前記決定するための手段が、前記マルチプレクサを表すために前記少なくとも１つのモジュールによって用いられるユーザ定義プリミティブを識別するための手段を有することを特徴とする請求項１２に記載の装置。
【請求項１４】
集積回路(ＩＣ)チップに含まれるスキャンセルをテストするために、前記ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するための命令をコード化して記憶したコンピュータ読出可能媒体において、
前記ＩＣチップの構造内の組合せ論理回路を通るパスをトレースするための命令であって、該パスが前記構造内の第１のスキャンセルの出力ポートから始まり、該パスが前記構造内の第２のスキャンセルの入力ポートを終端とする命令と、
前記パスを通る信号の伝搬をシミュレートするための第１の命令セットをつくり出すための命令と、
第２の命令セットを得るために前記第１の命令セットを修正するための命令であって、前記第２の命令セットが、前記第１の命令セットの実行に合わせられた、予め定められた条件を必要とする命令と、
前記第１の命令セット及び前記第２の命令セットを前記コンピュータプログラムの一部としてコンピュータのメモリに格納するための命令と
を備えることを特徴とする媒体。
【請求項１５】
前記構造から、少なくとも前記第１のスキャンセル及び前記第２のスキャンセルを含む、複数のスキャンセルを決定するための命令、
をさらに備えることを特徴とする請求項１４に記載の媒体。
【請求項１６】
前記複数のスキャンセルのそれぞれのスキャンセルについて、フリップフロップ及び前記フリップフロップに先行するマルチプレクサを識別するための命令、
をさらに備えることを特徴とする請求項１４に記載の媒体。
【請求項１７】
前記構造に基づき、フリップフロップ及び前記フリップフロップに先行するマルチプレクサをインスタンスとして含む少なくとも１つのモジュールを識別するための命令、
をさらに備えることを特徴とする請求項１４に記載の媒体。
【請求項１８】
マルチプレクサを表すために前記構造内の少なくとも１つのモジュールによって用いられるユーザ定義プリミティブを識別するための命令、
を備えることを特徴とする請求項１４に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は集積回路(ＩＣ)チップのシミュレーションに関し、特に実ＩＣチップ内のスキャン回路とともに用いるために自動テストパターン生成(ＡＴＰＧ)によってつくられたテストパターンの試験のためのシミュレーションに関する。
【背景技術】
【０００２】
今日、電子デバイスは数１００万の単位回路すなわち「セル」を有する。そのようなデバイスの設計及び製作を自動化するため、電子設計自動化(ＥＤＡ)システムが開発されている。ＥＤＡシステムは、１つないしさらに多くのＩＣチップを含み得る電子デバイスを設計するために、チップ設計者が用いるための、プログラムされた１台ないしさらに多くのコンピュータを含む。ＥＤＡシステムは一般に、ＩＣチップに組み込まれるべき回路の１つないしさらに多くの(例えば、ＶＨＤＬ，Ｖｅｒｉｌｏｇ，等のようなハードウエア記述言語(ＨＤＬ)の)高水準機能記述を受け取り、この機能記述を様々な水準のアブストラクションのネットリストに変換する。ネットリストは一般にＥＤＡシステム内のコンピュータ読出可能媒体に格納され、多くの周知の手法を用いて処理及び検証される。ＥＤＡシステムはネットリストを使用して、最終的に、実ＩＣチップ製作に用いるための、マスク形態の実デバイスレイアウトをつくり出す。
【０００３】
テスト容易化設計(ＤＦＴ)プロセスは所望の機能、例えばデジタル信号処理(ＤＳＰ)を実装するＩＣチップの、例えばネットリストの形態の、構成をとることができ、１つないしさらに多くのフリップフロップ１１〜１２(図１Ａ)を、ＩＣチップ１０の外部入力３１(図１Ｂ)から１つないしさらに多くの領域１３へのテストベクトルを供給するように設計された、「スキャンセル」２１〜２２(図１Ｂ)と呼ばれる専用セルに置き換えることができる。原ＩＣチップの構造の領域１３は一般に、フリップフロップ１１及び１２を結合する、組合せ論理回路を有する。上述したばかりのスキャンセルによるフリップフロップの置換中に、領域１３は一般に不変に保たれる。そのような変更された構造は、ＩＣチップ１０が設計された目的の機能(例：ＤＳＰ)を実施するミッションモード及びＩＣチップ１０の回路素子が適正に作成されているか否かをテストするテストモードの、２つの動作モードを有する。
【０００４】
一般に、ＩＣチップ１０のそのような変更された構造におけるスキャンセル２１(図１Ｂ)は、マルチプレクサ２１Ｍによって駆動されるフリップフロップ２１Ｆを有し、マルチプレクサ２１Ｍはフリップフロップ２１Ｆのデータ入力(Ｄ入力)ピンに、テストモードで動作させていれば(この間スキャンイネーブル信号ＳＥはアクティブである)信号ＳＩを供給し、あるいはミッションモードで動作させていれば(この間スキャンイネーブル信号ＳＥは非アクティブである)信号ＭＩを供給する。フリップフロップ２１Ｆに入力される信号は、図１Ｂにおいて、マルチプレクサの出力信号ＭＯとして示される。スキャン構造内で、スキャンセル２１及び２２は接続されてスキャンチェーンを構成するようにされているとチップ設計者によって認識されることができ、スキャンチェーンの構成はスキャンセル２１及び２２の接続(例えば、セル２２の入力ピンＳＩがセル２１のフリップフロップ２１Ｆの出力ピンＱに接続される)によるスキャンパス２３(図１Ｂを見よ)の生成を含む。スキャンパス２３は領域１３を通るミッションパス１３Ｐに対して択一されるパスであり、これらのパスの１つからの信号は、スキャンイネーブル信号に基づき、マルチプレクサ２２Ｍによって選択される。チップ設計者は、マルチプレクサ２１Ｍ及び２２Ｍを動作させるため、共通スキャンイネーブル信号ＳＥを指定するかまたは相異なるスキャンイネーブル信号を指定することができる。
【０００５】
ＩＣチップ設計を進める次のステップはＩＣチップ１０に適用されるべきテストパターンの生成を含む。ＡＴＰＧソフトウエアでプログラムされたコンピュータはネットリストの形態のＩＣ構造の１つないしさらに多くの表現を解析することができ、テストパターンを自動的に生成することができる。そのような(テストベクトルとも呼ばれる)テストパターンは、(「テスタ」と呼ばれる)ハードウエア装置によって実ＩＣチップのセルをスキャンして、例えば回路のある選ばれた領域が正しく作成されているか否かを、テストするために適用される。
【０００６】
さらに詳しくは、テスタ(図示せず)は、(「ローディング動作」とも呼ばれる)シフト動作中にＩＣチップ１０の外部入力３１から１つないしさらに多くの(「入力スキャンセル」とも呼ばれる)スキャンセル２１に１つないしさらに多くのテストパターンを順次にロードし、同時にスキャンイネーブル信号をアクティブにすることによって、ＩＣチップ１０をテストする。ＩＣチップ１０の外部入力３１及び外部出力３２はチップ１０の外から、例えばいずれかのテスタが、アクセスできる外部ピンである。そのようなシフト動作後、テスタはスキャンイネーブル信号を非アクティブにし、(「テスト動作」において)領域１３に適用されるテストパターンで１クロックサイクルの間ＩＣチップ１０を動作させることができる。
【０００７】
テスト動作に続いて、出力スキャンセル２２にラッチされたテスト動作結果がＩＣチップ１０の外部出力３２に移される、１つないしさらに多くのサイクルの、(「アンローディング動作」とも呼ばれる)別のシフト動作が行われる。本発明の発明者等は、従来技術においては、ローディング動作及びアンローディング動作のいずれの間もソーススキャンセル２１とシンクスキャンセル２２の間の選択された回路領域１３が通常は動作し続ける、すなわちこれらの領域の全てのゲートが評価されることに注目する。
【０００８】
実ＩＣチップの製作に先立ち、一般にＩＣチップのゲートレベルコンピュータモデルにテストパターンが適用される。例えば、ＨＤＬで表されたＩＣ構造をコンピュータで(コンパイル後に)実行されるかまたは(コンパイルせずに)１ステップずつ実行される(例えばプログラミング言語ＣまたはＣ＋＋の)ソフトウエアソースコードに変換することによって、コンピュータ命令４０(図１Ｃ)が得られる。図１Ｃの説明において、コンピュータ命令４０には３つの関数があり、第１の関数“Evaluate_Flipflop”はスキャンセル２１のフリップフロップ２１Ｆの出力ピンＱ(図１Ｂ)における信号をシミュレートし、第２の関数“propagate”はこの信号の、組み合わせ論理回路１３を通る、ミッションパス１３Ｐを介するスキャンセル２２のＭＩ入力ピンへの伝搬をシミュレートする。最後に、第３の関数“Evaluate_Multiplexer”はマルチプレクサ２２Ｍによってフリップフロップ２２Ｄの入力ピンＤに供給される信号をシミュレートする。コンパイル後のコンピュータ命令４０の実行は１ステップずつの実行より高速であり、したがって、そのようなソフトウエアソースコードは普通コンパイルされてコンパイル済みコードにされる。
【０００９】
前段落で説明された関数“propagate”は、構成に依存して、スキャンパス２３上の信号の進行をシミュレートすることともしないこともある。例えば、フリップフロップは一般に別の出力ピン、すなわち(Ｑピンとは別の)‘−Ｑ’ピンを有し、いくつかの実施形態において‘−Ｑ’ピンは、関数“propagate”にいかなる追加シミュレーションも行わせない、スキャンチェーン形成に用いられる。別の構成において、‘−Ｑ’ピンは用いられず、代わりにセルのインスタンス化においてパス分岐がおこる。そのような構成においては、スキャンパス２３上の信号を駆動するために‘−Ｑ’ピンをシミュレートすることができる。
【００１０】
コンパイル済みコードに基づくシミュレーションは、例えば非特許文献１に説明されている。非特許文献１はその全体が背景技術として本明細書に参照として含まれる。さらに、従来技術のいくつかのコンパイル済みコードのシミュレータが特許文献１(アッシャー(Asher)：２００１年４月２４日)にも説明されている。特許文献１もその全体が背景技術として本明細書に参照として含まれる。アッシャーは、ネットリスト変換を用いる平準化コンパイル済みコードのシミュレーションの速度向上を説明している。詳しくは、平準化コンパイル済みコードのシミュレーションを用いる同期デジタル回路の非遅延依存サイクルベース論理回路のシミュレーションは速度をかなり速くする。スイープ、エリミネート及びファクターがリテラル数を減じる。特にエリミネート関数は、その存在によりリテラル数が増大するゲートのネットリストを一掃する。すなわちそのようなゲートをその直ファンアウトに落とし込むことよってリテラル数を減じる。ゲートをそのファンアウトに落とし込む前に、関数は新しいオンセットサイズを評価する。評価されたサイズが予め設定されている限界より大きければ、落とし込みは実施されない。リテラル数減少のほとんどはエリミネート関数による。
【００１１】
発明者等はコンパイル済みコードのシミュレータが甚だしく低速になり得ると考えている。特に、高い故障検出率を達成するに必要なテストパターンの数が回路サイズを増大させる。さらに、ディープサブミクロン技術では、より多くの故障機構及びより多くの欠陥タイプの可能性があるため、既存の欠陥モデルが無効になり得る。さらに、欠陥モデルが多いほど、同じ故障検出率及び品質レベルに対してより多くのテストパターンが必要になり、これはテストパターンのテストをシミュレートするに必要な時間を長くする。したがって、発明者等はコンパイル済みコードのシミュレーションの速度をさらに速くする必要があると考えている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許第６２２３１４１号明細書
【非特許文献】
【００１３】
【非特許文献１】マイケル・イー・リープ(Michael. E. Riepe)等著  「レイベル-ＸＬ：割当遅延コンパイル済みコード論理ゲートシミュレーションのためのハードウエアアクセラレータ(Ravel-XL: A Hardware Accelerator for Assigned-Delay Compiled-Code Logic Gate Simulation)」，ミシガン大学(University of Michigan)，１９９４年３月
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の課題はＩＣ構造におけるコンパイル済みコードのシミュレーションの速度をさらに高めるための手段を提供することである。
【課題を解決するための手段】
【００１５】
本明細書に開示される本発明の実施形態は、集積回路(ＩＣ)チップ内のスキャン回路をテストするための、ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するための、コンピュータ実施方法、装置、及びコンピュータ読出可能媒体を提供する。
【００１６】
本発明の例示実施形態は、スキャン回路をテストするための、ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するためのコンピュータ実施方法を提供する。本方法は、ＩＣチップの構造の組合せ論理回路を通るパスをトレースし、パスを通る信号の伝搬をシミュレートするための第１の命令セットを生成し、第１の命令セットの実行に合わせられている予め定められた条件を必要とする、第２の命令セットを生成するために第１の命令セットを修正して、第１の命令セット及び第２の命令セットをメモリに格納する。
【００１７】
本発明の例示実施形態は、スキャン回路をテストするための、ＩＣチップの動作をシミュレートするためのコンピュータプログラムを作成するための装置を提供する。本装置は、構造の組合せ論理回路を通るパスをトレースするための手段、第１のスキャンセル及び第２のスキャンセルが共通のスキャンイネーブル信号を受け取るか否かをチェックするための手段、条件付の、共通スキャンイネーブル信号が非アクティブであればパスを通して信号を伝搬させ、共通スキャンイネーブル信号がアクティブであればパスを通して信号を伝搬させない、コンピュータプログラムの少なくとも一部を生成するための手段、及びコンピュータプログラムのその部分をメモリに格納するための手段を備える。
【００１８】
本発明の例示実施形態は、スキャン回路をテストするための、集積回路(ＩＣ)チップの動作をシミュレートするためのコンピュータプログラムを作成するためのコンピュータ読出可能媒体を提供する。本コンピュータ読出可能媒体は、ＩＣチップの構造の組合せ論理回路を通るパスをトレースするための命令、パスを通って伝搬している信号をシミュレートするための第１の命令セットを生成するための命令、第１の命令セットの実行に合わせられている予め定められた条件を必要とする、第２の命令セットを得るための第１の命令セットを修正するための命令、並びに第１の命令セット及び第２の命令セットの命令を、コンピュータプログラムの一部として、コンピュータのメモリに格納するための命令を収める。
【図面の簡単な説明】
【００１９】
【図１Ａ】図１Ａは、スキャン回路挿入前の、従来技術のＩＣチップの構造を示す。
【図１Ｂ】図１Ｂは、スキャン回路挿入後の、従来技術のＩＣチップの構造を示す。
【図１Ｃ】図１Ｃは、スキャン回路をテストするための、図１Ｂの構造のシミュレーションのための従来技術のコンピュータプログラムを示す。
【図２Ａ】図２Ａは、シミュレーション速度を向上させるための、本発明の一実施形態にしたがって用いられる方法をフローチャートで示す。
【図２Ｂ】図２Ｂは、図２Ａの方法の実施により、本発明の一実施形態にしたがって生成されたコンピュータプログラムの、条件文を含む、一部を示す。
【図３】図３は、図２Ａの方法を実施するために、本発明の例示実施形態において実施される作業をフローチャートで示す。
【図４Ａ】図４Ａは本発明の一実施形態の実施において行われる作業をフローチャートで示す。
【図４Ｂ】図４Ｂは本発明の一実施形態の実施において行われる作業をフローチャートで示す。
【図４Ｃ】図４Ｃは本発明の一実施形態の実施において行われる作業をフローチャートで示す。
【図５】図５は本発明の一実施形態にしたがってプログラムされたコンピュータをブロック図で示す。
【図６】図６は、本発明の一実施形態にしたがう、例示的なデジタル特定用途ＩＣ(ＡＳＩＣ)構造の簡略な説明を示す。
【発明を実施するための形態】
【００２０】
コンピュータ１５０(図５)が、スキャン回路をテストするためにＩＣチップのシミュレーション速度を高めるコンピュータプログラムを生成するために方法２００(図２Ａ)を実施するために、本発明の一実施形態にしたがって、プログラムされる。特に、本特許出願の発明者等は、スキャンイネーブル信号ＳＥ(図１Ｂ)がアクティブであるときに組合せ論理回路１３の出力におけるマルチプレクサ２２Ｍがスキャンパス２３を通って進む信号を選択することに注目する。したがって、発明者等は(スキャンイネーブル信号がアクティブであるときの)マルチプレクサのそのような動作によってミッションパス２３を通る信号の伝搬のシミュレーションが不要になると考えた。この着想に基づき、発明者等は以下の段落で論じられるように、スキャンイネーブル信号がアクティブであるときはパス１３Ｐに関する不要なシミュレーションを回避することによってシミュレーション速度を向上させる方法２００を案出した。当業者には明らかであろうように、スキャンイネーブル信号は、実施形態に依存して、アクティブハイ信号(すなわち信号がハイであるかまたは値“１”をもつときにアクティブ)あるいはアクティブロー信号(すなわち信号がローであるかまたは値“０”をもつときにアクティブ)とすることができる。
【００２１】
図２Ａに示されるように、第１の作業工程２０１において、コンピュータ１５０は、初めにＩＣチップのどのコンポーネントがスキャンセルを形成するかを決定する。この作業工程において、コンピュータ１５０は、それぞれのスキャンセルについて、ピンのいずれが(１)スキャンデータ信号、(２)ミッションモードにおける動作で得られるデータ信号、(３)スキャンイネーブル信号及び(４)クロック信号をそれぞれ伝えるかも決定する。コンピュータ１５０はさらに、例えば組合せ論理回路１３を通るパス１３Ｐを識別するために、トレース作業工程２０２を実施するようにプログラムされる。図１Ｂに示されるように、ミッションパス１３Ｐはソーススキャンセル２１のフリップフロップ２１Ｆの出力ピンＱから始まり、シンクスキャンセル２２のマルチプレクサ２２Ｍの入力ピンＭＩで終端する。コンピュータ１５０は、ミッションパス１３Ｐを通る信号の伝搬をシミュレートするためのソフトウエア命令を生成するための作業工程２０３を実施するようにも、プログラムされる。
【００２２】
作業工程２０３の結果は図１Ｃに従来技術のコンピュータ命令４０で示されることに注意されたい。コンピュータ１５０は当業者には明らかないずれかの態様で作業工程２０１〜２０３を実施するようにプログラムされ得ることにも注意されたい。したがって、作業工程２０１，２０２及び２０３がコンピュータ１５０によって実施される態様の特定の詳細は本発明の実施形態の実施に肝要ではない。
【００２３】
コンピュータ１５０はさらに、(作業工程２０４において)１つないしさらに多くの条件をチェックするようにプログラムされ、条件が合えばコンピュータ１５０は作業工程２０５を実施し、条件が合わなければ作業工程２０５はスキップされる。作業工程２０４に用いられる条件９９７(図５)は予め定められ、コンピュータ１５０のメモリに格納される。作業工程２０４のいくつかの条件は、パス１３Ｐをシミュレートしなくともスキャン回路とともに用いるための自動テストパターン生成(ＡＴＰＧ)によってつくられる１つないしさらに多くのテストパターンのテスト結果が変わらないであろうことを保証するために用いられる。条件が満たされれば、パス１３Ｐは「最適化可能」と判定され、よって無シミュレーションへの候補になる。
【００２４】
例えば、本発明のいくつかの実施形態は複数のスキャンイネーブル信号の使用をサポートする。したがって、そのような実施形態では、作業工程２０４において、ソーススキャンセル２１によってパス１３Ｐに供給される信号及びシンクスキャンセル２２によってパス１３Ｐから受け取られる信号が同期態様で用いられるか(または用いられないか)、すなわちスキャンセル２１及び２２のそれぞれのマルチプレクサを同じスキャンイネーブル信号で動作させているか否かのような、予め定められた条件がチェックされる。結果が真であれば、パス１３Ｐは最適化可能であると判定される。本発明のいくつかの実施形態の作業工程２０４においてチェックされる他のそのような予め定められた条件はパス１３Ｐが何らかの順序要素を有しているか否かであり、結果が否である場合に限り、パス１３Ｐは「最適化可能」としてコンピュータ１５０によってマークされる。本発明のいくつかの実施形態は、パスがスキャンセルのデータピンに始まり、最終的にスキャンセルのデータピンで終われば、最適化可能であるとしてパスを扱うことに注意されたい。一例示実施形態において、そのようなパスがトレースされている間、組合せ要素を通るトレースは行われるが、他の回路要素を通るトレースは行われない。組合せ要素の出力状態はその入力における状態から直ちに決定され得る。この例示実施形態では、本明細書に説明されるようにパスをトレースしている間に組合せ要素以外のいずれかの回路要素に遭遇すれば、パスは最適化不能としてマークされる。
【００２５】
上述したように、作業工程２０４でパス１３Ｐが最適化可能ではないことがわかれば、コンピュータ１５０は単に、作業工程２０３で生成されたコンピュータ命令４０(図１Ｃ)がコンピュータプログラムの一部として、(例えば反復によって作業工程２０３で生成される)他のそのような部分とともに用いるために、メモリに格納される作業工程２０６に進む。命令４０(すなわちソフトウエア)にはパス１３Ｐ上の信号の伝搬が無条件でシミュレートされるとするソフトウエア文４２が含まれていることに注意されたい。作業工程２０４でパス１３Ｐが最適化可能であることがわかれば、以下で説明されるように、そのような条件下での作業工程２０５がコンピュータ１５０によって実施される。
【００２６】
作業工程２０５において、コンピュータ１５０は作業工程２０３で生成されたコンピュータ命令４０を、不要であれば最適化可能パス１３Ｐに沿う信号伝搬のシミュレーションを回避する修正コンピュータ命令を得るため、チェックされるべき１つないしさらに多くの条件をコンピュータ命令４０に付加することによって、修正する。例えば、図２Ｂに示される修正コンピュータ命令２５０のソフトウエア文２５２で示されるように、スキャンイネーブル信号がチェックされ、スキャンイネーブル信号がアクティブであれば関数“propagate”は実行されず、そうでなければパス１３Ｐは最適化可能ではない。詳しくは、ソフトウエア文２５２はパス１３Ｐが最適化可能ではないかどうかをチェックし、最適化可能でなければ関数“propagate”が実行される。他方で、パス１３Ｐが最適化可能であるか否かにかかわらず、スキャンイネーブル信号が非アクティブ(例えばミッションモードがシミュレートされる場合)であれば、関数“propagate”は再び実行される。命令２５０には信号伝搬のシミュレーションが条件付で実施されるとするソフトウエア文２５２が含まれていることに注意されたい。さらに詳しくは、ソフトウエア文２５２には、スキャンイネーブル信号の状態に関する、及びパス１３Ｐが最適化可能であるか否かに関する条件が付けられている。
【００２７】
したがって、当業者にはこの開示から明らかなように、ミッションパス１３Ｐを通る信号伝搬のシミュレーションはそのような修正コンピュータ命令２５０の１つないしさらに多くの条件をチェックすることによって排除され、したがってローディング動作及びアンローディング動作、すなわち外部入力からテストパターンを移し入れる動作及び外部出力からテストパターンを移し出する動作の速度が向上する。したがって、ＩＣ内のスキャン回路のテスト中のＩＣ構造のシミュレーションの速度は図２８に示されるような修正コンピュータ命令２５０によって向上する。よって、作業工程２０５の後、コンピュータ１５０は、コンピュータプログラム部分(すなわちソフトウエア)として修正コンピュータ命令２５０が、他のそのような部分とともに用いるために、メモリに格納される作業工程２０６を実施する。作業工程２０６の後、コンピュータ１５０は作業工程２０７に進み、(ゲートレベルネットリストの形態の(図５を見よ))ＩＣチップ構造の全てのスキャンセルから始まる全てのパスが調べられたか否かをチェックする。調べられていなければ、コンピュータ１５０は(上述した)作業工程２０２に戻る。作業工程２０７において全てのパスがトレースされていることがわかれば、コンピュータ１５０はこの方法を完了したことになり、よって、終了する(作業工程２０８を見よ)。
【００２８】
作業工程２０３で得られたコンピュータ命令は、図１Ｃに示されるように、(スキャンイネーブル信号に対し)無条件で実行されていたはずであった。本発明にしたがえば、作業工程２０５(図２Ａ)がこれらのコンピュータ命令を、ソフトウエア文２５２(図２Ｂ)に示されるように、条件付で実行できるように修正する。ソフトウエア文２５２には条件のいくつかの例が示されているが、当業者には本開示から明らかなように、別の実施形態においては別の条件をチェックすることができる。
【００２９】
本発明のいくつかの実施形態において、コンピュータ１５０は、図２Ａの方法２００における作業工程２０１に基づき、図３に示されるタイプのプロセスを実施する。詳しくは、作業工程３０１において、コンピュータ１５０は、フリップフロップに対応するような、ＩＣチップ１０の構造内の１つないしさらに多くのユーザ定義プリミティブ(ＵＤＰ)を識別する。用いられる特定のＵＤＰは、製造施設によって提供されるセルの技術ライブラリのような、多くのファクターに依存する。次に、作業工程３０２において、コンピュータ１５０は構造内の、マルチプレクサに対応するような、別のＵＤＰを識別する。作業工程３０１及び３０２は当業者には本開示から明らかであろういずれかの態様で実施され得ることに注意されたい。
【００３０】
その後、作業工程３０３において、コンピュータ１５０はＩＣチップ構造のデータモデルから、作業工程３０１において識別されたフリップフロップをインスタンスとして含む全てのモジュールのリストを受け取る。次に、作業工程３０４において、コンピュータ１５０はデータモデルから、作業工程３０３で識別された(個々に処理される場合は以降「現モジュール」と称される)モジュールのそれぞれの全てのポートのリストを受け取る。作業工程３０４において、コンピュータ１５０はデータモデル内のそれぞれのフリップフロップの入力ピンへの接続の全ても得る。次いで、作業工程３０５において、コンピュータ１５０はデータモデルから、それぞれのフリップフロップへのデータ信号を駆動するドライバの全てのリストを得る。次いで、作業工程３０６において、コンピュータ１５０は、作業工程３０５で得たリスト内のドライバに作業工程３０２においてマルチプレクサとして認識されていたドライバがあるか否かをチェックする。マルチプレクサがあれば、コンピュータ１５０は(「現」マルチプレクサと称される)そのマルチプレクサをさらに処理するために作業工程３０７に進み、マルチプレクサがなければ作業工程３１０に進む。作業工程３１０において、コンピュータ１５０はフリップフロップのデータピンＤへのパスを最適化不能としてマークし、次いで作業工程３１１に進む。
【００３１】
作業工程３０７において、コンピュータ１５０は現マルチプレクサのどのピンがスキャンデータを受け取るかを識別(すなわちＳＩピンを識別)し、どのピンがミッションデータを受け取るかを識別(すなわちＭＩピンを識別)する。次に、作業工程３０８において、コンピュータ１５０は現マルチプレクサの２つの入力ピン(すなわちＳＩピン及びＭＩピン)から現モジュールの入力ポートまで信号を逆方向にトレースする。次いで、作業工程３０９において、コンピュータ１５０は現フリップフロップのＱピンから現モジュールの出力ポートまで信号を順方向にトレースする。次に、コンピュータ１５０は、例えばトレースされておらず、最適化可能であるか最適化不能であるかのいずれかであるとしてまだマークされていないスキャンセル間のパスがあれば、上述した作業工程の内の１つないしさらに多くが反復される、作業工程３１１に進む。トレースされていないパスがなければ、コンピュータは作業工程３１２において本方法を終了する。
【００３２】
本発明にしたがう説明のためのいくつかの実施形態では、次に論じられる、図４Ａに示される作業工程が実施される。詳しくは、いくつかの実施形態は作業工程４０１〜４０４の実施にかかり、作業工程４０１では、コンピュータ１５０がＩＣ構造を表す「ネットリスト」内のそれぞれのモジュール“ｍ”を個々に選択する、“for”ループが実施される。作業工程４０２において、コンピュータ１５０はモジュール“ｍ”にスキャンセルがあるか否かをチェックする。答えが「イエス」であれば、コンピュータ１５０は作業工程４０３に進み、そのスキャンセルに関する識別情報及び、マルチプレクサ及びフリップフロップのような、内部コンポーネントのような情報を格納する。作業工程４０３の後、コンピュータ１５０は作業工程４０４に進む。作業工程４０２における答えが「ノー」である場合にも、コンピュータ１５０は作業工程４０４に進む。作業工程４０４では、ネットリスト内の全てのモジュールが調べられたか否かをチェックし、調べられていればコンピュータ１５０は作業工程４０５に進み、調べられていなければコンピュータ１５０が作業工程４０１に戻る、作業工程４０１へのループ処理を行う。スキャンセル(及びその、マルチプレクサ及びフリップフロップのような、１つないしさらに多くのコンポーネント)が識別される特定の態様は実施形態に依存してそれぞれ異なるが、図３を参照して上述したように、いくつかの実施形態はＵＤＰの認識に基づく。
【００３３】
作業工程４０５において、コンピュータ１５０は(例えば作業工程４０３で識別された)スキャンセルインスタンス対を、対のいずれのインスタンスも同じスキャンイネーブル信号で駆動されるか否かを調べ、そうであればそのような対の識別情報を(例えば、実施形態に依存して、２つのディメンションテーブルが用いられる)データ構造に格納するために、チェックする。作業工程４０５の後、コンピュータ１５０は、次に論じられるように作業工程４０６に進む。
【００３４】
作業工程４０６では、コンピュータ１５０が作業工程４０３で識別されたそれぞれのスキャンセルインスタンスを個々に選択して作業工程４０７に進む、別の“for”ループが実施される。作業工程４０７において、コンピュータ１５０は、例えばファンアウトをトレースすることで、現スキャンセルインスタンスからのパスの全てが最適化可能であるか否かをチェックする。答えが「イエス」であれば、コンピュータ１５０は作業工程４０８に進み、そのようなパスの全てを最適化可能であるとしてマークする。作業工程４０８の後、コンピュータ１５０は作業工程４０９に進む。コンピュータ１５０は、作業工程４０７における答えが「ノー」である場合にも作業工程４０９に進む。作業工程４０９では、作業工程４０３において識別されたスキャンセルインスタンスの全てが調べられたか否かをチェックし、そうであれば作業工程４１０に進み、そうでなければ作業工程４０６に戻ることで、作業工程４０６へのループターミネートが実施される。
【００３５】
作業工程４１０において、コンピュータ１５０は、(図２Ｂのソフトウエア文２５２に示されるタイプの)条件を含むかまたは無条件の、組合せ論理回路を通る信号の伝搬をシミュレートするためのソフトウエア命令を生成する。上述したように、このソフトウエア命令に用いられる条件はスキャンイネーブル信号に基づく。さらに、生成されるソフトウエアがそのような条件を含むか否かはパスの最適化可能性に依存する。パスが最適化可能であれば、ソフトウエア命令は条件付になる。パスが最適化不能であれば、ソフトウエア命令は無条件である。
【００３６】
図４Ａの作業工程４０５は当業者には本開示から明らかであろういずれかの態様で実施することができ、作業工程４０５の実施の詳細は本発明に肝要ではない。とはいっても、説明の目的のため、作業工程４０５を実施するために図４Ｂに示される作業工程４１１〜４１８がいくつかの実施形態で実施されることに注意されたい。詳しくは、作業工程４１１において、コンピュータ１５０は作業工程４０３(図４Ａ)で識別されたスキャンセルインスタンスのそれぞれを個々に選択することによって“for”ループを実施して、作業工程４１２に進む。作業工程４１２において、コンピュータ１５０はスキャンイネーブル信号についてのルートネットを識別するために逆方向にトレースし、現セルインスタンスについて識別されたルートネットをセーブする。次いで、コンピュータ１５０は作業工程４１３に進み、作業工程４１３においてコンピュータ１５０は全てのセルインスタンスが調べられたか否かをチェックし、そうでなければ作業工程４１１に戻る。全てのセルインスタンスが調べられていれば、コンピュータ１５０は、次に論じられる、作業工程４１４に進む。
【００３７】
作業工程４１４において、コンピュータ１５０はスキャンインスタンス対を個々に選択することによって別の“for”ループを実施し、作業工程４１５に進む。作業工程４１５において、コンピュータ１５０は現在選択されている対のスキャンセルのそれぞれのスキャンイネーブル信号のルートネットが同じであるか否かをチェックする。作業工程４１５における答えが「イエス」であれば、コンピュータ１５０は作業工程４１６に進み、そうでなければ作業工程４１７に進む。作業工程４１６及び４１７において、コンピュータ１５０は、スキャンイネーブル信号が同じか否かをそれぞれが示すために、フラッグを‘真’または‘偽’であるとして格納する。作業工程４１６及び４１７の後、コンピュータ１５０は、スキャンセルインスタンス対の全てが調べられたか否かをチェックし、チェックされていなければ作業工程４１４に戻ることによって作業工程４１４へのループターミネートを実施する、作業工程４１８を実施する。
【００３８】
図４Ａの作業工程４０７も当業者には本開示から明らかであろういずれかの態様で実施することができ、業工程４０７の実施の詳細は本発明に肝要ではない。とはいえ、説明の目的のため、作業工程４０７を実施するために図４Ｃに示される作業工程４２１〜４２７がいくつかの実施形態で実施されることに注意されたい。詳しくは、作業工程４２１において、コンピュータ１５０はそのファンアウトがトレースされるべきスキャンセルのＱピンのファンアウトのそれぞれを個々に選択することによって“for”ループを実施する。次に、作業工程４２２において、コンピュータ１５０は、このファンアウトｆがＡＮＤゲートまたはＯＲゲートあるいはインバータのような一方向性の簡単な組合せ素子であるか否かをチェックする。作業工程４２２における答えが「ノー」であれば、コンピュータ１５０は作業工程４２４に進み、ファンアウトｆが推定スキャンセルインタンスであるか否かをチェックして、そうでなければ、パスが最適化可能ではないことを意味する‘偽’を返す。作業工程４２４における答えが「イエス」であれば、コンピュータ１５０は、ファンアウトｆとスキャンセルが同じスキャンイネーブル信号を有するか否かをチェックして、そうでなければ、パスが最適化可能ではないことを意味する‘偽’を再び返すための作業工程４２５に進む。作業工程４２５における答えが「イエス」であれば、コンピュータ１５０は、ファンアウトｆがスキャンセルdataNetと同じであるか否をチェックして、そうでなければパスが最適化可能ではないことを示す‘偽’を再び返すための作業工程４２６に進む。作業工程４２６における答えが「イエス」であれば、コンピュータ１５０は、パスが最適化可能であることを意味する、‘真’を返す。
【００３９】
作業工程４２２において、答えが「イエス」であれば、コンピュータ１５０は作業工程４２３に進み、再帰呼出しを作業工程４２２に返すが、ともなう新しいファンアウトｆは作業工程４２３で入力された古いファンアウトｆである。作業工程４２３において達し得るファンアウトがもはやない場合、すなわち外部出力に達してしまえば、コンピュータ１５０は、スキャンセル対の全てが調べられたか否かをチェックし、そうでなければ作業工程４２１に戻るために工程４２１へのループターミネートを実施するための作業工程４２７に進む。スキャンセル対の全てが調べられていれば、コンピュータ１５０は本方法から戻る、すなわち作業工程４０７(図４Ａ)が完了される。
【００４０】
(例えば図２Ａを参照して)上述したようなシミュレーション速度向上を実施するための方法２００を実施する、適切にプログラムされたいずれのコンピュータ(以降「コンパイル済みコードのシミュレータ」)も、簡略な例示図表で図６に示される、デジタルＡＳＩＣ設計フローに用いられ得ることに注意されたい。高水準において、チップ設計プロセスは製品計画(９００)に始まり、ＥＤＡソフトウエア設計プロセス(９１０)において実現される。設計が終わると、テープアウトすることができる(イベント９４０)。テープアウト後、製造プロセス(９５０)及びパッケージング／組立プロセス(９６０)が行われて、最終的に、完成チップ(結果９９０)が得られる。
【００４１】
ＥＤＡソフトウエア設計プロセス(９１０)は実際上、簡単のために直行態様で示される、多くの段階９１２〜９１３からなる。実際のＡＳＩＣ設計プロセスにおいて、特定の設計はいくつかのテストに合格するまでのステップを通して戻らなければならないであろう。同様に、いずれの実設計プロセスにおいても、そのようなステップは異なる順序及び組合せでおこり得る。したがって、本説明は、特定のＡＳＩＣに対する、仕様または推奨ではなく、状況上の及び全般的な説明として与えられる。ＥＤＡソフトウエア設計プロセス(段階９１０)のコンポーネントの簡潔な説明が次に与えられる。
【００４２】
システム設計(段階９１２)：実装したい機能を設計者が記述する。設計者は‘もし万一’プランニングを実施して、機能の精化、コストのチェック、等を行うことができる。この段階でハードウエアとソフトウエアの仕分けを行うことができる。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ(登録商標)社のＥＤＡソフトウエア製品には、Ｍｏｄｌ Ａｒｃｈｉｔｅｃｔ、Ｓａｂｅｒ、Ｓｙｓｔｅｍ Ｓｔｕｄｉｏ及びＤｅｓｉｇｎＷａｒｅ(登録商標)がある。
【００４３】
論理設計及び機能検証(段階９１４)：この段階において、システム内のモジュールに対するＶＨＤＬまたはＶｅｒｉｌｏｇコードが書かれ、(同期／非同期混成とすることができる)設計が機能ｎｏ正確さについてチェックされる。この段階で用いることができる、例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品には、ＶＣＳ、ＶＥＲＡ、ＤｅｓｉｇｎＷａｒｅ、Ｍａｇｅｌｌａｎ、Ｆｏｒｍａｌｉｔｙ、ＥＳＰ及びＬＥＤＡがある。
【００４４】
統合及びテスト容易化設計(段階９１６)：ここでＶＨＤＬ／Ｖｅｒｉｌｏｇがネットリストに変換される。ネットリストは目標技術に対して最適化され得る。さらに、この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品には、Ｄｅｓｉｇｎ Ｃｏｍｐｉｌｅｒ(登録商標)、Ｐｈｙｓｉｃａｌ Ｃｐｍｐｉｌｅｒ、Ｔｅｓｔ Ｃｏｍｐｉｌｅｒ、Ｐｏｗｅｒ Ｃｏｍｐｉｌｅｒ、ＦＰＧＡ Ｃｏｍｐｉｌｅｒ，Ｔｅｔｒａｍａｘ及びＤｅｓｉｇｎＷａｒｅがある。
【００４５】
設計プランニング(段階９１８)：ここで、チップに対する全体的な基本プランが構築され、タイミング及びトップレベルルーティングについて解析される。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品には、Ｊｕｐｉｔｅｒ及びＦｌｏｏｒｐｌａｎ Ｃｏｍｐｉｌｅｒがある。
【００４６】
ネットリスト検証(段階９２０)：この段階において、タイミングの制約の遵守に対し、及びＶＨＤＬ／Ｖｅｒｉｌｏｇソースコードとの対応に対し、ネットリストがチェックされる。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品には、ＶＣＳ、ＶＥＲＡ、Ｆｏｒｍａｌｉｔｙ及びＰｒｉｍｅＴｉｍｅがある。
【００４７】
(図２Ａの方法を実施する上述のタイプの)コンパイル済みコードのシミュレータ９９９は、図６に示されるように、この段階９２０の間に用いられ得ることに注意されたい。表示される結果に満足できなければ、チップ設計者は段階９１６に戻って図５に示されるようにＩＣ構造を変更することができる。
【００４８】
実体的実施(段階９２２)：配置(上述した順序セル及び組合せセルのような回路要素の位置決め)及びルーティング(回路要素の接続)がこの段階で行われる。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品にはＡｓｔｒｏがある。この段階における回路及び(長方形のような)その領域は現実世界に存在するかのように考えられるかもしれないが、この段階においてはレイアウトがコンピュータ１５０内に存在するに過ぎないことは当然である。現実世界の実回路は以下で論じられるようにこの段階の後につくり出される。
【００４９】
解析及び抽出(段階９２４)：この段階において、回路機能がトランジスタレベルで検証され、続いて、「もし万一」精化が可能になる。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品には、Ｓｔａｒ ＲＣ/ＸＴ、Ｒａｐｈａｅｌ及びＡｕｒｏｒａがある。
【００５０】
実体的検証(段階９２６)：この段階において、製造、電気的問題、リソグラフィ上の問題及び回路に対する適切性を保証するために様々なチェック機能が実施される。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品にはＨｅｒｃｕｌｅｓがある。
【００５１】
分解能増強(段階９２８)：この段階は設計の製造容易性を改善するためのレイアウトの幾何学的操作を含む。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品にはｉｎ-Ｐｈａｓｅ、Ｐｒｏｔｅｕｓ及びＡＦＧｅｎがある。
【００５２】
マスクデータ作成(段階９３０)：この段階は完成チップを製造するためのリソグラフィ用マスクの作成のための「テープアウト」データを提供する。この段階で用いることができる例示的なＳｙｎｏｐｓｙｓ社のＥＤＡソフトウエア製品にはＣＡＴＳ(Ｒ)ファミリーがある。現実世界における実回路はこの段階の後で(「ファブ」とも呼ばれる)ウエハ製造施設においてつくり出される。
【００５３】
この詳細な説明で述べられた作業工程の１つないしさらに多くを実施するためのデータ構造及びソフトウエアコード(例えば、図２Ａ，３，４Ａ〜４Ｃ及び／または表１に与えられる追補Ａ)は、コンピュータで用いるためにコード及び／またはデータを保持できるいずれかの記憶媒体及び／または通信媒体とすることができるコンピュータ読出可能媒体にコード化することができる。記憶媒体には、デスクドライブ、磁気テープ、ＣＤ(コンパクトディスク)及びＤＶＤ(デジタル多用途ディスク)のような磁気記憶デバイス及び光記憶デバイスがあるが、これらには限定されない。(信号で変調される搬送波を含むかまたは含まない)通信媒体には、インターネットのような、有線通信ネットワークまたは無線通信ネットワークがあるが、これらには限定されない。一実施形態において、通信媒体は、図２Ａに示される方法によって実施される１つないしさらに多くの作業工程を実行するためのコンピュータ命令信号を含む、搬送波を使用する。別の実施形態では図２Ａに示されるような方法を実施するための命令を含む搬送波が用いられる。
【００５４】
本明細書に説明されるタイプのシミュレーション速度エンハンサーを実施するためのいくつかの実施形態に用いられるコンピュータシステムには、それぞれが２ＧＨｚのＣＰＵ及び１ＧＢのメモリを有する、ローカルエリアネットワーク(イーサネット)を介して相互接続された、１つないしさらに多くの、(ＩＢＭ(登録商標)互換ＰＣベースの)リナックス(登録商標)オペレーティングシステムワークステーション及び／またはユニックス(登録商標)オペレーティングシステムワークステーション(例えば、ＳＵＮ Ｕｌｔｒａｓｐａｒｃ，ＨＰ ＰＡ-ＲＩＳＣまたは互換システム)が用いられることに注意されたい。
【００５５】
表１に与えられる、この詳細な説明の章の追補Ａはこの詳細な説明と一体の部分であり、その全体が本明細書に参照として含まれる。追補Ａは、例えば、Ｓｙｎｏｐｓｙｓ社から入手できる“ＶＣＳ”と呼ばれるソフトウエア製品を用いて図４Ａ〜４Ｃに示される作業工程を実施するための、本発明にしたがうシミュレーション速度エンハンサーの一例示実施形態を実施するための擬似コード及び関連情報を含む。
【００５６】
当業者には本明細書に説明される実施形態の数多くの改変及び翻案が本開示から明らかになるであろう。したがって、本明細書に説明される実施形態の数多くの改変及び翻案は本発明の範囲によって包含される。
【００５７】
2011501290.tif 000002
2011501290.tif 000003
2011501290.tif 000004
【符号の説明】
【００５８】
１０    ＩＣチップ
１１，１２    フリップフロップ
１３    組合せ論理回路
１３Ｐ    ミッションパス
２１    ソーススキャンセル
２１Ｍ，２２Ｍ    マルチプレクサ
２２    シンクスキャンセル
２３    スキャンパス
１５０    コンピュータ
９９９    コンパイル済みコードのシミュレータ
【図１Ａ】
2011501290.tif 000005
【図１Ｂ】
2011501290.tif 000006
【図１Ｃ】
2011501290.tif 000007
【図２Ａ】
2011501290.tif 000008
【図２Ｂ】
2011501290.tif 000009
【図３】
2011501290.tif 000010
【図４Ａ】
2011501290.tif 000011
【図４Ｂ】
2011501290.tif 000012
【図４Ｃ】
2011501290.tif 000013
【図５】
2011501290.tif 000014
【図６】
2011501290.tif 000015
【手続補正書】
【提出日】平成22年8月31日(2010.8.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
作業工程３０７において、コンピュータ１５０は現マルチプレクサのどのピンがスキャンデータを受け取るかを識別(すなわちＳＩピンを識別)し、どのピンがミッションデータを受け取るかを識別(すなわちＭＩピンを識別)する。次に、作業工程３０８において、コンピュータ１５０は現マルチプレクサの２つの入力ピン(すなわちＳＩピン及びＭＩピン)から現モジュールの入力ポートまで信号を逆方向にトレースする。次いで、作業工程３０９において、コンピュータ１５０は現フリップフロップのＱピンから現モジュールの出力ポートまで信号を順方向にトレースする。次に、コンピュータ１５０は、例えばトレースされておらず、最適化可能であるか最適化不能であるかのいずれかであるとしてまだマークされていないスキャンセル間のパスがあれば、上述した作業工程の内の１つないしさらに多くが反復される、作業工程３１１に進む。トレースされていないパスがなければ、コンピュータは作業工程３１１において本方法を終了する。
【国際調査報告】
2011501290.tif 000016