JP2002366602A - ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム - Google Patents

ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム

Info

Publication number
JP2002366602A
JP2002366602A JP2002062576A JP2002062576A JP2002366602A JP 2002366602 A JP2002366602 A JP 2002366602A JP 2002062576 A JP2002062576 A JP 2002062576A JP 2002062576 A JP2002062576 A JP 2002062576A JP 2002366602 A JP2002366602 A JP 2002366602A
Authority
JP
Japan
Prior art keywords
model
simulation
hardware
hdl
computer
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.)
Withdrawn
Application number
JP2002062576A
Other languages
English (en)
Inventor
Makoto Kudo
真 工藤
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002062576A priority Critical patent/JP2002366602A/ja
Priority to US10/102,884 priority patent/US20040015887A1/en
Publication of JP2002366602A publication Critical patent/JP2002366602A/ja
Withdrawn 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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 互いに関連して動作するソフトウエア及びハ
ードウエアのシミュレーションを行う場合に、ソフトウ
エアのデバッグ機能とハードウエアのシミュレーション
機能とを容易にリンクさせることができるシミュレーシ
ョン方法等を提供する。 【解決手段】 第1のコンピュータにおいて、デバッガ
13を用いてソフトウエアのデバッグを行うと共に、ハ
ードウエアのシミュレーションに用いるコマンドを発生
して第2のコンピュータに送信する。第2のコンピュー
タにおいて、コマンドをHDLシミュレータ24に受信
し、HDLシミュレータを用いて、受信したコマンドを
HDLで作成されたハードウエアのシミュレーションモ
デル25に含まれるバスインターフェースモデル31に
入力することにより、ソフトウエアのデバッグと協調し
てハードウエアのシミュレーションを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、互いに関連して動
作するソフトウエア及びハードウエアのシミュレーショ
ンを行う方法及びシステムに関し、特に、ソフトウエア
のデバッガがハードウエアのHDLシミュレータとリン
クされ、ソフトウエアをデバッグすると共にハードウエ
アデザインのチェックを行うことができるシミュレーシ
ョン方法及びシミュレーションシステムに関する。さら
に、本発明は、このようなシミュレーション方法を用い
るシミュレーションプログラムを記録した記録媒体に関
する。
【0002】
【従来の技術】一般的に、マイコンが搭載されたプリン
タ等の機器においては、CPUと、CPUを動作させる
ために用いられるプログラムのようなC言語やアセンブ
ラで作成されたソフトウエアを記憶するROMと、デー
タを一時的に記憶するRAMと、ユーザの仕様に合わせ
て設計されたロジック回路等のハードウエアを含むAS
ICとが実装されたマイコンボードが使用される。この
ようなマイコンボードの動作シミュレーションを行うた
めには、ソフトウエアとハードウエアの両方について連
携しながらシミュレーションを行うことが望ましい。こ
のようなシミュレーションを、ソフトウエアとハードウ
エアのコシミュレーション(協調シミュレーション)と
いう。
【0003】図6に、コシミュレーションにおいて用い
られる従来のシミュレーションプログラムの構成を示
す。C言語で作成されソフトウエアのデバッグ機能を有
するPLI(プログラムランゲージインターフェース)
部61と、同じくC言語で作成されハードウエアのシミ
ュレーション機能を有するHDL(ハードウエアデスク
リプションランゲージ)シミュレータ部62とをリンク
させて、1つの実行ファイルとしたものが使用される。
また、マイコンボードに実装されるASIC、ROM、
RAM、及び、バスインターフェース(BUS I/
F)のシミュレーションモデル63が、HDLで作成さ
れる。
【0004】PLI部61には、デバッガの機能(プロ
グラム実行、ブレークポイント、メモリダンプ、グラフ
ィカルユーザインターフェース(GUI)等)や、CP
Uコアと同じ動きをする命令セットシミュレータが実装
されている。PLI部61でプログラムを実行する際
に、HDLシミュレータ部62も協調して動作すること
により、バスインターフェースを介してASICモデル
等にアクセスしながら、プログラムとASICのデバッ
グを行っていた。
【0005】
【発明が解決しようとする課題】上記の如く、従来は、
PLI部61にできるだけ多くの機能を持たせるよう
に、シミュレーションプログラムの設計が行われてい
た。しかしながら、このような場合には、シミュレーシ
ョンプログラムの開発時や各ユーザへの対応時において
僅かなバージョンアップを行う際にも、PLI部61を
修正してシミュレータ部62とのリンクをやり直さなけ
ればならず、シミュレーションのために要する時間やコ
ストの増大を招いていた。また、シミュレータ部62に
用いるHDLシミュレータの仕様は一応標準化されてい
るものもあるが、細かい部分については各社で異なって
おり、様々なHDLシミュレータに適合するようにPL
I部61を修正するには非常に手間がかかっていた。
【0006】また、CPUコアは、PLI部61内の命
令セットシミュレータで動作するため、サイクルベース
のタイミングは実機とシミュレーションとで一致せず、
タイミング的不具合が発生するという問題があった。
【0007】そこで、上記の点に鑑み、本発明は、互い
に関連して動作するソフトウエア及びハードウエアのシ
ミュレーションを行う場合に、ソフトウエアのデバッグ
機能とハードウエアのシミュレーション機能とを容易に
リンクさせ、また、サイクルベースのタイミングでもシ
ミュレーションできるようなシミュレーション方法及び
シミュレーションシステム、並びに、このようなシミュ
レーション方法を用いるシミュレーションプログラムを
記録した記録媒体を提供することを目的とする。
【0008】
【課題を解決するための手段】以上の課題を解決するた
め、本発明に係るシミュレーション方法は、互いに関連
して動作するソフトウエア及びハードウエアをVeri
log−HDL若しくはVHDLに対応したHDL(ハ
ードウエアデスクリプションランゲージ)シミュレータ
でシミュレーションを行う方法であって、第1のコンピ
ュータにおいて、デバッガを用いてソフトウエアのデバ
ッグを行うと共に、ハードウエアのシミュレーションに
用いるコマンドを発生するステップ(a)と、第1のコ
ンピュータにおいて、ステップ(a)において発生した
コマンドを通信ネットワークを介して送信するステップ
(b)と、第2のコンピュータにおいて、第1のコンピ
ュータから送信されたコマンドをHDLシミュレータに
受信するステップ(c)と、第2のコンピュータにおい
て、HDLシミュレータを用いて、ステップ(c)にお
いて受信したコマンドをHDLで作成されたハードウエ
アのシミュレーションモデルに含まれるバスインターフ
ェースモデルに入力することにより、ソフトウエアのデ
バッグと協調してハードウエアのシミュレーションを行
うステップ(d)と、第2のコンピュータにおいて、バ
スインターフェースモデルから出力されたデータを、H
DLシミュレータから第1のコンピュータに通信ネット
ワークを介して送信するステップ(e)とを具備し、ス
テップ(b)及び(e)が、インターネットの通信プロ
トコルを使用したソケット通信を行い、HDLシミュレ
ータと第1のコンピュータとのデータ列の送受信の機能
のみをHDLシミュレータに後からリンク可能なPLI
(プログラムランゲージインターフェース)部に入れ、
データ列の処理はバスインターフェースモデルで行うこ
とを特徴とする。
【0009】また、本発明に係るシミュレーションシス
テムは、互いに関連して動作するソフトウエア及びハー
ドウエアをVerilog−HDL若しくはVHDLに
対応したHDL(ハードウエアデスクリプションランゲ
ージ)シミュレータでシミュレーションを行うシステム
であって、デバッガを用いてソフトウエアのデバッグを
行うと共に、ハードウエアのシミュレーションに用いる
コマンドを発生して通信ネットワークを介して送信する
第1のコンピュータと、第1のコンピュータから送信さ
れたコマンドをHDLシミュレータに受信し、HDLシ
ミュレータを用いて、受信したコマンドをHDLで作成
されたハードウエアのシミュレーションモデルに含まれ
るバスインターフェースモデルに入力することにより、
ソフトウエアのデバッグと協調してハードウエアのシミ
ュレーションを行うと共に、バスインターフェースモデ
ルから出力されたデータを、HDLシミュレータから第
1のコンピュータに通信ネットワークを介して送信する
第2のコンピュータとを具備し、第1及び第2のコンピ
ュータが、インターネットの通信プロトコルを使用した
ソケット通信を行い、HDLシミュレータと第1のコン
ピュータとのデータ列の送受信の機能のみをHDLシミ
ュレータに後からリンク可能なPLI(プログラムラン
ゲージインターフェース)部に入れ、データ列の処理は
バスインターフェースモデルで行うことを特徴とする。
【0010】本発明に係るシミュレーションプログラム
は、互いに関連して動作するソフトウエア及びハードウ
エアをVerilog−HDL若しくはVHDLに対応
したHDL(ハードウエアデスクリプションランゲー
ジ)シミュレータでシミュレーションを実行させるプロ
グラムであって、前記ソフトウエアのデバッグを行うコ
ンピュータから通信ネットワークを介して送信された前
記ハードウエアのシミュレーションに用いるコマンドを
前記HDLシミュレータに受信する手順(a)と、前記
HDLシミュレータを用いて、手順(a)において受信
したコマンドをHDLで作成されたハードウエアのシミ
ュレーションモデルに含まれるバスインターフェースモ
デルに入力することにより、前記ソフトウエアのデバッ
グと協調して前記ハードウエアのシミュレーションを行
う手順(b)と、前記バスインターフェースモデルから
出力されたデータを、前記HDLシミュレータから前記
ソフトウエアのデバッグを行うコンピュータに通信ネッ
トワークを介して送信する手順(c)と、をCPUに実
行させるプログラムであって、前記ソフトウエアのデバ
ッグを行うコンピュータと前記CPUとが、インターネ
ットの通信プロトコルを使用したソケット通信を行い、
前記HDLシミュレータと前記ソフトウエアのデバッグ
を行うコンピュータとのデータ列の送受信の機能のみを
前記HDLシミュレータに後からリンク可能なPLI
(プログラムランゲージインターフェース)部に入れ、
データ列の処理は前記バスインターフェースモデルで行
うことを特徴とする。また、本発明に係るシミュレーシ
ョンプログラムを記録した記録媒体は、互いに関連して
動作するソフトウエア及びハードウエアをVerilo
g−HDL若しくはVHDLに対応したHDL(ハード
ウエアデスクリプションランゲージ)シミュレータでシ
ミュレーションを行うためにCPUで読み取り可能な記
録媒体であって、ソフトウエアのデバッグを行うコンピ
ュータから通信ネットワークを介して送信されたハード
ウエアのシミュレーションに用いるコマンドをHDLシ
ミュレータに受信する手順(a)と、HDLシミュレー
タを用いて、手順(a)において受信したコマンドをH
DLで作成されたハードウエアのシミュレーションモデ
ルに含まれるバスインターフェースモデルに入力するこ
とにより、ソフトウエアのデバッグと協調してハードウ
エアのシミュレーションを行う手順(b)と、バスイン
ターフェースモデルから出力されたデータを、HDLシ
ミュレータからソフトウエアのデバッグを行うコンピュ
ータに通信ネットワークを介して送信する手順(c)と
をCPUに実行させるためのプログラムであって、ソフ
トウエアのデバッグを行うコンピュータとCPUとが、
インターネットの通信プロトコルを使用したソケット通
信を行い、HDLシミュレータとソフトウエアのデバッ
グを行うコンピュータとのデータ列の送受信の機能のみ
をHDLシミュレータに後からリンク可能なPLI(プ
ログラムランゲージインターフェース)部に入れ、デー
タ列の処理はバスインターフェースモデルで行うことを
特徴とするプログラムを記録している。
【0011】以上の様に構成した本発明によれば、第1
のコンピュータにおいてソフトウエアのデバッグを行う
と共にハードウエアのシミュレーションに用いる各種の
コマンドを発生して通信ネットワークを介して送信し、
第2のコンピュータにおいてPLI(プログラムランゲ
ージインターフェース)を用いて第1のコンピュータと
通信を行うことによりデータを受信すると共にHDLシ
ミュレータを用いてハードウエアのシミュレーションを
行うようにして、PLI部の負担を軽くすることができ
る。従って、ソフトウエアのデバッグ機能とハードウエ
アのシミュレーション機能とを容易にリンクさせること
が可能である。
【0012】以上において、ハードウエアのシミュレー
ションモデルが、CPUと等価な動きをするHDLシミ
ュレーション用のCPUモデルと、バスインターフェー
スモデルから出力されたデータとCPUモデルから出力
されたデータとの内の一方をCPUの外にあるメモリや
ロジック回路に相当する外部ロジック回路モデルに入力
データとして供給する切換回路モデルとをさらに含み、
外部ロジック回路モデルからは、CPUモデルとバスイ
ンターフェースモデルとの両方にデータを入力するよう
にしても良い。
【0013】また、ハードウエアのシミュレーションモ
デルが、CPUモデルから命令フェッチ信号を入力し、
制御信号に従って該命令フェッチ信号を外部ロジック回
路に出力するか否かを切り換えることによってCPUモ
デルの動作の停止及び再開を制御する命令フェッチコン
トロール部をさらに含むようにしても良い。さらに、ハ
ードウエアのシミュレーションモデルが、CPUモデル
において実行すべきプログラムを記憶したROMモデル
をさらに含むようにしても良い。
【0014】このようにすれば、第1のコンピュータに
おけるデバッガでプログラム実行をさせながら必要な部
分だけコマンドを発生することもできるし、第2のコン
ピュータにおけるCPUモデルでプログラム実行を直接
行わせることもできる。前者の場合には高速でシミュレ
ーションすることができ、後者の場合にはサイクルベー
スのタイミングでシミュレーションすることができる。
【0015】
【発明の実施の形態】以下、図面に基づいて、本発明の
実施の形態について説明する。なお、同一の構成要素に
は同一の参照番号を付して、説明を省略する。図1は、
本発明の第1の実施形態に係るシミュレーションシステ
ムの構成を示す図である。本実施形態においては、マイ
コンボードのシミュレーションを行う場合について説明
する。このマイコンボードには、CPUと、CPUを動
作させるために用いられるC言語やアセンブラで作成さ
れたソフトウエア(マイコン用プログラム)を記憶する
ROMと、データを一時的に記憶するRAMと、ユーザ
の仕様に合わせて設計されたロジック回路等のハードウ
エアを含むASICとが実装されている。
【0016】このようなマイコンボードのシミュレーシ
ョンを行うために、本発明に係るシミュレーションシス
テムは、図1に示すように、公衆回線網やインターネッ
トやLAN(ローカルエリアネットワーク)等の通信ネ
ットワークで接続された少なくとも2台のコンピュータ
を使用する。本実施形態においては、インターネットの
標準的な通信プロトコルであるTCP/IPを使用した
ソケット(socket)通信を行うものとする。
【0017】第1のコンピュータ1は、CPU11と、
シミュレーションプログラムやデータを記録する記録媒
体12とを含んでいる。同様に、第2のコンピュータ2
は、CPU21と、シミュレーションプログラムやデー
タを記録する記録媒体22とを含んでいる。記録媒体1
2、22としては、ハードディスク、フレキシブルーデ
ィスク、MO、MT、RAM、CD−ROM、DVD−
ROM等が該当する。
【0018】図2に、本実施形態に係るシミュレーショ
ンシステムにおいて用いられるシミュレーションプログ
ラムの構成を示す。第1のコンピュータにおいて使用さ
れるシミュレーションプログラムは、例えばC言語で作
成されており、ソフトウエアのデバッグ機能を有するデ
バッガ13と、HDLシミュレーションと協調して動
き、HDLシミュレータに送信する各種のコマンドを発
生する命令セットシミュレータ14と、通信ネットワー
クを介して通信を行うための通信部15とを含んでい
る。デバッガ13は、ウインドウ内にデバッグ結果を表
示するためのグラフィカルユーザインターフェース(G
UI)や、マイコン用プログラムをステップ実行するた
めのコマンド処理等のデバッグ機能を有している。ま
た、命令セットシミュレータ14は、マイコンボードに
おけるCPUとROM、RAMの役割を果たしている。
【0019】第2のコンピュータにおいて使用されるシ
ミュレーションプログラムは、例えばC言語で作成され
ており、第1のコンピュータと通信を行うことによりデ
ータを送受信するPLI(プログラムランゲージインタ
ーフェース)部23と、第1のコンピュータから受信し
たデータをベリログ(Verilog)HDL(ハード
ウエアデスクリプションランゲージ)又はVHDLで作
成されたハードウエアのシミュレーションモデルに入力
してシミュレーションを行うHDLシミュレータ24と
をリンクさせて、1つの実行ファイルとしたものが使用
される。
【0020】シミュレーションモデル25は、マイコン
ボードに実装されるハードウエアに相当するASICモ
デル32、ROMモデル33、RAMモデル34、及
び、これらとHDLシミュレータ24との間でデータの
やり取りを行うためのバスインターフェース(BUS
I/F)モデル31とを含んでいる。
【0021】本実施形態においては、第2のコンピュー
タにおいて実行されるシミュレーションプログラムのP
LI部23が、従来のようなソフトウエアのデバッグ機
能を持たず、デバッガプログラムを実行する第1のコン
ピュータとの間のソケット通信の開/閉、及び、送信/
受信のみを制御するようにした点が大きな特徴である。
また、受信したコマンドの解釈や、デバッガ13に送る
データ列の作成は、HDLで作成されたバスインターフ
ェースモデル31が行う。これにより、HDLシミュレ
ータ24が置き換わっても、PLI部23の変更を大幅
に少なくすることができる。ほとんどの修正は、HDL
で作成されるバスインターフェースモデル31や、別コ
ンピュータで動くデバッガ13の部分に関するものとな
り、これらの修正は容易なので、全体として開発工数が
大きく減らせる。
【0022】次に、本実施形態に係るシミュレーション
システムの動作について、図2及び図3を参照しながら
説明する。第1のコンピュータにおいて、デバッガ13
によって命令セットシミュレータを動作させることによ
り、ソフトウエア(マイコン用プログラム)を1命令ず
つ実行して、RAM、ROM等に対してデータ処理を行
っていく(ステップS11)。なお、ステップS12に
おいて、マイコン用プログラムが終了した場合には、シ
ミュレーションを終了する。それ以外の場合には、ステ
ップS13に移行する。以下においては、ある命令がA
SICに対してread(読み出し)アクセスする場合
について説明する。
【0023】ステップS13において、現在実行中の命
令がASICへのreadアクセスを必要とするか否か
を判定し、ASICへのreadアクセスが不要な場合
には、ステップS11に戻って次の命令を実行する。一
方、ASICへのreadアクセスが必要な場合には、
ステップS14において、HDLで作成されたASIC
のシミュレーションモデル32にアクセスすべく、シミ
ュレーションプログラムに含まれている通信部15を用
いて、通信ネットワークを介して第2のコンピュータに
readコマンドを送信する(ステップS14)。な
お、readコマンドには、readアクセスするAS
ICのアドレス、データタイプ、読み出すべきデータの
個数に関する情報が含まれている。
【0024】第2のコンピュータにおいては、シミュレ
ーションプログラムに含まれているPLI部23によっ
て、readコマンドを受信する(ステップS21)。
さらに、PLI部23とリンクされているHDLシミュ
レータ24を用いて、受信したreadコマンドを、シ
ミュレーションモデル25に含まれるバスインターフェ
ースモデル31に供給する。バスインターフェースモデ
ル31においては、このreadコマンドの解釈を行う
(ステップS22)。
【0025】ここで、readコマンドには、先に説明
したように、アドレス値と、データタイプ(例えば、8
ビット、16ビット、32ビット等)と、データの個数
とが指定されている。ステップS23において、バスイ
ンターフェースモデル31は、指定されたアドレス及び
データタイプで、readバスサイクルを指定されたデ
ータの個数分発生する。これに応答して、シミュレーシ
ョンモデル25に含まれているASICモデル32よ
り、対応するアドレスのデータが出力され、バスインタ
ーフェースモデル31が、このデータを取り込む(ステ
ップS24)。
【0026】ステップS25において、バスインターフ
ェースモデル31は、指定された個数分のデータを準備
し、これらのデータは、PLI部23により第2のコン
ピュータから第1のコンピュータに通信ネットワークを
介して送信される。第1のコンピュータにおいては、デ
バッガによってこれらのデータを受信する(ステップS
15)。この受信したデータを用いることにより命令の
動作が行われ、その後、次の命令の実行に移行する。こ
のようにして、ソフトウエアのデバッグと協調するよう
にハードウエアのシミュレーションが行われる。
【0027】本実施形態によれば、第2のコンピュータ
において実行されるシミュレーションプログラムのPL
I部はデータの送受信のみの簡単な機能ですむので、他
のHDLシミュレータに移植することが極めて簡単とな
り、マイコンボード等の開発に要する期間を短縮でき
る。また、このPLI部は、一旦作成されるとバージョ
ンアップがほとんど不要であり、バスインターフェース
モデル31はHDLで作成されるためにバージョンアッ
プが容易であることから、全体としてバージョンアップ
を短期間で行うことができる。さらに、デバッガも、I
CE用に作られたデバッガを流用し易く、システム全体
として低工数、短期間で開発できる。
【0028】次に、本発明の第2の実施形態に係るシミ
ュレーションシステムについて説明する。第1の実施形
態におけるように命令セットシミュレータ14を用いて
マイコンボードにおけるCPUの役割を果たす場合に
は、実行速度は数万命令/秒と早いが、シミュレーショ
ンモデル25に含まれているASICモデル等とタイミ
ングを合わせたシミュレーションを行うことができな
い。このようなシミュレーションは、命令精度のシミュ
レーションと言われている。
【0029】一方、シミュレーションモデルにおいてA
SICモデル等とサイクルベースでタイミングを合わせ
ることができるCPUモデルを追加する場合には、実行
速度が数十命令/秒と遅く、プログラムによっては実行
が不可能である。このようなシミュレーションは、サイ
クル精度のシミュレーションと言われている。そこで、
本実施形態においては、1つのシミュレーションモデル
で両方の精度をサポートできるようにした。
【0030】図4に、本実施形態に係るシミュレーショ
ンシステムにおいて用いられるシミュレーションプログ
ラムの構成を示す。本実施形態におけるシミュレーショ
ンモデル26は、マイコンボードのCPUとサイクルベ
ースで等価な動きをするCPUモデル41を含んでい
る。高速で実行することが必要な場合には、実行速度が
速い命令セットシミュレータ14がその命令を実行す
る。ASICに対しては、図2におけるのと同様に、バ
スインターフェースを介してアクセスする。
【0031】一方、ASICモデル等とタイミングを合
わせることが必要な場合には、命令セットシミュレータ
14は使わずに、CPUモデル41が、シミュレーショ
ンモデル25に含まれているROMモデル33に格納さ
れている命令を実行し、サイクルベースで等価な動きを
するようになっている。なお、CPUモデル41を使う
場合でも、ブレークポイント等によりブレークした場合
には、バスインターフェースを介する動作に切り換え、
デバッガからメモリダンプ等のデバッグ作業を行うこと
ができる。
【0032】上記のような切換動作を行うために、シミ
ュレーションモデル26は、切換回路モデル42をさら
に含んでいる。切換回路モデル42は、命令セットシミ
ュレータ14において発生されバスインターフェースモ
デル31から出力されるデータと、CPUモデル41か
ら出力されるデータとの内の一方を選択して、ASIC
モデル32、ROMモデル33、RAMモデル34に供
給する。一方、ASICモデル32、ROMモデル3
3、RAMモデル34から出力されるデータは、命令セ
ットシミュレータ14とCPUモデル41との両方に供
給される。なお、CPUモデル41において実行すべき
プログラムは、ROMモデル33に記憶されている。
【0033】本実施形態によれば、1種類のシミュレー
ションモデルを使用して、目的に応じて速度及び機能の
異なる複数のシミュレーションを切り換えて使用できる
ので、マイコンボード等の開発におけるソフトウエア及
びハードウエアの開発効率を大きく向上させることがで
きる。
【0034】次に、本発明の第3の実施形態に係るシミ
ュレーションシステムについて、図5を参照しながら説
明する。第2の実施形態におけるようにCPUモデル4
1を使用する場合には、CPUモデル41の動作を停止
させたり再開させたりする際に、CPUモデル41の動
作が変化してしまったり、変な誤動作が発生するおそれ
がある。このため、シミュレーションの品質を保証する
には、かなりの手間がかかっていた。そこで、本実施形
態においては、CPUモデル41の動作の停止及び再開
を容易に制御できるようにした。
【0035】図5に示すように、シミュレーションモデ
ル27において、命令フェッチコントロール部51が設
けられている。命令フェッチコントロール部51は、C
PUモデル41から命令フェッチ信号を入力し、HDL
シミュレータ24からバスインターフェースモデル31
を介して供給される制御信号に従って、命令フェッチ信
号を出力するか否かを切り換える。命令フェッチコント
ロール部51が命令フェッチ信号を出力すれば、ASI
C、ROM、RAM等の外部の回路モデルからCPUモ
デル41に命令コードが供給されて、CPUモデル41
は正常に動作する。一方、命令フェッチコントロール部
51が命令フェッチ信号を出力しなければ、外部の回路
モデルからCPUモデル41に命令コードが供給され
ず、CPUモデル41の動作は停止する。このようにし
て、CPUモデル41の動作の停止及び再開を制御する
ことができる。その他の点は、第2の実施形態と同様で
ある。
【0036】本実施形態によれば、CPUモデル41の
設計は全く変更せずに、CPUモデル41の動作の停止
及び再開を容易に制御することができる。これにより、
図4に示す第2の実施形態に係るシミュレーションシス
テムを容易に開発することができる。
【0037】
【発明の効果】以上述べた様に、本発明によれば、互い
に関連して動作するソフトウエア及びハードウエアのシ
ミュレーションを行う場合に、ソフトウエアのデバッグ
機能とハードウエアのシミュレーション機能とを容易に
リンクさせることができる。さらに、命令精度のシミュ
レーションとサイクル精度のシミュレーションとを1つ
のシミュレーションモデルでサポートできるので、マイ
コンボード等の開発におけるソフトウエア及びハードウ
エアの開発期間を短縮し、開発コストを低減することが
可能である。
【図面の簡単な説明】
【図1】 本発明の第1の実施形態に係るシミュレーシ
ョンシステムの構成を示す図である。
【図2】 本発明の第1の実施形態に係るシミュレーシ
ョンシステムにおいて用いられるシミュレーションプロ
グラムの構成を示す図である。
【図3】 本発明の第1の実施形態に係るシミュレーシ
ョンシステムの動作を示すフローチャートである。
【図4】 本発明の第2の実施形態に係るシミュレーシ
ョンシステムにおいて用いられるシミュレーションプロ
グラムの構成を示す図である。
【図5】 本発明の第3の実施形態に係るシミュレーシ
ョンシステムにおいて用いられるシミュレーションプロ
グラムの構成を示す図である。
【図6】 従来のシミュレーションプログラムの構成を
示す図である。
【符号の説明】
1 第1のコンピュータ 2 第2のコンピュータ 11、21 CPU 12、22 記録媒体 13 デバッガ 14 命令セットシミュレータ 15 通信部 23 PLI部 24 HDLシミュレータ 25〜27 シミュレーションモデル 31 バスインターフェースモデル 32 ASICモデル 33 ROMモデル 34 RAMモデル 41 CPUモデル 42 切換回路モデル 51 命令フェッチコントロール部

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 互いに関連して動作するソフトウエア及
    びハードウエアをVerilog−HDL若しくはVH
    DLに対応したHDL(ハードウエアデスクリプション
    ランゲージ)シミュレータでシミュレーションを行う方
    法であって、 第1のコンピュータにおいて、デバッガを用いて前記ソ
    フトウエアのデバッグを行うと共に、前記ハードウエア
    のシミュレーションに用いるコマンドを発生するステッ
    プ(a)と、 前記第1のコンピュータにおいて、ステップ(a)にお
    いて発生したコマンドを通信ネットワークを介して送信
    するステップ(b)と、 第2のコンピュータにおいて、前記第1のコンピュータ
    から送信されたコマンドを前記HDLシミュレータに受
    信するステップ(c)と、 前記第2のコンピュータにおいて、前記HDLシミュレ
    ータを用いて、ステップ(c)において受信したコマン
    ドをHDLで作成されたハードウエアのシミュレーショ
    ンモデルに含まれるバスインターフェースモデルに入力
    することにより、前記ソフトウエアのデバッグと協調し
    て前記ハードウエアのシミュレーションを行うステップ
    (d)と、 前記第2のコンピュータにおいて、前記バスインターフ
    ェースモデルから出力されたデータを、前記HDLシミ
    ュレータから前記第1のコンピュータに通信ネットワー
    クを介して送信するステップ(e)と、を具備し、ステ
    ップ(b)及び(e)が、インターネットの通信プロト
    コルを使用したソケット通信を行い、前記HDLシミュ
    レータと前記第1のコンピュータとのデータ列の送受信
    の機能のみを前記HDLシミュレータに後からリンク可
    能なPLI(プログラムランゲージインターフェース)
    部に入れ、データ列の処理は前記バスインターフェース
    モデルで行うことを特徴とするシミュレーション方法。
  2. 【請求項2】 前記ハードウエアのシミュレーションモ
    デルが、 CPUと等価な動きをするHDLシミュレーション用の
    CPUモデルと、 前記バスインターフェースモデルから出力されたデータ
    と前記CPUモデルから出力されたデータとの内の一方
    をCPUの外にあるメモリやロジック回路に相当する外
    部ロジック回路モデルに入力データとして供給する切換
    回路モデルと、をさらに含み、前記外部ロジック回路モ
    デルからは、前記CPUモデルと前記バスインターフェ
    ースモデルとの両方にデータを入力することを特徴とす
    る請求項1記載のシミュレーション方法。
  3. 【請求項3】 前記ハードウエアのシミュレーションモ
    デルが、 前記CPUモデルから命令フェッチ信号を入力し、制御
    信号に従って該命令フェッチ信号を前記外部ロジック回
    路に出力するか否かを切り換えることによって前記CP
    Uモデルの動作の停止及び再開を制御する命令フェッチ
    コントロール部をさらに含むことを特徴とする請求項2
    記載のシミュレーション方法。
  4. 【請求項4】 前記ハードウエアのシミュレーションモ
    デルが、 前記CPUモデルにおいて実行すべきプログラムを記憶
    したROMモデルをさらに含むことを特徴とする請求項
    2又は3記載のシミュレーション方法。
  5. 【請求項5】 互いに関連して動作するソフトウエア及
    びハードウエアをVerilog−HDL若しくはVH
    DLに対応したHDL(ハードウエアデスクリプション
    ランゲージ)シミュレータでシミュレーションを行うシ
    ステムであって、 デバッガを用いて前記ソフトウエアのデバッグを行うと
    共に、前記ハードウエアのシミュレーションに用いるコ
    マンドを発生して通信ネットワークを介して送信する第
    1のコンピュータと、 前記第1のコンピュータから送信されたコマンドを前記
    HDLシミュレータに受信し、前記HDLシミュレータ
    を用いて、受信したコマンドをHDLで作成されたハー
    ドウエアのシミュレーションモデルに含まれるバスイン
    ターフェースモデルに入力することにより、前記ソフト
    ウエアのデバッグと協調して前記ハードウエアのシミュ
    レーションを行うと共に、前記バスインターフェースモ
    デルから出力されたデータを、前記HDLシミュレータ
    から前記第1のコンピュータに通信ネットワークを介し
    て送信する第2のコンピュータと、 を具備し、前記第1及び第2のコンピュータが、インタ
    ーネットの通信プロトコルを使用したソケット通信を行
    い、前記HDLシミュレータと前記第1のコンピュータ
    とのデータ列の送受信の機能のみを前記HDLシミュレ
    ータに後からリンク可能なPLI(プログラムランゲー
    ジインターフェース)部に入れ、データ列の処理は前記
    バスインターフェースモデルで行うことを特徴とするシ
    ミュレーションシステム。
  6. 【請求項6】 前記ハードウエアのシミュレーションモ
    デルが、 CPUと等価な動きをするHDLシミュレーション用の
    CPUモデルと、 前記バスインターフェースモデルから出力されたデータ
    と前記CPUモデルから出力されたデータとの内の一方
    をCPUの外にあるメモリやロジック回路に相当する外
    部ロジック回路モデルに入力データとして供給する切換
    回路モデルと、をさらに含み、前記外部ロジック回路モ
    デルからは、前記CPUモデルと前記バスインターフェ
    ースモデルとの両方にデータを入力することを特徴とす
    る請求項5記載のシミュレーションシステム。
  7. 【請求項7】 前記ハードウエアのシミュレーションモ
    デルが、 前記CPUモデルから命令フェッチ信号を入力し、制御
    信号に従って該命令フェッチ信号を前記外部ロジック回
    路に出力するか否かを切り換えることによって前記CP
    Uモデルの動作の停止及び再開を制御する命令フェッチ
    コントロール部をさらに含むことを特徴とする請求項6
    記載のシミュレーションシステム。
  8. 【請求項8】 前記ハードウエアのシミュレーションモ
    デルが、 前記CPUモデルにおいて実行すべきプログラムを記憶
    したROMモデルをさらに含むことを特徴とする請求項
    6又は7記載のシミュレーションシステム。
  9. 【請求項9】 互いに関連して動作するソフトウエア及
    びハードウエアをVerilog−HDL若しくはVH
    DLに対応したHDL(ハードウエアデスクリプション
    ランゲージ)シミュレータでシミュレーションを実行さ
    せるプログラムであって、 前記ソフトウエアのデバッグを行うコンピュータから通
    信ネットワークを介して送信された前記ハードウエアの
    シミュレーションに用いるコマンドを前記HDLシミュ
    レータに受信する手順(a)と、 前記HDLシミュレータを用いて、手順(a)において
    受信したコマンドをHDLで作成されたハードウエアの
    シミュレーションモデルに含まれるバスインターフェー
    スモデルに入力することにより、前記ソフトウエアのデ
    バッグと協調して前記ハードウエアのシミュレーション
    を行う手順(b)と、 前記バスインターフェースモデルから出力されたデータ
    を、前記HDLシミュレータから前記ソフトウエアのデ
    バッグを行うコンピュータに通信ネットワークを介して
    送信する手順(c)と、をCPUに実行させるプログラ
    ムであって、前記ソフトウエアのデバッグを行うコンピ
    ュータと前記CPUとが、インターネットの通信プロト
    コルを使用したソケット通信を行い、前記HDLシミュ
    レータと前記ソフトウエアのデバッグを行うコンピュー
    タとのデータ列の送受信の機能のみを前記HDLシミュ
    レータに後からリンク可能なPLI(プログラムランゲ
    ージインターフェース)部に入れ、データ列の処理は前
    記バスインターフェースモデルで行うことを特徴とする
    プログラム。
JP2002062576A 2001-04-06 2002-03-07 ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム Withdrawn JP2002366602A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002062576A JP2002366602A (ja) 2001-04-06 2002-03-07 ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
US10/102,884 US20040015887A1 (en) 2001-04-06 2002-03-22 Simulation method, simulation system and simulation program for software and hardware

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-107942 2001-04-06
JP2001107942 2001-04-06
JP2002062576A JP2002366602A (ja) 2001-04-06 2002-03-07 ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム

Publications (1)

Publication Number Publication Date
JP2002366602A true JP2002366602A (ja) 2002-12-20

Family

ID=26613186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002062576A Withdrawn JP2002366602A (ja) 2001-04-06 2002-03-07 ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム

Country Status (2)

Country Link
US (1) US20040015887A1 (ja)
JP (1) JP2002366602A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム
JP2007058813A (ja) * 2005-08-26 2007-03-08 Fujitsu Ltd 検証装置及び検証方法
JP2007249293A (ja) * 2006-03-13 2007-09-27 Fujitsu Ltd ハードウェア/ソフトウェア協調検証装置
JP2014078087A (ja) * 2012-10-10 2014-05-01 Meidensha Corp デジタル回路用シミュレーション装置及びそのプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646451B2 (en) * 2003-06-11 2017-05-09 Ncr Corporation Automated business system and method of vending and returning a consumer product
US20090143904A1 (en) * 2004-06-11 2009-06-04 Donald Blust Automated business system and method of vending and returning a consumer product
JP4599266B2 (ja) * 2005-09-27 2010-12-15 株式会社東芝 シミュレーション装置及びシミュレーション方法
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
CN106933652A (zh) * 2017-03-16 2017-07-07 浙江大学 一种基于延迟槽补偿的dsp流水线模拟方法
EP3704587A1 (en) * 2017-11-02 2020-09-09 Silicon Mobility SAS Software environment for control engine debug, test, calibration and tuning
CN112905154A (zh) * 2020-12-30 2021-06-04 杭州加速科技有限公司 一种提高软硬件协同开发速度的方法及装置
CN116384305B (zh) * 2023-06-05 2023-08-01 英诺达(成都)电子科技有限公司 数据通信方法、装置、系统、设备及计算机存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4527249A (en) * 1982-10-22 1985-07-02 Control Data Corporation Simulator system for logic design validation
US4967288A (en) * 1987-05-01 1990-10-30 Kabushiki Kaisha Toshiba Facsimile storage and exchange system
JPH031260A (ja) * 1989-05-30 1991-01-07 Hitachi Ltd 計算機方式
EP0508619A2 (en) * 1991-04-11 1992-10-14 Hewlett-Packard Company Bi-directional socket stimulus interface for a logic simulator
US5852449A (en) * 1992-01-27 1998-12-22 Scientific And Engineering Software Apparatus for and method of displaying running of modeled system designs
US5600579A (en) * 1994-07-08 1997-02-04 Apple Computer, Inc. Hardware simulation and design verification system and method
US5870585A (en) * 1995-10-10 1999-02-09 Advanced Micro Devices, Inc. Design for a simulation module using an object-oriented programming language
US6188975B1 (en) * 1998-03-31 2001-02-13 Synopsys, Inc. Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
US6587995B1 (en) * 2000-04-19 2003-07-01 Koninklijke Philips Electronics N.V. Enhanced programmable core model with integrated graphical debugging functionality
US6718294B1 (en) * 2000-05-16 2004-04-06 Mindspeed Technologies, Inc. System and method for synchronized control of system simulators with multiple processor cores

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005222420A (ja) * 2004-02-06 2005-08-18 Toyota Motor Corp 分散処理支援プログラム
JP2007058813A (ja) * 2005-08-26 2007-03-08 Fujitsu Ltd 検証装置及び検証方法
JP2007249293A (ja) * 2006-03-13 2007-09-27 Fujitsu Ltd ハードウェア/ソフトウェア協調検証装置
JP4589255B2 (ja) * 2006-03-13 2010-12-01 富士通株式会社 ハードウェア/ソフトウェア協調検証装置
JP2014078087A (ja) * 2012-10-10 2014-05-01 Meidensha Corp デジタル回路用シミュレーション装置及びそのプログラム

Also Published As

Publication number Publication date
US20040015887A1 (en) 2004-01-22

Similar Documents

Publication Publication Date Title
US8041553B1 (en) Generic software simulation interface for integrated circuits
US7930162B1 (en) Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor
JP2006350549A (ja) 統合シミュレーションシステム
JP2002535684A (ja) 集積回路のリアルバージョンテストとシミュレートバージョンテストを行うシステム
JP4492803B2 (ja) 動作合成装置及びプログラム
US7979822B2 (en) Apparatus and method for performing a sequence of verification tests to verify a design of a data processing system
CN101231589A (zh) 用于原位开发嵌入式软件的系统和方法
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
JP2002366602A (ja) ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
JP2001109788A (ja) シミュレーションモデル、その生成方法、シミュレーション方法及びその記録媒体
CN102480467A (zh) 一种基于网络通讯协议的soc软硬件协同仿真验证方法
Narayan et al. Translating system specifications to VHDL
Ecker Using VHDL for HW/SW co-specification
US7228513B2 (en) Circuit operation verification device and method
JP2007058813A (ja) 検証装置及び検証方法
Bauer et al. Hardware/software co-simulation in a VHDL-based test bench approach
Pohl et al. vMAGIC—automatic code generation for VHDL
JP2001184212A (ja) トレース制御回路
JP5262909B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
CN112329369B (zh) 一种在芯片仿真模型上进行软件调试的方法
CN111338761B (zh) 一种51单片机虚拟中断控制器及实现方法
US20040260531A1 (en) Emulation system and method
JP4589255B2 (ja) ハードウェア/ソフトウェア協調検証装置
JP2000259445A (ja) ソフトウェア/ハードウェア協調シミュレーション方法
TWI427496B (zh) 製造積體電路的模型的方法和系統

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050712

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20050817