JP3492105B2 - ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法 - Google Patents

ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法

Info

Publication number
JP3492105B2
JP3492105B2 JP22962196A JP22962196A JP3492105B2 JP 3492105 B2 JP3492105 B2 JP 3492105B2 JP 22962196 A JP22962196 A JP 22962196A JP 22962196 A JP22962196 A JP 22962196A JP 3492105 B2 JP3492105 B2 JP 3492105B2
Authority
JP
Japan
Prior art keywords
simulation
event
event occurrence
hardware
software
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
Application number
JP22962196A
Other languages
English (en)
Other versions
JPH1074214A (ja
Inventor
原 雅 己 相
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP22962196A priority Critical patent/JP3492105B2/ja
Priority to US08/919,779 priority patent/US5987243A/en
Publication of JPH1074214A publication Critical patent/JPH1074214A/ja
Application granted granted Critical
Publication of JP3492105B2 publication Critical patent/JP3492105B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ハードウェア/ソ
フトウェア協調シミュレータ及びその方法に係り、特に
ハードウェアとソフトウェアから構成される論理システ
ムを設計する場合に、ハードウェア部分の機能とソフト
ウェア部分の機能を同時に検証する協調シミュレーショ
ンを実現する装置の構成に関する。
【0002】
【従来の技術】近年、プロセッサの高性能化に伴い、従
来ハードウェアでしか性能を満足できなかった機能が、
ソフトウェアでも実現できるようになってきている。こ
のような機能を実現する場合、効率的にシステムを構築
するためには、ハードウェアとソフトウェアのトレード
オフを定量的に見ながら並行設計を行う必要がある。
【0003】以上のような必要から、近年、ハードウェ
アとソフトウェアの協調設計への要求が高まっている。
特に、ハードウェアとソフトウェアの整合性まで含めた
システム全体の機能検証は、設計効率を向上させる上
で、非常に重要であり、このためにはハードウェア部分
の機能と、ソフトウェア部分の機能を同時にシミュレー
ションできる、ハードウェア・ソフトウェア協調シミュ
レータが必須となってくる。
【0004】従来のハードウェア・ソフトウェア協調シ
ミュレータは、VHDLやVerilog−HDLとい
ったハードウェア記述言語のシミュレータを、ハードウ
ェア部分のシミュレータとし、一方で、プロセッサの命
令レベルでの動作を、C言語などで記述したプログラム
を、ソフトウェア部分のシミュレータとし、これらの2
つの異なるシミュレータを同時に動作させながらシミュ
レーションを実行する形式のものが多い。この場合は、
もちろん双方のシミュレータを同期して動作させ、両者
の協調を取る必要がある。その理由は、双方のシミュレ
ータ間でやり取りするイベントが、何時発生するかが、
実際にシミュレーションを実行しないと判明せず、同期
がとれていないと、シミュレータの状態を過去のある時
点の状態まで戻す必要が発生し、そのためのオーバーヘ
ッドが非常に大きくなるためである。
【0005】2つのシミュレータを同期させる方法とし
ては、以下の方法が一般的な手法として知られている。 1)全体の時刻を管理する機能を持たせ、双方のシミュ
レータは、ここからの指示でシミュレーションを実行す
る。 2)一方を、マスタとし、他方をスレーブとして、互い
のシミュレーション時刻情報をやり取りしながら、スレ
ーブ側がマスタ側を追いかけるようにシミュレーション
を実行する。
【0006】以上の各手法のなかで、1)の方法は、最
も簡単に同期を取ることが可能であるが、協調シミュレ
ータ全体として、ある一定の時間刻み単位で時刻が進む
ため、2つのシミュレータの両方に無駄な待ち時間が発
生する。
【0007】一方、2)の方法は、2つのシミュレータ
が、それぞれ次のシミュレーション時刻情報をやり取り
するために、少なくともどちらか一方のシミュレータが
実行される時刻まで、一気にシミュレーション時刻を進
めることができるという利点があるが、依然として、一
方のシミュレータのみが実行している時には、その実行
が終了するまでの間、他方のシミュレータには無駄な待
ち時間が発生してしまうという問題点が残る。
【0008】つまり、従来のシミュレータ装置は、複数
のシミュレータ間で協調シミュレーションを実行する場
合、各シミュレータを独立したプロセスとして実行さ
せ、シミュレータ間でのイベント情報のやり取りをプロ
セス間の通信で実行する場合が多いが、この場合、各シ
ミュレータは、常に他のシミュレータのシミュレーショ
ン時刻を監視しながら、自信のシミュレーション実行を
制御することになるため、全体の同期を取る必要がでて
くる。この場合のオーバーヘッドはかなり大きく、スピ
ード差の大きなシミュレータ間の協調シミュレーション
では、スピードの早いシミュレータは常にスピードの遅
いシミュレータを待つことになり、全体のスピードは、
常に最もスピードの遅いシミュレータに依存することに
なる。
【0009】
【発明が解決しようとする課題】以上述べたように、従
来のシミュレータ装置は、ハードウェアとソフトウェア
から構成される論理システムを設計する場合に、ハード
ウェア部分の機能と、ソフトウェア部分の機能を同時に
検証する目的で使用されるハードウェア・ソフトウェア
協調シミュレータにおいて、ハードウェア部分のシミュ
レータと、ソフトウェア部分のシミュレータの2つの異
なるシミュレータを、双方のシミュレーション時刻を同
期させながら、同時に実行させるように構成されている
ので、双方のシミュレーションの進行状況によっては、
一方のシミュレータに無駄な待ち時間が生じ、シミュレ
ーション時間が長くなってしまうという問題点がある。
【0010】本発明の目的は、上記のような従来技術の
問題点を解消し、ハードウェア部分のシミュレータと、
ソフトウェア部分のシミュレータの、2つのシミュレー
タの間で、イベントのやり取りの発生が予想される時刻
を予め求めておき、その時刻をそれぞれのシミュレータ
に通知することにより、お互いに相手の実行完了を無駄
に待つ時間を削減し、ハードウェア・ソフトウェアの協
調シミュレーションを効率良く実行できるハードウェア
/ソフトウェアの協調シミュレーション装置及びシミュ
レーション方法を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、ハードウェアとソフトウェアから構成さ
れる論理システムを設計する際に用いられる、ハードウ
ェア部分の機能とソフトウェア部分の機能を同時に検証
するハードウェア/ソフトウェア協調シミュレーション
装置であって、ハードウェア部分の動作記述をコンパイ
ルしてシミュレーション用データを生成する第1のコン
パイル手段と、前記第1のコンパイル手段が生成するシ
ミュレーション用データを入力してハードウェア部分の
シミュレーションを実行する第1のシミュレーション手
段と、ソフトウェア部分の動作記述をコンパイルして対
象プロセッサの機械語コードを生成する第2のコンパイ
ル手段と、前記第2のコンパイル手段が生成する機械語
コードを入力してソフトウェア部分のシミュレーション
を実行する第2のシミュレーション手段と、前記第1の
コンパイル手段が生成するシミュレーション用データを
解析して前記第1のシミュレーション手段から前記第2
のシミュレーション手段へ出力されるイベントの発生す
るイベント発生時刻情報を抽出する第1のイベント発生
時刻情報抽出手段と、前記第2のコンパイル手段が生成
する機械語コードを解析して前記第2のシミュレーショ
ン手段から前記第1のシミュレーション手段へ出力され
るイベントの発生する命令の位置からイベント発生時刻
情報を抽出する第2のイベント発生時刻情報抽出手段
と、前記第1のイベント発生時刻情報抽出手段により抽
出されたイベント発生時刻情報を元にイベント発生予定
時刻を計算して前記第2のシミュレーション手段に通知
する第1のイベント発生予定時刻通知手段と、前記第2
のイベント発生時刻情報抽出手段により抽出されたイベ
ント発生時刻情報を元にイベント発生予定時刻を計算し
て前記第1のシミュレーション手段に通知する第2のイ
ベント発生予定時刻通知手段と、を具備し、前記第1の
シミュレーション手段は、第2のイベント発生予定時刻
通知手段から通知されたイベント発生予定時刻になった
ら、前記第1のコンパイル手段が生成するシミュレーシ
ョン用データによるハードウェア部分のシミュレーショ
ンの実行状態から、前記第2のシミュレーション手段か
らのイベントを待つ状態に移行し、イベントが入力され
たらこれを処理する手段であり、前記第2のシミュレー
ション手段は、第1のイベント発生予定時刻通知手段か
ら通知されたイベント発生予定時刻になったら、前記第
2のコンパイル手段が生成する機械語コードによるソフ
トウェア部分のシミュレーションの実行状態から、前記
第1のシミュレーション手段からのイベントを待つ状態
に移行し、イベントが入力されたらこれを処理する手段
である、ことを特徴とするハードウェア/ソフトウェア
協調シミュレーション装置を提供するものである。さら
に、本発明は、ハードウェアとソフトウェアから構成さ
れる論理システムを設計する際に実行される、ハードウ
ェア部分の機能とソフトウェア部分の機能を同時に検証
するハードウェア/ソフトウェア協調シミュレーション
装置によるハードウェア/ソフトウェア協調シミュレー
ション方法であって、ハードウェア/ソフトウェア協調
シミュレーション装置における、第1のコンパイル手段
が、ハードウェア部分の動作記述をコンパイルしてシミ
ュレーション用データを生成するステップと、第2のコ
ンパイル手段が、ソフトウェア部分の動作記述をコンパ
イルして対象プロセッサの機械語コードを生成するステ
ップと、第1のイベント発生時刻情報抽出手段が、前記
第1のコンパイル手段が生成したシミュレーション用デ
ータを解析して、前記第1のコンパイル手段が生成する
シミュレーション用データを入力してハードウェア部分
のシミュレーションを実行する第1のシミュレーション
手段から、前記第2のコンパイル手段が生成する機械語
コードを入力してソフトウェア部分のシミュレーション
を実行する第2のシミュレーション手段へ出力されるイ
ベントのイベント発生時刻情報を抽出するステップと、
第2のイベント発生時刻情報抽出手段が、前記第2のコ
ンパイル手段が生成した機械語コードを解析して前記第
2のシミュレーション手段から前記第1のシミュレーシ
ョン手段へ出力されるイベントのイベント発生時刻情報
を抽出するステップと、第1のイベント発生予定時刻通
知手段が、前記第1のイベント発生時刻情報抽出手段が
抽出したイベント発生時刻情報を元にイベント発生予定
時刻を計算して前記第2のシミュレーション手段に通知
するステップと、第2のイベント発生予定時刻通知手段
が、前記第2のイベント発生時刻情報抽出手段が抽出し
たイベント発生時刻情報を元にイベント発生予定時刻を
計算して前記第1のシミュレーション手段に通知するス
テップと、前記第1のシミュレーション手段が、前記第
2のイベント発生予定時刻通知手段から通知されたイベ
ント発生予定時刻になったら、前記第1のコンパイル手
段が生成するシミュレーション用データによるハードウ
ェア部分のシミュレーションの実行状態から、前記第2
のシミュレーション手段からのイベントを待つ状態に移
行し、イベントが入力されたらこれを処理するステップ
と、前記第2のシミュレーション手段が、前記第1のイ
ベント発生予定時刻通知手段から通知されたイベント発
生予定時刻になったら、前記第2のコンパイル手段が生
成する機械語コードによるソフトウェア部分のシミュレ
ーションの実行状態から、前記第1のシミュレーション
手段からのイベントを待つ状態に移行し、イベントが入
力されたらこれを処理するステップと、を有することを
特徴とするハードウェア/ソフトウェア協調シミュレー
ション方法を提供するものである。
【0012】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を説明する。
【0013】図1は、本発明の実施例1に係るシミュレ
ータのブロック図である。
【0014】図において示すように、協調シミュレータ
1は、ハードウェアとソフトウェアから構成される論理
システムのハードウェア部分の動作記述aをコンパイル
して、シミュレーション用データbを生成するコンパイ
ル手段2と、コンパイル手段2が生成するシミュレーシ
ョン用データbを入力してハードウェア部分のシミュレ
ーションを実行するシミュレーション手段3と、ソフト
ウェア部分の動作記述cをコンパイルして対象プロセッ
サの機械語コードdを生成するコンパイル手段4と、コ
ンパイル手段4が生成する機械語コードdを入力してソ
フトウェア部分のシミュレーションを実行するシミュレ
ーション手段5と、コンパイル手段2が生成するシミュ
レーション用データbを解析してシミュレーション手段
3からシミュレーション手段5へのイベント発生時刻情
報eを抽出するイベント発生予定時刻抽出手段6と、コ
ンパイル手段4が生成する機械語コードdを解析してシ
ミュレーション手段5からシミュレーション手段3への
イベント発生時刻情報fを抽出するイベント発生予定時
刻抽出手段7と、シミュレーション手段3に付加し、イ
ベント発生予定時刻抽出手段6により抽出されたイベン
ト発生時刻情報eを基にイベント発生予定時刻を計算し
てシミュレーション手段5に通知するイベント時刻通知
手段8と、シミュレーション手段5に付加し、イベント
発生予定時刻抽出手段7により抽出されたイベント発生
時刻情報fを基にイベント発生予定時刻を計算してシミ
ュレーション手段3に通知するイベント時刻通知手段9
と、から構成されている。
【0015】図2は、図1の構成の動作を説明するため
のフローチャートであるが、次に、図2に基づいて、図
1の構成における協調シミュレータ1のハードウェア・
ソフトウェア協調シミュレーションの手順について説明
する。
【0016】最初に、ステップS1において、コンパイ
ル手段2は、ハードウェア部分の動作記述aをコンパイ
ルし、コンパイル手段4は、ソフトウェア部分の動作記
述cをコンパイルする。
【0017】続いて、ステップS2において、イベント
発生予定時刻抽出手段6ならびに7は、ステップS1で
各コンパイル手段2および4が生成した機械語コードb
および機械語コードdのそれぞれを使って、シミュレー
タ間でやり取りされるイベントのイベント発生時刻情報
eおよびfを抽出する。なお、このイベント発生時刻抽
出の手法については後に説明する。
【0018】更に、ステップS3において、イベント発
生予定時刻抽出手段6および7は、それぞれステップS
2において抽出したイベント発生時刻情報eおよびfか
ら、最初のイベント発生時刻を計算して、シミュレーシ
ョン手段3および5に通知する。なお、このイベント発
生予定時刻の計算方法についても後に説明する。
【0019】次に、ステップS4において、シミュレー
ション手段3および5は、それぞれシミュレーション用
データbおよび機械語コードdを読み込んで、1時刻分
のシミュレーションを実行する。この時、ステップS3
で通知したイベント発生予定時刻に変更が生じれば、新
たなイベント発生予定時刻を通知する。
【0020】しかる後に、ステップS5において、各シ
ミュレーション手段3および5は、それぞれのシミュレ
ーション時刻が、それぞれのシミュレーション終了時刻
になったか否かを検査する。この検査の結果、シミュレ
ーション時刻が終了時刻でない場合は、ステップS6に
移り、各シミュレーション手段3および5は、それぞれ
のシミュレーション時刻がステップS3で通知されたイ
ベント発生予定時刻になったか否かを検査する。そし
て、ステップS6の動作中に、イベント発生予定時刻に
なった場合、ステップS7に移行し、他のシミュレーシ
ョン手段からのイベントを待ち、イベントが入力された
らこれを処理し、ステップS3に戻って、新たに次のイ
ベント発生予定時刻を通知してシミュレーションを継続
する。
【0021】なお、ステップS6で、イベント発生予定
時刻でない場合は、ステップS4に戻ってシミュレーシ
ョンを継続する。
【0022】以上のようにして、ハードウェア・ソフト
ウェア協調シミュレーションを実行し、最終的に、ステ
ップS5でシミュレーション時刻が終了時刻になった場
合、ここでハードウェア・ソフトウェア協調シミュレー
ションの処理を終了する。
【0023】図3は、ソフトウェア部分の動作記述c
を、コンパイル手段4でコンパイルして生成される機械
語コードdの一例を示す説明図であり、対象プロセッサ
の命令201〜209の列で示している。
【0024】図3において、命令201は定数のセッ
ト、命令204、207、209はプロセッサ内部レジ
スタの演算、命令205、208は分岐命令であり、い
ずれもプロセッサ内部のみで処理が完了するが、命令2
02、203は、メモリからのデータロード、命令20
6は出力ポートへのデータ出力であり、シミュレーショ
ン手段3へのイベントが発生する。
【0025】以上のように、機械語コードdを解析する
ことにより、容易にシミュレーション手段3へのイベン
トが発生する命令の位置を抽出することができ、プロセ
ッサのクロック周期から、その時刻を特定することが可
能である。また、分岐および収斂の位置についても、同
様にして、容易に抽出可能である。
【0026】図4は、ハードウェア部分の動作記述a
を、シミュレーション手段3でシミュレーションする際
に与えるテストベクトルの例を示す説明図であり、信号
A、B、Cに対してテストパターンを与える時刻および
値を指定している。
【0027】図4では、それぞれの時刻100nse
c、520nsec、892nsecに、信号A、B、
Cに対して、それぞれ(1、0、0)、(0、0、
1)、(1、1、1)を与えることを示している。そし
て、時刻100nsec、520nsec、892ns
ecでは、信号A、B、Cに上記のそれぞれの値を設定
してシミュレーションを実行するため、その時刻、もち
ろん遅延がある場合は、その遅延分だけ遅れた時刻に、
シミュレーション手段5へのイベントが発生する可能性
がある。しかし、それ以外の時刻には、信号変化が生じ
ないため、シミュレーションは実行されずイベントが発
生することはない。したがって、テストベクトルを解析
し、指定されている時刻をイベント発生時刻情報eとし
て抽出すればよい。
【0028】ただし、ハードウェア部分の動作記述aに
内部クロックが含まれる場合、この内部クロックによっ
てもシミュレーションが実行され、シミュレーション手
段5へのイベントが発生する可能性がある。内部クロッ
クについては、ハードウェア部分の動作記述aをコンパ
イル手段2でコンパイルして生成されるシミュレーショ
ン用データbを解析することで、含まれるか否かを検査
でき、含む場合には、周期情報を抽出すればクロックイ
ベントが生じる時刻がわかるので、これもイベント発生
時刻情報eとして抽出しておけばよい。
【0029】次に、ステップS3のイベント発生予定時
刻の計算方法について説明する。
【0030】イベント時刻通知手段8は、イベント発生
予定時刻抽出手段6で抽出したイベント発生時刻情報e
を、そのままイベント発生予定時刻として、シミュレー
ション手段5に通知する。信号に遅延が生じる場合は、
イベント発生時刻情報eにこの遅延を加えた時刻をイベ
ント発生予定時刻として通知する。
【0031】一方、イベント時刻通知手段9は、イベン
ト発生予定時刻抽出手段7で抽出した命令の相対位置情
報にクロック周期および、その命令が使用するクロック
数を乗じることにより、イベント発生予定時刻を計算す
る。ここで、注意すべきは、イベント発生時刻情報fが
そのまま使えるのは、機械語コードdに条件分岐や、ル
ープがない場合に限られるということである。
【0032】図5は、機械語コードdに条件分岐や、ル
ープが含まれる場合の、イベント発生予定時刻の計算方
法についての説明図であり、白丸はプロセッサが内部で
処理完了する命令、黒丸はシミュレーション手段3への
イベントが発生する可能性のある命令を示している。な
お、図5(A)は条件分岐が含まれる場合を、同図
(B)はループが含まれる場合をそれぞれ示している。
【0033】まず、条件分岐が含まれる場合、シミュレ
ーションの初めの時点、つまり命令301を実行した時
点で、命令311を実行する時刻を計算し、イベント発
生予定時刻としてイベント時刻通知手段9からシミュレ
ーション手段3に通知しておく。命令311が実行され
ると、次のイベント発生予定時刻を通知する必要がある
が、命令302が条件分岐命令であり、命令312と命
令313のいずれが実行されるかは、この時点では不定
である。
【0034】この場合、相対位置が命令311に近い方
の命令が実行される時刻をイベント発生予定時刻として
通知しておき、命令303が実行された時点で、分岐の
方向が予想と違っていたと判断し、命令313が実行さ
れる時刻をイベント発生予定時刻として通知し直すよう
にしておく。
【0035】一方、ループが含まれる場合、シミュレー
ションの初めの時点、つまり命令命令304を実行した
時点で、命令314を実行する時刻をイベント発生予定
時刻としてイベント時刻通知手段9からシミュレーショ
ン手段3に通知しておく。命令314が実行されると、
次のイベント発生予定時刻を通知する必要があるが、命
令306で命令305に戻るようなループを構成してい
るため、仮に命令315の相対位置が近くても、命令3
14が実行される時刻をイベント発生予定時刻として通
知する。
【0036】条件分岐とループが組み合わさった場合で
も、上述したそれぞれの方法を組み合わせることによ
り、イベント発生予定時刻を正しく計算することができ
る。
【0037】以上説明してきたように、シミュレーショ
ン手段3および5は、相互の間でのイベントが発生する
時刻までは、それぞれ独立にシミュレーションを実行
し、しかも互いに相手のシミュレーションの実行状況に
より無駄に待たされることがなくなるため、結果的にシ
ミュレーション時間が短縮されるという効果がある。
【0038】図6は、本発明における効果の説明図であ
り、(A)は従来の方式による場合を、(B)は本発明
による場合をそれぞれ示している。図は、上から下に向
かって時間の流れを示しており、実線はソフトウェアS
W、ハードウェアHWのそれぞれのシミュレーションの
実行中を示しており、破線はソフトウェアSW、ハード
ウェアHWの待機中を示している。
【0039】図6(A)に示すように、従来方式では、
ソフトウェアSW、ハードウェアHW共に、相互の処理
に基づくイベントを待ちながら、自己のシミュレーショ
ンを実行するために、ソフトウェアSW、ハードウェア
HWともにシミュレーションに待ち時間が発生し、無駄
な待ち時間が発生することが分かる。
【0040】これに対して、図6(B)に示すように、
本発明の方式によれば、ソフトウェアSW、ハードウェ
アHW共に、イベントのやり取りがない限り、それぞれ
のシミュレーションを個別に実行するため、相手のシミ
ュレーションの実行完了をまつための無駄な時間が発生
せず、全体のシミュレーション時間が大幅に短縮され
る。
【0041】なお、上記実施例では、ハードウェア・ソ
フトウェアの協調シミュレーションの場合を例示した
が、本発明の思想は、ハードウェア間の協調シミュレー
ションや、ソフトウェア間の協調シミュレーションに対
しても、同様に適用可能であることはもちろんである。
【0042】また、上記実施例では、ハードウェアシミ
ュレータと、ソフトウェアシミュレータの2つのシミュ
レータの間の協調シミュレーションを例示したが、本発
明は、更に多くのハードウェアおよびソフトウェアのシ
ミュレータ間の協調シミュレーションにおいても同様に
適用可能である。
【0043】
【発明の効果】以上述べたように、本発明によれば、予
めシミュレーションデータを解析して、複数の異なるシ
ミュレータ間で、イベント授受の発生が予想される時刻
を計算し、その時刻を予め他のシミュレータに通知する
ように構成したので、シミュレータ間でイベント授受が
発生しない間は、各シミュレータは常時他のシミュレー
タの進行状況に関係なく、それぞれ独立にシミュレーシ
ョンを実行することが可能になるため、他のシミュレー
タの実行を無駄に待つ時間を削減することが可能とな
り、ハードウェア・ソフトウェア協調シミュレーション
を効率的に実行することができるという効果がある。
【図面の簡単な説明】
【図1】本発明のシミュレータの実施形を示すブロック
図である。
【図2】図1の構成の動作を説明するためのフローチャ
ートである。
【図3】ソフトウェア部分の記述動作を、コンパイルし
て生成される機械語コードの一部を示す説明図である。
【図4】ハードウェア部分の記述動作を、シミュレーシ
ョンする際に与えるテストベクトルの一例の説明図であ
る。
【図5】機械語コードに分岐やループが含まれる場合の
イベント発生予定時刻の計算方法についての説明図であ
る。
【図6】本発明のシミュレータ装置による処理時間を、
従来例との比較において示す説明図である。
【符号の説明】
1 協調シミュレータ 2、4 コンパイル手段 3、5 シミュレーション手段 6、7 イベント発生予定時刻抽出手段 8、9 イベント時刻通知手段
フロントページの続き (56)参考文献 松本幸則、外1名,バーチャルタイム による並列論理シミュレーション,情報 処理学会論文誌,日本,社団法人情報処 理学会,1992年 3月15日,第33巻 第 3号,387−396 世古忠、外1名,並列論理シミュレー ションにおけるロールバックについて, 日本,情報処理学会研究報告,情報処理 学会,1993年12月17日,Vol.93,N o.111(ARC−103,DA−69), p.39−46 (58)調査した分野(Int.Cl.7,DB名) G06F 17/50 664

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】ハードウェアとソフトウェアから構成され
    る論理システムを設計する際に用いられる、ハードウェ
    ア部分の機能とソフトウェア部分の機能を同時に検証す
    るハードウェア/ソフトウェア協調シミュレーション装
    置であって、 ハードウェア部分の動作記述をコンパイルしてシミュレ
    ーション用データを生成する第1のコンパイル手段と、 前記第1のコンパイル手段が生成するシミュレーション
    用データを入力してハードウェア部分のシミュレーショ
    ンを実行する第1のシミュレーション手段と、 ソフトウェア部分の動作記述をコンパイルして対象プロ
    セッサの機械語コードを生成する第2のコンパイル手段
    と、 前記第2のコンパイル手段が生成する機械語コードを入
    力してソフトウェア部分のシミュレーションを実行する
    第2のシミュレーション手段と、 前記第1のコンパイル手段が生成するシミュレーション
    用データを解析して前記第1のシミュレーション手段か
    ら前記第2のシミュレーション手段へ出力されるイベン
    トの発生するイベント発生時刻情報を抽出する第1のイ
    ベント発生時刻情報抽出手段と、 前記第2のコンパイル手段が生成する機械語コードを解
    析して前記第2のシミュレーション手段から前記第1の
    シミュレーション手段へ出力されるイベントの発生する
    命令の位置からイベント発生時刻情報を抽出する第2の
    イベント発生時刻情報抽出手段と、 前記第1のイベント発生時刻情報抽出手段により抽出さ
    れたイベント発生時刻情報を元にイベント発生予定時刻
    を計算して前記第2のシミュレーション手段に通知する
    第1のイベント発生予定時刻通知手段と、 前記第2のイベント発生時刻情報抽出手段により抽出さ
    れたイベント発生時刻情報を元にイベント発生予定時刻
    を計算して前記第1のシミュレーション手段に通知する
    第2のイベント発生予定時刻通知手段と、を具備し、 前記第1のシミュレーション手段は、第2のイベント発
    生予定時刻通知手段から通知されたイベント発生予定時
    刻になったら、前記第1のコンパイル手段が生成するシ
    ミュレーション用データによるハードウェア部分のシミ
    ュレーションの実行状態から、前記第2のシミュレーシ
    ョン手段からのイベントを待つ状態に移行し、イベント
    が入力されたらこれを処理する手段であり、 前記第2のシミュレーション手段は、第1のイベント発
    生予定時刻通知手段から通知されたイベント発生予定時
    刻になったら、前記第2のコンパイル手段が生成する機
    械語コードによるソフトウェア部分のシミュレーション
    の実行状態から、前記第1のシミュレーション手段から
    のイベントを待つ状態に移行し、イベントが入力された
    らこれを処理する手段である、 ことを特徴とするハードウェア/ソフトウェア協調シミ
    ュレーション装置。
  2. 【請求項2】前記第2のイベント発生時刻情報抽出手段
    は、機械語コードの各命令を解析してプロセッサ内部で
    処理が完了する命令と、プロセッサ外部に影響を及ぼす
    命令とに分類し、プロセッサ外部に影響を及ぼす命令ど
    うしの相対位置をイベント発生時刻情報として抽出する
    手段であることを特徴とする、請求項1記載のハードウ
    ェア/ソフトウェア協調シミュレーション装置。
  3. 【請求項3】前記第2のイベント発生時刻情報抽出手段
    は、機械語コードの各命令を解析することによりプロセ
    ッサ外部に影響を及ぼす命令どうしの相対位置に加え、
    命令の分岐および収れんの相対位置をもイベント発生時
    刻情報として抽出する手段であることを特徴とする請求
    項2記載のハードウェア/ソフトウェア協調シミュレー
    ション装置。
  4. 【請求項4】前記第1のイベント発生時刻情報抽出手段
    は、シミュレーション用データに加えて前記第1のシミ
    ュレーション手段に対して与えられたテストベクトル
    指定された時刻情報を解析し、前記テストベクトルが前
    記第1のシミュレーション手段に対して与えられたこと
    によって生じる前記第1のシミュレーション手段から前
    記第2のシミュレーション手段へ出力されるイベントの
    発生時刻をイベント発生時刻情報として抽出することを
    特徴とする請求項1記載のハードウェア/ソフトウェア
    協調シミュレーション装置。
  5. 【請求項5】ハードウェアとソフトウェアから構成され
    る論理システムを設計する際に実行される、ハードウェ
    ア部分の機能とソフトウェア部分の機能を同時に検証す
    るハードウェア/ソフトウェア協調シミュレーション装
    置によるハードウェア/ソフトウェア協調シミュレーシ
    ョン方法であって、 ハードウェア/ソフトウェア協調シミュレーション装置
    における、 第1のコンパイル手段が、ハードウェア部分の動作記述
    をコンパイルしてシミュレーション用データを生成する
    ステップと、 第2のコンパイル手段が、ソフトウェア部分の動作記述
    をコンパイルして対象プロセッサの機械語コードを生成
    するステップと、 第1のイベント発生時刻情報抽出手段が、前記第1のコ
    ンパイル手段が生成したシミュレーション用データを解
    析して、前記第1のコンパイル手段が生成するシミュレ
    ーション用データを入力してハードウェア部分のシミュ
    レーションを実行する第1のシミュレーション手段か
    ら、前記第2のコンパイル手段が生成する機械語コード
    を入力してソフトウェア部分のシミュレーションを実行
    する第2のシミュレーション手段へ出力されるイベント
    のイベント発生時刻情報を抽出するステップと、 第2のイベント発生時刻情報抽出手段が、前記第2のコ
    ンパイル手段が生成した機械語コードを解析して前記第
    2のシミュレーション手段から前記第1のシミュレーシ
    ョン手段へ出力されるイベントのイベント発生時刻情報
    を抽出するステップと、 第1のイベント発生予定時刻通知手段が、前記第1のイ
    ベント発生時刻情報抽出手段が抽出したイベント発生時
    情報を元にイベント発生予定時刻を計算して前記第2
    のシミュレーション手段に通知するステップと、 第2のイベント発生予定時刻通知手段が、前記第2のイ
    ベント発生時刻情報抽出手段が抽出したイベント発生
    刻情報を元にイベント発生予定時刻を計算して前記第1
    のシミュレーション手段に通知するステップと、 前記第1のシミュレーション手段が、前記第2のイベン
    ト発生予定時刻通知手段から通知されたイベント発生予
    定時刻になったら、前記第1のコンパイル手段が生成す
    るシミュレーション用データによるハードウェア部分の
    シミュレーションの実行状態から、前記第2のシミュレ
    ーション手段からのイベントを待つ状態に移行し、イベ
    ントが入力されたらこれを処理するステップと、 前記第2のシミュレーション手段が、前記第1のイベン
    ト発生予定時刻通知手段から通知されたイベント発生予
    定時刻になったら、前記第2のコンパイル手段が生成す
    る機械語コードによるソフトウェア部分のシミュレーシ
    ョンの実行状態から、前記第1のシミュレーション手段
    からのイベントを待つ状態に移行し、イベントが入力さ
    れたらこれを処理するステップと、 を有することを特徴とするハードウェア/ソフトウェア
    協調シミュレーション方法。
JP22962196A 1996-08-30 1996-08-30 ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法 Expired - Fee Related JP3492105B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22962196A JP3492105B2 (ja) 1996-08-30 1996-08-30 ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法
US08/919,779 US5987243A (en) 1996-08-30 1997-08-29 Hardware and software co-simulator and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22962196A JP3492105B2 (ja) 1996-08-30 1996-08-30 ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法

Publications (2)

Publication Number Publication Date
JPH1074214A JPH1074214A (ja) 1998-03-17
JP3492105B2 true JP3492105B2 (ja) 2004-02-03

Family

ID=16895068

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22962196A Expired - Fee Related JP3492105B2 (ja) 1996-08-30 1996-08-30 ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法

Country Status (2)

Country Link
US (1) US5987243A (ja)
JP (1) JP3492105B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249880B1 (en) * 1998-09-17 2001-06-19 Bull Hn Information Systems Inc. Method and apparatus for exhaustively testing interactions among multiple processors
CA2370283C (en) 1999-04-16 2012-07-17 Entelos, Inc. Method and apparatus for conducting linked simulation operations utilizing a computer-based system model
US6272451B1 (en) 1999-07-16 2001-08-07 Atmel Corporation Software tool to allow field programmable system level devices
US6470481B2 (en) * 1999-07-29 2002-10-22 Michael C. Brouhard State management in a co-verification system
US6973417B1 (en) * 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
US6879948B1 (en) * 1999-12-14 2005-04-12 Silicon Graphics, Inc. Synchronization of hardware simulation processes
US6453450B1 (en) 2000-02-02 2002-09-17 International Business Machines Corporation Timing diagram compiler and runtime environment for interactive generation of executable test programs for logic verification
US20010027387A1 (en) * 2000-03-30 2001-10-04 Hideaki Miyake Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
AU2001266660A1 (en) * 2000-06-02 2001-12-17 Virtio Corporation Method and system for virtual prototyping
US20040143813A1 (en) * 2001-05-30 2004-07-22 Kentaro Hanma System development supporting apparatus, system development supporting method, and computer-readable recorded medium
US6668312B2 (en) * 2001-12-21 2003-12-23 Celoxica Ltd. System, method, and article of manufacture for dynamically profiling memory transfers in a program
US6993734B2 (en) * 2003-02-20 2006-01-31 International Business Machines Corporatioin Use of time step information in a design verification system
US7519525B2 (en) * 2004-05-11 2009-04-14 International Business Machines Corporation Post initial microcode load co-simulation method, system, and program product
JP4599266B2 (ja) * 2005-09-27 2010-12-15 株式会社東芝 シミュレーション装置及びシミュレーション方法
US8473269B1 (en) * 2007-02-27 2013-06-25 Xilinx, Inc. System-level hardware and software development and co-simulation system
US8265917B1 (en) * 2008-02-25 2012-09-11 Xilinx, Inc. Co-simulation synchronization interface for IC modeling
JP5228552B2 (ja) * 2008-03-18 2013-07-03 富士通セミコンダクター株式会社 プロセス間通信機構
JP5153465B2 (ja) * 2008-06-09 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP5460010B2 (ja) * 2008-09-30 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP4852629B2 (ja) * 2009-06-02 2012-01-11 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション・システム、方法及びプログラム
JP5492704B2 (ja) * 2010-08-27 2014-05-14 株式会社日立情報通信エンジニアリング ハードウェア−ソフトウェア協調検証システム、方法、及びプログラム
JP5528294B2 (ja) * 2010-10-20 2014-06-25 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション制御方法、システム及びプログラム
KR101818760B1 (ko) * 2011-07-22 2018-01-15 삼성전자주식회사 시뮬레이션 장치 및 그의 시뮬레이션 방법
JP6184217B2 (ja) * 2013-07-19 2017-08-23 サイプレス セミコンダクター コーポレーション シミュレーション制御方法、シミュレーション制御プログラム、およびシミュレーション制御装置
JP6249827B2 (ja) * 2014-03-06 2017-12-20 三菱電機株式会社 シミュレーション装置及びシミュレーションプログラム
JP6248820B2 (ja) * 2014-06-16 2017-12-20 富士電機株式会社 連携シミュレーション装置
JP6712934B2 (ja) * 2016-08-31 2020-06-24 株式会社日立ソリューションズ データ分析装置及びデータ分析方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3669223A (en) * 1970-09-04 1972-06-13 Carter H Arnold Rope gripping device
US4951195A (en) * 1988-02-01 1990-08-21 International Business Machines Corporation Condition code graph analysis for simulating a CPU processor
US5313614A (en) * 1988-12-06 1994-05-17 At&T Bell Laboratories Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems
US5493672A (en) * 1994-05-16 1996-02-20 Sun Microsystems, Inc. Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
世古忠、外1名,並列論理シミュレーションにおけるロールバックについて,日本,情報処理学会研究報告,情報処理学会,1993年12月17日,Vol.93,No.111(ARC−103,DA−69),p.39−46
松本幸則、外1名,バーチャルタイムによる並列論理シミュレーション,情報処理学会論文誌,日本,社団法人情報処理学会,1992年 3月15日,第33巻 第3号,387−396

Also Published As

Publication number Publication date
JPH1074214A (ja) 1998-03-17
US5987243A (en) 1999-11-16

Similar Documents

Publication Publication Date Title
JP3492105B2 (ja) ハードウェア/ソフトウェア協調シミュレーション装置及びシミュレーション方法
KR100921314B1 (ko) 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
JPH10171847A (ja) エミュレーションとシミュレーションを用いた設計検証のための方法および装置
US20070168893A1 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
Pérez et al. A new optimized implementation of the SystemC engine using acyclic scheduling
Williamson et al. Synthesis of parallel hardware implementations from synchronous dataflow graph specifications
JP2004013720A (ja) 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法
Mishra et al. Synthesis-driven exploration of pipelined embedded processors
Emami et al. Manticore: Hardware-accelerated RTL simulation with static bulk-synchronous parallelism
Pellauer et al. A-Ports: An efficient abstraction for cycle-accurate performance models on FPGAs
CN117113890A (zh) 一种cpu芯片设计方法及系统
Kim et al. A new distributed event-driven gate-level HDL simulation by accurate prediction
Pellauer et al. A-port networks: Preserving the timed behavior of synchronous systems for modeling on fpgas
Valderrama et al. Automatic VHDL-C interface generation for distributed cosimulation: Application to large design examples
George et al. An Integrated Simulation Environment for Parallel and Distributed System Prototying
JP2001290860A (ja) ハードウエア/ソフトウエア協調シミュレータ
Cheung et al. Framework for fast and accurate performance simulation of multiprocessor systems
Kupriyanov et al. Efficient event-driven simulation of parallel processor architectures
Lund Design and Application of a Co-Simulation Framework for Chisel
Ludwig et al. Property-driven development of a RISC-V CPU
KR102493046B1 (ko) 예측데이터 가변화를 통한 예측기반 병렬 게이트수준 타이밍 로직 시뮬레이션에서의 성능 향상 방법
JPH0916642A (ja) データ処理装置のアーキテクチャ評価方法
Lin et al. A fast and accurate instruction-oriented processor simulation approach
Famorzadeh et al. Rapid prototyping of digital systems with cots/asic components

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071114

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081114

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees