JP2007334812A - シミュレータ及びシミュレーション方法 - Google Patents

シミュレータ及びシミュレーション方法 Download PDF

Info

Publication number
JP2007334812A
JP2007334812A JP2006168940A JP2006168940A JP2007334812A JP 2007334812 A JP2007334812 A JP 2007334812A JP 2006168940 A JP2006168940 A JP 2006168940A JP 2006168940 A JP2006168940 A JP 2006168940A JP 2007334812 A JP2007334812 A JP 2007334812A
Authority
JP
Japan
Prior art keywords
simulation
reproduction
simulator
trace data
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006168940A
Other languages
English (en)
Inventor
Hiroyasu Oga
裕康 大賀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2006168940A priority Critical patent/JP2007334812A/ja
Publication of JP2007334812A publication Critical patent/JP2007334812A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】シミュレーション結果を実時間速度で何度でも再現することができるシミュレーション方法及びシミュレータを提供すること。
【解決手段】シミュレータ10は、検証対象のプログラムを実行するシミュレーション実行部12と、その結果を記録するトレースデータ記録部13と、シミュレーション再現部15とを有する。シミュレーション再現部15は、トレースデータ記録部13が記録したトレースデータファイル23を、プラットフォーム情報テーブル41を参照し、再現速度に応じた再現タイミング情報ファイル43に変換する変換部33と、タイマ53を有し、シミュレーション結果を再現タイミング情報に基づき、タイマ53のループ動作を使用して再現する再現部34とを有する。
【選択図】図2

Description

