(57)【要約】【課題】クロックスピードの高速化を可能にし、高速な論理検証を可能にすることを目的とする。【解決手段】エミュレーション装置２０は、対象装置１１が実装された電子回路基板１０にケーブル３０により接続される。エミュレーション装置２０は、ケーブル３０を介して受け付けた基準クロック１４’の位相を内部処理用に調整した内部クロック１５に従い、データをサンプリングする内部段処理部２３と、基準クロック１４’の位相を電子回路基板１０への出力用に調整した出力クロックに従い、データをサンプリングする出力段処理部２４とを備える。【選択図】図１
2015207050.tif 000002
【特許請求の範囲】
【請求項１】
対象装置が実装された対象システムにケーブルにより接続されるエミュレーション装置であり、
前記対象装置が動作する基準クロックを前記ケーブルを介して受け付ける基準クロック受付部と、
前記対象装置へ入力されるデータを前記ケーブルを介して受け付けるデータ受付部と、
前記基準クロックの位相を内部用に調整した内部クロックに従い、前記データ受付部により受け付けられたデータをサンプリングして出力する内部段処理部と、
前記基準クロックの位相を出力用に調整した出力クロックに従い、前記内部段処理部により出力されたデータをサンプリングして出力する出力段処理部と、
前記出力段処理部により出力されたデータを、前記対象装置の出力として前記ケーブルを介して出力するデータ出力部と
を備えることを特徴とするエミュレーション装置。
【請求項２】
前記内部段処理部は、
前記データを前記ケーブルを介して受け付けたことにより遅延した遅延量分、前記基準クロックの位相をずらすことにより、前記内部クロックを生成する内部クロック生成部と、
前記内部クロック生成部によって生成された内部クロックに従い、前記データ受付部により受け付けられたデータをサンプリングする内部サンプリング部と
を備え、
前記出力段処理部は、
前記データを前記ケーブルを介して受け付けたことにより遅延した遅延量と、前記データを前記ケーブルを介して出力することにより遅延する遅延量とを合わせた合計遅延量分、前記基準クロックの位相をずらすことにより、前記出力クロックを生成する出力クロック生成部と、
前記出力クロック生成部によって生成された出力クロックに従い、前記内部段処理部により出力されたデータをサンプリングする出力サンプリング部と
を備えることを特徴とする請求項１に記載のエミュレーション装置。
【請求項３】
前記内部段処理部は、さらに、
前記データを前記ケーブルを介して受け付けたことにより発生する内部遅延量を、ユーザの入力に従い設定する内部遅延量設定部
を備え、
前記内部クロック生成部は、前記内部遅延量設定部によって設定された内部遅延量分、前記基準クロックの位相をずらすことにより、前記内部クロックを生成し、
前記出力段処理部は、さらに、
前記データを前記ケーブルを介して出力することにより発生する出力遅延量を、ユーザの入力に従い設定する出力遅延量設定部
を備え、
前記出力クロック生成部は、前記内部遅延量と、前記出力遅延量設定部によって設定された出力遅延量とを合わせた合計遅延量分、前記基準クロックの位相をずらすことにより、前記出力クロックを生成する
ことを特徴とする請求項２に記載のエミュレーション装置。
【請求項４】
前記内部段処理部は、さらに、
前記データを前記ケーブルを介して受け付けたことにより発生する内部遅延量を計算する内部遅延量計算部
を備え、
前記内部クロック生成部は、前記内部遅延量計算部によって計算された内部遅延量分、前記基準クロックの位相をずらすことにより、前記内部クロックを生成し、
前記出力段処理部は、さらに、
前記データを前記ケーブルを介して出力することにより発生する出力遅延量を計算する出力遅延量計算部
を備え、
前記出力クロック生成部は、前記内部遅延量と、前記出力遅延量計算部によって計算された出力遅延量とを合わせた合計遅延量分、前記基準クロックの位相をずらすことにより、前記出力クロックを生成する
ことを特徴とする請求項２に記載のエミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）やＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）等の対象装置と接続され、対象装置を模擬するエミュレーション装置に関する。
【背景技術】
【０００２】
対象装置が実装された対象システムにエミュレーション装置をケーブル接続し、エミュレーション装置により対象装置を模擬することがある。この場合には、エミュレーション装置をケーブル接続したことに起因して、対象システムとエミュレーション装置との間に遅延が発生する。この遅延が原因となり、セットアップ時間不足等による誤動作（以下、同期ずれと呼ぶ）が発生する場合がある。
【０００３】
特許文献１には、エミュレーション装置において、対象装置が実装された基板とクロック位相を合わせ、基板と同一のタイミングで処理を実行可能とすることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特願平４−３３７８７７号公報
【特許文献２】特願２００８−２８７４６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１には、クロックラインの位相差なくすことについて記載されているが、データラインの遅延に関しては考慮されていない。そのため、データラインの遅延が原因となり、誤動作が発生する場合がある。この誤動作を発生させないようにするには、データラインの遅延分、クロックスピードを下げなければならない。
この発明は、クロックスピードの高速化を可能にし、高速な論理検証を可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係るエミュレーション装置は、
対象装置が実装された対象システムにケーブルにより接続されるエミュレーション装置であり、
前記対象装置が動作する基準クロックを前記ケーブルを介して受け付ける基準クロック受付部と、
前記対象装置へ入力されるデータを前記ケーブルを介して受け付けるデータ受付部と、
前記基準クロックの位相を内部用に調整した内部クロックに従い、前記データ受付部により受け付けられたデータをサンプリングして出力する内部段処理部と、
前記基準クロックの位相を出力用に調整した出力クロックに従い、前記内部段処理部により出力されたデータをサンプリングして出力する出力段処理部と、
前記出力段処理部により出力されたデータを、前記対象装置の出力として前記ケーブルを介して出力するデータ出力部と
を備えることを特徴とする。
【発明の効果】
【０００７】
この発明に係るエミュレーション装置は、内部用のデータをサンプリングする内部段処理部と、出力用のデータをサンプリングする出力段処理部とを備える。これにより、対象装置が実装された対象システムとの間で、クロックライン及びデータラインの遅延を抑制でき、クロックスピードの高速化が可能になり、高速な論理検証が可能になる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るエミュレーションシステム１の構成図。
【図２】エミュレーションシステム１がスキュー管理を行った場合における動作を示すタイミングチャート。
【図３】エミュレーションシステム１がスキュー管理を行わない場合における動作を示すタイミングチャート。
【図４】エミュレーションシステム１の同期ずれのない理想的な動作を示すタイミングチャート。
【図５】実施の形態２に係るエミュレーションシステム１の構成図。
【図６】実施の形態３に係るエミュレーションシステム１の構成図。
【発明を実施するための形態】
【０００９】
実施の形態１．
図１は、実施の形態１に係るエミュレーションシステム１の構成図である。
エミュレーションシステム１は、電子回路基板１０（対象システムの一例）と、電子回路基板１０とケーブル３０を介して接続されたエミュレーション装置２０とを備える。
【００１０】
電子回路基板１０は、対象装置１１と、レジスタ１２と、レジスタ１３とが実装されている。
対象装置１１は、エミュレーション装置２０によって模擬されるＦＰＧＡやＡＳＩＣ等の装置である。レジスタ１２は、基準クロック１４に従い、入力データＤをサンプリングし、出力データＱを対象装置１１の入力データ１５として対象装置１１へ出力する回路である。レジスタ１３は、基準クロック１４に従い、対象装置１１から出力された出力データ１６を入力データＤとしてサンプリングし、出力データＱを出力回路である。
【００１１】
エミュレーション装置２０は、コネクタ２１と、入力段処理部２２と、内部段処理部２３と、出力段処理部２４とを備える。
コネクタ２１は、ケーブル３０を介して対象装置１１と接続されている。コネクタ２１は、基準クロック受付部２１１と、データ受付部２１２と、データ出力部２１３とを備える。
基準クロック受付部２１１は、電子回路基板１０から出力された基準クロック１４を受け付ける回路である。データ受付部２１２は、電子回路基板１０からシフト（出力）された、対象装置１１の入力データ１５を受け付ける回路である。データ出力部２１３は、出力段処理部２４から出力されたデータを、対象装置１１の出力データ１６として電子回路基板１０へシフトする回路である。
【００１２】
入力段処理部２２は、レジスタ２２１を備える。
レジスタ２２１は、基準クロック受付部２１１により受け付けられた基準クロック１４（図１では、基準クロック１４’と示す）に従い、データ受付部２１２により受け付けられた入力データ１５を、入力データＤとしてサンプリングし、出力データＱを内部段処理部２３へ出力する。
【００１３】
内部段処理部２３は、ＤＬＬ（Ｄｉｇｉｔａｌ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）回路等により構成された内部クロック生成部２３１と、レジスタ２３２（内部サンプリング部）とを備える。
内部クロック生成部２３１は、基準クロック１４（図１では、基準クロック１４’と示す）の位相を調整して内部クロック２５を生成する。レジスタ２３２は、内部クロック２５に従い、レジスタ２２１により出力された出力データＱを入力データＤとしてサンプリングし、出力データＱを出力段処理部２４へ出力する。
【００１４】
出力段処理部２４は、ＤＬＬ回路等により構成された出力クロック生成部２４１と、レジスタ２４２（出力サンプリング部）とを備える。
出力クロック生成部２４１は、基準クロック１４（図１では、基準クロック１４’と示す）の位相を調整して出力クロック２６を生成する。レジスタ２４２は、出力クロック２６に従い、レジスタ２３２により出力された出力データＱを入力データＤとしてサンプリングし、出力データＱをデータ出力部２１３を介して電子回路基板１０へシフトする。
【００１５】
図２から図４に基づき、実施の形態１に係るエミュレーションシステム１の動作について説明する。
図２は、エミュレーションシステム１がスキュー管理を行った場合における動作を示すタイミングチャートである。図３は、エミュレーションシステム１がスキュー管理を行わない場合における動作を示すタイミングチャートである。図４は、エミュレーションシステム１の同期ずれのない理想的な動作を示すタイミングチャートである。なお、図４では、各レジスタが一般的な５ビットシフトレジスタと同様の動作をする場合を示している。
【００１６】
電子回路基板１０において、レジスタ１２は、基準クロック１４に従い、入力データＤをサンプリングする。レジスタ１２は、出力データＱを対象装置１１の入力データ１５として出力する。入力データ１５は、ケーブル３０を介してエミュレーション装置２０へシフトされる。
すると、エミュレーション装置２０において、コネクタ２１の基準クロック受付部２１１が基準クロック１４を受け付けるとともに、データ受付部２１２がシフトされた入力データ１５を受け付ける。
この際、ケーブル３０を介した影響により、シフトされた基準クロック１４と入力データ１５とは遅延する。ここでは、遅延した基準クロック１４を基準クロック１４’と記載する。つまり、図２及び図３における基準クロック１４と基準クロック１４’とのずれを示す遅延Ａを、シフトされた入力データ１５と基準クロック１４とが含んだ状態となる。
【００１７】
次に、エミュレーション装置２０において、入力段処理部２２のレジスタ２２１が、基準クロック１４’に従い、シフトされた入力データ１５を入力データＤとしてサンプリングする。つまり、レジスタ２２１は、遅延を含む基準クロック１４’に従い、入力データＤとしてサンプリングする。そして、レジスタ２２１は、出力データＱを内部段処理部２３へ出力する。
【００１８】
次に、エミュレーション装置２０において、内部段処理部２３の内部クロック生成部２３１が基準クロック１４’の位相を調整して内部クロック２５を生成する。具体的には、内部クロック生成部２３１は、遅延Ａ相当分、基準クロック１４’の位相をずらすことにより、内部クロック２５を生成する。つまり、内部クロック生成部２３１は、基準クロック１４に同期した内部クロック２５を生成する。
内部段処理部２３のレジスタ２３２は、内部クロック２５に従い、レジスタ２２１により出力された出力データＱを入力データＤとしてサンプリングする。レジスタ２３２は、出力データＱを出力段処理部２４へ出力する。
【００１９】
次に、エミュレーション装置２０において、出力段処理部２４の出力クロック生成部２４１が基準クロック１４’の位相を調整して出力クロック２６を生成する。
ここで、後にデータ出力部２１３から電子回路基板１０へシフトされる出力データ１６は、ケーブル３０を介してシフトされるため、遅延する。つまり、図２及び図３における遅延Ｂを、シフトされる出力データ１６が含んだ状態となる。
そこで、出力クロック生成部２４１は、遅延Ａと遅延Ｂとを合わせた合計遅延量相当分、基準クロック１４’の位相をずらすことにより、出力クロック２６を生成する。つまり、出力クロック生成部２４１は、遅延Ｂ分、基準クロック１４よりも位相が前にずれた出力クロック２６を生成する。
出力段処理部２４のレジスタ２４２は、出力クロック２６に従い、レジスタ２３２により出力された出力データＱを入力データＤとしてサンプリングする。レジスタ２３２は、出力データＱをデータ出力部２１３へ出力する。
【００２０】
次に、エミュレーション装置２０において、コネクタ２１のデータ出力部２１３が、レジスタ２４２により出力された出力データＱを対象装置１１の出力データ１６として、電子回路基板１０へシフトする。
すると、電子回路基板１０において、レジスタ１３は、基準クロック１４に従い、出力データ１６を入力データＤとしてサンプリングする。
上述した通り、ケーブル３０を介した影響により、シフトされた出力データ１６は図２及び図３に示す遅延Ｂだけ遅延する。しかし、出力データ１６は、出力段処理部２４において、遅延Ｂ分、位相を前にずらした出力クロック２６に従いサンプリングされている。そのため、レジスタ１３は、基準クロック１４に従い、出力データ１６をサンプリングしても、同期ずれは生じない（図２及び図４におけるタイミングＸ時にレジスタ１３でサンプリングされるデータ参照）。
【００２１】
これに対して、図３に示すように、エミュレーションシステム１がスキュー管理を行わない場合、レジスタ１３がサンプリングするデータに同期ずれが生じている（図３及び図４におけるタイミングＸ時にレジスタ１３でサンプリングされるデータ参照）。
【００２２】
なお、上記説明では、理解を容易にするため、単にデータをシフトする処理だけを説明した。しかし、実際には、エミュレーション装置２０において、対象装置１１で実現される処理が実行される。この場合、内部段処理部２３のレジスタ２３２によりサンプリングされたデータを用いて処理を実行すればよい。そして、処理した結果をレジスタ２３２が出力データＱとして出力すればよい。
内部段処理部２３のレジスタ２３２は、基準クロック１４と同期した内部クロック２５を用いて、遅延のない入力データＤをサンプリングする。そのため、内部段処理部２３のレジスタ２３２によりサンプリングされたデータを用いて処理を実行すれば、同期ずれのない処理を実行することが可能である。
【００２３】
以上のように、実施の形態１に係るエミュレーションシステム１では、内部段処理部２３及び出力段処理部２４がスキュー制御を行い、ケーブル３０による遅延を相殺する。これにより、基準クロック１４のクロックスピードを落とすことなく、高速な論理検証が可能になる。
【００２４】
また、実施の形態１では、処理部を３つに分け、ケーブルを介することによる遅延量分のクロック位相をずらすものを示したが、処理部の分割数は複数であれば、３でなくても良く、遅延量全てを相殺できなくても、基準クロックの速度を上げることが出来るため、高速な論理検証が可能になる。
【００２５】
実施の形態２．
図５は、実施の形態２に係るエミュレーションシステム１の構成図である。
実施の形態２に係るエミュレーションシステム１は、内部段処理部２３が内部遅延量設定部２３３を備える点と、出力段処理部２４が出力遅延量設定部２４３を備える点とが、図１に示す実施の形態１に係るエミュレーションシステム１と異なる。
【００２６】
内部遅延量設定部２３３は、内部クロック生成部２３１が調整する遅延量（遅延量Ａに相当）を設定する回路である。例えば、内部遅延量設定部２３３は、ユーザによって操作される外部の制御用端末からの入力値に従い、任意に遅延量を設定する。
内部クロック生成部２３１は、内部遅延量設定部２３３によって設定された遅延量だけ、基準クロック１４の位相を前にずらして、内部クロック２５を生成する。
【００２７】
出力遅延量設定部２４３は、出力クロック生成部２４１が調整する遅延量（遅延量Ａ＋Ｂに相当）を設定する回路である。例えば、出力遅延量設定部２４３は、ユーザによって操作される外部の制御用端末からの入力値に従い、任意に遅延量を設定する。
出力クロック生成部２４１は、出力遅延量設定部２４３によって設定された遅延量だけ、基準クロック１４の位相を前にずらして、出力クロック２６を生成する。
【００２８】
実施の形態２に係るエミュレーションシステム１では、制御用端末から遅延量を任意に調整できる。そのため、論理検証を効率よく実施できる。
【００２９】
実施の形態３．
図６は、実施の形態３に係るエミュレーションシステム１の構成図である。
実施の形態３に係るエミュレーションシステム１は、内部段処理部２３が内部遅延量計算部２３４を備える点と、出力段処理部２４が出力遅延量計算部２４４を備える点とが、図１に示す実施の形態１に係るエミュレーションシステム１と異なる。
【００３０】
内部遅延量計算部２３４は、内部クロック生成部２３１が調整する遅延量（遅延量Ａに相当）を計算する回路である。例えば、内部遅延量計算部２３４は、レジスタ２３２で同期ずれが発生するまで遅延量を徐々に変更する。内部遅延量計算部２３４は、同期ずれが発生した場合、同期ずれが発生する手前の同期ずれが発生しない遅延量を設定値として計算する。
内部クロック生成部２３１は、内部遅延量計算部２３４によって設定値として計算された遅延量だけ、基準クロック１４の位相を前にずらして、内部クロック２５を生成する。
【００３１】
出力遅延量計算部２４４は、出力クロック生成部２４１が調整する遅延量（遅延量Ａ＋Ｂに相当）を計算する回路である。例えば、出力遅延量計算部２４４は、レジスタ１３で同期ずれが発生するまで遅延量を徐々に変更する。出力遅延量計算部２４４は、同期ずれが発生した場合、同期ずれが発生する手前の同期ずれが発生しない遅延量を設定値として計算する。
出力クロック生成部２４１は、出力遅延量計算部２４４によって設定値として計算された遅延量だけ、基準クロック１４の位相を前にずらして、出力クロック２６を生成する。
【００３２】
実施の形態３に係るエミュレーションシステム１では、適切な遅延量を計算できる。そのため、論理検証を効率よく実施できる。また、実動作に合わせて適切な遅延量が計算されるため、基準クロックのクロックスピードを落とすことなく、高速な論理検証が可能になる。
【００３３】
なお、以上の説明において、「〜部」を回路であると説明した。しかし、「〜部」は回路に限らず、ソフトウェアによって実現されていてもよい。この場合、エミュレーション装置２０は、ＣＰＵ等の処理装置と、ＲＡＭ、ＲＯＭ等の記憶装置とを備える。そして、エミュレーション装置２０は、ＲＯＭ等に記憶された「〜部」を実現するソフトウェアをＲＡＭ等に読み出し、ＣＰＵ等の処理装置によって実行する。
【符号の説明】
【００３４】
１  エミュレーションシステム、１０  電子回路基板、１１  対象装置、１２，１３  レジスタ、１４  基準クロック、１５  入力データ、１６  出力データ、２０  エミュレーション装置、２１  コネクタ、２１１  基準クロック受付部、２１２  データ受付部、２１３  データ出力部、２２  入力段処理部、２２１  レジスタ、２３  内部段処理部、２３１  内部クロック生成部、２３２  レジスタ、２３３  内部遅延量設定部、２３４  内部遅延量計算部、２４  出力段処理部、２４１  出力クロック生成部、２４２  レジスタ、２４３  出力遅延量設定部、２４４  出力遅延量計算部、３０  ケーブル。
【図１】
2015207050.tif 000003
【図２】
2015207050.tif 000004
【図３】
2015207050.tif 000005
【図４】
2015207050.tif 000006
【図５】
2015207050.tif 000007
【図６】
2015207050.tif 000008