(57)【要約】【課題】デバッガ装置とＨＤＬシミュレータとを別個のコンピュータを連動させてＨＤＬシミュレータのアプリケーションにアクセスする場合、ＨＤＬシミュレータのアプリケーションは公開されていないため実現は困難になる。【解決手段】１台のコンピュータによるＨＤＬシミュレータでハードウェア／ソフトウェア協調シミュレーションを行うために、Ｃ言語で記述されたソフトウェアを用い、ＨＤＬシミュレータはＣＰＵモデルと外部デバイスモデルを備える。ＣＰＵモデルは、Ｃ言語で記述されたソフトウェアを読み込んで解析する解析部と、時間概念を省略して解析を実行する実行部、及び時間概念を有する外部デバイスモデルに対するアクセス機能を実現するバス制御部を備える。また、外部デバイスモデルは、ＦＰＧＡを備える。【選択図】  図１
2014241001.tif 000002
【特許請求の範囲】
【請求項１】
１台のコンピュータによるＨＤＬシミュレータでハードウェア／ソフトウェア協調シミュレーションを行うものにおいて、
前記コンピュータのソフトウェアはＣ言語で記述されたソフトウェアを用い、前記ＨＤＬシミュレータはＣＰＵモデルと外部デバイスモデルを備え、
ＣＰＵモデルは、Ｃ言語で記述されたソフトウェアを読み込んで解析する解析部と、解析部により解析された結果に基づいて演算を実行する実行部と、
時間概念を省略して解析を実行する実行部、及び時間概念を有する外部デバイスモデルに対するアクセス機能を実現するバス制御部を有し、
外部デバイスモデルは、ＲＯＭモデルと、ＲＡＭモデル、及びＦＰＧＡを有することを特徴としたハードウェア／ソフトウェア協調シミュレーション装置。
【請求項２】
前記バス制御部は、外部デバイスモデルからデータ取得のためにクロック精度でリードアクセスを行い、且つ外部デバイスモデルへ演算結果を出力するためにクロック精度でライトアクセスすることを特徴とした請求項１記載のハードウェア／ソフトウェア協調シミュレーション装置。
【請求項３】
前記解析部は、実行部での演算に使用するデータが外部デバイスモデルに依存するか否かと、演算結果の出力先が外部デバイスモデルか否かの判断機能を有することを特徴とした請求項１又は２記載のハードウェア／ソフトウェア協調シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア／ソフトウェア協調シミュレーション装置に関するものである。
【背景技術】
【０００２】
組み込み用協調試験システムは、組み込み製品開発時において実機を製作する前に、ハードウェアとソフトウェアの組み合わせによる動作を試験する試験システムである。この試験システムを用いてハードウェアを試験するためのシミュレーションにはクロック精度が必要になるが、ソフトウェアを試験するためには命令精度で十分である。
【０００３】
シミュレーションではクロック精度が高いことから、精度の点ではソフトウェアの試験にも使用可能であるが、その場合、シミュレーション速度が遅いため実用には厳しい。この問題を解決するものとして、特許文献１が公開されている。
特許文献１は、デバッガ及び命令セットシミュレータを含む第１のコンピュータと、ＨＤＬシミュレータを実行する第２のコンピュータの２台のコンピュータからなるものである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３６６６０２
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のように２台のコンピュータを用いて、デバッガ装置とＨＤＬシミュレータとが別のコンピュータシステムが構成されると、第１のコンピュータによるデバッガの停止と第２のコンピュータによるＨＤＬシミュレータの停止を連動させるためには、ＨＤＬシミュレータのアプリケーションにアクセスする必要がある。しかし、一般的にＨＤＬシミュレータのアプリケーションは公開されていないため、実現は困難になる。さらに２台のコンピュータの間でそれぞれ同期を取る必要がある。
【０００６】
本発明が目的とするところは、１台のコンピュータでハードウェア／ソフトウェア協調を可能としたシミュレーション装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、１台のコンピュータによるＨＤＬシミュレータでハードウェア／ソフトウェア協調シミュレーションを行うものにおいて、
前記コンピュータのソフトウェアはＣ言語で記述されたソフトウェアを用い、前記ＨＤＬシミュレータはＣＰＵモデルと外部デバイスモデルを備え、
ＣＰＵモデルは、Ｃ言語で記述されたソフトウェアを読み込んで解析する解析部と、解析部により解析された結果に基づいて演算を実行する実行部と、
時間概念を省略して解析を実行する実行部、及び時間概念を有する外部デバイスモデルに対するアクセス機能を実現するバス制御部を有し、
外部デバイスモデルは、ＲＯＭモデルと、ＲＡＭモデル、及びＦＰＧＡを有することを特徴としたものである。
【０００８】
また、前記バス制御部は、外部デバイスモデルからデータ取得のためにクロック精度でリードアクセスを行い、且つ外部デバイスモデルへ演算結果を出力するためにクロック精度でライトアクセスすることを特徴としたものである。
【０００９】
また、本発明の解析部は、実行部での演算に使用するデータが外部デバイスモデルに依存するか否かと、演算結果の出力先が外部デバイスモデルか否かの判断機能を有することを特徴としたものである。
【発明の効果】
【００１０】
以上のとおり、本発明によれば、動的にシミュレーション精度が可変できるので、ハードウェアとソフトウェアの試験に適した精度での試験が可能となるものである。また、１台のコンピュータのＨＤＬシミュレータ上でシミュレーション
ができるため、常にＣＰＵのソフトウェア処理とＦＰＧＡの動作タイミングが一致し、ＣＰＵのソフトウェア処理とＦＰＧＡの動作タイミング関係に依存する動作の再現も容易となるものである。さらに、ＨＤＬシミュレータのアプリケーションをアクセスする必要がないため容易にシミュレーションの実現が可能となるものである。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態を示すＨＤＬシミュレータの構成図。
【図２】外部デバイスモデルのデータを必要としない命令群と動作例図。
【図３】外部デバイスモデルのデータを必要とする命令群と動作例図。
【図４】実行結果を外部デバイスモデルに出力する命令群と動作例図。
【発明を実施するための形態】
【００１２】
図１は、本発明の実施例を示す組み込み用協調試験システムの概略構成図を示したものである。本発明は、昨今のコンピュータの性能向上とHDL言語の記述仕様の強化により、１台のコンピュータ上にHDLシミュレータとデバッガ及び命令セットシミュレータを含めることが可能になってきたことを利用するものである。
【００１３】
図１において、１はＨＤＬシミュレータで、ＣＰＵモデル１０と外部デバイスモデル２０を備えている。１１はＣ言語で記述されたソフトウェアで、このソフトウェア１１は、ＦＰＧＡ（Field Programmable Gate Array）を試験するためのテストプログラムの場合や、ソフトウェア１１自体が試験対象の場合がある。
【００１４】
ＣＰＵモデル１０には、C言語で記述されたソフトウェアを解析する解析部１２、時間概念を省略して高速で解析を実行する実行部１３及び時間概念を有する外部デバイスモデル２０に対するアクセス機能を実現するバス制御部１４を有す。なお、解析部１２は、演算で使用するデータが外部デバイスモデル２０に依存するか否かの判断機能と、演算結果の出力先が外部デバイスモデル２０か否かの判断機能を備えている。また、バス制御部１４は、外部デバイスモデル２０からデータ取得のためにクロック精度でリードアクセスを行い、且つ外部デバイスモデル２０へ演算結果を出力するためにクロック精度でライトアクセスを実行する。
【００１５】
外部デバイスモデル２０は、互いにバスを介して接続されるＲＯＭモデル２１、ＲＡＭモデル２２及びユーザの使用に合わせて設計されたマイクロプロセッサやＡＳＩＣの設計図を送り込んでシミュレーションができるＦＰＧＡ２３を備えている。
【００１６】
ＣＰＵモデル１０と外部デバイスモデル２０は、図示省略された１台のコンピュータのＨＤＬシミュレータ上で動作する。Ｃ言語で記述されたソフトウェア１１はコンピュータの記憶装置に格納されるファイルで、ＨＤＬシミュレータ上のＣＰＵモデル１０がアクセスする。
【００１７】
本発明のシミュレーション方法は、１台のコンピュータのＨＤＬシミュレータ上で実施し、且つ実行するソフトウェアの命令によってシミュレーション精度を動的に可変して実施する。ＣＰＵモデル１０に含まれる解析部１２はソフトウェア１１を読み込み、解析する。解析された結果、外部モデルのデータを必要としない命令の場合は実行部１３に実行を委ねる。
【００１８】
図２に、外部デバイスモデル２０のデータを必要としない命令群と動作の例を示す。３つの変数a、b、cはコンパイラによってＣＰＵ内部データとして配置され、外部デバイスモデルのデータではない。この命令は時間概念を省略して実行され、命令精度のシミュレーションとなる。
【００１９】
図３に、外部モデルのデータを必要とする命令群と動作の例を示す。外部デバイスモデル２０に対するデータを必要とする場合の命令は、実行部１３とバス制御部１４の両方に処理を委ねる。３つの変数のうち、aはＣＰＵの内部データ、*bと*cは外部デバイスモデル２０のデータに配置する。*bと*cのデータを外部デバイスモデル２０から取得するために、解析部１２はバス制御部１４に外部デバイスモデル２０のリードアクセスを依頼する。
【００２０】
依頼を受けたバス制御部１４は実際のＣＰＵと同じクロックタイミングで外部デバイスをリードアクセスする。つまりバス制御部１４はクロック精度のシミュレーションとなる。また、バス制御部１４は、外部デバイスモデル２０から*bと*cのデータを取得した場合にはそのデータを解析部１２に渡す。データを受けた解析部１２は実行部１３へ*bと*cのデータを渡し、実行部１３は受け取った*bと*cのデータを加算の実行に使い、加算結果をaに代入する。実行部１３はシミュレーションとなる。
【００２１】
図４に、実行結果を外部デバイスモデル２０に出力する命令群と動作の例を示す。実行部１３での実行結果を外部デバイスモデル２０に出力する場合も実行部１３とバス制御部１４の両方による処理に委ねる。３つの変数のうち、aとbはＣＰＵの内部データ、*cは外部デバイスモデルのデータに配置する。実行部１３はaからbの減算の実行結果である*cのデータを解析部１２に渡し、解析部１２は、バス制御部１４に*cのデータを外部デバイスモデル２０へのライトアクセスを依頼する。依頼を受けたバス制御部１４は、前述のリードアクセスと同じく実際のＣＰＵと同じクロックタイミングで外部デバイスモデル２０にライトアクセスする。
【００２２】
以上本発明によれば、ＨＤＬシミュレータ１上で解析部１２、実行部１３とバス制御部１４が連動するため、シミュレーションを途中で中断したいとき、ＨＤＬシミュレータ１のシミュレーションを一時停止することでＣＰＵのソフトウェア処理と外部デバイスモデル２０の動作を一緒に止めることができる。したがって、本願発明は、従来技術のようにデバッガ装置とＨＤＬシミュレータが別のコンピュータの場合のように、デバッガの停止とＨＤＬシミュレータの停止を連動するためにＨＤＬシミュレータのアプリケーションにアクセスする必要はない。
【００２３】
また、本発明はＨＤＬシミュレータ内の操作で停止・起動が可能のため、アプリケーションにアクセスする必要が無いことで容易に実現でき、これによって常にＣＰＵのソフトウェア処理とＦＰＧＡの動作タイミングが一致し、実機では観測が特に難しいＣＰＵのソフトウェア処理とＦＰＧＡの両者のタイミング関係に依存する動作の再現も容易となる。
【符号の説明】
【００２４】
１…  ＨＤＬシミュレータ
１０…  ＣＰＵモデル
２０…  外部デバイスモデル
１１…  ソフトウェア
１２…  解析部
１３…  実行部
１４…  バス制御部
２０…  外部デバイスモデル
２１…  ＲＯＭモデル
２２…  ＲＡＭモデル
２３…  ＦＰＧＡ
【図１】
2014241001.tif 000003
【図２】
2014241001.tif 000004
【図３】
2014241001.tif 000005
【図４】
2014241001.tif 000006