特許第5928128号(P5928128)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社明電舎の特許一覧

<>
  • 特許5928128-デジタル回路用シミュレーション方法 図000002
  • 特許5928128-デジタル回路用シミュレーション方法 図000003
  • 特許5928128-デジタル回路用シミュレーション方法 図000004
  • 特許5928128-デジタル回路用シミュレーション方法 図000005
  • 特許5928128-デジタル回路用シミュレーション方法 図000006
  • 特許5928128-デジタル回路用シミュレーション方法 図000007
  • 特許5928128-デジタル回路用シミュレーション方法 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5928128
(24)【登録日】2016年5月13日
(45)【発行日】2016年6月1日
(54)【発明の名称】デジタル回路用シミュレーション方法
(51)【国際特許分類】
   G06F 17/50 20060101AFI20160519BHJP
   G06F 11/22 20060101ALI20160519BHJP
   G06F 9/455 20060101ALI20160519BHJP
【FI】
   G06F17/50 664A
   G06F11/22 310A
   G06F9/44 310D
【請求項の数】2
【全頁数】7
(21)【出願番号】特願2012-99590(P2012-99590)
(22)【出願日】2012年4月25日
(65)【公開番号】特開2013-228837(P2013-228837A)
(43)【公開日】2013年11月7日
【審査請求日】2015年3月17日
(73)【特許権者】
【識別番号】000006105
【氏名又は名称】株式会社明電舎
(74)【代理人】
【識別番号】100086232
【弁理士】
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100104938
【弁理士】
【氏名又は名称】鵜澤 英久
(74)【代理人】
【識別番号】100096459
【弁理士】
【氏名又は名称】橋本 剛
(72)【発明者】
【氏名】森 文彦
【審査官】 早川 学
(56)【参考文献】
【文献】 特開2009−301231(JP,A)
【文献】 特開2002−082812(JP,A)
【文献】 特開2003−330901(JP,A)
【文献】 特開平11−175352(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/50
G06F 9/40−9/54
G06F 11/00−11/36
(57)【特許請求の範囲】
【請求項1】
CPUモデルとデジタル回路用の被試験論理回路を有する仮想ハードウェアを、CPU命令から構成されたプログラムによりCPUモデルを介して被試験論理回路の試験をコンピュータで実行する方法において、
実機CPUより広いビット幅のイミディエイトデータを扱う仮想命令群を処理できる機能を前記仮想ハードウェアに備え、
前記プログラムに、仮想ハードウェアに対する実行命令を拡張命令として加えて前記CPUモデルに入力し、
前記仮想ハードウェアは、2ポートメモリと、それぞれに被試験論理回路を有して2ポートメモリに接続された2組のCPUを備え、
前記プログラムによる拡張命令は、実行待ち時間を生成するWAIT拡張命令であり、WAIT拡張命令時に前記2ポートメモリにおける2組のCPUの競合タイミングを調整することを特徴としたデジタル回路用シミュレーション方法。
【請求項2】
前記プログラムによる拡張命令に画面表示を行う拡張命令を持たせ、デジタル回路用シミュレータのコンソールウインドに画面表示することを特徴とした請求項1記載のデジタル回路用シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル回路用シミュレーション方法に係わり、特にシミュレーション用CPUの命令拡張に関するものである。
【背景技術】
【0002】
デジタル回路の開発に当たっては、試作品を作る前に、予測できる問題点を検証し、解決することを目的としてハードウェア/ソフトウェアの協調検証が行われる。協調検証方法としては、非特許文献のような方法が公知となっている。
【0003】
図6は協調検証を行うためのシミュレーション装置の概略を示したもので、1〜5の機能を有する仮想ハードウェア(仮想HW)と実行オブジェクト6からなっている。1はユーザが作成するカスタムLSIなどの被試験論理回路(ASIC)、ROMモデル2とRAMモデル3はソフトウェア動作用のメモリモデル、4はソフトウェア実行部分である実機と等価なCPUモデルで、図7で示すような機能を有している。このCPUモデル4は、図5で示すシミュレータ上で動作するようハードウェア言語で構築される。そして、これら1〜4はバスモデル5によって接続されている。
【0004】
実行オブジェクト6は、実機のプリント板で動作するオブジェクトである。
実行オブジェクト6から仮想ハードウェアに対して、コンピュータ(以下CPUという)命令によって生成された指令を出力して初期化し、命令セットが記述されている組込みソフトウェアを読み込んで動作を実行する。実機と等価なCPUモデル4は、実行オブジェクトを読み込むことで実機の時間軸を考慮したソフトウェア動作をシミュレーションできる。
【先行技術文献】
【非特許文献】
【0005】
公技番号2011−502130
【発明の概要】
【発明が解決しようとする課題】
【0006】
図6で示したような装置を用いてシミュレーションを行う場合、実機のCPUと等価なCPUモデル4は、実機のソフトウェアを正確にシミュレーションすることができる。このため、等価なCPUモデル4を使用した仮想ハードウェア環境を用いた場合、ハードウェア全体の試験を実機ソフトウェアによってシミュレーションすることが可能となっている。
【0007】
しかし、実機のCPUと同一の命令セットからなる実機ソフトウェアでは、被試験論理回路の試験には必ずしも効果的でない。例えばイミディエイトデータを扱う命令は命令語のビット長に制限され、制限を越えるビット幅のイミディエイトデータの場合、複数行の命令が必要になり可読性が悪い。また、被試験論理回路の試験にはCPUからROMモデル,RAMモデルに対するアクセス開始時間の調整が必要になる場合があるが、実機のCPUの命令セットだけでは実現が困難である。また、試験において画面表示が必要な場合があるが、画面表示は表示用の表示コントローラが必要になり、さらに表示コントローラ自体を制御するソフトウェアも必要になる。
【0008】
本発明が目的とするとこは、本来の試験を行うために効率的な試験用の実行オブジェクトを提供することにある。
【課題を解決するための手段】
【0009】
CPUモデルとデジタル回路用の被試験論理回路を有する仮想ハードウェアを、CPU命令から構成されたプログラムによりCPUモデルを介して被試験論理回路の試験をコンピュータで実行する方法において、
実機CPUより広いビット幅のイミディエイトデータを扱う仮想命令群を処理できる機能を前記仮想ハードウェアに備え、
前記プログラムに、仮想ハードウェアに対する実行命令を拡張命令として加えて前記CPUモデルに入力し、
前記仮想ハードウェアは、2ポートメモリと、それぞれに被試験論理回路を有して2ポートメモリに接続された2組のCPUを備え、
前記プログラムによる拡張命令は、実行待ち時間を生成するWAIT拡張命令であり、WAIT拡張命令時に前記2ポートメモリに対する競合タイミングを調整することを特徴としたものである。
【0012】
更に、本発明は、プログラムによる拡張命令に画面表示を行う拡張命令を持たせ、デジタル回路用シミュレータのコンソールウインドに画面表示することを特徴としたものである。
【発明の効果】
【0013】
以上のとおり、本発明によれば、仮想ハードウェアに対する実行命令を拡張命令とし、前記実行オブジェクトによる仮想ハードウェアに対する実行命令に拡張命令を追加したことにより、従来のようなCPUの初期設定内容を含んだ実行オブジェクトを必要とせずに、少ない工数でハードウェアに対するデバッグを可能とするものである。また、命令語のビット長に制限を受けないイミディエイトデータ拡張命令としたことで、可読性のよいプログラムミングが可能となるものである。
また、拡張命令は実行待ち時間を生成するものとしたことで、2ポートメモリの競合動作の試験では実機での試験よりも高いカバー率の試験が可能となるものである。
さらに、コンソールウインドで画面表示しながら試験を行う場合においても、画面表示を行うための拡張命令によって、従来のような表示コントローラを制御するソフトウェアを必要とすることなく、画面表示が可能となるものである
【図面の簡単な説明】
【0014】
図1】本発明の実施形態を示す構成図。
図2】本発明の実施形態を示す構成図。
図3】CPU命令→拡張命令変換図。
図4】実行オブジェクトによる拡張指令の出力タイミング図。
図5】デジタル回路シミュレータ図。
図6】従来の仮想ハードウェアの構成図。
図7】従来の実機等価なCPUモデル構成図。
【発明を実施するための形態】
【0015】
図1は、本発明の実施例を示す仮想ハードウェアの構成図を示したものである。本発明における実行オブジェクト10は、図6で示す実行オブジェクト6の有する機能の他に、拡張命令を供給する機能を備える。また、CPUモデル20は、従来のように実行オブジェクトによるCPU命令で動作するものではなく、実行待ち時間を生成する拡張命令に基づいて動作するCPUモデルに構成される。
【0016】
仮想ハードウェア上で使用するCPUモデルは、実機のCPUとソフトウェアの互換性は必要不可欠であり、本発明のCPUモデル20も実機のCPUとソフトウェアの互換性を有している。したがって、CPUモデル20は実機CPUが実行できる命令群に加え、実機CPUにはない拡張命令群を処理できる機能が搭載される。また、CPUモデル20は実機のCPUとは異なり、CPUの初期設定内容を備えているため、CPUの初期設定内容を含んだ実行オブジェクトを必要としない。よって、部分的なハードウェアをデバッグするために作成したソフトウェアのみを実行可能である。以下図に基づいて具体的に説明する。
【実施例1】
【0017】
図1の実行オブジェクト10は実機CPUにはない拡張命令群を含んだ実行オブジェクトを実行する。CPUモデル20が実行するオブジェクトも実機のROMに格納されたものと異なる。本発明の仮想CPU20はアセンブラ命令語の文字列を処理することで、命令語のビット数の制限はない。このため、イミディエイトアドレス方式によるイミディエイトデータを扱う命令としたことで、制限を受けずに命令が拡張できて可読性のよいプログラミングに貢献できる。
【0018】
図2は仮想ハードウェアの構成図で、2ポートメモリ30と20A,20Bの2個のCPU(CPU−A,CPU−B)よりなるCPUモデル20から構成される。図2で示す仮想ハードウェアのCPU20A(CPU−A),CPU20B(CPU−B)には図示省略されているが、それぞれには図1で示す被試験論理回路(ASIC)、ROMモデル2とRAMモデル3を備えている。2ポートメモリ30は、CPU−AとCPU−Bの両方よりアクセスできる機能と協調検証を実行するためのシミュレーション機能がプログラム(実行プログラム10A,10B)を有している。
【0019】
図3は実行オブジェクト10Aと10Bに、例として32ビットイミディエイトデータの0x12345678をレジスタにセットする場合を示したものである。図3(a)は、本来の実機に対する実行オブジェクトが有するCPU命令の1例であるが、本発明での実行オブジェクト10は、さらに(a)図のCPU命令を、図3(b)で示すような拡張命令に1行で実現できる。
【0020】
実行オブジェクト10からは、CPU−A,CPU−Bに対し図4で示すような競合タイミングを発生させる命令が格納され、リードタイミング時におけるCPU−AとCPU−Bは、それぞれ図2で示すように同一のプログラムに基づく動作を実行する。また、実行待ち時間を生成するWAIT拡張命令時では、2ポートメモリ30の競合タイミングを調整しながらハードウェアデバッグを行う。
すなわち、実行待ち時間を生成するWAIT拡張命令は、CPU−AとCPU−Bに対しその待ち時間WAITに差をもたせてタイミング調整しながら試験をする。これによって、競合タイミングを網羅的に作成できるため、実機での試験より高いカバー率での試験が行える。
【実施例2】
【0021】
図5はデジタル回路シミュレータ時の実施例である。この実施例は、画面表示を行う拡張命令で、デバッグ中の進行状況の確認に使用する。実機で画面表示を行うには、従来では実機ハードウェアに含まれる表示コントローラを制御するソフトウェアが必要になるが、図5のプログラム例で示すようなPRINT命令を使うことで、表示コントローラを制御するソフトウェアを用いることなく画面表示ができ、その画面表示は、デジタル回路シミュレータのコンソールウインドに表示できる。画面表示を行うPRINT命令はHDL記述の表示系命令(例:$display 、report)を使って実現できる。
なお、仮想ハードウェアは、図1のものが使用される。
【0022】
以上本発明によれば、実行オブジェクトにおいてCPU命令に拡張命令を追加する。2個のCPUと2ポートメモリで構成された仮想ハードウェアに対して待ち時間WAITに差をもたせ、タイミング調整しながらシミュレーションできる。よって、従来のようにCPUの初期設定内容を含んだ実行オブジェクトを必要とせずに、少ない工数でハードウェアに対するデバッグを可能とするものである。
【0023】
また、実行オブジェクトからは、命令語のビット長に制限を受けないイミディエイトデータ拡張命令としたことで、可読性のよいプログラムミングが可能となるものである。
また、拡張命令は実行待ち時間を生成するものとしたことで、実機での試験よりも高いカバー率の試験が可能となるものである。
さらに、コンソールウインドで画面表示しながら試験を行う場合においても、画面表示を行うための拡張命令によって、従来のような表示コントローラを制御するソフトウェアを必要とすることなく、画面表示が可能となるものである。
【符号の説明】
【0024】
1… 被試験論理回路(ASIC)
2… ROMモデル
3… RAMモデル
4… 実機と等価なCPUモデル
5… バスモデル
6… 実行オブジェクト
10(10A,10B)… 実行オブジェクト
20(20A,20B)… CPUモデル
30… 2ポートメモリ
図1
図2
図3
図4
図5
図6
図7