(57)【要約】【課題】高精度のデバッグあるいは動作確認を可能にする。【解決手段】エミュレータスタブ１２０は、通信制御手段１２２によってデバッガスタブ２３０がデバッガ２１０において発生したイベントに応じて生成し、通信ネットワーク３００経由で送信したイベント情報を取得する。エミュレータ制御手段１２１は、取得したイベント情報を分析し、分析されたイベントに応じてエミュレータ１１０を制御し、イベントに応じた半導体装置の動作をハードウェア設計情報に基づいて仮想的に再現させるエミュレーション処理を実行させる。エミュレータ１１０によって仮想的に再現された半導体装置の擬似動作に応じて発生するイベント結果を取得し、必要に応じて、通信ネットワーク３００、及びデバッガスタブ２３０を介してデバッガ２１０へ通知する。【選択図】　　　　図１
2004030124.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵコアを有する半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガに接続され、前記デバッガにおいて発生したイベントに応じたイベント情報を生成して送信するとともに、前記イベントに応じたイベント結果を前記デバッガに通知するイベント通知装置との間の通信を制御する通信制御手段と、
前記イベント通知装置によって生成され、送信された前記デバッガにおいて発生した前記イベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを前記イベントに応じて制御するとともに、前記エミュレータによる擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記イベント通知装置に送信するエミュレータ制御手段と、
を備えたことを特徴とする半導体装置の開発支援連携装置。
【請求項２】
前記通信制御手段は、前記所定の通信回線を介して接続する複数の前記イベント通知装置に対して時分割で通信の実行権を振り分け、接続するそれぞれの前記イベント通知装置の生成する前記イベント情報を取得することを特徴とする請求項１記載の半導体装置の開発支援連携装置。
【請求項３】
前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域からのデータ読出しである場合に、
前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域に対して前記イベントに応じた読出しを実行し、前記仮想レジスタ領域からの読出しデータを前記デバッガに通知することを特徴とする請求項１記載の半導体装置の開発支援連携装置。
【請求項４】
前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域へのデータ書込みである場合に、前記エミュレータから前記ハードウェア設計情報に基づくレジスタ領域の書込みに関するタイミング情報を取得し、前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域への書込みを前記タイミング情報より得られるレジスタ領域への書込みタイミングに従って実行することを特徴とする請求項１記載の半導体装置の開発支援連携装置。
【請求項５】
ＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援する半導体装置の開発支援方法において、
前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを、所定の通信回線を介して前記半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグに用いるデバッガに接続する開発支援連携装置が、
前記デバッガにおいて発生したイベントに応じて生成されて前記所定の通信回線を介して送信されるイベント情報を取得するステップと、
取得した前記イベント情報を分析し、前記エミュレータを制御して前記イベントに応じた前記半導体装置の擬似動作を前記ハードウェア設計情報に基づいて仮想的に再現させるステップと、
前記エミュレータによって仮想的に再現された前記半導体装置の擬似動作に応じたイベント結果を必要に応じて前記デバッガに通知するステップと、
を有することを特徴とする半導体装置の開発支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は半導体装置の開発支援連携装置及び開発支援方法に関し、特にＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援する半導体装置の開発支援連携装置及び開発支援方法に関する。
【０００２】
【従来の技術】
近年の半導体デバイスの分野では、電子回路の機能ブロック（以下、コアとする）を用途に応じて複数配置し、１チップに集約したシステム・オン・チップ（システムＬＳＩ）構成をとるものが多い。このようなＩＣ（集積回路；Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）あるいはＡＳＩＣ（特定用途向けＩＣ；Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）には、ＣＰＵ（中央演算処理装置）コアを備え、複雑な解析処理については、ＣＰＵコア内部のプログラムで処理する方式を採るものがある。
【０００３】
このようなＩＣあるいはＡＳＩＣ等の半導体装置（以下、システムＬＳＩとする）、あるいは、このようなシステムＬＳＩをシステムの一部として構成された装置の開発を支援するため、試作機であるインサーキット・エミュレータ（以下、ＩＣＥという）を用いて動作検証、性能評価等を行なっている。
【０００４】
【発明が解決しようとする課題】
しかし、従来のシステムＬＳＩの開発支援方法及び開発支援装置では、試作機ができるまで正確なタイミングでデバッグあるいは動作確認ができないという問題がある。
【０００５】
近年のシステムＬＳＩ開発においては、開発期間の短縮を図るため、ハードウェア検証と同時にソフトウェアの開発・検証を行なわなければならない。このため、ハードウェア検証が終了して試作機が出来上がるまでの間、ソフトウェアのデバッグ及び動作確認は、仮想的な集積回路モデルに基づいて行なわれてきた。例えば、システムＬＳＩに内蔵するソフトウェアの開発では、ＣＰＵコア中のマイクロプロセッサの代わりにマイクロプロセッサをエミュレーションするＩＣＥを接続し、このＩＣＥを用いてＣＰＵコア周辺のハードウェアが完成する前にＣＰＵコアの動作記述プログラムのデバッグや動作解析、動作確認を行なっていた。しかしながら、マイクロプロセッサの擬似動作を再現することはできるが、例えば、メモリ領域や回路内のレジスタ領域等にアクセスした場合に生じる信号伝播遅延時間を再現することはできない。
【０００６】
このように、仮想的な集積回路モデルを用いてエミュレーションを行なわなければならないため、実現しようとするシステムＬＳＩと信号伝播遅延時間が異なってしまう等、正確なタイミングを再現することができなかった。このため、試作機が出来上がるまでは、正確なタイミングでのデバッグあるいは動作確認を行なうことができず、システムＬＳＩ全体のテストは、試作機の完成を待って行なわなければならなかった。この結果、試作機が作成された後に不具合が発覚するという問題が生じる等、開発完了までの期間が長期化する要因の１つになっていた。
【０００７】
以上のように、従来の半導体装置の開発支援方法及び開発支援装置では、試作機がない状態において高精度かつ効率的な検証を行なうことが難しく、これがシステムＬＳＩの開発期間短縮の妨げとなっていた。
【０００８】
本発明はこのような点に鑑みてなされたものであり、正確なタイミングをエミュレーションし、高精度のデバッグあるいは動作確認を行なうことが可能な半導体装置の開発支援連携装置及び開発支援方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明では上記課題を解決するために、ＣＰＵコアを有する半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガに接続され、前記デバッガにおいて発生したイベントに応じたイベント情報を生成して送信するとともに、前記イベントに応じたイベント結果を前記デバッガに通知するイベント通知装置との間の通信を制御する通信制御手段と、前記イベント通知装置によって生成され、送信された前記デバッガにおいて発生したイベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを前記イベントに応じて制御するとともに、前記エミュレータによる擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記イベント通知装置に送信するエミュレータ制御手段と、を備えたことを特徴とする半導体装置、が提供される。
【００１０】
このような構成の半導体装置の開発支援連携装置であるエミュレータスタブ１２０は、ハードウェア設計情報に基づいて半導体装置の擬似動作を再現するエミュレータ１１０と、通信ネットワーク３００によって接続するイベント通知装置であるデバッガスタブ２３０を介して、半導体装置あるいは半導体装置を組み込んだ装置に内蔵される実機用プログラムのデバッガ２１０と、に接続し、デバッガ２１０とエミュレータ１１０との連携動作を処理する。エミュレータスタブ１２０の通信制御手段１２２は、デバッガスタブ２３０によってデバッガ２１０において発生したイベントに応じて生成され、通信ネットワーク３００経由で送信されるイベント情報を取得し、取得したイベント情報をエミュレータ制御手段１２１へ送る。エミュレータ制御手段１２１は、イベント情報を分析し、エミュレータ１１０を制御して、イベントに応じた半導体装置の動作をハードウェア設計情報に基づいて仮想的に再現させるエミュレーション処理を実行させる。エミュレータ１１０によって仮想的に再現された半導体装置の擬似動作に応じたイベント結果は、必要に応じて、通信制御手段１２２より通信ネットワーク３００を介してデバッガスタブ２３０に送信され、さらにデバッガ２１０へ通知される。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明の一実施の形態である半導体装置の開発支援連携装置を含む開発支援システムの構成図である。
【００１２】
本発明に係る開発支援システムは、ハードウェア設計情報に基づいて対象となる半導体装置のエミュレーションのためのエミュレータシステム１００と、対象となる半導体装置あるいは半導体装置を組み込んだ装置に内蔵される実機用プログラムのデバッグのためのデバッガシステム２００とが通信ネットワーク３００を介して接続している。
【００１３】
エミュレータシステム１００は、ハードウェア設計情報に基づいてエミュレーションを実行するエミュレータ１１０と、エミュレータ１１０から読出し／書込みが可能な所定の記録媒体であるハードウェアデザイン１１１と、デバッガ２１０において発生したイベントの通知をデバッガスタブ２３０から受けてエミュレータ１１０を連携動作させる開発支援連携装置であるエミュレータスタブ１２０と、から構成される。一方、デバッガシステム２００は、実機用プログラム記録媒体２２０に記録されたプログラムのデバッグを実行するデバッガ２１０と、デバッガ２１０に発生したイベントをエミュレータスタブ１２０に通知するイベント通知装置であるデバッガスタブ２３０と、から構成される。
【００１４】
エミュレータ１１０は、半導体装置を構成する回路を定義するハードウェア設計情報に基づいて、定義された半導体装置の規定回路の擬似動作を仮想的に再現するエミュレーション処理を実行する。ハードウェア設計情報で定義されたメモリ領域、レジスタ領域、内部ノード領域へのアクセスは、ハードウェアデザイン１１１に設けられた仮想領域に対して実行される。このとき、各仮想領域へアクセス時に生じる信号伝播遅延時間等は、正確に再現される。また、要求があれば、エミュレータスタブ１２０に対して、ハードウェア設計情報に基づく各種タイミング情報を提供する。
【００１５】
ハードウェアデザイン１１１は、エミュレータ１１０及びエミュレータスタブ１２０から読出し／書込みが可能な記録媒体で、ハードウェア設計情報で定義された規定回路のレジスタ領域、メモリ領域、内部ノード領域及びプログラム記録領域が仮想的に構築されている。ハードウェアデザイン１１１の設定は、半導体装置のモジュール単位で行なうことができる。モジュール単位での開発に伴って、ハードウェアデザイン１１１には、モジュール単位の仮想領域が順次形成される。ハードウェアデザイン１１１は、エミュレータ１１０内部に設けられていても良い。
【００１６】
エミュレータスタブ１２０は、エミュレータ１１０と、通信ネットワーク３００を介してデバッガスタブ２３０と接続しており、エミュレータ１１０の制御及びハードウェアデザイン１１１へのアクセス制御を行なうエミュレータ制御手段１２１と、通信ネットワーク３００による通信の制御を行なう通信制御手段１２２とから構成される。
【００１７】
エミュレータ制御手段１２１は、通信制御手段１２２から取得したイベント情報を解析し、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍ　Ｉｎｔｅｒｆａｃｅ）等を用いてイベントに応じたエミュレータ１１０の実行を制御するとともに、ハードウェアデザイン１１１へのアクセス制御を行なう。例えば、デバッガ２１０に発生したイベントが、プログラムのステップ実行、実行、あるいは強制ブレーク等である場合、エミュレータ１１０を制御し、イベントに応じた擬似動作を再現させる。これにより、エミュレータ１１０は、プログラムをステップ実行させた場合、あるいはデバッガ２１０で設定されたプログラムアドレスまでのプログラムを実行させた場合の規定回路の動作を仮想的に再現する。このときエミュレータ１１０は、ハードウェア設計情報に基づいて、規定回路に持つ信号伝播遅延時間等のタイミングを正確に再現する。また、ステップや強制ブレーク等により実行が停止された状態におけるステータス等のイベント結果は、通信制御手段１２２よりデバッガスタブ２３０に送信される。一方、イベントがレジスタ領域やメモリ領域、あるいはワイヤ／ポートからの読出し等、ハードウェアデザイン１１１上の仮想領域からのデータ読出しである場合、デバッガ２１０の指定する仮想領域のデータを読出し、通信制御手段１２２よりデバッガスタブ２３０に送信する。また、イベントがレジスタ領域やメモリ領域への書込み等、タイミングを制御する必要があるハードウェアデザイン１１１上の仮想領域へのデータ書込みである場合、エミュレータ１１０からそれぞれのイベントに関するタイミング情報を取得し、取得したタイミング情報に基づいてハードウェアデザイン１１１の仮想領域への書込みを行なう。
【００１８】
通信制御手段１２２は、通信ネットワーク３００に接続し、通信ネットワーク経由でデバッガスタブ２３０から送信されるデバッガ２１０において発生したイベントに応じて生成されたイベント情報を取得し、エミュレータ制御手段１２１へ通知する。また、発生したイベントに応じたイベント結果が通知される場合には、イベント結果を通信ネットワーク３００経由でデバッガスタブ２３０へ通知する。図では、デバッガシステム２００は１つであるとしたが、複数のデバッガシステム２００に対して処理を行なうこともできる。この場合、通信ネットワーク３００を介して接続する複数のデバッガスタブ２３０に対して時分割で通信の実行権を振り分け、同時に制御を行なう。
【００１９】
デバッガシステム２００を構成するデバッガ２１０は、実機用プログラム記録媒体２２０に記録されたプログラムをロードし、ＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）等を介して入力するユーザの指示に従って、プログラムの実行、プログラムのステップ実行、強制ブレーク、あるいはメモリ領域のリード／ライト、レジスタ領域のリード／ライト、ワイヤやＩ／Ｏポート等の内部ノードへのアクセス等のイベントを発生させる。
【００２０】
デバッガスタブ２３０は、デバッガ２１０と、通信ネットワーク３００を介してエミュレータスタブ１２０に接続しており、ＡＰＩを用いてデバッガ２１０に発生するイベントを取得してイベント情報を生成し、エミュレータスタブ１２０に送信するとともに、エミュレータスタブ１２０から取得したイベント結果をデバッガ２１０に通知する。
【００２１】
このような構成の開発支援システムの動作及び開発支援方法について説明する。
実機用プログラム記録媒体２２０に記録されたプログラムがデバッガ２１０にロードされ、デバッガシステム２００を用いたデバッグが開始される。デバッグが開始されると、デバッガ２１０においてプログラムの実行、ステップごとの実行、強制ブレーク等のイベントや、レジスタ領域、メモリ領域、Ｉ／Ｏポート等の内部ノード等へのアクセス等のイベントが順次発生する。発生したイベントはデバッガスタブ２３０に通知され、デバッガスタブ２３０は、発生したイベントをエミュレータスタブ１２０が解読可能なイベント情報に変換し、このイベント情報を通信ネットワーク３００経由でエミュレータスタブ１２０に送信する。
【００２２】
エミュレータスタブ１２０の通信制御手段１２２は、イベント情報を取得し、エミュレータ制御手段１２１へ送る。エミュレータ制御手段１２１は、イベント情報を解析し、発生したイベント情報に応じてエミュレータ１１０を制御するとともに、エミュレータ１１０の動作タイミングに合わせてハードウェアデザイン１１１の仮想領域への読出し／書込みを行なう。
【００２３】
イベントがプログラム実行や、プログラムのステップ実行、強制ブレーク等のプログラムに従って半導体装置を動作させたり、強制的に動作を停止させたりするイベントの場合、エミュレータ１１０を制御し、イベントに応じた半導体装置の擬似動作を再現させる。このとき、エミュレータ１１０は、規定回路のタイミングを正確に再現する。さらに、実行停止時には、正常終了、あるいは異常終了等の実行停止時のステータスを取得し、イベント結果として通信制御手段１２２経由でデバッガスタブ２３０に送信する。
【００２４】
また、イベントがメモリリード、レジスタリード、内部ノードリード等のリード処理である場合、ハードウェアデザイン１１１に設けられたそれぞれの仮想領域からデータを読み出す。読み出したデータは、イベント結果として通信制御手段１２２よりデバッガスタブ２３０に送信される。
【００２５】
また、イベントがメモリライト、レジスタライト等のライト処理である場合、エミュレータ１１０からハードウェア設計情報に基づくタイミング情報を取得し、このタイミング情報に従ってメモリ領域あるいはレジスタ領域へのデータ書込みを行なう。
【００２６】
エミュレータスタブ１２０よりイベント結果を取得したデバッガスタブ２３０は、これをデバッガ２１０が解読可能な形式に変換し、デバッガ２１０へ通知する。
【００２７】
このように、デバッガシステム２００で発生したイベントがデバッガスタブ２３０によって通信ネットワーク３００経由でエミュレータシステム１００のエミュレータスタブ１２０に通知される。エミュレータスタブ１２０は、取得したイベントに応じてエミュレータ１１０を制御し、ハードウェア設計情報に基づく擬似動作を再現させる。このエミュレータ１１０は、規定回路の動作タイミングを正確に再現する。さらに、デバッガ２１０からの要求イベントに応じて、エミュレータシステム１００のハードウェアデザイン１１１に設けられたメモリ領域、レジスタ領域等の仮想領域の読出し／書込みを行なうことができる。すなわち、デバッガ２１０は、試作機と同等のタイミングで動作記述プログラムをデバッグすることができる。また、モジュール単位で設定されるハードウェアデザイン１１１をエミュレータ１１０と接続することにより、半導体装置全体のハードウェア設計が終了していない開発の速い段階から精度の高いデバッグあるいは動作確認を行なうことが可能となり、この結果、システムＬＳＩの開発期間を短縮させることができる。
【００２８】
また、エミュレータシステム１００と、デバッガシステム２００との間は、通信ネットワーク３００によって接続されるため、ハードウェアデザインの開発・検証と、ソフトウェアの開発・検証とを遠隔地間で行なうことが可能となる。さらに、エミュレータシステム１００に対して複数のデバッガシステム２００を接続することが可能である。
【００２９】
次に、具体的な装置を用いた実施構成について説明する。図２は、本発明の一実施の形態である開発支援方法を実現するシステム構成例である。図１と同じものには同じ番号を付し、説明は省略する。
【００３０】
本発明に係る開発支援システムは、エミュレータ処理を実行するエミュレータ１１０と、デバッガとして機能する汎用計算機Ｂ（５０Ｂ）と、エミュレータ１１０を汎用計算機Ｂ（５０Ｂ）の処理に連携させて動作させる開発支援連携装置である汎用計算機Ａ（５０Ａ）とから構成される。汎用計算機Ａ（５０Ａ）と汎用計算機Ｂ（５０Ｂ）間は、通信ネットワークによって接続されている。
【００３１】
エミュレータ１１０は、仮想領域を形成するハードウェアデザイン１１１を内部に備え、ハードウェア設計情報に基づいて半導体装置のエミュレーションを実行する。
【００３２】
汎用計算機Ａ（５０Ａ）は、通信ネットワークに接続するネットワークポート５０１Ａを有し、汎用計算機Ａ（５０Ａ）をエミュレータ１１０の実行制御を行なうエミュレータスタブ１２０として機能させるためのサーバプログラムが内部に格納されている。このプログラムは、デバッガスタブ２３０からの通信により起動するデーモンである。
【００３３】
汎用計算機Ｂ（５０Ｂ）は、通信ネットワークに接続するネットワークポート５０１Ｂを有し、汎用計算機Ｂ（５０Ｂ）を、デバッガ２１０及びデバッガスタブ２３０として機能させるためのプログラムを備えている。
【００３４】
このような構成の開発支援システムの動作及び開発支援方法について説明する。
エミュレータ１１０は、ハードウェアデザイン１１１を含む立ち上げを行なう。次に、汎用計算機Ａ（５０Ａ）のエミュレータスタブ１２０の立ち上げを行なう。エミュレータスタブ１２０は、デーモンとして立ち上がり、デバッガスタブ２３０からの通信待ち状態になる。続いて、汎用計算機Ｂ（５０Ｂ）のデバッガ２１０の立ち上げを行なう。このとき、デバッガ２１０と同時にデバッガスタブ２３０が立ち上がる。デバッガスタブ２３０が立ち上がると、エミュレータスタブ１２０との通信接続を行ない、デバッガスタブ２３０とエミュレータスタブ１２０との通信接続が完了して初期化処理が終了する。以降、デバッガ２１０に発生したイベントは、デバッガスタブ２３０を介してエミュレータスタブ１２０に通知されるようになる。また、デバッグ開始前に、実機用プログラム記録媒体２２０に記録された実機用プログラムであるファームプログラムがデバッガ２１０にロードされる。
【００３５】
初期化処理終了により、汎用計算機Ｂ（５０Ｂ）によるデバッグが可能になる。デバッグが開始され、デバッガ２１０においてメモリのリード／ライト、レジスタのリード／ライト、ワイヤ／ポートのリード、あるいはステップ・実行・強制ブレーク等のイベントが発生すると、ＡＰＩを用いてデバッガスタブ２３０が起動され、イベントが発生したことが通知される。デバッガスタブ２３０は、通知されたイベントをエミュレータスタブ１２０が解読可能なコマンドに変換し、イベント情報としてネットワークポート５０１Ｂより汎用計算機Ａ（５０Ａ）に送信する。
【００３６】
ネットワークポート５０１Ａ経由でイベント情報を取得したエミュレータスタブ１２０は、イベントに応じてエミュレータ１１０及びハードウェアデザイン１１１へのアクセスを制御する。
【００３７】
デバッガ２１０で発生したイベントがプログラムの実行や強制ブレーク、あるいはステップ実行等である場合、エミュレータスタブ１２０は、イベントに従ってエミュレータ１１０の動作を制御し、所定のアドレスまでのプログラム実行、強制ブレーク、プログラムのステップ実行に伴う半導体装置の規定回路の擬似動作を再現させる。また、エミュレータ１１０より得られる実行停止時のステータス（正常終了・異常終了等）をイベント結果としてデバッガスタブ２３０に通知する。
【００３８】
また、デバッガ２１０で発生したイベントがメモリリード、レジスタリード、内部ノードのリード等のリード動作の場合、ハードウェアデザイン１１１の仮想領域に形成された仮想メモリ領域、仮想レジスタ領域、あるいは仮想内部ノード領域のデータを読出し、読出しデータをイベント結果としてデバッガスタブ２３０に通知する。
【００３９】
また、デバッガ２１０で発生したイベントがメモリライト、レジスタライト等のライト動作の場合、エミュレータスタブ１２０は、エミュレータ１１０からハードウェア設計情報に基づくタイミング情報を取得し、タイミングを計ってハードウェアデザイン１１１に設けられた仮想領域へのデータ書込みを制御する。タイミングを計ることにより、エミュレータ１１０の規定回路の動作とデバッガ２１０からのライト動作によってレースコンディションが発生することを防止する。これは、規定回路の変化するタイミングとエミュレータスタブ１２０がライトするタイミングが同時期に行なわれてしまうと、エミュレータ１１０は、どちらを優先するかが判断できなくなってしまうためである。
【００４０】
続いて、エミュレータスタブ１２０よりイベント結果を取得したデバッガスタブ２３０は、これをデバッガ２１０が解読可能なようにデコードし、デバッガ２１０へ通知する。
【００４１】
このように、デバッガ２１０のイベントに連携させてエミュレータ１１０を動作させることにより、高精度な検証が可能となる。また、検証は、モジュール単位で可能であることから、開発の早い段階からの正確な検証ができる。
【００４２】
次に、デバッガが複数の場合について説明する。図３は、本発明の一実施の形態であるデバッガを複数備えたシステム構成例である。図２と同じものには同じ番号を付し、説明は省略する。
【００４３】
汎用計算機Ｃ（５０Ｃ）は、汎用計算機Ｂ（５０Ｂ）と同等のデバッガ２１０Ｃ、デバッガスタブ２３０Ｃ及びネットワークポート５０１Ｃを備えており、通信ネットワークを介してエミュレータスタブ１２０と接続する。
【００４４】
動作について説明する。
初期化時、汎用計算機Ｃ（５０Ｃ）は、上記の説明と同様に、デバッガ２１０Ｃの立ち上げを行なう。このとき、デバッガ２１０Ｃと同時にデバッガスタブ２３０が立ち上がる。デバッガスタブ２３０Ｃが立ち上がると、エミュレータスタブ１２０との通信接続を行なう。
【００４５】
初期化動作が完了すると、エミュレータスタブ１２０と通信接続された汎用計算機Ｂ（５０Ｂ）及び汎用計算機Ｃ（５０Ｃ）はそれぞれのデバッグ動作を開始する。エミュレータスタブ１２０は、時分割で通信の実行権を振り分けることにより、それぞれの汎用計算機からイベント情報を取得して、このイベントに応じた処理を行なう。すなわち、エミュレータスタブ１２０は、時分割で通信の実行権を汎用計算機Ｂ（５０Ｂ）及び汎用計算機Ｃ（５０Ｃ）に振り分け、それぞれのデバッガスタブ２３０Ｂ、２３０Ｃは、通信の実行権を取得した場合にデバッガ２１０Ｂ、２１０Ｃに発生したイベントの通知を行なう。各種イベントの通知を受けた後のエミュレータスタブ１２０及びエミュレータ１１０の動作は、図１の場合と同様であるので、説明は省略する。これにより、デバッガ２１０Ｂ、２１０Ｃそれぞれがエミュレータ１１０を用いたデバッグを行なう並行動作が可能となる。
【００４６】
このように、複数のデバッガ２１０から単一のエミュレータ１１０を制御することが可能となる。
次に、このような構成の開発支援システムの動作及び開発支援方法において、仮想領域へアクセスするイベントが発生した場合の動作について説明する。以下では、簡単のため、図２に示したエミュレータスタブ１２０に対して１台のデバッガスタブ２３０が対応する場合で説明する。
【００４７】
まず、レジスタ領域へのアクセスの場合について説明する。図４は、本発明の一実施の形態である開発支援方法におけるレジスタ領域へのアクセスイベントを示した図である。図２と同じものには同じ番号を付し、説明は省略する。
【００４８】
ハードウェア設計情報に基づく半導体装置の規定回路のレジスタ領域は、エミュレータ１１０のハードウェアデザイン１１１に仮想レジスタ領域１１１１とし設けられている。
【００４９】
デバッガ２１０において、レジスタリードのイベントが発生すると、デバッガスタブ２３０が起動され、レジスタリードに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。エミュレータスタブ１２０は、レジスタリードのコマンドを取得すると、このコマンドに従ってハードウェアデザイン１１１に設けられた規定回路の仮想レジスタ領域１１１１からデータの読出しを行なう。さらに、読み出したデータをイベント結果としてデバッガスタブ２３０に通知する。デバッガスタブ２３０は、読出したデータをデバッガ２１０が解読できるように変換し、デバッガ２１０へ通知する。このようにして、デバッガ２１０に発生したレジスタリードのイベントが処理される。
【００５０】
また、デバッガ２１０において、レジスタライトのイベントが発生すると、同様にデバッガスタブ２３０が起動され、レジスタライトに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。エミュレータスタブ１２０は、レジスタライトのコマンドを取得すると、このコマンドに従って仮想レジスタ領域にデータを書込む制御を行なう。ライトの場合は、タイミングを計る必要があるため、エミュレータスタブ１２０はエミュレータ１１０よりレジスタ領域のタイミングに関するタイミング情報を取得し、このタイミングに従ってライト動作を実行する。例えば、カウンタ回路のようにハードウェアデザインの規定回路上のレジスタがクロックの立ち上がりで変化するのであれば、エミュレータスタブ１２０が発生させるデバッガ２１０からのライトタイミングはこのクロックの立ち上がりで変化させてはならない。ここでは、レースコンディションを発生させないため、デバッガ２１０からのライトタイミングをクロックの立ち上がりでなく、立下りのタイミングで行なう。
【００５１】
次に、メモリ領域へのアクセスの場合について説明する。図５は、本発明の一実施の形態である開発支援方法におけるメモリ領域へのアクセスイベントを示した図である。図２と同じものには同じ番号を付し、説明は省略する。
【００５２】
ハードウェア設計情報基づく半導体装置のメモリ領域は、エミュレータ１１０のハードウェアデザイン１１１に仮想メモリ領域１１１２として仮想的に設けられている。
【００５３】
デバッガ２１０において、メモリリードのイベントが発生すると、デバッガスタブ２３０が起動され、メモリリードに相当するコマンドが生成される。例えば、デバッガ２１０でユーザがユーザインタフェースから０Ａ００ｈ〜０Ｂ００ｈの領域のメモリリード操作を行なった場合、デバッガスタブ２３０によって「ＲＥＡＤＭＥＭ　０Ａ００：０Ｂ００ｈ」というコマンド変換され、エミュレータスタブ１２０に送信される。エミュレータスタブ１２０は、メモリリードのコマンドを取得すると、メモリリードで０Ａ００ｈ〜０Ｂ００ｈ範囲の読込みをおこなうと認識し、ハードウェアデザイン１１１に設けられた規定回路の仮想メモリ領域１１１２からデータの読出しを行ない、読み出したデータをデバッガスタブ２３０に通知する。デバッガスタブ２３０は、読出したデータをデバッガ２１０が解読できるように変換し、デバッガ２１０へ通知する。このようにして、デバッガ２１０に発生したレジスタリードのイベントが処理される。
【００５４】
また、デバッガ２１０においてメモリライトのイベントが発生すると、デバッガスタブ２３０によりメモリライトに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。メモリライトもレジスタライトと同様に、タイミングを計る必要があるため、メモリ領域のライト動作に関するタイミング情報を取得し、このタイミングに従って仮想メモリ領域１１１２へのデータ書込みを行なう。
【００５５】
次に、内部ノード領域へのアクセスの場合について説明する。図６は、本発明の一実施の形態である開発支援方法における内部ノード領域へのアクセスイベントを示した図である。図２と同じものには同じ番号を付し、説明は省略する。
【００５６】
ハードウェア設計情報に基づく半導体装置の内部ノード領域は、エミュレータ１１０のハードウェアデザイン１１１に仮想内部ノード領域１１１３として仮想的に設けられている。ただし、エミュレータスタブ１２０から仮想内部ノード領域に対して実行できるのは、内部ノードの読出しだけになる。
【００５７】
デバッガ２１０において、ワイヤやＩ／Ｏポート等の内部ノードのリードイベントが発生すると、デバッガスタブ２３０により内部ノードのリードに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。エミュレータスタブ１２０は、内部ノードのリードのコマンドを取得すると、このコマンドに従ってハードウェアデザイン１１１に設けられた規定回路の仮想内部ノード領域１１１３からデータの読出しを行ない、読出したデータをイベント結果としてデバッガスタブ２３０に通知する。デバッガスタブ２３０は、読出したデータをデバッガ２１０が解読できるように変換し、デバッガ２１０へ通知する。このようにして、デバッガ２１０に発生した内部ノードのリードのイベントが処理される。
【００５８】
上記の説明では、デバッガ２１０に発生したイベントに応じて、エミュレータスタブ１２０が実行するプログラムの実行制御、あるいはエミュレータ１１０のハードウェアデザイン１１１の仮想領域へのアクセス処理について説明したが、デバッグ途中においては、これらのイベントのほかにプログラムの命令コードを書き換える操作が頻繁に行なわれる。本発明では、上記のイベントと同様にデバッガ２１０において発生した命令コードの書換えをエミュレータ１１０に反映させることができる。図７は、本発明の一実施の形態である開発支援方法における命令コード書換えイベントを示した図である。図２と同じものには同じ番号を付し、説明は省略する。
【００５９】
ハードウェアデザイン１１１には、プログラムを記録するプログラム記録領域が設けられている。ハードウェアデザイン１１１に記録されるプログラムは、命令コードがマイクロプロセッサによって解読可能なニーモニックコードに変換されている。
【００６０】
デバッガ２１０において、プログラムの命令コードの変更イベントが発生すると、デバッガスタブ２３０により命令コード変更イベントに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。命令コードの変更は、プログラムの行単位、あるいは、実機用プログラム記録媒体２２０に記録されたプログラムモジュール単位で行なわれる。エミュレータスタブ１２０では、命令コード変更コマンドを取得すると、コード変換手段１２３が命令コードをニーモニックコードに変換する。変換されたニーモニックコードは、エミュレータ制御手段１２１によりハードウェアデザイン１１１に設けられたプログラム記録領域にデータ書込まれる。このとき、タイミングを計る必要がある場合には、エミュレータ１１０よりプログラム記録領域への書込み動作に関するタイミング情報を取得し、これに従って書込み動作を行なう。
【００６１】
上記の説明では、コード変換手段１２３をエミュレータスタブ１２０内に設けたが、デバッガスタブ２３０に設けることもできる。
なお、上記の処理機能は、クライアントサーバシステムのサーバコンピュータによって実現することができる。その場合、半導体装置の開発支援連携装置が有すべき機能の処理内容を記述したサーバプログラムが提供される。サーバコンピュータは、クライアントコンピュータからの要求に応答して、サーバプログラムを実行する。これにより、上記処理機能がサーバコンピュータ上で実現され、処理結果がクライアントコンピュータに提供される。
【００６２】
処理内容を記述したサーバプログラムは、サーバコンピュータで読み取り可能な記録媒体に記録しておくことができる。サーバコンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ　ｄｉｓｋ）などがある。
【００６３】
サーバプログラムを流通させる場合には、たとえば、そのサーバプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
【００６４】
（付記１）　ＣＰＵコアを有する半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガに接続され、前記デバッガにおいて発生したイベントに応じたイベント情報を生成して送信するとともに、前記イベントに応じたイベント結果を前記デバッガに通知するイベント通知装置との間の通信を制御する通信制御手段と、
前記イベント通知装置によって生成され、送信された前記デバッガにおいて発生した前記イベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを前記イベントに応じて制御するとともに、前記エミュレータによる擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記イベント通知装置に送信するエミュレータ制御手段と、
を備えたことを特徴とする半導体装置の開発支援連携装置。
【００６５】
（付記２）　前記通信制御手段は、前記所定の通信回線を介して接続する複数の前記イベント通知装置に対して時分割で通信の実行権を振り分け、接続するそれぞれの前記イベント通知装置の生成する前記イベント情報を取得することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００６６】
（付記３）　前記エミュレータ制御手段は、前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に前記ハードウェア設計情報に基づいて形成された規定回路の仮想領域に対するイベントが前記仮想領域からのデータ読出しである場合に、前記イベントに応じた読出し信号を前記仮想領域に対して発生させることを特徴とする付記１記載の開発支援連携装置。
【００６７】
（付記４）　前記エミュレータ制御手段は、前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に前記ハードウェア設計情報に基づいて形成された規定回路の仮想領域に対するイベントが前記仮想領域かへのデータ書込みである場合に、前記エミュレータより前記ハードウェア設計情報に基づくタイミング情報を取得するとともに、前記タイミング情報に従って前記イベントに応じた書込み信号を前記仮想領域に対して発生させることを特徴とする付記１記載の開発支援連携装置。
【００６８】
（付記５）　前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域からのデータ読出しである場合に、
前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域に対して前記イベントに応じた読出しを実行し、前記仮想レジスタ領域からの読出しデータを前記デバッガに通知することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００６９】
（付記６）　前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域へのデータ書込みである場合に、前記エミュレータから前記ハードウェア設計情報に基づくレジスタ領域の書込みに関するタイミング情報を取得し、前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域への書込みを前記タイミング情報より得られるレジスタ領域への書込みタイミングに従って実行することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００７０】
（付記７）　前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってメモリ領域と定義されている領域からのデータ読出しである場合に、前記メモリ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想メモリ領域に対して前記イベントに応じた読出しを実行し、前記仮想メモリ領域からの読出しデータを前記デバッガに通知することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００７１】
（付記８）　前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってメモリ領域と定義されている領域からのデータ書込みである場合に、前記エミュレータから前記ハードウェア設計情報に基づくメモリ領域の書込みに関するタイミング情報を取得し、前記メモリ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想メモリ領域への書込みを前記タイミング情報より得られるメモリ領域への書込みタイミングに従って実行することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００７２】
（付記９）　前記エミュレータ制御手段は、前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によって内部ノードと定義されている領域からのデータ読出しである場合に、前記内部ノード領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想内部ノード領域に対して前記イベントに応じた読出しを実行し、
前記仮想内部ノード領域からの読出しデータを前記デバッガに通知することを特徴とする付記１記載の半導体装置の開発支援連携装置。
【００７３】
（付記１０）　前記半導体装置の開発支援装置は、さらに、前記デバッガによって設定された前記プログラムの命令コードを取得し、前記命令コードをニーモニックコードへ変換するコード変換手段を有することを特徴とする付記１記載の半導体装置の開発支援装置。
【００７４】
（付記１１）　ＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援する半導体装置の開発支援方法において、
前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを、所定の通信回線を介して前記半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグに用いるデバッガに接続する開発支援連携装置が、
前記デバッガにおいて発生したイベントに応じて生成されて前記所定の通信回線を介して送信されるイベント情報を取得するステップと、
取得した前記イベント情報を分析し、前記エミュレータを制御して前記イベントに応じた前記半導体装置の擬似動作を前記ハードウェア設計情報に基づいて仮想的に再現させるステップと、
前記エミュレータによって仮想的に再現された前記半導体装置の擬似動作に応じたイベント結果を必要に応じて前記デバッガに通知するステップと、
を有することを特徴とする半導体装置の開発支援方法。
【００７５】
（付記１２）　ＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援するコンピュータを、
所定の通信回線を介して接続する前記半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガとの間の通信を制御する通信制御手段と、
前記デバッガにおいて発生したイベントに応じて生成され、前記所定の通信回線を介して送信されるイベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを制御して前記イベントに応じた前記半導体装置の擬似動作を仮想的に再現させるとともに、前記エミュレータにより仮想的に再現された前記半導体装置の擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記デバッガに送信するエミュレータ制御手段と、
として機能させるためのプログラム。
【００７６】
（付記１３）　ＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援する開発支援システムにおいて、
前記半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガに接続し、前記デバッガにおいて発生したイベントに応じたイベント情報を生成し、所定の通信回線を介して送信するとともに、前記通信回線を介して取得する前記イベントに応じたイベント結果を前記デバッガに通知するイベント通知装置と、
所定の通信回線を介して接続する前記デバッガ側の開発支援連携装置との間の通信を制御する通信制御手段と、
前記イベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを制御して前記イベントに応じた前記半導体装置の擬似動作を仮想的に再現させるとともに、前記エミュレータにより仮想的に再現された前記半導体装置の擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記イベント通知装置に送信するエミュレータ制御手段と、を備えた開発支援連携装置と、
から構成されることを特徴とする半導体装置の開発支援連携システム。
【００７７】
【発明の効果】
以上説明したように本発明では、デバッガにおいて発生したイベントを取得し、エミュレータを制御してこのイベントに応じた半導体装置の擬似動作をハードウェア設計情報に基づいて仮想的に再現させる。このときの擬似動作に応じたイベント結果はデバッガに通知される。
【００７８】
このように、デバッガで発生したイベントに対してエミュレータを用いてハードウェア設計情報に基づく擬似動作を再現させることにより、正確なタイミングで発生する動作を再現させることが可能となり、試作機を用いた場合と同等のソフトウェアの開発・検証環境を構築することができる。また、ハードウェアに関しても、プログラムが組み込まれた状態での検証を行なうことが可能となる。以上の説明のように、本発明によれば、開発の早い段階から試作機を用いた場合と同等のハードウェアとソフトウェアの開発・検証を実施できるため、システムＬＳＩの品質の向上と早期の製品化が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態である半導体装置の開発支援連携装置を含む開発支援システムの構成図である。
【図２】本発明の一実施の形態である開発支援方法を実現するシステム構成例である。
【図３】本発明の一実施の形態であるデバッガを複数備えたシステム構成例である。
【図４】本発明の一実施の形態である開発支援方法におけるレジスタ領域へのアクセスイベントを示した図である。
【図５】本発明の一実施の形態である開発支援方法におけるメモリ領域へのアクセスイベントを示した図である。
【図６】本発明の一実施の形態である開発支援方法における内部ノード領域へのアクセスイベントを示した図である。
【図７】本発明の一実施の形態である開発支援方法における命令コード書換えイベントを示した図である。
【符号の説明】
１００　エミュレータシステム
１１０　エミュレータ
１１１　ハードウェアデザイン
１２０　エミュレータスタブ
１２１　エミュレータ制御手段
１２２　通信制御手段
２００　デバッガシステム
２１０　デバッガ
２２０　実機用プログラム記録媒体
２３０　デバッガスタブ
３００　通信ネットワーク
【図１】
2004030124.tif 000003
【図２】
2004030124.tif 000004
【図３】
2004030124.tif 000005
【図４】
2004030124.tif 000006
【図５】
2004030124.tif 000007
【図６】
2004030124.tif 000008
【図７】
2004030124.tif 000009
【手続補正書】
【提出日】平成15年7月9日(2003.7.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
前記通信制御手段は、所定の通信回線を介して接続する複数の前記イベント通知装置に対して時分割で通信の実行権を振り分け、接続するそれぞれの前記イベント通知装置の生成する前記イベント情報を取得することを特徴とする請求項１記載の半導体装置の開発支援連携装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】請求項３
【補正方法】変更
【補正の内容】
【請求項３】
前記エミュレータ制御手段は、前記イベント情報を解析して得られる前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域からのデータ読出しである場合に、
前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域に対して前記イベントに応じた読出しを実行し、前記仮想レジスタ領域からの読出しデータを前記デバッガに通知することを特徴とする請求項１記載の半導体装置の開発支援連携装置。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
通信制御手段１２２は、通信ネットワーク３００に接続し、通信ネットワーク経由でデバッガスタブ２３０から送信されるデバッガ２１０において発生したイベントに応じて生成されたイベント情報を取得し、エミュレータ制御手段１２１へ通知する。また、発生したイベントに応じたイベント結果が通知される場合には、イベント結果を通信ネットワーク３００経由でデバッガスタブ２３０へ通知する。図では、デバッガシステム２００は１つであるとしたが、複数のデバッガシステム２００に対して処理を行なうこともできる。この場合、通信ネットワーク３００を介して接続する複数のデバッガスタブに対して時分割で通信の実行権を振り分け、同時に制御を行なう。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
また、エミュレータシステム１００と、デバッガシステム２００との間は、通信ネットワーク３００によって接続されるため、ハードウェアデザインの開発・検証と、ソフトウェアの開発・検証とを遠隔地間で行なうことが可能となる。さらに、エミュレータシステム１００に対して複数のデバッガシステムを接続することが可能である。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
続いて、エミュレータスタブ１２０よりイベント結果を取得したデバッガスタブ２３０は、これをデバッガ２１０が解読可能なようにエンコードし、デバッガ２１０へ通知する。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
動作について説明する。
初期化時、汎用計算機Ｃ（５０Ｃ）は、上記の説明と同様に、デバッガ２１０Ｃの立ち上げを行なう。このとき、デバッガ２１０Ｃと同時にデバッガスタブ２３０Ｃが立ち上がる。デバッガスタブ２３０Ｃが立ち上がると、エミュレータスタブ１２０との通信接続を行なう。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
このように、複数のデバッガ２１０Ｂ、２１０Ｃから単一のエミュレータ１１０を制御することが可能となる。
次に、このような構成の開発支援システムの動作及び開発支援方法において、仮想領域へアクセスするイベントが発生した場合の動作について説明する。以下では、簡単のため、図２に示したエミュレータスタブ１２０に対して１台のデバッガスタブ２３０が対応する場合で説明する。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
デバッガ２１０において、レジスタリードのイベントが発生すると、デバッガスタブ２３０が起動され、レジスタリードに相当するコマンドが生成され、エミュレータスタブ１２０に送信される。エミュレータスタブ１２０は、レジスタリードのコマンドを取得すると、このコマンドに従ってハードウェアデザイン１１１に設けられた規定回路の仮想レジスタ領域１１１１からデータの読出しを行なう。さらに、読み出したデータをイベント結果としてデバッガスタブ２３０に通知する。デバッガスタブ２３０は、読出したデータをデバッガ２１０が解読できるように変換し、デバッガ２１０へ通知する。このようにして、デバッガ２１０に発生したメモリリードのイベントが処理される。


【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
（付記２）　前記通信制御手段は、所定の通信回線を介して接続する複数の前記イベント通知装置に対して時分割で通信の実行権を振り分け、接続するそれぞれの前記イベント通知装置の生成する前記イベント情報を取得することを特徴とする付記１記載の半導体装置の開発支援連携装置。


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
（付記３）　前記エミュレータ制御手段は、前記イベント情報を解析して得られる前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に前記ハードウェア設計情報に基づいて形成された規定回路の仮想領域に対するイベントが前記仮想領域からのデータ読出しである場合に、前記イベントに応じた読出し信号を前記仮想領域に対して発生させることを特徴とする付記１記載の開発支援連携装置。


【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
（付記４）　前記エミュレータ制御手段は、前記イベント情報を解析して得られる前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に前記ハードウェア設計情報に基づいて形成された規定回路の仮想領域に対するイベントが前記仮想領域へのデータ書込みである場合に、前記エミュレータより前記ハードウェア設計情報に基づくタイミング情報を取得するとともに、前記タイミング情報に従って前記イベントに応じた書込み信号を前記仮想領域に対して発生させることを特徴とする付記１記載の開発支援連携装置。


【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
（付記５）　前記エミュレータ制御手段は、前記イベント情報を解析して得られる前記デバッガにおいて発生したイベントが前記ハードウェア設計情報によってレジスタ領域と定義されている領域からのデータ読出しである場合に、
前記レジスタ領域として前記エミュレータ内部あるいは前記エミュレータに接続して設けられた所定の記録媒体に仮想的に用意された仮想レジスタ領域に対して前記イベントに応じた読出しを実行し、前記仮想レジスタ領域からの読出しデータを前記デバッガに通知することを特徴とする付記１記載の半導体装置の開発支援連携装置。


【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００７６
【補正方法】変更
【補正の内容】
【００７６】
（付記１３）　ＣＰＵコアを有する半導体装置、あるいは前記半導体装置を組み込んだ装置の開発を支援する開発支援システムにおいて、
前記半導体装置あるいは前記半導体装置を組み込んだ装置に内蔵されるプログラムのデバッグを行なうデバッガに接続し、前記デバッガにおいて発生したイベントに応じたイベント情報を生成し、所定の通信回線を介して送信するとともに、前記通信回線を介して取得する前記イベントに応じたイベント結果を前記デバッガに通知するイベント通知装置と、
所定の通信回線を介して接続する前記イベント通知装置との間の通信を制御する通信制御手段と、
前記イベント情報を前記通信制御手段より取得し、前記半導体装置を構成する回路を定義するハードウェア設計情報に基づいて前記半導体装置の擬似動作を再現するエミュレータを制御して前記イベント情報に応じた前記半導体装置の擬似動作を仮想的に再現させるとともに、前記エミュレータにより仮想的に再現された前記半導体装置の擬似動作に伴うイベント結果を必要に応じて前記通信制御手段を用いて前記イベント通知装置に送信するエミュレータ制御手段と、を備えた開発支援連携装置と、
から構成されることを特徴とする半導体装置の開発支援連携システム。