WO2019092849A1 - シミュレーション装置、シミュレーション方法およびシミュレーションプログラム - Google Patents

シミュレーション装置、シミュレーション方法およびシミュレーションプログラム Download PDF

Info

Publication number
WO2019092849A1
WO2019092849A1 PCT/JP2017/040605 JP2017040605W WO2019092849A1 WO 2019092849 A1 WO2019092849 A1 WO 2019092849A1 JP 2017040605 W JP2017040605 W JP 2017040605W WO 2019092849 A1 WO2019092849 A1 WO 2019092849A1
Authority
WO
WIPO (PCT)
Prior art keywords
simulation
unit
change
instruction
time
Prior art date
Application number
PCT/JP2017/040605
Other languages
English (en)
French (fr)
Inventor
大佑 小川
正勝 外山
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2017/040605 priority Critical patent/WO2019092849A1/ja
Priority to AU2017438670A priority patent/AU2017438670B2/en
Priority to CN201780096441.8A priority patent/CN111295658B/zh
Priority to DE112017008061.4T priority patent/DE112017008061T5/de
Priority to JP2019551834A priority patent/JP6667733B2/ja
Priority to US16/648,007 priority patent/US11106478B2/en
Publication of WO2019092849A1 publication Critical patent/WO2019092849A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Abstract

シミュレーション装置(100)において、算出部(113)が、複数の命令コードの各命令コード(221)の実行にかかる実行処理時間を算出する。記憶部(140)は、処理単位に含まれる複数の命令コードの実行処理時間を変更する変更規則が設定されている変更設定情報(230)を記憶する。変更部(115)は、変更設定情報(230)に設定されている変更規則に従って実行処理時間を変更処理時間として変更する。また、変更部(115)は、複数の命令コードの各命令コードの変更処理時間を、全体時刻(240)に計上する。シミュレーション実行部(116)は、全体時刻(240)を用いてターゲットプログラム(210)のシミュレーションを実行する。監視部(120)は、シミュレーションの実行中にターゲットモデルの状態を監視する。

Description

シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
 本発明は、シミュレーション装置、シミュレーション方法およびシミュレーションプログラムに関する。
 シミュレーションのターゲットとなるターゲットCPU(Central Processing Unit)を含むターゲットモデルをホストコンピュータに構築し、シミュレーションを行うシミュレータがある。このシミュレータは、時間情報を含む試験シナリオと、この試験シナリオを解釈するシナリオ解釈部と、シナリオを実行するシナリオ実行部とを備える。シナリオ実行部は、解釈結果に基づいて、シナリオに記載された時間にシナリオに記載された信号を駆動する。このような構成により、シミュレータは、実機あるいはハードウェアシミュレータが無い場合でも、システム試験を行うことができる。
 特許文献1には、複数のハードウェアモデルを連動して行うシミュレーションによって、ソフトウェアの動作検証を行う方式が開示されている。特許文献1の方式は、ハードウェアモデルの時間経過を加速することにより、ソフトウェアの動作検証に要する時間を短縮する。
特開2000-267889号公報
 特許文献1の技術では、CPU負荷変動あるいはハードウェア待ちといったタイミングのずれ、すなわち、タイミングロバストによる動作検証をすることができない。
 本発明の目的は、タイミングロバストによる動作検証を可能とし、検証品質を向上させることである。
 本発明に係るシミュレーション装置は、複数の命令コードから成る処理単位を含むターゲットプログラムを仮想環境に構築されたターゲットモデルにおいて実行するシミュレーションを行うシミュレーション装置において、
 前記複数の命令コードの各命令コードの実行にかかる実行処理時間を算出する算出部と、
 前記処理単位と、前記処理単位に含まれる前記複数の命令コードの実行処理時間を変更する変更規則とが設定されている変更設定情報を記憶する記憶部と、
 前記変更設定情報に設定されている前記変更規則に従って前記実行処理時間を変更処理時間として変更し、前記複数の命令コードの各命令コードの変更処理時間を、前記シミュレーションの時刻設定を表す全体時刻に計上する変更部と、
 前記全体時刻を用いて前記ターゲットプログラムのシミュレーションを実行するシミュレーション実行部と、
 前記シミュレーションの実行中に前記ターゲットモデルの状態を監視する監視部とを備えた。
 本発明に係るシミュレーション装置では、変更部が、変更規則に従って実行処理時間を変更処理時間として変更する。そして、変更部が、複数の命令コードの各命令コードの変更処理時間を、シミュレーションの全体時刻に計上する。また、シミュレーション実行部が、全体時刻を用いてターゲットプログラムのシミュレーションを実行する。そして、監視部が、シミュレーションの実行中にターゲットモデルの状態を監視する。よって、本発明に係るシミュレーション装置によれば、簡単な構成により命令コードの実行のタイミングのずれを発生させ、タイミングロバストによる動作検証を可能とするので、検証品質を向上させることができる。
