(57)【特許請求の範囲】
【請求項１】
シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備えたＨＤＬシミュレータを有し、
ＣＰＵモデルは、ソフトウェアソース群から生成された実行ソフトウェアを実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータはデバッグ対象ハードウェアの動作をシミュレーションし、前記シミュレーション結果を波形表示機能部に表示し、
ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報と、前記表示されたシミュレーション結果波形データ中の任意箇所のプログラマブルカウンタの値を取得し、取得したプログラマブルカウンタの値とデバッグ情報中のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名および行番号を出力する第１の検索機能部と、
前記第１の検索機能部の出力によって起動され、前記該当するソースファイルを該当行番号箇所で表示する第１のテキストエディタ機能部と、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルは、アセンブラ命令語の文字列を解析する文字列解析機能部を備え、該文字列解析機能部で解析されたアセンブラ命令を実行することを特徴とするハードウェア／ソフトウェア協調検証装置。
【請求項２】
前記第１の検索機能部および第１のテキストエディタ機能部は、前記ＨＤＬシミュレータに設けられていることを特徴とする請求項１に記載のハードウェア／ソフトウェア協調検証装置。
【請求項３】
シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備えたＨＤＬシミュレータを有し、
ＣＰＵモデルは、ソフトウェアソース群から生成された実行ソフトウェアを実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータはデバッグ対象ハードウェアの動作をシミュレーションし、前記シミュレーション結果を波形表示機能部に表示し、
ソフトウェアソース群中の任意のソフトウェアソースを表示し、表示しているソースファイル名とカーソル行番号を取得する第２のテキストエディタ機能部と、
ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報を取得し、取得されたデバッグ情報内のソースファイル名および行番号と、前記第２のテキストエディタ機能部により取得されたソースファイル名およびカーソル行番号とが一致する箇所を検索し、一致箇所のアドレスを出力する第２の検索機能部とを備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルは、アセンブラ命令語の文字列を解析する文字列解析機能部を備え、該文字列解析機能部で解析されたアセンブラ命令を実行し、
前記波形表示機能部は、前記第２の検索機能部により出力されたアドレスに該当するプログラマブルカウンタの値と波形表示機能部に記録されたプログラマブルカウンタの値が一致する箇所のシミュレーション結果波形を表示することを特徴とするハードウェア／ソフトウェア協調検証装置。
【請求項４】
前記第２の検索機能部および第２のテキストエディタ機能部は、前記ＨＤＬシミュレータに設けられていることを特徴とする請求項３に記載のハードウェア／ソフトウェア協調検証装置。
【請求項５】
ＨＤＬシミュレータを備えたハードウェア／ソフトウェア協調検証方法であって、
前記ＨＤＬシミュレータは、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備え、
前記ＨＤＬシミュレータが、ソフトウェアソース群から生成された実行ソフトウェアをＣＰＵモデルによって実行して実機のソフトウェアをシミュレーションするとともに、デバッグ対象ハードウェアの動作をシミュレーションするステップと、
前記波形表示機能部が、前記シミュレーション結果を表示するステップと、
ハードウェア／ソフトウェア協調検証装置の第１の検索機能部が、ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報と、前記表示されたシミュレーション結果波形データ中の任意箇所のプログラマブルカウンタの値を取得し、取得したプログラマブルカウンタの値とデバッグ情報中のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名および行番号を出力するステップと、
ハードウェア／ソフトウェア協調検証装置の第１のテキストエディタ機能部が、前記第１の検索機能部の出力によって起動し、前記該当するソースファイルを該当行番号箇所で表示するステップと、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルの文字列解析機能部が、前記アセンブラ命令語の文字列を解析するステップと、
ＣＰＵモデルが前記解析されたアセンブラ命令を実行するステップと、
を備えたことを特徴とするハードウェア／ソフトウェア協調検証方法。
【請求項６】
ＨＤＬシミュレータを備えたハードウェア／ソフトウェア協調検証方法であって、
前記ＨＤＬシミュレータは、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備え、
前記ＨＤＬシミュレータが、ソフトウェアソース群から生成された実行ソフトウェアをＣＰＵモデルによって実行して実機のソフトウェアをシミュレーションするとともに、デバッグ対象ハードウェアの動作をシミュレーションするステップと、
ハードウェア／ソフトウェア協調検証装置の第２のテキストエディタ機能部が、ソフトウェアソース群中の任意のソフトウェアソースを表示し、表示しているソースファイル名とカーソル行番号を取得するステップと、
ハードウェア／ソフトウェア協調検証装置の第２の検索機能部が、ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報を取得し、取得されたデバッグ情報内のソースファイル名および行番号と、前記第２のテキストエディタ機能部により取得されたソースファイル名およびカーソル行番号とが一致する箇所を検索し、一致箇所のアドレスを出力するステップと、
前記波形表示機能部が、前記第２の検索機能部により出力されたアドレスに該当するプログラマブルカウンタの値と波形表示機能部に記録されたプログラマブルカウンタの値が一致する箇所のシミュレーション結果波形を表示するステップと、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルの文字列解析機能部が、前記アセンブラ命令語の文字列を解析するステップと、
ＣＰＵモデルが前記解析されたアセンブラ命令を実行するステップと、
を備えたことを特徴とするハードウェア／ソフトウェア協調検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込み分野のデジタルシステム（組み込みシステム；Ｅｍｂｅｄｄｅｄ  Ｓｙｓｔｅｍ）におけるデジタル回路とソフトウェアの協調シミュレーションに関する。
【背景技術】
【０００２】
組み込み分野のデジタルシステムは、ＣＰＵを含むハードウェア回路とＣＰＵが実行するソフトウェアで構成される。組み込み分野のデジタルシステムの開発期間短縮や品質向上には、実機製作前にＣＰＵを含むハードウェア回路とＣＰＵが実行するソフトウェアを協調してデバッグを行うハードウェア／ソフトウェア協調検証が有効である。
【０００３】
協調検証には、ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ；ハードウェア記述言語）シミュレータを使う協調シミュレーションと、論理エミュレータを使う協調エミュレーションの２種類がある。
【０００４】
ＨＤＬシミュレータを使う協調シミュレーションは、ＣＰＵを含むハードウェア回路を全てＨＤＬシミュレータに取り込んでデバッグを行う。一方、論理エミュレータを使う協調エミュレーションはハードウェア回路を論理エミュレータに取り込んでデバッグを行う。
【０００５】
尚、論理エミュレータを使う協調エミュレーションの一例として、特許文献１に記載のものが存在する。
【０００６】
また、本発明で利用する、実行ソフトウェアに記述されたアセンブラ命令語の文字列を解析する技術は特許文献２に記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５１２０１０３号公報
【特許文献２】特開２０１４−７８０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
論理エミュレータを使う協調エミュレーションは、ＨＤＬシミュレータを使う協調シミュレーションに比べて動作が高速という利点があるが、論理エミュレータが非常に高価という欠点がある。
【０００９】
特許文献１では、ＣＰＵを含むハードウェア回路を全て論理エミュレータに取り込んだ協調エミュレーションでの方式である。しかし、ＣＰＵは実機と同じＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）レベルのものを使うため、動作速度低下の一因になる。
【００１０】
ハードウェア／ソフトウェア協調検証は、文字通りハードウェアの動作とソフトウェアの動作を協調してデバッグを行う。それぞれの協調した動作は波形ビューアで観測できるが、実行箇所のソフトウェアソースは見ることができない。
【００１１】
この解決策として前述の特許文献１では、ソフトウェアを実行するＣＰＵモデルのプログラマブルカウンタ（ＰＣ）の値からソフトウェアソースの実行箇所を特定し、特定箇所のソフトウェアソースを表示する仕組みを有している。
【００１２】
しかし特許文献１は、プログラマブルカウンタの値の取得をブレークポイントなどイベント時に限定されているため、任意の箇所のソース表示はできない。
【００１３】
また逆に、ソフトウェアソースから、ハードウェアの動作とソフトウェア動作の協調した動作波形を特定し表示する仕組みは有していない。
【００１４】
本発明は上記課題を解決するものであり、その目的は、高価な論理エミュレータを必要とせず、ＨＤＬシミュレータによってハードウェア／ソフトウェア協調検証を行うことができる装置および方法を提供することにある。
【課題を解決するための手段】
【００１５】
上記課題を解決するための請求項１に記載のハードウェア／ソフトウェア協調検証装置は、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備えたＨＤＬシミュレータを有し、
ＣＰＵモデルは、ソフトウェアソース群から生成された実行ソフトウェアを実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータはデバッグ対象ハードウェアの動作をシミュレーションし、前記シミュレーション結果を波形表示機能部に表示し、
ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報と、前記表示されたシミュレーション結果波形データ中の任意箇所のプログラマブルカウンタの値を取得し、取得したプログラマブルカウンタの値とデバッグ情報中のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名および行番号を出力する第１の検索機能部と、
前記第１の検索機能部の出力によって起動され、前記該当するソースファイルを該当行番号箇所で表示する第１のテキストエディタ機能部と、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルは、アセンブラ命令語の文字列を解析する文字列解析機能部を備え、該文字列解析機能部で解析されたアセンブラ命令を実行することを特徴としている。
【００１６】
また、請求項２に記載のハードウェア／ソフトウェア協調検証装置は、請求項１において、前記第１の検索機能部および第１のテキストエディタ機能部は、前記ＨＤＬシミュレータに設けられていることを特徴としている。
【００１７】
また、請求項３に記載のハードウェア／ソフトウェア協調検証装置は、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備えたＨＤＬシミュレータを有し、
ＣＰＵモデルは、ソフトウェアソース群から生成された実行ソフトウェアを実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータはデバッグ対象ハードウェアの動作をシミュレーションし、前記シミュレーション結果を波形表示機能部に表示し、
ソフトウェアソース群中の任意のソフトウェアソースを表示し、表示しているソースファイル名とカーソル行番号を取得する第２のテキストエディタ機能部と、
ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報を取得し、取得されたデバッグ情報内のソースファイル名および行番号と、前記第２のテキストエディタ機能部により取得されたソースファイル名およびカーソル行番号とが一致する箇所を検索し、一致箇所のアドレスを出力する第２の検索機能部とを備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルは、アセンブラ命令語の文字列を解析する文字列解析機能部を備え、該文字列解析機能部で解析されたアセンブラ命令を実行し、
前記波形表示機能部は、前記第２の検索機能部により出力されたアドレスに該当するプログラマブルカウンタの値と波形表示機能部に記録されたプログラマブルカウンタの値が一致する箇所のシミュレーション結果波形を表示することを特徴としている。
【００１８】
また、請求項４に記載のハードウェア／ソフトウェア協調検証装置は、請求項３において、前記第２の検索機能部および第２のテキストエディタ機能部は、前記ＨＤＬシミュレータに設けられていることを特徴としている。
【００２０】
また、請求項５に記載のハードウェア／ソフトウェア協調検証方法は、ＨＤＬシミュレータを備えたハードウェア／ソフトウェア協調検証方法であって、
前記ＨＤＬシミュレータは、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備え、
前記ＨＤＬシミュレータが、ソフトウェアソース群から生成された実行ソフトウェアをＣＰＵモデルによって実行して実機のソフトウェアをシミュレーションするとともに、デバッグ対象ハードウェアの動作をシミュレーションするステップと、
前記波形表示機能部が、前記シミュレーション結果を表示するステップと、
ハードウェア／ソフトウェア協調検証装置の第１の検索機能部が、ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報と、前記表示されたシミュレーション結果波形データ中の任意箇所のプログラマブルカウンタの値を取得し、取得したプログラマブルカウンタの値とデバッグ情報中のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名および行番号を出力するステップと、
ハードウェア／ソフトウェア協調検証装置の第１のテキストエディタ機能部が、前記第１の検索機能部の出力によって起動し、前記該当するソースファイルを該当行番号箇所で表示するステップと、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルの文字列解析機能部が、前記アセンブラ命令語の文字列を解析するステップと、
ＣＰＵモデルが前記解析されたアセンブラ命令を実行するステップと、
を備えたことを特徴としている。
【００２１】
また、請求項６に記載のハードウェア／ソフトウェア協調検証方法は、ＨＤＬシミュレータを備えたハードウェア／ソフトウェア協調検証方法であって、
前記ＨＤＬシミュレータは、シミュレーション環境として記述された、ＣＰＵの動作を模擬する実機と等価なＣＰＵモデルと、デバッグ対象ハードウェアを模擬したハードウェアモデルと、予め設定した観測信号群のシミュレーション結果波形データを表示し、前記観測信号群に指定された、ＣＰＵモデルの実行アドレスを示すプログラマブルカウンタの値を、全シミュレーション期間中記録する波形表示機能部と、を備え、
前記ＨＤＬシミュレータが、ソフトウェアソース群から生成された実行ソフトウェアをＣＰＵモデルによって実行して実機のソフトウェアをシミュレーションするとともに、デバッグ対象ハードウェアの動作をシミュレーションするステップと、
ハードウェア／ソフトウェア協調検証装置の第２のテキストエディタ機能部が、ソフトウェアソース群中の任意のソフトウェアソースを表示し、表示しているソースファイル名とカーソル行番号を取得するステップと、
ハードウェア／ソフトウェア協調検証装置の第２の検索機能部が、ソフトウェアソース群から生成された、命令アドレスとそれに該当するソースファイル名および行番号を組としたデバッグ情報を取得し、取得されたデバッグ情報内のソースファイル名および行番号と、前記第２のテキストエディタ機能部により取得されたソースファイル名およびカーソル行番号とが一致する箇所を検索し、一致箇所のアドレスを出力するステップと、
前記波形表示機能部が、前記第２の検索機能部により出力されたアドレスに該当するプログラマブルカウンタの値と波形表示機能部に記録されたプログラマブルカウンタの値が一致する箇所のシミュレーション結果波形を表示するステップと、を備え、
前記実行ソフトウェアはアセンブラ命令語の文字列で記述され、
前記ＣＰＵモデルの文字列解析機能部が、前記アセンブラ命令語の文字列を解析するステップと、
ＣＰＵモデルが前記解析されたアセンブラ命令を実行するステップと、
を備えたことを特徴としている。
【００２３】
上記構成によれば、ＨＤＬシミュレータにシミュレーション環境（テストベンチ）としてのＣＰＵモデルとハードウェアモデルを記述し、ＣＰＵモデルが、ソフトウェアソース群から生成された実行ソフトウェアを実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータがデバッグ対象ハードウェアの動作をシミュレーションするように構成したので、高価な論理エミュレータを必要とせず、ＨＤＬシミュレータでハードウェア／ソフトウェア協調検証を行うことができる。
また、ＣＰＵモデルの実行ソフトウェアをアセンブラ命令語の文字列を解析し実行するので、動作速度が向上する。
【００２４】
また、請求項１、２、５の構成によれば、第１の検索機能部および第１のテキストエディタ機能部の動作によって、波形表示機能部に表示している任意のシミュレーション結果波形の箇所のプログラマブルカウンタの値に該当するソフトウェアソースを表示することができる。
【００２５】
また、請求項３、４、６の構成によれば、第２の検索機能部および第２のテキストエディタ機能部の動作によって、ソフトウェアソースの任意の箇所に該当するシミュレーション結果波形を特定し表示することができる。
【００２６】
また、請求項２によれば、波形表示機能に表示されたシミュレーション結果波形データ中の任意箇所の指定から、ソースファイルの表示までをＨＤＬシミュレータ内で完結することができる。
【００２７】
また、請求項４によれば、表示している任意のソフトウェアソースのカーソル行の指定から、シミュレーション結果波形の表示までをＨＤＬシミュレータ内で完結することができる。
【発明の効果】
【００２９】
（１）請求項１〜６に記載の発明によれば、高価な論理エミュレータを必要とせず、ＨＤＬシミュレータでハードウェア／ソフトウェア協調検証を行うことができる。また、動作速度を向上させることができる。
（２）また、請求項１、２、５に記載の発明によれば、波形表示機能部に表示している任意のシミュレーション結果波形の箇所のプログラマブルカウンタの値に該当するソフトウェアソースを表示することができる。
（３）また、請求項３、４、６に記載の発明によれば、ソフトウェアソースの任意の箇所に該当するシミュレーション結果波形を特定し表示することができる。
（４）また、請求項２に記載の発明によれば、波形表示機能に表示されたシミュレーション結果波形データ中の任意箇所の指定から、ソースファイルの表示までをＨＤＬシミュレータ内で完結することができる。
（５）また、請求項４に記載の発明によれば、表示している任意のソフトウェアソースのカーソル行の指定から、シミュレーション結果波形の表示までをＨＤＬシミュレータ内で完結することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施例１の全体を示す構成図。
【図２】本発明の実施例におけるデバッグ情報を示す説明図。
【図３】本発明の実施例１の要部構成を示す説明図。
【図４】本発明の実施例１の変形例を示す説明図。
【図５】本発明の実施例２の全体を示す構成図。
【図６】本発明の実施例２の要部構成を示す説明図。
【発明を実施するための形態】
【００３１】
本発明のハードウェア／ソフトウェア協調検証は、ＨＤＬシミュレータを使った協調シミュレーションによるものである。以下、図面を参照しながら本発明の実施例を説明するが、本発明は下記の実施例に限定されるものではない。
【実施例１】
【００３２】
図１は、本発明の実施例１によるハードウェア／ソフトウェア協調検証装置２００の構成を示している。Ｃ言語やアセンブラ言語（Ａｓｓｅｍｂｌｅｒ  Ｌａｎｇｕａｇｅ；アセンブリ言語ともいう）で記述したソフトウェアソース群１１をコンパイラ／リンカ１２（コンパイルおよびリンクを実行するプログラム）でビルドし、オブジェクトファイル１３を生成する。オブジェクトファイル１３は、実行コード１３１（実行ソフトウェア）とデバッグ情報１３２の２つの要素で構成される。
【００３３】
ＨＤＬシミュレータ１０には、テストベンチ１４（検証のためのシミュレーション環境）として、ＣＰＵモデル１５と、デバッグ対象ハードウェアであるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）モデル１６およびＨＷ（ハードウェア）モデル１７が記述されている。
【００３４】
２５は、ＣＰＵモデル１５、ＦＰＧＡモデル１６、ＨＷモデル１７を接続するバスモデルである。
【００３５】
ＣＰＵモデル１５は、ＣＰＵの動作を模擬する実機と等価なモデルであり、実行コード１３１（実行ソフトウェア）を実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータはデバッグ対象ハードウェア（ＦＰＧＡモデル１６、ＨＷモデル１７）の動作をシミュレーションする。このＣＰＵモデル１５は、ＲＴＬモデルよりも抽象度が高いビヘイビアモデルを採用する。
【００３６】
ＦＰＧＡモデル１６は書き換え可能な論理素子を模擬したモデルであり、ＨＷモデル１７はハードウェアを模擬したモデルである。
【００３７】
前記ＣＰＵモデル１５は、例えば特許文献２に記載の技術を利用して動作速度向上を図る。すなわち、オブジェクトファイル１３の実行コード１３１（実行ソフトウェア）を生成する際に、オブジェクトコードではなくアセンブラプログラムとして作成（アセンブラ命令語の文字列で記述）し、ＣＰＵモデル１５には、アセンブラ命令語の文字列を解析する文字列解析機能部を設け、該文字列解析機能部で解析されたアセンブラ命令を実行するように構成する。
【００３８】
このように構成することにより、アセンブラ命令語の文字列解析は従来のビットパターン解析と比べて小規模に実現できるため、ＣＰＵモデルの処理速度の向上が期待できる。
【００３９】
テストベンチ１４のシミュレーション結果は、ＣＰＵ１５のソフトウェア動作とデバッグ対象ハードウェア（ＦＰＧＡモデル１６、ＨＷモデル１７）の動作が協調した動作結果となり、シミュレーション結果波形データ１８として波形ビューア１０１（波形表示機能部）に表示される。
【００４０】
波形ビューア１０１には、シミュレーション前に、観測したい信号群を指定しておく。観測したい信号群には、ＣＰＵモデル１５の実行アドレスを示すプログラマブルカウンタ（ＰＣ）を必ず指定し、シミュレーション期間内の全てのプログラマブルカウンタ（の値）を記録する。
【００４１】
シミュレーション中の任意の箇所（波形ビューア１０１のカーソルを置いた箇所）のプログラマブルカウンタの値をＨＤＬシミュレータ１０の機能によってシミュレーション結果波形データ１８から取得し、デバッグ情報１３２とともにＰＣ→ソースファイル検索機能部１９（第１の検索機能部）に入力する。
【００４２】
前記デバッグ情報１３２は、図２に示すように、全命令分の各命令アドレスと、それに該当するソースファイル名および行番号の組で構成される。
【００４３】
ＰＣ→ソースファイル検索機能部１９は図３のように、シミュレーション結果波形データ１８から取得したプログラマブルカウンタ（取得ＰＣ）の値と、デバッグ情報１３２内のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名と行番号を出力する。
【００４４】
例えば図３の例では、シミュレーション結果波形データ１８から取得したプログラマブルカウンタ（取得ＰＣ）の値「１０１０」が、デバッグ情報１３２中のアドレス「１０１０」と一致するので、当該一致したアドレスのソースファイル名「Ｄ：￥ＷＯＲＫ￥ＡＡＡ．Ｃ」および行番号「３５」が出力される。
【００４５】
このようにして得られたソースファイル名と行番号を起動オプションとして汎用テキストエディタ２０（第１のテキストエディタ機能部）を起動すると、該当ソースファイルを該当行番号箇所（カーソルがある行）で表示することができる。
【００４６】
上記のように構成されたハードウェア／ソフトウェア協調検証装置２００は、例えばコンピュータにより構成され、通常のコンピュータのハードウェアリソース、例えばＲＯＭ，ＲＡＭ，ＣＰＵ、入力装置、出力装置、通信インターフェース、ハードディスク、記録媒体およびその駆動装置を備えている。
【００４７】
このハードウェアリソースとソフトウェアリソース（ＯＳ、アプリケーションなど）との協働の結果、ハードウェア／ソフトウェア協調検証装置２００は、図１に示すように、コンパイラ／リンカ１２、ＨＤＬシミュレータ１０、ＰＣ→ソースファイル検索機能部１９、汎用テキストエディタ２０を実装する。
【００４８】
次に、上記のように構成されたハードウェア／ソフトウェア協調検証装置２００の動作を説明する。
【００４９】
ＨＤＬシミュレータ１０はテストベンチ１４をシミュレーションし、シミュレーション結果をシミュレーション結果波形データ１８として、内蔵の波形ビューア１０１に表示する。
【００５０】
所望の動作箇所をカーソルで選択し、波形ビューア１０１に備わるカーソル位置の信号状態を取得する機能を使ってプログラマブルカウンタの値（ＰＣ値）を取得する。
【００５１】
シミュレーション結果波形データ１８は、通常のソフトウェア実行だけでなく、組み込みシステムで必須である割り込み動作やダイレクトメモリアクセス（ＤＭＡ）動作も含み、ＣＰＵのソフトウェア実行時間は割り込みやダイレクトメモリアクセスによって変動する。当然プログラマブルカウンタの更新タイミングも連動する。割り込み動作やダイレクトメモリアクセス動作はハードウェア状態によって発生し、テストベンチ１４内にＣＰＵモデル１５、ＦＰＧＡモデル１６やＨＷモデル１７を含むことによって実現できる。割り込み発生時やＤＭＡ動作中など任意箇所のプログラマブルカウンタの値を取得可能なため、組み込みシステムのハードウェアとソフトウェア両方のデバッグに有効となる。
【００５２】
取得したプログラマブルカウンタの値は、デバッグ情報１３２とともにＰＣ→ソースファイル検索機能部１９に入力する。ＰＣ→ソースファイル検索機能部１９は、例えば図３のように、取得したプログラマブルカウンタの値（ＰＣ値）とデバッグ情報１３２内のアドレスと一致するアドレスを検索し、一致したアドレスに該当するソースファイル名と行番号を出力する。得られたソースファイル名と行番号を起動オプションとして汎用テキストエディタ２０を起動すると、該当ソースファイルを該当行番号箇所（カーソルがある行）で表示することができる。
【００５３】
さらに、シミュレーション結果波形データ１８の所望箇所のプログラマブルカウンタの値に該当するソフトウェアソースを表示後、波形ビューア１０１に備わる機能を使ってカーソルをプログラマブルカウンタ（ＰＣ）の次の変化点に移動させたとき、前述のカーソル位置の信号状態を取得する機能と、ＰＣ→ファイル検索機能部１９とによって、新たな該当ソースファイル名と行番号を取得し、汎用テキストエディタ２０の起動オプションとして再起動することで、表示位置（カーソル位置）を更新することができる。つまり、波形ビューア１０１のカーソル移動とソフトウェアソースの表示箇所が連動できる。
【００５４】
一連の動作例を図４に示す。図４において、波形ビューア１０１のカーソルを、プログラマブルカウンタ（ＰＣ）の変化点（１）（１０００番地）から変化点（２）（１００２番地）に移動させると、それに連動して、汎用テキストエディタ２０のカーソルが１０００番地のソース箇所から１００２番地のソース箇所に移動する。
【００５５】
尚、ＰＣ→ソースファイル検索機能部１９および汎用テキストエディタ２０をＨＤＬシミュレータ１０に設けてもよい。好例として、汎用テキストエディタ２０に、ＨＤＬシミュレータ１０内蔵のテキストエディタ機能を使えば、波形ビューア１０１でのカーソル位置指定から、テキストエディタでのソフトウェアソース表示まで、ＨＤＬシミュレータ１０内で完結することができる。
【００５６】
以上によって、高価な論理エミュレータを必要とせず、且つシミュレーション結果波形データ１８の任意の箇所のプログラマブルカウンタの値に該当するソフトウェアソースを表示することができる。
【実施例２】
【００５７】
本実施例２では、高価な論理エミュレータを必要とせず、ＨＤＬシミュレータでハードウェア／ソフトウェア協調検証を行うことができるとともに、実施例１とは逆に、ソフトウェアソースから、その任意箇所に該当するシミュレーション結果波形を特定して表示できるように構成した。
【００５８】
図５は、実施例２によるハードウェア／ソフトウェア協調検証装置３００の構成を示しており、図１と同一部分は同一符号をもって示している。
【００５９】
図５において図１と異なる点は、図１のＰＣ→ソースファイル検索機能部１９に代えて、汎用テキストエディタ２０（第２のテキストエディタ機能部）から取得した、表示ソースファイルのファイル名およびカーソル行番号と、デバッグ情報１３２内のファイル名および行番号の情報とを入力とし、デバッグ情報１３２内のファイル名および行番号と、汎用テキストエディタ２０から取得した表示ソースファイルのファイル名およびカーソル行番号とが一致する箇所を検索し、一致箇所のアドレスを出力するソースファイル→ＰＣ検索機能部３０（第２の検索機能部）を設けた点にある。
【００６０】
このソースファイル→ＰＣ検索機能部３０から出力されたアドレスは、汎用テキストエディタ２０に表示されたソースファイルのカーソル箇所に該当する、波形ビューア１０１のシミュレーション結果波形データ１８に指定されたプログラマブルカウンタの値（該当ＰＣ値）を示すものである。
【００６１】
波形ビューア１０１では、自身に備わる検索機能を使用して、波形ビューア１０１のカーソルを、シミュレーション結果波形データ１８内のプログラマブルカウンタの値と、ソースファイル→ＰＣ検索機能部３０の出力アドレスが示すプログラマブルカウンタの値とが一致する箇所に移動させ、そのシミュレーション結果波形を表示する。これによって、ソフトウェアソースから、その任意箇所に該当するシミュレーション結果波形を特定して表示することができる。
【００６２】
図５において、上記以外の部分は図１と同一に構成されている。すなわち、ソフトウェアソース群１１をコンパイラ／リンカ１２（コンパイルおよびリンクを実行するプログラム）でビルドして、実行コード１３１（実行ソフトウェア）と、図２に示すデバッグ情報１３２との２つの要素で構成されるオブジェクトファイル１３が生成される。
【００６３】
ＨＤＬシミュレータ１０には、テストベンチ１４としてＣＰＵモデル１５と、デバッグ対象ハードウェアであるＦＰＧＡモデル１６およびＨＷモデル１７が記述され、ＣＰＵモデル１５が、実行コード１３１を実行して実機のソフトウェアをシミュレーションし、ＨＤＬシミュレータがデバッグ対象ハードウェア（ＦＰＧＡモデル１６、ＨＷモデル１７）の動作をシミュレーションし、そのシミュレーション結果がソフトウェア動作とデバッグ対象ハードウェアの動作が協調した動作結果となり、シミュレーション結果波形データ１８として波形ビューア１０１に表示される。
【００６４】
波形ビューア１０１では、観測したい信号群に、ＣＰＵモデル１５の実行アドレスを示すプログラマブルカウンタ（ＰＣ）が指定され、シミュレーション期間中の全てのプログラマブルカウンタの値を記録する。
【００６５】
また、実施例１と同様に、前記ＣＰＵモデル１５は、例えば特許文献２に記載の技術を利用して動作速度向上を図る。すなわち、オブジェクトファイル１３の実行コード１３１（実行ソフトウェア）を生成する際に、アセンブラプログラムとして作成（アセンブラ命令語の文字列で記述）し、ＣＰＵモデル１５には、アセンブラ命令語の文字列を解析する文字列解析機能部を設け、該文字列解析機能部で解析されたアセンブラ命令を実行するように構成する。
【００６６】
このように構成することにより、アセンブラ命令語の文字列解析は従来のビットパターン解析と比べて小規模に実現できるため、ＣＰＵモデルの処理速度の向上が期待できる。
【００６７】
上記のように構成されたハードウェア／ソフトウェア協調検証装置３００は、例えばコンピュータにより構成され、通常のコンピュータのハードウェアリソース、例えばＲＯＭ，ＲＡＭ，ＣＰＵ、入力装置、出力装置、通信インターフェース、ハードディスク、記録媒体およびその駆動装置を備えている。
【００６８】
このハードウェアリソースとソフトウェアリソース（ＯＳ、アプリケーションなど）との協働の結果、ハードウェア／ソフトウェア協調検証装置３００は、図５に示すように、コンパイラ／リンカ１２、ＨＤＬシミュレータ１０、汎用テキストエディタ２０、ソースファイル→ＰＣ検索機能部３０を実装する。
【００６９】
また、汎用テキストエディタ２０およびソースファイル→ＰＣ検索機能部３０をＨＤＬシミュレータ１０に設けてもよい。好例として、汎用テキストエディタ２０に、ＨＤＬシミュレータ１０内蔵のテキストエディタ機能を使えば、テキストエディタでのカーソル位置指定から、波形ビューア１０１での該当箇所の波形表示まで、ＨＤＬシミュレータ１０内で完結することができる。
【００７０】
以上によって、高価な論理エミュレータを必要とせず、且つ汎用テキストエディタ２０で表示した任意の箇所のソフトウェアソースに該当する波形ビューア１０１内のシミュレーション結果波形を表示することができる。
【符号の説明】
【００７１】
１０…ＨＤＬシミュレータ
１１…ソフトウェアソース群
１２…コンパイラ／リンカ
１３…オブジェクトファイル
１４…テストベンチ
１５…ＣＰＵモデル
１６…ＦＰＧＡモデル
１７…ＨＷモデル
１８…シミュレーション結果波形データ
１９…ＰＣ→ソースファイル検索機能部
２０…汎用テキストエディタ
３０…ソースファイル→ＰＣ検索機能部
１０１…波形ビューア
１３１…実行コード
１３２…デバッグ情報
２００、３００…ハードウェア／ソフトウェア協調検証装置
【図１】
0006763153.tif 000002
【図２】
0006763153.tif 000003
【図３】
0006763153.tif 000004
【図４】
0006763153.tif 000005
【図５】
0006763153.tif 000006
【図６】
0006763153.tif 000007