(57)【要約】  データをコンパクト化しピンに割り当てる方法およびシステム。第1の状態データ・サンプルが再構成可能なエミュレーション・リソースから受信される。1組の第1の状態データ・サンプルが第1の／カレント・バッファに格納される。第1の／カレント・バッファが満杯であるかどうか、および1組の第2のサンプルを2つの部分に分割する必要があるかどうかについての判定が下される。1組の第2のサンプルは、第1の／カレント・バッファの残りのストレージスペースによって収容できる程度に第1の／カレント・バッファに格納される。1組の第2のサンプルの残りの部分は第2の／バックアップ・バッファに格納される。バッファ充填速度に関するスケジュールに基づいて、トレースチェーンがトレースピンに割り当てられる。2007524274.tif 000003
2007524274.tif 000002
【特許請求の範囲】
【請求項１】
以下の段階を含む、エミュレーション・システムの状態データをコンパクト化する方法：
第1の状態データ・サンプルを受信する段階；
第1のサンプルをソートする段階；
第1のバッファ内の残りのストレージスペースが存在するかどうかを判定する段階；および
ソート済みの第1のサンプルを格納する段階。
【請求項２】
ソート済みの第1のサンプルを第1のバッファに格納した後、第1のバッファが満杯であるかどうかを判定する段階をさらに含む、請求項1記載の方法。
【請求項３】
ソート済みの第1のサンプルを2つの部分に分割する段階をさらに含む、請求項1記載の方法。
【請求項４】
ソート済みの第1のサンプルを格納する段階が、ソート済みの第1のサンプルの一部を第1のバッファに格納する段階、および、ソート済みの第1のサンプルの残りの部分を第2のバッファに格納する段階を含む、請求項3記載の方法。
【請求項５】
ソート済みの第1のサンプルの一部によって第1のバッファが満杯になる、請求項4記載の方法。
【請求項６】
第2のバッファが第1のバッファの役割を負い、第1のバッファは第2のバッファの役割を負う、請求項5記載の方法。
【請求項７】
第1のバッファのデータを出力ストレージデバイスに吐き出す段階をさらに含む、請求項5記載の方法。
【請求項８】
以下の段階をさらに含む請求項1記載の方法：
第2の状態データ・サンプルを受信する段階；
第2のサンプルをソートする段階；および
ソート済みの第2のサンプルを格納する段階。
【請求項９】
ソート済みの第2のサンプルを格納する段階が、
ソート済みの第1のサンプルを格納した後で、第1のバッファ内に残りのストレージスペースが存在するかどうかを判定する段階、および
ソート済みの第1のサンプルを格納した後で第1のバッファ内に残りのストレージスペースが存在する場合、ソート済みの第2のサンプルの少なくとも一部を第1のバッファに格納する段階を含む、請求項8記載の方法。
【請求項１０】
第1の状態データ・サンプルが、再構成可能なエミュレーション・リソースから受信される、請求項1記載の方法。
【請求項１１】
ソート済みの第1のサンプルを格納する段階が、第1のサンプル全体をカレント・バッファに格納する段階を含む、請求項1記載の方法。
【請求項１２】
ソート済みの第1のサンプルが、関心対象データおよび無視されるデータの両方を含む、請求項1記載の方法。
【請求項１３】
第1のサンプルをソートする段階が、
第1のサンプル内の関心対象データのビットを識別する段階、
残りのストレージスペースが存在する第1のバッファ内のビット位置を識別する段階、および
第1のサンプルの識別された関心対象データのビットを、ソート済みの第1のサンプルのビット位置に対応するようにソートする段階を含み、
第1のバッファ内の識別されたビット位置が、ソート済みの第1のサンプルのビット位置である、請求項1記載の方法。
【請求項１４】
残りのストレージスペースが存在する第1のバッファ内の次のビット位置を識別する段階、および
第1のサンプルの識別された関心対象データの少なくとも第2のビットを、ソート済みの第1のサンプルの次のビット位置に対応するようにソートする段階をさらに含み、
第1のバッファ内の次の識別されたビット位置が、ソート済みの第1のサンプルの次のビット位置である、請求項13記載の方法。
【請求項１５】
第1のバッファ内に残りのストレージスペースは存在していないと判定されたとき、
残りのストレージスペースが存在する第2のバッファ内の第1のビット位置を識別する段階をさらに含み、
残りのストレージスペースが存在する第2のバッファの識別された第1のビット位置は、ソート済みの第1のサンプルの第1のビット位置である、請求項13記載の方法。
【請求項１６】
第1のサンプルに関連する情報を格納する段階をさらに含む、請求項1記載の方法。
【請求項１７】
情報が、第1のサンプルの関心対象データのビット位置を含む、請求項16記載の方法。
【請求項１８】
情報が、第1のサンプルに関連するピンの識別情報を含む、請求項16記載の方法。
【請求項１９】
以下の段階をさらに含む、請求項16記載の方法：
第2の状態データ・サンプルを受信する段階；
第2のサンプルを格納する段階；
第1のサンプルに関連する情報をメモリに格納する段階；および
第2のサンプルに関連する情報をメモリに格納する段階。
【請求項２０】
以下を含む装置：
状態データのサンプルを受信し、状態データのサンプルをソートし、各状態データ・サンプルから関心対象データを選択するように構成された第1の選択論理回路；
第1の選択論理回路に結合され、選択された関心対象データを受信するように構成された第1および第2のバッファ；
第1および第2のバッファに結合され、選択されたバッファのデータを吐き出させるため相互に第1および第2のバッファを選択するように構成された第2の選択論理回路；ならびに
第2の選択論理回路に結合され、選択されたバッファから吐き出されたデータを受信するように構成された出力ストレージデバイス。
【請求項２１】
第1の選択論理が、マルチプレクサを含む、請求項20記載の装置。
【請求項２２】
第2の選択論理回路が、マルチプレクサを含む、請求項20記載の装置。
【請求項２３】
第1の選択論理回路が、第1のバッファが満杯になるときに関心対象データを第2のバッファに送信する、請求項20記載の装置。
【請求項２４】
第1の選択論理回路が、関心対象データ・ソータを含む、請求項20記載の装置。
【請求項２５】
状態データのサンプルに関連する情報を格納するように構成されたメモリをさらに含む、請求項20記載のシステム。
【請求項２６】
情報が、少なくとも状態データ・サンプルの関心対象データのビット位置を含む、請求項25記載のシステム。
【請求項２７】
情報が、各状態データ・サンプルに関連するピンの識別情報を含む、請求項25記載のシステム。
【請求項２８】
出力ストレージ装置が、各状態データ・サンプルに関連する情報を格納するように構成される、請求項20記載のシステム。
【請求項２９】
以下の段階を含む、トレースデータ・チェーンを集積回路のピンに関連付ける方法；
複数のトレースデータ・チェーンの各トレースデータ・チェーンのトレースデータ充填速度を求める段階；および
複数のトレースデータ・チャーンに複数のピンを関連付けて、少なくとも求められたトレースデータ・チェーン充填速度に基づいてトレースデータ・チェーンからデータを転送するスケジュールを決定する段階。
【請求項３０】
エミュレーション・デバッグ・リソースにおいて、以下の段階を含む方法：
複数のトレースデータ・チェーンの充填速度を求める段階；
少なくとも求められた充填速度に基づいて、複数のトレースデータ・チェーンに複数のピンを関連付けるスケジュールを決定する段階；および
求められたスケジュールに従って1組の複数のトレースデータ・チェーンを複数のピンに関連付ける段階。
【請求項３１】
エミュレータを含む集積回路において、以下を含む、装置：
複数のトレースデータ・チェーン；
複数のトレースデータ・チェーンに結合され、1組の複数のトレースデータ・チェーンを選択するトレースピン選択論理回路；
複数のピン；および
トレースピン選択論理回路に結合され、選択された組をピンに関連付けるスケジュールを格納するように構成されたメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明の局面は、概してエミュレーションの分野に関し、特に、デバッグ・リソースと、データを効率的にコンパクト化し、ピンを効率的に利用する方法とに関する。
【背景技術】
【０００２】
発明の背景
エミュレーション・システムは通常、デバッグ機能を組み込まずに、汎用フィールド・プログラマブル・ゲート・アレイ（FPGA)などのプログラム可能な論理回路（PLD）を含むエミュレーション集積回路を用いて形成されていた。このようなエミュレーション・システムに関する設計をエミュレートする場合、設計は、設計の形式的な記述をコンパイルし、設計をサブセットとして区画化し、様々なサブセットをエミュレーション・システムの様々な論理ボードのエミュレーション集積回路の論理素子（LE）にマップし、次いで論理素子を相互接続するように様々な相互接続を構成することによって「実現」される。区画化動作およびマッピング動作は通常、エミュレーション・システムの一部であるかまたはエミュレーション・システムと相補的なワークステーション上で実行され、それに応じて、構成情報が、エミュレーション集積回路を備える論理ボード上にダウンロードされ、次いでエミュレーション集積回路上にダウンロードされる。
【０００３】
フィールド・プログラマブル・デバイス（FPD）などのPLDにおける設計のエミュレート時には、試験刺激が、ワークステーション上で、またはワークステーションのコントロールの下でエミュレーション・システムのサービス・ボード上で生成され、次いで様々な論理ボードに転送され、PLDに入力され、エミュレート中の設計の様々なネットリストに適用される。それに応じて、エミュレート中の設計の関心対象のデータを含んでよい、様々な回路素子の状態データが、適用可能なPLDから読み出され、論理ボードから転送され、ワークステーション上で分析される。
【０００４】
集積回路およびエミュレーション技術が進歩したため、他のエミュレーション・システムは、特にエミュレーション向けに設計されたPLDを用いるようになった。このような特殊なPLDは通常、実質的な量のオンチップ再構成可能論理素子、相互接続、メモリ、およびデバッグ・リソースを含む。技術分野の進歩が続くにつれて、各PLDに実装されるこれらの再構成可能な論理素子、相互接続、メモリ、およびデバッグ・リソースの数が増えている。たとえば、PLDは、PLDに含まれるデバッグ・リソースによって取り込まれたデータを転送する数本のピンを含むことができる。PLDに含まれる再構成可能なエミュレーション・リソースの数が増えるにつれて、PLDによってエミュレートすることのできるユーザ・ネットリストの数も増える。
【０００５】
したがって、PLDに取り込まれPLDから出力されるデータの量が増している。したがって、このデータのすべてをどのように格納し、転送し、かつ／またはその他の方法で取り扱うかが問題になる。メモリのコストは数年前から安くなっているが、それにもかかわらず高価である。さらに、大量のメモリが貴重な面積を占有し、必要な電力が増大している。面積と電力はどちらも、通常、エミュレーション・システムにおける可用性が限られている。さらに、エミュレーション集積回路に含まれるピンは、サイズ面の制約のために、データ全体の取扱いが制限されることがある。したがって、状態データおよびピンを管理する改良された手法が必要である。
【発明の開示】
【０００６】
発明の概要
したがって、様々な状態データ・サンプルからの関心対象データのソートおよび／またはコンパクト化を可能にすることのできるエミュレーション・システムが必要である。本発明の一局面は、状態データのサンプルを受信し、状態データをソートして関心対象データおよび無視されるデータをグループ分けし、かつ／または各サンプルから関心対象データを抽出する第１の選択論理回路を含んでよいエミュレーション・デバッグ・リソースを提供する。エミュレーション・デバッグ・リソースは、抽出された関心対象データを交互に受信し、したがって、一方のバッファが満杯になった後で他方のバッファが抽出された関心対象データを受信するカレント・バッファおよびバックアップ・バッファを含んでよい。カレント・バッファとバックアップ・バッファを交互に選択し、選択されたバッファが満杯になったときに選択されたバッファからデータを吐き出させる第2の選択論理回路をエミュレーション・デバッグ・リソースの一部として設けることができる。さらに、エミュレーション・デバッグ・リソースは、選択されたバッファから吐き出されたデータを受信する出力ストレージデバイスを含んでよい。
【０００７】
本発明の他の局面は、選択されたバッファから吐き出されたデータをエミュレーション集積回路上のピンに割り当てるのを可能にする。第2の選択論理回路から受信できる複数のトレース・チェーンをトレースピン選択論理回路に結合することができる。トレースピン選択論理回路は、メモリに格納されているスケジュールに基づいて、限られた数のピンをトレースチェーンに割り当てることができる。スケジュールは、各トレースチェーンが受信される速度に基づくものであってよい。
【０００８】
本発明の他の局面は、各方法をエミュレーション・デバッグ・リソースおよび／またはエミュレーション集積回路内で実行するのを可能にする。他の局面はエミュレーション・システムを含んでよい。エミュレーション・システムによってはワークステーションおよび／またはエミュレータを含んでよい。
【０００９】
本発明のこれらの特徴および他の特徴は、例示的な態様についての以下の詳細な説明を検討したときに明らかになろう。
【００１０】
本発明についての上記の概要と、例示的な態様についての以下の詳細な説明は、請求された発明に関する制限としてではなく一例として含められている添付の図面と一緒に読んだときにより良く理解されよう。
【００１１】
例示的な態様の詳細な説明
様々な例示的な態様についての以下の説明では、添付の図面を参照する。図面は各態様の一部を形成し、図面には、本発明を実施できる様々な態様が一例として示されている。他の態様を利用することができ、本発明の範囲から逸脱せずに構造および機能上の修正を施せることを理解されたい。
【００１２】
図1を参照すると、エミュレーション・ボード101の例示的な態様は、その機能に関して、オンボード・データ処理リソース110、少なくとも1つのエミュレーション集積回路（IC）120、少なくとも1つのオンボード再構成可能相互接続140、少なくとも1つのオンボード・バス160、および／または少なくとも1つのオンボードトレースメモリ180を含んでよい。これらの構成要素の多くは、図1に示されているようにオンボード・バス160のような他の構成要素を通じて互いに間接的に結合されている。さらに、各構成要素は、図1に示されているように、オンボードトレースメモリ180に直接結合された、オンボード・エミュレーションIC 120のような他の構成要素に直接結合することができる。語「エミュレーション」は、本明細書では広義に使用されており、純粋なハードウェア・エミュレーションだけでなく、ハードウェア・エミュレーションとソフトウェア・エミュレーションの組合せとハードウェア加速および／または同時シミュレーションも含む。
【００１３】
オンボードIC 120は、再構成可能な論理素子（LE）、再構成可能な相互接続、エミュレーション・メモリ、コンテキスト素子または状態素子のような様々なリソースを含んでよい。図1に示されているように、オンボードIC 120は、本発明の少なくとも1つの局面を組み込んだデバッグ・リソース122を含んでいる。さらに、トレースデータを転送するトレースピン専用の組126を含む1組のピン124がオンボードIC 120に含まれている。本発明の様々な態様では、各エミュレーションIC 120は、"Field Programmable Gate Array With Integrated Debugging Facilities"という名称の、Barbierらの米国特許第5,777,489号、および"Reconfigurable Integrated Circuit With Integrated Debugging Facilities For Use In An Emulation System"という名称の、Reblewskiらの米国特許第6,265,894号に記載された改良されたFPGAを組み込んだデバッグ装置のような一体化されたデバッグ装置を含んでよい。これらの特許はそれぞれ、このようなFPGAについてのこれらの特許の説明の参照として本明細書に組み入れられる。
【００１４】
再構成可能な相互接続140は、エミュレーション・システムを形成するのに使用されるそれぞれの異なるエミュレーション・ボード101の様々なエミュレーションIC 120のエミュレーション・リソースの結合を促進する。オンボード・バス160およびトレースメモリ180は、オンボード通信／データ転送と、エミュレート中のIC設計の割り当てられたパーティションの様々なエミュレーション信号の信号状態の収集とを促進する機能を実行する。
【００１５】
詳しく説明するように、デバッグ・リソース122は、エミュレーションIC 120から状態データを受信してコンパクト化し、各ピン124への状態データの割当てをスケジューリングする。オンボード・バス160、オンボードトレースメモリ180、および再構成可能な相互接続140は、当技術分野で既知の広範囲のバス、メモリ、および相互接続を表す。したがって、これらの要素について以下に詳述することはない。状態データには、トレースデータ、関心対象データ、無視されるデータ、およびその他の種類のデータを含めてよい。さらに、関心対象データには、状態データ、状態データのサブセット、およびその他の種類のデータのすべてを含めてよい。
【００１６】
図2に示されているように、エミュレーション・ボード101は、本発明の少なくとも1つの局面の教示を組み込んだエミュレーション・ボード101を複数使用して形成された例示的なエミュレーション・システム200内に含めてよい。エミュレーション・システム200は、相互接続ボード208およびコントロールリソースを介して互いに結合されたいくつかのエミュレーション・ボード101を含んでおり、様々なエミュレーション・ボード101のデータ処理リソース110を使用して、いくつかのエミュレーション機能をコントロールリソースのためにかつコントロールリソースに従って、ローカルにかつ各エミュレーション機能に対応して（すなわち、分散的に）実行することができる。このようなエミュレーション・システムの一例は、2001年10月30日に出願された、"Emulation Components And Systems Including Distributed Routing And Configuration Of Emulation Resources"という名称の、Reblewskiの米国特許第10/003,951号に記載されている。
【００１７】
図3は、本発明の少なくとも1つの態様による、例示的なデバッグ・リソース122をさらに詳しく示すブロック図である。図2に示されているように、デバッグ・リソース122は、複数のトレースチェーン300を含んでよい。この態様における各トレースチェーン300は、図示のように互いに結合された第1の選択論理回路310、第1のバッファ320、第2のバッファ325、第2の選択論理回路330、および出力ストレージデバイス340を含んでいる。
【００１８】
図3に示されている態様では、第1の選択論理回路310は、エミュレーションIC 120に含まれている再構成可能なリソースによってエミュレートされるエミュレーション設計の様々な状態要素から読み出された状態データのサンプルを連続的に受信する。状態データはトレースデータを含んでよく、エミュレーションIC 120に含まれる再構成可能なリソースは、再構成可能な論理リソース（図示せず）を含んでよい。以下にさらに詳しく説明するように、第1の選択論理回路310は（一態様ではコントロールステーションのコントロールの下で）、本発明の少なくとも1つの局面の教示によって、少なくとも、第1のバッファ320または第2のバッファ325が満杯であるかどうかの判定に基づいて、連続的に受信された状態データ・サンプルの各々を第1のバッファ320または第2のバッファ325に送る。連続的に受信された状態データ・サンプルは、ソートし、インデックス付けしてメモリに格納し、かつ／または関心対象データを含むソート済みデータの連続サンプルとしてコンパクト化することができる。
【００１９】
第2の選択論理回路330は、第1のバッファ320または第2のバッファ325に格納されているソート済みデータを選択して出力し、そのようなソート済みデータを出力ストレージデバイス340に供給する。上述のように、第1のバッファ320または第2のバッファ325に格納されているこの状態データは、関心対象データを含むソート済みデータの連続的なサンプルを含んでいる。したがって、第2の選択論理回路330は、第1のバッファ320であるかそれとも第2のバッファ325であるかにかかわらず、満杯のバッファを空にして出力ストレージデバイス340に出力するのを促進する。出力ストレージデバイス340は、ソートされコンパクト化された状態データ・サンプルの受信を促進し、これらのサンプルを物理的なピン124などの出力ノードに供給する。物理的なピン124は、出力のためにトレースピン選択論理に結合することができる。以下に詳しく説明するように、トレースピン選択論理は、ピン124を介したエミュレーションIC 120からの（エミュレーションIC 120とピン124はどちらも図1に示されている）ソートされコンパクト化された状態データ・サンプルの送信を促進する。トレースピン選択論理は、ソートされかつ／またはコンパクト化された状態データ・サンプルをピンに割り当てるようにコントロール信号によって操作することができる。
【００２０】
本明細書で使用される語「空にする」または「吐き出す」は、バッファ内のすべての関連するデータが除去された状態だけでなく、すべての関連するデータが読み取られ、したがって今では古いデータとみなされている状態も含む。さらに、本明細書で使用される「空にする」かまたは「吐き出す」プロセスは、データを除去し、かつデータを読み取り読み取られたデータを古いデータとして残しておくプロセスを含む。本明細書で使用される語「満杯」は、バッファ内にもはや物理的な空間がない状態だけでなく、バッファの指定された部分内にもはや物理的な空間がない状態も含む。後者が起こるのは、たとえば、バッファが他の種類のデータを格納するのに使用される場合である。本明細書で使用される「満杯にする」プロセスは、バッファの物理的な空間全体を占有するプロセスと、バッファの指定された部分の物理的な空間全体を占有するプロセスとを含む。さらに、本明細書で使用される「コンパクト化データ」は、状態データのサンプルをソートし、かつ／またはバッファ内の関心対象データを管理するプロセスによるデータを含む。本明細書で使用される「コンパクト化する」プロセスは、状態データのサンプルをソートし、かつ／または関心対象データをバッファに格納し、満杯になったバッファからデータを空にするプロセスを含む。
【００２１】
図3に示されている例示的な態様では、第1の選択論理回路310は、連続的な状態データ・サンプルを少なくとも2つのデータ・グループ、すなわち、関心対象データと無視されるデータに分割するのに用いられるデバイスであってよい。以下に、以下の図4Aの例示的な態様を参照して説明するように、状態データのサンプルのビット位置がシフトされた関心対象データを、第1の選択論理回路310から出力することができる。たとえば、任意の1つまたは複数のスイッチ、ルータ、および／またはクロスバー、部分クロスバー、およびシフト可能なマルチプレクサを含むマルチプレクサなどを含むいくつかのデバイスを、それらをコントロールするコントローラと一緒に、第1の選択論理回路310および第2の選択論理回路330を操作するのに使用することができる。さらに、ソフトウェアをコントローラ内などのハードウェア要素と一緒に使用して第1の選択論理回路310内のサンプル状態データのビット位置をシフトさせることができる。第1のバッファ320および第2のバッファ325については、先入れ先出し（FIFO）バッファや、場合によってはランダム・アクセス・メモリ（RAM）などのメモリのようなデータの一時記憶装置として既知の任意の種類のバッファであってよい。第2の選択論理回路330は、複数の供給源のうちの1つから入力を選択的に受信し、選択された入力を出力することのできる任意のデバイスであってよく、従来のマルチプレクサなどであるが、それに限らない。出力ストレージデバイス340は、FIFOバッファのような、データを受信し順次出力することのできるデバイスを含む任意の種類のメモリ・デバイスであってよい。出力ストレージ装置340は、関心対象データに関連する情報を含む、状態データのサンプルに関連する情報を含んでよい。
【００２２】
図4Aは、本発明の少なくとも1つの局面による、状態データをソートする例示的な態様の図である。図示のように、状態データ402、404、406、および408とソート済みデータ412、414、416、および418は8データ・ビットを含んでいる。当業者は、本発明が8ビット・データに限定されず、かつデータをより小さなセグメントまたはより大きなセグメントとして構成してもよいことを理解されたい。したがって、状態データ402、404、406、および408とソート済みデータ412、414、416、および418は、任意の種類のフォーマットの任意の数のデータ・ビットであってよい。
【００２３】
図4Aに示されているように、第1の選択論理回路310は状態データW 402を受信する。第1の選択論理回路310は、状態データをソートする関心対象データ・ソータ440を含んでいる。関心対象データ・ソータ440はデコーダおよび／またはコントローラを含んでよい。コントローラは、所定の動作、一定の動作、または変更動作に従って状態データをソートするようにデコーダを操作することができる。さらに、関心対象データ・ソータ440は、状態データのサンプル中の関心対象データのビットの位置に関する情報を含むメモリを含んでよく、あるいはそのメモリにアクセスすることができる。関心対象データ・ソータ440は、ソフトウェア駆動であっても、ハードウェア駆動であっても、ソフトウェア駆動とハードウェア駆動の組合せであってもよい。
【００２４】
情報データW 402は8ビット・データ・ブロックを含んでいる。図では、第7のビット450が唯一の関心対象・データ・ビットである。第1の選択論理回路310は、関心対象データを判定する。この例では、状態データW 402が第1の状態データ・サンプルであり、かつ第1のバッファ320が現在空であるため、関心対象データ・ソータ440は状態データW 402をソート済み状態データW' 412としてソートし、したがって、第7のデータ・ビット450は第1のバッファ用のソート済みの第1のビット460になる。点線は新しいビット位置を表している。ソート済み状態データW' 412は、元の状態データW 402と同じ8データ・ビットを含んでいるが、関心対象データ、この場合は第7のビット450は、第1のバッファ320の残りのストレージスペース内の次に利用可能な空間を充填するようにソートされている。第1のバッファ320は空であったので、第7のビット450は第1のバッファ用の第1のビット460を占有するようにソートされている。この場合、第1の選択論理回路310は、第1のバッファ320がカレント・バッファであると判定する。このプロセスでは、第1のバッファ内に残りのストレージスペースが存在する場合、他のビット位置に入るようにソートすることが可能である。
【００２５】
同様に、状態データX 404の第2のサンプルが第1の選択論理回路310によって受信されると、状態データX 404中の関心対象データの3ビットが、点線で示されているように、ソート済み状態データX' 414のビット位置2、3、および4を占有するようにソートされる。ソート済み状態データX' 414のビット位置1は、どの関心対象データによっても占有されない。というのは、第1の／カレント・バッファ320はすでに、ビット位置1に状態データW 402の関心対象データの単一ビットを有しているからである。さらに、状態データY 406の第3のサンプルが第1の選択論理回路310によって受信され、状態データY 406中の関心対象データの2ビットが、この場合も点線で示されているように、ソート済み状態データY' 416のビット位置5および6を占有するようにソートされる。
【００２６】
状態データZ 408の第4のサンプルが第1の選択論理回路310によって受信されると、状態データW 402、X 404、およびY 406と同様に状態データZ  408中の関心対象データの6ビットがソートされる。しかし、この例では、第1の選択論理回路310は、サンプル状態データZ 408の関心対象データ・ビットを第1の／カレント・バッファ320に格納することはできない。なぜなら、サンプル状態データZ 408の関心対象データの6ビットに対して、現在2ビット位置しか残されていないからである。このため、関心対象データの最初の2ビット（第1のビット480および第3のビット481）は、点線で示されているように、ソート済み状態データZ' 418のビット位置7および8に入るようにソートされる。さらに、状態データZ 408のサンプルの関心対象データの残りのビット（第4のビット482、第5のビット483、第6のビット484、および第8のビット485）は、点線で示されているように、ソート済み状態データZ' 418のビット位置1〜4に入るようにソートされる。以下に説明するように、ソート済み状態データZ' 418のビット位置1〜4は第2のバッファ325の4つのビット位置1〜4である。この例のように第1の／カレント・バッファ320が満杯になると、第2のバッファ325が第1のカレント・バッファの役割を負う。第1のバッファ320はバックアップ・バッファとなり、カレント／第2のバッファが満杯になるまで待つ。
【００２７】
図4Bは、第1の選択論理回路310によって受信されている様々なサンプル状態データに関する状態を格納するメモリ490の例示的な内容を示している。メモリ490は、ランダム・アクセス・メモリ（RAM）のような任意の種類の1つまたは複数のメモリ・デバイスであってよく、さらに、第1の論理選択デバイス310、トレースチェーン300、デバッグ・リソース122、またはサンプル状態データ情報を格納できる他の考えられる位置に対してローカルに位置しても外部に位置してもよい。図4Bに示されているように、メモリ490は、サンプル状態データ1 491、状態データ2 492、状態データ3 493、状態データ4 494から状態データN 499までインデックス付けされる。メモリ490は、任意の数のサンプル状態データを格納するようにインデックス付けまたは構成することができる。
【００２８】
各エントリ491、492、493、494、および499は様々な種類の情報を含んでいる。図4Bに示されているように、エントリ491は、サンプル状態データ1中の関心対象データのビット数と、状態データ1の元のサンプル中の関心対象データの各ビットの位置とを含んでよい。たとえば、図4Aを参照すると、状態データX 404の場合、メモリ490内のエントリは、関心対象データの3ビットを含み、状態データX 404の元のサンプル中の関心対象データの3ビットの各ビットの位置は、ビット位置1、ビット位置4、およびビット位置8である。図4Bは、例示のためのものに過ぎず、各状態データ・サンプルに関する他の状態をメモリ490に格納することができる。格納できる情報の他の例には、関心対象データの各ビットの、格納されている情報データにおける対応するビット位置、状態データのサンプルの関心対象データのあらゆるビットが1つのバッファに格納されているかどうか、サンプル状態データの関心対象データが2つのバッファに分配されているかどうか、第1のバッファ320に分配されているのはどのビットで、第2のバッファ325に分配されているのはどのビットかを含めることができる。格納できる情報の他の例には、各トレースチェーンについての割り当てられたピン位置／数がある。他の種類の情報を格納することができ、この例は一使用法を説明するものに過ぎない。
【００２９】
図5Aおよび5Bは、本発明の少なくとも1つの局面による、2つのバッファを利用した連続的な状態データ・サンプルのコンパクト化を示している。図5Aおよび5Bに示されているように、第1の選択論理回路310（図3に示されている）によっていくつかの状態データ・サンプルA〜Fが連続的に受信される。図5Aおよび5Bでは、各状態データ・サンプルA〜Fは16ビットを含むように示されており、第1の／カレント・バッファ320および第2の／バックアップ・バッファ325は16ビットを含むように示されている。当業者なら、16ビットを選択したことが例示のためのものに過ぎないことを理解できることに留意されたい。サンプル状態データの特定の長さは、任意の長さまたはフォーマットであってよく、第1の／カレント・バッファ320および第2の／バックアップ・バッファ325も任意のサイズおよびフォーマットのものであってよい。
【００３０】
次に図5Aを参照すると、エミュレーションIC 120に含まれる再構成可能な論理リソースなどであるがそれに限らない再構成可能なエミュレーション・リソースから、第1の状態データ・サンプルAが受信される。第1の選択論理回路310は、関心対象データのような1組のサンプル状態データAを選択する。第1の状態データ・サンプルAの組は、第1の／カレント・バッファ320に格納され、第1の／カレント・バッファ320内にA'として示されている。第1の状態データ・サンプルAの組は、サンプル状態データのサブセットおよびサンプル状態データ全体と、1組のソート済み状態データおよびソート済み状態データ全体とを含んでいる。第1の状態データ・サンプルは、上記に図4Aおよび4Bを参照して説明したように格納することができる。この態様に関して示されているように、第1の状態データ・サンプルAの長さは16ビットである。しかし、当業者に既知であるように、状態データが16ビットよりも少なく、その結果、第1の状態データ・サンプルAの関心対象データA'をソートした後でも、第1の／カレント・バッファ320が満杯にならない場合がある。
【００３１】
第1の選択論理回路310はその後、第2の状態データ・サンプルBを受信する。同様に、関心対象データが選択される。しかし、第1の選択論理回路310は、第2のサンプル状態データBの関心対象データを格納する前に、第1の／カレント・バッファ320内の残りの利用可能な空間が選択された関心対象データを収容するのに十分であるかどうかを判定する。第1の／カレント・バッファ320が選択された関心対象データを格納するのに十分な残りのストレージスペースを有すると判定された場合、選択された関心対象データは第1の／カレント・バッファに格納される。したがって、第2のサンプル状態データBの選択された関心対象データも、第1の／カレント・バッファ320に格納されているように示されており、第1の／カレント・バッファ320内にB'として示されている。
【００３２】
一態様では、第1のバッファ320または第2のバッファ325が十分な残りの空間を有するかどうかを判定するプロセスは、第1の選択論理回路310によってサンプル状態データが受信されるたびに実行することができる。バッファ内に十分な残りの空間が存在するかどうかを判定するいくつかの方法がある。1つの方法として、毎回、バッファに格納されているデータの量だけ減分される、バッファの対応するカウンタを検査することが挙げられる。格納できる残りのビット数がサンプル状態データよりも大きいことをカウンタが示している場合、サンプル状態データ全体がバッファに格納される。
【００３３】
図5Aに示されているように、第1の／カレント・バッファ320は、選択された関心対象データB'を格納するのに十分な残りのストレージスペースを有し、第2のサンプル状態データBの選択された関心対象データB'が第1の／カレント・バッファ320に格納された後でも残りのストレージスペース550を有している。第1の選択論理回路310によって第3の状態データ・サンプルCが受信されると、この関心対象データのサイズも利用可能な残りの空間550よりも小さいと仮定した場合、この関心対象データも第1の／カレント・バッファ320に格納される。この関心対象データは第1の／カレント・バッファ320内にC'として示されている。
【００３４】
次に、図5Bを参照すると、第1の選択論理回路310によって第4の状態データ・サンプルDが受信される。図5Aの部分的に満たされた第1の／カレント・バッファ320は、残りのストレージスペース550を含んでいる。図5Bに示されているように、この例では、第1の選択論理回路310は、第4の状態データサンプルDの関心対象データのサイズが図5Aの第1の／カレント・バッファ320内の残りのストレージスペース550よりも大きいと判定する。したがって、図5Bでは、残りのストレージスペース550（図5Aに示されている）に格納できるほど小さなサイズの関心対象データの部分が、第1の／カレント・バッファ320に格納され、この部分は第1の／カレント・バッファ320内にD'として示されている。このため、第1の／カレント・バッファ320は、様々なサンプル状態データの関心対象データで満杯になる。第4の状態データ・サンプルDの関心対象データのサイズが残りのストレージスペース550（図5Aに示されている）よりも大きいため、関心対象データの残りの部分は第2の／バックアップ・バッファ325に格納される。この部分は第2の／バックアップ・バッファ325内にD"として示されている。この点で、第1のバッファ320が満杯になると、第2のバッファ325がカレント・バッファになる役割を負う。その後、図示のように、第2の／カレント・バッファ325は引き続き、第5の状態データ・サンプルEの関心対象データおよび第6の状態データ・サンプルFの関心対象データで満杯になり、これらの関心対象データは第2の／カレント・バッファ325内にそれぞれE'およびF'として示されている。その後の状態データ・サンプルは、第2の／カレント・バッファ325が満杯になるまで第2の／カレント・バッファ325に格納される。第2のバッファ325が満杯になると、以後の関心対象データは、空になっている第1のバッファ320に送り返される。この場合も、第2のバッファ325が満杯になるため、第1のバッファ320はやはりカレント・バッファになる役割を負う。バッファ同士が交互に切り替わるこのプロセスは、関心対象データがなくなるまで継続することができる。
【００３５】
図6Aおよび6Bは、本発明の一態様による、2つのバッファを利用した連続的な状態データ・サンプルのコンパクト化を示している。図6Aおよび6Bに示されているように、第1の選択論理回路310（図3に示されている）によっていくつかの状態データ・サンプルA〜Fが連続的に受信される。図6Aおよび6Bでは、各状態データ・サンプルA〜Fは64ビットを含むように示され、第1のバッファ320および第2のバッファ325は、各々の長さが16ビットの4つのワードを含むように示されている。当業者には、64ビットと各々が16ビットの4ワードとを選択したことが例示のためのものに過ぎないことに留意されたい。サンプル状態データの特定の長さは、任意の長さまたはフォーマットであってよく、第1のバッファ320および第2のバッファ325も任意のサイズおよびフォーマットのものであってよい。
【００３６】
図6Aおよび6Bでは、第1バッファ320および第2のバッファ325は、サンプル状態データの内容全体を格納にするのに十分な容量を有している。しかし、他の態様では、第1のバッファ320および第2のバッファ325は、任意のビット数Nを含む、サンプル状態データよりも少ないかまたはそれによりも多いビットを含む容量を有してよい。さらに、出力ストレージデバイス340（図3に示されている）も、(M x N)などのM「サンプル」深さを含む、任意のサイズまたはフォーマットであってよい。
【００３７】
次に図6Aを参照すると、エミュレーションIC 120に含まれる再構成可能な論理リソースなどであるがそれに限らない再構成可能なエミュレーション・リソースから、第1の状態データ・サンプルA 601が受信される。第1の選択論理回路310は、関心対象データのような1組のサンプル状態データA 601を選択する。第1の状態データ・サンプルA 601の関心対象データ602は、第1のバッファ320に格納され、第1のバッファ320内にA'として示されている。この態様に関して示されているように、第1の状態データ・サンプルA 601の長さは64ビットである。しかし、当業者に既知であるように、状態データが64ビットよりも少なく、その結果、第1の状態データ・サンプルA 601の関心対象データA' 602をソートした後でも、第1のバッファ320が満杯にならない場合がある。
【００３８】
第1の選択論理回路310はその後、第2の状態データ・サンプルB 611を受信する。同様に、関心対象データが選択される。しかし、第2のサンプル状態データB 611の関心対象データ612を格納する前に、第1のバッファ320内の残りの利用可能な空間が選択された関心対象データ612を収容するのに十分であるかどうかを判定する。第1のバッファ320が選択された関心対象データ612を格納するのに十分な残りのストレージスペースを有すると判定された場合、選択された関心対象データ612は第1のバッファ320に格納される。したがって、第2のサンプル状態データB 611の選択された関心対象データ612も、第1のバッファ320に格納されているように示されており、第1のバッファ320内にB'として示されている。
【００３９】
図6Aに示されているように、第1のバッファ320は、選択された関心対象データB' 612全体を格納するのに十分な残りのストレージスペースを有し、第2のサンプル状態データB 611の選択された関心対象データB' 612が第1のバッファ320に格納された後でも残りのストレージスペース550を有している。第1の選択論理回路310によって第3の状態データ・サンプルC 621が受信されると、この関心対象データ622のサイズも利用可能な残りの空間550よりも小さいと仮定した場合、この関心対象データ622も第1のバッファ320に格納される。この関心対象データ622は第1のバッファ320内にC'として示されている。
【００４０】
次に、図6Bを参照すると、第1の選択論理回路310によって第4の状態データ・サンプルD 631が受信される。図6Aの部分的に満たされた第1のバッファ320は、残りのストレージスペース550を含んでいる。図6Bに示されているように、この例では、第1の選択論理回路310は、第4のトレースデータサンプルD 631の関心対象データ（632および633）のサイズが図6Aの第1のバッファ320内の残りのストレージスペース550よりも大きいと判定する。したがって、図6Bでは、残りのストレージスペース550（図6Aに示されている）に格納できるほど小さなサイズの関心対象データの部分が、第1のバッファ320に格納され、この部分は第1のバッファ320内にD'として示されている。このため、第1のバッファ320は、様々なサンプル状態データの関心対象データで満杯になる。関心対象データ（632および633）のサイズが残りのストレージスペース550（図6Aに示されている）よりも大きいため、関心対象データ（632および633）の残りの部分633は第2のバッファ325に格納される。この部分は第2のバッファ325内にD"として示されている。その後、図示のように、第2のバッファ325は引き続き、第5の状態データ・サンプルE 641の関心対象データ642および第6の状態データ・サンプルF 651の関心対象データ652で満杯になり、これらの関心対象データは第2のバッファ325内にそれぞれE'およびF'として示されている。その後の関心対象データは、第2のバッファ325が満杯になるまで第2のバッファ325に格納される。第2のバッファ325が満杯になると、以後の関心対象データは、空になっている第1のバッファ320に送り返される。この場合も、第2のバッファ325が満杯になるため、第1のバッファ320はやはりカレント・バッファになる役割を負う。バッファ同士が交互に切り替わるこのプロセスは、関心対象データがなくなるまで継続することができる。
【００４１】
したがって、フィル・バッファ320および325は、交互に使用され、カレント・バッファが満杯になったときに一方のバッファから他方のバッファへと切り換わる。さらに、カレント・バッファ内の残りのストレージスペースが関心対象データ全体を格納するのに十分なサイズを有していないときは、1つの状態データ・サンプルの関心対象データを両方のバッファに分配し格納することができる。
【００４２】
図6Bでは、第1のバッファ320が満杯になると、第2の選択論理回路330によってサンプル状態データA'、B'、C'、およびD'の関心対象データが選択され出力される。第2の選択論理330（図3に示されている）は、第1のバッファ320または第2のバッファ325が満杯になったと判定したときに、第1または第2のバッファ320および325を空にして出力ストレージデバイス340に出力するのを促進する。したがって、図6Bを参照すると、第2のバッファ325が満杯になると、すでに空になっている第1のバッファ320は、第2のバッファ325が空にされている間に再び充填される準備を完了する。2つのバッファ320および325を利用し、連続的な状態データ・サンプルの関心対象データを選択すると、状態データの管理を向上させることができる。
【００４３】
単一のトレースチェーン300に関して、図6Aおよび6Bに示されている態様は本発明の少なくとも1つの局面を示している。しかし、当業者には、デバッグ・リソース122が複数のトレースチェーンを含んでよいことを理解されたい。
【００４４】
図7は、本発明の他の態様を示しており、この場合、本発明の例示的な態様によって、限られた数のピン上で転送される複数のトレースチェーンから得た（好ましくは、上述のようにコンパクト化された）関心対象データにスケジューリングが使用される。トレースチェーンC1 710〜Cg 780は、図3に示されている、トレースチェーンC1 710〜Cg 780に対応する上述の部分、すなわちトレースチェーン300と実質的に同じ機能を有してよい。図7に示されているように、エミュレーションIC 120は、デバッグ・リソース122、メモリ790a、メモリ790b、および／またはメモリ790c（集合的にメモリ790）、ならびに／あるいはトレースピン126を含んでいる。デバッグ・リソース122は、C1 710〜Cg 780として識別された、複数の、g個のトレースチェーンと、トレースピン選択論理回路770とを含んでいる。図示のように、トレースチェーンC1 710〜Cg 780はそれぞれ、トレースピン選択論理回路770に結合されている。トレースピン選択論理回路770はメモリ790a、790b、および／または790cに結合されている。メモリ790は、メモリ・リソース122（メモリ790a）内、エミュレーションIC 120（メモリ790b）内、ならびに／あるいはトレースピン選択論理回路770（メモリ790c）を含むエミュレーションIC 120および／またはデバッグ・リソース122の外部に配置されるように示されている。たとえば、メモリ790cは、オンボードトレースメモリ180を含んでいても、オンボードトレースメモリ180内に含まれていてもよい。これらはメモリ790の考えられる位置の例に過ぎない。
【００４５】
上述のように、トレースチェーンC1 710〜Cg 780は、エミュレーションIC 120からトレースピン126を介してデバッグ分析のために転送される連続的な状態データ・サンプルのコンパクト化関心対象データを、トレースピン選択論理回路770に供給する。トレースピン選択論理回路770は、トレースチェーンの出力を連続的に選択し、選択されたトレースチェーンのソートされコンパクト化された関心対象データの出力を利用可能なトレースピン126に送る。選択されたトレースチェーンおよび利用可能なトレースピンは、クロック・サイクルごとに変更することができる。図8Aに示されているように、g = 8の場合、第1のクロック・サイクル中には、トレースチェーンC1 710、C2 720、C3 730、およびC4 740がトレースピンP1 855、P2 856、P3 857、およびP4 858にアクセスしその内容を出力することができる。図8Bに示されているように、第2のクロック・サイクル中には、トレースチェーンC3 730、C4 740、C5 750、およびC6 760がトレースピンP1 855、P2 856、P3 857、およびP4 858にアクセスしその内容を出力することができる。図8Cに示されているように、第3のクロック・サイクル中には、トレースチェーンC4 740、C5 750、C7 770、およびC7 780がトレースピンP1 855、P2 856、P3 857、およびP4 858にアクセスしその内容を出力することができる。したがって、これらの例では、トレースチェーンC4 740の内容は常にトレースピンにアクセスすることができ、一方、トレースチェーンC3 730およびC5 750の内容は3クロック・サイクルごとの2サイクルの間アクセスが可能であり、C1 7101、C2 720、C6 760、C7 770、およびC8 780の内容は、3クロック・サイクルごとの1サイクルの間アクセスが可能であり、それによって、8つのトレースチェーンが4本のトレースチェーンを共用することが可能になる。トレースチェーン出力へのピンの割当ては、ピンのトレースチェーンからのそれぞれの出力速度に基づいて出力を多重化しコントロールすることによって調和が図られる。出力速度は一定ではなく、エミュレーション・プロセス中に変化することができる。
【００４６】
以下に詳しく説明するように、メモリ790は、少なくとも、トレースチェーンC1 710〜Cg 780がソートされコンパクト化された状態データ・サンプルを供給される速度に基づいて、トレースチェーンC1 710〜Cg 780とトレースピン126との関連付けのスケジューリングを促進する。言い換えれば、トレースチェーン・データを出力できるようにトレースピン126に関連付けるためのスケジューリングは、それぞれのトレースチェーン300内のバッファ320または325が充填される速度に基づいて行うことができる。ソフトウェアは、ピンをトレースチェーンに適切にかつ効率的に割り当てるアルゴリズムを決定することができる。循環アルゴリズムは、トレースチェーン出力が得られたときに単に利用可能なピンを循環する。5つのバッファが満杯になり出力される場合、トレースピン801〜805を利用することができる。さらに4本のトレースピンが出力するとき、トレースピン806、807、808、および801が利用される。このプロセスは、8本のトレースピンを循環することによって継続する。
【００４７】
上述のように、図7では、容易に理解できるように、2つのトレースチェーンC1 710およびCg 780のみが明示的に示されている。しかし、当業者には、トレースチェーンの数が任意の数であってよいことを理解されたい。トレースピン選択論理回路770は、g個の供給源から入力を受信し、g個の供給源のうちのS個の供給源の組をS個の出力先、すなわち、トレースピン126に選択的に結合するのに使用される装置であってよい。
【００４８】
図9Aは、第1のトレースチェーンC1 710が、第2のトレースチェーンC2 720がソートされコンパクト化されたデータ925を出力する速度とは異なる速度で、ソートされコンパクト化されたデータ915を出力する一例を示している。図9Aの例では、データのサンプルが第1のトレースチェーンC1 710に供給される速度は、第2のトレースチェーンC2 720の2倍である（たとえば、エミュレートすべき設計をエミュレーション・リソースにマップするコンパイル時に求められる）。したがって、第1のトレースチェーンC1 710がデータを吐き出す速度は第2のトレースチェーンC2 720の2倍であるべきである。したがって、トレースピン選択論理回路770は、トレースピン126の使用を相対的な使用必要性を反映するようにスケジューリングするように（たとえば、コントロールワークステーション上に存在するコントロールソフトウェアによって）プログラムされる。トレースピン126の使用は、状態データのサンプルがそれぞれのトレースチェーンによって受信される速度に基づいて、スケジューリングすることができる。
【００４９】
状態データのサンプルが、第2のトレースチェーンC2 720によって状態データのサンプルが受信される速度の2倍の速度で第1のトレースチェーンC1 710によって受信される場合、メモリ790は、ソートされコンパクト化されたデータを、トレースチェーンC2 720からソートされコンパクト化されたデータ・サンプルの2倍の速度で、第1のトレースチェーンC1 710からトレースピン126に供給する、トレースピン選択論理回路770の動作を促進する（トレースピン126がトレースチェーンC1 710にアクセスできるようにする）。トレースピン選択論理回路770は、メモリ790に格納することのできる各トレースチェーンの速度に基づいてピン割当てを決定する。トレースピン選択論理回路770およびメモリ790によるスケジューリングは、図9Bに示されているように例示することができる。トレースチェーンC1 710からの出力とトレースチェーンC2 720からの出力の比は2:1で一定であるように示されているが、複数のトレースチェーンのうちのあらゆるトレースチェーンの速度を変更することができ、システムは、各トレースチェーンからの出力の速度を定期的に検査するように設計することができる。
【００５０】
図10は、本発明の少なくとも1つの局面による、状態データのコンパクト化をよりうまく管理する例示的な方法を示している。段階1010で、再構成可能なエミュレーション・リソースから出力された第1の状態データ・サンプルが受信される。段階1020で、第1の状態データ・サンプルの関心対象データが第1のバッファに格納される。段階1030で、再構成可能なエミュレーション・リソースから第2の状態データ・サンプルが受信される。
【００５１】
段階1040で、第1のバッファが満杯であるかどうかが判定される。したがって、第1のバッファが満杯であると判定された場合、段階1050で第2のサンプル状態データの関心対象データが第2のバッファに格納される。さらに、第1のバッファが満杯であるため、第1のバッファのデータを第2の選択論理回路に移して第1のバッファを空にすることができる。しかし、第1のバッファが満杯ではないと判定された場合、第2の判定段階1060が実行される。段階1060では、第1のバッファ内の残りのストレージスペースが第2の状態データ・サンプルの関心対象データの格納に対処するのに十分な空間であるかどうかが判定される。残りのストレージスペースが第2の状態データ・サンプルの関心対象データを収容するのに十分なサイズである場合、段階1070で、第2の状態データ・サンプルの関心対象データが第1のバッファに格納される。残りのストレージスペースが第2の状態データ・サンプルの関心対象データを収容するのに十分なサイズではない場合、段階1080で、第1の状態データ・サンプルの関心対象データが2つの部分に分割される。段階1090で、一方の部分が第1のバッファに格納されて第1のバッファが満杯になり、段階1095で、第2のサンプル状態データの関心対象データの残りの部分が第2のバッファに格納される。
【００５２】
図11は、本発明の少なくとも1つの局面による、プログラムされたスケジュールに関してトレースピンを選択しピンに関連付ける方法を示している。スケジューリングは、本発明の少なくとも1つの局面によって、比較的多くのトレースチェーンを限られた数のピンに割り当て、トレースチェーンによるピンの共用を促進し、トレースチェーンの（好ましくはコンパクト化された）関心対象データを出力するのに使用される。
【００５３】
段階1110で、複数の、g個のトレースチェーンに（好ましくはコンパクト化された）関心対象データが充填される速度が求められる。充填速度が求められると、段階1120で、g個のトレースチェーンに対応する十分な吐出し速度を与える、いくつかの、S個のピンのスケジュールが、段階1110で求められた充填速度に基づいて求められる。段階1130で、g個のトレースチェーンのうちの第1組のトレースチェーンSが選択され、プログラムされたスケジュールに従ってS本のピンに関連付けされる。エミュレータがトレースデバッグ・モードで動作しているかぎり、段階1130が繰り返され、すなわち、g個のトレースチェーンのうちのS個のトレースチェーンから成る第2組が選択されS本のピンに関連付けされる。
【００５４】
本発明の様々な局面を実現する本明細書に記載された例示的なシステムおよび方法を示したが、当業者には理解されるように、本発明はこれらの態様に限らない。当業者によって、特に上記の教示を考慮して修正を施すことができる。たとえば、上述の態様の各要素は単独で使用しても、他の態様の要素と組み合わせて使用してもよい。本発明の真の要旨および範囲から逸脱せずに修正を施せることも理解されよう。したがって、説明は本発明を制限するものではなく例示的なものである。
【図面の簡単な説明】
【００５５】
【図１】本発明の少なくとも1つの局面によるエミュレーション論理ボードの例示的な態様の機能ブロック図である。
【図２】本発明の少なくとも1つの局面による論理ボードの構成の例示的な態様の機能ブロック図である。
【図３】本発明の少なくとも1つの局面によるエミュレーション・システムのデバッグ・リソースの例示的な態様の機能ブロック図である。
【図４Ａ】本発明の少なくとも1つの局面による状態データをソートする例示的な態様の図である。
【図４Ｂ】本発明の少なくとも1つの局面によるサンプル・データ情報を格納するメモリの例示的な態様の機能ブロック図である。
【図５】図５ＡおよびＢは、本発明の少なくとも1つの局面による、2つのバッファを利用して状態データをコンパクト化する例示的な態様の図である。
【図６】図６ＡおよびＢは、本発明の少なくとも1つの局面による、2つのバッファを利用して状態データをコンパクト化する例示的な態様の別の図である。
【図７】本発明の少なくとも1つの局面による、限られた数のピンに割り当てるべき複数のトレースチェーンから得たソート済みの関心対象データにスケジューリングが利用される、エミュレーション集積回路の例示的な態様の機能ブロック図である。
【図８】図８Ａ〜Ｃは、本発明の少なくとも1つの局面による3つのクロック・サイクル中のトレースチェーンへのピン割当ての一例の例示的な態様を示す図である。
【図９Ａ】本発明の少なくとも1つの局面による、2つのトレースチェーンがソート済みの関心対象データをそれぞれの異なる速度で出力する、エミュレーション集積回路の例示的な態様の機能ブロック図である。
【図９Ｂ】本発明の少なくとも1つの局面による、経時的な図9Aの2つのトレースチェーンへのピン割当てのスケジューリングの例示的な態様の図である。
【図１０】本発明の少なくとも1つの局面による、状態データのコンパクト化をよりうまく管理する例示的な方法のフローチャートである。
【図１１】本発明の少なくとも1つの局面による、スケジュールに対してトレースチェーンを選択しピンに関連付ける方法の例示的な態様の図である。
【図１】
2007524274.tif 000004
【図２】
2007524274.tif 000005
【図３】
2007524274.tif 000006
【図４Ａ】
2007524274.tif 000007
【図４Ｂ】
2007524274.tif 000008
【図５】
2007524274.tif 000009
【図６】
2007524274.tif 000010
【図７】
2007524274.tif 000011
【図８Ａ】
2007524274.tif 000012
【図８Ｂ】
2007524274.tif 000013
【図８Ｃ】
2007524274.tif 000014
【図９Ａ】
2007524274.tif 000015
【図９Ｂ】
2007524274.tif 000016
【図１０】
2007524274.tif 000017
【図１１】
2007524274.tif 000018
【国際調査報告】
2007524274.tif 000019
2007524274.tif 000020