(57)【特許請求の範囲】
【請求項１】
実機と等価なＣＰＵモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、
前記ＣＰＵモデルは、
前記実行ソフトウェアの命令を実行する命令実行部と、
この命令実行部に供される実行ソフトウェアを解析して当該実行ソフトウェアの命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する文字列解析部と
を備え、
前記命令実行部は、
前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部と、
前記取り込んだ命令を実行してその結果を記憶領域に格納する書き込み処理部と、
を備え、
前記ＣＰＵモデルの命令パイプラインステージは、
前記取り込み処理部が、前記文字列解析部による変換処理によって得られた前記アッセンブラ命令語の文字列データを取り込むステージと、
前記書き込み処理部が、前記取り込まれた文字列データのアッセンブラ命令語を、順次、デコード及び実行し、その結果を前記記憶領域に格納するステージと
からなることを特徴とするデジタル回路用シミュレーション装置。
【請求項２】
請求項１に記載のＣＰＵモデルとしてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタル回路のハードウェアとソフトウェアの協調検証を行う技術に関する。
【背景技術】
【０００２】
デジタル回路の開発においては、開発期間及びコスト低減の要求から試作品を作成する前に予測可能な問題点を検証し、解決するために論理シミュレーションベースのハードウェアとソフトウェアの協調検証が行われている（例えば、特許文献１，２）。
【０００３】
特許文献１に開示されたシミュレーションモデルの実行パイプラインは、ソフトウェアの命令コードをプロセッサモデルに取り込む段階と、前記取り込んだ命令コードをデコードして実行する段階と、前記実行の結果を記憶領域に格納する段階とからなる。
【０００４】
特許文献２に開示されたハードウェアとソフトウェアの強調検証方法は、ソフトウェアの命令コードを取り込む段階と、前記命令コードの系列依存性を分析してその結果に基づき選択されたプロセッサモデルに当該命令コードを実行させる段階と、前記実行の結果を記憶領域に格納する段階とからなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３１８２０９号公報
【特許文献２】特開２０００−１１０２２号公報
【特許文献３】特開２０１４−７８０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のシミュレーション方法に供されているプロセッサモデルは「命令の取り込み」「命令の実行」「実行結果の書き込み」の３つのパイプラインステージによって命令を実行する。このプロセッサモデルの命令は、実際のＣＰＵ（中央演算装置）の命令と比べて簡素なものであるが、協調シミュレーションの速度が遅いとう欠点がある。
【０００７】
本発明は、上記の事情に鑑み、デジタル回路のハードウェアとソフトウェアの協調シミュレーションに供されるコンピュータの資源使用量を削減すると共に協調シミュレーションの速度を改善することを課題とする。
【課題を解決するための手段】
【０００８】
そこで、本発明のデジタル回路用シミュレーション装置の態様としては、実機と等価なＣＰＵモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、前記ＣＰＵモデルは、前記実行ソフトウェアの命令を実行する命令実行部を備え、前記命令実行部は、前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部と、前記取り込んだ命令を実行してその結果を記憶領域に格納する書き込み処理部とを備える。
【０００９】
前記ＣＰＵモデルの一態様は、前記命令実行部に供される実行ソフトウェアを解析して当該実行ソフトウェアの命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する文字列解析部をさらに備える。
【００１０】
また、本発明の他の態様としては、前記ＣＰＵモデルとしてコンピュータを機能させるプログラムがある。
【発明の効果】
【００１１】
以上の本発明によれば、デジタル回路のハードウェアとソフトウェアの協調シミュレーションに供されるコンピュータの資源使用量が削減すると共に協調シミュレーションの速度が改善する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における協調シミュレーションに供される仮想ハードウェアと実行ソフトウェアの概略構成図。
【図２】同実施形態におけるＣＰＵモデルによるパイプライン動作例の説明図。
【図３】同ＣＰＵモデルによる他のパイプライン動作例の説明図。
【図４】従来のＣＰＵモデルによるパイプライン動作例の説明図。
【発明を実施するための形態】
【００１３】
以下に図面を参照しながら本発明の実施形態について説明する。
【００１４】
［本実施形態のシミュレーションの概要］
図１に示した本発明の実施形態のシミュレーション装置１は、実機と等価なＣＰＵモデル７とデジタル回路用の被試験論理回路とを備えた仮想ハードウェア３を実行ソフトウェア２によりシミュレーションを実行するデジタル回路用シミュレーション装置である。
【００１５】
ＣＰＵモデル７は、文字列解析部７１と命令実行部７２の機能を実行することにより、実行ソフトウェア２と仮想ハードウェア３のデバッグを行える。一般にこのシミュレーションをハードウェアとソフトウェアの協調シミュレーションと称される。
【００１６】
特に、ＣＰＵモデル１１は、パイプラインステージを二段階のステージとすることにより、被試験論理回路のシミュレーションに供されるコンピュータのハードウェア資源とソフトウェア資源の削減と当該シミュレーションの速度改善を図る。
【００１７】
［本実施形態のシミュレーション装置のブロック構成例］
本実施形態の協調シミュレーションに供される実行ソフトウェア２は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部２１と、機械語の命令列をアセンブラ言語で表したアセンブラ命令語の文字列が記述されたアセンブラ命令語部２２とを有する。このアセンブラ命令語の文字列は、処理内容を指示するオペコードと処理の対象を指示するオペランドを有している。
【００１８】
シミュレーション装置１は、コンピュータにソフトウェアが読み込まれてこのソフトウェアがハードウェア資源と協働した具体的手段、すなわち、デジタル回路の被試験論理回路及び制御系の処理モデルを主体とした仮想ハードウェア３を備える。
【００１９】
仮想ハードウェア３は、ユーザが作成するカスタムＬＳＩなどの被試験論理回路として機能するＡＳＩＣ４と、ソフトウェア動作用のメモリモデルとして機能するＲＯＭモデル５，ＲＡＭモデル６と、ソフトウェア実行部分として機能する実機と等価なＣＰＵモデル７とを有する。これらの機能モデルはバスモデル８を通じて接続されている。
【００２０】
ＣＰＵモデル７は、文字列解析部７１と命令実行部７２とを備える。
【００２１】
文字列解析部７１は、実行ソフトウェア２を解析して実行ソフトウェア２の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する。
【００２２】
命令実行部７２は、前記文字列のアドレス情報に基づく命令を実行してその結果をシミュレーション装置１の記憶領域（揮発性若しくは不揮発性の記憶部）に格納する。この命令実行部７２は、前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部７３と、前記取り込んだ命令を実行してその結果を前記記憶領域に格納する書き込み処理部７４と備える。
【００２３】
［本実施形態のシミュレーション動作例］
図１〜４を参照して本実施形態のシミュレーション動作例について説明する。
【００２４】
従来のＣＰＵモデルは３つのパイプラインステージによって命令コードを実行するのに対して本実施形態のＣＰＵモデル７は２つのパイプラインステージによって命令コードを実行する。
【００２５】
すなわち、従来のＣＰＵモデルは、例えば、図４に示したように「命令の取り込みステージＳ２１」「命令の実行ステージＳ２２」「実行結果の書き込みステージＳ２３」の３段階のパイプラインステージで命令を実行処理する。
【００２６】
これに対して、本実施形態のＣＰＵモデル７は、図２に例示したように「命令取り込みのステージＳ１」「実行及び書き込みのステージＳ２」の２段階のパイプラインステージで命令を実行処理する。
【００２７】
特に、ＣＰＵモデル７は、予め、文字列解析部７１が実行ソフトウェア２を解析して実行ソフトウェア２の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する。適用される変換方式としては、例えば特許文献３に開示されたアセンブラ命令語の文字列への変換方法が挙げられる。この変換処理によって実行ソフトウェア２の命令コードの実行処理の負担が軽減される。そして、これにより、命令実行部７２は一つのパイプラインステージで実行ソフトウェア２の命令実行とその結果の格納が行える。
【００２８】
以下、図２を参照しながら本実施形態のパイプラインステージについて説明する。
【００２９】
ステージＳ１：取り込み処理部７３は、文字列解析部７１による変換処理によって得られたアドレス情報の文字列をデータレジスタに取り込む。例えば、アドレス０００１００００番地のアッセンブラ命令語が取り込まれる。この取り込まれた命令はステージＳ２に供される。その後、アドレス０００１０００２番地以降のアッセンブラ命令語が順次取り込まれる。
【００３０】
ステージＳ２：書き込み処理部７４は、アドレス０００１００００番地のアッセンブラ命令語がデコード、実行されその結果がシミュレーション装置１の記憶領域に格納される。その後、ステージＳ１から順次供されたアドレス０００１０００２番地以降のアッセンブラ命令語が、順次、デコード、実行されその結果が前記記憶領域に格納される。
【００３１】
例えば、図２に示したアドレス０００１０００６番地のアッセンブラ命令語「ＭＯＶＷ ＃Ｈ’ｆｆ０ｆ， ＠Ｒ１」の命令動作においては、従来のパイプライン処理と同様に、１パイプラインステージのクロック数が伸長される。
【００３２】
また、パイプラインステージが２段階である本実施形態においても、ＲＩＳＣプロセッサの特徴である分岐命令に続く１命令を分岐前に行う遅延分岐が実行される。図３に示した事例は、アドレス０００２０００４番地のＢＲＡ命令が分岐命令であり、アドレス０００２０１００番地に分岐する命令となる。実行順番は０００２０００４番地→０００２０００６番地→０００２０１００番地となっており、分岐命令の０００２０００４番地の実行後に０００２０００６番地を実行し、０００２０１００番地に分岐している。分岐命令後の０００２０００６番地の命令は遅延スロットとなる。
【００３３】
［本実施形態の効果］
以上のようにＣＰＵモデル７は、実行ソフトウェア２を予め解析して実行ソフトウェア２の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換し、この文字列に基づく命令の実行とその結果を記憶領域に格納させる。特に、２段階のパイプラインステージ（ステージＳ１，Ｓ２）で実行ソフトウェア２の命令が実行された結果を得ることができる。したがって、被試験論理回路の協調シミュレーションに供されるコンピュータのハードウェア資源及びソフトウェア資源が削減すると共に協調シミュレーションの速度を改善できる。
【００３４】
［本発明の他の態様］
本発明は、以上の実施形態に限定されるものではなく、仮想ハードウェア３の構成などは特許請求の範囲内で変更して実施することができる。例えば、仮想ハードウェア３は、デュアルＣＰＵをモデル化したＣＰＵモデルであってもよく、各ＣＰＵモデルからアクセス可能な２ポートメモリとしてもよい。
【００３５】
また、本発明は、シミュレーション装置１としてコンピュータを機能させるプログラムの態様とすることもできる。このプログラムはコンピュータがアクセス可能なネットワークを介して提供でき、さらに、コンピュータが読取り可能な周知の記録媒体に格納して提供できる。そして、この記録媒体はその格納されたプログラムがコンピュータによって読み取られることにより上記実施形態の処理を実行できるので本発明を構成する。
【符号の説明】
【００３６】
１…シミュレーション装置（デジタル回路用シミュレーション装置）
２…実行ソフトウェア、２１…アドレス情報部、２２…アセンブラ命令語部
３…仮想ハードウェア
７…ＣＰＵモデル、７１…文字列解析部、７２…命令実行部
７３…取り込み処理部、７４…書き込み処理部
【図１】
0006763162.tif 000002
【図２】
0006763162.tif 000003
【図３】
0006763162.tif 000004
【図４】
0006763162.tif 000005