本発明は、例えばマイクロコントローラ(以下、マイコンという。)の動作を擬似的に作り出すシミュレータ及びシミュレーション方法に関する。
システム・シミュレータは、マイコンソフト開発用などに使用される。このシステム・シミュレータは、ソフトウェアで作られ、実際のデバイスとは異なり擬似的に動作を実現している。そのため、一般的には、ハードウェアで動作するよりも動作が遅くなり、システム・シミュレータによるタイミングなどの実時間に関する動作の確認が困難である。複雑な装置や非常に高性能なコンピュータを用いなくても、PC(パーソナルコンピュータ)等の一般的なプラットフォームで動作するシステム・シミュレータ上で、実時間通りにシミュレータが動作し、タイミングを検証できることが望まれている。
図11は、従来のシミュレータを示す図である。図11に示すように、シミュレータ110は、シミュレーション動作を行うシミュレーション実行部112と、シミュレーション時の信号の入出力などの実行結果に関するデータ(トレースデータ)を収集するトレースデータ記録部113と、シミュレーションの動作を擬似LED(Light Emitting Diode)表示装置やタイミングチャートなどに表示させることができシミュレーション情報表示部114と、シミュレータ内部の制御及びオペレーティング・システム117とのやり取りを制御する制御部116とで構成されている。
シミュレーションを行うには、オペレーティング・システム117からシミュレータ110を起動する。先ず、デバックを含む動作を検証するプログラムを補助記録装置121から読み出して、シミュレーション対象プログラム111としてダウンロードする。シミュレーションの実行が開始すると、シミュレーション実行部112がシミュレーション対象プログラム111から命令コードを読み出して、デコードし、命令の動作を擬似的に行う。シミュレーション対象プログラム111の中でシミュレータ110(マイコン)内の端子に対して信号の入出力処理があると、端子の入出力情報をシミュレーション情報表示部114に伝え、シミュレータ110に接続された7セグメントLEDなどの擬似LED表示装置や擬似タイマ(以下、擬似表示装置という。)に対し、端子やデータの変化を出力し表示させる。
すなわち、シミュレータ110を使って、プログラムをデバッグ又は検証する際に、シミュレーション情報表示部114により、シミュレータ110に接続された擬似表示装置に、シミュレータ110での実行結果を表示させることが可能である。
図12は、シミュレータであるマイコンの端子に擬似表示装置としての7セグメントLEDが接続されている場合の例を示す図である。CPU(Central Processing Unit)131がマイコン130内のROM(Read Only Memory)132にダウンロードされた検証対象プログラムを読み出し、デコードして、命令を実行する。命令の中で端子に対する出力処理があると、CPU131がポート134を通じて端子に対して信号を送る。マイコン130の端子に接続された7セグメントLED135は、その信号を受信し、信号のレベルに応じてLEDを点滅させ数字などを表示する。ユーザは、この表示を見てシミュレーションの実行結果を確認・検証することができる。
しかしながら、シミュレータを使用してシステム全体のシミュレーションを行った場合、論理的な動作の検証できるが、期待通りのタイミングで表示が行われているかの確認は、かなり困難であり、信号の出力状態とクロックを出力したタイミングチャートを使っても、確認に多くの時間を要してしまうという問題点がある。
上記問題点が発生するメカニズムを説明する。ハードウェア、すなわちターゲットシステムにおいてこの一連の処理を行う場合、CPUの演算処理が高速なので期待通りの数字が期待とおりの間隔で表示されているか否かは簡単に判断できる。しかしながらシミュレータでは、シミュレーション処理性能によって、実際のハードウェアで動作するものとは違うため、期待とおりの数字が表示しているかどうかの判断はできるが、期待とおりの間隔で表示しているかどうかは判断できない。たとえば、ハードウェアでは、1秒間隔で数字を表示する場合、シミュレータでは、数十秒間隔で表示される。マイコンからの出力信号を、タイミングチャートなどで表示させることは可能だが、実際に7セグメントLEDの表示間隔が正しいかどうかを判断するには、タイミングチャートに表示されている信号の波形から、その間隔の時間の計算を行う必要があり、正しく動作しているかどうかの判断には、時間を要する。これらは以下の理由による。
(1)マイコン用シミュレータの処理が遅い
実際のマイコンは、20MHzで動作していても、シミュレータでの動作は、その1/100の200KHz程度でしかシミュレーションできない。なぜなら、マイコンの1命令を、PCのCPUを使って複数の命令を実行させて、同じ動作を仮想的に実現しているからである。
(2)シミュレータを動作させるPCの性能によってシミュレーション処理時間が異なる
従来のシミュレータは、同じプログラムを動作させた場合、動作するPCの性能が高い、すなわち高性能PCである場合には、シミュレーション対象のプログラムを高速処理ができるため、シミュレータから信号を出力して、7セグメントLEDに表示するまでに要する時間は短くなるが、性能が低いPCでは、処理時間が長くかかるために、7セグメントLEDに表示するまでに要する時間は長くなる。このように、PC性能によって、7セグメントLED表示のタイミング動作が異なる。
(3)シミュレーション対象マイコンの動作周波数によって、シミュレーション表示動作を変更することが困難
従来のシミュレータは、シミュレーション対象マイコンの動作周波数を容易に変更が可能である。すなわち、10MHz動作又は20MHz動作など実際のシステムに合わせてシミュレーション実行前に設定することができる。よって、指定された周波数によるクロックで内部の動作をシミュレーションするため、数値的には、10MHz動作と20MHz動作のクロック数は、2倍異なるが、命令のクロック数をカウントして、タイミングを作るソフトウェアタイマ等を使用する以外には、7セグメントLEDなどのシミュレーション表示動作は、動作周波数が異なっていてもほとんど同じタイミングである。これは、仮想的なクロックでプログラムをシミュレーションしているためであり、数値のみが異なるだけで、処理動作は同じプログラムであるため、シミュレータを動作させるPCの性能によってのみ変わり、表示動作としては、動作周波数に影響されないためである。
(4)表示シミュレーション動作は、シミュレータのプログラム規模に依存する
実際のハードウェアでは、表示信号が出てから表示されるまでの遅延時間はほとんど無視できるが、シミュレーションによる仮想表示では、処理するプログラム(シミュレータの一部)が、大きなプログラムステップで実現されているか、小さいプログラムステップで実現されているかによって、被対象プログラムが同じでも表示されるまでの時間が異なるため、表示タイミングが異なる。
これに対し、従来のシミュレータ技術としては、以下に示すものが公知である(例えば特許文献1、2参照)。特許文献1には、プログラム性能そのものを試験できるようにすることを目的としたプログラム試験システムが開示されている。
このプログラム試験システムは、プログラムを目的の情報処理装置上の動作と同様に動作するかどうかを試験実行させる実行手段と、プログラムが実行する命令の数又は所要時間を計測する計測手段と、計測結果を遅延時間に変換する変換手段と、試験結果を表示する表示手段と、時間信号を表示手段に入力するタイマとを有する。そして、変換器で変換された遅延時間に応じた実行手段の実効結果を遅延して表示手段に表示させることで、試験者は、性能が悪い程、実行結果が表示手段に遅れて表示されるので、プログラムの性能を客観的に評価することができる。
また、特許文献2には、ターゲットプログラムの特性を正確に捉えたターゲット実行時間の見積もりを得ることを目的としてシミュレーション方法及び装置が開示されている。図13は、特許文献2に記載のシミュレーション装置を示す図である。この従来のシミュレーション装置210は、ホストを構成するホストCPU211と、ホストメモリ212とを有し、ホストメモリ212には、シミュレーションプログラム213が格納される。シミュレーションプログラム213の実行により、ホストメモリ212には、ターゲット実行ルーチン214、状態変更(デバッガ)ルーチン215、レジスタ情報216、パイプライン情報217、キャッシュメモリ情報218、及びターゲットメモリ情報219の各領域が確保される。
このように構成されたシミュレーション装置210は、ターゲット命令をホスト命令に変換してシミュレーションを行ってホスト実行時間を求める。そして、ターゲットのハードウェアで処理するのと同等の処理を行うソフトウェアでターゲット命令をシミュレーションして、ターゲット実行時間を求める。次に、再実行時間からターゲット/ホスト性能比を求め、被測定プログラムをホストで実行したホストで実行したプログラム実行時間とターゲット/ホスト性能比に基づき、被測定プログラムをターゲットで実行した場合のターゲット実行時間見積もりを求める。
特開平3−142637号公報 特開2000−122898号公報
しかしながら、上述の特許文献1、2においては、シミュレーション対象プログラム(被測定プログラム)のターゲット測定時間を見積もることはできるが、上記(1)乃至(4)に説明したようにシミュレーションを実時間どおりに再現実行することはできない。シミュレーション結果を評価する場合にその評価結果の注目点(時間)を変更する場合や、ある時間におけるシミュレーション結果を見たい場合などにおいては、実時間どおり、又は任意の再現スピードでシミュレーション結果を再現することができれば便利である。
本発明に係るシミュレーション方法は、ターゲットシステムで動作させる検証対象プログラムをシミュレータでシミュレーションした結果から得られるトレースデータを任意の再現速度に応じた再現タイミング情報に変換し、前記再現タイミング情報に基づき、前記シミュレーション結果を任意の再現速度で再現するものである。
本発明においては、シミュレーションして得られるトレースデータを変換した再現タイミング情報を使用することで、シミュレーション結果を再現する際に、シミュレーションすることなく任意の再現速度で再現することができる。
本発明によれば、シミュレーション結果を任意の再現速度で何度でも再現することができるシミュレーション方法及びシミュレータを提供することができる。
実施の形態1.
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図1は、本実施の形態にかかるシミュレータを示すブロック図である。図11の従来のシミュレータの構成に対して、シミュレーション再現部15を追加する構成となっており、その他の構成は、図10と同様である。すなわち、シミュレータ10は、シミュレーション対象プログラム11と、シミュレーション実行部12と、トレースデータ記録部13と、シミュレーション情報表示部14と、シミュレーション再現部15と、制御部16とを有する。
シミュレーション実行部12は、シミュレーション動作を行う。また、トレースデータ記録部13は、シミュレーション時の記録となるトレースデータを収集する。そして、シミュレーション情報表示部14は、シミュレーションの動作をセグメントLEDなどの擬似LED表示装置、擬似タイマ、又はタイミングチャートなどの擬似表示装置に表示させる。制御部16は、シミュレータ内部の制御及びオペレーティング・システム17とのやり取りを制御する。そして、本実施の形態におけるシミュレータは、シミュレーション再現部15を有する。このシミュレーション再現部15は、検証対象プログラムをシミュレーションした結果から得られるトレースデータを任意の再現速度に応じた再現タイミング情報に変換する変換部と、再現タイミング情報に基づき、シミュレーションの結果を再現する再現部と有する。変換部により、トレースデータを再現速度に応じた再現タイミング情報に変換し、再現部により、この再現タイミング情報に基づき、シミュレーションの結果を任意のスピードで再現することが可能である。
次に、本実施の形態に係るシミュレータについて更に詳細に説明する。図2は、本実施の形態におけるシミュレータの処理の流れを示した図である。シミュレータ10は、記録モードと再現モードの2つの動作モードを有する。記録モードでは、従来のシミュレータと同様のシミュレーション動作を行うと共に、実行記録となるトレースデータを収集する。再現モードでは、収集したトレースデータに基づき、シミュレーション中の信号変化等のシミュレーション結果を再現表示する。この再現モードは、通常のシミュレーション実行で確認できない、実時間速度での擬似表示装置の表示を再現検証したい場合に使用する。
2つの動作モード、すなわち、記録モードと再現モードとを切り替えるために、図2に示すように、シミュレーション再現部15は、モード切替部31を有する。モード切替部31は、シミュレータ10が記録モードを実行するか、再現モードを実行するかの切換えを行う。
記録モードでは、シミュレーション実行部12、トレースデータ記録部13、及びシミュレーション情報表示部14が動作し、トレースデータ記録部13は、実行記録であるトレースデータを収集する。収集したトレースデータはトレースデータファイル23に記録され、トレースデータファイル23が生成される。
ここで、シミュレーション実行部12は、記録モードに設定されると読み込んだ検証対象プログラムのシミュレーションを実行する。シミュレーションを行うには、オペレーティング・システム17からシミュレータ10を起動する。そして、デバッグを含む動作を検証するプログラムを補助記録装置21から読み出して、シミュレーション対象プログラム11としてダウンロードする。シミュレーションの実行が開始すると、シミュレーション実行部12がシミュレーション対象プログラム11から命令コードを読み出して、デコードし、命令の動作を擬似的に行うことで、マイコン等のターゲットシステムからなるターゲットのハードウェアで処理するのと同等の処理を行う。
このとき、ターゲットシステムの端子に対して信号の入出力処理があると、この端子の入出力情報をシミュレーション情報表示部14に伝える。そして、シミュレーション情報表示部14は、シミュレータ10に接続された擬似LEDなどの擬似表示装置に、当該端子やデータの変化を表示する。
そして、命令の擬似動作を行いながら、トレースデータ記録部13が何の処理がいつ実行されたか等を示すトレースデータの作成を行う。トレースデータは、補助記録装置21から出力され、トレースデータファイル23として保存することができる。このような一連の処理を、プログラムの最後まで、またはシミュレーション実行を止めるまで行う。
一方、再現モードでは、一度記録モードで実行して収集したトレースデータを使用して、擬似表示装置への表示シミュレーションの再現のみを行う。すなわち、検証対象プログラムにおける擬似表示装置の表示に関係しない処理のシミュレーションは行わない。再現モードにおいては、表示に関係ないシミュレーションを実行せず、予め収集したトレースデータに基づき擬似表示装置の表示のみを再現実行するため、任意の再現速度でシミュレーション結果を再現表示することができる。
この再現モードを実行するために、シミュレーション再現部15は、再現制御部32、変換部33、及び再現部34を有する。変換部33は、プラットフォーム情報テーブル41を参照してトレースデータファイル23を再現タイミング情報ファイル43に変換するトレース情報変換部42を有する。再現部34は、再現タイミング情報ファイル43を取り込むタイミング情報読取部51と、再現実行部52と、ソフトタイマ53と有する。
先ず、モード切替部31により再現モードに設定されると、再現制御部32は、再現部により再現実行するか、変換部33により、トレースデータを再現に必要な再現タイミング情報ファイルに変換するかの制御を行う。
変換部33においては、トレース情報変換部42は、トレースデータファイル23とプラットフォーム情報テーブル41とを読み込んで、再現に必要な情報である再現タイミング情報ファイル43を作成する。ここで、プラットフォーム情報テーブル41は、シミュレータ10、すなわちPCの性能情報、及びターゲットシステムの性能情報などを有する。具体的には、例えば、シミュレータ10を搭載したPCにおけるCPU動作周波数及びメモリ容量、シミュレーション対象のターゲットシステムの動作周波数などである。更に、動作基準に設定したPCのCPU動作周波数及びメモリ容量、動作基準に設定したPCにおけるソフトタイマ1ループ当たりの実行時間、後述する速度調整用のパラメータなども記録されている。
シミュレータ10を搭載するPCは、それぞれその性能が異なるため、どのような環境でシミュレーションを行っても同じ再現速度になるよう、所定の性能を有するPCを動作基準に設定しておく。そして、実際にシミュレータ10を動作させるPCの性能と、動作基準に設定されたPCの性能とを比較することで、正確な再現時間に換算する。このプラットフォーム情報テーブル41を使用することにより、ユーザ毎に異なるシミュレーション環境でも同一の実時間表示を再現することが可能となる。
タイミング情報読取部51は、再現タイミング情報ファイル43を読み取り、再現実行部52へ入力する。再現実行部52は、再現タイミング情報ファイル43を元に再現実行を行う。ソフトタイマ53は、単純なループ実行のみを行う。
このように構成された本実施の形態に係るシミュレータは、従来のシミュレータに、記録モードと再現モードを追加したものとなっている。そして、記録モードでシミュレーションを実行する際に、端子への入出力処理があると当該イベント毎に、必要な端子等の情報や、そのタイミングを示す実行クロック数(クロック情報)が入ったトレースデータを収集する。
そして、再現モード時には、ソフトタイマ53を使用して、ターゲットシステムの端子への入出力処理を擬似表示装置に対し再現表示する。ソフトタイマ53は、検証対象プログラムには依存せずに動くタイマであり、プログラムで構成される。このソフトタイマ53により、再現タイミングの時間の調整を行う。
すなわち、再現モード実行の開始時に、収集したトレースデータのクロック情報から実時間通りに再現実行するために、トレースデータの実行クロック数をPCのCPU周波数やメモリ容量、ソフトタイマ1ループあたりの実行時間などの情報が入ったプラットフォーム情報テーブル41を参照して論理時間及びソフトタイマ53のループ回数に変換し、変換情報を再現タイミング情報ファイル43に保存する。
そして、再現モード実行時に、再現タイミング情報ファイル43の先頭から1つずつループ回数情報とデータを取り出し、ソフトタイマ53を動作させ、ループ回数に達したら、データ情報をシミュレーション情報表示部14に通知する。シミュレーション情報表示部14の処理時間をソフトタイマ53のループカウンタに加算して補正することで、実時間通りに記録したデータを再現表示することができる。
次に、本実施の形態にかかるシミュレータの動作について、図3、図4のフローチャートを参照して詳細に説明する。シミュレーション処理を再現するには、一度記録モードでシミュレーション実行を行い、再現時に必要な端子の情報や実行クロック数が入ったトレースデータを収集する必要がある。この記録モードは、従来のシミュレータの動きと同等で、特別な処理ではない。
先ず記録モードで実行するには、処理開始時点でモード切替部31によりシミュレータ10を記録モードに設定しておく。よってステップS1にて記録モードを選択し、シミュレーション対象のプログラムのシミュレーションを行う(ステップS2)。このとき、プログラムを実行時に何が実行されたかを示すトレースデータを保存する(ステップS3)。このステップS2、S3の処理を、プログラムの終了又はシミュレーション実行を停止するまで行う(ステップS4)。正しくシミュレーションが行われ、終了した場合には、モード切替部31によりシミュレータ10を再現モードに設定する(ステップS5)。
再現モードに設定すると、ステップS6に進む。ステップS6では、記録モードで保存したトレースデータファイル23が存在するかを確認する。トレースデータファイルがない場合は、ステップS2からの処理に戻り、記録モードを実行させ、トレースデータの収集処理を行う。なお、トレースデータを出力せずに、シミュレーション実行が可能であるため、何らかの原因でトレースデータが出力されていない場合などは、ステップS2からの処理を繰り返す。
トレースデータファイル23が整ったら、次に、トレースデータを再現タイミング情報に変換する処理に移る。再現タイミング情報ファイル43内に保存するデータには、例えば、図5に示す形式のテーブルを用いることができる。本テーブルは4種類のデータが記録される。
1)記録モード時のプログラム開始時を0としてクロック数を換算して求めたイベント発生時のクロック数(累計)(rclk)
2)シミュレーション対象のマイクロコントローラの動作周波数とクロック数とから求めた変換後の論理時間(ltime)
3)ソフトウェアタイマの実時間に合わせたループ回数(loop)
4)イベント発生時のデータ情報(ltime)
先ず、動作基準に設定したPCのソフトタイマの1ループ時間から、シミュレータ10を動作させる、すなわちシミュレーションを実行するPCでの1ループの時間を、これら2つのPCの基本動作周波数などの性能情報から、ソフトタイマの1ループ時間に換算して求める。ここで求めたソフトタイマの1ループ時間は、プラットフォーム情報テーブル41に保存される。
次に、全てのトレースデータが処理済みかをチェックし、処理すべきトレースデータがあれば、処理を続行し、全て処理済であれば、図4に示す再現処理へ移る。
トレースデータの処理は、先ず、トレースデータファイルの先頭からトレースデータを1行ずつ取り出し、再現に必要な記録時のクロック数(rclk)とイベント発生時のデータ情報(data)とを、再現タイミング情報ファイル43に保存する(ステップS9)。具体例を図6に示す。
次に、トレース情報変換部42により、クロック数(rclk)を論理時間(ltime)に変換し、論理時間(ltime)をループ回数(loop)に変換する(ステップS10)。図7にこの2つの変換の流れを示す。また、図8にクロック数(rclk)を論理時間(ltime)に変換する具体例を、図9に、論理時間(ltime)をループ回数(loop)に変換する具体例を示す。
図7に示すように、論理時間(ltime)は下記式(1)で算出される。
ltime=、(rclk×10)/cycle・・・(1)
ここで、cycleは、シミュレーション対象のターゲットシステムの動作周波数[MHz]を示す。また、ループ回数(loop)は下記式(2)で算出される。
loop=ltime/aveloop・・・(2)
ここで、aveloopはソフトタイマ1ループあたりの実行時間[ナノ秒]を示す。
具体的に説明する。図8に示すように、シミュレーション対象のターゲットシステムの動作周波数(cycle)が25MHzで、クロック数(rclk)が484クロックの場合、上記変換式(1)を用いると、図8に示すように、変換後の論理時間は流れを19360ナノ秒になる。次に論理時間をループ回数に変換する。19360ナノ秒は、上記変換式(2)を用いると、図9に示すように、実時間のループ回数に変換した値は16回になる。このように、ステップS10で変換した論理時間及びループ回数を、ステップS11にて再現タイミング情報ファイル43に保存する。トレースデータファイル23内のデータがなくなるまで、ステップS9〜S11の処理を行う。以上の処理により、再現実行に必要な再現タイミング情報ファイル43が完成する。
次に、再現実行処理に移る。先ず、ソフトタイマループカウンタを初期化して0に設定する(ステップS12)。次に、再現タイミング情報ファイル43に情報が格納されていれば(ステップS13:Yes)、タイミング情報読取部51が再現タイミング情報ファイル43の先頭から1行読込み、再現に必要な情報を取り出す(ステップS14)。次に、シミュレーション再現部15の内部に設けたソフトタイマ53を実行させる(ステップS15)。ソフトタイマ53のループカウンタをカウントアップする。そして、ステップS14で取り出したループ回数情報及びソフトタイマループカウンタの値を比較する。このとき、ステップS14で取り出したループ回数が大きければ、まだシミュレーション情報表示部14へ表示処理を通知する時間に達していないので、ステップS15のソフトタイマ実行を行う。
一方、ステップS17でソフトタイマ53のループカウンタの値が、ステップS14で取り出したループ回数以上であれば、シミュレーション情報表示部14に、情報表示に必要なデータを送付し(ステップS18)、シミュレーション情報表示部14が擬似表示装置においてデータの表示などを行う(ステップS19)。
ステップS18、19の処理を行っている間に、シミュレーション情報表示部14の処理時間によるソフトタイマ53のループカウンタを加算して補正を行う(ステップS20)。このステップS20の処理は、擬似表示装置の種類に合わせて補正する場合も含む。すなわち、例えば、7セグメントLEDの表示桁数や蛍光表示管(VFD(Vacuum Fluorescent Display)、FIP(Fluorescent Indicator Panel))によって処理時間が異なるためである。
そして、ひとつのデータ表示が終ったら、ステップS13に戻り、再現タイミング情報ファイル43内のデータがなくなるまで、ステップS14〜S20を繰り返す。以上の一連の処理により、記録したデータを実時間通りに再現表示できるようになる。
従来のシミュレータの場合、1つの命令を擬似的に実行させる際、その命令をソフトウェアでは一連の同じ処理を行うため、ターゲットシステムの動作周波数の高低に関係なく、処理時間は、ほとんど変らず、かつ実際のハードウェアの動作よりも非常に遅くなるため、擬似表示装置でその結果が表示されるものが遅かった。
これに対し、本実施の形態においては、再現実行する際、検証対象プログラムの実行は行わずに、記録モードで一度実行して収集したトレースデータに基づき再現処理を実行する。すなわち、トレースデータの中で、再現表示に関係するトレースデータのみを使用して再現処理を実現するため、擬似表示装置に表示するための処理を高速に行うことが可能である。
この場合、本実施の形態においては、予め、動作基準に設定したPCでのソフトウェアタイマの1回のループあたりの実行時間を事前に求めておく。そして、先ず、トレースデータに基づき各イベント時におけるクロック数を、ターゲットシステムの動作周波数を使って論理時間に変換する。次いで、実際にシミュレータを動作させるPCと、動作基準に設定したPCの性能を比較して、実際にシミュレータを動作させるPCにおけるソフトウェアタイマ53の1回のループあたりの実行時間を換算する。例えば、実際に動作させるPCの基本動作周波数が1GHzで、動作基準に設定したPCの基本動作周波数が2GHzとした場合、処理速度は1/2となるため、実際に動作させるPCでのソフトタイマ53の1回ループあたりの実行時間は、動作基準に設定したPCでの実行時間の2倍となる。
こうして、再現実時間になるよう時間を調整したソフトタイマ53のループ回数を求める。そして、タイミング情報読取部51が再現タイミング情報ファイル43からループ回数を取り出し、その回数だけ、ソフトタイマ53を使用してトレースデータの信号の表示処理を行う。なお、このとき、擬似表示装置にトレースデータの信号を表示処理する時間も考慮して、ソフトタイマのループカウンタを補正することも可能である。以上の処理を行うことによって、擬似表示装置に、トレースデータとして記録された信号の入出力タイミングなどの各イベント処理を実時間通りに再現実行することができるようになる。
実施の形態2.
次に、本発明の実施の形態2について説明する。ハードウェアにて実時間で表示されるものが、常にプログラム開発者にとって、見やすい表示とは限らない。たとえば、1秒毎に表示する場合に、1分後は正しく表示されるか否か、1時間後は正しく表示されるか否かを確認する場合、その時間だけプログラムを動作させる必要がある。又は、プログラムを一時的に変更しなければならず、元に戻すときに、戻し忘れによるミスの原因となる可能性がある。そこで、本実施の形態においては、シミュレーション結果を実時間に拘わらず、任意の再生速度で表示するものである。
このため、図2に示すプラットフォーム情報テーブル41は、速度調整用のパラメータを備える。この場合、実際の時間経過を認識できるように、擬似的な時計をPC上に速度調整用パラメータに合わせて表示する。
上述の実施の形態1においては、トレースデータ内のクロック数の実時間を計算し、この実時間に基づきソフトタイマのループ回数を実時間に合うように計算している。この場合、実時間通りにのみ表示され、処理速度は一定となる。これに対し、本実施の形態においては、速度調整用のパラメータを用いて、処理速度を変更できるようにする。
速度調整用のパラメータの使用方法としては、再現実行の速度を速めたい場合は1より大きい値を、遅くしたい場合は1より小さい値を記述する。この速度調整用のパラメータは、再現タイミング情報ファイル43のループ回数を計算する際に使用する。図10に速度調整用のパラメータを考慮した場合の再現タイミング情報ファイルの生成方法を示す。さらに、シミュレータの表示装置、例えばCRT又は液晶ディスプレイ等において、速度調整用のパラメータが0.5の場合には、2倍の速度で実時計が表示されるため、擬似表示装置と対比が容易となる。
本実施の形態においては、プラットフォーム情報テーブル41内の速度調整用のパラメータを変更するだけで、再現モードにおける変換処理において、ループ回数が自動的に計算され、この値を元に再現実行されるため、プログラムの修正及びコンパイルなどの処理を行うことなく、再現速度を変更したシミュレーション結果の確認が可能となる。
例えば、プログラムに設定した処理時間を変更して試したい場合に、プログラムの修正及びコンパイルなどの処理を行うことなく、設定したい動作を確認することができるようになるため、開発期間の短縮化及びプログラム変更によるミスの減少を実現することができる。
実施の形態3.
上述の実施の形態1、2においては、ソフトウェアタイマを使って時間調整を行うものとして説明したが、オペレーティング・システムの強制的な割り込み処理によって、時間調整に誤差が生じる可能性がある。そこで、本実施の形態においては、シミュレータが動作するPCに、ソフトウェアタイマの代用となるハードウェアタイマを用意し、これを使って時間調整を行う。
そして、ソフトウェアタイマ実行の代わりに、ハードウェアタイマに時間を設定し、スタートさせる。設定した時間になると、割り込みによって、時間経過が再現実行部に知らされるため、ソフトタイマによる処理と同様の動作が可能である。
本実施の形態においては、ハードウェアタイマを使用するため、オペレーティング・システムの割り込み処理とは関係なく時間経過を処理プログラムに知らせることができる。
以上、説明したように、本実施の形態においては、以下の効果を奏する。先ず、再現モード時にて、プログラムのシミュレーションを行わずに、再現タイミング情報ファイル43に登録された時間が経過するまで、シミュレータ10内部のソフトタイマ又はハードタイマを使用して再現表示を行う。このため、命令の処理速度やシミュレータ10を動作させるPCの性能に左右されずにシミュレーションの情報表示を行うことができる。よって、実際の実行時間とほぼ同じタイミングで再現表示することが可能になる。このことにより、ハードウェアを使わずに、シミュレータだけで実時間通りに動作していることを確認することができる。
また、プラットフォーム情報テーブル41を参照することによって、動作基準に設定したPCの性能等に基づき再現を実行させるPCなどのシステム環境を考慮することができる。よってシステムの動作環境の差異によって表示結果が影響を受けないため、異なるシステムを使用しても同じタイミングで表示確認することができる。
更に、再現モードにより再現することで、ハードウェアがなくても、擬似表示装置の表示タイミングが意図した通りのものであるかの確認が可能になる。
更にまた、ある周期が正しい間隔で実行されているかを検証したい場合、従来のシミュレータでは、実行後に、タイミングチャートで正しい時間表示を行っているかを計算しなければならない。これに対し、本実施の形態においては、再現実行時に擬似表示装置の点滅間隔を確認するだけでよいので、再現実行にかかる時間だけで済み、作業効率が格段に向上する。
具体的には、シミュレーションにおいて、擬似表示装置の点滅が所定間隔で実行されているかを検証したい場合、従来は、シミュレーション実行後に、2点の検証点を検索する必要があり、その検索に約10秒必要になる。さらに、この検証点2点間の実時間への換算に例えば約10秒必要になり、合計20秒を要する。これに対し、本実施の形態においては、擬似表示装置の点滅間隔だけを確認するだけでよいので、例えば点滅間隔が1秒毎であれば1秒で済み、この場合は、約20倍の作業効率を得ることができる。更に複数の表示タイミングを従来の方法でチェックしようとした場合は、更に数倍の検証に時間がかかることになるが、実時間表示が可能な本シミュレータの再現モードを利用することで作業効率を格段に向上させることができる。
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施の形態1にかかるシミュレータを示すブロック図である。 本発明の実施の形態1にかかるシミュレータの処理の流を示す図である。 本発明の実施の形態1にかかるシミュレータの動作を示すフローチャートである。 同じく、本発明の実施の形態1にかかるシミュレータの動作を示すフローチャートである。 本発明の実施の形態1にかかるシミュレータにおける変換部が参照するプラットフォーム情報テーブルを示す図である。 本発明の実施の形態1にかかるシミュレータにおける再現タイミング情報ファイルの一具体例を示す図である。 本発明の実施の形態1にかかるシミュレータにおけるトレース情報変換部が、クロック数(rclk)を論理時間(ltime)に変換し、論理時間(ltime)をループ回数(loop)に変換する変換方法を説明する図である・ クロック数(rclk)を論理時間(ltime)に変換する一具体例を示す図である。 論理時間(ltime)をループ回数(loop)に変換する一具体例を示す図である。 本発明の実施の形態2にかかるシミュレータにおける速度調整用のパラメータを考慮した場合の再現タイミング情報ファイルの生成方法を説明する図である。 従来のシミュレータを示す図である。 マイコンとLEDを接続した様子を示す図である。 特許文献2に記載のシミュレーション装置を示す図である。
符号の説明
11、111 シミュレーション対象プログラム
12、112 シミュレーション実行部
13、113 トレースデータ記録部
14、114 シミュレーション情報表示部
15 シミュレーション再現部
16、116 制御部
17、117 オペレーティング・システム
21、121 補助記録装置
22、122 入出力装置
23 トレースデータファイル
31 モード切替部
32 再現制御部
33 変換部
34 再現部
41 プラットフォーム情報テーブル
42 トレース情報変換部
43 再現タイミング情報ファイル
51 タイミング情報読取部
52 再現実行部
53 ソフトタイマ

