(57)【要約】【課題】エミュレーションの処理速度が向上できるエミュレーションシステムを提供する。【解決手段】本発明のエミュレーションシステムは、コントローラと、使用者回路を含み使用者回路をエミュレーションするエミュレーション計算部と、コントローラの制御によってエミュレーション計算部が前記使用者回路をエミュレーションして生成したエミュレーションデータを貯蔵するエミュレーション貯蔵部と、コントローラの制御によって複数のコンピュータに分散されるように前記エミュレーションデータを伝送するインターフェース装置とを含む。【選択図】図１
2008047134.tif 000002
【特許請求の範囲】
【請求項１】
コントローラと、
使用者回路を含み、前記使用者回路をエミュレーションするエミュレーション計算部と、
前記コントローラの制御によって前記エミュレーション計算部が前記使用者回路をエミュレーションして生成したエミュレーションデータを貯蔵するエミュレーション貯蔵部と、
前記コントローラの制御によって複数のコンピュータに分散されるように前記エミュレーションデータを伝送するインターフェース装置と、を含むことを特徴とするエミュレーションシステム。
【請求項２】
前記使用者回路は複数のハードセグメントの単位で区分されることを特徴とする請求項１に記載のエミュレーションシステム。
【請求項３】
前記エミュレーション計算部は、前記ハードセグメントから前記エミュレーションデータを読み出すように構成されることを特徴とする請求項２に記載のエミュレーションシステム。
【請求項４】
隣り合う前記セグメントの状態値は互いに異なる前記複数のコンピュータに各々貯蔵されることを特徴とする請求項２に記載のエミュレーションシステム。
【請求項５】
前記コントローラは、前記複数のコンピュータから入力される入力値を前記インターフェース装置及び前記エミュレーション貯蔵部に貯蔵し、前記貯蔵された入力値は前記エミュレーション計算部に分配されることを特徴とする請求項１に記載のエミュレーションシステム。
【請求項６】
前記エミュレーション計算部は、前記使用者回路をエミュレーションし、前記エミュレーションデータを前記エミュレーション貯蔵部に貯蔵し、前記エミュレーションデータは前記インターフェース装置を通じて前記コンピュータに伝送されることを特徴とする請求項１に記載のエミュレーションシステム。
【請求項７】
前記エミュレーション計算部は、前記読み出されたエミュレーションデータ及びクロック情報を付加することを特徴とする請求項１に記載のエミュレーションシステム。
【請求項８】
前記エミュレーション貯蔵部は前記ハードセグメントに各々対応する複数の貯蔵部を含むことを特徴とする請求項１に記載のエミュレーションシステム。
【請求項９】
前記インターフェース装置は前記貯蔵部に各々対応するインターフェース装置を含むことを特徴とする請求項１に記載のエミュレーションシステム。
【請求項１０】
前記貯蔵部に貯蔵されたエミュレーションデータは対応するインターフェースを通じて対応するコンピュータに伝送されることを特徴とする請求項１に記載のエミュレーションシステム。
【請求項１１】
前記複数のコンピュータは、前記エミュレーションデータを受信して時間的に独立したデバッグ又はシミュレーションを実行することを特徴とする請求項１に記載のエミュレーションシステム。
【請求項１２】
前記複数のコンピュータは、前記エミュレーションデータを受信して空間的に独立したデバッグ又はシミュレーションを実行することを特徴とする請求項１に記載のエミュレーションシステム。
【請求項１３】
前記エミュレータ貯蔵部はエミュレーションの入出力分配器をさらに含むことを特徴とする請求項１に記載のエミュレーションシステム。
【請求項１４】
前記エミュレーションの入出力分配器は、メモリと入出力分配装置とを含み、前記メモリは前記エミュレーションデータを臨時的に貯蔵し、前記入出力分配装置の制御によって前記エミュレーションデータを前記インターフェース装置に伝送することを特徴とする請求項１２に記載のエミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエミュレーションシステムに係り、より詳細にはエミュレーションデータを分散処理するエミュレーションシステムに関する。
【背景技術】
【０００２】
デジタル回路の使用には、検証（Ｖｅｒｉｆｉｃａｔｉｏｎ）が必要である。検証は、設計回路が正しく動作するかどうかを確認するものである。例えば、設計回路が正しく動作しない時には、デバッグを実行する。デバッグとは、設計回路が正しく動作される状態に修正する作業を意味する。一般的に、回路の検証の方法は、ソフトウェアのシミュレーションまたはハードウェアのエミュレータを利用する。
【０００３】
シミュレーションを利用する方法は、設計回路の検証の費用が安く、検証の方法が簡単である反面、検証に時間が掛かり過ぎるという短所がある。一方、エミュレータを利用する方法は、検証の方法が複雑であり、検証の費用が高くなるが、検証の時間が短いという長所がある。
【０００４】
商業的に利用されるエミュレーションの方法として代表的なものにＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）がある。ＦＰＧＡでは、設計回路の検証の為に、設計回路の中の重要なフリップフロップの状態値又は重要なネット（ｎｅｔ）の状態値を読み出すことのできる追加回路が必要になる。ＦＰＧＡによる設計回路の検証の方法では、追加回路を通じて読み出された状態値を内部のメモリに全て貯蔵しておき、エミュレーションが終了すると、ＪＴＡＧ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）を利用してメモリに貯蔵されたデータを外に読み出す。
【０００５】
従来のエミュレーションシステムでは、エミュレーションの実行結果物であるデータをコンピュータに伝送する為に、一つの高速のコンピュータのインターフェースだけを利用している。使用者回路（ＤＵＴ：Ｄｅｖｉｃｅ  Ｕｎｄｅｒ  Ｔｅｓｔ）のゲートサイズが増加するほど、デバッグに必要とするデータは増加する。
従って、従来のエミュレーションシステムには、データの量が増加するほどデータの伝送に時間が掛かり、エミュレーションの速度を低下させるという問題点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、データの伝送の時間を短縮することができるエミュレーションシステムを提供することである。
また、本発明の他の目的は、エミュレーションの速度を向上させることができるエミュレーションシステムを提供することである。
【課題を解決するための手段】
【０００７】
前記の課題を解決する為に、本発明によるエミュレーションシステムは、コントローラと、使用者回路を含み前記使用者回路をエミュレーションするエミュレーション計算部と、前記コントローラの制御によって前記エミュレーション計算部から前記使用者回路をエミュレーションして生成したエミュレーションデータを貯蔵するエミュレーション貯蔵部と、前記コントローラの制御によって複数のコンピュータに分散されるように前記エミュレーションデータを伝送するインターフェース装置を含む。
【発明の効果】
【０００８】
本発明によると、使用者回路を時間的、空間的に独立させてエミュレーションし、その結果を複数のコンピュータに分散させて伝送することによってデータの伝送の時間が短縮できるので、エミュレーションシステムの処理速度が向上される。従って、設計回路の検証の時間及びデバッグの時間を効果的に短縮することができる。
【０００９】
また、使用者回路を含む分散された複数のコンピュータは、時間的及び空間的に独立されたエミュレーションデータを貯蔵するので、独立的にデバッグ及びシミュレーションが可能である。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明による実施の形態を図面を参照して詳しく説明する。
図１は本発明のエミュレーションシステムを表すブロック図である。図１によれば、エミュレーションシステム１００は、ＤＵＴ１０を含むエミュレーション計算部２０、コントローラ３０、エミュレーション貯蔵部４０、インターフェース装置５０から成る。
【００１１】
複数のコンピュータ３００は、エミュレーションの実行結果のデータを分散して貯蔵するコンピュータである。また、複数のコンピュータ３００は、ＤＵＴ１０に対応する情報をＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）の形態で含んでいる。コンピュータ３００は、エミュレーションの実行結果のデータを受信してデバッグ又はシミュレーションを行う。
【００１２】
エミュレーション計算部２０は、コントローラ３０の制御によってＤＵＴ１０をエミュレーションし、その結果をエミュレーション貯蔵部４０に貯蔵する。コントローラ３０はエミュレーションの結果をエミュレーション貯蔵部４０からインターフェース装置５０に伝送する。さらに、コントローラ３０は、インターフェース装置５０に貯蔵されたエミュレーションデータをコンピュータ３００に伝送する。
【００１３】
図２は、図１に図示されたインターフェース装置５０を表すブロック図である。図２を参照すれば、エミュレーション貯蔵部４０に貯蔵されたエミュレーション結果データは一時的にデータ貯蔵部４２に貯蔵され、通信部４１を通じてコンピュータ３００に伝送される。
【００１４】
図３は図１に図示されたＤＵＴ１０のブロック図である。ＤＵＴは複数の組合せ回路と複数のフリップフロップとから成る。図３を参照すれば、ＤＵＴ１０は３個の空間に分割され、各空間は第１セグメントＳｅｇ−１、第２セグメントＳｅｇ−２、第３セグメントＳｅｇ−３となる。第１セグメントＳｅｇ−１は外部との接続を有さないので、ハードセグメントと定義する。一方、第２セグメントＳｅｇ−２、第３セグメントＳｅｇ−３の場合にはセグメントの境界を超える信号線があるので、ソフトセグメントと定義する。
【００１５】
空間の分割の為に、ＤＵＴ１０はハードセグメント単位で構成される。従って、信号線にはネットトレーサ（ＮＴ）５を挿入してソフトセグメントをハードセグメントに変える。
【００１６】
ＤＵＴ１０は、ソフトセグメントへの仮想の入出力を有する仮想のフリップフロップＰＦＦを追加することにより、ハードセグメントだけで構成される。この仮想のフリップフロップには、多重フリップフロップ（Ｍｕｌｔｉｐｌｅｘｅｄ  Ｆｌｉｐ−Ｆｌｏｐ）を使う。仮想のフリップフロップは、マルチプレクサを利用して、正しい動作とデバッグ動作とを区別する経路を形成する。デバッグ動作の時には、仮想のフリップフロップはチェーンを形成して、正しい動作の時に入力された値を読み出す役割をする。
【００１７】
図４及び図５は、図３に図示されたネットトレーサ５の構成とシンボルを表す図面である。図４を参照すれば、ネットトレーサ５は、ＤＵＴ１０のネット(フリップフロップではないデータの経路)の状態値を読み出すのに使われる。即ち、ネットトレーサ５は、設計回路のネットの状態値を読み出したり、ネットに状態値を修正して入力したり、ネットの過去の状態値を入力したりする時に使われる。
【００１８】
例えば、ＪＴＡＧでＴＤｉとＴＤｏを連結するチェーンを形成してデバッグの情報を読み出す方法のように、ＤＵＴの中の特定のネットの状態値を読み出す為に、エミュレーション計算部２０はＴｅｎ信号を活性化し、フリップフロップの状態値をＴＤｏを通じて読み出す。
【００１９】
ＤＵＴ１０のネットの状態値を修正して入力したり、ＤＵＴ１０のネットの過去の状態値を入力したりする為に、エミュレーション計算部２０はＴｅｎ信号を活性化し、Ｔｅｎ−ＲＢ信号を１にセッティングしてＴＤｉを通じてネットの状態値を入力し、ＮＤｏを通じて結果の値を出力するようにする。
【００２０】
図６は図１のエミュレーションデータ２５の形式を表す図面である。図１及び図６によると、エミュレーションデータ２５は、クロックポイントデータとエミュレーション結果データとから構成される。クロックポイントデータは、ＤＵＴ１０が時間的に独立性を持つようにクロック周波数及びクロック周波数の変動をレポートするための情報を持つ。エミュレーション結果データは、ＤＵＴ１０が空間的に独立性を持つように仮想のフリップフロップＰＦＦ及びネットトレーサＮＴの状態値を貯蔵する。
【００２１】
各々のコンピュータに貯蔵されるエミュレーションデータ２５は、エミュレーション貯蔵部４０と１:１にマッチングされる。従って、エミュレーションデータ２５は貯蔵部の位置情報を要さない。例えば２個以上の他のクロックによって生成されたエミュレーションデータ２５があれば、エミュレーションシステム１００は、コンピュータ３００にエミュレーションデータ２５を各サイクル毎に伝送する。
【００２２】
図７は図１に図示されたＤＵＴ１０に類似のＤＵＴ１０′をセグメントで区分して表す図面である。図１と図７を参考にすれば、エミュレーション貯蔵部４０はセグメント単位でエミュレーション結果データを貯蔵する。コンピュータ３００にはセグメント単位でエミュレーション結果データとクロックに関する情報とが貯蔵されるので、各々のコンピュータ３００は、セグメント単位で特定の時間に対するデバッグ又はシミュレーションを実行できる。
【００２３】
例えば、第１セグメントＳｅｇ−１のエミュレーション結果データは第１コンピュータに貯蔵され、第２セグメントＳｅｇ−２のエミュレーション結果データは第２コンピュータに貯蔵されたとすると、第１セグメントＳｅｇ−１及び第２セグメントＳｅｇ−２と重なる仮想のフリップフロップ及びネットトレーサの状態値１は、第１コンピュータ及び第２コンピュータに各々貯蔵される。従って、時間的及び空間的に独立性を持つエミュレーションの実行の為に、第１コンピュータでは第１セグメントＳｅｇ−１に関してデバッグ及びシミュレーションの実行が可能であり、第２コンピュータでは第２セグメントＳｅｇ−２に関してデバッグ及びシミュレーションの実行が可能である。
【００２４】
第３セグメントＳｅｇ−３の仮想のフリップフロップの状態値２を貯蔵する第３コンピュータ及び第４セグメントＳｅｇ−４の仮想のフリップフロップの状態値２を貯蔵する第４コンピュータに関しては、繰り返しとなるため説明を省略する。
【００２５】
図８は図１に図示されたエミュレーションシステムの動作のフロー図である。図１及び図８を参照すれば、Ｓ１００の段階で、コンピュータ３００はインターフェース装置５０を通じてエミュレーション貯蔵部４０にＤＵＴ１０の入力データを伝送する。Ｓ１１０の段階では、コントローラ３０がＤＵＴ１０のセグメントに対応する入力値を分配する。
【００２６】
Ｓ１２０の段階では、エミュレーション計算部２０がＤＵＴ１０に対してエミュレーションを行う。Ｓ１３０の段階では、エミュレーション計算部２０がコントローラ３０の制御によってエミュレーションデータ２５をエミュレーション貯蔵部４０に貯蔵する。Ｓ１４０の段階では、コントローラ３０はエミュレーション貯蔵部４０のエミュレーションデータ２５をインターフェース装置５０を通じてコンピュータ３００に伝送する。
【００２７】
Ｓ１５０の段階では、コントローラ３０は、エミュレーションデータ２５のコンピュータ３００への伝送が完了したかどうかを判断する。エミュレーションデータがコンピュータに全て伝送されたらＳ１６０の段階を行う。データの伝送が完了していない場合には、Ｓ１５０の段階を繰り返す。
【００２８】
Ｓ１６０の段階では、コントローラ３０はコンピュータ３００からエミュレーションシステム１００に新しい入力値が伝送されるかどうかを判断する。コンピュータ３００から新しい入力値が伝送されれば、戻ってＳ１００の段階を行う。入力値が伝送されなければ終了する。
【００２９】
エミュレーション結果データがＤＵＴの全てのフリップフロップ及びネットトレーサの状態値を読み出す時には、エミュレーションの各サイクル毎のデータの大きさは数十キロバイト（ｋｂｙｔｅ）から数メガバイト（Ｍｂｙｔｅ）程度になる。従って、コンピュータに各サイクル毎に状態値のデータが伝送される時には、高速インターフェースの方式であるＰＣＩ２．０を使用しても、各サイクル毎に６４ビットずつ、６６ＭＨｚ程度の伝送速度となる。例えば、３２，０００ビットのデータを伝送させる為には、約６０．８ＫＨｚ程度のエミュレーション速度が必要である。従って、各サイクル毎に状態値のデータのコンピュータへの伝送が完了してからしか次のサイクルを開始することのできないエミュレーションシステムの場合には、データの伝送速度がエミュレーションシステムの処理速度の鍵になる。
【００３０】
エミュレーションの処理速度を上げる為には、エミュレーションの各サイクル毎にデータを伝送せずに、データをエミュレータの内部のメモリに貯蔵しておき、後で同時にコンピュータにデータを伝送するのが好ましい。しかし、エミュレータの内部のメモリの大きさは限定されているので、実際には多くのデータを貯蔵することができない。従って、エミュレーションの内部のメモリを最小化する為には、各サイクル又は数サイクル毎にコンピュータにデータを伝送する必要がある。エミュレーションシステムの小さいメモリを効率的に活用する為には、エミュレーション貯蔵部の代わりにエミュレーション入出力分配器を用いるのが好ましい。
【００３１】
図９は本発明の別の実施の形態を表すブロック図である。図９によると、エミュレーション入出力分配器１４０は、図１のエミュレーション貯蔵部４０の代わりに使われる。エミュレーション入出力分配器１４０は、ＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリとＴＤＭ（Ｔｉｍｅ  Ｄｒｉｖｅｎ  Ｍｏｄｕｌｅ）とから成る。
エミュレーション計算部１２０に貯蔵されたエミュレーションデータは、コントローラ１３０の制御によってＦＩＦＯメモリに貯蔵される。ＦＩＦＯメモリに貯蔵されたエミュレーションデータは、ＴＤＭによってインターフェース装置１５０に分配されて伝送される。インターフェース装置１５０に貯蔵されたエミュレーションデータは、コントローラ１３０の制御によってコンピュータ３００に伝送される。
【００３２】
その為、本発明のエミュレーションシステムは、使用者回路（ＤＵＴ）に空間的な独立性が与えられるように、使用者回路をセグメント単位に区分する。また、エミュレーションシステムは、時間的に独立性を持つように、エミュレーションデータにクロックの情報を含む。従って、エミュレーションシステムは、エミュレーションデータが時間的及び空間的な独立性を持つようにして、データを２台以上のコンピュータに分散させて伝送する。分散されたエミュレーションデータを貯蔵したコンピュータは、独立的にデバッグ又はシミュレーションを実行することができると共に、エミュレーションシステムの実行速度を向上させることができる。
【００３３】
また、エミュレーションシステムから生成されたデータは、エミュレーションの入出力分配器を使って、エミュレーションシステムの内部の最小限のメモリで外部のコンピュータに伝送させることができる。
【００３４】
前術のように図面を参照して本発明の好適な実施の形態を説明したが、説明の中で使われた特定の用語の意味は特許請求の範囲に記載された内容を制限するものではない。又、本発明の技術分野で通常の知識を持つ者であれば、本発明の実施の形態が多様に変形できることが理解される。
【図面の簡単な説明】
【００３５】
【図１】本発明によるエミュレーションシステムを表すブロック図である。
【図２】図１に図示されたインターフェース装置を表すブロック図である。
【図３】図１に図示されたＤＵＴのブロック図である。
【図４】図３に図示されたネットトレーサの構成とシンボルを表す図面である。
【図５】図３に図示されたネットトレーサの構成とシンボルを表す図面である。
【図６】図１に図示されたエミュレーションデータの形式を表す図面である。
【図７】図１に図示されたＤＵＴをセグメントで区分して表す図面である。
【図８】図１に図示されたエミュレーションシステムの動作のフロー図である。
【図９】本発明の別の実施の形態のブロック図である。
【符号の説明】
【００３６】
１０    ＤＵＴ
２０    エミュレーション計算部
３０    コントローラ
４０    エミュレーション貯蔵部
５０    インターフェース装置
１００    エミュレーションシステム
【図１】
2008047134.tif 000003
【図２】
2008047134.tif 000004
【図３】
2008047134.tif 000005
【図４】
2008047134.tif 000006
【図５】
2008047134.tif 000007
【図６】
2008047134.tif 000008
【図７】
2008047134.tif 000009
【図８】
2008047134.tif 000010
【図９】
2008047134.tif 000011