JPH10187494A - シミュレーション装置 - Google Patents
シミュレーション装置Info
- Publication number
- JPH10187494A JPH10187494A JP8358784A JP35878496A JPH10187494A JP H10187494 A JPH10187494 A JP H10187494A JP 8358784 A JP8358784 A JP 8358784A JP 35878496 A JP35878496 A JP 35878496A JP H10187494 A JPH10187494 A JP H10187494A
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- program
- file
- host
- simulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【解決手段】 新プログラムのソースファイル14がコ
ンパイルされて、モデリングファイル3のROMモデル
5に格納されるとき、旧プログラムの実行用ファイルと
比較される。そして、その不変部分がホストシミュレー
ション依頼部10において逆コンパイルされ、ホストC
PU用実行ファイル13が生成される。ホストCPU1
は、既にシミュレーション済みの旧プログラム部分を高
速で処理する。一方、変更部分はシミュレータ本体2が
1ステップずつ実行する。 【効果】 既にシミュレーション済みの部分をホストC
PU1で高速処理するためシミュレーション時間が短縮
される。
ンパイルされて、モデリングファイル3のROMモデル
5に格納されるとき、旧プログラムの実行用ファイルと
比較される。そして、その不変部分がホストシミュレー
ション依頼部10において逆コンパイルされ、ホストC
PU用実行ファイル13が生成される。ホストCPU1
は、既にシミュレーション済みの旧プログラム部分を高
速で処理する。一方、変更部分はシミュレータ本体2が
1ステップずつ実行する。 【効果】 既にシミュレーション済みの部分をホストC
PU1で高速処理するためシミュレーション時間が短縮
される。
Description
【0001】
【発明の属する技術分野】本発明は、ハードウェアとフ
ァームウェアによって構成されるターゲット装置をモデ
ル化して、同等の動作をコンピュータ上で検証するため
のシミュレーション装置に関する。
ァームウェアによって構成されるターゲット装置をモデ
ル化して、同等の動作をコンピュータ上で検証するため
のシミュレーション装置に関する。
【0002】
【従来の技術】今日、電化製品や事務機器、例えばファ
クシミリ装置や複写装置、プリンタ等各種の装置は、そ
れぞれファームウェアによりコンピュータ制御されて動
作する。こうした装置の設計段階では、装置が予定通り
正常に動作するかどうかをチェックするためにシミュレ
ーションが行われる。この場合には、ターゲット装置の
ハードウェアやファームウェアをモデル化して、同等の
動作をコンピュータ上で実現する。シミュレーション装
置は、システムクロック毎にモデル化したファイルの状
態を逐一記録しトレースするよう構成される。こうした
シミュレーションの結果はログファイルに記録され検証
される。
クシミリ装置や複写装置、プリンタ等各種の装置は、そ
れぞれファームウェアによりコンピュータ制御されて動
作する。こうした装置の設計段階では、装置が予定通り
正常に動作するかどうかをチェックするためにシミュレ
ーションが行われる。この場合には、ターゲット装置の
ハードウェアやファームウェアをモデル化して、同等の
動作をコンピュータ上で実現する。シミュレーション装
置は、システムクロック毎にモデル化したファイルの状
態を逐一記録しトレースするよう構成される。こうした
シミュレーションの結果はログファイルに記録され検証
される。
【0003】
【発明が解決しようとする課題】ところで、上記のよう
な従来のシミュレーション装置には次のような解決すべ
き課題があった。例えば、既にシミュレーションを終了
した所定の実行用プログラムに対して一部変更を加えた
ような場合には、シミュレーション装置に新たにそのプ
ログラムを実行させる。この場合、シミュレーション装
置は再び初めから順番にシステムクロックの1クロック
毎にモデル化したファイルの状態を記録する処理を行
う。しかしながら、ごく一部の変更でもこのような全て
のシミュレーション処理を繰り返すようにすると、プロ
グラムの開発時間が著しく長くなるという問題があっ
た。
な従来のシミュレーション装置には次のような解決すべ
き課題があった。例えば、既にシミュレーションを終了
した所定の実行用プログラムに対して一部変更を加えた
ような場合には、シミュレーション装置に新たにそのプ
ログラムを実行させる。この場合、シミュレーション装
置は再び初めから順番にシステムクロックの1クロック
毎にモデル化したファイルの状態を記録する処理を行
う。しかしながら、ごく一部の変更でもこのような全て
のシミュレーション処理を繰り返すようにすると、プロ
グラムの開発時間が著しく長くなるという問題があっ
た。
【0004】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉ターゲット装置をモデル化して、同等の動作
をコンピュータ上で検証するシミュレータ本体と、この
シミュレータ本体の動作を制御するホストコンピュータ
と、シミュレータ本体が旧プログラムによって既に実行
したシミュレーションの結果を格納したログファイル
と、旧プログラムの一部を変更した新プログラムをこの
シミュレータ本体に実行させるとき、両プログラムを比
較して、その変更部分と不変部分とを区別し、不変部分
のみについて、ホストコンピュータでそのプログラムを
実行する実行用プログラムを生成するとともに、この実
行用プログラム中に、変更部分の処理をシミュレータ本
体に渡す命令を含めるホストシミュレーション依頼部と
を備えたことを特徴とするシミュレーション装置。
するため次の構成を採用する。 〈構成1〉ターゲット装置をモデル化して、同等の動作
をコンピュータ上で検証するシミュレータ本体と、この
シミュレータ本体の動作を制御するホストコンピュータ
と、シミュレータ本体が旧プログラムによって既に実行
したシミュレーションの結果を格納したログファイル
と、旧プログラムの一部を変更した新プログラムをこの
シミュレータ本体に実行させるとき、両プログラムを比
較して、その変更部分と不変部分とを区別し、不変部分
のみについて、ホストコンピュータでそのプログラムを
実行する実行用プログラムを生成するとともに、この実
行用プログラム中に、変更部分の処理をシミュレータ本
体に渡す命令を含めるホストシミュレーション依頼部と
を備えたことを特徴とするシミュレーション装置。
【0005】〈構成2〉構成1において、ホストシミュ
レーション依頼部は、シミュレータ本体の実行用プログ
ラムを逆コンパイルしてからホストコンピュータの実行
用プログラムにコンパイルすることを特徴とするシミュ
レーション装置。
レーション依頼部は、シミュレータ本体の実行用プログ
ラムを逆コンパイルしてからホストコンピュータの実行
用プログラムにコンパイルすることを特徴とするシミュ
レーション装置。
【0006】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例〉図1は、本発明のシミュレーション装置具体
例ブロック図である。図の装置は、ホストCPU(ホス
トコンピュータ)1がシミュレータ本体2を制御してシ
ミュレーションを実行するように構成されている。シミ
ュレータ本体2は、ターゲット装置をモデル化してモデ
リングファイル3に格納し、ターゲット装置と同等の動
作をコンピュータ上で検証する機能を持つ。この構成そ
のものは従来品と同様である。モデリングファイル3に
は、シミュレートCPU4、ROMモデル5、DRAM
モデル6、周辺I/Oモデル7が設定されている。ま
た、ターゲット装置の各ハードウェアの端子に関する情
報を格納するために外部ピン定義ファイル8が設けられ
る。この他、シミュレーションの結果を格納するログフ
ァイル9がシミュレータ本体2に接続されている。
例を用いて説明する。 〈具体例〉図1は、本発明のシミュレーション装置具体
例ブロック図である。図の装置は、ホストCPU(ホス
トコンピュータ)1がシミュレータ本体2を制御してシ
ミュレーションを実行するように構成されている。シミ
ュレータ本体2は、ターゲット装置をモデル化してモデ
リングファイル3に格納し、ターゲット装置と同等の動
作をコンピュータ上で検証する機能を持つ。この構成そ
のものは従来品と同様である。モデリングファイル3に
は、シミュレートCPU4、ROMモデル5、DRAM
モデル6、周辺I/Oモデル7が設定されている。ま
た、ターゲット装置の各ハードウェアの端子に関する情
報を格納するために外部ピン定義ファイル8が設けられ
る。この他、シミュレーションの結果を格納するログフ
ァイル9がシミュレータ本体2に接続されている。
【0007】一方、本発明においては、シミュレータ本
体2が実行するシミュレーションの一部をホストCPU
1が分担する。このために、ホストCPU1の実行用プ
ログラムを生成するホストシミュレーション依頼部10
が設けられている。ホストシミュレーション依頼部10
には、逆コンパイル処理部11、逆コンパイル済みソー
スファイル12及びホストCPU用実行ファイル13が
設けられる。この発明の装置は、シミュレータ本体2が
旧プログラムによって既に実行したシミュレーションの
結果をログファイル9に格納しておくとともに、旧プロ
グラムの一部を変更した新プログラムをシミュレータ本
体2が実行する場合に、不変部分をホストCPU1が実
行するよう構成されている。
体2が実行するシミュレーションの一部をホストCPU
1が分担する。このために、ホストCPU1の実行用プ
ログラムを生成するホストシミュレーション依頼部10
が設けられている。ホストシミュレーション依頼部10
には、逆コンパイル処理部11、逆コンパイル済みソー
スファイル12及びホストCPU用実行ファイル13が
設けられる。この発明の装置は、シミュレータ本体2が
旧プログラムによって既に実行したシミュレーションの
結果をログファイル9に格納しておくとともに、旧プロ
グラムの一部を変更した新プログラムをシミュレータ本
体2が実行する場合に、不変部分をホストCPU1が実
行するよう構成されている。
【0008】このため、新プログラムのソースファイル
14をコンパイルしてROMモデル5に格納する際に、
ホストシミュレーション依頼部10は、新プログラムと
旧プログラムとを比較して、その変更部分と不変部分と
を区別する。不変部分については、逆コンパイル処理部
11が逆コンパイル済みソースファイル12を生成す
る。この逆コンパイル済みソースファイル12を、ホス
トCPU1が実行できるホストCPU用実行ファイル1
3にコンパイルしてホストCPU1に供給するように構
成されている。なお、新プログラムと旧プログラムを比
較した場合の変更部分については、シミュレータ本体2
が従来通り1ステップずつ実行しログファイル9にその
結果を書き込む。以上が本発明の装置の構成及び動作の
概要である。以下、その動作等を詳細に説明する。
14をコンパイルしてROMモデル5に格納する際に、
ホストシミュレーション依頼部10は、新プログラムと
旧プログラムとを比較して、その変更部分と不変部分と
を区別する。不変部分については、逆コンパイル処理部
11が逆コンパイル済みソースファイル12を生成す
る。この逆コンパイル済みソースファイル12を、ホス
トCPU1が実行できるホストCPU用実行ファイル1
3にコンパイルしてホストCPU1に供給するように構
成されている。なお、新プログラムと旧プログラムを比
較した場合の変更部分については、シミュレータ本体2
が従来通り1ステップずつ実行しログファイル9にその
結果を書き込む。以上が本発明の装置の構成及び動作の
概要である。以下、その動作等を詳細に説明する。
【0009】図2は、本発明の装置の動作フローチャー
トである。この図のステップS1〜ステップS9までの
処理は従来通りの処理であって、ステップS1で全体を
初期化し、ステップS2で1クロックずつシステムクロ
ックを増加させ、ステップS4〜ステップS7で各モデ
ルの状態を1ステップずつ進ませて、ステップS8でそ
の結果をログファイルに書き込む。
トである。この図のステップS1〜ステップS9までの
処理は従来通りの処理であって、ステップS1で全体を
初期化し、ステップS2で1クロックずつシステムクロ
ックを増加させ、ステップS4〜ステップS7で各モデ
ルの状態を1ステップずつ進ませて、ステップS8でそ
の結果をログファイルに書き込む。
【0010】まず、ステップS1の初期化処理について
説明する。図1に示したように、モデリングファイル3
には、シミュレートCPU4の他に、ROMモデル5、
DRAMモデル6、周辺I/Oモデル7が設けられる。
シミュレートCPU4は、ターゲット装置のCPU(中
央処理装置)をモデル化したものである。ROMモデル
5は、ファームウェアを保持するリード・オンリ・メモ
リをモデル化したものである。DRAMモデル6は、タ
ーゲット装置のデータ読み書き自由なダイナミック・ラ
ンダム・アクセス・メモリをモデル化したものである。
周辺I/Oモデル7は、ターゲット装置の入出力回路を
モデル化したものである。初期段階では、外部ピン定義
ファイル8には何も書かれていない。図2のステップS
2における初期化処理で、シミュレータ本体2がモデリ
ングファイル3を参照し、各モジュールから外部に接続
する信号線の一覧を取り出す。
説明する。図1に示したように、モデリングファイル3
には、シミュレートCPU4の他に、ROMモデル5、
DRAMモデル6、周辺I/Oモデル7が設けられる。
シミュレートCPU4は、ターゲット装置のCPU(中
央処理装置)をモデル化したものである。ROMモデル
5は、ファームウェアを保持するリード・オンリ・メモ
リをモデル化したものである。DRAMモデル6は、タ
ーゲット装置のデータ読み書き自由なダイナミック・ラ
ンダム・アクセス・メモリをモデル化したものである。
周辺I/Oモデル7は、ターゲット装置の入出力回路を
モデル化したものである。初期段階では、外部ピン定義
ファイル8には何も書かれていない。図2のステップS
2における初期化処理で、シミュレータ本体2がモデリ
ングファイル3を参照し、各モジュールから外部に接続
する信号線の一覧を取り出す。
【0011】図3には、ROMモデル5の外部ピン定義
の内容説明図を示す。例えば、ROMモデル5はアドレ
ス線がA0〜A15、データ線がD0〜D15、チップ
セレクト線CS、リード線RDを持つ。また、チップセ
レクト線CSとリード線RDがアクティブになってか
ら、データ線D0〜D15の有効なデータを読み出せる
までの時間をアクセス時間とし、これを150nSと定
義している。このようにROMモデルを定義すると次の
ようにその動作がシミュレートされる。
の内容説明図を示す。例えば、ROMモデル5はアドレ
ス線がA0〜A15、データ線がD0〜D15、チップ
セレクト線CS、リード線RDを持つ。また、チップセ
レクト線CSとリード線RDがアクティブになってか
ら、データ線D0〜D15の有効なデータを読み出せる
までの時間をアクセス時間とし、これを150nSと定
義している。このようにROMモデルを定義すると次の
ようにその動作がシミュレートされる。
【0012】図4には、ROMモデルのシミュレート動
作フローチャートを示す。まず、初めにステップS1に
おいて、チップセレクト線CSがアクティブかどうかが
判断される。更に、ステップS2において、リード線R
Dがアクティブかどうかが判断される。いずれもアクテ
ィブであれば、アドレス線A0〜A15の内容に変化が
あったかどうかがステップS3において判断される。変
化がなければ初めて正常な読み出しが可能となる。
作フローチャートを示す。まず、初めにステップS1に
おいて、チップセレクト線CSがアクティブかどうかが
判断される。更に、ステップS2において、リード線R
Dがアクティブかどうかが判断される。いずれもアクテ
ィブであれば、アドレス線A0〜A15の内容に変化が
あったかどうかがステップS3において判断される。変
化がなければ初めて正常な読み出しが可能となる。
【0013】一方、チップセレクト線CSやリード線R
Dのいずれかがアクティブでない場合にはROMモデル
は動作しないから、ステップS4において、tSTAR
Tを初期値tに設定する。このtは、現在時刻である。
そして、ステップS5において、データの読み出せない
ハイインピーダンス状態にして処理を元に戻す。また、
ステップS3において、アドレス線A0〜A15に何ら
かの変化があった場合には、特定のアドレスからのデー
タ読み出しが不可能なためステップS6に進み、tST
ARTをtに初期化してステップS7に進み、データ不
定出力という状態にする。
Dのいずれかがアクティブでない場合にはROMモデル
は動作しないから、ステップS4において、tSTAR
Tを初期値tに設定する。このtは、現在時刻である。
そして、ステップS5において、データの読み出せない
ハイインピーダンス状態にして処理を元に戻す。また、
ステップS3において、アドレス線A0〜A15に何ら
かの変化があった場合には、特定のアドレスからのデー
タ読み出しが不可能なためステップS6に進み、tST
ARTをtに初期化してステップS7に進み、データ不
定出力という状態にする。
【0014】正常に読み出しが可能な場合にはステップ
S3からステップS8に進み、現在時刻tからアクセス
開始時刻tSTARTを差し引いた時間が所定のアクセ
ス時間tACC以下かどうかを判断する。このtACC
は、図3に示したアクセス時間150nSである。従っ
て、このアクセス時間以上経過して初めてステップS9
に進み、データ出力を得る。このアクセス時間を経過し
ていない場合にはステップS7に進み、データ不定出力
とする。この結果、外部ピン定義ファイルに定義された
アクセス時間を満たすと、ROMモデルから該当するア
ドレスに格納された1個のデータが出力されるというシ
ミュレーションができる。他のモデルについても同様の
処理によってシミュレーションが実行される。
S3からステップS8に進み、現在時刻tからアクセス
開始時刻tSTARTを差し引いた時間が所定のアクセ
ス時間tACC以下かどうかを判断する。このtACC
は、図3に示したアクセス時間150nSである。従っ
て、このアクセス時間以上経過して初めてステップS9
に進み、データ出力を得る。このアクセス時間を経過し
ていない場合にはステップS7に進み、データ不定出力
とする。この結果、外部ピン定義ファイルに定義された
アクセス時間を満たすと、ROMモデルから該当するア
ドレスに格納された1個のデータが出力されるというシ
ミュレーションができる。他のモデルについても同様の
処理によってシミュレーションが実行される。
【0015】図5は、ROMモデルの外部ピン信号のタ
イムチャートである。上記のようなシミュレーションを
行った場合の各信号レベルは、この図に示すようにして
変換する。横軸は時間をnS(ナノ秒)で示したもので
ある。(a)は、30nSの周期で供給されるシステム
クロックを示す。(b)は、図に示す30nSのタイミ
ングでアクティブになり、270nSのタイミングで無
効になるチップセレクト線CSのレベルを示す。(c)
は、60nSでアクティブになり、270nSで無効に
なるリード信号線RDの信号レベルを示す。(d)はデ
ータ線D0〜D15の内容で、90nSから240nS
まで不定データ、240nS〜270nSまでの間読み
出されるデータを示す。このようにROMモデルが動作
することから、これをシミュレーションすると、次に示
すような結果が得られる。
イムチャートである。上記のようなシミュレーションを
行った場合の各信号レベルは、この図に示すようにして
変換する。横軸は時間をnS(ナノ秒)で示したもので
ある。(a)は、30nSの周期で供給されるシステム
クロックを示す。(b)は、図に示す30nSのタイミ
ングでアクティブになり、270nSのタイミングで無
効になるチップセレクト線CSのレベルを示す。(c)
は、60nSでアクティブになり、270nSで無効に
なるリード信号線RDの信号レベルを示す。(d)はデ
ータ線D0〜D15の内容で、90nSから240nS
まで不定データ、240nS〜270nSまでの間読み
出されるデータを示す。このようにROMモデルが動作
することから、これをシミュレーションすると、次に示
すような結果が得られる。
【0016】図6には、ROMモデルのログファイル内
容説明図を示す。図の最も左側の欄は、30nS毎に時
間を表示した欄である。その右側の欄はチップセレクト
線CSのレベルを示す。更に、その右側の欄はリード信
号線RDのレベルを示す。そして、最も右側の欄がデー
タD0〜D15の状態を示す。図1に示すシミュレータ
本体2がシミュレーションを実行する場合には、1クロ
ック毎に各部の状態を図6に示すような形式のログファ
イルに記録していく。この内容は図5のタイムチャート
と一致する。
容説明図を示す。図の最も左側の欄は、30nS毎に時
間を表示した欄である。その右側の欄はチップセレクト
線CSのレベルを示す。更に、その右側の欄はリード信
号線RDのレベルを示す。そして、最も右側の欄がデー
タD0〜D15の状態を示す。図1に示すシミュレータ
本体2がシミュレーションを実行する場合には、1クロ
ック毎に各部の状態を図6に示すような形式のログファ
イルに記録していく。この内容は図5のタイムチャート
と一致する。
【0017】再び図2に戻って、このフローチャートの
具体的な説明を行う。ステップS1の初期化処理は既に
説明した通りである。ステップS2では、まず1クロッ
クを増加させる処理である。そして、ステップS3でホ
ストCPUのオブジェクトかどうかを判断する。シミュ
レータ本体2(図1)の実行すべきプログラムの場合に
はステップS4に移り、シミュレートCPU4を読み出
し実行させる。ステップS5ではROMモデルを読み出
し、ステップS6ではDRAMモデルを読み出す。ステ
ップS7では、I/Oモデルを呼び出して、これらの各
モデルが実行した結果をステップS8でログファイルに
書き込む。ステップS9では、ログが終了したかどうか
を判断し、別の処理があれば再びステップS2に戻って
クロックを増加させる。
具体的な説明を行う。ステップS1の初期化処理は既に
説明した通りである。ステップS2では、まず1クロッ
クを増加させる処理である。そして、ステップS3でホ
ストCPUのオブジェクトかどうかを判断する。シミュ
レータ本体2(図1)の実行すべきプログラムの場合に
はステップS4に移り、シミュレートCPU4を読み出
し実行させる。ステップS5ではROMモデルを読み出
し、ステップS6ではDRAMモデルを読み出す。ステ
ップS7では、I/Oモデルを呼び出して、これらの各
モデルが実行した結果をステップS8でログファイルに
書き込む。ステップS9では、ログが終了したかどうか
を判断し、別の処理があれば再びステップS2に戻って
クロックを増加させる。
【0018】ここで、上記のように、図1に示したシミ
ュレータ本体2の処理は1クロック分ずつ行われるが、
このような動作の結果が予めわかっていれば、例えばR
OMモデルに入力するデータやアドレスを指定し、直ち
にその出力や信号レベルを予測してシミュレーション結
果を得ることは容易である。従って、既に実行された旧
プログラムによるシミュレーション結果を利用し、その
一部を変更した新プログラムを用いてシミュレーション
を実行する場合、新たに変更された部分を除き、別のコ
ンピュータを用いた高速処理が可能となる。この別のコ
ンピュータとしてシミュレータ本体2を制御するホスト
CPU1を利用する。
ュレータ本体2の処理は1クロック分ずつ行われるが、
このような動作の結果が予めわかっていれば、例えばR
OMモデルに入力するデータやアドレスを指定し、直ち
にその出力や信号レベルを予測してシミュレーション結
果を得ることは容易である。従って、既に実行された旧
プログラムによるシミュレーション結果を利用し、その
一部を変更した新プログラムを用いてシミュレーション
を実行する場合、新たに変更された部分を除き、別のコ
ンピュータを用いた高速処理が可能となる。この別のコ
ンピュータとしてシミュレータ本体2を制御するホスト
CPU1を利用する。
【0019】図2のステップS3では、こうしてプログ
ラムの各ステップが、ホストCPUのオブジェクトか通
常通りのシミュレータ本体2により実行されるかを判断
する。ホストCPUのオブジェクトの場合にはステップ
S10に進み、ホストCPUにおいて該当する実行ファ
イルを実行する。なお、その中に旧プログラムでは実行
していない変更部分がある場合には、処理がシミュレー
タ本体2の側に返される。こうした動作のためのプログ
ラム生成手段を具体的に図解したのが図7である。
ラムの各ステップが、ホストCPUのオブジェクトか通
常通りのシミュレータ本体2により実行されるかを判断
する。ホストCPUのオブジェクトの場合にはステップ
S10に進み、ホストCPUにおいて該当する実行ファ
イルを実行する。なお、その中に旧プログラムでは実行
していない変更部分がある場合には、処理がシミュレー
タ本体2の側に返される。こうした動作のためのプログ
ラム生成手段を具体的に図解したのが図7である。
【0020】図7と図8には、本発明によるプログラム
ファイル生成手順説明図を示す。例えば、図に示したよ
うに、既に旧プログラムの実行ファイル16がシミュレ
ータ本体2によって実行され、所定のログファイルが生
成されているとする。このとき、その一部を変更した新
プログラムのソースファイル14が用意された。新プロ
グラムのソースファイル14は、図1に示すROMモデ
ル5に格納される際に実行用プログラムにコンパイルさ
れる。その結果、図7に示す新プログラムの実行ファイ
ル15が生成されて、旧プログラムの実行ファイル16
と、図1に示すホストシミュレーション依頼部10によ
って比較処理される。
ファイル生成手順説明図を示す。例えば、図に示したよ
うに、既に旧プログラムの実行ファイル16がシミュレ
ータ本体2によって実行され、所定のログファイルが生
成されているとする。このとき、その一部を変更した新
プログラムのソースファイル14が用意された。新プロ
グラムのソースファイル14は、図1に示すROMモデ
ル5に格納される際に実行用プログラムにコンパイルさ
れる。その結果、図7に示す新プログラムの実行ファイ
ル15が生成されて、旧プログラムの実行ファイル16
と、図1に示すホストシミュレーション依頼部10によ
って比較処理される。
【0021】ここで、両者は図に示す不一致部分17を
除き同一である。そこで、図1に示す逆コンパイル処理
部11は、その共通部分について逆コンパイル処理を行
い、ソースファイル18を生成する。更に、図1に示す
ホストシミュレーション依頼部10は逆コンパイル済み
のソースファイル12に対しBREAKMACROと記
述したトラップ19を挿入する。このトラップ19は、
ホストコンピュータがこのプログラムを実行中、一旦処
理を停止し、その処理をシミュレータ本体2に渡す命令
である。
除き同一である。そこで、図1に示す逆コンパイル処理
部11は、その共通部分について逆コンパイル処理を行
い、ソースファイル18を生成する。更に、図1に示す
ホストシミュレーション依頼部10は逆コンパイル済み
のソースファイル12に対しBREAKMACROと記
述したトラップ19を挿入する。このトラップ19は、
ホストコンピュータがこのプログラムを実行中、一旦処
理を停止し、その処理をシミュレータ本体2に渡す命令
である。
【0022】即ち、旧プログラムと新プログラムの変更
部分にある「MOVE.L D2,D1」を検出し、こ
の命令が含まれる関数「funcB()」をリストアッ
プする。次に、先の処理で検出された「func
B()」を逆コンパイル処理で生成されたソースファイ
ルから削除し、シミュレートCPUモデルによってシミ
ュレーションさせるためのソフトウェア割り込みBRE
AKMACROを埋め込み、逆コンパイル済みソースフ
ァイルを生成する。上記トラップ19はソフトウェア割
り込みを実行させるためのマクロ命令である。そして、
最後に、図7に示すように、逆コンパイル済みソースフ
ァイル12をホストCPU用実行ファイル13にコンパ
イルして準備を終わる。なお、一旦逆コンパイルしなけ
ればならないのは、一般に、シミュレータ本体とホスト
CPUとが例えば全く異なるOSにより動作するからで
ある。
部分にある「MOVE.L D2,D1」を検出し、こ
の命令が含まれる関数「funcB()」をリストアッ
プする。次に、先の処理で検出された「func
B()」を逆コンパイル処理で生成されたソースファイ
ルから削除し、シミュレートCPUモデルによってシミ
ュレーションさせるためのソフトウェア割り込みBRE
AKMACROを埋め込み、逆コンパイル済みソースフ
ァイルを生成する。上記トラップ19はソフトウェア割
り込みを実行させるためのマクロ命令である。そして、
最後に、図7に示すように、逆コンパイル済みソースフ
ァイル12をホストCPU用実行ファイル13にコンパ
イルして準備を終わる。なお、一旦逆コンパイルしなけ
ればならないのは、一般に、シミュレータ本体とホスト
CPUとが例えば全く異なるOSにより動作するからで
ある。
【0023】図9と図10に、本発明の装置の具体的な
動作説明図を示す。図に示すように、図の左側にはホス
トCPU1の処理を示し、真ん中にはイベントキュー2
0を示し、右端にはシミュレータ本体2の処理を示す。
これは、上記のように説明した要領で作成された新たな
シミュレーションプログラムが実行されていく過程を示
している。まず、ステップS1において、ホストCPU
は、funcAを実行する。この部分の処理は図1に示
したシミュレートCPU4が実行すべき処理であるが、
既に実行されたシミュレーションによってログファイル
9の中にその結果が書き込まれていることから、ホスト
CPU1が一挙に高速処理を行う。従って、この部分の
処理を終えると、図2に示したフローチャートのステッ
プS2において、クロックが一挙に相当するステップだ
け増加される。
動作説明図を示す。図に示すように、図の左側にはホス
トCPU1の処理を示し、真ん中にはイベントキュー2
0を示し、右端にはシミュレータ本体2の処理を示す。
これは、上記のように説明した要領で作成された新たな
シミュレーションプログラムが実行されていく過程を示
している。まず、ステップS1において、ホストCPU
は、funcAを実行する。この部分の処理は図1に示
したシミュレートCPU4が実行すべき処理であるが、
既に実行されたシミュレーションによってログファイル
9の中にその結果が書き込まれていることから、ホスト
CPU1が一挙に高速処理を行う。従って、この部分の
処理を終えると、図2に示したフローチャートのステッ
プS2において、クロックが一挙に相当するステップだ
け増加される。
【0024】次に、ステップS2において、ホストCP
U1がメモリリードを実行する。ここでは、イベントキ
ュー20にメモリリードという処理が設定され、シミュ
レータ本体2のROMモデルに対する読み出し処理が実
行される。そして、その処理結果がログファイルに書き
込まれる。イベントキュー20に設定されたデータ出力
というイベントでは、DRAMモデルからデータが読み
込まれ、ホストCPU1の側に送り込まれる。その結果
もログファイルに書き込まれる。これらの処理も旧プロ
グラムで実行されており、ログファイルに格納されてい
るから、ホストCPUは入出力に関係の無い中間的な処
理をパスしてステップを進めることができる。次のステ
ップS3では、残りのfuncAがホストCPU1にお
いて実行され、続いてfuncBが実行に進む。このよ
うに、既に処理済みのログファイルを参照すれば、ホス
トCPU1において高速処理される。
U1がメモリリードを実行する。ここでは、イベントキ
ュー20にメモリリードという処理が設定され、シミュ
レータ本体2のROMモデルに対する読み出し処理が実
行される。そして、その処理結果がログファイルに書き
込まれる。イベントキュー20に設定されたデータ出力
というイベントでは、DRAMモデルからデータが読み
込まれ、ホストCPU1の側に送り込まれる。その結果
もログファイルに書き込まれる。これらの処理も旧プロ
グラムで実行されており、ログファイルに格納されてい
るから、ホストCPUは入出力に関係の無い中間的な処
理をパスしてステップを進めることができる。次のステ
ップS3では、残りのfuncAがホストCPU1にお
いて実行され、続いてfuncBが実行に進む。このよ
うに、既に処理済みのログファイルを参照すれば、ホス
トCPU1において高速処理される。
【0025】ここで、funcBにソフトウェア割り込
みCPUEMULATEが存在すると、シミュレータ本
体2のシミュレートCPUに処理が移される。イベント
キュー20を参照してわかるように、ここでは命令リー
ドと命令出力あるいはその他の各種の命令が実行され
る。シミュレータ本体2は、その都度従来と同様の手順
でシミュレートCPU4、ROMモデル5、DRAMモ
デル6、I/Oモデル7等を1クロック分ずつ1ステッ
プずつ動作させ、その状態をログファイルに書き込んで
いく。
みCPUEMULATEが存在すると、シミュレータ本
体2のシミュレートCPUに処理が移される。イベント
キュー20を参照してわかるように、ここでは命令リー
ドと命令出力あるいはその他の各種の命令が実行され
る。シミュレータ本体2は、その都度従来と同様の手順
でシミュレートCPU4、ROMモデル5、DRAMモ
デル6、I/Oモデル7等を1クロック分ずつ1ステッ
プずつ動作させ、その状態をログファイルに書き込んで
いく。
【0026】図9に移り、ステップS5では、ホストC
PU1のfuncBという処理が終了し、funcCと
いう処理に移る。ここでもメモリライトという処理がス
テップS6に含まれる。そこで、再びホストCPU1は
シミュレータ本体2のROMモデルやDRAMモデル等
を操作してメモリライト処理やデータ書き込み処理を高
速で実行し、ログをログファイルに書き込む。そして、
最後にステップS7において、ホストCPUのfunc
Cの処理を終了してシミュレーションを終える。なお、
更にシミュレーション処理が続く場合には他の処理へ移
る。
PU1のfuncBという処理が終了し、funcCと
いう処理に移る。ここでもメモリライトという処理がス
テップS6に含まれる。そこで、再びホストCPU1は
シミュレータ本体2のROMモデルやDRAMモデル等
を操作してメモリライト処理やデータ書き込み処理を高
速で実行し、ログをログファイルに書き込む。そして、
最後にステップS7において、ホストCPUのfunc
Cの処理を終了してシミュレーションを終える。なお、
更にシミュレーション処理が続く場合には他の処理へ移
る。
【0027】上記のような処理において、ホストCPU
1の側で実行されるfuncAやfuncCの場合に
は、既に実行された旧プログラムと内容が同一であるた
め、そのシミュレーション結果が正確に予測できる。こ
のためホストCPUは、例えばDRAMのモデルのアク
セスを実行するとした場合に、アクセス時間が100n
Sとすると、100nSを越えた30nS×4=120
nSの時間だけ一気に処理を進めて次に進む。従って、
この部分の処理をシミュレータ本体2が1クロックずつ
やり直す場合に比べて十分に早くシミュレーションを実
行できる。即ち、予めROMモデルやDRAMモデル、
I/Oモデル等の各モデルの動作がわかっているため、
その入力信号に対応する動作や出力信号を予測して、数
ステップ以上飛び越して処理を進めることができるか
ら、ホストCPU1が肩代りした分だけ全体としてシミ
ュレーションのための時間が短縮化され、高速になる。
1の側で実行されるfuncAやfuncCの場合に
は、既に実行された旧プログラムと内容が同一であるた
め、そのシミュレーション結果が正確に予測できる。こ
のためホストCPUは、例えばDRAMのモデルのアク
セスを実行するとした場合に、アクセス時間が100n
Sとすると、100nSを越えた30nS×4=120
nSの時間だけ一気に処理を進めて次に進む。従って、
この部分の処理をシミュレータ本体2が1クロックずつ
やり直す場合に比べて十分に早くシミュレーションを実
行できる。即ち、予めROMモデルやDRAMモデル、
I/Oモデル等の各モデルの動作がわかっているため、
その入力信号に対応する動作や出力信号を予測して、数
ステップ以上飛び越して処理を進めることができるか
ら、ホストCPU1が肩代りした分だけ全体としてシミ
ュレーションのための時間が短縮化され、高速になる。
【0028】
【発明の効果】以上のように、既に過去にシミュレーシ
ョンを実行したログファイルを作成しておき、新たにシ
ミュレーションを実行する場合には、旧プログラムと新
プログラムとを比較して共通部分をホストコンピュータ
に実行させ、不一致部分をシミュレータ本体が実行する
ため、全てをシミュレータ本体が実行する場合に比べて
シミュレーション時間が短縮できる。従って、ターゲッ
ト装置のファームウェアを少しずつ変更しながら繰り返
しシミュレーションして、その内容を検証していく場合
に結果の出力が早く、能率と生産性の向上が図られる。
ョンを実行したログファイルを作成しておき、新たにシ
ミュレーションを実行する場合には、旧プログラムと新
プログラムとを比較して共通部分をホストコンピュータ
に実行させ、不一致部分をシミュレータ本体が実行する
ため、全てをシミュレータ本体が実行する場合に比べて
シミュレーション時間が短縮できる。従って、ターゲッ
ト装置のファームウェアを少しずつ変更しながら繰り返
しシミュレーションして、その内容を検証していく場合
に結果の出力が早く、能率と生産性の向上が図られる。
【0029】また、ホストシミュレーション依頼部に逆
コンパイル部を設けたので、シミュレータ本体と異なる
OS(オペレーティング・システム)で動作するような
ホストCPUに、同一のプログラムを実行させることが
できる。そして、そのプログラム中にシミュレータ本体
に渡す命令を書き込むようにすれば効率良く、自動的に
不一致部分のシミュレーションが可能となる。
コンパイル部を設けたので、シミュレータ本体と異なる
OS(オペレーティング・システム)で動作するような
ホストCPUに、同一のプログラムを実行させることが
できる。そして、そのプログラム中にシミュレータ本体
に渡す命令を書き込むようにすれば効率良く、自動的に
不一致部分のシミュレーションが可能となる。
【図1】本発明のシミュレーション装置具体例を示すブ
ロック図である。
ロック図である。
【図2】本発明の装置の動作フローチャートである。
【図3】外部ピン定義ファイルの内容説明図である。
【図4】ROMモデルの動作フローチャートである。
【図5】ROMモデルの外部ピン信号のタイムチャート
である。
である。
【図6】ROMモデルのログファイル内容説明図であ
る。
る。
【図7】本発明によるプログラムファイル生成手順説明
図(その1)である。
図(その1)である。
【図8】本発明によるプログラムファイル生成手順説明
図(その2)である。
図(その2)である。
【図9】本発明の装置の具体的な動作説明図(その1)
である。
である。
【図10】本発明の装置の具体的な動作説明図(その
2)である。
2)である。
1 ホストCPU 2 シミュレータ本体 3 モデリングファイル 9 ログファイル 10 ホストシミュレーション依頼部 14 新プログラムのソースファイル
Claims (2)
- 【請求項1】 ターゲット装置をモデル化して、同等の
動作をコンピュータ上で検証するシミュレータ本体と、 このシミュレータ本体の動作を制御するホストコンピュ
ータと、 シミュレータ本体が旧プログラムによって既に実行した
シミュレーションの結果を格納したログファイルと、 旧プログラムの一部を変更した新プログラムをこのシミ
ュレータ本体に実行させるとき、両プログラムを比較し
て、その変更部分と不変部分とを区別し、不変部分のみ
について、ホストコンピュータでそのプログラムを実行
する実行用プログラムを生成するとともに、この実行用
プログラム中に、変更部分の処理をシミュレータ本体に
渡す命令を含めるホストシミュレーション依頼部とを備
えたことを特徴とするシミュレーション装置。 - 【請求項2】 請求項1において、 ホストシミュレーション依頼部は、 シミュレータ本体の実行用プログラムを逆コンパイルし
てからホストコンピュータの実行用プログラムにコンパ
イルすることを特徴とするシミュレーション装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8358784A JPH10187494A (ja) | 1996-12-27 | 1996-12-27 | シミュレーション装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8358784A JPH10187494A (ja) | 1996-12-27 | 1996-12-27 | シミュレーション装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10187494A true JPH10187494A (ja) | 1998-07-21 |
Family
ID=18461096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8358784A Pending JPH10187494A (ja) | 1996-12-27 | 1996-12-27 | シミュレーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10187494A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008276735A (ja) * | 2007-04-03 | 2008-11-13 | Toshiba Corp | プログラムコード変換装置及びプログラムコード変換方法 |
US7860697B2 (en) | 2005-12-20 | 2010-12-28 | Canon Kabushiki Kaisha | Simulating system, simulating apparatus, image forming apparatus, and simulating method |
-
1996
- 1996-12-27 JP JP8358784A patent/JPH10187494A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7860697B2 (en) | 2005-12-20 | 2010-12-28 | Canon Kabushiki Kaisha | Simulating system, simulating apparatus, image forming apparatus, and simulating method |
JP2008276735A (ja) * | 2007-04-03 | 2008-11-13 | Toshiba Corp | プログラムコード変換装置及びプログラムコード変換方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8180620B2 (en) | Apparatus and method for performing hardware and software co-verification testing | |
US6285914B1 (en) | Verification method by means of comparing internal state traces | |
JP4157771B2 (ja) | 組込み制御環境におけるリモート入出力機能への効率的なアクセスのための方法およびシステム | |
JP2007310449A (ja) | ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法 | |
JP2000132430A (ja) | 信号処理装置 | |
JPH10187494A (ja) | シミュレーション装置 | |
JP2000259445A (ja) | ソフトウェア/ハードウェア協調シミュレーション方法 | |
JP2944321B2 (ja) | 論理評価システム | |
JP3629947B2 (ja) | プログラマブルコントローラシステム、プログラマブルコントローラ支援装置、プログラマブルコントローラ、および、記録媒体 | |
JPH08180094A (ja) | アーキテクチャ・シミュレータ | |
JP4893028B2 (ja) | チップセットのエミュレーション装置および方法 | |
JPH10221410A (ja) | Lsiの自動論理検証方式 | |
JP2001209555A (ja) | 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体 | |
JP2011145880A (ja) | 半導体集積回路の論理検証にて使用するテストタスクの生成方法 | |
JPH10187484A (ja) | シミュレータ | |
JP3424548B2 (ja) | 組み込み機器用ソフトウエア論理シミュレータ | |
JPS63126043A (ja) | 論理シミユレ−タ | |
JP3130798B2 (ja) | バス転送装置 | |
JP2010009279A (ja) | デバッグ方法およびデバッグプログラム | |
JPH02118739A (ja) | データ処理装置 | |
JP2004252824A (ja) | 回路検証方法、回路シミュレータ、回路検証プログラム | |
JPH11282693A (ja) | Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2001256079A (ja) | ソフトウェアのデバッグ方法および論理回路のデバッグ方法 | |
JPH064298A (ja) | プログラム開発環境構築システム | |
CN117251118A (zh) | 支持虚拟NVMe仿真与集成方法及系统 |