Claims (14)

  1. ターゲットシステムで動作させる検証対象プログラムをシミュレータでシミュレーションした結果から得られるトレースデータを任意の再現速度に応じた再現タイミング情報に変換し、
    前記再現タイミング情報に基づき、前記シミュレーション結果を任意の再現速度で再現するシミュレーション方法。
  2. 前記ターゲットシステム及びシミュレータが搭載されるシステムの性能情報を含むプラットフォーム情報を参照して、前記トレースデータを前記再現タイミング情報に変換する
    ことを特徴とする請求項1記載のシミュレーション方法。
  3. 前記プラットフォーム情報は、前記ターゲットシステム及び前記シミュレータが搭載されるシステムの動作周波数情報を含み、
    前記ターゲットシステムの動作周波数を前記シミュレータが搭載されるシステムの動作周波数に換算し、
    前記換算結果に基づき前記トレースデータを前記再現タイミング情報に換算する
    ことを特徴とする請求項2記載のシミュレーション方法。
  4. 前記プラットフォーム情報は、基準となるシステムの基準動作周波数情報を含み、
    前記プラットフォーム情報を参照して前記シミュレータが搭載されるシステムの基本動作周波数を、前記基準となるシステムの基準動作周波数に換算し、
    前記換算結果に基づき前記トレースデータを前記再現タイミング情報に換算する
    ことを特徴とする請求項3記載のシミュレーション方法。
  5. 前記プラットフォーム情報は、前記再現速度を調整する時間調整パラメータを含み、
    前記プラットフォーム情報を参照して、前記トレースデータを任意の再現速度に応じた前記再現タイミング情報に変換する
    ことを特徴とする請求項2記載のシミュレーション方法。
  6. 前記検証対象プログラムとは独立して動作するタイマのループ動作に基づき前記シミュレーション結果を前記再現速度で表示する
    ことを特徴とする請求項1記載のシミュレーション方法。
  7. 検証対象プログラムのシミュレーションを実行してトレースデータを記録し、
    前記記録されたトレースデータを前記再現速度に応じた前記再現タイミング情報に変換し、
    前記再現タイミング情報に基づき、前記シミュレーション結果を再現する
    ことを特徴とする請求項1乃至6のいずれか1項記載のシミュレーション方法。
  8. ターゲットシステムで動作させる検証対象プログラムをシミュレーションした結果から得られるトレースデータを任意の再現速度に応じた再現タイミング情報に変換する変換部と、
    前記再現タイミング情報に基づき、前記シミュレーション結果を任意の再現速度で再現する再現部とを有するシミュレータ。
  9. 前記変換部は、前記ターゲットシステム及びシミュレータが搭載されるシステムの性能情報を含むプラットフォーム情報を参照して、前記トレースデータを前記再現タイミング情報に変換する
    ことを特徴とする請求項8記載のシミュレータ。
  10. 前記プラットフォーム情報は時間調整パラメータを有し、
    前記変換部は、前記時間調整パラメータを参照して、前記トレースデータを任意の再現速度に応じた再現タイミング情報に変換する
    ことを特徴とする請求項9記載のシミュレータ。
  11. 前記検証対象プログラムとは独立して動作するタイマを有し、
    前記再現部は、前記シミュレーション結果を前記タイマのループ動作を使用して再現する
    ことを特徴とする請求項8記載のシミュレータ。
  12. 前記検証対象プログラムのシミュレーションを実行するシミュレーション実行部と、
    前記シミュレーション実行部の実行結果を記録するトレースデータ記録部とを有し、
    前記変換部は、前記トレースデータ記録部の記録結果である前記トレースデータを前記再現タイミング情報に変換する
    ことを特徴とする請求項8記載のシミュレータ。
  13. 前記シミュレーション結果を表示するシミュレーション情報表示部を有する
    ことを特徴とする請求項8記載のシミュレータ。
  14. 前記トレースデータ記録部は、前記トレースデータとしてイベント情報及びそのクロック数を記録し、
    前記変換部は、前記ターゲットシステム及びシミュレータが搭載されるシステムの動作周波数に基づき前記クロック数を前記再現速度に対応した値に変換し、
    前記再現部は、前記変換結果に基づき前記シミュレーション結果を表示装置に表示する
    ことを特徴とする請求項8記載のシミュレータ。
