(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6763162
(24)【登録日】2020年9月14日
(45)【発行日】2020年9月30日
(54)【発明の名称】デジタル回路用シミュレーション装置及びそのプログラム
(51)【国際特許分類】
G06F 30/33 20200101AFI20200917BHJP
【FI】
G06F17/50 664A
【請求項の数】2
【全頁数】7
(21)【出願番号】特願2016-53695(P2016-53695)
(22)【出願日】2016年3月17日
(65)【公開番号】特開2017-167900(P2017-167900A)
(43)【公開日】2017年9月21日
【審査請求日】2019年2月19日
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【弁理士】
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100104938
【弁理士】
【氏名又は名称】鵜澤 英久
(72)【発明者】
【氏名】森 文彦
【審査官】
松浦 功
(56)【参考文献】
【文献】
特開2014−078087(JP,A)
【文献】
特開2003−216678(JP,A)
【文献】
特開2014−194746(JP,A)
【文献】
特開2011−081623(JP,A)
【文献】
特開2000−011022(JP,A)
【文献】
特開2006−318209(JP,A)
【文献】
特開2013−058177(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 30/00 −30/398
G06F 11/34 −11/36
(57)【特許請求の範囲】
【請求項1】
実機と等価なCPUモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、
前記CPUモデルは、
前記実行ソフトウェアの命令を実行する命令実行部と、
この命令実行部に供される実行ソフトウェアを解析して当該実行ソフトウェアの命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する文字列解析部と
を備え、
前記命令実行部は、
前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部と、
前記取り込んだ命令を実行してその結果を記憶領域に格納する書き込み処理部と、
を備え、
前記CPUモデルの命令パイプラインステージは、
前記取り込み処理部が、前記文字列解析部による変換処理によって得られた前記アッセンブラ命令語の文字列データを取り込むステージと、
前記書き込み処理部が、前記取り込まれた文字列データのアッセンブラ命令語を、順次、デコード及び実行し、その結果を前記記憶領域に格納するステージと
からなることを特徴とするデジタル回路用シミュレーション装置。
【請求項2】
請求項1に記載のCPUモデルとしてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデジタル回路のハードウェアとソフトウェアの協調検証を行う技術に関する。
【背景技術】
【0002】
デジタル回路の開発においては、開発期間及びコスト低減の要求から試作品を作成する前に予測可能な問題点を検証し、解決するために論理シミュレーションベースのハードウェアとソフトウェアの協調検証が行われている(例えば、特許文献1,2)。
【0003】
特許文献1に開示されたシミュレーションモデルの実行パイプラインは、ソフトウェアの命令コードをプロセッサモデルに取り込む段階と、前記取り込んだ命令コードをデコードして実行する段階と、前記実行の結果を記憶領域に格納する段階とからなる。
【0004】
特許文献2に開示されたハードウェアとソフトウェアの強調検証方法は、ソフトウェアの命令コードを取り込む段階と、前記命令コードの系列依存性を分析してその結果に基づき選択されたプロセッサモデルに当該命令コードを実行させる段階と、前記実行の結果を記憶領域に格納する段階とからなる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−318209号公報
【特許文献2】特開2000−11022号公報
【特許文献3】特開2014−78087号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来のシミュレーション方法に供されているプロセッサモデルは「命令の取り込み」「命令の実行」「実行結果の書き込み」の3つのパイプラインステージによって命令を実行する。このプロセッサモデルの命令は、実際のCPU(中央演算装置)の命令と比べて簡素なものであるが、協調シミュレーションの速度が遅いとう欠点がある。
【0007】
本発明は、上記の事情に鑑み、デジタル回路のハードウェアとソフトウェアの協調シミュレーションに供されるコンピュータの資源使用量を削減すると共に協調シミュレーションの速度を改善することを課題とする。
【課題を解決するための手段】
【0008】
そこで、本発明のデジタル回路用シミュレーション装置の態様としては、実機と等価なCPUモデルとデジタル回路用の被試験論理回路とを備えた仮想ハードウェアを実行ソフトウェアによりシミュレーションするデジタル回路用シミュレーション装置であって、前記CPUモデルは、前記実行ソフトウェアの命令を実行する命令実行部を備え、前記命令実行部は、前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部と、前記取り込んだ命令を実行してその結果を記憶領域に格納する書き込み処理部とを備える。
【0009】
前記CPUモデルの一態様は、前記命令実行部に供される実行ソフトウェアを解析して当該実行ソフトウェアの命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する文字列解析部をさらに備える。
【0010】
また、本発明の他の態様としては、前記CPUモデルとしてコンピュータを機能させるプログラムがある。
【発明の効果】
【0011】
以上の本発明によれば、デジタル回路のハードウェアとソフトウェアの協調シミュレーションに供されるコンピュータの資源使用量が削減すると共に協調シミュレーションの速度が改善する。
【図面の簡単な説明】
【0012】
【
図1】本発明の実施形態における協調シミュレーションに供される仮想ハードウェアと実行ソフトウェアの概略構成図。
【
図2】同実施形態におけるCPUモデルによるパイプライン動作例の説明図。
【
図3】同CPUモデルによる他のパイプライン動作例の説明図。
【
図4】従来のCPUモデルによるパイプライン動作例の説明図。
【発明を実施するための形態】
【0013】
以下に図面を参照しながら本発明の実施形態について説明する。
【0014】
[本実施形態のシミュレーションの概要]
図1に示した本発明の実施形態のシミュレーション装置1は、実機と等価なCPUモデル7とデジタル回路用の被試験論理回路とを備えた仮想ハードウェア3を実行ソフトウェア2によりシミュレーションを実行するデジタル回路用シミュレーション装置である。
【0015】
CPUモデル7は、文字列解析部71と命令実行部72の機能を実行することにより、実行ソフトウェア2と仮想ハードウェア3のデバッグを行える。一般にこのシミュレーションをハードウェアとソフトウェアの協調シミュレーションと称される。
【0016】
特に、CPUモデル11は、パイプラインステージを二段階のステージとすることにより、被試験論理回路のシミュレーションに供されるコンピュータのハードウェア資源とソフトウェア資源の削減と当該シミュレーションの速度改善を図る。
【0017】
[本実施形態のシミュレーション装置のブロック構成例]
本実施形態の協調シミュレーションに供される実行ソフトウェア2は、実行対象の命令セットが存在するアドレスが記述されたアドレス情報部21と、機械語の命令列をアセンブラ言語で表したアセンブラ命令語の文字列が記述されたアセンブラ命令語部22とを有する。このアセンブラ命令語の文字列は、処理内容を指示するオペコードと処理の対象を指示するオペランドを有している。
【0018】
シミュレーション装置1は、コンピュータにソフトウェアが読み込まれてこのソフトウェアがハードウェア資源と協働した具体的手段、すなわち、デジタル回路の被試験論理回路及び制御系の処理モデルを主体とした仮想ハードウェア3を備える。
【0019】
仮想ハードウェア3は、ユーザが作成するカスタムLSIなどの被試験論理回路として機能するASIC4と、ソフトウェア動作用のメモリモデルとして機能するROMモデル5,RAMモデル6と、ソフトウェア実行部分として機能する実機と等価なCPUモデル7とを有する。これらの機能モデルはバスモデル8を通じて接続されている。
【0020】
CPUモデル7は、文字列解析部71と命令実行部72とを備える。
【0021】
文字列解析部71は、実行ソフトウェア2を解析して実行ソフトウェア2の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する。
【0022】
命令実行部72は、前記文字列のアドレス情報に基づく命令を実行してその結果をシミュレーション装置1の記憶領域(揮発性若しくは不揮発性の記憶部)に格納する。この命令実行部72は、前記実行ソフトウェアの文字列のアドレス情報に基づく命令を取り込む取り込み処理部73と、前記取り込んだ命令を実行してその結果を前記記憶領域に格納する書き込み処理部74と備える。
【0023】
[本実施形態のシミュレーション動作例]
図1〜4を参照して本実施形態のシミュレーション動作例について説明する。
【0024】
従来のCPUモデルは3つのパイプラインステージによって命令コードを実行するのに対して本実施形態のCPUモデル7は2つのパイプラインステージによって命令コードを実行する。
【0025】
すなわち、従来のCPUモデルは、例えば、
図4に示したように「命令の取り込みステージS21」「命令の実行ステージS22」「実行結果の書き込みステージS23」の3段階のパイプラインステージで命令を実行処理する。
【0026】
これに対して、本実施形態のCPUモデル7は、
図2に例示したように「命令取り込みのステージS1」「実行及び書き込みのステージS2」の2段階のパイプラインステージで命令を実行処理する。
【0027】
特に、CPUモデル7は、予め、文字列解析部71が実行ソフトウェア2を解析して実行ソフトウェア2の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換する。適用される変換方式としては、例えば特許文献3に開示されたアセンブラ命令語の文字列への変換方法が挙げられる。この変換処理によって実行ソフトウェア2の命令コードの実行処理の負担が軽減される。そして、これにより、命令実行部72は一つのパイプラインステージで実行ソフトウェア2の命令実行とその結果の格納が行える。
【0028】
以下、
図2を参照しながら本実施形態のパイプラインステージについて説明する。
【0029】
ステージS1:取り込み処理部73は、文字列解析部71による変換処理によって得られたアドレス情報の文字列をデータレジスタに取り込む。例えば、アドレス00010000番地のアッセンブラ命令語が取り込まれる。この取り込まれた命令はステージS2に供される。その後、アドレス00010002番地以降のアッセンブラ命令語が順次取り込まれる。
【0030】
ステージS2:書き込み処理部74は、アドレス00010000番地のアッセンブラ命令語がデコード、実行されその結果がシミュレーション装置1の記憶領域に格納される。その後、ステージS1から順次供されたアドレス00010002番地以降のアッセンブラ命令語が、順次、デコード、実行されその結果が前記記憶領域に格納される。
【0031】
例えば、
図2に示したアドレス00010006番地のアッセンブラ命令語「MOVW #H’ff0f, @R1」の命令動作においては、従来のパイプライン処理と同様に、1パイプラインステージのクロック数が伸長される。
【0032】
また、パイプラインステージが2段階である本実施形態においても、RISCプロセッサの特徴である分岐命令に続く1命令を分岐前に行う遅延分岐が実行される。
図3に示した事例は、アドレス00020004番地のBRA命令が分岐命令であり、アドレス00020100番地に分岐する命令となる。実行順番は00020004番地→00020006番地→00020100番地となっており、分岐命令の00020004番地の実行後に00020006番地を実行し、00020100番地に分岐している。分岐命令後の00020006番地の命令は遅延スロットとなる。
【0033】
[本実施形態の効果]
以上のようにCPUモデル7は、実行ソフトウェア2を予め解析して実行ソフトウェア2の命令ビットパターンをアッセンブラ命令語が対応付けられたアドレス情報の文字列に変換し、この文字列に基づく命令の実行とその結果を記憶領域に格納させる。特に、2段階のパイプラインステージ(ステージS1,S2)で実行ソフトウェア2の命令が実行された結果を得ることができる。したがって、被試験論理回路の協調シミュレーションに供されるコンピュータのハードウェア資源及びソフトウェア資源が削減すると共に協調シミュレーションの速度を改善できる。
【0034】
[本発明の他の態様]
本発明は、以上の実施形態に限定されるものではなく、仮想ハードウェア3の構成などは特許請求の範囲内で変更して実施することができる。例えば、仮想ハードウェア3は、デュアルCPUをモデル化したCPUモデルであってもよく、各CPUモデルからアクセス可能な2ポートメモリとしてもよい。
【0035】
また、本発明は、シミュレーション装置1としてコンピュータを機能させるプログラムの態様とすることもできる。このプログラムはコンピュータがアクセス可能なネットワークを介して提供でき、さらに、コンピュータが読取り可能な周知の記録媒体に格納して提供できる。そして、この記録媒体はその格納されたプログラムがコンピュータによって読み取られることにより上記実施形態の処理を実行できるので本発明を構成する。
【符号の説明】
【0036】
1…シミュレーション装置(デジタル回路用シミュレーション装置)
2…実行ソフトウェア、21…アドレス情報部、22…アセンブラ命令語部
3…仮想ハードウェア
7…CPUモデル、71…文字列解析部、72…命令実行部
73…取り込み処理部、74…書き込み処理部