実施の形態1に係るシミュレーション装置100の構成図。 実施の形態1に係るシミュレーション装置100によるシミュレーション処理S100のフロー図。 実施の形態1に係るシミュレーション処理S100を説明するための図。 実施の形態1に係る変更設定情報230の例を示す図。 実施の形態1に係る監視対象情報250の例を示す図。 実施の形態1において実行処理時間を変更せずにシミュレーションを行った場合の模式図。 実施の形態1において実行処理時間を変更してシミュレーションを行った場合の模式図。 実施の形態1の変形例に係るシミュレーション装置100の構成図。
 以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
 実施の形態1.
***構成の説明***
 図1を用いて、本実施の形態に係るシミュレーション装置100の構成を説明する。
 シミュレーション装置100は、コンピュータである。シミュレーション装置100は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 シミュレーション装置100は、機能要素として、CPUモデル110と、監視部120と、HW(ハードウェア)モデル130と、記憶部140とを備える。CPUモデル110は、命令取り出し部111と、命令実行部112と、算出部113と、判定部114と、変更部115と、シミュレーション実行部116とを備える。HWモデル130は、メモリモデル131と、外部IOモデル132と、周辺装置モデル133と、CPUバスモデル134とを備える。記憶部140には、変更設定情報230と、全体時刻240と、監視対象情報250が記憶されている。
 シミュレーション装置100は、CPUモデル110とHWモデル130から成る仮想モデルを、シミュレーションのターゲットモデルとする。CPUモデル110とHWモデル130から成るターゲットモデルは、シミュレーション装置100の仮想環境に構築された仮想モデルである。
 CPUモデル110と監視部120の機能は、ソフトウェアにより実現される。
 記憶部140は、メモリ921に備えられる。メモリ921には、記憶部140の他に、ターゲットモデルを動作させるターゲットプログラム210が記憶される。また、メモリ921は、ターゲットプログラム210の命令コード221を記憶する命令メモリ220を備える。
 図1では、HWモデル130がプロセッサ910の外側に記載されているが、HWモデル130はプロセッサ910と各種ハードウェアにより仮想的に構築される。
 プロセッサ910は、シミュレーションプログラムを実行する装置である。シミュレーションプログラムは、CPUモデル110と監視部120の機能を実現するプログラムである。
 プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。
 補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlashの略語である。DVDは、Digital Versatile Diskの略語である。
 入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。シミュレーション装置100は、入力インタフェース930を介して、変更設定情報230あるいは監視対象情報250といった情報を取得し、記憶部140に記憶する。
 出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。シミュレーション装置100は、出力インタフェース940を介して、監視部120による監視結果といった情報をディスプレイに表示する。
 シミュレーションプログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリ921には、シミュレーションプログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、シミュレーションプログラムを実行する。シミュレーションプログラムおよびOSは、補助記憶装置922に記憶されていてもよい。補助記憶装置922に記憶されているシミュレーションプログラムおよびOSは、メモリ921にロードされ、プロセッサ910によって実行される。なお、シミュレーションプログラムの一部または全部がOSに組み込まれていてもよい。
 シミュレーション装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、シミュレーションプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、シミュレーションプログラムを実行する装置である。
 シミュレーションプログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ921、補助記憶装置922、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
 シミュレーションプログラムは、CPUモデル110と監視部120の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。CPUモデル110と監視部120の各部とは、命令取り出し部111、命令実行部112、算出部113、判定部114、変更部115、シミュレーション実行部116、および監視部120の各部である。また、シミュレーション方法は、シミュレーション装置100がシミュレーションプログラムを実行することにより行われる方法である。
 シミュレーションプログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、シミュレーションプログラムは、プログラムプロダクトとして提供されてもよい。
