JP4975544B2 - シミュレーション装置及びプログラム - Google Patents
シミュレーション装置及びプログラム Download PDFInfo
- Publication number
- JP4975544B2 JP4975544B2 JP2007189317A JP2007189317A JP4975544B2 JP 4975544 B2 JP4975544 B2 JP 4975544B2 JP 2007189317 A JP2007189317 A JP 2007189317A JP 2007189317 A JP2007189317 A JP 2007189317A JP 4975544 B2 JP4975544 B2 JP 4975544B2
- Authority
- JP
- Japan
- Prior art keywords
- software
- scheduling
- simulation
- execution
- timer
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3698—Environments for analysis, debugging or testing of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
(1)プロセッサの動作を模倣するISS(命令セット・シミュレータ)上でソフトウェアを動作する。
(2)ISSを使用せずにシミュレーション装置上のCPU(Central Processing Unit)で直接、ソフトウェアを動作させる。
本発明はこのような点に鑑みてなされたものであり、ソフトウェアとハードウェアとの協調動作を高速に精度よく検証できるシミュレーション装置及びプログラムを提供することを目的とする。
図1は、第1の実施の形態のシミュレーション装置の概略を示す図である。
第1の実施の形態のシミュレーション装置は、ターゲットプロセッサ上で動作するソフトウェアと、ハードウェアとの協調動作を検証するものであり、フレームワーク10内に、擬似OS11、擬似CPU12、通信手段13を有している。また、スケジューラ20を有している。
また、ハードウェアモデルHW1…HWnは、ターゲットシステムのハードウェアをSystemCなどで記述したものである。
上記の構成によれば、検証対象ソフトウェアSWは、フレームワーク10内の擬似CPU12の制御のもと、擬似OS11の実行スケジューリングにしたがって実行される。スケジューラ20への実行権の開放は、擬似OS11の実行スケジューリングにしたがって、擬似CPU12の制御のもと行われる。そして、スケジューラ20の実行スケジューリングに応じてハードウェアモデルHW1…HWnのタスクを実行できるようにする。これによって、検証対象ソフトウェアSWと、ハードウェアモデルHW1…HWnの協調動作を実現できる。
なお、スケジューラ20は、フレームワーク10内に設けるようにしてもよい。
図2は、第2の実施の形態のシミュレーション装置の概略を示す図である。
第2の実施の形態のシミュレーション装置は、スケジューラ30と、スケジューラ30に内蔵されたタイマ制御部30a、タイマ30bを有している。
タイマ制御部30aは、外部から、たとえばユーザによって入力されるタイマ制御コマンドに応じて、タイマ30bの機能を有効、または無効にする。
図3は、シミュレーション装置の具体的なハードウェア構成である。
シミュレーション装置50は、たとえばPCであり、ホストCPU51、ROM(Read Only Memory)52、RAM(Random Access Memory)53、HDD(Hard Disk Drive)54、グラフィック処理部55、入力I/F(Interface)56、通信I/F57などによって構成され、これらはバス58を介して相互に接続されている。
RAM53は、ホストCPU51が実行途中のプログラムや、演算途中のデータを格納している。
本実施の形態のシミュレーション装置は、図3のようなハードウェア構成により、以下のようなソフトウェア構成を実現する。
なお、ここでは、図1と図2の機能を両方含めたシミュレーション装置のソフトウェア構成を示している。図中の黒矢印は、イベント通信を示しており、白抜きの矢印はその他の信号またはデータの流れを示している。
フレームワーク60は、以下の各構成要素を含んでいる。
RTOS API63は、検証対象ソフトウェアSWがV−RTOS61と通信するための機能を提供するAPIである。ターゲットシステムのRTOSのAPIに合わせてカスタマイズすることができる。
IRC(割り込みコントローラ)67は、ハードウェアモデルHWからの割り込みイベントを、V−CPU66に伝え、V−CPU66からの割り込み応答により割り込みイベントをクリアする。
シミュレーション制御部70は、ユーザからの入力に応じてシミュレーションの開始、停止などを制御する。
以上が、本実施の形態のシミュレーション装置においてフレームワーク60内に備えられた機能である。これらは、SystemCなどのCベース言語により記述される。
デバッガ72は、MULTI(米国Green Hills Software, Inc.の商標)やVC++(Microsoft Corporationの登録商標)などによるソフトウェアデバッガである。フレームワーク60とは、デバッグI/F71を用いて通信する。デバッグ結果は、たとえば、GUI(Graphical User Interface)を用いて、図3で示したようなディスプレイ55aに表示する。
エラーログ出力部76は、フレームワーク60のエラー(違法な設定、制限事項違反などの検出結果)、V−RTOS61のエラー(API引数エラー、制限事項違反などの検出結果)、通信エラー(プロトコル違反、リソースオーバーフロー、API引数エラー、制限事項違反などの検出結果)、ハードウェアモデルHWのエラー(プロトコル違反、リソースオーバーフロー、制限事項違反などの検出結果)、外部I/F65のエラー(通信エラーの検出結果)、デバッガ72のエラー(MULTI/VC++との通信エラーの検出結果)、SystemCシミュレータエラー(SystemCシミュレータの例外事象の検出結果)、プラットフォームエラー(Windowsの例外事象の検出結果)などを出力し、たとえば、GUIを用いて、図3で示したようなディスプレイ55aに表示させる。
まず、検証対象ソフトウェアSWのタスクの切り替え時の動作を説明する。
図5は、タスクの切り替え時の動作を示すシーケンス図である。
実行中のタスクAが、タスクBを開始するRTOS API63であるTask_Startサービスをコールすると、RTOS API63を介してフレームワーク60内のOSスケジューラが呼び出される。OSスケジューラは、タスクAの状態をWait状態に設定し、タスクBの状態をRun状態に設定して、ディスパッチャを呼び出す。ディスパッチャは、スケジューラ73に対して、タスクBの開始要求:Wakeup Task Bを発行する。
図6は、検証対象ソフトウェアからハードウェアモデルへの同期アクセス時の動作を示すシーケンス図である。
実行中のタスクAが、ハードウェアモデルHWからデータを読み出すデータ伝送API62のData_Read(同期)サービスをコールすると、データ伝送API62を介してフレームワーク60内の通信チャネル64が呼び出される。通信チャネル64は、Data_Readのイベントを、スケジューラ73を介してハードウェアモデルHWに通知する。
図7は、検証対象ソフトウェアからハードウェアモデルへの非同期アクセス時の動作を示すシーケンス図である。
実行中のハードウェアモデルHWが、データ伝送API68のData_Write(非同期)サービスをコールすると、データ伝送API68を介してフレームワーク60内の通信チャネル64が呼び出される。通信チャネル64は、Data_Writeのデータを通信チャネル64内に保持する。
図8は、タイマが無効の場合のシミュレーション装置の動作を示すシーケンス図である。
タスクAやタスクBに関する検証対象ソフトウェアSWのスケジューラ73上でのシミュレーション時間における遅延時間はゼロとなる。したがって、シミュレーション時間上のある時点で実行可能な全てのソフトウェア処理がシミュレーションされ、それらが終了するとスケジューラ73に戻る。
図9は、タイマが有効の場合のシミュレーション装置の動作を示すシーケンス図である。
たとえば、上記では1つの擬似CPU(V−CPU)を用いたが、マルチCPUに対応して複数設けるようにしてもよい。
11 擬似OS
11a、13a API
12 擬似CPU
13 通信手段
20 スケジューラ
SW 検証対象ソフトウェア
HW1…HWn ハードウェアモデル
Claims (14)
- ターゲットプロセッサ上で動作するソフトウェアと、ハードウェアとの協調動作を検証するシミュレーション装置において、
検証対象の前記ソフトウェアの実行スケジューリングを行う第1のスケジューリング手段と、
前記ハードウェアをシステムレベル設計言語で表現したハードウェアモデルと前記ソフトウェアとの間の通信手段と、
前記第1のスケジューリング手段と前記ハードウェアモデルの実行スケジューリングを行う第2のスケジューリング手段と、
前記第1のスケジューリング手段による前記ソフトウェアの前記実行スケジューリングに応じて、前記第2のスケジューリング手段に実行権を開放する実行権開放手段と、を有し、
前記実行権開放手段は、シミュレーション時間上の特定の時点で実行可能な、全てのソフトウェア処理が終了したときに、前記第2のスケジューリング手段に実行権を開放することを特徴とするシミュレーション装置。 - 前記第1のスケジューリング手段または前記実行権開放手段の機能は、前記ターゲットプロセッサを模擬した擬似CPUと、前記ターゲットプロセッサで使用するOSを模擬した擬似OSとが連携して実行するとともに、前記擬似CPUが前記第2のスケジューリング手段に実行権を開放することを特徴とする請求項1記載のシミュレーション装置。
- 前記ソフトウェアと前記擬似OS間の通信を行うためのAPI、及び前記ソフトウェアと前記ハードウェアモデル間の通信を行うためのAPIを更に有することを特徴とする請求項2記載のシミュレーション装置。
- 前記通信手段は、シミュレーション速度の優先か、シミュレーション精度を優先するかに応じて通信の抽象度を変更することを特徴とする請求項1乃至3のいずれか一項に記載のシミュレーション装置。
- 前記第2のスケジューリング手段は、前記第1のスケジューリング手段と前記ハードウェアモデルの評価タイミングをイベント・ドリブンでスケジューリングすることを特徴とする請求項1乃至4のいずれか一項に記載のシミュレーション装置。
- 前記ソフトウェアの処理時間を前記シミュレーション装置上の処理時間をもとに算出するタイマを更に有し、
前記第2のスケジューリング手段は、算出された前記ソフトウェアの処理時間をもとに、次のシミュレーションプロセスの開始を遅延させることを特徴とする請求項1乃至5のいずれか一項に記載のシミュレーション装置。 - 前記タイマは、前記シミュレーション装置のプロセッサと、前記ターゲットプロセッサとの性能差を換算して、前記ソフトウェアの処理時間を算出することを特徴とする請求項6記載のシミュレーション装置。
- 前記第2のスケジューリング手段は、前記ハードウェアモデルの評価タイミングをイベント・ドリブンでスケジューリングし、前記ソフトウェアの実行中に、前記タイマの値をもとに次のイベント時間に達したことを検知すると、前記ソフトウェアの実行を停止し、スケジューリングされている他のシミュレーションプロセスを実行することを特徴とする請求項6または7記載のシミュレーション装置。
- 入力される制御命令に応じて、前記タイマの機能を有効、または無効にするタイマ制御部を更に有することを特徴とする請求項6乃至8のいずれか一項に記載のシミュレーション装置。
- ターゲットプロセッサ上で動作するソフトウェアと、ハードウェアとの協調動作を検証する処理をコンピュータに機能させるプログラムにおいて、
コンピュータを、
検証対象の前記ソフトウェアの実行スケジューリングを行う第1のスケジューリング手段と、
前記ハードウェアをシステムレベル設計言語で表現したハードウェアモデルと前記ソフトウェアとの間の通信手段と、
前記第1のスケジューリング手段と前記ハードウェアモデルの実行スケジューリングを行う第2のスケジューリング手段と、
前記第1のスケジューリング手段による前記ソフトウェアの前記実行スケジューリングに応じて、前記第2のスケジューリング手段に実行権を開放する実行権開放手段と、して機能させ、
前記実行権開放手段は、シミュレーション時間上の特定の時点で実行可能な、全てのソフトウェア処理が終了したときに、前記第2のスケジューリング手段に実行権を開放することを特徴とするプログラム。 - 前記コンピュータを、前記ソフトウェアの処理時間をシミュレーション装置上の処理時間をもとに算出するタイマとして更に機能させ、
前記第2のスケジューリング手段は、算出された前記ソフトウェアの処理時間をもとに、次のシミュレーションプロセスの開始を遅延させることを特徴とする請求項10記載のプログラム。 - 前記タイマは、前記シミュレーション装置のプロセッサと、前記ターゲットプロセッサとの性能差を換算して、前記ソフトウェアの処理時間を算出することを特徴とする請求項11記載のプログラム。
- 前記第2のスケジューリング手段は、前記ハードウェアモデルの評価タイミングをイベント・ドリブンでスケジューリングし、前記ソフトウェアの実行中に、前記タイマの値をもとに次のイベント時間に達したことを検知すると、前記ソフトウェアの実行を停止し、スケジューリングされている他のシミュレーションプロセスを実行することを特徴とする請求項11または12記載のプログラム。
- 前記コンピュータを、入力される制御命令に応じて、前記タイマの機能を有効、または無効にするタイマ制御部として更に機能させることを特徴とする請求項11乃至13のいずれか一項に記載のプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007189317A JP4975544B2 (ja) | 2007-07-20 | 2007-07-20 | シミュレーション装置及びプログラム |
| US12/155,002 US20090024381A1 (en) | 2007-07-20 | 2008-05-28 | Simulation device for co-verifying hardware and software |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007189317A JP4975544B2 (ja) | 2007-07-20 | 2007-07-20 | シミュレーション装置及びプログラム |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011242985A Division JP5226848B2 (ja) | 2011-11-07 | 2011-11-07 | シミュレーション装置及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2009026113A JP2009026113A (ja) | 2009-02-05 |
| JP4975544B2 true JP4975544B2 (ja) | 2012-07-11 |
Family
ID=40265531
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007189317A Expired - Fee Related JP4975544B2 (ja) | 2007-07-20 | 2007-07-20 | シミュレーション装置及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20090024381A1 (ja) |
| JP (1) | JP4975544B2 (ja) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090055155A1 (en) * | 2007-08-20 | 2009-02-26 | Russell Klein | Simulating execution of software programs in electronic circuit designs |
| JP5374965B2 (ja) * | 2008-08-25 | 2013-12-25 | 富士通株式会社 | シミュレーション制御プログラム、シミュレーション制御装置、およびシミュレーション制御方法 |
| DE102008047915B4 (de) * | 2008-09-19 | 2010-05-12 | Continental Automotive Gmbh | Infotainmentsystem und Computerprogrammprodukt |
| JP5228943B2 (ja) * | 2009-01-27 | 2013-07-03 | 富士通株式会社 | 最小権限違反検出プログラム |
| JP5450271B2 (ja) * | 2010-06-10 | 2014-03-26 | 株式会社東芝 | シミュレーション装置、シミュレーションプログラム及び方法 |
| US10776233B2 (en) * | 2011-10-28 | 2020-09-15 | Teradyne, Inc. | Programmable test instrument |
| US9759772B2 (en) | 2011-10-28 | 2017-09-12 | Teradyne, Inc. | Programmable test instrument |
| US9470759B2 (en) | 2011-10-28 | 2016-10-18 | Teradyne, Inc. | Test instrument having a configurable interface |
| US20130263090A1 (en) * | 2012-03-30 | 2013-10-03 | Sony Online Entertainment Llc | System and method for automated testing |
| US20140156252A1 (en) * | 2012-11-30 | 2014-06-05 | International Business Machines Corporation | Hybrid platform-dependent simulation interface |
| US9015685B2 (en) * | 2013-03-01 | 2015-04-21 | International Business Machines Corporation | Code analysis for simulation efficiency improvement |
| US20150046425A1 (en) * | 2013-08-06 | 2015-02-12 | Hsiu-Ping Lin | Methods and systems for searching software applications |
| WO2015084297A1 (en) * | 2013-12-02 | 2015-06-11 | Intel Corporation | Methods and apparatus to optimize platform simulation resource consumption |
| US10031781B2 (en) * | 2015-11-24 | 2018-07-24 | International Business Machines Corporation | Estimating job start times on workload management systems |
| KR102007881B1 (ko) * | 2017-04-27 | 2019-08-06 | 국방과학연구소 | 빠르고 정확한 실행 시간 예측을 위한 하이브리드 명령어 집합 시뮬레이션 방법 및 시스템 |
| KR102025553B1 (ko) * | 2017-05-18 | 2019-09-26 | 경북대학교 산학협력단 | Rios 기반 임베디드 시스템 소프트웨어 테스트 장치 및 방법 |
| US20210342250A1 (en) * | 2018-09-28 | 2021-11-04 | Siemens Industry Software Nv | Method and aparatus for verifying a software system |
| CN110134504A (zh) * | 2019-04-28 | 2019-08-16 | 北京控制工程研究所 | 一种基于有限状态机的操作系统需求层形式化建模方法及装置 |
| CN114428722B (zh) * | 2020-10-29 | 2025-05-27 | 上海阵量智能科技有限公司 | 硬件仿真方法、装置、设备及存储介质 |
| CN114625023B (zh) * | 2022-01-29 | 2025-08-12 | 北京控制工程研究所 | 一种基于windows系统的分布式实时协同仿真系统及方法 |
| EP4498250A4 (en) * | 2022-03-23 | 2025-12-24 | Toshiba Kk | SIMULATOR FAULT DETERMINATION SYSTEM, METHOD, PROGRAM, AND DISTRIBUTED CO-SIMULATION SYSTEM |
| US20230367923A1 (en) * | 2022-05-10 | 2023-11-16 | Xilinx, Inc. | Framework for system simulation using multiple simulators |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5768567A (en) * | 1996-05-14 | 1998-06-16 | Mentor Graphics Corporation | Optimizing hardware and software co-simulator |
| US7366650B2 (en) * | 2001-04-12 | 2008-04-29 | Arm Limited | Software and hardware simulation |
| JP3951925B2 (ja) * | 2003-01-31 | 2007-08-01 | セイコーエプソン株式会社 | ハードウェア/ソフトウェア協調検証方法 |
| JP2004348291A (ja) * | 2003-05-20 | 2004-12-09 | Sony Corp | シミュレーション装置およびシミュレーション方法 |
| JP2005018623A (ja) * | 2003-06-27 | 2005-01-20 | Sony Corp | シミュレーション装置およびシミュレーション方法 |
| US7711535B1 (en) * | 2003-07-11 | 2010-05-04 | Altera Corporation | Simulation of hardware and software |
| JP4549652B2 (ja) * | 2003-10-27 | 2010-09-22 | パナソニック株式会社 | プロセッサシステム |
| JP2005182359A (ja) * | 2003-12-18 | 2005-07-07 | Renesas Technology Corp | データ処理装置の設計方法及び記録媒体 |
-
2007
- 2007-07-20 JP JP2007189317A patent/JP4975544B2/ja not_active Expired - Fee Related
-
2008
- 2008-05-28 US US12/155,002 patent/US20090024381A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20090024381A1 (en) | 2009-01-22 |
| JP2009026113A (ja) | 2009-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4975544B2 (ja) | シミュレーション装置及びプログラム | |
| US6427224B1 (en) | Method for efficient verification of system-on-chip integrated circuit designs including an embedded processor | |
| US9418181B2 (en) | Simulated input/output devices | |
| US10445445B2 (en) | Sliding time window control mechanism for parallel execution of multiple processor core models in a virtual platform simulation | |
| Bouchhima et al. | Fast and accurate timed execution of high level embedded software using HW/SW interface simulation model | |
| US9600384B2 (en) | System-on-chip verification | |
| Posadas et al. | RTOS modeling in SystemC for real-time embedded SW simulation: A POSIX model | |
| Schirner et al. | Introducing preemptive scheduling in abstract RTOS models using result oriented modeling | |
| US20220374260A1 (en) | Systems, methods, and apparatus for coordinating computation systems | |
| Brandberg et al. | A SimEvents model for the analysis of scheduling and memory access delays in multicores | |
| Wang et al. | Modeling and integration of peripheral devices in embedded systems | |
| Posadas et al. | POSIX modeling in SystemC | |
| US20120197625A1 (en) | Data-dependency-Oriented Modeling Approach for Efficient Simulation of OS Preemptive Scheduling | |
| JP5226848B2 (ja) | シミュレーション装置及びプログラム | |
| CN117971400B (zh) | 一种网卡设备仿真系统、方法、电子设备及存储介质 | |
| CN1312583C (zh) | 仿真装置和仿真方法 | |
| JP6249827B2 (ja) | シミュレーション装置及びシミュレーションプログラム | |
| JP2005018623A (ja) | シミュレーション装置およびシミュレーション方法 | |
| Plyaskin et al. | High-level timing analysis of concurrent applications on MPSoC platforms using memory-aware trace-driven simulations | |
| KR102792243B1 (ko) | 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 os 가상화 장치 및 방법 | |
| Aho | Inter-processor communication in virtualized environment | |
| Bacivarov et al. | ChronoSym: a new approach for fast and accurate SoC cosimulation | |
| US20060259290A1 (en) | Method and system for ASIC simulation | |
| KR102792240B1 (ko) | 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 디바이스 드라이버 가상화 장치 및 방법 | |
| Posadas et al. | Early modeling of linux-based rtos platforms in a systemc time-approximate co-simulation environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100218 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110823 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110906 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111107 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120410 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120411 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4975544 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150420 Year of fee payment: 3 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |