(57)【要約】      （修正有）【課題】シミュレーションの実行ソフトウェアの作成労力を軽減させるとともに、ＣＰＵモデルのソフトウェア処理把握の容易化およびシミュレーション速度を向上させる。【解決手段】デジタル回路用シミュレーション装置は、デジタル回路用の被試験論理回路（ＡＳＩＣ）３と処理モデル４，５，１６とを備えた仮想ハードウェア１３を実行ソフトウェア１２で動作シミュレーションする。この実行ソフトウェア１２は、アドレス情報部８とアセンブラ命令語の文字列が記述されたアセンブラ命令語部１４とを有している。一方、ＣＰＵモデル１６は、実行ソフトウェア１２に記述されたアセンブラ命令語の文字列を解析する文字列解析機能部１５と、該解析機能部１５で解析されたアセンブラ命令を実行する命令実行部１１とを有している。【選択図】図１
2014078087.tif 000002
【特許請求の範囲】
【請求項１】
実機と等価なＣＰＵモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、
ＣＰＵモデルはアセンブラ命令語の文字列を解析する文字列解析機能部を備え、該解析機能部で解析されたアセンブラ命令を実行する
ことを特徴とするデジタル回路用シミュレーション装置。
【請求項２】
文字列解析機能部は、実行ソフトウェアに記述されたアセンブラ命令語の文字列を解析する
ことを特徴とする請求項１記載のデジタル回路用シミュレーション装置。
【請求項３】
ＣＰＵモデルの外部には、実行ソフトウェアに記述された命令ビットパターンをアセンブラ命令語の文字列に変換する手段を有し、
文字列解析機能部が、前記変換されたアセンブラ命令語の文字列を解析可能なことを特徴とする請求項１記載のデジタル回路用のシミュレーション装置。
【請求項４】
請求項１〜３のいずれか１項に記載のＣＰＵモデルとしてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路のハードウェア／ソフトウェアをシミュレーションする技術に関する。
【背景技術】
【０００２】
デジタル回路の開発では、開発期間およびコスト低減の要求から試作品を作成する前に予測可能な問題点を検証し、解決するために論理シミュレーションベースのハードウェア／ソフトウェアの協調検証が行われている。この協調検証方法としては非特許文献１が公知文献となっている。
【０００３】
図４に基づき前記協調検証の概略を説明すれば、コンパイラの出力するオブジェクトコード、即ち実行ソフトウェア（ＳＷ）１により仮想ハードウェア（ＨＷ）２の動作をシミュレーションする。この仮想ハードウェア２は、被試験論理回路として機能するＡＳＩＣ３と、ソフトウェア動作用のメモリモデルとして機能するＲＯＭモデル４，ＲＡＭモデル５と、実機と等価なＣＰＵモデル６とを有し、各部３〜６はバスモデル７を通じて接続されている。
【０００４】
実行ソフトウェア１は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部８と、コンパイラが出力するオブジェクトコードのビットパターン、即ちＣＰＵ命令を独自のビットパターンによる１６進数で表現した命令ビットパターン部９とを有している。
【０００５】
ＣＰＵモデル６は、ハードウェア記述言語（ＨＤＬ：ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）で構築され、命令ビットパターン部９のビットパターンを解析する命令デコーダ部１０と、命令デコード部１０で解析された命令を実行する命令実行部１１とを有している。このＣＰＵモデル６によれば、実行ソフトウェア１を実行することで実機のソフトウェアをシミュレーションでき、ＣＰＵモデル６を使用した仮想ハードウェア２の環境はハードウェア全体を実機のソフトウェアでシミュレーションすることができる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】発明協会公開技報  公技番号２０１１−５０４３７１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、実行ソフトウェア１の作成には、すべてのファイルでのコンパイルエラーやリンクエラーが無いソフトウェア（ＳＷ）の完成度が要求されるため、かかるエラー修正等の手間が大きく、その作成が効率的ではない。
【０００８】
また、実行ソフトウェア１は、ＣＰＵ命令を独自のビットパターンによる１６進で表現するため、その可読性が極めて低く、ＣＰＵモデル６のソフトウェア処理状況の把握が難しい。さらに命令デコード部１０には実際のＣＰＵと同等の命令デコード回路が必要になるので、ＣＰＵモデル６が大掛かりなものとなり、シミュレータの負担が増加し、シミュレーション速度が低下する原因にもなる。
【０００９】
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、シミュレーションの実行ソフトウェアの作成労力を軽減させるとともに、ＣＰＵモデルのソフトウェア処理把握の容易化およびシミュレーション速度の向上を解決課題としている。
【課題を解決するための手段】
【００１０】
そこで、本発明は、実機と等価なＣＰＵモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、ＣＰＵモデルはアセンブラ命令語の文字列を解析する文字列解析機能部を備え、該解析機能部で解析されたアッセンブラ命令を実行することを特徴とする。
【００１１】
この発明によれば、実行ソフトウェアをオブジェクトコードではなく、アセンブラプログラムとして作成することができる。したがって、すべてのファイルでのコンパイルエラーやリンクエラーなどを取り除く作業が不要となる。
【００１２】
また、アセンブラプログラムは従来のオブジェクトコードに比べて可読性が高く、ＣＰＵモデルのソフトウェア処理の把握が容易であり、さらに従来のビットパターン解析と比べＣＰＵモデルの処理速度の向上が期待できる。
【００１３】
前記文字列解析機能部の一態様は、実行ソフトウェアに記述されたアセンブラ命令語の文字列を解析する。したがって、人手で実行ソフトウェアが作成でき、コンパイル作業を省略できる。
【００１４】
前記文字列解析機能部の他の態様は、実行ソフトウェアに記述された命令ビットパターンを変換したアセンブラ命令語の文字列を解析する。この変換手段はＣＰＵモデルの外部に設けられていることが好ましい。この態様によれば、アセンブラプログラムの命令のみならず、従来のコンパイラが出力するオブジェクトコードの命令も解析可能となる。なお、本発明は、前記ＣＰＵモデルとしてコンピュータを機能させることを特徴とするプログラムとして構成することもできる。
【発明の効果】
【００１５】
本発明によれば、シミュレーションの実行ソフトウェアの作成労力が軽減でき、またＣＰＵモデルのソフトウェア処理把握の容易化およびシミュレーション速度の向上にも貢献できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るシミュレーション装置を用いたシミュレーション図。
【図２】同  アセンブラプログラムの文字列解析処理の詳細図。
【図３】オブジェクトコードの命令デコードの詳細図。
【図４】従来のシミュレーション図。
【発明を実施するための形態】
【００１７】
≪シミュレーションの概略≫
図１に基づき本発明の実施形態に係るシミュレーション装置（シミュレータ）を用いたシミュレーションを説明する。図１中、図４と同一構成は同一の符号を付して説明する。
【００１８】
ここでは実行ソフトウェア１２は、コンパイラが出力するオブジェクトコード（実行ソフトウェア１）のビットパターンではなく、該ビットパターンなどの機械語の命令列をアセンブラ言語（Ａｓｓｅｍｂｌｅｒ  Ｌａｎｇｕａｇｅ：アセンブリ言語ともいう。）で記述したアセンブラプログラムからなる。
【００１９】
具体的には実行ソフトウェア１２は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部８と、機械語の命令列をアセンブラ言語で表したアセンブラ命令語の文字列が記述されたアセンブラ命令語部１４とを有している。このアセンブラ命令語の文字列は、処理内容を指示するオペコードと処理の対象を指示するオペランドを有している。このオペコードはアセンブラ言語のコードではニーモニックと呼ばれる。
【００２０】
前記シミュレーション装置は、コンピュータにソフトウェアが読み込まれて該ソフトウェアとハードウェア資源とが協働した具体的手段、即ちデジタル回路の被試験論理回路および制御系の処理モデルを主体とした仮想ハードウェア１３を備えている。この仮想ハードウェア１３は、ユーザが作成するカスタムＬＳＩなどの被試験論理回路として機能するＡＳＩＣ３と、ソフトウェア動作用のメモリモデルとして機能するＲＯＭモデル４，ＲＡＭモデル５と、ソフトウェア実行部分として機能する実機と等価なＣＰＵモデル１６とを有し、それぞれがバスモデル７を通じて接続されている。
【００２１】
このＣＰＵモデル１６は、ＣＰＵ命令のビットパターンを解析する命令デコーダ部１０ではなく、アセンブラ命令語部１４に記述されたアセンブラ命令語の文字列を解析する文字列解析部１５と、文字列解析部１５で解析されたアッセンブラ命令を実行する命令実行部１１とを有している。したがって、ＣＰＵモデル１６によれば、アセンブラプログラムの実行ソフトウェア１２を直接実行することができる。
【００２２】
このアセンブラプログラムは、基本的に機械語と１対１で対応し、プログラマーがＣＰＵ動作を把握しながらプログラムを記述できるため、人手で実行ソフトウェア１２が作成でき、コンパイル作業を省略することができる。これにより従来のオブジェクトコード（例えば実行ソフトウェア１など）生成のために必要だったすべてのファイルでのコンパイルエラーやエラーリンクを取り除く作業が不要となる。
【００２３】
その結果、シミュレーション動作させたい内容のみをアセンブラプログラムで実行ソフトウェア１２を作成することができ、実行ソフトウェア１２の作成労力を軽減することができる。また、実行ソフトウェア１２はアセンブラプログラムなので、従来のオブジェクトコードに比べて可読性が高く、ＣＰＵモデル１６のソフトウェア処理の把握が容易となる。
【００２４】
さらにＣＰＵモデル１６の命令解析には、従来の命令デコーダ部（命令デコード回路）１０によるビットパターン解析ではなく、文字列解析機能部１５によるアセンブラ命令語の文字列解析で実現される。このときアセンブラ命令語の文字列解析は、ビットパターン解析に比べて小規模に実現できるため、従来方式よりも前記シミュレーション装置の負荷が減少し、この点でシミュレーション速度の向上に貢献することができる。
【００２５】
≪処理の比較≫
以下、従来のオブジェクトコードの命令デコードと、アセンブラプログラムの文字列解析とを比較説明する。まず、図２に基づきアセンブラプログラムの文字列解析を説明すれば、実行ソフトウェア１２のアセンブラ命令語部１４には６４文字程度のアセンブラ命令語の文字列データが記述され、ＣＰＵモデル１６の文字列解析機能部１５が該文字列データのテキストを文字列処理する。
【００２６】
図２中の文字列データ「ＳＴＳ．Ｌ  ＰＲ，＠−Ｒ１５」を一例に説明すれば、該文字列データはオペコード「ＳＴＳ．Ｌ」と、第１オペランド「ＰＲ，」と、第２オペランド「＠−Ｒ１５」とにより構成されている。そして、文字列解析機能部１５の文字列処理では、オペコードと二つのオペランドの文字列を条件とする制御文（ｓｗｉｔｃｈ〜ｃａｓｅ文）とし、各分岐内に実行処理を記述する。この記述内容を命令実行部１１が実行する。
【００２７】
これに対してオブジェクトコードの命令デコードは、図３に示すように、前記文字列データ「ＳＴＳ．Ｌ  ＰＲ，＠−Ｒ１５」に対応する１６本のバイナリデータ（２進化されたデータ）の入力信号から命令実行部１１のオペコードとオペランドの制御信号を生成しなければならない。したがって、命令デコーダ部１０は、全オペコードおよび全オペランド分の制御信号（１００本以上）を生成しなければならず、シミュレータの負担が大きくなる。
【００２８】
そうすると、ＣＰＵモデル１６によるアセンブラプログラムの文字列解析によれば、６４文字程度のアセンブラ命令語の文字列データを文字列処理すればよいので、前述のようにオブジェクトコードの命令デコードに比べて装置の負荷が小さく、シミュレーション速度の向上が十分に期待できる。
【００２９】
≪変形例等≫
本発明は、上記実施形態に限定されるものではなく、仮想ハードウェア１３の構成などは各請求項に記載された範囲内で変更して実施することができる。例えば仮想ハードウェア１３は、デュアルＣＰＵをモデル化したＣＰＵモデルであってもよく、各ＣＰＵモデルからアクセス可能な２ポートメモリとしてもよい。
【００３０】
また、従来同様にコンパイラが出力するオブジェクトコード（実行ソフトウェア１）を利用することも可能である。この場合には命令ビットパターン部９のビットパターンをアセンブラ命令語の文字列に変換してアセンブラプログラムを生成し、ＣＰＵモデル１６の文字列解析機能部１５で解析処理をすればよい。このアセンブラ命令語の文字列への変換には非特許文献１の命令セット変換機能を使用することができる。
【００３１】
この場合には命令セット変換機能を実現する手段をＣＰＵモデル１６の外部に設けて、バイナリデータを命令セットの変換ルールを使ってテキスト形式に変換すればよい。これにより前記シミュレーション装置は、アセンブリプログラムの実行ソフトウェア１２のみならず、コンパイラが出力する実行ソフトウェア１を利用したシミュレーションも可能となる。
【００３２】
さらに、本発明は、前記シミュレーション装置としてコンピュータを機能させるシミュレーション用のプログラムとして構成することもできる。このプログラムによれば、アセンブラプログラムの文字列解析が可能なＣＰＵモデル１６が実現される。
【００３３】
このプログラムは、Ｗｅｂサイトや電子メールなどネットワークを通じて提供することができ、またＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭなどの記録媒体に記録して提供することができる。この記録媒体は、記録媒体駆動装置（光学ドライブ装置など）を利用して読み出され、そのプログラムコード自体が前記各実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【符号の説明】
【００３４】
３…ＡＳＩＣ（被試験論理回路）
４…ＲＯＭモデル
５…ＲＡＭモデル
７…バスモデル
８…アドレス情報部
１１…命令実行部
１２…実行ソフトウェア（アセンブラプログラム）
１３…仮想ハードウェア
１４…アセンブラ命令語部
１５…文字列解析機能部
１６…ＣＰＵモデル
【図１】
2014078087.tif 000003
【図２】
2014078087.tif 000004
【図３】
2014078087.tif 000005
【図４】
2014078087.tif 000006