***動作の説明***
 図2を用いて、本実施の形態に係るシミュレーション装置100によるシミュレーション処理S100について説明する。また、図3は、本実施の形態に係るシミュレーション処理S100を説明するための図である。図3では、シミュレーション処理S100の動作説明のため、処理の対象となる命令メモリ220のアドレスと命令コード221、および、その処理の実行処理時間と変更後の変更処理時間の例を対応付けて記載している。
 シミュレーション装置100は、複数の命令コードから成る処理単位を含むターゲットプログラム210を仮想環境に構築されたターゲットモデルにおいて実行するシミュレーションを行う。ターゲットプログラム210は、複数の処理単位を含む。また、複数の処理単位の各々は、複数の命令コードから成る。シミュレーション装置100は、シミュレーションの時刻設定を表す全体時刻240に基づいて、シミュレーションを行う。
 ステップS101において、命令取り出し部111は、命令メモリ220から命令コード221を取り出す。図3の例では、命令取り出し部111は、命令メモリ220のアドレス0x0005から命令コード221としてADRを取り出す。
 ステップS102において、命令実行部112は、取り出された命令コード221を実行する。図3の例では、命令実行部112は、命令メモリ220から取り出したADRを実行する。
 ステップS103において、算出部113は、複数の命令コードの各命令コードの実行にかかる実行処理時間を算出する。具体的には、算出部113は、ステップS102で実行された命令コード221について、命令コード221の実行にかかる実行処理時間を算出する。図3の例では、算出部113は、ADRの実行処理時間が3cycleであると算出している。
 ステップS104において、判定部114は、命令取り出し部111により取り出された命令コード221が、変更設定情報230に設定されている処理単位に含まれるかを判定する。すなわち、判定部114は、命令取り出し部111により取り出された命令コード221が、実行処理時間を変更させるべき処理単位に含まれる命令コードかを判定する。処理単位とは、関数あるいはタスクといった処理の単位である。
 図4を用いて、本実施の形態に係る変更設定情報230について説明する。
 変更設定情報230には、処理単位と、処理単位に含まれる複数の命令コードの実行処理時間を変更する変更規則とが設定されている。ターゲットプログラム210は、複数の処理単位を含んでいるが、変更設定情報230には、複数の処理単位のうち実行処理時間を変更する処理単位が設定されている。つまり、変更設定情報230に設定されている処理単位は、自処理単位を構成する命令コードの実行処理時間を変更する処理単位である。
 変更設定情報230は、処理単位の名称と、命令メモリ220における処理単位の開始アドレスと、命令メモリ220における処理単位の終了アドレスとを含む。具体的には、変更設定情報230には、処理単位名231と、開始アドレス232と、終了アドレス233と、サイズ234と、変更規則235とが設定されている。処理単位名231は、複数の命令コードから成る処理単位の名称である。開始アドレス232は、処理単位の命令メモリ220における開始アドレスである。終了アドレス233は、処理単位の命令メモリ220における終了アドレスである。サイズ234は処理単位のサイズである。変更規則235は、命令コードの実行処理時間を変更する変更方法である。変更規則235は、例えば、正負倍率、もしくは、正負固定値により指定される。なお、終了アドレス233とサイズ234のうち少なくともいずれかが変更設定情報230設定されていればよい。つまり、処理単位の終わりがどこなのかを示す情報があれば良い。処理単位の終わりがどこなのかを示す情報であれば、アドレスあるいはサイズでなくてもその他の情報でも構わない。
 図4では、処理単位funcAについては、実行処理時間を30%伸長させるように変更する変更規則235が設定されている。また、処理単位funcBについては、実行処理時間を10%短縮させるように変更する変更規則235が設定されている。
 判定部114は、命令コード221の命令メモリ220におけるアドレスが、開始アドレス232と終了アドレス233の間に含まれる場合に、この命令コード221が変更設定情報230に設定されている処理単位に含まれると判定する。つまり、判定部114は、変更設定情報230に設定されている処理単位のうち、命令メモリ220から取り出した命令コードのアドレスを含む処理単位があるかを判定する。命令コードのアドレスを含む処理単位がある場合、処理はステップS105に進む。命令コードのアドレスを含む処理単位がない場合、処理はステップS106に進む。
 なお、開始アドレス232および終了アドレス233は、仮想アドレスあるいは物理アドレスのどちらでも構わない。プロセッサ内部で扱う仮想アドレスと、メモリの物理アドレスとが、同じ場合と異なる場合がある。異なる場合は仮想アドレスから物理アドレスに変換する処理が行われるが、本実施の形態はこのような処理にも対応可能である。
 なお、図2では、判定部114は、算出部113により実行処理時間が算出された命令コードについて、変更対象の処理単位に含まれるかを判定している。しかし、判定部114は、シミュレーションの実行中の命令コードの実行を監視し、変更部115へ実行中の命令が実行処理時間を変更する命令コードであることを通知してもよい。
 ステップS105において、変更部115は、変更設定情報230に設定されている変更規則に従って実行処理時間を変更し、変更処理時間とする。具体的には、図3の命令コードADRのアドレス0x0005が、図4のfuncAのアドレス0xXXXから0xYYYに含まれていた場合、ADRは実行処理時間を変更する命令コードである。そして、変更規則は「+30%」である。したがって、変更部115は、ADRの実行処理時間3cycleを30%増の3.9cycleとする。ここで、変更した3.9cycleを変更処理時間ともいう。
 ステップS106において、変更部115は、複数の命令コードの各命令コードの変更処理時間を、シミュレーション全体の時刻設定を表す全体時刻240に計上する。具体的には、変更部115は、命令コードの実行処理時間を、記憶部140に記憶されている全体時刻240に計上する。ここで、命令コードが実行処理時間を変更すべき処理単位に含まれている場合は、全体時刻240に計上される時間は、ステップS105で変更された変更後の実行処理時間、すなわち変更処理時間である。また、命令コードが実行処理時間を変更すべき処理単位に含まれていない場合は、全体時刻240に計上される時間は、ステップS103で算出された実行処理時間である。
 ステップS107において、変更部115は、シミュレーションを実行するターゲットプログラム210に含まれる全ての処理単位の全ての命令コードについて、処理が完了したかを判定する。全ての処理単位について処理が完了していれば、処理はステップS108に進む。処理が完了していない処理単位があれば、処理はステップS101に戻る。
 ステップS108において、シミュレーション実行部116は、全体時刻240を用いてシミュレーションを実行する。具体的には、シミュレーション実行部116は、全体時刻240に基づいて、CPUモデル110を用いてターゲットプログラム210を実行し、HWモデル130のシミュレーションを行う。
 ステップS109において、監視部120は、シミュレーションの実行中にターゲットモデルの状態を監視する。記憶部140には、ターゲットモデルのうちの監視対象である監視対象モデルと、監視対象モデルの状態を表す状態情報と、状態情報の期待値とが設定された監視対象情報250が記憶されている。監視部120は、監視対象情報250に基づいて、監視対象モデルの状態情報の時刻変化状況を監視し、監視結果を出力する。具体的には、監視部120は、シミュレーション装置100内の任意のモデルの任意の内部状態を監視する。また、監視部120は、監視対象情報250に設定されている監視対象モデルの状態情報について、その時刻変化状況をディスプレイに表示するといった方法で外部に通知する。
 図5を用いて、本実施の形態に係る監視対象情報250について説明する。
 監視対象情報250には、CPUモデルおよびHWモデル130からなるターゲットモデルのうち、監視部120が監視すべき対象の監視対象モデル251が設定される。図5では、監視対象モデル251の例としてタイマが記載されている。また、監視対象モデル251の状態を表す状態情報252が設定される。監視対象モデル251の状態情報252として、ソフトウェアの内部変数名、レジスタ名、信号名、あるいはアドレスといった情報が設定される。また、状態情報252の期待値253が設定される。期待値253は、監視条件ともいう。期待値253として、前時刻と等しい、もしくは、前時刻より大きい、もしくは、前時刻より値以上大きい、もしくは、前時刻より小さい、もしくは、前時刻より値以上小さい、といった情報が設定される。
 監視部120は、シミュレーションの実行中に、CPUモデルおよびHWモデル130について、監視対象のモデルの対象信号あるいは対象変数の時刻変化状況を監視する。監視部120は、監視結果を外部へ通知する。例えば、監視部120は、対象信号あるいは対象変数が、期待値以外の値をとった場合には不具合が発生したことを表す警告情報を外部へ通知してもよい。
 以下に、監視対象モデル251のその他の具体例について説明する。
 監視対象モデル251の具体例には、メモリがある。また、具体例として、DMA(Direct Memory Access)、割り込みコントローラ、モータ、FPGA、あるいはASICといった周辺装置モデルがある。FPGAは、Field-Programmable Gate Arrayの略語である。ASICは、Application Specific Integrated Circuitの略語である。また、具体例として、UART(Universal Asynchronous Receiver/Transmitter)あるいはPCIeといった外部IOモデルがある。また、CPUモデルも監視対象モデル251の一つである。
 メモリでは、特定アドレスに格納されているデータあるいはメモリの入出力ピン(アドレス、チップセレクト、あるいはライトイネーブル等)が監視される。ターゲットプログラムの変数は、基本的にはメモリに格納されており、アドレス指定で監視される。
 DMAあるいは割り込みコントローラでは、設定および状態を格納するレジスタあるいは割り込みピン等が監視される。
 モータでは、主にピンが監視される。モータの出力ピンが想定の値を出しているかといった状態が監視される。
 FPGAあるいはASICでは、DMA等と同様に、内部レジスタ、あるいは入出力ピン等が監視される。
 UARTあるいはPCIeでは、DMA等と同様に、内部レジスタ等が監視される。通信データは必ず受信レジスタあるいは送信レジスタに格納されるので、その通信データが監視される。また、受信中あるいはエラーといった状態もレジスタに格納されるので、その状態が監視される。UARTあるいはPCIeでは、外部ピンもDMA等と同様に監視される。
 CPUモデルでは、CPU特有の内部レジスタが監視される。具体的には、プログラムカウンタ(PC)、ステータスレジスタ、あるいは汎用レジスタ値といった情報が監視される。
 図6は、実行処理時間を変更せずにシミュレーションを行った場合の模式図である。図7は、実行処理時間を変更してシミュレーションを行った場合の模式図である。
 図6および図7を用いて、本実施の形態に係るシミュレーション処理について、さらに説明する。
 図6では、タスクA、タスクC、およびタスクBの順で処理が実行されている。タスクBの途中でタスクA用のデータセット処理が行われている。そして、タスクBの処理が完了した後、タイマ割込みによりタスクAが起動される。すなわち、タスクAとタスクBとが同期している。
 図7では、図6のシミュレーションにおいてタイミングロバストを発生させることにより、タイミングロバスト検証を行う様子を示している。
(1)図7では、タスクBについての設定規則が、実行処理時間を30%伸長することであるとする。上述したステップS101からステップS107の処理により、タスクBの各命令コードの実行処理時間が30%伸長される。よって、タスクBの各命令コードの実行タイミングが変更される。
(2)図6と同様に、タスクA、タスクC、およびタスクBの順で処理が実行される。
(3)タスクA用のデータセット処理中にタイマ割込みが発生するように、タスクBの各命令コードの実行処理時間が伸長されている。よって、タスクA用のデータセット処理中にタイマ割込みが発生する。
(4)タイマ割込みによりタスクAが起動される。しかし、タスクA用のデータセット処理が完了していないため、タスクAは意図しないデータで演算が実行されることになり、不具合が発生する。
(5)監視部120は、シミュレーションの実行中に、監視対象情報250に設定されている監視対象モデルの状態情報について、監視を行い、監視結果を外部に通知する。このように、図7のシミュレーション処理では、タイミングロバストを発生させることにより、タイミングロバスト検証を容易に行うことができ、シミュレーション装置100の検証性能を向上させることができる。
***他の構成***
<変形例1>
 シミュレーション装置100がネットワークを介して他の装置と通信する通信装置を備えていてもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、有線または無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。シミュレーション装置100は、通信装置を介して、外部の装置から変更設定情報230、あるいは監視対象情報250を受信し、記憶部140に記憶してもよい。あるいは、シミュレーション装置100は、通信装置を介して、監視部120による監視結果を外部の装置に送信してもよい。
<変形例2>
 本実施の形態では、変更設定情報に処理単位の名称と、処理単位の開始アドレスおよび終了アドレスとを設定していた。そして、判定部は、命令コードのアドレスと処理単位の開始アドレスおよび終了アドレスとを用いて、命令コードが処理単位に含まれるかを判定していた。
 変形例2として、変更設定情報に、処理単位の名称と変更時刻の範囲とが設定されていてもよい。この場合、判定部は、命令取り出し部により取り出された命令コードを実行する時刻が、変更設定情報の変更時刻の範囲に含まれる場合に、命令コードが変更設定情報に設定されている処理単位に含まれると判定する。そして、変更部は、変更規則に従って、変更対象の処理単位に含まれると判定された命令コードの実行処理時間を変更する。その他の処理は、本実施の形態と同様である。
<変形例3>
 本実施の形態では、命令取り出し部111、命令実行部112、処理時間算出部113、判定部114、処理時間変更部115、シミュレーション実行部116、および監視部120の機能がソフトウェアで実現される。以下において、命令取り出し部111、命令実行部112、処理時間算出部113、判定部114、処理時間変更部115、シミュレーション実行部116、および監視部120の機能を、CPUモデル110と監視部120の機能と称する場合がある。変形例として、CPUモデル110と監視部120の機能がハードウェアで実現されてもよい。
 図8は、本実施の形態の変形例に係るシミュレーション装置100の構成を示す図である。
 シミュレーション装置100は、電子回路909、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940を備える。
 電子回路909は、CPUモデル110と監視部120の機能を実現する専用の電子回路である。
 電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。
 CPUモデル110と監視部120の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
 別の変形例として、CPUモデル110と監視部120の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、シミュレーション装置100において、CPUモデル110と監視部120の機能は、プロセッシングサーキットリにより実現される。
 シミュレーション装置100において、命令取り出し部、命令実行部、処理時間算出部、判定部、処理時間変更部、シミュレーション実行部、および監視部の「部」を「工程」あるいは「処理」に読み替えてもよい。また、命令取り出し処理、命令実行処理、処理時間算出処理、判定処理、処理時間変更処理、シミュレーション実行処理、および監視処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
***本実施の形態の効果の説明***
 本実施の形態に係るシミュレーション装置100では、変更部が変更設定情報に基づいて、変更対象の命令コードの実行処理時間を変更し、変更した実行処理時間をシミュレーションの全体時刻に計上する。よって、シミュレーション装置100によれば、命令の実行タイミングのずれを模擬することができる。また、シミュレーション装置100では、監視部が、命令の実行タイミングのずれを模擬しているターゲットモデルの内部状態の時刻変化状況を監視する。よって、シミュレーション装置100によれば、タイミングロバスト検証が可能となり、CPU負荷変動あるいはハードウェア待ちといった外乱要素を考慮した試験品質を確保できる。
 また、本実施の形態に係るシミュレーション装置100では、シミュレーションのターゲットプログラムの任意の処理単位を指定し、指定した処理単位についてのみ実行処理時間を変更する。シミュレーション装置100では、設定変更情報を用いているので、ソフトウェアの関数あるいはタスクといった処理単位で、命令の実行処理時間の変更を指定することができる。また、シミュレーション装置100では、処理単位毎にシミュレーション時刻を任意の変更規則で変更することができる。すなわち、シミュレーション装置100では、ソフトウェアの一部分のみの処理時間を任意の変更規則で変更できる。そして、シミュレーション装置100では、変更後の仮想時間で模擬対象のターゲットモデル全体が同期して動作する。このように、シミュレーション装置100では、タスク間、あるいは、ソフトウェアおよびハードウェア間の処理タイミングの重複といった事象の模擬と検証を可能とする。よって、シミュレーション装置100によれば、タイミングロバスト検証を、簡易な構成で実現することができる。
 また、本実施の形態に係るシミュレーション装置100では、監視部は、実行する命令のアドレスの監視に加え、ターゲットモデルで模擬するレジスタ、信号、およびソフトウェア内部変数といった情報の監視も行う。また、シミュレーション装置100では、ターゲットモデルの監視対象を、記憶部の監視対象情報を用いて管理することができる。よって、シミュレーション装置100によれば、シミュレーションに対する要求に応じて監視対象を柔軟に設定することができる。
 本実施の形態では、シミュレーション装置の各部を独立した機能ブロックとして説明した。しかし、シミュレーション装置の構成は、上述した実施の形態のような構成でなくてもよい。シミュレーション装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
 本実施の形態のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
 なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
 100 シミュレーション装置、110 CPUモデル、111 命令取り出し部、112 命令実行部、113 算出部、114 判定部、115 変更部、116 シミュレーション実行部、120 監視部、130 HWモデル、131 メモリモデル、132 外部IOモデル、133 周辺装置モデル、134 CPUバスモデル、140 記憶部、210 ターゲットプログラム、220 命令メモリ、221 命令コード、230 変更設定情報、231 処理単位名、232 開始アドレス、233 終了アドレス、234 サイズ、235 変更規則、240 全体時刻、250 監視対象情報、251 監視対象モデル、252 状態情報、253 期待値、909 電子回路、910 プロセッサ、921 メモリ、922 補助記憶装置、930 入力インタフェース、940 出力インタフェース、S100 シミュレーション処理。

Claims (9)

  1.  複数の命令コードから成る処理単位を含むターゲットプログラムを、仮想環境に構築されたターゲットモデルにおいて実行するシミュレーションを行うシミュレーション装置において、
     前記複数の命令コードの各命令コードの実行にかかる実行処理時間を算出する算出部と、
     前記処理単位と、前記処理単位に含まれる前記複数の命令コードの実行処理時間を変更する変更規則とが設定されている変更設定情報を記憶する記憶部と、
     前記変更設定情報に設定されている前記変更規則に従って前記実行処理時間を変更処理時間として変更し、前記複数の命令コードの各命令コードの変更処理時間を、前記シミュレーションの時刻設定を表す全体時刻に計上する変更部と、
     前記全体時刻を用いて前記ターゲットプログラムのシミュレーションを実行するシミュレーション実行部と、
     前記シミュレーションの実行中に前記ターゲットモデルの状態を監視する監視部と
    を備えたシミュレーション装置。
  2.  前記ターゲットプログラムは、複数の処理単位を含み、
     前記変更設定情報は、前記複数の処理単位のうち実行処理時間を変更する処理単位が設定され、
     前記シミュレーション装置は、
     前記複数の処理単位の各々を成す前記複数の命令コードが記憶された命令メモリから命令コードを取り出す命令取り出し部と、
     前記命令取り出し部により取り出された命令コードが、前記変更設定情報に設定されている処理単位に含まれるかを判定する判定部と
    を備え、
     前記変更部は、
     前記命令取り出し部により取り出された命令コードが、前記変更設定情報に設定されている処理単位に含まれる場合に、前記変更設定情報に設定されている前記変更規則に従って前記実行処理時間を変更する請求項1に記載のシミュレーション装置。
  3.  前記変更設定情報は、処理単位の名称と、前記命令メモリにおける処理単位の開始アドレスと、前記命令メモリにおける処理単位の終了アドレスとを含み、
     前記判定部は、
     前記命令取り出し部により取り出された命令コードの前記命令メモリにおけるアドレスが、前記開始アドレスと前記終了アドレスの間に含まれる場合に前記命令コードが、前記変更設定情報に設定されている処理単位に含まれると判定する請求項2に記載のシミュレーション装置。
  4.  前記変更設定情報は、処理単位の名称と変更時刻の範囲とが設定され、
     前記判定部は、
     前記命令取り出し部により取り出された命令コードを実行する時刻が、前記変更時刻の範囲に含まれる場合に、前記命令コードが前記変更設定情報に設定されている処理単位に含まれると判定する請求項2に記載のシミュレーション装置。
  5.  前記変更設定情報は、前記変更規則として、正負倍率、もしくは、正負固定値で指定する請求項1から4のいずれか1項に記載のシミュレーション装置。
  6.  前記記憶部は、
     前記ターゲットモデルのうちの監視対象である監視対象モデルと、前記監視対象モデルの状態を表す状態情報と、前記状態情報の期待値とが設定された監視対象情報を記憶し、
     前記監視部は、
     前記監視対象情報に基づいて、前記監視対象モデルの前記状態情報の時刻変化状況を監視し、監視結果を出力する請求項1から5のいずれか1項に記載のシミュレーション装置。
  7.  前記監視対象情報は、
     前記監視対象モデルの前記状態情報として、ソフトウェアの内部変数名、レジスタ名、信号名、あるいはアドレスが設定されている請求項6に記載のシミュレーション装置。
  8.  複数の命令コードから成る処理単位を含むターゲットプログラムを、仮想環境に構築されたターゲットモデルにおいて実行するシミュレーションを行うシミュレーション装置であって、前記処理単位と、前記処理単位に含まれる前記複数の命令コードの実行処理時間を変更する変更規則とが設定されている変更設定情報を記憶する記憶部を備えたシミュレーション装置のシミュレーション方法において、
     前記複数の命令コードの各命令コードの実行にかかる実行処理時間を算出し、
     前記変更設定情報に設定されている前記変更規則に従って前記実行処理時間を変更処理時間として変更し、前記複数の命令コードの各命令コードの変更処理時間を、前記シミュレーションの時刻設定を表す全体時刻に計上し、
     前記全体時刻を用いて前記ターゲットプログラムのシミュレーションを実行し、
     前記シミュレーションの実行中に前記ターゲットモデルの状態を監視するシミュレーション方法。
  9.  複数の命令コードから成る処理単位を含むターゲットプログラムを、仮想環境に構築されたターゲットモデルにおいて実行するシミュレーションを行うシミュレーション装置であって、前記処理単位と、前記処理単位に含まれる前記複数の命令コードの実行処理時間を変更する変更規則とが設定されている変更設定情報を記憶する記憶部を備えたシミュレーション装置のシミュレーションプログラムにおいて、
     前記複数の命令コードの各命令コードの実行にかかる実行処理時間を算出する算出処理と、
     前記変更設定情報に設定されている前記変更規則に従って前記実行処理時間を変更処理時間として変更し、前記複数の命令コードの各命令コードの変更処理時間を、前記シミュレーションの時刻設定を表す全体時刻に計上する変更処理と、
     前記全体時刻を用いて前記ターゲットプログラムのシミュレーションを実行するシミュレーション実行処理と、
     前記シミュレーションの実行中に前記ターゲットモデルの状態を監視する監視処理と
    をコンピュータである前記シミュレーション装置に実行させるシミュレーションプログラム。
