JP5043500B2 - 状態回復を有する回路エミュレーション - Google Patents

状態回復を有する回路エミュレーション Download PDF

Info

Publication number
JP5043500B2
JP5043500B2 JP2007123627A JP2007123627A JP5043500B2 JP 5043500 B2 JP5043500 B2 JP 5043500B2 JP 2007123627 A JP2007123627 A JP 2007123627A JP 2007123627 A JP2007123627 A JP 2007123627A JP 5043500 B2 JP5043500 B2 JP 5043500B2
Authority
JP
Japan
Prior art keywords
trace
storage units
chain
circuit
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007123627A
Other languages
English (en)
Other versions
JP2007305126A (ja
Inventor
致 鎬 車
賢 旭 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020060043080A external-priority patent/KR101282963B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2007305126A publication Critical patent/JP2007305126A/ja
Application granted granted Critical
Publication of JP5043500B2 publication Critical patent/JP5043500B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はハードウエアの開発ツールに係り、より具体的には、デジタル回路のテスティングとエミュレーションシステムとに関する。
従来のシミュレーションシステムのシミュレーション時間は回路の大きさが増加するに従って一般的に、急激に増加する。もし、機能検証の間にエラーがあれば、シミュレーションの開始からエラー発生の以後まで追加的なシミュレーションを必要とする。
エラーの位置は典型的にトップレベルでプライマリポートからバックワード方向に検索することによって検出することができる。もし、ターゲットデジタル回路内のすべてのストレージユニットの状態が分かれば、時間と空間の単位で分離した分散シミュレーションを実行することができる。ストレージユニットの状態を速く貯蔵し、再貯蔵し、変化させることは、サイクルベース分散シミュレーション(DS−CBS)において重要である。
例えば、図1に示したように、従来のデジタル回路テストシステムを参照番号100で示す。システム100はオリジナルロジック110及び追加ロジック120を含む。ここで、オリジナルロジック110は第1フリップフロップ 112、第1フリップフロップと接続された組み合わせロジック114、及び組み合わせロジック114と接続されたフリップフロップ116を含む。追加ロジック120は制御ロジック122、制御ロジック122及び第1フリップフロップ112と接続されたマルチプレクサ124、マルチプレクサ124と接続された第3フリップフロップ126、及び第3フリップフロップ126と接続されたメモリ128を含む。
従来のデジタル回路テストシステム100において、追加ロジック120はストレージユニットのステートを貯蔵するために利用される。追加的な制御ロジック、フリップフロップ及びメモリはオリジナルフリップフロップ及びネットのステートをモニタするために利用される。例えば、追加的なフリップフロップF3または126はオリジナルフリップフロップF1または112のステートを貯蔵するために割り当てられる。正常なクロック、Nclk及びサンプリングクロック、Dclkが提供される。オリジナルロジックのストレージユニットのステートはサンプリングされ、固定された容量のエンベデッドメモリ128に貯蔵され、メモリにあるデータはジョイントテストアクショングループ(Joint Test Action Group;JTAG)インターフェースに出力される。
一方、エンベデッドメモリ128の容量は大きさによって固定された限界を有する。NclkとDclkは常に動作しているため、リアルタイムにあるオリジナルロジックをモニタすることは不可能である。メモリは運営するロジックの以前ステートを出力する。さらに、フィードバックの経路はオリジナルロジックに貯蔵されたステートを再貯蔵するためには提供されない。
図2を参照すると、他の従来のデジタル回路テストシステムを参照番号200で一般的に示す。システム200はオリジナルロジック210及び追加ロジック230を含む。
オリジナルロジックは第1フリップフロップ212、第1フリップフロップ212と接続されたインバータ214、インバータ214と接続された第1NANDゲート216、第1NANDゲート216と接続された第2NANDゲート218、第2NANDゲート218と接続された第2フリップフロップ220、第2フリップフロップ220と接続された第3NANDゲート222、及び第3NANDゲート222と接続された第3フリップフロップ224を含む。
追加ロジック230は第1フリップフロップ212と接続された第1マルチプレクサ232、第1マルチプレクサ232と接続された第4フリップフロップ234、第2フリップフロップ220、第4フリップフロップ234、及び第5フリップフロップ238と接続された第2マルチプレクサ236、及び第5フリップフロップ238と接続された第3のマルチプレクサ240を含む。
従来のシステム200にはエンベデッドメモリがない。しかし、オリジナルフリップフロップ及びネットのステートをモニタするための追加的な制御ロジック及びフリップフロップがある。
システム200はオリジナルロジックをモニタするために、追加ロジックのキャプチャされたステートを貯蔵するためのレジスタシフティングを用いる。すなわち、追加ロジックはオリジナルロジックをモニタするかまたはテストするために利用される。しかし、システム200はまたオリジナルロジックにキャプチャされたステートを再貯蔵するためのフィードバックの経路がない。
一方、図3を参照すると、従来のデジタル回路テストシステムを参照番号300で一般的に示す。ここで、第1モデル310はフリップフロップ 314、316(図示せず)、318と接続された組み合わせ回路312を含む。第2モデル340はフリップフロップ314、316、318、及びスキャン回路350と接続された組み合わせ回路312を含む。
スキャン回路350は、スキャンイネーブルターミナル368、スキャンインターミナル352、スキャンイネーブルターミナル352と接続された第1マルチプレクサ354、組み合わせ回路312、及びスキャンインターミナル352、第1マルチプレクサ354と接続された第1フリップフロップ314と、第2マルチプレクサ358、スキャンイネーブルターミナル352と接続された第2マルチプレクサ358、組み合わせ回路312、及び第1フリップフロップ、第2マルチプレクサと接続された第2フリップフロップ316と、スキャンイネーブルターミナル352と接続された第3マルチプレクサ362、組み合わせ回路312、及び第2フリップフロップ316、第3マルチプレクサ362と接続された第3フリップフロップ318、及び第3フリップフロップ318と接続されたスキャンアウトターミナル366を含む。
スキャンチェーンを含むシステムは単にオリジナルロジックをテストするために用いる。リアルスキャンフリップフロップはスキャンチェーンでオリジナルロジックのステートをキャプチャし、シフトするために利用される。新しいテストベンチデータはキャプチャされたデータのシリアル出力の間に連続的に入力される。
さらに、キャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するためのフィードバックの経路はない。
したがって、多様な従来のシステムには既存のフリップフロップを測定するための追加的なハードウエアフリップフロップが必要であり、リアルタイムでモニタすることができず、フィードバックループがなく、そして/またテストのためというよりエミュレーションのために適用される。本発明はこのような問題を解決する。
デジタル回路エミュレーションシステムのためのシステム及び方法は従来技術の短所及び欠点を提示する。
ステート抽出を有するデジタル回路エミュレーションシステムのための例示的なシステムは連続的に状態値を受け、それらのオリジナルストレージユニットの位置にチェーンを通じてフィードバックをするための少なくても1つのトレースチェーンと接続された少なくとも1つのトレースチェーン及びトレースメモリを含む。
ステート抽出を有するデジタル回路エミュレーションシステムのための例示的な方法は、回路をモデリングし、モデルに少なくとも1つのストレージユニットを提供し、モデルと共に回路をエミュレーションし、エミュレーションの間の少なくとも1つのストレージユニットのステートを抽出し、抽出されたステートを貯蔵し、かつフィードバックループを通じて貯蔵されたステートを再貯蔵する。
本発明を添付の図面を参照して例示的な実施形態に伴う技術によって詳細に説明する。
本発明のシステムは貯蔵し、再貯蔵し、ターゲットデジタル回路にあるストレージユニットの全てのためのステートを変えるトレースチェーンを用いる速いデバッギングをする効果がある。
もし、全てのストレージステートが全てのクロックサイクルに貯蔵される場合、データはモニタシミュレーション、及び/また分析のような業務のために速く再使用されることができる。フィードバックの経路は外部インターフェースにキャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するために提供する効果がある。
独立セグメントは多数の独立的な回路が同時にプロセスされるように、同時にシミュレーションされる。ストレージユニットによってクローズされた独立セグメントは“空間独立”がある。さらに、シミュレーションは以前のシミュレーションの間にデジタル回路で貯蔵されたデータに基づいた何らかの特定の時間から始めることができる。このような特性は“時間手順から独立”する効果がある。
本発明の例示的なハードウエアエミュレーションシステムは何らかの特定のシミュレーション時間の間にターゲットデジタル回路にあるストレージユニットのステートを貯蔵し、再貯蔵して変えるデバッギングとプロセッシングシステムを含むことを提案する。望ましい実施形態は、貯蔵し、再貯蔵し、ターゲットデジタル回路にあるストレージユニットの全てのためのステートを変えるトレースチェーンを用いる速いデバギングシステムを提供する。
もし、全てのストレージステートが全てのクロックサイクルに貯蔵される場合、データはモニタシミュレーション、及び/また分析のような業務のためにす速く再使用することができる。フィードバックの経路は外部インターフェースにキャプチャされたデータのシリアル出力の間にオリジナルロジックにキャプチャされたステートを再貯蔵するために提供される。
DS−CBS( Distributed Simultaneous−Cycle Based Simulation )はオリジナルロジックにあるストレージユニットのステートを貯蔵し、再貯蔵して作られる。デジタル回路はストレージユニットによってクローズされた独立セグメントに分割される。
ここで、独立セグメントは多数の独立的な回路が同時にプロセスされるように、同時にシミュレーションされる。ストレージユニットによってクローズされた独立セグメントは“空間独立”がある。さらに、シミュレーションは以前のシミュレーションの間にデジタル回路で貯蔵されたデータに基づいて何らかの特定の時間から始まることができる。このような特性は“時間手順から独立”と言う。
ストレージステートはプリレイアウト(Pre−layout)の間またはポストレイアウト(Post−layout)シミュレーションの間にRTLまたはゲートレイアウトですべてのクロックサイクルの間に貯蔵される。同様に、ストレージステートはシミュレーション時間を節約するためにプリレイアウト及び/またはポストレイアウトシミュレーションの間にすべてのクロックサイクルを利用する。本発明においてはDS−CBSシステムのための基本的なロジックモデルを提供する。
ここに用いられた“プリレイアウトシミュレーション”はディレ情報を回路要素(例えば、フリップフロップ、ゲート、トランジスタ)及びネットに適用される前のゼロディレーシミュレーションである。プリレイアウトシミュレーションはディレ情報なしにRTL及びゲートシミュレーションを実行する。ポストレイアウトシミュレーションは回路要素(例えば、フリップフロップ、ゲート、トランジスタ)及びネットに対するディレ情報を利用したディレーシミュレーションである。“クロックドメイン”は同一なクロックに接続されるクロックネットのグループを意味する。“ストレージトレーサ”はフリップフロップ、ラッチのようなリアルストレージエレメントを利用する。“ネットトレーサ”は擬似(pseudo)ストレージエレメントを利用し、すべてのクロックサイクルで効率的なクロックステートを作るクロックコントロールネットとアドレスでアクセスすることができるメモリの入力と出力内にストレージエレメントを挿入することによって完了する。“クロックトレーサ”はすべてのクロックサイクルにクロックネットのステートを貯蔵するために擬似ストレージエレメントを用いる。
“ストレージユニット”はフリップフロップラッチのようなクロックに同期されるリアルストレージエレメントを含む。“メモリセル”または“マクロセル”には各クロックサイクルに入力及び/または出力ステートを貯蔵するためにそれぞれの入力及び/または出力ポートにあるフリップフロップのような擬似ストレージエレメントを有する。“ネット/クロックトレーサ”はクロックサイクルにどんな所望するネットとクロックノードをモニタするかまたは貯蔵するためにフリップフロップのような擬似ストレージエレメントを含む。
機能的の同一回路及びストレージユニットの概念は本発明において用いられる。一般的にすべてのデジタル回路は順次回路及び組み合わせ回路で構成される。各デジタル回路は一般的にストレージユニットの間にストレージユニット及び組み合わせ単位を有したオリジナル回路を作る機能的に同一である回路を有する。
本発明の実施形態は各クロックサイクルに“ストレージユニット”の概念を利用することによってターゲットデジタル回路のステートの全てを貯蔵する。
本発明の実施形態と異なる実施形態において、すべてのクロックサイクルにすべてのステートを貯蔵し、ターゲットデジタル回路内のストレージユニットの貯蔵されたデータを再使用することによって、特別なシミュレーションの時間にすべてのステートを再貯蔵する多様な種類のデジタル回路を適用する。
したがって、例示的な実施形態はゼロディレーシミュレーション及び/またはハードウエアエミュレータ(すなわち、FPGA(Field Programmable Gate−Array))はハードウエアエミュレーションのためのストレージユニットのステートをす速く生成することができる。
ターゲットデジタル回路にあるストレージユニットのステートの全てが有効である場合に、デジタル回路のステートは始めから実行される追加的なシミュレーションなしに任意のあらかじめ決まったサイクルに再貯蔵することができる。ターゲットデジタル回路にあるストレージユニットの貯蔵されたステートはオリジナルデジタル回路にだけでなく、他の環境またはデザインライブラリにおいて、合成された機能的に同一であるネットリストに適用することができる。なぜなら、2つの互いに異なるネットリストの間のストレージユニットは組み合わせ回路が合成の後に互いに異なっても、同一にマッピングされるためである。
さらに、速いシミュレーションすなわち、機能的な検証はデジタル回路デザインの間に2個の機能的に同一であるネットリストの間にストレージユニットの予想したステート及びストレージユニットの出力されたステートにしたがって実行される。
図4に示したように、本発明の例示的な実施形態によってステート抽出を有するデジタル回路エミュレーションシステムを一般的に参照番号400で示す。オリジナル回路410はノーマルデータイン(NDi:Normal Data In)ターミナル412を含む。インバータ414はターミナル412と接続される。第1フリップフロップ416はインバータ414と、ノーマルクロックインプット(NCk:Normal clock input)ターミナル430と接続される。インバータ418はフリップフロップ416と接続され、NANDゲート420はインバータ418と接続される。インバータ422はNANDゲート420と接続される。第2フリップフロップ424はインバータ422と接続され、NCkターミナル430と接続される。インバータ426は第2フリップフロップ424と接続され、 NDo(Normal Data out)ターミナルはインバータ426と接続される。
ストレージトレーサST回路440はマルチプレクサ442、及びマルチプレクサ442の出力と接続された入力を有するフリップフロップ444を含む。ストレージトレーサ回路440は4個の信号入力及び1個の信号出力を有する。ストレージトレーサの概略図446はストレージトレーサ回路440と機能的に同一である。
ネットトレーサNT回路450はマルチプレクサ452、及びマルチプレクサ452の出力と接続された入力を有するフリップフロップ454を含む。さらに、ネットトレーサの第1入力は出力と接続される。ネットトレーサ回路450は4個の信号入力及び2個の信号出力がある。ネットトレーサの概略図456はネットトレーサ回路450と機能的に同一である。
DS−CBSモデル460はノーマルデータインNDiターミナル461、テストデータインTDiターミナル462、ノーマルクロックNCkターミナル463、テストクロックTCkターミナル464、及びテストイネーブルTenターミナル465を含む。インバータ466はNDiターミナル461と接続される。マルチプレクサ468はインバータ466と接続され、フリップフロップ468のデータ入力はマルチプレクサ467の出力と接続される。
マルチプレクサ468のクロック入力はTenターミナルと接続される。また他のマルチプレクサ469はNCkとTCkターミナルに接続される。フリップフロップ468のクロック入力はマルチプレクサ469と接続される。フリップフロップ468の出力はインバータ470と接続される。マルチプレクサ471の第1入力はインバータ470と接続され、第2入力はフリップフロップ468の出力と接続される。マルチプレクサ471はTEnターミナルと接続されたクロック入力を有する。フリップフロップ472にはマルチプレクサ471が接続され、マルチプレクサ469の出力と接続されるクロック入力がある。
NANDゲート473はインバータ470の出力と接続される。インバータ474はNANDゲート473と接続され、マルチプレクサ475の第1入力はインバータ474の出力と接続される。マルチプレクサ475の第2入力はフリップフロップ472の出力と接続される。マルチプレクサ475はTenターミナルと接続されたクロック入力を有する。フリップフロップ476にはマルチプレクサ475が接続され、マルチプレクサ469の出力と接続されるクロック入力がある。インバータ477はフリップフロップ476の出力と接続される。ノーマルデータアウトNDoターミナル478はインバータ477の出力と接続され、テストデータアウトTDoターミナル479はフリップフロップ476の出力と接続される。マルチプレクサ467の入力とフリップフロップ468の出力との間の回路は第1ストレージトレーサを構成する。インバータ470の出力とNANDゲート473の入力との間の回路はネットトレーサを構成する。マルチプレクサ475の入力とフリップフロップ476の出力との間の回路は第2ストレージトレーサを構成する。
トレースチェーン回路480はDS−CBSモデル460のトレースチェーンを示し、テストデータインTDiターミナル482、TDiターミナルと接続された第1ストレージトレーサST484、第1ST484と接続されたネットトレーサNT486、第2ST488と接続されたテストデータアウトTDoターミナル489を含む。トレースチェーンTCの概略図490はトレースチェーン回路480と機能的に同一である。
したがって、ストレージユニットのステートを抽出するために、ネットトレーサはノード(例えば、ネット1はインバータ470の出力とNANDゲート473の入力との間のノード)またはDS−CBSシミュレーションの間のすべてのクロックサイクルでマクロセルのバウンダリのステートをモニタし、貯蔵するためにオリジナルネットリストに挿入される。
図5を参照すると、トレースチェーン及びこれと対応するタイミング図が一般的に参照番号500で示される。トレースチェーン510はノーマルデータNDataのための入力ターミナル512、テストデータTData514、テストイネーブルTen516、ノーマルクロックNClk518、及びテストクロックTClk520を含む。マルチプレクサ522はNClkとTClkターミナルと接続される。第1トレーサエレメント524はマルチプレクサ522の出力と、NDataとTDataターミナルと、Tenターミナルと接続される。組み合わせロジック回路526は第1トレーサエレメント524の出力と接続される。第2トレーサエレメント528は組み合わせ回路526の出力、第1トレーサエレメント524の出力、マルチプレクサ522の出力及びTenターミナルと接続される。中間トレーサエレメントは簡潔のために省略する。最後のトレーサエレメント530はエレメント528のように以前のトレーサエレメントと接続される。最後の組み合わせロジック回路532は最後のトレーサエレメント530の出力と接続される。最後のマルチプレクサ534は最後の組み合わせロジック回路532及び最後のトレーサエレメント530と接続され、そしてTenターミナルと接続されたクロックの入力を有する。出力ターミナル536は最後のマルチプレクサ534と接続される。したがって、マルチプレクサ522はリアルタイムにあるターゲットロジックのストレージユニットのステートをモニタし、貯蔵する2個のクロック信号、テストクロックTClk及び正常なクロックNClkの間でトグル(toggle)される。
図6を参照すると、ステートを再貯蔵するデジタル回路エミュレーションシステムを一般的に参照番号600で示す。システム600はソフトウエアまたはハードウエアエミュレータ610及びエミュレータインターフェースブロック620を含む。エミュレータ610はM−bitマルチプレクサと接続されるM−bitマルチプレクサ612、及びM−bitトレースチェーンを含む。トレースチェーンの出力はマルチプレクサの第1入力にフィードバックされる。
エミュレータインターフェースブロック620は外部ソースから修正された入力を受けるためのブロック622、ブロック622及びトレースチェーン614の出力と接続されたトレースメモリ624とマルチプレクサ612の第2入力と接続されたディマルチプレクサ626の第1出力と共に、トレースメモリ624と接続されたM−bitディマルチプレクサ626、及び外部インターフェースにトレースデータ出力を提供するためのブロック628と接続されたディマルチプレクサ626の第2出力を含む。
したがって、システム600は(a)経路1を介してMトレースチェーンからすべてのトレースサイクルの間にMトレースチェーンを構成するストレージユニットのM−bitステートを抽出し、(b)経路2を介してMトレースチェーン(Nサイクル)の抽出の間に、同一なトレースクロックと同期されるトレースチェーンのM−bit入力がフィードバックされるトレースチェーンのM−bit出力からM−bitデータを提供され、(c)経路3を介してMトレースチェーン(Nサイクル)の抽出の間に、MxNトレースメモリ(同一であるトレースクロックと同期される)にトレースチェーンのM−bit出力から M−bit出力データを貯蔵し、(d)経路5を介して外部インターフェースに経路4を介してM−bit出力データを提供するかまたは経路7を介してターゲットロジックにそれを再貯蔵し、(e)経路6を介してターゲットロジックにあるストレージユニットのステートを変えるために選択的にトレースメモリにある貯蔵されたデータ変更し、(f)トレースサイクルの終了のとき、次の正常なクロックサイクルのとき、正常動作を継続的に実行することによってストレージユニットのステートを貯蔵し、再貯蔵する。
図7を参照すると、マクロセルのためのトレースチェーンを一般的に参照番号700で示す。オリジナルマクロブロック710はアンノウン(unknown)入力ステート714と共に入力ポートデータイン1datein_1、データイン2datein_2及びデータイン3datein_3を有するオリジナルマクロセル712とアンノウン出力ステート716と共に出力ポートデータアウト1dataout_1、データアウト2dataout_2及びデータアウト3dataout_3を有するオリジナルマクロセル712を含む。
マクロブロック720は、入力ステート714を測定するために入力ポートに接続されたネットトレーサエレメント724と、出力ステート716を測定するために出力ポートに接続されたネットトレーサエレメント726とを有するマクロセル712を含む。マクロブロック730は、入力ステート714を測定するために入力ポートに接続されたネットトレーサエレメント734と、出力ステート716を測定するために出力ポートに接続されたネットトレーサエレメント736を有するマクロセル712を含む。したがって、マクロセルの内部にエレメントまたはメモリセルのすべてのステートを貯蔵する必要はない。入力または出力をサンプリングすることは、マクロセルの適切なステートのすべてを貯蔵するために必要である。これはネットトレーサを有する入力ポートと出力ポートのためのトレースチェーンを作ることによって行われる。各トレースチェーンは同一であるクロックドメインにある他のトレースチェーンに直列に接続される。制御信号Sel_1はネットトレーサエレメントにマルチプレクサの第1入力D0経路を正常動作させる間に決定し、シフトモードの間にマルチプレクサの第2入力D1経路を決定する。
図8Aないし図8Bを参照すると、階層的のレベルが互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムを一般的に参照番号800で示す。トレーサエレメントを有したシステムの概略図は参照番号810によって表わされ、第1クロックドメイン812、及び第2クロックドメイン814を含む。
第1クロックドメイン812は第1マクロブロックの出力をトレースする第1サブチェーン816、第2マクロブロックの入力をトレースする第2サブチェーン818、第2マクロブロックの出力をトレースする第3サブチェーン820を含む。
第1ないし第3サブチェーンは、1個のサブチェーンから次のサブチェーンのトレースデータ入力にトレースデータ出力を接続してたった1つのトレースチェーンで接続される。これは第1ないし第3サブチェーンがすべての第1クロック(Clock1)を用いる同一であるクロックドメインであるため、可能である。
トレースチェーンエレメントを用いてシステムの概略図は参照番号830によって表わされ、第1クロックドメイン832、及び第2クロックドメイン834を含む。
第1クロックドメイン832は第1マクロブロックの出力をトレースする第1トレースチェーン836、第2マクロブロックの入力をトレースする第2トレースチェーン838、第2マクロブロックの出力をトレースする第3トレースチェーン840を含む。
第1ないし第3トレースチェーンエレメントは全部1つに接続されるかまたは1つのトレースチェーンエレメントから次のトレースチェーンエレメントのトレースデータ入力までトレースデータ出力を接続することによってトレースチェーンを結合する。
前記のように、これは第1ないし第3サブチェーンがすべて第1クロック(Clock1)を用いる同一であるクロックドメインであるため、可能である。したがって、各トレースチェーンは他のトレースチェーンに接続されるトレースチェーンが同一であるクロックドメインにある場合、容易に接続される。
図9を参照すると、DS−CBSに用いられるクロックネットワークを一般的に参照番号900で示す。
ゲートクロックネットワーク(gated clock network)910は、それぞれが組み合わせロジック913、914と選択的に直列に接続されたフリップフロップ911、912などのような複数の貯蔵エレメントを含む。フリップフロップ911、912の出力はクロック入力(Clock_A)ターミナル916と共にAND演算され、ANDゲート915の出力は他の貯蔵エレメント917、819に対するゲートクロック信号として用いられる。
DS−CBSのためのゲートクロックネットワークモデル940は第1フリップフロップ941及び第2フリップフロップ942、第2フリップフロップ942と接続される第2組み合わせロジック944、第1組み合わせロジック943と接続される第1ネットトレーサNT945、第2組み合わせロジック944と接続される第1ネットトレーサNT946、クロック入力ターミナル947、及びNT945、NT946、及びクロックターミナル947の出力と接続される入力を有するANDゲート948を含む。
ANDゲート948の出力は他のフリップフロップまたはストレージエレメント(949と950のような)のための、ゲートクロックとして用いられ、クロックネットトレーサ951に対する入力として用いられる。ここに、CCP(Clock Control Point)はANDゲートに対するNT出力のそれぞれと定義される。
クロックドメインは同一であるクロックに接続されたストレージユニットがある地域である。クロックノードはCCP(Clock Control Point)に挿入されたネットトレーサを有するクロックノードのステートをあらかじめ検出するために定義される。
CCPはクロックノードと接続された地域の内部に貯蔵されたストレージユニットのステートと共にクロックソースのステートをあらかじめ決定するために最後のクロックステートを制御するのに用いられる。その後、DS−CBSシミュレーションを実行する。
マルチプレクサクロックネットワーク920は複数のクロック入力ターミナル(Clock_Aターミナル921とClock_Bターミナル922)、ターミナル(921、922)と接続されたデータ入力を有するマルチプレクサ923、及びマルチプレクサ923の入力を活性化する出力の組み合わせロジック925と接続されたストレージユニット924を含む。
マルチプレクサ923の出力は他のストレージエレメント(926、927)のためにマルチプレクサクロック信号として利用される。
DS−CBSのためのマルチプレクサクロックネットワークモデル960は複数のクロック入力ターミナル(Clock_Aターミナル961、Clock_Bターミナル962)、ターミナル(961、962)と接続されるデータ入力を有するマルチプレクサ963、組み合わせ回路965と接続されるストレージユニット964、及びマルチプレクサ963に対する入力を活性化するのに用いられる出力である組み合わせ回路965と接続された挿入されたネットトレーサNTを含む。
マルチプレクサ963の出力は他のストレージエレメント(967、968)のためにマルチプレクサクロック信号として利用される。そしてクロックネットトレーサ969に入力として用いられる。ここで、CCP(Clock Control Point)はマルチプレクサに出力されたNTと定義される。
分割されたクロックネットワーク930はストレージユニット932と接続されたクロック入力ターミナル931、ストレージユニットの出力と接続されるインバータ、及びインバータ933と接続されたストレージユニット932のデータ入力を含む。
さらに、ストレージユニットの出力は他のストレージエレメント(934、935)のために分割されたクロック信号として利用される。
オリジナルクロックソースがClock_1に接続されたTフリップフロップにしたがってストレージユニットの全部のためのリファレンスクロックになることができるため、分割されたクロックネットワークでClock_1のようなネットトレーサを挿入する必要はない。
図10を参照すると、互いに異なる長さを有するトレースチェーンは一般的に参照番号1000で示す。
ミスマッチされた長さを有する2個のオリジナルトレースチェーンを一般的に1010で示す。トレースチェーン1012を有した使用者の定義ロジックはN−2の長さを持った第1トレースチェーン1014、及びNの長さを持った第2トレースチェーン1016を含む。トレースチェーンデータメモリ1018は第1トレースチェーン1014に接続された第1部分または1xNbitメモリ1020と2xNbitメモリ、及び第2トレースチェーン1016に接続された第2部分または1xNbitメモリ1022を含む。
したがって、トレースチェーンの長さがN−2であるトレースチェーン1014のトレースチェーンの長さを合わせるために割り当てられたトレースメモリの長さがNである場合、2つのダミーネットトレーサをトレースチェーン1014に追加する。
オリジナルトレースチェーン1014はトレースデータ入力ターミナル1024及びマルチプレクサ1025によって構成された複数のストレージユニットを含む。2個のネットトレーサ1026はターミナル1024とマルチプレクサ1025との間に挿入される。
回路1030を用いる他の方法において、ネットトレーサは追加する必要がないが、2 クロックサイクルホールドタイムを有する修正されたNの長さのトレースチェーンを提供するためにANDゲート1034のようなターミナル1032上のクロック信号を適用する適切なディレが適用される。
したがって、トレースチェーンは実質的にストレージユニットのステートを貯蔵するトレースメモリと同一な長さを有する。
トレースメモリの長さは同時にシミュレーションされる複数のトレースチェーンのうちのいずれか1つのために、所望する最大の長さで選択される。
トレースチェーンの長さがトレースメモリの長さよりさらに小さい場合、トレースチェーンにはトレースチェーンの長さを調整するためにダミーネットトレーサを有する。
選択的に、トレースチェーンの長さがトレースメモリの長さよりさらに小さい場合、トレースチェーンにトレースクロックを入力することはトレースチェーンの長さを調整するために行なわれる。
図11を参照すると、トレースチェーンを有するデジタルエミュレーション回路を一般的に参照番号1100で示す。回路1100は第1クロックドメイン1110及び第2クロックドメイン1160を含む。第1クロックドメイン1110は3個の入力、InA_Ck1、InB_Ck1及びInC_Ck、及び3個の出力、OutA_Ck1、OutB_Ck1及びOutC_Ck1を含む。
入力はClock1入力トレースチェーン1112に接続され、出力はClock1出力トレースチェーン1114に接続される。第1トレースチェーンメモリ1115は出力チェーン1114から出力テストデータ(TDo)を受けるための出力トレースチェーン1114と接続される。
第1内部トレースチェーン1116は第1チェーンメモリ1115と接続され、出力チェーン1114に入力テストデータTDiを提供する。第2トレースチェーンメモリ1117は入力チェーン1112に入力テストデータTDiを提供するのための入力トレースチェーン1112と接続される。第2内部トレースチェーン1118は入力チェーン1112と接続され、入力チェーン1112から出力テストデータTDoを受ける。第2チェーンメモリ1117は第2トレースチェーン1118と接続される。
回路1100はメモリ1120及びマクロセル1140をさらに含む。メモリ1120は入力トレースチェーン1121と出力トレースチェーン1122との間に接続される。マクロセル1140は入力トレースチェーン1141と出力トレースチェーン1142との間に接続される。出力チェーン1142はメモリ1120の出力チェーン1122に接続され、マクロ出力トレースチェーンメモリ1144に接続される。出力チェーン1122は順にマクロセル1140の出力チェーン1142に接続される。マクロセル1140の入力チェーン1141はマクロ入力トレースチェーンメモリ1146に接続される。チェーン1146はメモリ1120の入力チェーン1121に接続される。入力チェーン1121は順にマクロセル1140の入力チェーン1141に接続される。
第2クロックドメイン1160は3個の入力、InA_Ck2、InB_Ck2及びInC_Ck2、及び3個の出力、OutA_Ck2、OutB_Ck2及びOutC_Ck2を含む。入力はClock2入力トレースチェーン1162に接続され、出力はClock2出力トレースチェーン1164に接続される。第3トレースチェーンメモリ1165は出力チェーン1164から出力テストデータTDoを受けるために出力トレースチェーン1164と接続される。第3内部トレースチェーン1166は第3チェーンメモリ1165と接続され、出力チェーン1164に入力テストデータTDiを提供する。第4 トレースチェーンメモリ1167は入力チェーン1162に入力テストデータTDiを提供するために入力トレースチェーン1162と接続される。第4内部トレースチェーン1168は入力チェーン1162と接続され、入力チェーン1162から出力テストデータTDoを受ける。第4チェーンメモリ1167は第4トレースチェーン1168と接続される。
ここで、トレースチェーンはトレースチェーンに接続されるクロックドメインによって分割される。さらに、トレースチェーンはすべての入力チェーンまたはすべての出力チェーンのようなトレースチェーンのポート方向によって分割される。トレースチェーンはそれぞれのチェーンの適当な長さを有するいくつかのチェーンに分割される。
もし、トレースチェーンがトレースメモリの長さに合わない場合、トレースチェーンはチェーンメモリの同一な長さを有するためにダミーネットトレーサまたはクロックホールドによって変更される。
図12を参照すると、機能的に同一であるトレースチェーンを一般的に参照番号1200で示す。シリアルトレースチェーン1210はトレースメモリ内に貯蔵のために直列フォーマットで整列されたデータビートa[3:0]、b[3:0]とs[4:0]を含む。
パラレルトレースチェーン1220はチェーン1230、1240、1250、1260、及び1270を含み、並列フォーマット内に整列されたデータを含む。
ここで、0番目のデータビートのそれぞれはチェーン1270に貯蔵される、第1データビートのそれぞれはチェーン1260に貯蔵される、第2データビートのそれぞれはチェーン1250に貯蔵される。第3データビートのそれぞれはチェーン1240に貯蔵され、第4データビートのそれぞれはチェーン1230に貯蔵される。第3データビートを通じて0番目よりさらに少ない第4データビートがあるため、チェーン1230はダミーデータビートで満たされる。
ストレージユニットのステートデータは圧縮される。すなわち、継続されるクロックサイクルのためのターゲットロジック回路にあるストレージユニットのステートの変化は状態データを、小さなサイズメモリで圧縮する機会を提供する。
a[3:0]、b[3:0]、及びs[4:0]のようなトレースメモリの部分は次のクロックサイクルにある同一であるストレージユニットのステートを貯蔵するために次の部分と連関がある。トレースデータはまたトレースメモリ内にビートシーケンスによって圧縮される。圧縮アルゴリズムはハフマン(Huffman)、算術圧縮アルゴリズムなどのようなあらゆる種類の圧縮アルゴリズムを含む。
図13を参照すると、ステートデータ圧縮を有するデジタル回路エミュレーションシステムを一般的に参照番号1300で示す。システム1300はソフトウエアまたはハードウエアエミュレータを1310と、エミュレータインターフェースブロック1320を含む。エミュレータ1310はM−bitマルチプレクサ131、及びM−bitマルチプレクサと接続されるM−bitトレースチェーンを含む。トレースチェーンの出力はマルチプレクサの第1入力にフィードバックとして提供される。
エミュレータインターフェースブロック1320は圧縮された外部メモリ1329から修正されたトレースデータ入力を受けるブロック1322、ブロック1322と接続されたデータ復元器1323、データ復元器1323とトレースチェーンの出力とが接続されたトレースメモリ1324、マルチプレクサ1312の第2入力と接続されたディマルチプレクサ1326の第1出力と、データ圧縮器1327と接続されたディマルチプレクサ1326の第2出力と共にトレースメモリ1324と接続されたM−bitディマルチプレクサ1326、及び圧縮された外部メモリ1329にトレースデータを提供するためにデータ圧縮器1327と接続されたブロック1328を含む。
動作の間に、ターゲットロジック回路にあるストレージユニットの抽出されたステートはトレースメモリまたは外部メモリに圧縮され貯蔵される。データ圧縮器及び復元器はトレースメモリの両端に位置する。
例示的な本発明はロールバックエミュレーションを含む。
もし、特定の過去時間の過去ステートでシミュレーションの現在ステートに対するシミュレーション/エミュレーションとロールバックを止めることを所望すれば、エミュレータは必ずターゲットロジック回路の必須なステートを貯蔵しなければならない。
もし、トップレベルのすべての入力ポートのすべてのステートと、メモリまたはマクロモジュールのすべての出力ポートのすべてのステートとがすべての時間サイクルで貯蔵されれば、システムはどんな特定の過去サイクルでターゲットロジックのステートでも貯蔵することができる。
例えば、すべてのストレージユニットのステートのすべてが各クロックサイクルごとに貯蔵される場合、システムはストレージユニットの過去ステートを有するトレースメモリから特定のクロックサイクルにターゲットロジックのステートを再貯蔵する。
一方、すべてのストレージユニットのすべてのステートはすべてのクロックサイクルに貯蔵されず、固定された時間の間隔で貯蔵される。システムは過去時間サイクルのテストベンチの再実行のためのトップレベル入力ポートに過去の入力値をロールバックするためにステート変化の時間でトップレベルのすべての入力ポートのすべてのステートとメモリとマクロモジュールの出力ポートを貯蔵しなければならない。その後、ロールバックは所望するリターン時間に一番近くアクセスすることができる。
もし、過去クロックサイクルのテストベンチの再実行のためのトップレベル入力ポートに過去の入力値をロールバックすれば、トレースチェーンはトップレベルの入力ポートを設定し、このチェーンはターゲットロジック回路のすべてのチェーンのうちにマージ(merge)される。
ターゲットロジック回路にあるストレージユニットのステートは動作クロックに関する情報を含む。また、エミュレータからストレージユニットの抽出されたステートはPCIバスを介してコンピュータでまたはシミュレーション及び/または分析のためのあらゆる種類のバスインターフェースによって伝送される。
さらに、ストレージユニットの貯蔵されたステートは使用者によって変えることができ、ストレージユニットの変更されたステートと共にターゲットロジック回路をテストするためにアップデートされる。
例示的なテストの手続きにおいて、ストレージユニットステートの抽出のためのシステム性能は分析される。テストはぺンティアム42.6GHzメーンCPU、512MBメーンメモリ、PCIバスを用いたエミュレータに対するインターフェース(Version2.0、32bit/33MHz)、エミュレータでターゲットロジックの動作クロック(PCI伝送クロック)、2.5Mゲートカウント(純粋なロジック=1M)、32000フリップフロップのそれぞれはエミュレータに入力データの伝送率を有し、エミュレータはデータの圧縮なしにPCIバスバーストモードと、AXIバスデータ伝送(リアルドンザックスピードまたはエミュレータ)で構成され、トレースチェーンの数は50、トレースチェーンの長さは640(32,000/50)、(PCIバスはバーストモードにおいてすべてのクロックサイクルに32−bit内のデータを伝送することができると仮定すれば)32−bitのデータバスの幅、32,000ビートのトータルトレースデータ、必須なサイクルの最小値は1,000サイクル(32,000/32)、66.7%のバス利用率、リアル必須なサイクルの数は1,500サイクル(1,000X100/66.7))、そしてぺンティアム4コンピュータの30cpsのソフトエミュレーションのスピードが用いられる。
第1テストケースからステートを抽出するための性能は、エミュレータからコンピュータまですべてのストレージユニットの伝送を測定することによって分かる。ロールバックまたはWhat if analysisはテスト時間の間に考慮する必要はない。What if analysisとは設計回路の貯蔵体またはネットの状態値を外部で修正して、修正された状態値を該当の貯蔵体のストレージトレースまたは該当のネットのネットトレースにアップデートさせることを意味する。ステートの抽出動作とステート伝送動作との間は、オーバーラップしないように実現される。1段階にクロックサイクルの総計は2140サイクル(1個の正常クロック(33MHz)+640シフトクロック(33Mhz)+5時間の索引情報ヘッダクロック+1,500伝送クロック(33Mhz))である。
もし、PCIバスが33MHzで32bitである場合、エミュレーションの速度は15.2k cps(33M cycle/2140cycle * 2)である。PCIバスが33MHzで64bitである場合、エミュレーションの速度は30.4k cps(33M cycle/2140cycle*2)である。もし、PCIバスが66MHzで64bitである場合、エミュレーションの速度は60.8k cps(66Mcycle/2140cycle*2)である。
第2テストケースからステートを抽出するための性能はエミュレータからコンピュータまでストレージユニット(320bits)の部分の伝送を含んだ。ロールバックまたはWhat if analysisはテスト時間の間に考慮する必要はない。
1段階にクロックサイクルの総計は340cycle(1個の正常クロック(33MHz)+320シフトクロック(33MHz)+5個のクロック情報ヘッダクロック+15クロック(33MHz))である。PCIバスが33MHzに32bitである場合、エミュレーションの速度は97k cps(33M cycle/340cycle)である。PCIバスが33MHzで、64bitである場合、エミュレーションの速度は194k cps(33M cycle/340cycle*2)である。PCIバスが66MHzで64bitである場合、エミュレーションの速度は388k cps(66M cycle/340cycle*2)である。したがって、本発明によってデジタル回路エミュレーションシステムはソフトウエアシミュレーションの速度と比較されたエミュレーションの速度の著しい増加を提供する。
ここで開示されたメモリセルまたはマクロセルを含むストレージユニットのステートを早く抽出するためにデバッギングアーキテクチャはハードウエアエミュレータを再構成するために適用される。
ターゲットロジックの変更はオリジナルターゲットロジックに対する追加的なネットトレーサを追加する。
例示的なシステムの実施形態はスクラッチから追加的なシミュレーションの要求なしに適切な種類のWhat−if elseを提供する。本発明の実施形態を用いれば、リアルタイムでデバッギングを実行することができる。さらに、ターゲットロジック回路のストレージユニットのすべてのステートを貯蔵し、再貯蔵し、修正することはいつでも可能なオプションである。
本発明の提示は多様な形態ハードウエア、ソフトウエア、ファームウエア、特別な目的のプロセス、またはそれによる組み合わせ回路で実現されることが理解されるであろう。さらに、ソフトウエアは明らかにプログラムストレージデバイスで例示的な応用プログラムで効果的に実現される。応用プログラムは、適当な構造で構成されたマシンによってアップロードされ、実行される。さらに、マシンは1つの以上の中央処理装置(“CPU”)、RAM(“ラム”)、及び入出力(“入力/出力”)インターフェースのようなハードウエアを有するコンピュータプラットホームで実現される。
コンピュータプラットホームはまた運営システム(OS)とマイクロ命令コードとを含む。ここに記述した各種の過程及び機能はマイクロ命令コードの部分またはCPUによって実行される応用プログラムの部分、またはそれによる組み合わせの1つである。さらに、多様な他の周辺装置は追加データストレージユニット単位及び画面装置のようなコンピュータプラットホームに接続される。システムコンポーネントの間の実際の接続またはプロセス機能ブロックの実施形態はプログラムされた方法によって異なる。
前記の実施形態を図面と共に説明したが、これは本発明をその正確な実施形態に制限するものと理解すべきではない。そして、多様な他の変化と修正は、本発明の範囲または思想から出発しない適切な技術にある平凡な技術による影響を受けない。そのようなすべての変化及び修正は添付の請求項の範囲内から出発するように、本発明の範囲内に含まれるように意図される。
従来のデジタル回路テストシステムのための概略的な回路図を示す。 従来の他のデジタル回路テストシステムのための概略的な回路図を示す。 従来のまた他のデジタル回路テストシステムのための概略的な回路図を示す。 本発明の例示的な実施形態によってステート抽出を有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。 本発明の例示的な実施形態によってトグルされるクロックを有するデジタル回路エミュレーションシステムのための概略的なタイミング図を示す。 本発明の例示的な実施形態に係るステートを再貯蔵するデジタル回路エミュレーションシステムのための概略的なブロック図を示す。 本発明の例示的な実施形態に係るトレースチェーンを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。 本発明の例示的な実施形態に係る互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。 本発明の例示的な実施形態に係る互いに異なるクロックドメインを有するデジタル回路エミュレーションシステムのための概略的な回路図を示す。 本発明の例示的な実施形態に係るデジタル回路エミュレーションクロックネットワークのための概略的な回路図を示す。 本発明の例示的な実施形態に係るデジタル回路エミュレーションチェーンの長さのための概略的な回路図を示す。 本発明の例示的な実施形態に係るデジタル回路エミュレーショントレースチェーンのための概略的な回路図を示す。 本発明の例示的な実施形態に係るデジタル回路エミュレーションステートデータ圧縮のための概略的なデータ図を示す。 本発明の例示的な実施形態に係るステートデータ圧縮を有するデジタル回路エミュレーションシステムのための概略的なブロック図を示す。

