(57)【要約】【課題】状態回復を有する回路エミュレーションを提供する。【解決手段】回路エミュレーションシステム及び方法は少なくとも１つのトレースチェーンと順に状態値を受信し、オリジナルストレージユニットの位置にチェーンを介してそれらをフィードバックするための少なくても１つのトレースチェーンと接続されたトレースメモリを含むシステムと、回路をモデリングし、モデル内に少なくとも１つのストレージユニットを提供し、モデルと共にエミュレーティングし、エミュレーションの間に少なくとも１つのストレージユニットのステートを抽出し、前記抽出されたステートを貯蔵し、そしてフィードバックループを介して前記貯蔵されたステートを再貯蔵する。【選択図】  図４
2007305126.tif 000002
【特許請求の範囲】
【請求項１】
回路をモデリングし、
前記モデル内に少なくとも１つのストレージユニットを提供し、
前記モデルと共に前記回路をエミュレーティングし、
エミュレーティング中、少なくとも１つのストレージユニットのステートを抽出し、
前記抽出されたステートを貯蔵し、
フィードバックループを介して前記貯蔵されたステートを再貯蔵することを含むことを特徴とする回路エミュレーティング方法。
【請求項２】
外部データを受信し、
抽出されたステートの代りにトレースメモリに前記受信した外部データを貯蔵することをさらに含むことを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項３】
前記モデル内に直列に接続された第１の複数のストレージユニットを提供し、
エミュレーションクロックが変換する間に、前記第１の複数のストレージユニットのそれぞれのステートを順に抽出し、
前記抽出されたステートを貯蔵し、
フィードバックループを介して前記貯蔵されたステートを順に再貯蔵することをさらに含むことを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項４】
複数のマルチプレクサを利用して直列に接続された前記第１の複数のストレージユニットをスイッチングすることをさらに含むことを特徴とする請求項３に記載の回路エミュレーティング方法。
【請求項５】
前記第１の複数のストレージユニットは共通のクロックドメインを共有することを特徴とする請求項３に記載の回路エミュレーティング方法。
【請求項６】
前記第１の複数のストレージユニットは多重のクロックドメインを用いることを特徴とする請求項３に記載の回路エミュレーティング方法。
【請求項７】
モデル内に直列に接続された第２の複数のストレージユニットを提供し、
前記第１の複数のストレージユニットのそれぞれのステートと共に並列に抽出し、前記第２の複数のストレージユニットのそれぞれのステートを順に抽出し、
前記第２の複数のストレージユニットのそれぞれのステートを貯蔵し、
前記第１の複数のストレージユニットのそれぞれのステートと共に並列に再貯蔵し、フィードバックループを介して前記第２の複数のストレージユニットのそれぞれのステートを順に再貯蔵することをさらに含むことを特徴とする請求項３に記載の回路エミュレーティング方法。
【請求項８】
前記第１の複数のストレージユニットの数は前記第２の複数のストレージユニットの数と同一であることを特徴とする請求項７に記載の回路エミュレーティング方法。
【請求項９】
前記第１の複数のストレージユニットの数が前記第２の複数のストレージユニットの数より少ない場合、前記第２の複数のストレージユニットの数を増加させるために、前記第１の複数のストレージユニットに直列に接続されたトレースバランシングストレージユニットを提供することをさらに含むことを特徴とする請求項７に記載の回路エミュレーティング方法。
【請求項１０】
前記第１の複数のストレージユニットの数が前記第２の複数のストレージユニットの数より少ない場合、前記第２の複数のストレージユニットのステートを抽出する間、その数の差を同一にするサイクルのために、前記第１の複数のストレージユニットにクロックを停止することをさらに含むことを特徴とする請求項７に記載の回路エミュレーティング方法。
【請求項１１】
前記回路のストレージユニットをモデリングし、
ストレージユニットのステートを抽出し、
前記抽出されたステートに従って前記回路をエミュレーティングすることをさらに含むことを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項１２】
複数のマルチプレクサを提供し、トレースチェーンを形成するためにまた他のストレージユニットと直列に接続されたそれぞれのストレージユニットと接続し、
エミュレーションクロックが変換する間に、トレースチェーンで複数のストレージユニットのそれぞれのステートを順に抽出し、
前記抽出されたステートを貯蔵し、
フィードバックループを介してトレースチェーンに前記抽出されたステートを再貯蔵することをさらに含むことを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項１３】
第２の複数のマルチプレクサを提供し、第２のトレースチェーンを形成するためにまた他のストレージユニットと直列に接続されたそれぞれのストレージユニットと接続し、
エミュレーションクロックが変換する間に、前記第２のトレースチェーンで前記複数のストレージユニットのそれぞれのステートを順に抽出し、
前記抽出されたステートを貯蔵し、
フィードバックループを介して前記第２のトレースチェーンに前記抽出されたステートを再貯蔵することをさらに含むことを特徴とする請求項１２に記載の回路エミュレーティング方法。
【請求項１４】
互いに異なる長さを有する複数のトレースチェーンを提供することをさらに含むことを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項１５】
トレースチェーンの長さを増加させるために少なくとも１つのトレースチェーンにトレースバランシングストレージユニットを追加し、
他のトレースチェーンのためにさらに少ないステートを読み出すために少なくとも１つのトレースチェーンのクロックを停止し、
より長いトレースチェーンを形成するために、２つまたはそれ以上の短いトレースチェーンを結合し、
２つまたはそれ以上のさらに短いトレースチェーンを形成するために１つまたはそれ以上の長いトレースチェーンを分離することのうち、少なくとも１つによってトレースチェーンの長さを調節することをさらに含むことを特徴とする請求項１４に記載の回路エミュレーティング方法。
【請求項１６】
トレースチェーンの数はインターフェースバス上に平行なビットラインの数と同一であることを特徴とする請求項１４に記載の回路エミュレーティング方法。
【請求項１７】
それぞれのエミュレータのクロックが変換するとき、すべてのトレースチェーンを貯蔵し、再貯蔵することを特徴とする請求項１４に記載の回路エミュレーティング方法。
【請求項１８】
前記複数のストレージユニットのうちの少なくとも１つはその出力ポートのそれぞれの内部にシュードストレージユニットを含むセルであることを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項１９】
前記エミュレーションする段階はゼロディレを有するサイクルベースであることを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項２０】
前記複数のストレージユニットはオリジナルと擬似のストレージユニットで構成されることを特徴とする請求項１９に記載の回路エミュレーティング方法。
【請求項２１】
前記エミュレーションする段階は、ノンゼロディレを有するイベントドリヴン（event-driven）であることを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項２２】
前記複数のストレージユニットはオリジナルストレージユニットで構成されることを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項２３】
前記回路はデジタルであることを特徴とする請求項１に記載の回路エミュレーティング方法。
【請求項２４】
少なくとも１つのトレースチェーンと、
オリジナルストレージユニットの位置に前記チェーンを介して順に状態値を受信し、それをフィードバックするための少なくとも１つのトレースチェーンに接続されたトレースメモリを含むことを特徴とするデジタルエミュレーションシステム。
【請求項２５】
前記少なくとも１つのトレースチェーンは複数のストレージユニットを含むことを特徴とする請求項２４に記載のデジタルエミュレーションシステム。
【請求項２６】
前記それぞれの複数のストレージユニットと個別的に接続された複数のマルチプレクサをさらに含むことを特徴とする請求項２５に記載のデジタルエミュレーションシステム。
【請求項２７】
前記複数のマルチプレクサは少なくとも前記複数のストレージユニットのうちの一部と共に直列に接続されることを特徴とする請求項２６に記載のデジタルエミュレーションシステム。
【請求項２８】
少なくとも１つのトレースチェーンと前記トレースメモリとの間に接続されたマルチプレクサと、
マルチプレクサと少なくとも１つのトレースチェーンとの間にダイレクトフィードバックの経路をさらに含むことを特徴とする請求項２４に記載のデジタルエミュレーションシステム。
【請求項２９】
前記トレースメモリと接続されたデータエンコーダと、
前記データエンコーダと接続された外部インターフェースと、
前記外部インターフェースと接続されたデータエンコーダと、
前記データデコーダと前記トレースメモリとの間に接続されたマルチプレクサとを含み、
前記少なくとも１つのトレースチェーンは前記マルチプレクサと接続されることを特徴とする請求項２４に記載のデジタルエミュレーションシステム。
【請求項３０】
前記少なくとも１つのトレースチェーンは少なくとも１つのハードウエアまたはソフトウエアエミュレータで実現されることを特徴とする請求項２４に記載のデジタルエミュレーションシステム。
【請求項３１】
複数のトレースチェーンのそれぞれは複数のストレージユニットで構成されることを特徴とする請求項２４に記載のデジタルエミュレーションシステム。
【請求項３２】
前記少なくとも１つのトレースチェーン内の前記ストレージユニットの数は前記他の複数のトレースチェーンのそれぞれのストレージユニットの数と同一であることを特徴とする請求項３１に記載のデジタルエミュレーションシステム。
【請求項３３】
前記少なくとも１つのトレースチェーン内のオリジナルとシュードストレージユニットの数は前記他の複数のトレースチェーン内のそれぞれのストレージユニットの数より少なく、
前記少なくとも１つのトレースチェーンは前記それぞれの他の複数のトレースチェーン内のそれぞれのストレージユニットの数を増加させるためにオリジナルと擬似ストレージユニットと直列に接続されたトレースバランシングストレージユニットの数をさらに含むことを特徴とする請求項３１に記載のデジタルエミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウエアの開発ツールに係り、より具体的には、デジタル回路のテスティングとエミュレーションシステムとに関する。
【背景技術】
【０００２】
従来のシミュレーションシステムのシミュレーション時間は回路の大きさが増加するに従って一般的に、急激に増加する。もし、機能検証の間にエラーがあれば、シミュレーションの開始からエラー発生の以後まで追加的なシミュレーションを必要とする。
【０００３】
エラーの位置は典型的にトップレベルでプライマリポートからバックワード方向に検索することによって検出することができる。もし、ターゲットデジタル回路内のすべてのストレージユニットの状態が分かれば、時間と空間の単位で分離した分散シミュレーションを実行することができる。ストレージユニットの状態を速く貯蔵し、再貯蔵し、変化させることは、サイクルベース分散シミュレーション(ＤＳ−ＣＢＳ)において重要である。
【０００４】
例えば、図１に示したように、従来のデジタル回路テストシステムを参照番号１００で示す。システム１００はオリジナルロジック１１０及び追加ロジック１２０を含む。ここで、オリジナルロジック１１０は第１フリップフロップ １１２、第１フリップフロップと接続された組み合わせロジック１１４、及び組み合わせロジック１１４と接続されたフリップフロップ１１６を含む。追加ロジック１２０は制御ロジック１２２、制御ロジック１２２及び第１フリップフロップ１１２と接続されたマルチプレクサ１２４、マルチプレクサ１２４と接続された第３フリップフロップ１２６、及び第３フリップフロップ１２６と接続されたメモリ１２８を含む。
【０００５】
従来のデジタル回路テストシステム１００において、追加ロジック１２０はストレージユニットのステートを貯蔵するために利用される。追加的な制御ロジック、フリップフロップ及びメモリはオリジナルフリップフロップ及びネットのステートをモニタするために利用される。例えば、追加的なフリップフロップＦ３または１２６はオリジナルフリップフロップＦ１または１１２のステートを貯蔵するために割り当てられる。正常なクロック、Ｎｃｌｋ及びサンプリングクロック、Ｄｃｌｋが提供される。オリジナルロジックのストレージユニットのステートはサンプリングされ、固定された容量のエンベデッドメモリ１２８に貯蔵され、メモリにあるデータはジョイントテストアクショングループ(Ｊｏｉｎｔ Ｔｅｓｔ Ａｃｔｉｏｎ Ｇｒｏｕｐ；ＪＴＡＧ)インターフェースに出力される。      
【０００６】
一方、エンベデッドメモリ１２８の容量は大きさによって固定された限界を有する。ＮｃｌｋとＤｃｌｋは常に動作しているため、リアルタイムにあるオリジナルロジックをモニタすることは不可能である。メモリは運営するロジックの以前ステートを出力する。さらに、フィードバックの経路はオリジナルロジックに貯蔵されたステートを再貯蔵するためには提供されない。
【０００７】
図２を参照すると、他の従来のデジタル回路テストシステムを参照番号２００で一般的に示す。システム２００はオリジナルロジック２１０及び追加ロジック２３０を含む。
【０００８】
オリジナルロジックは第１フリップフロップ２１２、第１フリップフロップ２１２と接続されたインバータ２１４、インバータ２１４と接続された第１ＮＡＮＤゲート２１６、第１ＮＡＮＤゲート２１６と接続された第２ＮＡＮＤゲート２１８、第２ＮＡＮＤゲート２１８と接続された第２フリップフロップ２２０、第２フリップフロップ２２０と接続された第３ＮＡＮＤゲート２２２、及び第３ＮＡＮＤゲート２２２と接続された第３フリップフロップ２２４を含む。
【０００９】
追加ロジック２３０は第１フリップフロップ２１２と接続された第１マルチプレクサ２３２、第１マルチプレクサ２３２と接続された第４フリップフロップ２３４、第２フリップフロップ２２０、第４フリップフロップ２３４、及び第５フリップフロップ２３８と接続された第２マルチプレクサ２３６、及び第５フリップフロップ２３８と接続された第３のマルチプレクサ２４０を含む。
【００１０】
従来のシステム２００にはエンベデッドメモリがない。しかし、オリジナルフリップフロップ及びネットのステートをモニタするための追加的な制御ロジック及びフリップフロップがある。
【００１１】
システム２００はオリジナルロジックをモニタするために、追加ロジックのキャプチャされたステートを貯蔵するためのレジスタシフティングを用いる。すなわち、追加ロジックはオリジナルロジックをモニタするかまたはテストするために利用される。しかし、システム２００はまたオリジナルロジックにキャプチャされたステートを再貯蔵するためのフィードバックの経路がない。
【００１２】
一方、図３を参照すると、従来のデジタル回路テストシステムを参照番号３００で一般的に示す。ここで、第１モデル３１０はフリップフロップ ３１４、３１６（図示せず）、３１８と接続された組み合わせ回路３１２を含む。第２モデル３４０はフリップフロップ３１４、３１６、３１８、及びスキャン回路３５０と接続された組み合わせ回路３１２を含む。
【００１３】
スキャン回路３５０は、スキャンイネーブルターミナル３６８、スキャンインターミナル３５２、スキャンイネーブルターミナル３５２と接続された第１マルチプレクサ３５４、組み合わせ回路３１２、及びスキャンインターミナル３５２、第１マルチプレクサ３５４と接続された第１フリップフロップ３１４と、第２マルチプレクサ３５８、スキャンイネーブルターミナル３５２と接続された第２マルチプレクサ３５８、組み合わせ回路３１２、及び第１フリップフロップ、第２マルチプレクサと接続された第２フリップフロップ３１６と、スキャンイネーブルターミナル３５２と接続された第３マルチプレクサ３６２、組み合わせ回路３１２、及び第２フリップフロップ３１６、第３マルチプレクサ３６２と接続された第３フリップフロップ３１８、及び第３フリップフロップ３１８と接続されたスキャンアウトターミナル３６６を含む。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
スキャンチェーンを含むシステムは単にオリジナルロジックをテストするために用いる。リアルスキャンフリップフロップはスキャンチェーンでオリジナルロジックのステートをキャプチャし、シフトするために利用される。新しいテストベンチデータはキャプチャされたデータのシリアル出力の間に連続的に入力される。
【００１５】
さらに、キャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するためのフィードバックの経路はない。
【００１６】
したがって、多様な従来のシステムには既存のフリップフロップを測定するための追加的なハードウエアフリップフロップが必要であり、リアルタイムでモニタすることができず、フィードバックループがなく、そして／またテストのためというよりエミュレーションのために適用される。本発明はこのような問題を解決する。
【課題を解決するための手段】
【００１７】
デジタル回路エミュレーションシステムのためのシステム及び方法は従来技術の短所及び欠点を提示する。
【００１８】
ステート抽出を有するデジタル回路エミュレーションシステムのための例示的なシステムは連続的に状態値を受け、それらのオリジナルストレージユニットの位置にチェーンを通じてフィードバックをするための少なくても１つのトレースチェーンと接続された少なくとも１つのトレースチェーン及びトレースメモリを含む。
【００１９】
ステート抽出を有するデジタル回路エミュレーションシステムのための例示的な方法は、回路をモデリングし、モデルに少なくとも１つのストレージユニットを提供し、モデルと共に回路をエミュレーションし、エミュレーションの間の少なくとも１つのストレージユニットのステートを抽出し、抽出されたステートを貯蔵し、かつフィードバックループを通じて貯蔵されたステートを再貯蔵する。
【００２０】
本発明を添付の図面を参照して例示的な実施形態に伴う技術によって詳細に説明する。
【発明の効果】
【００２１】
本発明のシステムは貯蔵し、再貯蔵し、ターゲットデジタル回路にあるストレージユニットの全てのためのステートを変えるトレースチェーンを用いる速いデバッギングをする効果がある。
【００２２】
もし、全てのストレージステートが全てのクロックサイクルに貯蔵される場合、データはモニタシミュレーション、及び／また分析のような業務のために速く再使用されることができる。フィードバックの経路は外部インターフェースにキャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するために提供する効果がある。
【００２３】
独立セグメントは多数の独立的な回路が同時にプロセスされるように、同時にシミュレーションされる。ストレージユニットによってクローズされた独立セグメントは“空間独立”がある。さらに、シミュレーションは以前のシミュレーションの間にデジタル回路で貯蔵されたデータに基づいた何らかの特定の時間から始めることができる。このような特性は“時間手順から独立”する効果がある。
【発明を実施するための最良の形態】
【００２４】
本発明の例示的なハードウエアエミュレーションシステムは何らかの特定のシミュレーション時間の間にターゲットデジタル回路にあるストレージユニットのステートを貯蔵し、再貯蔵して変えるデバッギングとプロセッシングシステムを含むことを提案する。望ましい実施形態は、貯蔵し、再貯蔵し、ターゲットデジタル回路にあるストレージユニットの全てのためのステートを変えるトレースチェーンを用いる速いデバギングシステムを提供する。
【００２５】
もし、全てのストレージステートが全てのクロックサイクルに貯蔵される場合、データはモニタシミュレーション、及び／また分析のような業務のためにす速く再使用することができる。フィードバックの経路は外部インターフェースにキャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するために提供される。
【００２６】
ＤＳ−ＣＢＳ（ Ｄｉｓｔｒｉｂｕｔｅｄ Ｓｉｍｕｌｔａｎｅｏｕｓ−Ｃｙｃｌｅ Ｂａｓｅｄ Ｓｉｍｕｌａｔｉｏｎ ）はオリジナルロジックにあるストレージユニットのステートを貯蔵し、再貯蔵して作られる。デジタル回路はストレージユニットによってクローズされた独立セグメントに分割される。
【００２７】
ここで、独立セグメントは多数の独立的な回路が同時にプロセスされるように、同時にシミュレーションされる。ストレージユニットによってクローズされた独立セグメントは“空間独立”がある。さらに、シミュレーションは以前のシミュレーションの間にデジタル回路で貯蔵されたデータに基づいて何らかの特定の時間から始まることができる。このような特性は“時間手順から独立”と言う。
【００２８】
ストレージステートはプリレイアウト（Ｐｒｅ−ｌａｙｏｕｔ）の間またはポストレイアウト（Ｐｏｓｔ−ｌａｙｏｕｔ）シミュレーションの間にＲＴＬまたはゲートレイアウトですべてのクロックサイクルの間に貯蔵される。同様に、ストレージステートはシミュレーション時間を節約するためにプリレイアウト及び／またはポストレイアウトシミュレーションの間にすべてのクロックサイクルを利用する。本発明においてはＤＳ−ＣＢＳシステムのための基本的なロジックモデルを提供する。
【００２９】
ここに用いられた“プリレイアウトシミュレーション”はディレ情報を回路要素（例えば、フリップフロップ、ゲート、トランジスタ）及びネットに適用される前のゼロディレーシミュレーションである。プリレイアウトシミュレーションはディレ情報なしにＲＴＬ及びゲートシミュレーションを実行する。ポストレイアウトシミュレーションは回路要素（例えば、フリップフロップ、ゲート、トランジスタ）及びネットに対するディレ情報を利用したディレーシミュレーションである。“クロックドメイン”は同一なクロックに接続されるクロックネットのグループを意味する。“ストレージトレーサ”はフリップフロップ、ラッチのようなリアルストレージエレメントを利用する。“ネットトレーサ”は擬似（ｐｓｅｕｄｏ）ストレージエレメントを利用し、すべてのクロックサイクルで効率的なクロックステートを作るクロックコントロールネットとアドレスでアクセスすることができるメモリの入力と出力内にストレージエレメントを挿入することによって完了する。“クロックトレーサ”はすべてのクロックサイクルにクロックネットのステートを貯蔵するために擬似ストレージエレメントを用いる。
【００３０】
“ストレージユニット”はフリップフロップラッチのようなクロックに同期されるリアルストレージエレメントを含む。“メモリセル”または“マクロセル”には各クロックサイクルに入力及び／または出力ステートを貯蔵するためにそれぞれの入力及び／または出力ポートにあるフリップフロップのような擬似ストレージエレメントを有する。“ネット／クロックトレーサ”はクロックサイクルにどんな所望するネットとクロックノードをモニタするかまたは貯蔵するためにフリップフロップのような擬似ストレージエレメントを含む。
【００３１】
機能的の同一回路及びストレージユニットの概念は本発明において用いられる。一般的にすべてのデジタル回路は順次回路及び組み合わせ回路で構成される。各デジタル回路は一般的にストレージユニットの間にストレージユニット及び組み合わせ単位を有したオリジナル回路を作る機能的に同一である回路を有する。
【００３２】
本発明の実施形態は各クロックサイクルに“ストレージユニット”の概念を利用することによってターゲットデジタル回路のステートの全てを貯蔵する。
【００３３】
本発明の実施形態と異なる実施形態において、すべてのクロックサイクルにすべてのステートを貯蔵し、ターゲットデジタル回路内のストレージユニットの貯蔵されたデータを再使用することによって、特別なシミュレーションの時間にすべてのステートを再貯蔵する多様な種類のデジタル回路を適用する。
【００３４】
したがって、例示的な実施形態はゼロディレーシミュレーション及び／またはハードウエアエミュレータ（すなわち、ＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ−Ａｒｒａｙ））はハードウエアエミュレーションのためのストレージユニットのステートをす速く生成することができる。
【００３５】
ターゲットデジタル回路にあるストレージユニットのステートの全てが有効である場合に、デジタル回路のステートは始めから実行される追加的なシミュレーションなしに任意のあらかじめ決まったサイクルに再貯蔵することができる。ターゲットデジタル回路にあるストレージユニットの貯蔵されたステートはオリジナルデジタル回路にだけでなく、他の環境またはデザインライブラリにおいて、合成された機能的に同一であるネットリストに適用することができる。なぜなら、２つの互いに異なるネットリストの間のストレージユニットは組み合わせ回路が合成の後に互いに異なっても、同一にマッピングされるためである。
【００３６】
さらに、速いシミュレーションすなわち、機能的な検証はデジタル回路デザインの間に２個の機能的に同一であるネットリストの間にストレージユニットの予想したステート及びストレージユニットの出力されたステートにしたがって実行される。
【００３７】
図４に示したように、本発明の例示的な実施形態によってステート抽出を有するデジタル回路エミュレーションシステムを一般的に参照番号４００で示す。オリジナル回路４１０はノーマルデータイン（ＮＤｉ：Ｎｏｒｍａｌ Ｄａｔａ Ｉｎ）ターミナル４１２を含む。インバータ４１４はターミナル４１２と接続される。第１フリップフロップ４１６はインバータ４１４と、ノーマルクロックインプット（ＮＣｋ：Ｎｏｒｍａｌ ｃｌｏｃｋ ｉｎｐｕｔ)ターミナル４３０と接続される。インバータ４１８はフリップフロップ４１６と接続され、ＮＡＮＤゲート４２０はインバータ４１８と接続される。インバータ４２２はＮＡＮＤゲート４２０と接続される。第２フリップフロップ４２４はインバータ４２２と接続され、ＮＣｋターミナル４３０と接続される。インバータ４２６は第２フリップフロップ４２４と接続され、 ＮＤｏ（Ｎｏｒｍａｌ Ｄａｔａ ｏｕｔ）ターミナルはインバータ４２６と接続される。
【００３８】
ストレージトレーサＳＴ回路４４０はマルチプレクサ４４２、及びマルチプレクサ４４２の出力と接続された入力を有するフリップフロップ４４４を含む。ストレージトレーサ回路４４０は４個の信号入力及び１個の信号出力を有する。ストレージトレーサの概略図４４６はストレージトレーサ回路４４０と機能的に同一である。
【００３９】
ネットトレーサＮＴ回路４５０はマルチプレクサ４５２、及びマルチプレクサ４５２の出力と接続された入力を有するフリップフロップ４５４を含む。さらに、ネットトレーサの第１入力は出力と接続される。ネットトレーサ回路４５０は４個の信号入力及び２個の信号出力がある。ネットトレーサの概略図４５６はネットトレーサ回路４５０と機能的に同一である。
【００４０】
ＤＳ−ＣＢＳモデル４６０はノーマルデータインＮＤｉターミナル４６１、テストデータインＴＤｉターミナル４６２、ノーマルクロックＮＣｋターミナル４６３、テストクロックＴＣｋターミナル４６４、及びテストイネーブルＴｅｎターミナル４６５を含む。インバータ４６６はＮＤｉターミナル４６１と接続される。マルチプレクサ４６８はインバータ４６６と接続され、フリップフロップ４６８のデータ入力はマルチプレクサ４６７の出力と接続される。
【００４１】
マルチプレクサ４６８のクロック入力はＴｅｎターミナルと接続される。また他のマルチプレクサ４６９はＮＣｋとＴＣｋターミナルに接続される。フリップフロップ４６８のクロック入力はマルチプレクサ４６９と接続される。フリップフロップ４６８の出力はインバータ４７０と接続される。マルチプレクサ４７１の第１入力はインバータ４７０と接続され、第２入力はフリップフロップ４６８の出力と接続される。マルチプレクサ４７１はＴＥｎターミナルと接続されたクロック入力を有する。フリップフロップ４７２にはマルチプレクサ４７１が接続され、マルチプレクサ４６９の出力と接続されるクロック入力がある。
【００４２】
ＮＡＮＤゲート４７３はインバータ４７０の出力と接続される。インバータ４７４はＮＡＮＤゲート４７３と接続され、マルチプレクサ４７５の第１入力はインバータ４７４の出力と接続される。マルチプレクサ４７５の第２入力はフリップフロップ４７２の出力と接続される。マルチプレクサ４７５はＴｅｎターミナルと接続されたクロック入力を有する。フリップフロップ４７６にはマルチプレクサ４７５が接続され、マルチプレクサ４６９の出力と接続されるクロック入力がある。インバータ４７７はフリップフロップ４７６の出力と接続される。ノーマルデータアウトＮＤｏターミナル４７８はインバータ４７７の出力と接続され、テストデータアウトＴＤｏターミナル４７９はフリップフロップ４７６の出力と接続される。マルチプレクサ４６７の入力とフリップフロップ４６８の出力との間の回路は第１ストレージトレーサを構成する。インバータ４７０の出力とＮＡＮＤゲート４７３の入力との間の回路はネットトレーサを構成する。マルチプレクサ４７５の入力とフリップフロップ４７６の出力との間の回路は第２ストレージトレーサを構成する。
【００４３】
トレースチェーン回路４８０はＤＳ−ＣＢＳモデル４６０のトレースチェーンを示し、テストデータインＴＤｉターミナル４８２、ＴＤｉターミナルと接続された第１ストレージトレーサＳＴ４８４、第１ＳＴ４８４と接続されたネットトレーサＮＴ４８６、第２ＳＴ４８８と接続されたテストデータアウトＴＤｏターミナル４８９を含む。トレースチェーンＴＣの概略図４９０はトレースチェーン回路４８０と機能的に同一である。
【００４４】
したがって、ストレージユニットのステートを抽出するために、ネットトレーサはノード（例えば、ネット１はインバータ４７０の出力とＮＡＮＤゲート４７３の入力との間のノード）またはＤＳ−ＣＢＳシミュレーションの間のすべてのクロックサイクルでマクロセルのバウンダリのステートをモニタし、貯蔵するためにオリジナルネットリストに挿入される。
【００４５】
図５を参照すると、トレースチェーン及びこれと対応するタイミング図が一般的に参照番号５００で示される。トレースチェーン５１０はノーマルデータＮＤａｔａのための入力ターミナル５１２、テストデータＴＤａｔａ５１４、テストイネーブルＴｅｎ５１６、ノーマルクロックＮＣｌｋ５１８、及びテストクロックＴＣｌｋ５２０を含む。マルチプレクサ５２２はＮＣｌｋとＴＣｌｋターミナルと接続される。第１トレーサエレメント５２４はマルチプレクサ５２２の出力と、ＮＤａｔａとＴＤａｔａターミナルと、Ｔｅｎターミナルと接続される。組み合わせロジック回路５２６は第１トレーサエレメント５２４の出力と接続される。第２トレーサエレメント５２８は組み合わせ回路５２６の出力、第１トレーサエレメント５２４の出力、マルチプレクサ５２２の出力及びＴｅｎターミナルと接続される。中間トレーサエレメントは簡潔のために省略する。最後のトレーサエレメント５３０はエレメント５２８のように以前のトレーサエレメントと接続される。最後の組み合わせロジック回路５３２は最後のトレーサエレメント５３０の出力と接続される。最後のマルチプレクサ５３４は最後の組み合わせロジック回路５３２及び最後のトレーサエレメント５３０と接続され、そしてＴｅｎターミナルと接続されたクロックの入力を有する。出力ターミナル５３６は最後のマルチプレクサ５３４と接続される。したがって、マルチプレクサ５２２はリアルタイムにあるターゲットロジックのストレージユニットのステートをモニタし、貯蔵する２個のクロック信号、テストクロックＴＣｌｋ及び正常なクロックＮＣｌｋの間でトグル（ｔｏｇｇｌｅ）される。
【００４６】
図６を参照すると、ステートを再貯蔵するデジタル回路エミュレーションシステムを一般的に参照番号６００で示す。システム６００はソフトウエアまたはハードウエアエミュレータ６１０及びエミュレータインターフェースブロック６２０を含む。エミュレータ６１０はＭ−ｂｉｔマルチプレクサと接続されるＭ−ｂｉｔマルチプレクサ６１２、及びＭ−ｂｉｔトレースチェーンを含む。トレースチェーンの出力はマルチプレクサの第１入力にフィードバックされる。
【００４７】
エミュレータインターフェースブロック６２０は外部ソースから修正された入力を受けるためのブロック６２２、ブロック６２２及びトレースチェーン６１４の出力と接続されたトレースメモリ６２４とマルチプレクサ６１２の第２入力と接続されたディマルチプレクサ６２６の第１出力と共に、トレースメモリ６２４と接続されたＭ−ｂｉｔディマルチプレクサ６２６、及び外部インターフェースにトレースデータ出力を提供するためのブロック６２８と接続されたディマルチプレクサ６２６の第２出力を含む。
【００４８】
したがって、システム６００は（ａ）経路１を介してＭトレースチェーンからすべてのトレースサイクルの間にＭトレースチェーンを構成するストレージユニットのＭ−ｂｉｔステートを抽出し、（ｂ）経路２を介してＭトレースチェーン（Ｎサイクル）の抽出の間に、同一なトレースクロックと同期されるトレースチェーンのＭ−ｂｉｔ入力がフィードバックされるトレースチェーンのＭ−ｂｉｔ出力からＭ−ｂｉｔデータを提供され、（ｃ）経路３を介してＭトレースチェーン（Ｎサイクル）の抽出の間に、ＭｘＮトレースメモリ（同一であるトレースクロックと同期される）にトレースチェーンのＭ−ｂｉｔ出力から Ｍ−ｂｉｔ出力データを貯蔵し、（ｄ）経路５を介して外部インターフェースに経路４を介してＭ−ｂｉｔ出力データを提供するかまたは経路７を介してターゲットロジックにそれを再貯蔵し、（ｅ）経路６を介してターゲットロジックにあるストレージユニットのステートを変えるために選択的にトレースメモリにある貯蔵されたデータ変更し、（ｆ）トレースサイクルの終了のとき、次の正常なクロックサイクルのとき、正常動作を継続的に実行することによってストレージユニットのステートを貯蔵し、再貯蔵する。
【００４９】
図７を参照すると、マクロセルのためのトレースチェーンを一般的に参照番号７００で示す。オリジナルマクロブロック７１０はアンノウン（ｕｎｋｎｏｗｎ）入力ステート７１４と共に入力ポートデータイン１ｄａｔｅｉｎ＿１、データイン２ｄａｔｅｉｎ＿２及びデータイン３ｄａｔｅｉｎ＿３を有するオリジナルマクロセル７１２とアンノウン出力ステート７１６と共に出力ポートデータアウト１ｄａｔａｏｕｔ＿１、データアウト２ｄａｔａｏｕｔ＿２及びデータアウト３ｄａｔａｏｕｔ＿３を有するオリジナルマクロセル７１２を含む。
【００５０】
マクロブロック７２０は、入力ステート７１４を測定するために入力ポートに接続されたネットトレーサエレメント７２４と、出力ステート７１６を測定するために出力ポートに接続されたネットトレーサエレメント７２６とを有するマクロセル７１２を含む。マクロブロック７３０は、入力ステート７１４を測定するために入力ポートに接続されたネットトレーサエレメント７３４と、出力ステート７１６を測定するために出力ポートに接続されたネットトレーサエレメント７３６を有するマクロセル７１２を含む。したがって、マクロセルの内部にエレメントまたはメモリセルのすべてのステートを貯蔵する必要はない。入力または出力をサンプリングすることは、マクロセルの適切なステートのすべてを貯蔵するために必要である。これはネットトレーサを有する入力ポートと出力ポートのためのトレースチェーンを作ることによって行われる。各トレースチェーンは同一であるクロックドメインにある他のトレースチェーンに直列に接続される。制御信号Ｓｅｌ＿１はネットトレーサエレメントにマルチプレクサの第１入力Ｄ０経路を正常動作させる間に決定し、シフトモードの間にマルチプレクサの第２入力Ｄ１経路を決定する。
【００５１】
図８Ａないし図８Ｂを参照すると、階層的のレベルが互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムを一般的に参照番号８００で示す。トレーサエレメントを有したシステムの概略図は参照番号８１０によって表わされ、第１クロックドメイン８１２、及び第２クロックドメイン８１４を含む。
【００５２】
第１クロックドメイン８１２は第１マクロブロックの出力をトレースする第１サブチェーン８１６、第２マクロブロックの入力をトレースする第２サブチェーン８１８、第２マクロブロックの出力をトレースする第３サブチェーン８２０を含む。
【００５３】
第１ないし第３サブチェーンは、１個のサブチェーンから次のサブチェーンのトレースデータ入力にトレースデータ出力を接続してたった１つのトレースチェーンで接続される。これは第１ないし第３サブチェーンがすべての第１クロック（Ｃｌｏｃｋ１）を用いる同一であるクロックドメインであるため、可能である。
【００５４】
トレースチェーンエレメントを用いてシステムの概略図は参照番号８３０によって表わされ、第１クロックドメイン８３２、及び第２クロックドメイン８３４を含む。
【００５５】
第１クロックドメイン８３２は第１マクロブロックの出力をトレースする第１トレースチェーン８３６、第２マクロブロックの入力をトレースする第２トレースチェーン８３８、第２マクロブロックの出力をトレースする第３トレースチェーン８４０を含む。
【００５６】
第１ないし第３トレースチェーンエレメントは全部１つに接続されるかまたは１つのトレースチェーンエレメントから次のトレースチェーンエレメントのトレースデータ入力までトレースデータ出力を接続することによってトレースチェーンを結合する。
【００５７】
前記のように、これは第１ないし第３サブチェーンがすべて第１クロック（Ｃｌｏｃｋ１）を用いる同一であるクロックドメインであるため、可能である。したがって、各トレースチェーンは他のトレースチェーンに接続されるトレースチェーンが同一であるクロックドメインにある場合、容易に接続される。
【００５８】
図９を参照すると、ＤＳ−ＣＢＳに用いられるクロックネットワークを一般的に参照番号９００で示す。
【００５９】
ゲートクロックネットワーク（ｇａｔｅｄ ｃｌｏｃｋ ｎｅｔｗｏｒｋ）９１０は、それぞれが組み合わせロジック９１３、９１４と選択的に直列に接続されたフリップフロップ９１１、９１２などのような複数の貯蔵エレメントを含む。フリップフロップ９１１、９１２の出力はクロック入力（Ｃｌｏｃｋ＿Ａ）ターミナル９１６と共にＡＮＤ演算され、ＡＮＤゲート９１５の出力は他の貯蔵エレメント９１７、８１９に対するゲートクロック信号として用いられる。
【００６０】
ＤＳ−ＣＢＳのためのゲートクロックネットワークモデル９４０は第１フリップフロップ９４１及び第２フリップフロップ９４２、第２フリップフロップ９４２と接続される第２組み合わせロジック９４４、第１組み合わせロジック９４３と接続される第１ネットトレーサＮＴ９４５、第２組み合わせロジック９４４と接続される第１ネットトレーサＮＴ９４６、クロック入力ターミナル９４７、及びＮＴ９４５、ＮＴ９４６、及びクロックターミナル９４７の出力と接続される入力を有するＡＮＤゲート９４８を含む。
【００６１】
ＡＮＤゲート９４８の出力は他のフリップフロップまたはストレージエレメント（９４９と９５０のような）のための、ゲートクロックとして用いられ、クロックネットトレーサ９５１に対する入力として用いられる。ここに、ＣＣＰ（Ｃｌｏｃｋ Ｃｏｎｔｒｏｌ Ｐｏｉｎｔ）はＡＮＤゲートに対するＮＴ出力のそれぞれと定義される。
【００６２】
クロックドメインは同一であるクロックに接続されたストレージユニットがある地域である。クロックノードはＣＣＰ（Ｃｌｏｃｋ Ｃｏｎｔｒｏｌ Ｐｏｉｎｔ）に挿入されたネットトレーサを有するクロックノードのステートをあらかじめ検出するために定義される。
【００６３】
ＣＣＰはクロックノードと接続された地域の内部に貯蔵されたストレージユニットのステートと共にクロックソースのステートをあらかじめ決定するために最後のクロックステートを制御するのに用いられる。その後、ＤＳ−ＣＢＳシミュレーションを実行する。
【００６４】
マルチプレクサクロックネットワーク９２０は複数のクロック入力ターミナル（Ｃｌｏｃｋ＿Ａターミナル９２１とＣｌｏｃｋ＿Ｂターミナル９２２）、ターミナル（９２１、９２２）と接続されたデータ入力を有するマルチプレクサ９２３、及びマルチプレクサ９２３の入力を活性化する出力の組み合わせロジック９２５と接続されたストレージユニット９２４を含む。
【００６５】
マルチプレクサ９２３の出力は他のストレージエレメント（９２６、９２７）のためにマルチプレクサクロック信号として利用される。
【００６６】
ＤＳ−ＣＢＳのためのマルチプレクサクロックネットワークモデル９６０は複数のクロック入力ターミナル（Ｃｌｏｃｋ＿Ａターミナル９６１、Ｃｌｏｃｋ＿Ｂターミナル９６２）、ターミナル（９６１、９６２）と接続されるデータ入力を有するマルチプレクサ９６３、組み合わせ回路９６５と接続されるストレージユニット９６４、及びマルチプレクサ９６３に対する入力を活性化するのに用いられる出力である組み合わせ回路９６５と接続された挿入されたネットトレーサＮＴを含む。
【００６７】
マルチプレクサ９６３の出力は他のストレージエレメント（９６７、９６８）のためにマルチプレクサクロック信号として利用される。そしてクロックネットトレーサ９６９に入力として用いられる。ここで、ＣＣＰ（Ｃｌｏｃｋ Ｃｏｎｔｒｏｌ Ｐｏｉｎｔ)はマルチプレクサに出力されたＮＴと定義される。
【００６８】
分割されたクロックネットワーク９３０はストレージユニット９３２と接続されたクロック入力ターミナル９３１、ストレージユニットの出力と接続されるインバータ、及びインバータ９３３と接続されたストレージユニット９３２のデータ入力を含む。
【００６９】
さらに、ストレージユニットの出力は他のストレージエレメント（９３４、９３５）のために分割されたクロック信号として利用される。
【００７０】
オリジナルクロックソースがＣｌｏｃｋ＿１に接続されたＴフリップフロップにしたがってストレージユニットの全部のためのリファレンスクロックになることができるため、分割されたクロックネットワークでＣｌｏｃｋ＿１のようなネットトレーサを挿入する必要はない。
【００７１】
図１０を参照すると、互いに異なる長さを有するトレースチェーンは一般的に参照番号１０００で示す。
【００７２】
ミスマッチされた長さを有する２個のオリジナルトレースチェーンを一般的に１０１０で示す。トレースチェーン１０１２を有した使用者の定義ロジックはＮ−２の長さを持った第１トレースチェーン１０１４、及びＮの長さを持った第２トレースチェーン１０１６を含む。トレースチェーンデータメモリ１０１８は第１トレースチェーン１０１４に接続された第１部分または１ｘＮｂｉｔメモリ１０２０と２ｘＮｂｉｔメモリ、及び第２トレースチェーン１０１６に接続された第２部分または１ｘＮｂｉｔメモリ１０２２を含む。
【００７３】
したがって、トレースチェーンの長さがＮ−２であるトレースチェーン１０１４のトレースチェーンの長さを合わせるために割り当てられたトレースメモリの長さがＮである場合、２つのダミーネットトレーサをトレースチェーン１０１４に追加する。
【００７４】
オリジナルトレースチェーン１０１４はトレースデータ入力ターミナル１０２４及びマルチプレクサ１０２５によって構成された複数のストレージユニットを含む。２個のネットトレーサ１０２６はターミナル１０２４とマルチプレクサ１０２５との間に挿入される。
【００７５】
回路１０３０を用いる他の方法において、ネットトレーサは追加する必要がないが、２ クロックサイクルホールドタイムを有する修正されたＮの長さのトレースチェーンを提供するためにＡＮＤゲート１０３４のようなターミナル１０３２上のクロック信号を適用する適切なディレが適用される。
【００７６】
したがって、トレースチェーンは実質的にストレージユニットのステートを貯蔵するトレースメモリと同一な長さを有する。
【００７７】
トレースメモリの長さは同時にシミュレーションされる複数のトレースチェーンのうちのいずれか１つのために、所望する最大の長さで選択される。
【００７８】
トレースチェーンの長さがトレースメモリの長さよりさらに小さい場合、トレースチェーンにはトレースチェーンの長さを調整するためにダミーネットトレーサを有する。
【００７９】
選択的に、トレースチェーンの長さがトレースメモリの長さよりさらに小さい場合、トレースチェーンにトレースクロックを入力することはトレースチェーンの長さを調整するために行なわれる。
【００８０】
図１１を参照すると、トレースチェーンを有するデジタルエミュレーション回路を一般的に参照番号１１００で示す。回路１１００は第１クロックドメイン１１１０及び第２クロックドメイン１１６０を含む。第１クロックドメイン１１１０は３個の入力、ＩｎＡ＿Ｃｋ１、ＩｎＢ＿Ｃｋ１及びＩｎＣ＿Ｃｋ、及び３個の出力、ＯｕｔＡ＿Ｃｋ１、ＯｕｔＢ＿Ｃｋ１及びＯｕｔＣ＿Ｃｋ１を含む。
【００８１】
入力はＣｌｏｃｋ１入力トレースチェーン１１１２に接続され、出力はＣｌｏｃｋ１出力トレースチェーン１１１４に接続される。第１トレースチェーンメモリ１１１５は出力チェーン１１１４から出力テストデータ（ＴＤｏ）を受けるための出力トレースチェーン１１１４と接続される。
【００８２】
第１内部トレースチェーン１１１６は第１チェーンメモリ１１１５と接続され、出力チェーン１１１４に入力テストデータＴＤｉを提供する。第２トレースチェーンメモリ１１１７は入力チェーン１１１２に入力テストデータＴＤｉを提供するのための入力トレースチェーン１１１２と接続される。第２内部トレースチェーン１１１８は入力チェーン１１１２と接続され、入力チェーン１１１２から出力テストデータＴＤｏを受ける。第２チェーンメモリ１１１７は第２トレースチェーン１１１８と接続される。
【００８３】
回路１１００はメモリ１１２０及びマクロセル１１４０をさらに含む。メモリ１１２０は入力トレースチェーン１１２１と出力トレースチェーン１１２２との間に接続される。マクロセル１１４０は入力トレースチェーン１１４１と出力トレースチェーン１１４２との間に接続される。出力チェーン１１４２はメモリ１１２０の出力チェーン１１２２に接続され、マクロ出力トレースチェーンメモリ１１４４に接続される。出力チェーン１１２２は順にマクロセル１１４０の出力チェーン１１４２に接続される。マクロセル１１４０の入力チェーン１１４１はマクロ入力トレースチェーンメモリ１１４６に接続される。チェーン１１４６はメモリ１１２０の入力チェーン１１２１に接続される。入力チェーン１１２１は順にマクロセル１１４０の入力チェーン１１４１に接続される。
【００８４】
第２クロックドメイン１１６０は３個の入力、ＩｎＡ＿Ｃｋ２、ＩｎＢ＿Ｃｋ２及びＩｎＣ＿Ｃｋ２、及び３個の出力、ＯｕｔＡ＿Ｃｋ２、ＯｕｔＢ＿Ｃｋ２及びＯｕｔＣ＿Ｃｋ２を含む。入力はＣｌｏｃｋ２入力トレースチェーン１１６２に接続され、出力はＣｌｏｃｋ２出力トレースチェーン１１６４に接続される。第３トレースチェーンメモリ１１６５は出力チェーン１１６４から出力テストデータＴＤｏを受けるために出力トレースチェーン１１６４と接続される。第３内部トレースチェーン１１６６は第３チェーンメモリ１１６５と接続され、出力チェーン１１６４に入力テストデータＴＤｉを提供する。第４ トレースチェーンメモリ１１６７は入力チェーン１１６２に入力テストデータＴＤｉを提供するために入力トレースチェーン１１６２と接続される。第４内部トレースチェーン１１６８は入力チェーン１１６２と接続され、入力チェーン１１６２から出力テストデータＴＤｏを受ける。第４チェーンメモリ１１６７は第４トレースチェーン１１６８と接続される。
【００８５】
ここで、トレースチェーンはトレースチェーンに接続されるクロックドメインによって分割される。さらに、トレースチェーンはすべての入力チェーンまたはすべての出力チェーンのようなトレースチェーンのポート方向によって分割される。トレースチェーンはそれぞれのチェーンの適当な長さを有するいくつかのチェーンに分割される。
【００８６】
もし、トレースチェーンがトレースメモリの長さに合わない場合、トレースチェーンはチェーンメモリの同一な長さを有するためにダミーネットトレーサまたはクロックホールドによって変更される。
【００８７】
図１２を参照すると、機能的に同一であるトレースチェーンを一般的に参照番号１２００で示す。シリアルトレースチェーン１２１０はトレースメモリ内に貯蔵のために直列フォーマットで整列されたデータビートａ［３：０］、ｂ［３：０］とｓ［４：０］を含む。
【００８８】
パラレルトレースチェーン１２２０はチェーン１２３０、１２４０、１２５０、１２６０、及び１２７０を含み、並列フォーマット内に整列されたデータを含む。
【００８９】
ここで、０番目のデータビートのそれぞれはチェーン１２７０に貯蔵される、第１データビートのそれぞれはチェーン１２６０に貯蔵される、第２データビートのそれぞれはチェーン１２５０に貯蔵される。第３データビートのそれぞれはチェーン１２４０に貯蔵され、第４データビートのそれぞれはチェーン１２３０に貯蔵される。第３データビートを通じて０番目よりさらに少ない第４データビートがあるため、チェーン１２３０はダミーデータビートで満たされる。
【００９０】
ストレージユニットのステートデータは圧縮される。すなわち、継続されるクロックサイクルのためのターゲットロジック回路にあるストレージユニットのステートの変化は状態データを、小さなサイズメモリで圧縮する機会を提供する。
【００９１】
ａ［３：０］、ｂ［３：０］、及びｓ［４：０］のようなトレースメモリの部分は次のクロックサイクルにある同一であるストレージユニットのステートを貯蔵するために次の部分と連関がある。トレースデータはまたトレースメモリ内にビートシーケンスによって圧縮される。圧縮アルゴリズムはハフマン（Ｈｕｆｆｍａｎ）、算術圧縮アルゴリズムなどのようなあらゆる種類の圧縮アルゴリズムを含む。
【００９２】
図１３を参照すると、ステートデータ圧縮を有するデジタル回路エミュレーションシステムを一般的に参照番号１３００で示す。システム１３００はソフトウエアまたはハードウエアエミュレータを１３１０と、エミュレータインターフェースブロック１３２０を含む。エミュレータ１３１０はＭ−ｂｉｔマルチプレクサ１３１、及びＭ−ｂｉｔマルチプレクサと接続されるＭ−ｂｉｔトレースチェーンを含む。トレースチェーンの出力はマルチプレクサの第１入力にフィードバックとして提供される。
【００９３】
エミュレータインターフェースブロック１３２０は圧縮された外部メモリ１３２９から修正されたトレースデータ入力を受けるブロック１３２２、ブロック１３２２と接続されたデータ復元器１３２３、データ復元器１３２３とトレースチェーンの出力とが接続されたトレースメモリ１３２４、マルチプレクサ１３１２の第２入力と接続されたディマルチプレクサ１３２６の第１出力と、データ圧縮器１３２７と接続されたディマルチプレクサ１３２６の第２出力と共にトレースメモリ１３２４と接続されたＭ−ｂｉｔディマルチプレクサ１３２６、及び圧縮された外部メモリ１３２９にトレースデータを提供するためにデータ圧縮器１３２７と接続されたブロック１３２８を含む。
【００９４】
動作の間に、ターゲットロジック回路にあるストレージユニットの抽出されたステートはトレースメモリまたは外部メモリに圧縮され貯蔵される。データ圧縮器及び復元器はトレースメモリの両端に位置する。
【００９５】
例示的な本発明はロールバックエミュレーションを含む。
【００９６】
もし、特定の過去時間の過去ステートでシミュレーションの現在ステートに対するシミュレーション／エミュレーションとロールバックを止めることを所望すれば、エミュレータは必ずターゲットロジック回路の必須なステートを貯蔵しなければならない。
【００９７】
もし、トップレベルのすべての入力ポートのすべてのステートと、メモリまたはマクロモジュールのすべての出力ポートのすべてのステートとがすべての時間サイクルで貯蔵されれば、システムはどんな特定の過去サイクルでターゲットロジックのステートでも貯蔵することができる。
【００９８】
例えば、すべてのストレージユニットのステートのすべてが各クロックサイクルごとに貯蔵される場合、システムはストレージユニットの過去ステートを有するトレースメモリから特定のクロックサイクルにターゲットロジックのステートを再貯蔵する。
【００９９】
一方、すべてのストレージユニットのすべてのステートはすべてのクロックサイクルに貯蔵されず、固定された時間の間隔で貯蔵される。システムは過去時間サイクルのテストベンチの再実行のためのトップレベル入力ポートに過去の入力値をロールバックするためにステート変化の時間でトップレベルのすべての入力ポートのすべてのステートとメモリとマクロモジュールの出力ポートを貯蔵しなければならない。その後、ロールバックは所望するリターン時間に一番近くアクセスすることができる。
【０１００】
もし、過去クロックサイクルのテストベンチの再実行のためのトップレベル入力ポートに過去の入力値をロールバックすれば、トレースチェーンはトップレベルの入力ポートを設定し、このチェーンはターゲットロジック回路のすべてのチェーンのうちにマージ（ｍｅｒｇｅ）される。
【０１０１】
ターゲットロジック回路にあるストレージユニットのステートは動作クロックに関する情報を含む。また、エミュレータからストレージユニットの抽出されたステートはＰＣＩバスを介してコンピュータでまたはシミュレーション及び／または分析のためのあらゆる種類のバスインターフェースによって伝送される。
【０１０２】
さらに、ストレージユニットの貯蔵されたステートは使用者によって変えることができ、ストレージユニットの変更されたステートと共にターゲットロジック回路をテストするためにアップデートされる。
【０１０３】
例示的なテストの手続きにおいて、ストレージユニットステートの抽出のためのシステム性能は分析される。テストはぺンティアム４２.６ＧＨｚメーンＣＰＵ、５１２ＭＢメーンメモリ、ＰＣＩバスを用いたエミュレータに対するインターフェース（Ｖｅｒｓｉｏｎ２.０、３２ｂｉｔ／３３ＭＨｚ）、エミュレータでターゲットロジックの動作クロック(ＰＣＩ伝送クロック)、２.５Ｍゲートカウント（純粋なロジック＝１Ｍ）、３２０００フリップフロップのそれぞれはエミュレータに入力データの伝送率を有し、エミュレータはデータの圧縮なしにＰＣＩバスバーストモードと、ＡＸIバスデータ伝送（リアルドンザックスピードまたはエミュレータ)で構成され、トレースチェーンの数は５０、トレースチェーンの長さは６４０（３２，０００/５０）、（ＰＣＩバスはバーストモードにおいてすべてのクロックサイクルに３２−ｂｉｔ内のデータを伝送することができると仮定すれば）３２−ｂｉｔのデータバスの幅、３２，０００ビートのトータルトレースデータ、必須なサイクルの最小値は１，０００サイクル（３２，０００／３２）、６６．７％のバス利用率、リアル必須なサイクルの数は１，５００サイクル（１，０００Ｘ１００／６６．７））、そしてぺンティアム４コンピュータの３０ｃｐｓのソフトエミュレーションのスピードが用いられる。
【０１０４】
第１テストケースからステートを抽出するための性能は、エミュレータからコンピュータまですべてのストレージユニットの伝送を測定することによって分かる。ロールバックまたはＷｈａｔ ｉｆ ａｎａｌｙｓｉｓはテスト時間の間に考慮する必要はない。Ｗｈａｔ ｉｆ ａｎａｌｙｓｉｓとは設計回路の貯蔵体またはネットの状態値を外部で修正して、修正された状態値を該当の貯蔵体のストレージトレースまたは該当のネットのネットトレースにアップデートさせることを意味する。ステートの抽出動作とステート伝送動作との間は、オーバーラップしないように実現される。１段階にクロックサイクルの総計は２１４０サイクル（１個の正常クロック（３３ＭＨｚ）＋６４０シフトクロック（３３Ｍｈｚ）＋５時間の索引情報ヘッダクロック+１，５００伝送クロック（３３Ｍｈｚ））である。
【０１０５】
もし、ＰＣＩバスが３３ＭＨｚで３２ｂｉｔである場合、エミュレーションの速度は１５．２ｋ ｃｐｓ（３３Ｍ ｃｙｃｌｅ／２１４０ｃｙｃｌｅ ＊ ２）である。ＰＣＩバスが３３ＭＨｚで６４ｂｉｔである場合、エミュレーションの速度は３０．４ｋ ｃｐｓ（３３M ｃｙｃｌｅ／２１４０ｃｙｃｌｅ＊２）である。もし、ＰＣＩバスが６６ＭＨｚで６４ｂｉｔである場合、エミュレーションの速度は６０．８ｋ ｃｐｓ（６６Ｍｃｙｃｌｅ／２１４０ｃｙｃｌｅ＊２）である。
【０１０６】
第２テストケースからステートを抽出するための性能はエミュレータからコンピュータまでストレージユニット（３２０ｂｉｔｓ）の部分の伝送を含んだ。ロールバックまたはＷｈａｔ ｉｆ ａｎａｌｙｓｉｓはテスト時間の間に考慮する必要はない。
【０１０７】
１段階にクロックサイクルの総計は３４０ｃｙｃｌｅ（１個の正常クロック（３３ＭＨｚ）+３２０シフトクロック（３３ＭＨｚ）＋５個のクロック情報ヘッダクロック+１５クロック（３３ＭＨｚ））である。ＰＣＩバスが３３ＭＨｚに３２ｂｉｔである場合、エミュレーションの速度は９７ｋ ｃｐｓ（３３Ｍ ｃｙｃｌｅ／３４０ｃｙｃｌｅ）である。ＰＣＩバスが３３ＭＨｚで、６４ｂｉｔである場合、エミュレーションの速度は１９４ｋ ｃｐｓ（３３Ｍ ｃｙｃｌｅ／３４０ｃｙｃｌｅ＊２）である。ＰＣＩバスが６６ＭＨｚで６４ｂｉｔである場合、エミュレーションの速度は３８８ｋ ｃｐｓ（６６Ｍ ｃｙｃｌｅ／３４０ｃｙｃｌｅ＊２）である。したがって、本発明によってデジタル回路エミュレーションシステムはソフトウエアシミュレーションの速度と比較されたエミュレーションの速度の著しい増加を提供する。
【０１０８】
ここで開示されたメモリセルまたはマクロセルを含むストレージユニットのステートを早く抽出するためにデバッギングアーキテクチャはハードウエアエミュレータを再構成するために適用される。
【０１０９】
ターゲットロジックの変更はオリジナルターゲットロジックに対する追加的なネットトレーサを追加する。
【０１１０】
例示的なシステムの実施形態はスクラッチから追加的なシミュレーションの要求なしに適切な種類のＷｈａｔ−ｉｆ ｅｌｓｅを提供する。本発明の実施形態を用いれば、リアルタイムでデバッギングを実行することができる。さらに、ターゲットロジック回路のストレージユニットのすべてのステートを貯蔵し、再貯蔵し、修正することはいつでも可能なオプションである。
【０１１１】
本発明の提示は多様な形態ハードウエア、ソフトウエア、ファームウエア、特別な目的のプロセス、またはそれによる組み合わせ回路で実現されることが理解されるであろう。さらに、ソフトウエアは明らかにプログラムストレージデバイスで例示的な応用プログラムで効果的に実現される。応用プログラムは、適当な構造で構成されたマシンによってアップロードされ、実行される。さらに、マシンは１つの以上の中央処理装置（“ＣＰＵ”）、ＲＡＭ（“ラム”）、及び入出力（“入力／出力”）インターフェースのようなハードウエアを有するコンピュータプラットホームで実現される。
【０１１２】
コンピュータプラットホームはまた運営システム（ＯＳ）とマイクロ命令コードとを含む。ここに記述した各種の過程及び機能はマイクロ命令コードの部分またはＣＰＵによって実行される応用プログラムの部分、またはそれによる組み合わせの１つである。さらに、多様な他の周辺装置は追加データストレージユニット単位及び画面装置のようなコンピュータプラットホームに接続される。システムコンポーネントの間の実際の接続またはプロセス機能ブロックの実施形態はプログラムされた方法によって異なる。
【０１１３】
前記の実施形態を図面と共に説明したが、これは本発明をその正確な実施形態に制限するものと理解すべきではない。そして、多様な他の変化と修正は、本発明の範囲または思想から出発しない適切な技術にある平凡な技術による影響を受けない。そのようなすべての変化及び修正は添付の請求項の範囲内から出発するように、本発明の範囲内に含まれるように意図される。
【図面の簡単な説明】
【０１１４】
【図１】従来のデジタル回路テストシステムのための概略的な回路図を示す。
【図２】従来の他のデジタル回路テストシステムのための概略的な回路図を示す。
【図３】従来のまた他のデジタル回路テストシステムのための概略的な回路図を示す。
【図４】本発明の例示的な実施形態によってステート抽出を有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。
【図５】本発明の例示的な実施形態によってトグルされるクロックを有するデジタル回路エミュレーションシステムのための概略的なタイミング図を示す。
【図６】本発明の例示的な実施形態に係るステートを再貯蔵するデジタル回路エミュレーションシステムのための概略的なブロック図を示す。
【図７】本発明の例示的な実施形態に係るトレースチェーンを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。
【図８Ａ】本発明の例示的な実施形態に係る互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。
【図８Ｂ】本発明の例示的な実施形態に係る互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。
【図９】本発明の例示的な実施形態に係るデジタル回路エミュレーションクロックネットワークのための概略的な回路図を示す。
【図１０】本発明の例示的な実施形態に係るデジタル回路エミュレーションチェーンの長さのための概略的な回路図を示す。
【図１１】本発明の例示的な実施形態に係るデジタル回路エミュレーショントレースチェーンのための概略的な回路図を示す。
【図１２】本発明の例示的な実施形態に係るデジタル回路エミュレーションステートデータ圧縮のための概略的なデータ図を示す。
【図１３】本発明の例示的な実施形態に係るステートデータ圧縮を有するデジタル回路エミュレーションシステムのための概略的なブロック図を示す。
【図１】
2007305126.tif 000003
【図２】
2007305126.tif 000004
【図３】
2007305126.tif 000005
【図４】
2007305126.tif 000006
【図５】
2007305126.tif 000007
【図６】
2007305126.tif 000008
【図７】
2007305126.tif 000009
【図８Ａ】
2007305126.tif 000010
【図８Ｂ】
2007305126.tif 000011
【図９】
2007305126.tif 000012
【図１０】
2007305126.tif 000013
【図１１】
2007305126.tif 000014
【図１２】
2007305126.tif 000015
【図１３】
2007305126.tif 000016