PCT/JP2017/040605 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム WO2019092849A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
PCT/JP2017/040605 WO2019092849A1 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
AU2017438670A AU2017438670B2 (en) 2017-11-10 2017-11-10 Simulation device, simulation method, and simulation program
CN201780096441.8A CN111295658B (zh) 2017-11-10 2017-11-10 模拟装置、模拟方法和计算机能读取的存储介质
DE112017008061.4T DE112017008061T5 (de) 2017-11-10 2017-11-10 Simulationsvorrichtung, simulationsverfahren und simulationsprogramm
JP2019551834A JP6667733B2 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
US16/648,007 US11106478B2 (en) 2017-11-10 2017-11-10 Simulation device, simulation method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/040605 WO2019092849A1 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Publications (1)

Publication Number Publication Date
WO2019092849A1 true WO2019092849A1 (ja) 2019-05-16

Family

ID=66439099

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/040605 WO2019092849A1 (ja) 2017-11-10 2017-11-10 シミュレーション装置、シミュレーション方法およびシミュレーションプログラム

Country Status (6)

Country Link
US (1) US11106478B2 (ja)
JP (1) JP6667733B2 (ja)
CN (1) CN111295658B (ja)
AU (1) AU2017438670B2 (ja)
DE (1) DE112017008061T5 (ja)
WO (1) WO2019092849A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11025544B2 (en) * 2019-06-07 2021-06-01 Intel Corporation Network interface for data transport in heterogeneous computing environments
CN113238491B (zh) * 2021-04-12 2023-05-05 湖南三一智能控制设备有限公司 执行机构的仿真测试方法、装置、智能臂架及工程车辆

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198282A (ja) * 1996-01-19 1997-07-31 Matsushita Electric Works Ltd コンピュータ性能評価システム及び評価方法
JPH10240582A (ja) * 1997-03-03 1998-09-11 Toshiba Corp 計算機システムの性能評価方法及び装置
WO2012049728A1 (ja) * 2010-10-12 2012-04-19 富士通株式会社 シミュレーション装置,方法,およびプログラム

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02118848A (ja) 1988-10-28 1990-05-07 Nec Corp 計算機装置
JP2929259B2 (ja) * 1993-12-27 1999-08-03 株式会社山武 コントローラ
JPH10161906A (ja) 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
JPH10221410A (ja) 1997-02-07 1998-08-21 Mitsubishi Electric Corp Lsiの自動論理検証方式
US6067604A (en) 1997-08-11 2000-05-23 Compaq Computer Corporation Space-time memory
JPH11232136A (ja) 1998-02-17 1999-08-27 Ricoh Co Ltd オブジェクト指向ソフトウエア開発支援装置
JP2000267889A (ja) 1999-03-15 2000-09-29 Hitachi Ltd ソフトウェアのシミュレーション検証方式
JP2001282327A (ja) 2000-03-31 2001-10-12 Omron Corp シミュレーションシステム及びシミュレータ並びに管理サーバ及び記録媒体
JP2007011720A (ja) 2005-06-30 2007-01-18 Sharp Corp システムシミュレータ、システムシミュレート方法、制御プログラムおよび可読記録媒体
DE102006059829A1 (de) 2006-12-15 2008-06-19 Slawomir Suchy Universalcomputer
JP2008262318A (ja) 2007-04-11 2008-10-30 Fujitsu Ten Ltd ソフトウェア評価装置及びその信号モニタ方法
US8560985B1 (en) * 2007-06-07 2013-10-15 Cadence Design Systems, Inc. Configuration-based merging of coverage data results for functional verification of integrated circuits
US8494832B2 (en) * 2007-06-20 2013-07-23 Sanjeev Krishnan Method and apparatus for software simulation
JP2009157456A (ja) 2007-12-25 2009-07-16 Toshiba Corp プログラム検証装置、プログラム検証方法、検証プログラム
JP2010128722A (ja) 2008-11-26 2010-06-10 Canon Inc シミュレーションシステム、シミュレーション方法及びプログラム
JP2010244183A (ja) 2009-04-02 2010-10-28 Nec Corp 装置検査システム、装置検査方法、装置検査プログラム
JP5114623B2 (ja) * 2009-12-17 2013-01-09 京楽産業.株式会社 遊技機、中間部、周辺基板、認証方法及び認証プログラム
JP5454349B2 (ja) 2010-05-12 2014-03-26 富士通セミコンダクター株式会社 性能推定装置
WO2012035629A1 (ja) * 2010-09-15 2012-03-22 三菱電機株式会社 通信装置および遅延検出方法
JP6051546B2 (ja) * 2012-03-15 2016-12-27 オムロン株式会社 情報処理装置、シミュレーション方法、およびプログラム
DE102013100799A1 (de) * 2012-12-21 2014-06-26 Endress + Hauser Flowtec Ag Umformerschaltung mit einer Stromschnittstelle sowie Meßgerät mit einer solchen Umformerschaltung
US9201989B2 (en) * 2013-01-25 2015-12-01 Globalfoundries Inc. Interpolation techniques used for time alignment of multiple simulation models
JP6733656B2 (ja) 2015-03-11 2020-08-05 日本電気株式会社 情報処理装置、情報処理システム、プラントシステム、情報処理方法、及び、プログラム
JP2017084082A (ja) 2015-10-27 2017-05-18 富士電機株式会社 シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198282A (ja) * 1996-01-19 1997-07-31 Matsushita Electric Works Ltd コンピュータ性能評価システム及び評価方法
JPH10240582A (ja) * 1997-03-03 1998-09-11 Toshiba Corp 計算機システムの性能評価方法及び装置
WO2012049728A1 (ja) * 2010-10-12 2012-04-19 富士通株式会社 シミュレーション装置,方法,およびプログラム

Also Published As

Publication number Publication date
DE112017008061T5 (de) 2020-06-18
CN111295658B (zh) 2023-05-09
AU2017438670B2 (en) 2020-07-23
AU2017438670A1 (en) 2020-05-07
JPWO2019092849A1 (ja) 2020-04-02
US11106478B2 (en) 2021-08-31
CN111295658A (zh) 2020-06-16
US20200257545A1 (en) 2020-08-13
JP6667733B2 (ja) 2020-03-18

Similar Documents

Publication Publication Date Title
US9921949B2 (en) Software testing
JP6234639B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
US20120089386A1 (en) Simulation apparatus, computer-readable recording medium, and method
JP2004070457A (ja) シミュレーション用カバレッジ算出装置及びシミュレーション用カバレッジ算出方法
US11544436B1 (en) Hardware-software interaction testing using formal verification
US20190369997A1 (en) Simulation device, simulation method, and computer readable medium
JP6318976B2 (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
CN114237705A (zh) 验证方法、装置、电子设备和计算机可读存储介质
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
JP2005100174A (ja) シミュレーション装置、シミュレーションプログラム、記録媒体及びシミュレーション方法
CN114385524A (zh) 嵌入式固件仿真系统及其方法、装置和电子设备
JP7274069B2 (ja) トレース制御装置、エミュレータ、トレース制御方法、および、トレース制御プログラム
US9811339B1 (en) Testing hybrid instruction architecture
JP6234640B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
JP2006227668A (ja) メモリモデルとプログラムと論理回路検証方法
JP6664158B2 (ja) シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム
JP6331400B2 (ja) 検証方法、検証装置および検証プログラム
CN115292189A (zh) 车辆测试方法、装置、电子设备及存储介质
US20070265821A1 (en) Simulation apparatus, simulation method, and computer-readable recording medium storing simulation program
JP2007328775A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP2001209555A (ja) 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体
JP2010182054A (ja) プリンタドライバの評価システム
JP2016126703A (ja) 設計装置及び設計プログラム
JP2012103771A (ja) タイミング検証装置、及びタイミング検証方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17931555

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019551834

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017438670

Country of ref document: AU

Date of ref document: 20171110

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 17931555

Country of ref document: EP

Kind code of ref document: A1