(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6015327
(24)【登録日】2016年10月7日
(45)【発行日】2016年10月26日
(54)【発明の名称】デジタル回路用シミュレーション装置及びそのプログラム
(51)【国際特許分類】
G06F 17/50 20060101AFI20161013BHJP
H01L 21/82 20060101ALI20161013BHJP
H01L 21/822 20060101ALI20161013BHJP
H01L 27/04 20060101ALI20161013BHJP
【FI】
G06F17/50 664A
H01L21/82 C
H01L21/82 T
H01L27/04 T
【請求項の数】4
【全頁数】7
(21)【出願番号】特願2012-224642(P2012-224642)
(22)【出願日】2012年10月10日
(65)【公開番号】特開2014-78087(P2014-78087A)
(43)【公開日】2014年5月1日
【審査請求日】2015年9月15日
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【弁理士】
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100104938
【弁理士】
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100096459
【弁理士】
【氏名又は名称】橋本 剛
(72)【発明者】
【氏名】森 文彦
(72)【発明者】
【氏名】船津 有
【審査官】
合田 幸裕
(56)【参考文献】
【文献】
特開2002−366602(JP,A)
【文献】
特開2001−256079(JP,A)
【文献】
特開2003−233634(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
H01L 21/82
H01L 21/822
H01L 27/04
IEEE Xplore
CiNii
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
実機と等価なCPUモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、
CPUモデルはアセンブラ命令語の文字列を解析する文字列解析機能部を備え、該解析機能部で解析されたアセンブラ命令を実行する
ことを特徴とするデジタル回路用シミュレーション装置。
【請求項2】
文字列解析機能部は、実行ソフトウェアに記述されたアセンブラ命令語の文字列を解析する
ことを特徴とする請求項1記載のデジタル回路用シミュレーション装置。
【請求項3】
CPUモデルの外部には、実行ソフトウェアに記述された命令ビットパターンをアセンブラ命令語の文字列に変換する手段を有し、
文字列解析機能部が、前記変換されたアセンブラ命令語の文字列を解析可能なことを特徴とする請求項1記載のデジタル回路用のシミュレーション装置。
【請求項4】
請求項1〜3のいずれか1項に記載のCPUモデルとしてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル回路のハードウェア/ソフトウェアをシミュレーションする技術に関する。
【背景技術】
【0002】
デジタル回路の開発では、開発期間およびコスト低減の要求から試作品を作成する前に予測可能な問題点を検証し、解決するために論理シミュレーションベースのハードウェア/ソフトウェアの協調検証が行われている。この協調検証方法としては非特許文献1が公知文献となっている。
【0003】
図4に基づき前記協調検証の概略を説明すれば、コンパイラの出力するオブジェクトコード、即ち実行ソフトウェア(SW)1により仮想ハードウェア(HW)2の動作をシミュレーションする。この仮想ハードウェア2は、被試験論理回路として機能するASIC3と、ソフトウェア動作用のメモリモデルとして機能するROMモデル4,RAMモデル5と、実機と等価なCPUモデル6とを有し、各部3〜6はバスモデル7を通じて接続されている。
【0004】
実行ソフトウェア1は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部8と、コンパイラが出力するオブジェクトコードのビットパターン、即ちCPU命令を独自のビットパターンによる16進数で表現した命令ビットパターン部9とを有している。
【0005】
CPUモデル6は、ハードウェア記述言語(HDL:hardware description language)で構築され、命令ビットパターン部9のビットパターンを解析する命令デコーダ部10と、命令デコード部10で解析された命令を実行する命令実行部11とを有している。このCPUモデル6によれば、実行ソフトウェア1を実行することで実機のソフトウェアをシミュレーションでき、CPUモデル6を使用した仮想ハードウェア2の環境はハードウェア全体を実機のソフトウェアでシミュレーションすることができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】発明協会公開技報 公技番号2011−504371
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、実行ソフトウェア1の作成には、すべてのファイルでのコンパイルエラーやリンクエラーが無いソフトウェア(SW)の完成度が要求されるため、かかるエラー修正等の手間が大きく、その作成が効率的ではない。
【0008】
また、実行ソフトウェア1は、CPU命令を独自のビットパターンによる16進で表現するため、その可読性が極めて低く、CPUモデル6のソフトウェア処理状況の把握が難しい。さらに命令デコード部10には実際のCPUと同等の命令デコード回路が必要になるので、CPUモデル6が大掛かりなものとなり、シミュレータの負担が増加し、シミュレーション速度が低下する原因にもなる。
【0009】
本発明は、上述のような従来技術の問題点を解決するためになされたものであり、シミュレーションの実行ソフトウェアの作成労力を軽減させるとともに、CPUモデルのソフトウェア処理把握の容易化およびシミュレーション速度の向上を解決課題としている。
【課題を解決するための手段】
【0010】
そこで、本発明は、実機と等価なCPUモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、CPUモデルはアセンブラ命令語の文字列を解析する文字列解析機能部を備え、該解析機能部で解析されたアッセンブラ命令を実行することを特徴とする。
【0011】
この発明によれば、実行ソフトウェアをオブジェクトコードではなく、アセンブラプログラムとして作成することができる。したがって、すべてのファイルでのコンパイルエラーやリンクエラーなどを取り除く作業が不要となる。
【0012】
また、アセンブラプログラムは従来のオブジェクトコードに比べて可読性が高く、CPUモデルのソフトウェア処理の把握が容易であり、さらに従来のビットパターン解析と比べCPUモデルの処理速度の向上が期待できる。
【0013】
前記文字列解析機能部の一態様は、実行ソフトウェアに記述されたアセンブラ命令語の文字列を解析する。したがって、人手で実行ソフトウェアが作成でき、コンパイル作業を省略できる。
【0014】
前記文字列解析機能部の他の態様は、実行ソフトウェアに記述された命令ビットパターンを変換したアセンブラ命令語の文字列を解析する。この変換手段はCPUモデルの外部に設けられていることが好ましい。この態様によれば、アセンブラプログラムの命令のみならず、従来のコンパイラが出力するオブジェクトコードの命令も解析可能となる。なお、本発明は、前記CPUモデルとしてコンピュータを機能させることを特徴とするプログラムとして構成することもできる。
【発明の効果】
【0015】
本発明によれば、シミュレーションの実行ソフトウェアの作成労力が軽減でき、またCPUモデルのソフトウェア処理把握の容易化およびシミュレーション速度の向上にも貢献できる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態に係るシミュレーション装置を用いたシミュレーション図。
【
図2】同 アセンブラプログラムの文字列解析処理の詳細図。
【
図3】オブジェクトコードの命令デコードの詳細図。
【発明を実施するための形態】
【0017】
≪シミュレーションの概略≫
図1に基づき本発明の実施形態に係るシミュレーション装置(シミュレータ)を用いたシミュレーションを説明する。
図1中、
図4と同一構成は同一の符号を付して説明する。
【0018】
ここでは実行ソフトウェア12は、コンパイラが出力するオブジェクトコード(実行ソフトウェア1)のビットパターンではなく、該ビットパターンなどの機械語の命令列をアセンブラ言語(Assembler Language:アセンブリ言語ともいう。)で記述したアセンブラプログラムからなる。
【0019】
具体的には実行ソフトウェア12は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部8と、機械語の命令列をアセンブラ言語で表したアセンブラ命令語の文字列が記述されたアセンブラ命令語部14とを有している。このアセンブラ命令語の文字列は、処理内容を指示するオペコードと処理の対象を指示するオペランドを有している。このオペコードはアセンブラ言語のコードではニーモニックと呼ばれる。
【0020】
前記シミュレーション装置は、コンピュータにソフトウェアが読み込まれて該ソフトウェアとハードウェア資源とが協働した具体的手段、即ちデジタル回路の被試験論理回路および制御系の処理モデルを主体とした仮想ハードウェア13を備えている。この仮想ハードウェア13は、ユーザが作成するカスタムLSIなどの被試験論理回路として機能するASIC3と、ソフトウェア動作用のメモリモデルとして機能するROMモデル4,RAMモデル5と、ソフトウェア実行部分として機能する実機と等価なCPUモデル16とを有し、それぞれがバスモデル7を通じて接続されている。
【0021】
このCPUモデル16は、CPU命令のビットパターンを解析する命令デコーダ部10ではなく、アセンブラ命令語部14に記述されたアセンブラ命令語の文字列を解析する文字列解析部15と、文字列解析部15で解析されたアッセンブラ命令を実行する命令実行部11とを有している。したがって、CPUモデル16によれば、アセンブラプログラムの実行ソフトウェア12を直接実行することができる。
【0022】
このアセンブラプログラムは、基本的に機械語と1対1で対応し、プログラマーがCPU動作を把握しながらプログラムを記述できるため、人手で実行ソフトウェア12が作成でき、コンパイル作業を省略することができる。これにより従来のオブジェクトコード(例えば実行ソフトウェア1など)生成のために必要だったすべてのファイルでのコンパイルエラーやエラーリンクを取り除く作業が不要となる。
【0023】
その結果、シミュレーション動作させたい内容のみをアセンブラプログラムで実行ソフトウェア12を作成することができ、実行ソフトウェア12の作成労力を軽減することができる。また、実行ソフトウェア12はアセンブラプログラムなので、従来のオブジェクトコードに比べて可読性が高く、CPUモデル16のソフトウェア処理の把握が容易となる。
【0024】
さらにCPUモデル16の命令解析には、従来の命令デコーダ部(命令デコード回路)10によるビットパターン解析ではなく、文字列解析機能部15によるアセンブラ命令語の文字列解析で実現される。このときアセンブラ命令語の文字列解析は、ビットパターン解析に比べて小規模に実現できるため、従来方式よりも前記シミュレーション装置の負荷が減少し、この点でシミュレーション速度の向上に貢献することができる。
【0025】
≪処理の比較≫
以下、従来のオブジェクトコードの命令デコードと、アセンブラプログラムの文字列解析とを比較説明する。まず、
図2に基づきアセンブラプログラムの文字列解析を説明すれば、実行ソフトウェア12のアセンブラ命令語部14には64文字程度のアセンブラ命令語の文字列データが記述され、CPUモデル16の文字列解析機能部15が該文字列データのテキストを文字列処理する。
【0026】
図2中の文字列データ「STS.L PR,@−R15」を一例に説明すれば、該文字列データはオペコード「STS.L」と、第1オペランド「PR,」と、第2オペランド「@−R15」とにより構成されている。そして、文字列解析機能部15の文字列処理では、オペコードと二つのオペランドの文字列を条件とする制御文(switch〜case文)とし、各分岐内に実行処理を記述する。この記述内容を命令実行部11が実行する。
【0027】
これに対してオブジェクトコードの命令デコードは、
図3に示すように、前記文字列データ「STS.L PR,@−R15」に対応する16本のバイナリデータ(2進化されたデータ)の入力信号から命令実行部11のオペコードとオペランドの制御信号を生成しなければならない。したがって、命令デコーダ部10は、全オペコードおよび全オペランド分の制御信号(100本以上)を生成しなければならず、シミュレータの負担が大きくなる。
【0028】
そうすると、CPUモデル16によるアセンブラプログラムの文字列解析によれば、64文字程度のアセンブラ命令語の文字列データを文字列処理すればよいので、前述のようにオブジェクトコードの命令デコードに比べて装置の負荷が小さく、シミュレーション速度の向上が十分に期待できる。
【0029】
≪変形例等≫
本発明は、上記実施形態に限定されるものではなく、仮想ハードウェア13の構成などは各請求項に記載された範囲内で変更して実施することができる。例えば仮想ハードウェア13は、デュアルCPUをモデル化したCPUモデルであってもよく、各CPUモデルからアクセス可能な2ポートメモリとしてもよい。
【0030】
また、従来同様にコンパイラが出力するオブジェクトコード(実行ソフトウェア1)を利用することも可能である。この場合には命令ビットパターン部9のビットパターンをアセンブラ命令語の文字列に変換してアセンブラプログラムを生成し、CPUモデル16の文字列解析機能部15で解析処理をすればよい。このアセンブラ命令語の文字列への変換には非特許文献1の命令セット変換機能を使用することができる。
【0031】
この場合には命令セット変換機能を実現する手段をCPUモデル16の外部に設けて、バイナリデータを命令セットの変換ルールを使ってテキスト形式に変換すればよい。これにより前記シミュレーション装置は、アセンブリプログラムの実行ソフトウェア12のみならず、コンパイラが出力する実行ソフトウェア1を利用したシミュレーションも可能となる。
【0032】
さらに、本発明は、前記シミュレーション装置としてコンピュータを機能させるシミュレーション用のプログラムとして構成することもできる。このプログラムによれば、アセンブラプログラムの文字列解析が可能なCPUモデル16が実現される。
【0033】
このプログラムは、Webサイトや電子メールなどネットワークを通じて提供することができ、またCD−ROM,DVD−ROMなどの記録媒体に記録して提供することができる。この記録媒体は、記録媒体駆動装置(光学ドライブ装置など)を利用して読み出され、そのプログラムコード自体が前記各実施形態の処理を実現するので、該記録媒体も本発明を構成する。
【符号の説明】
【0034】
3…ASIC(被試験論理回路)
4…ROMモデル
5…RAMモデル
7…バスモデル
8…アドレス情報部
11…命令実行部
12…実行ソフトウェア(アセンブラプログラム)
13…仮想ハードウェア
14…アセンブラ命令語部
15…文字列解析機能部
16…CPUモデル