JP2006168940A 2006-06-19 2006-06-19 シミュレータ及びシミュレーション方法 Pending JP2007334812A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006168940A JP2007334812A (ja) 2006-06-19 2006-06-19 シミュレータ及びシミュレーション方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006168940A JP2007334812A (ja) 2006-06-19 2006-06-19 シミュレータ及びシミュレーション方法

Publications (1)

Publication Number Publication Date
JP2007334812A true JP2007334812A (ja) 2007-12-27

Family

ID=38934204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006168940A Pending JP2007334812A (ja) 2006-06-19 2006-06-19 シミュレータ及びシミュレーション方法

Country Status (1)

Country Link
JP (1) JP2007334812A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009279A (ja) * 2008-06-26 2010-01-14 Fujitsu Ltd デバッグ方法およびデバッグプログラム
JP2010097406A (ja) * 2008-10-16 2010-04-30 Fujitsu Ten Ltd シミュレーションシステム
KR101199479B1 (ko) 2008-12-22 2012-11-09 한국전자통신연구원 응용 테스트 자동화를 위한 시뮬레이션 방법 및 장치
WO2016181455A1 (ja) * 2015-05-11 2016-11-17 三菱電機株式会社 シミュレーション再現装置、シミュレーション再現方法およびシミュレーション再現プログラム
WO2017179120A1 (ja) * 2016-04-12 2017-10-19 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
WO2021181586A1 (ja) * 2020-03-11 2021-09-16 三菱電機株式会社 シミュレーション装置およびシミュレーションプログラム
US20230004480A1 (en) * 2021-06-30 2023-01-05 Omron Corporation Simulation system, method for simulation system, and non-transitory computer-readable storage medium storing simulation program

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009279A (ja) * 2008-06-26 2010-01-14 Fujitsu Ltd デバッグ方法およびデバッグプログラム
JP2010097406A (ja) * 2008-10-16 2010-04-30 Fujitsu Ten Ltd シミュレーションシステム
KR101199479B1 (ko) 2008-12-22 2012-11-09 한국전자통신연구원 응용 테스트 자동화를 위한 시뮬레이션 방법 및 장치
WO2016181455A1 (ja) * 2015-05-11 2016-11-17 三菱電機株式会社 シミュレーション再現装置、シミュレーション再現方法およびシミュレーション再現プログラム
JPWO2016181455A1 (ja) * 2015-05-11 2017-06-29 三菱電機株式会社 シミュレーション再現装置、シミュレーション再現方法およびシミュレーション再現プログラム
US10372576B2 (en) 2015-05-11 2019-08-06 Mitsubishi Electric Corporation Simulation reproduction apparatus, simulation reproduction method, and computer readable medium
JP6305672B2 (ja) * 2016-04-12 2018-04-04 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
JPWO2017179120A1 (ja) * 2016-04-12 2018-05-24 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
WO2017179120A1 (ja) * 2016-04-12 2017-10-19 三菱電機株式会社 シミュレーション再現装置およびシミュレーション再現プログラム
US10514996B2 (en) 2016-04-12 2019-12-24 Mitsubishi Electric Corporation Simulation reproducing apparatus and computer-readable recording medium
WO2021181586A1 (ja) * 2020-03-11 2021-09-16 三菱電機株式会社 シミュレーション装置およびシミュレーションプログラム
US20230004480A1 (en) * 2021-06-30 2023-01-05 Omron Corporation Simulation system, method for simulation system, and non-transitory computer-readable storage medium storing simulation program
US11960379B2 (en) * 2021-06-30 2024-04-16 Omron Corporation Simulation system, method for simulation system, and non-transitory computer-readable storage medium storing simulation program