Claims (33)

  1. 少なくとも1つのストレージユニットを含むモデリングされた回路をエミュレートする方法であって、
    エミュレーティング中、前記少なくとも1つのストレージユニットのステートを抽出し、前記抽出されたステートを貯蔵するトレースメモリを備え、
    前記トレースメモリを含むフィードバックループを介して前記貯蔵されたステートを前記ストレージユニットに再貯蔵することを含むことを特徴とする回路エミュレーティング方法。
  2. 外部データを受信し、
    抽出されたステートの代りにトレースメモリに前記受信した外部データを貯蔵することをさらに含むことを特徴とする請求項1に記載の回路エミュレーティング方法。
  3. 前記モデリングされた回路内に直列に接続された第1の複数のストレージユニットを備え
    エミュレーションクロックが推移する間に、前記第1の複数のストレージユニットのそれぞれのステートを順に抽出し、
    前記抽出されたステートを貯蔵し、
    前記フィードバックループを介して前記貯蔵されたステートを順に再貯蔵することをさらに含むことを特徴とする請求項1に記載の回路エミュレーティング方法。
  4. 複数のマルチプレクサを利用して直列に接続された前記第1の複数のストレージユニットをスイッチングすることをさらに含むことを特徴とする請求項3に記載の回路エミュレーティング方法。
  5. 前記第1の複数のストレージユニットは共通のクロックドメインを共有することを特徴とする請求項3に記載の回路エミュレーティング方法。
  6. 前記第1の複数のストレージユニットは多重のクロックドメインを用いることを特徴とする請求項3に記載の回路エミュレーティング方法。
  7. 前記モデリングされた回路内に直列に接続された第2の複数のストレージユニットを備え
    前記第1の複数のストレージユニットのそれぞれのステートと共に並列に抽出し、前記第2の複数のストレージユニットのそれぞれのステートを順に抽出し、
    前記第2の複数のストレージユニットのそれぞれのステートを貯蔵し、
    前記第1の複数のストレージユニットのそれぞれのステートと共に並列に再貯蔵し、前記フィードバックループを介して前記第2の複数のストレージユニットのそれぞれのステートを順に再貯蔵することをさらに含むことを特徴とする請求項3に記載の回路エミュレーティング方法。
  8. 前記第1の複数のストレージユニットの数は前記第2の複数のストレージユニットの数と同一であることを特徴とする請求項7に記載の回路エミュレーティング方法。
  9. 前記第1の複数のストレージユニットの数が前記第2の複数のストレージユニットの数より少ない場合、前記第2の複数のストレージユニットの数を増加させるために、前記第1の複数のストレージユニットに直列に接続されたトレースバランシングストレージユニットを備えることをさらに含むことを特徴とする請求項7に記載の回路エミュレーティング方法。
  10. 前記第1の複数のストレージユニットの数が前記第2の複数のストレージユニットの数より少ない場合、前記第2の複数のストレージユニットのステートを抽出する間、その数の差を同一にするサイクルのために、前記第1の複数のストレージユニットにクロックを停止することをさらに含むことを特徴とする請求項7に記載の回路エミュレーティング方法。
  11. 記ストレージユニットをモデリングし、
    モデリングしたストレージユニットのステートを抽出し、
    前記抽出されたステートに従って前記モデリングした回路をエミュレーティングすることをさらに含むことを特徴とする請求項1に記載の回路エミュレーティング方法。
  12. 複数のマルチプレクサを備え、トレースチェーンを形成するためにまた他のストレージユニットと直列に接続されたそれぞれのストレージユニットと接続し、
    エミュレーションクロックが推移する間に、前記トレースチェーンで複数のストレージユニットのそれぞれのステートを順に抽出し、
    前記抽出されたステートを貯蔵し、
    前記フィードバックループを介して前記トレースチェーンに前記抽出されたステートを再貯蔵することをさらに含むことを特徴とする請求項1に記載の回路エミュレーティング方法。
  13. 第2の複数のマルチプレクサを備え、第2のトレースチェーンを形成するためにまた他のストレージユニットと直列に接続されたそれぞれのストレージユニットと接続し、
    エミュレーションクロックが推移する間に、前記第2のトレースチェーンで前記複数のストレージユニットのそれぞれのステートを順に抽出し、
    前記抽出されたステートを貯蔵し、
    前記フィードバックループを介して前記第2のトレースチェーンに前記抽出されたステートを再貯蔵することをさらに含むことを特徴とする請求項12に記載の回路エミュレーティング方法。
  14. 互いに異なる長さを有する複数のトレースチェーンを備えることをさらに含むことを特徴とする請求項1に記載の回路エミュレーティング方法。
  15. トレースチェーンの長さを増加させるために少なくとも1つのトレースチェーンにトレースバランシングストレージユニットを追加し、
    他のトレースチェーンのためにさらに少ないステートを読み出すために少なくとも1つのトレースチェーンのクロックを停止し、
    より長いトレースチェーンを形成するために、2つまたはそれ以上の短いトレースチェーンを結合し、
    2つまたはそれ以上のさらに短いトレースチェーンを形成するために1つまたはそれ以上の長いトレースチェーンを分離することのうち、少なくとも1つによってトレースチェーンの長さを調節することをさらに含むことを特徴とする請求項14に記載の回路エミュレーティング方法。
  16. トレースチェーンの数はインターフェースバス上に平行なビットラインの数と同一であることを特徴とする請求項14に記載の回路エミュレーティング方法。
  17. それぞれのエミュレータのクロックが推移するとき、すべてのトレースチェーンを貯蔵し、再貯蔵することを特徴とする請求項14に記載の回路エミュレーティング方法。
  18. 前記複数のストレージユニットのうちの少なくとも1つはその出力ポートのそれぞれの内部にシュードストレージユニットを含むセルであることを特徴とする請求項1に記載の回路エミュレーティング方法。
  19. 前記エミュレーションする段階はディレイを有しないサイクルベースであることを特徴とする請求項1に記載の回路エミュレーティング方法。
  20. 前記複数のストレージユニットはオリジナルと擬似のストレージユニットで構成されることを特徴とする請求項19に記載の回路エミュレーティング方法。
  21. 前記エミュレーションする段階は、ディレイを有するイベントドリヴン(event-driven)であることを特徴とする請求項1に記載の回路エミュレーティング方法。
  22. 前記複数のストレージユニットはオリジナルストレージユニットで構成されることを特徴とする請求項1に記載の回路エミュレーティング方法。
  23. 前記回路はデジタルであることを特徴とする請求項1に記載の回路エミュレーティング方法。
  24. 少なくとも1つのトレースチェーンと、
    オリジナルストレージユニットの位置に前記チェーンを介して順に状態値を受信し、それをフィードバックするための少なくとも1つのトレースチェーンに接続されたトレースメモリを含むことを特徴とするデジタルエミュレーションシステム。
  25. 前記少なくとも1つのトレースチェーンは複数のストレージユニットを含むことを特徴とする請求項24に記載のデジタルエミュレーションシステム。
  26. 前記それぞれの複数のストレージユニットと個別的に接続された複数のマルチプレクサをさらに含むことを特徴とする請求項25に記載のデジタルエミュレーションシステム。
  27. 前記複数のマルチプレクサは少なくとも前記複数のストレージユニットのうちの一部と共に直列に接続されることを特徴とする請求項26に記載のデジタルエミュレーションシステム。
  28. 少なくとも1つのトレースチェーンと前記トレースメモリとの間に接続されたマルチプレクサと、
    マルチプレクサと少なくとも1つのトレースチェーンとの間にダイレクトフィードバックの経路をさらに含むことを特徴とする請求項24に記載のデジタルエミュレーションシステム。
  29. 前記トレースメモリと接続されたデータエンコーダと、
    前記データエンコーダと接続された外部インターフェースと、
    前記外部インターフェースと接続されたデータエンコーダと、
    前記データデコーダと前記トレースメモリとの間に接続されたマルチプレクサとを含み、
    前記少なくとも1つのトレースチェーンは前記マルチプレクサと接続されることを特徴とする請求項24に記載のデジタルエミュレーションシステム。
  30. 前記少なくとも1つのトレースチェーンは少なくとも1つのハードウエアまたはソフトウエアエミュレータで実現されることを特徴とする請求項24に記載のデジタルエミュレーションシステム。
  31. 複数のトレースチェーンのそれぞれは複数のストレージユニットで構成されることを特徴とする請求項24に記載のデジタルエミュレーションシステム。
  32. 前記少なくとも1つのトレースチェーン内の前記ストレージユニットの数は他の複数のトレースチェーンのそれぞれのストレージユニットの数と同一であることを特徴とする請求項31に記載のデジタルエミュレーションシステム。
  33. 前記少なくとも1つのトレースチェーン内のオリジナルとシュードストレージユニットの数は前記他の複数のトレースチェーン内のそれぞれのストレージユニットの数より少なく、
    前記少なくとも1つのトレースチェーンは前記それぞれの他の複数のトレースチェーン内のそれぞれのストレージユニットの数を増加させるためにオリジナルと擬似ストレージユニットと直列に接続されたトレースバランシングストレージユニットの数をさらに含むことを特徴とする請求項31に記載のデジタルエミュレーションシステム。
JP2007123627A 2006-05-12 2007-05-08 状態回復を有する回路エミュレーション Expired - Fee Related JP5043500B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020060043080A KR101282963B1 (ko) 2006-05-12 2006-05-12 에뮬레이션 시스템 및 그 방법
KR10-2006-0043080 2006-05-12
US11/673368 2007-02-09
US11/673,368 US7707021B2 (en) 2006-05-12 2007-02-09 Circuit emulation with state recovery

Publications (2)

Publication Number Publication Date
JP2007305126A JP2007305126A (ja) 2007-11-22
JP5043500B2 true JP5043500B2 (ja) 2012-10-10

Family

ID=38838950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007123627A Expired - Fee Related JP5043500B2 (ja) 2006-05-12 2007-05-08 状態回復を有する回路エミュレーション

Country Status (1)

Country Link
JP (1) JP5043500B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6506010B2 (ja) * 2014-10-30 2019-04-24 株式会社メガチップス 半導体集積回路の消費電力見積もり技術

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574853A (en) * 1994-01-03 1996-11-12 Texas Instruments Incorporated Testing integrated circuit designs on a computer simulation using modified serialized scan patterns
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
JP2002108647A (ja) * 2000-09-29 2002-04-12 Ricoh Co Ltd トレースメモリを内蔵した半導体装置及びプロセッサ開発支援装置

Also Published As

Publication number Publication date
JP2007305126A (ja) 2007-11-22

Similar Documents

Publication Publication Date Title
Bai et al. Self-test methodology for at-speed test of crosstalk in chip interconnects
JP5410414B2 (ja) 回路エミュレーションの入力及び遅延入力のマルチプレクシング
JP2000137061A (ja) システムオンチップにおける埋込コアの試験方法及び構成
US5475624A (en) Test generation by environment emulation
US7904859B2 (en) Method and apparatus for determining a phase relationship between asynchronous clock signals
US7739093B2 (en) Method of visualization in processor based emulation system
JP5432126B2 (ja) 自動回路設計及びシミュレーションに使用するための技術
Mohammadi et al. SCFIT: A FPGA-based fault injection technique for SEU fault model
EP1913410B1 (en) Method and system for debug and test using replicated logic
JP2010531001A (ja) 自動回路設計及びシミュレーションに使用するための技術
US7707021B2 (en) Circuit emulation with state recovery
CN113255267A (zh) 使用现场可编程门阵列fpga重新编程检测仿真中的时序违规
US20120232881A1 (en) Trace Routing Network
JP2000163279A (ja) マイクロプロセサをテストするための回路構成とテスト方法
KR101205325B1 (ko) 시뮬레이션 시스템 및 그 방법
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
KR100812938B1 (ko) 초대규모급 설계 검증을 위한 하드웨어적으로 구현된대규모 디지털 시스템과 시뮬레이션을 이용하는 디버깅장치 및 이를 이용한 디버깅 방법
Keller et al. Efficient testing of hierarchical core-based SOCs
McLaurin et al. The DFT challenges and solutions for the ARM® Cortex™-A15 Microprocessor
JP5043500B2 (ja) 状態回復を有する回路エミュレーション
US20100131910A1 (en) Simulating Scan Tests with Reduced Resources
CN116324439A (zh) 基于高速功能协议的测试和调试
Nourmandi-Pour et al. BIST for network on chip communication infrastructure based on combination of extended IEEE 1149.1 and IEEE 1500 standards
US6973422B1 (en) Method and apparatus for modeling and circuits with asynchronous behavior
Lu et al. Speeding up emulation-based diagnosis techniques for logic cores

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120612

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120712

R150 Certificate of patent or registration of utility model

Ref document number: 5043500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150720

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees