(57)【要約】【課題】  モニタ装置のメモリへのデータ書込期間とモニタ装置のメモリからのデータ読出期間とが重なり、モニタ装置のメモリから読み出されたデータの信頼性を確保することが困難な場合があった。【解決手段】  エミュレータ５０は、順次更新される第１データを保持するメモリ５３を有するターゲット装置５１と第１メモリに保持される第１データに一致する第２データを取得するホスト装置５２との間に接続可能である。エミュレータ５０は、バス６と、第２データを保持するメモリ２と、第１データの更新に応じてバス６を介してメモリ２に第２データを逐次入力させるエバチップ１と、バス６に流れるデータが予め設定されたイベント検出条件を満たす場合にイベント検出信号を出力するイベント検出部９と、イベント検出信号に基づいて、メモリ２から第２データを出力させる転送制御部８と、を備える。【選択図】  図１
2008310702.tif 000002
【特許請求の範囲】
【請求項１】
順次更新される第１データを保持する第１メモリを有するターゲット装置と前記第１メモリに保持される前記第１データに一致する第２データを取得するホスト装置との間に接続可能なモニタ装置であって、
第１バスと、
前記第２データを保持する第２メモリと、
前記第１データの更新に応じて前記第１バスを介して前記第２メモリに前記第２データを逐次入力させる第１制御部と、
前記第１バスに流れるデータが予め設定されたイベント検出条件を満たす場合にイベント検出信号を出力するイベント検出部と、
前記イベント検出信号に基づいて、前記第２メモリから前記第２データを出力させる第２制御部と、
を備えるモニタ装置。
【請求項２】
前記第１制御部は、前記ターゲット装置の前記第１メモリに第２バスを介して接続可能であることを特徴とする請求項１に記載のモニタ装置。
【請求項３】
前記第１制御部は、前記ターゲット装置の評価用の半導体集積回路であることを特徴とする請求項２に記載のモニタ装置。
【請求項４】
前記イベント検出部は、
少なくとも１つのイベント値を保持するイベント値保持部と、
前記第１バスに流れる前記データが前記イベント値と一致するか否かを判定し、前記第１バスに流れる前記データが前記イベント値と一致するとき前記イベント検出信号を出力する判定部と、
を備えることを特徴とする請求項１に記載のモニタ装置。
【請求項５】
前記第１バスは、複数の単位バスを有し、
前記イベント値保持部は、複数の前記単位バス毎に設定された複数の前記イベント値を保持し、
前記判定部は、前記単位バスに流れる前記データが前記イベント値と一致するか否かを前記単位バス毎に判定し、すべての前記単位バスで当該単位バスに流れるデータが前記イベント値と一致するとき、前記イベント検出信号を出力することを特徴とする請求項４に記載のモニタ装置。
【請求項６】
前記イベント値保持部は、前記ホスト装置により設定された前記イベント値を保持することを特徴とする請求項４又は５に記載のモニタ装置。
【請求項７】
前記第２メモリから出力された前記第２データを保持する第３メモリを更に備え、
前記第２制御部は、前記第２メモリから前記第３メモリに前記第２データを転送することを特徴とする請求項１乃至６のいずれか一項に記載のモニタ装置。
【請求項８】
前記第２制御部は、
前記イベント検出信号に基づいて転送開始信号を出力するタイミング制御部と、
前記転送開始信号に基づいて前記第２メモリから前記第３メモリに前記第２データを転送させる転送部と、
を備えることを特徴とする請求項７に記載のモニタ装置。
【請求項９】
前記タイミング制御部は、
前記ホスト装置から前記第３メモリへのアクセス状態を示す状態値を保持するレジスタを含むと共に、
前記レジスタの前記状態値が、前記ホスト装置により前記第３メモリから前記第２データが読み出されていることを示すとき、前記転送開始信号を出力しないことを特徴とする請求項８に記載のモニタ装置。
【請求項１０】
前記タイミング制御部は、
前記ホスト装置から前記第３メモリへのアクセス状態を示す状態値を保持するレジスタを含むと共に、
前記レジスタの前記状態値が、前記ホスト装置により前記第３メモリから前記第２データが読み出されていないことを示すとき、前記転送開始信号を出力することを特徴とする請求項８に記載のモニタ装置。
【請求項１１】
前記タイミング制御部は、
前記第２メモリから前記第３メモリに前記第２データが転送されている間、前記ホスト装置により前記第３メモリから前記第２データが読み出され始めたとき、レジスタに競合値を設定することを特徴とする請求項８に記載のモニタ装置。
【請求項１２】
前記イベント検出部には、それぞれ異なる内容の複数の前記イベント検出条件が設定され、
前記転送部は、前記第１バスに流れる前記データが第１の前記イベント検出条件を満たすとき、前記第２メモリから前記第３メモリに前記第２データを転送させ、
前記タイミング制御部は、前記第１バスに流れる前記データが第２の前記イベント検出条件を満たすとき、前記第２メモリへのデータ書込期間と前記第２メモリからのデータ読出期間とが重なっていることを示す競合値をレジスタに設定することを特徴とする請求項８に記載のモニタ装置。
【請求項１３】
第１の前記イベント検出条件は、前記第２メモリへのデータ書込が実行されない期間がイベント検出後に所定期間に亘って存在することを示し、
第２の前記イベント検出条件は、イベント検出時後に前記第２メモリへのデータ書込が実行されることを示すことを特徴とする請求項１２に記載のモニタ装置。
【請求項１４】
前記第２メモリは、前記第１バスに接続される第１ポート、及び前記第２制御部に接続される第２ポートを備えることを特徴とする請求項１乃至１３のいずれか一項に記載のモニタ装置。
【請求項１５】
順次更新される第１データを保持する第１メモリを有するターゲット装置の前記第１メモリの保持データをモニタ装置の第２メモリを利用してモニタするモニタ方法であって、
前記モニタ装置に第１イベント検出条件を設定し、
前記第１データの更新に応じて前記第１データと一致する第２データを前記モニタ装置の前記第２メモリに逐次保持させ、
前記第１イベント検出条件を満足するデータが前記モニタ装置の第１バスに流れたか否かを検出し、
前記第１イベント検出条件を満足する前記データの検出に基づいて前記第２メモリから前記第２データを出力させる、
モニタ方法。
【請求項１６】
前記第１バスに流れる前記データが前記第１イベント検出条件を満たす場合、前記第２メモリから第３メモリに前記第２データを転送し、
ホスト装置からの指令に基づいて前記第３メモリから前記第２データを出力させることを特徴とする請求項１５に記載のモニタ方法。
【請求項１７】
前記第３メモリから前記第２データが出力されているとき、前記第２メモリから前記第３メモリに前記第２データを転送しないことを特徴とする請求項１６に記載のモニタ方法。
【請求項１８】
前記第３メモリから前記第２データが出力されていないとき、前記第２メモリから前記第３メモリに前記第２データを転送することを特徴とする請求項１６に記載のモニタ方法。
【請求項１９】
前記第２メモリから前記第３メモリへの前記第２データの転送中、前記ホスト装置により前記第３メモリから前記第２データが読み出し始められたとき、前記第３メモリへのデータ書込期間と前記第３メモリからのデータ読出期間とが重なっていることを示す競合値を設定することを特徴とする請求項１６に記載のモニタ方法。
【請求項２０】
前記モニタ装置に第２イベント検出条件を設定し、
前記第１バスに流れる前記データが前記第２イベント検出条件を満たすとき、前記第２メモリへのデータ書込期間と前記第２メモリからのデータ読出期間とが重なっていることを示す競合値を設定することを特徴とする請求項１６に記載のモニタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モニタ装置及びモニタ方法に関し、特にターゲット装置のメモリの保持データをリアルタイムにモニタリングする際に用いられるモニタ装置及びモニタ方法に関する。
【背景技術】
【０００２】
近年、半導体集積装置の高機能化の進展が著しい。それと共に、検証対象装置におけるハードウェア又はソフトウェアの動作を精度良く検証することの重要性が高まっている。
【０００３】
検証対象装置（以下、適宜、ターゲット装置と呼ぶ）におけるハードウェア又はソフトウェアの動作検証の際には、一般的にエミュレータというツールを用いる。エミュレータは、ターゲット装置のマイクロプロセッサ(CPU(Central Processing Unit)の機能をエミュレートし、ターゲット装置の動作検証を実現させる。
【０００４】
特許文献１には、電子制御ユニットのメモリ部の記憶内容をモニタするモニタ装置が開示されている。
【特許文献１】特開平６−２９００７３号公報
【０００５】
図１１に、特許文献１記載のモニタ装置の概略的な構成を示す。図１１に示すように、電子制御ユニット１００には、モニタ装置１０１がケーブル１０５を介して接続される。モニタ装置１０１のＤＰＲＡＭ(Dual Port Random Access Memory)１０９には、電子制御ユニット１００のＲＡＭ(Random Access Memory)１０２に保持されたデータと同一のデータが書き込まれる。従って、モニタ装置１０１のＤＰＲＡＭに保持されたデータを解析することで、ターゲット装置としての電子制御ユニット１００の動作を検証することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、ターゲット装置の動作を高精度に検証するためには、ターゲット装置の動作中に、ターゲット装置の半導体記憶装置（以下、適宜、メモリと呼ぶ）に保持されたデータを順次取得し解析することが必要となる。モニタ装置を用いる場合、ターゲット装置のメモリに保持されるデータが順次更新されることに伴って、ターゲット装置のメモリに保持されるデータと同一のデータを保持するモニタ装置のメモリに保持されるデータも順次更新される。
【０００７】
ターゲット装置の動作中にそのメモリに保持されるデータをリアルタイムで検証するため、データ入力用ポート及びデータ出力用ポートの２ポート有するメモリをモニタ装置に組み込んで、そのメモリの保持データをモニタリングすると、モニタ装置のメモリへのデータ書込期間とモニタ装置のメモリからのデータ読出期間との間に重なる期間があることが問題となる。例えば、モニタ装置のメモリからデータを読み出している期間中、ターゲット装置のメモリの更新に伴ってモニタ装置のメモリに保持されているデータも更新されると、モニタ装置のメモリから読み出したデータはある時点におけるターゲット装置のメモリに保持されたデータを正確に反映するものではなくなってしまう場合がある。結果として、ターゲット装置の動作を高精度に検証することが困難となる。
【０００８】
上述のように、モニタ装置のメモリへのデータ書込期間とモニタ装置のメモリからのデータ読出期間とが重なり、モニタ装置のメモリから読み出されるデータの信頼性を確保することが困難な場合があった。
【課題を解決するための手段】
【０００９】
本発明にかかるモニタ装置は、順次更新される第１データを保持する第１メモリを有するターゲット装置と前記第１メモリに保持される前記第１データに一致する第２データを取得するホスト装置との間に接続可能なモニタ装置であって、第１バスと、前記第２データを保持する第２メモリと、前記第１データの更新に応じて前記第１バスを介して前記第２メモリに前記第２データを逐次入力させる第１制御部と、前記第１バスに流れるデータが予め設定されたイベント検出条件を満たす場合にイベント検出信号を出力するイベント検出部と、前記イベント検出信号に基づいて、前記第２メモリから前記第２データを出力させる第２制御部と、を備える。
【００１０】
第１バスに流れるデータが予め設定されたイベント検出条件を満たす場合、第２メモリから第２データが出力される。イベント検出条件は、第２メモリに保持される第２データに更新がない期間を考慮して設定される。これにより、第２メモリに保持される第２データ自体が部分的又は全体的に更新されているときに、第２メモリから第２データが出力されることは抑制され、モニタ装置のメモリから読み出されたデータの信頼性が向上される。
【００１１】
本発明にかかるモニタ方法は、順次更新される第１データを保持する第１メモリを有するターゲット装置の前記第１メモリの保持データをモニタ装置の第２メモリを利用してモニタするモニタ方法であって、前記モニタ装置に第１イベント検出条件を設定し、前記第１データの更新に応じて前記第１データと一致する第２データを前記モニタ装置の前記第２メモリに逐次保持させ、前記第１イベント検出条件を満足するデータが前記モニタ装置の第１バスに流れたか否かを検出し、前記第１イベント検出条件を満足する前記データの検出に基づいて前記第２メモリから前記第２データを出力させる。
【００１２】
第１バスに流れるデータが予め設定されたイベント検出条件を満たす場合、第２メモリから第２データが出力される。イベント検出条件は、第２メモリに保持される第２データに更新がない期間を考慮して設定される。これにより、第２メモリに保持される第２データ自体が部分的又は全体的に更新されているときに、第２メモリから第２データが出力されることは抑制され、モニタ装置のメモリから読み出されたデータの信頼性が向上される。
【発明の効果】
【００１３】
モニタ装置のメモリへのデータ書込期間とモニタ装置のメモリからのデータ読出期間との間の重なりを排除し、モニタ装置のメモリから読み出されるデータの信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、各実施の形態は、説明の便宜上、簡略化されている。図面は簡略的なものであるから、図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。図面は、もっぱら技術的事項の説明のためのものであり、図面に示された要素の正確な大きさ等は反映していない。同一の要素には、同一の符号を付し、重複する説明は省略するものとする。
【００１５】
〔第１の実施形態〕
以下、図１乃至図５を参照して、第１の実施形態について説明する。図１に、エミュレータ５０を含む概略的なブロック図を示す。図２に、イベント検出部９の概略的なブロック図を示す。図３に、イベント設定方法を説明するための概略的なタイミングチャートを示す。図４に、イベント検出条件を説明するための説明図を示す。図５に、エミュレータ５０の動作を説明するための概略的なタイミングチャートを示す。
【００１６】
図１に示すように、エミュレータ（モニタ装置）５０は、ターゲット装置５１とホスト装置５２の間に設けられる。すなわち、エミュレータ５０は、ターゲット装置５１に接続されると共に、ホスト装置５２にも接続される。ターゲット装置５１は、エミュレータ５０又はターゲット装置５１に格納されたプログラムの実行に伴って順次更新されるデータを保持するメモリ（第１メモリ）５３を有する。エミュレータ５０は、メモリ５３に保持されるデータ（第１データ）に一致するデータ（第２データ）をホスト装置５２に出力する。ホスト装置５２は、エミュレータ５０からデータを取得し、ターゲット装置５１の動作を検証する。なお、ホスト装置５２は、エミュレータ５０を用いて、ターゲット装置５１の動作中のメモリ情報を取得する。このとき、エミュレータ５０は、リアルタイムモニタとして機能する。
【００１７】
なお、エミュレータ５０は、ターゲット装置５１にプローブ（不図示）を介して接続される。また、図１に示すように、エミュレータ５０は、ホスト装置５２とは別個の装置として構成されている必要はない。エミュレータ５０はホスト装置５２と一体に構成されていてもよい。ホスト装置５２は、例えば、一般的な情報処理装置（コンピュータ）である。
【００１８】
図１に示すように、エミュレータ５０は、エバチップ（第１制御部）１、メモリ（第２メモリ）２、バッファメモリ（第３メモリ）３、メモリ制御部４、バス（第３バス）５、バス（第１バス）６、バス（第２バス）７を有する。メモリ制御部４は、転送制御部（第２制御部）８、イベント検出部９を有する。転送制御部８は、転送部１０、タイミング制御部１１を有する。イベント検出部９は、判定部１２、イベント値保持部１３を有する。
【００１９】
エバチップ１は、ターゲット装置５１の評価用の半導体集積回路である。エバチップ１は、バス５を介してメモリ５３にデータを入力させる。また、エバチップ１は、メモリ５３に書き込まれるデータに一致するデータをバス６を介してメモリ２に入力させる。換言すると、エバチップ１は、メモリ５３に保持されるデータと同一のデータをメモリ２に出力する。エバチップ１は、モノリシックな半導体集積回路であるが、必ずしもこれに限られるものではない。
【００２０】
メモリ２は、ＤＰＲＡＭ(Dual Port Random Access Memory)であって、データ入力用の第１ポート及びデータ出力用の第２ポートを有する。メモリ２は、エバチップ１により第１ポートを介して入力されたデータを保持する。また、メモリ２は、第２ポートを介して保持データを出力する。なお、メモリ２には、ターゲット装置５１のメモリ５３に書き込まれるデータと同じデータが書き込まれる。この結果、ターゲット装置５１のメモリ５３に一致するデータをメモリ２に実質的に同時点で保持させることが可能となる。また、メモリ２からその保持データを適時に出力させることで、メモリ２を介して、ターゲット装置５１のメモリ５３の保持データをリアルタイムで監視することも可能となる。
【００２１】
バッファメモリ３は、ＲＡＭ(Random Access Memory)であって、メモリ２から転送されたデータを保持する。メモリ２からバッファメモリ３にデータをＤＭＡ(Direct Memory Access)転送することによって、メモリ２に保持されたデータ全体をバッファメモリ３に転送することができる。
【００２２】
メモリ制御部４は、後述の説明から明らかなように、バス６に流れるデータがイベント検出条件を満足したとき、メモリ２に保持されたデータをバッファメモリ３に転送させる。これによって、メモリ２へのデータ書込期間とメモリ２からのデータ読出期間とが重なることが抑制され、ターゲット装置の動作を高精度に検証することを実現させる。なお、バッファメモリ３に保持されたデータは、ホスト装置５２によって適時に読み出されるものとする。また、ホスト装置５２によって読み出されたデータは、所定の信号処理の上、ホスト装置５２の表示部（例えば、液晶ディスプレイ）に表示されるものとする。
【００２３】
メモリ制御部４は、転送制御部８、イベント検出部９を有する。イベント検出部９は、バス６に流れるデータがイベント検出条件を満足したとき、イベント検出信号を転送制御部８に出力する。転送制御部８は、イベント検出信号の入力に基づいて、メモリ２の保持データをバッファメモリ３に転送させる。
【００２４】
イベント検出部９は、判定部１２、イベント値保持部１３を有する。イベント値保持部１３にイベント値を設定することで、イベント検出部９にはイベント検出条件が設定される。なお、後述の説明から明らかになるが、イベント値保持部１３へのイベント値の設定はホスト装置５２によって実行される。
【００２５】
イベント値保持部１３は、イベント値を保持する。判定部１２は、バス６に流れるデータがイベント値保持部１３に設定されたイベント検出条件を満足するのか判定する。より具体的には、判定部１２は、バス６に流れるデータがイベント値保持部１３に設定されたイベント値と一致するのか判定する。判定部１２は、バス６に流れるデータがイベント検出条件を満足したときにイベント検出信号を出力する。
【００２６】
転送制御部８は、転送部１０、タイミング制御部１１を有する。転送部１０は、メモリ２に直接的にアクセスするＤＭＡＣ(Direct Memory Access Controller)であって、メモリ２からバッファメモリ３へのデータ転送を実行する。タイミング制御部１１は、転送部１０の起動、停止を制御するＤＭＡＣ制御部であって、イベント検出信号の入力に基づいて転送部１０にメモリ２からバッファメモリ３へのデータ転送を指示する転送開始信号を出力する。転送部１０は、タイミング制御部１１からの転送開始信号の入力に基づいて、メモリ２からバッファメモリ３へのデータ転送を実行する。
【００２７】
上述のように、メモリ２は、メモリ５３に保持されるデータに一致するデータを保持する。バッファメモリ３にはメモリ２からの転送データが保持されるため、バッファメモリ３にもメモリ５３の保持データに一致するデータが保持される。そして、バッファメモリ３の保持データは、適時にホスト装置５２によって読み出される。このようにして、ターゲット装置５１のメモリ５３のデータに一致するデータがエミュレータ５０からホスト装置５２に出力される。ホスト装置５２は、エミュレータ５０からの出力データを解析し、ターゲット装置の動作を検証する。
【００２８】
ここで、エミュレータ５０の接続関係について説明する。図１に示すように、エバチップ１は、バス５を介して、ターゲット装置５１のメモリ５３に接続される。バス６には、エバチップ１、メモリ２（メモリ２の第１ポート）、イベント検出部９の判定部１２が接続される。メモリ２は、バス６を介してエバチップ１に接続される。この点は、イベント検出部９の判定部１２についても同様である。
【００２９】
転送部１０は、メモリ２（メモリ２の第２ポート）、バッファメモリ３のそれぞれに接続される。また、バス７には、バッファメモリ３、イベント値保持部１３が接続される。バッファメモリ３とホスト装置５２とはバス７を介して接続される。この点は、イベント値保持部１３についても同様である。判定部１２は、イベント値保持部１３に接続され、かつ、バス６に接続される。タイミング制御部１１は、判定部１２に接続されると共に、転送部１０に接続される。
【００３０】
図２に、イベント検出部９の概略的なブロック図を示す。図２に示すように、イベント検出部９のイベント値保持部１３は、レジスタ２０、レジスタ２１、レジスタ２２を有する。レジスタ２０は、バス７のアドレスバスＰａｄｒ、バス７のデータバスＰｄａｔａ、バス７の制御線Ｐｃｏｎに接続される。レジスタ２１、２２についても、レジスタ２０と同様である。レジスタ２０にはイベント値ＩＶ１が保持される。レジスタ２１にはイベント値ＩＶ２が保持される。レジスタ２２にはイベント値ＩＶ３が保持される。各レジスタに保持されるイベント値は、ホスト装置５２がバス７を介して設定する。なお、アドレスバスＰａｄｒ、データバスＰｄａｔａ、制御線Ｐｃｏｎは、バス７の単位バスを構成する。換言すると、アドレスバスＰａｄｒ、データバスＰｄａｔａ、制御線Ｐｃｏｎらは、バス７が流れるデータ種ごとに３分割されたものである。
【００３１】
判定部１２は、バス６のアドレスバスＥａｄｒに流れるデータがレジスタ２０に設定されたイベント値ＩＶ１と一致するのか比較する。同様に、判定部１２は、バス６のデータバスＥｄａｔａに流れるデータがレジスタ２１に設定されたイベント値ＩＶ２と一致するのか比較する。また、判定部１２は、バス６の制御線Ｅｃｏｎに流れるデータがレジスタ２２に設定されたイベント値ＩＶ３と一致するのか比較する。
【００３２】
判定部１２は、バス６のアドレスバスＥａｄｒに流れるデータがレジスタ２０に設定されたイベント値ＩＶ１と一致し、バス６のデータバスＥｄａｔａに流れるデータがレジスタ２１に設定されたイベント値ＩＶ２と一致し、バス６の制御線Ｅｃｏｎに流れるデータがレジスタ２２に設定されたイベント値ＩＶ３と一致したとき、バス６を流れるデータがイベント条件を満足したと判定する。そして、判定部１２は、バス６を流れるデータがイベント条件を満足したことを示すイベント検出信号を出力する。
【００３３】
なお、Ｓ１は判定部１２からタイミング制御部１１に出力される信号であり、判定部１２は、バス６を流れるデータがイベント条件を満足したとき、Ｓ１をローレベルからハイレベルに所定期間切り替え、イベント検出信号をタイミング制御部１１に出力する。換言すると、判定部１２は、バス６を流れるデータがイベント条件を満足したとき、イベント検出信号としてのパルス信号ＰＳ１（図５参照）を出力する。
【００３４】
以下、図３乃至図５を参照して、エミュレータ５０の動作について説明する。図３に、イベント設定方法を説明するための概略的なタイミングチャートを示す。図４に、イベント検出条件を説明するための説明図を示す。図５に、エミュレータ５０の動作を説明するための概略的なタイミングチャートを示す。
【００３５】
図３に示すように、ホスト装置５２は、バス７（アドレスバスＰａｄｒ、データバスＰｄａｔａ、制御線Ｐｃｏｎ）を制御することによって、イベント値保持部１３のレジスタ２０、２１、２２のそれぞれにイベント値を設定する。
【００３６】
図３に示すように、時刻ｔ１のとき、アドレスバスＰａｄｒに０１０００Ｈ、データバスＰｄａｔａに０ＦＦＥＨ、制御線Ｐｃｏｎにローレベルからハイレベルへの立ち上がりパルスが入力される。そして、レジスタ２０にはイベント値ＩＶ１＝０ＦＦＥＨが設定される。時刻ｔ２のとき、アドレスバスＰａｄｒに０１００２Ｈ、データバスＰｄａｔａに０１２３Ｈ、制御線Ｐｃｏｎにローレベルからハイレベルへの立ち上がりパルスが入力される。そして、レジスタ２１にはイベント値ＩＶ２＝０１２３Ｈが設定される。時刻ｔ３のとき、アドレスバスＰａｄｒに０１００４Ｈ、データバスＰｄａｔａに０００２Ｈ、制御線Ｐｃｏｎにローレベルからハイレベルへの立ち上がりパルスが入力される。そして、レジスタ２１にはイベント値ＩＶ３＝０００２Ｈが設定される。
【００３７】
このようにして、イベント値保持部１３には、図４に示すようにイベント検出条件が設定される。なお、ここで設定されるイベント検出条件は、ターゲット装置５１のメモリ５３の保持データに更新がない所定期間の開始時にバス６に流れる信号が設定される。
【００３８】
次に、エミュレータ５０の動作について図５を参照して説明する。なお、イベント検出部９には、図４のようにイベント検出条件が設定されているものとする。また、判定部１２は、タイミング信号ＴＳの立ち上がりパルスの入力に基づいて、バス６を流れるデータがイベント値保持部１３に設定されたイベント検出条件を満足するのか判断するものとする。また、バッファメモリ３にはデータＤ１が保持されているものとする。
【００３９】
図５に示すように、時刻ｔ１のとき、バス６のアドレスバスＥａｄｒに流れるデータは００００Ｈで、バス６のデータバスＥｄａｔａに流れるデータは１１１１Ｈで、バス６の制御線はローレベルである。これは、図４のイベント検出条件には一致しない。従って、判定部１２は、信号Ｓ１をローレベルに維持する。
【００４０】
時刻ｔ２のとき、バス６のアドレスバスＥａｄｒに流れるデータは０００２Ｈで、バス６のデータバスＥｄａｔａに流れるデータは２２２２Ｈで、バス６の制御線はローレベルである。これは、図４のイベント検出条件には一致しない。従って、判定部１２は、信号Ｓ１をローレベルに維持する。
【００４１】
時刻ｔ３のとき、バス６のアドレスバスＥａｄｒに流れるデータは０ＦＦＣＨで、バス６のデータバスＥｄａｔａに流れるデータはＣＣＣＣＨで、バス６の制御線はローレベルである。これは、図４のイベント検出条件には一致しない。従って、判定部１２は、信号Ｓ１をローレベルに維持する。
【００４２】
時刻ｔ４のとき、バス６のアドレスバスＥａｄｒに流れるデータは０ＦＦＥＨで、バス６のデータバスＥｄａｔａに流れるデータは０１２３Ｈで、バス６の制御線はローレベルである。時刻ｔ４のとき、バス６を流れるデータは、図４のイベント検出条件を満足する。従って、判定部１２は、所定時間だけ信号Ｓ１をハイレベルに設定し、パルス信号ＰＳ１（イベント検出信号）をタイミング制御部１１に出力する。タイミング制御部１１は、判定部１２からのパルス信号ＰＳ１の入力に基づいて少し遅延して、転送部１０にメモリ２からバッファメモリ３へのデータ転送を指示するパルス信号ＰＳ２（転送開始信号）を出力する。そして、転送部１０によるメモリ２からバッファメモリ３へのデータ転送（ＤＭＡ(Direct Memory Access)転送）が実行される。この結果、図５に模式的に示すように、バッファメモリ３に保持されたデータは、データＤ１からデータＤ２に更新される。
【００４３】
上述のように、本実施形態においては、バス６に流れるデータがイベント検出条件を満足したとき、メモリ２に保持されたデータをバッファメモリ３に転送させる。これによって、メモリ２へのデータ書込期間とメモリ２からのデータ読出期間とが重なることが抑制され、メモリ２から読み出されるデータの信頼性を向上させることができる。結果として、ターゲット装置５１の動作を高精度に検証することができる。
【００４４】
尚、メモリ２へのデータ書込期間とメモリ２からのデータ読出期間とが重なることを抑制するためには、イベント検出条件をどの時点で設定するのかが重要である。通常、ターゲット装置の開発者は、メモリ５３のデータの更新がどの期間であり、どの期間でないのかを理解しているものである。従って、本発明の属する技術分野において通常の知識を有する開発者にとっては、イベント検出条件の設定条件は具体的な説明をするまでもなく明白である。
【００４５】
〔第２の実施形態〕
以下、図６乃至図９を参照して、第２の実施形態について説明する。図６に、エミュレータ６０を含む概略的なブロック図を示す。図７に、レジスタ３０の概略的な構成を説明するための説明図を示す。図８に、タイミング制御部１１の概略的な回路図を示す。図９に、エミュレータ６０の動作を説明するための概略的なタイミングチャートを示す。
【００４６】
図６に示すように、本実施形態にかかるエミュレータ６０においては、第１の実施形態とは異なり、タイミング制御部１１はレジスタ３０を有する。また、タイミング制御部１１はバス７に接続され、ホスト装置５２から制御可能である。
【００４７】
図７に示すように、レジスタ３０は、複数のビット（ビット０、ビット１、ビット２、・・・)を有する。ビット０には、ホスト装置５２からバッファメモリ３へのアクセス状態を示す状態値が保持される。ビット１には、転送部１０によるＤＭＡ転送期間とホスト装置によるバッファメモリ３からのデータ読出期間との重複を示す競合値が保持される。
【００４８】
タイミング制御部１１は、ビット０に保持された状態値を参照することで、ある時点でホスト装置５２によりバッファメモリ３からデータが読み出されているか否かを判断する。そして、その時点でホスト装置５２によりバッファメモリ３からデータが読み出されている場合、タイミング制御部１１は、メモリ２からバッファメモリ３へのＤＭＡ転送を実行しない。これによって、ホスト装置５２によりバッファメモリ３からデータが読み出されている間に、バッファメモリ３の保持データが更新されることが抑制され、最終的にホスト装置５２に入力されるデータの信頼性が向上される。
【００４９】
また、タイミング制御部１１は、ＤＭＡ転送期間中にホスト装置５２がバッファメモリ３からデータを読出し始めた場合、レジスタ３０のビット１に競合値を設定する。競合値は、転送部１０がＤＭＡ転送している期間とホスト装置がバッファメモリ３からデータを読み出している期間とが重複したことを示す値である。これにより、ホスト装置５２がバッファメモリ３から読み出したデータがターゲット装置５１の解析に適さないものであることを明らかにすることができる。
【００５０】
なお、図６に示すように、転送部１０からタイミング制御部１１には信号Ｓ３が接続される。信号Ｓ３は、転送部１０の動作状態を示すステータス信号である。転送部１０は、ＤＭＡ転送しているとき、信号Ｓ３を所定期間ハイレベルに設定する。換言すると、転送部１０は、ＤＭＡ転送しているとき、ハイ側のパルス信号を出力する。このようにして、転送部１０の動作状態はタイミング制御部１１に伝達される。
【００５１】
ここで、図８を参照して、タイミング制御部１１の具体的な回路構成について説明する。図８に示すように、タイミング制御部１１は、ＡＮＤ回路３１、Ｆ／Ｆ(Flip/Flop)回路３２、ＡＮＤ回路３３、Ｆ／Ｆ回路３４、レジスタ３０を有する。
【００５２】
ＡＮＤ回路３１の第１入力には判定部１２の出力（信号Ｓ１）が接続される。ＡＮＤ回路３１の第２入力にはレジスタ３０のビット０に保持された信号値が反転されたうえで接続される。ＡＮＤ回路３１の出力は、Ｆ／Ｆ回路３２の入力に接続される。Ｆ／Ｆ回路３２の出力（信号Ｓ２）は、転送部１０の入力に接続される。ＡＮＤ回路３３の第１入力には、転送部１０の出力（信号Ｓ３）が接続される。ＡＮＤ回路３３の第２入力にはレジスタ３０のビット０に保持された信号値が接続される。ＡＮＤ回路３３の出力は、Ｆ／Ｆ回路３４の入力に接続される。Ｆ／Ｆ回路３４の出力はレジスタ３０のビット１に接続される。
【００５３】
ホスト装置５２は、バッファメモリ３からデータを読み出すとき、レジスタ３０のビット０に保持される信号値を１（Ｈレベル）に設定する。また、ホスト装置５２は、バッファメモリ３からデータの読み出しを終了するとき、ビット０に保持される信号値を０（Ｌレベル）に設定する。
【００５４】
レジスタ３０のビット０に１（Ｈレベル）が設定されると、ＡＮＤ回路３１は常にローレベルの信号を出力する。これによって、ホスト装置５２がバッファメモリ３からデータを読み出している間、タイミング制御部１１が転送部１０にＤＭＡ転送を指示することはない。
【００５５】
また、転送部１０がＤＭＡ転送しているとき、ＡＮＤ回路３３にはハイレベルの信号Ｓ３が入力される。このとき、ホスト装置５２がバッファメモリ３からデータを読み出し始めると、レジスタ３０のビット０は１（Ｈレベル）に設定される。そして、ＡＮＤ回路３３は、ハイレベルの信号を出力する。ＡＮＤ回路３３から出力されたハイレベルの信号は、Ｆ／Ｆ回路３４で保持され、レジスタ３０のビット１に接続される。結果として、レジスタ３０のビット１には１（Ｈレベル）が設定される。このようにして、レジスタ３０には競合結果が保持され、このときホスト装置５２がバッファメモリ３から読み出したデータがターゲット装置５１の解析に適さないものであることが明らかになる。
【００５６】
ここで、図９を参照して、エミュレータ６０の動作について説明する。
【００５７】
時刻ｔ１のとき、イベント検出条件を満足するデータがバス６から入力される。そして、判定部１２は、パルス信号ＰＳ１を出力する。少し遅延して、タイミング制御部１１は、レジスタのビット０がローレベルであることを確認し、パルス信号ＰＳ２を出力する。転送部１０は、パルス信号ＰＳ２に入力に基づいて、メモリ２からバッファメモリ３へのＤＭＡ転送を実行する。これによって、バッファメモリ３に保持されるデータはデータＤ１からデータＤ２に更新される。なお、ＤＭＡ転送が実行されている間、信号Ｓ３はハイレベルに設定される。
【００５８】
時刻ｔ２のとき、イベント検出条件を満足するデータがバス６から入力される。判定部１２は、パルス信号ＰＳ１を出力する。しかし、タイミング制御部１１は、パルス信号ＰＳ２を出力しない。時刻ｔ２のとき、ホスト装置５２はバッファメモリ３からデータを読み出しており、レジスタのビット０はハイレベルに設定されているためである。
【００５９】
時刻ｔ３のとき、イベント検出条件を満足するデータがバス６から入力される。判定部１２は、パルス信号ＰＳ１を出力する。しかし、タイミング制御部１１は、パルス信号ＰＳ２を出力しない。時刻ｔ３のとき、ホスト装置５２はバッファメモリ３からデータを読み出しており、レジスタのビット０はハイレベルに設定されているためである。
【００６０】
時刻ｔ４のとき、イベント検出条件を満足するデータがバス６から入力される。判定部１２は、パルス信号ＰＳ１を出力する。レジスタのビット０はローレベルであり、少し遅延して、タイミング制御部１１は、パルス信号ＰＳ２を出力する。転送部１０は、メモリ２からバッファメモリ３へのＤＭＡ転送を実行する。これによって、バッファメモリ３に保持されるデータはデータＤ２からデータＤ３に更新される。なお、ＤＭＡ転送が実行されている間、信号Ｓ３はハイレベルに設定される。
【００６１】
時刻ｔ５のとき、イベント検出条件を満足するデータがバス６から入力される。判定部１２は、パルス信号ＰＳ１を出力する。レジスタのビット０はローレベルであり、少し遅延して、タイミング制御部１１は、パルス信号ＰＳ２を出力する。転送部１０は、メモリ２からバッファメモリ３へのＤＭＡ転送を実行する。これによって、バッファメモリ３に保持されるデータはデータＤ３からデータＤ４に更新される。なお、ＤＭＡ転送が実行されている間、信号Ｓ３はハイレベルに設定される。
【００６２】
ここでは、転送部１０によるＤＭＡ転送の間、ホスト装置５２はバッファメモリ３からデータを読み出し始める。つまり、ＤＭＡ転送期間とホスト装置５２によりデータ読出期間とが重複する。ホスト装置５２はバッファメモリ３からデータを読み出し始めるとき、レジスタ３０のビット０は１（Ｈレベル）に設定される。その後、上述の説明から明らかなように、レジスタ３０のビット１が１（Ｈレベル）に設定される。このようにして、転送部１０によるＤＭＡ転送期間と、ホスト装置５２によるデータ読出し期間とが重複したことが明らかになる。
【００６３】
なお、レジスタ３０のビット１の保持値は、ホスト装置５２によって随時監視されるものとする。
【００６４】
上述のように、本実施形態においては、ホスト装置５２がバッファメモリ３からデータの読出しをしているとき、タイミング制御部１１は、メモリ２からバッファメモリ３へのＤＭＡ転送の実行を指示しない。これによって、ホスト装置５２がバッファメモリ３からデータを読み出している間に、バッファメモリ３の保持データが更新されることが抑制され、最終的にホスト装置５２に転送されるデータの信頼性が向上される。
【００６５】
また、タイミング制御部１１は、ＤＭＡ転送期間中に、ホスト装置５２がバッファメモリ３からデータ読出を開始したとき、レジスタ３０のビット１に、転送部１０によるＤＭＡ転送期間とホスト装置によるデータ読出期間とが重複したことを示す競合値を設定する。これにより、ホスト装置５２がバッファメモリ３から読み出したデータがターゲット装置５１の解析に適さないものであることを明らかにすることができる。
【００６６】
〔第３の実施形態〕
以下、図１０を参照して、第３の実施形態について説明する。図１０に、エミュレータ６１を含む概略的なブロック図を示す。
【００６７】
図１０に示すように、本実施形態にかかるエミュレータ６１は、第２の実施形態とは異なり、イベント値保持部４２は、レジスタ２０〜２２に加えて、レジスタ２３〜２５を有する。レジスタ２３〜２５には、レジスタ２０〜２２に設定されたイベント検出条件（第１イベント検出条件）とは異なるイベント検出条件（第２イベント検出条件）が設定される。
【００６８】
意図せずにメモリ５３に保持されたデータが更新されることに伴って、意図せずにメモリ２に保持されたデータも更新される場合がある。このとき、メモリ２からバッファメモリ３にデータを転送していると、バッファメモリ３の保持データは、ある時点におけるターゲット装置５１のメモリ５３の保持データを正確に反映するものではなくなってしまう場合がある。これは、ターゲット装置５１の設計者にとっても、ターゲット装置５１の動作を精度良く予測することは時として困難であるためである。
【００６９】
本実施形態では、エバチップ１がバス６を介してメモリ２にデータを入力させる際にバス６に流れるデータを、レジスタ２３〜２５に予め設定しておく。判定部４１は、バス６に流れるデータがレジスタ２３〜２５に設定されたイベント値と一致するとき、信号Ｓ４を所定期間ハイレベルに設定する。すなわち、判定部４１は、第２イベント検出信号をタイミング制御部４３に出力する。
【００７０】
タイミング制御部４３は、第２イベント検出信号の入力に基づいて、レジスタ３０のビット（例えば、図７のレジスタ３０のビット２）にＤＭＡ転送失敗を示す値を設定する。これによって、ホスト装置５２がバッファメモリ３から読み出したデータが、ターゲット装置５１の解析に適さないものであることを明らかにすることができる。
【００７１】
本発明の技術的範囲は上述の実施形態に限定されない。本発明は、エミュレータに限定されるものでもない。バッファメモリ３は、任意の構成要素であり、必須の構成要素ではない。イベント検出条件として設定される条件は任意であり、また、イベント検出条件として設定されるイベント検出条件の数も任意である。メモリは、ランダムアクセス方式のメモリであるが、この方式以外の方式であっても良い。バス５、バス６は共通のバスとして構成しても構わない。エミュレータは、所定の機能回路毎に区分けして複数チップで構成してもよいし、すべての機能回路をモノリシックとしても良い。
【図面の簡単な説明】
【００７２】
【図１】本発明の第１実施形態にかかるエミュレータ５０を含む概略的なブロック図である。
【図２】本発明の第１実施形態にかかるイベント検出部９の概略的なブロック図である。
【図３】本発明の第１実施形態にかかるイベント設定方法を説明するための概略的なタイミングチャートである。
【図４】本発明の第１実施形態にかかるイベント検出条件を説明するための説明図である。
【図５】本発明の第１実施形態にかかるエミュレータ５０の動作を説明するための概略的なタイミングチャートである。
【図６】本発明の第２実施形態にかかるエミュレータ６０を含む概略的なブロック図である。
【図７】本発明の第２実施形態にかかるレジスタ３０の概略的な構成を説明するための説明図である。
【図８】本発明の第２実施形態にかかるタイミング制御部１１の概略的な回路図である。
【図９】本発明の第２実施形態にかかるエミュレータ６０の動作を説明するための概略的なタイミングチャートである。
【図１０】本発明の第３実施形態にかかるエミュレータ６１を含む概略的なブロック図である。
【図１１】従来のモニタ装置の概略的な構成を説明するための説明図である。
【符号の説明】
【００７３】
５０    エミュレータ
５１    ターゲット装置
５２    ホスト装置
１    エバチップ
２    メモリ
３    バッファメモリ
３    メモリ
４    メモリ制御部
５    バス
６    バス
７    バス
８    転送制御部
９    イベント検出部
１０    転送部
１１    タイミング制御部
１２    判定部
１３    イベント値保持部
２０    レジスタ
２１    レジスタ
２２    レジスタ
３０    レジスタ
５２    メモリ
５３    メモリ
Ｐａｄｒ    アドレスバス
Ｐｄａｔａ    データバス
Ｐｃｏｎ    制御線
Ｅａｄｒ    アドレスバス
Ｅｃｏｎ    制御線
Ｅｄａｔａ    データバス
ＩＶ１    イベント値
ＩＶ２    イベント値
ＩＶ３    イベント値
【図１】
2008310702.tif 000003
【図２】
2008310702.tif 000004
【図３】
2008310702.tif 000005
【図４】
2008310702.tif 000006
【図５】
2008310702.tif 000007
【図６】
2008310702.tif 000008
【図７】
2008310702.tif 000009
【図８】
2008310702.tif 000010
【図９】
2008310702.tif 000011
【図１０】
2008310702.tif 000012
【図１１】
2008310702.tif 000013