Similar Documents

Publication Publication Date Title
JP2007334812A (ja) シミュレータ及びシミュレーション方法
JP4472615B2 (ja) プログラマブルデバイスのモデリング方法および装置
KR20080055913A (ko) 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치
JP3901417B2 (ja) Plcシミュレータ
CN100456248C (zh) 获得程序代码和函数执行覆盖率及执行效率的装置及方法
JP2009003683A (ja) ソフトウェア実行装置および協調動作方法
US7606694B1 (en) Framework for cycle accurate simulation
JP2017162130A (ja) ハードウェア/ソフトウェア協調検証装置およびハードウェア/ソフトウェア協調検証方法
JP2009140388A (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
JP2013084163A (ja) 協調シミュレーション装置及び協調シミュレーション方法
CN116629171A (zh) 一种基于综合网表的fpga芯片调试方法及装置
CN116415545A (zh) 一种对芯片信号模块的仿真验证方法、系统、设备及介质
US20090150103A1 (en) Computer-Based Method and System for Simulating Static Timing Clocking Results
JP5515815B2 (ja) 検証装置及び検証プログラム
El-Kharashy et al. A novel assertions-based code coverage automatic cad tool
JP2009054107A (ja) 統合シミュレーション装置及び該統合シミュレーション装置を用いた設計・開発方法
JP2015114675A (ja) アプリケーションソフトウェア加速試験装置および試験方法
CN110598320B (zh) 一种基于硬件仿真加速器的指令集模拟器校准方法
JP5937530B2 (ja) ソフトエラー解析装置、エラー情報作成装置
CN112527571B (zh) 一种cpu指令集覆盖率计算方法及装置
JPH03269736A (ja) 計算機システム
US7904289B2 (en) Method and system for testing functionality of a chip checker
KR101135747B1 (ko) Ipc 통신 기반의 계측기 제어 방법 및 컴퓨터 판독 가능한 기록매체
JP2017027288A (ja) ソフトハード協調解析装置およびソフトハード協調解析装置用のプログラム
JP2010009279A (ja) デバッグ方法およびデバッグプログラム