JP2005332162A - ハードウェア/ソフトウェア協調シミュレーション方式及びその方法 - Google Patents

ハードウェア/ソフトウェア協調シミュレーション方式及びその方法 Download PDF

Info

Publication number
JP2005332162A
JP2005332162A JP2004149326A JP2004149326A JP2005332162A JP 2005332162 A JP2005332162 A JP 2005332162A JP 2004149326 A JP2004149326 A JP 2004149326A JP 2004149326 A JP2004149326 A JP 2004149326A JP 2005332162 A JP2005332162 A JP 2005332162A
Authority
JP
Japan
Prior art keywords
change detection
hardware
signal
system simulator
output
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.)
Granted
Application number
JP2004149326A
Other languages
English (en)
Other versions
JP4470582B2 (ja
Inventor
Yuka Hayashi
由加 林
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004149326A priority Critical patent/JP4470582B2/ja
Publication of JP2005332162A publication Critical patent/JP2005332162A/ja
Application granted granted Critical
Publication of JP4470582B2 publication Critical patent/JP4470582B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】ハードウェアエミュレータとシステムシミュレータの協調シミュレーション環境において、ハードウェアエミュレータとシステムシミュレータ間の信号数を減らすことなく通信量を減少させて、シミュレーション動作スピードを向上させる。
【解決手段】ハードウェアエミュレータは、ハードウェアエミュレータからシステムシミュレータに出力する出力信号が変化した時のみ前記システムシミュレータに対し変化検出信号を出力する変化検出回路を備え、システムシミュレータは前記変化検出信号が出力された時のみ前記出力信号を取り込む。
【選択図】 図1

Description

本発明はハードウェア/ソフトウェア協調シミュレーション方式及びその方法に関し、特に、ハードウェアエミュレータとシステムシミュレータの協調シミュレーション環境において、ハードウェアエミュレータとシステムシミュレータ間の信号数を減らすことなく通信量を減少させて、シミュレーション動作スピードを向上させることを可能とする、ハードウェア/ソフトウェア協調シミュレーション方式及びその方法に関する。
LSI(Large・Scale・Integrated・Circuit:大規模集積回路)システムの設計においては、システムアーキテクチャの検証および性能評価を、シミュレーションによって行うことが一般的となってきている。シミュレーションの方式は様々であるが、一例として、LSI等の大規模回路の論理シミュレーションを高速化するために、ハードウェアエミュレータ等を用いたシミュレーションアクセラレータと呼ばれる専用のハードウェアも用いられている(例えば、特許文献1参照。)。
シミュレーションアクセラレータは、通常、1つの筐体内に複数枚の基板を備えて構成され、各基板に組み込まれている多数のプログラマブル素子に、シミュレーション対象となる回路の論理を書き込んでおくようになっている。このことにより、実際に回路を作成することなく、シミュレーションアクセラレータを、シミュレーション対象の回路として動作させることができるようになっている。
しかし、近年のLSIの一層の大規模化や、また、プログラマブル素子の規模制限などにより、LSIの全ての論理回路をシミュレーションアクセラレータ或いはハードウェアエミュレータ上に実現することが困難な状況にもなってきている。そこで、ソフトウェアによりシミュレーションを行うシステムシミュレータ(或いは、サイクルベースシミュレータ)とハードウェアエミュレータとを協調させて動作させることによってシミュレーションを行う協調シミュレーション方式が用いられるようになってきている。
図9に示す従来の協調シミュレーション方式においては、システムシミュレータ1とハードウェアエミュレータ2からなる協調シミュレーション環境を構築している。そして、検証したいLSIシステムのアーキテクチャは、ソフトウェアでシミュレートされる動作モデル6と、ハードウェアでエミュレートされるユーザロジック(論理回路)5とから構成されるようになっている。システムシミュレータ1は動作モデル6を実装しており、ハードウェアエミュレータ2はユーザロジック5を実装している。協調シミュレーションの実行時には、システムシミュレータ1から入力信号3がハードウェアエミュレータ2に送出され、また、ハードウェアエミュレータ2から出力信号4がシステムシミュレータ1に送出されるようになっている。ハードウェアエミュレータ2から送出される出力信号4を、信号波形表示等により観測するためのデバグ環境7を、システムシミュレータ1に実装する場合もある。
図9に示した協調シミュレーション環境においては、システムシミュレータ1に実装されている動作モデル6と、ハードウェアエミュレータ2のプログラマブル素子に構築されているユーザロジック5とを協調動作させる必要がある。このために、システムシミュレータ1からハードウェアエミュレータ2に対して同期クロックを供給するなどの方法が取られている。
しかしながら、システムシミュレータ1とハードウェアエミュレータ2間では、同期クロックの他にも、入力信号3、出力信号4として例示したような各種の信号が送受信される。そして、システムシミュレータ1とハードウェアエミュレータ2間で送受信される信号の通信量が多くなればなるほど、シミュレーション動作スピードが低下してしまうという課題がある。
上述した課題を解決するための一例として、コンピュータ上のシミュレータ及びハードウェアエミュレータ間でのデータ転送量が多い場合に、その転送速度がボトルネックとなって全体のシミュレーション速度が低下すること、を抑えられるようにする方法が提案されている(例えば、特許文献2参照。)。
上述の特許文献2の「システムシミュレーション方法」は、コンピュータ上のシミュレータとハードウェアエミュレータとを協調させて、システムアーキテクチャの検証及び性能解析のためのシミュレーションを行うに当たり、以下のような方法を採用している。すなわち、検証したいシステムの設計上位の動作モデルの動作シミュレーション結果を利用して、動作モデルを構成する各機能ブロック間の通信量を予め解析する。そして、コンピュータ上のシミュレータが割り当てられる機能ブロックのグループと、ハードウェアエミュレータが割り当てられる機能ブロックのグループとの間の境界通信路における通信量が最小になるように、各機能ブロックを、シミュレータ或いはエミュレータに割当てる。その後、シミュレーションを実行する。
このことにより、コンピュータ上のシミュレータとハードウェアエミュレータ間の境界通信路における通信量が最小となっているため、全体のシミュレーション速度が低下するのを抑えられるようになる、としている。
特開2000−222446号公報(第4頁、図1) 特開2003−067439号公報(第4−6頁、図1−13)
上述した従来の特許文献2に記載のシステムシミュレーション方法は、コンピュータ上のシミュレータとハードウェアエミュレータとの間の境界通信路における通信量が最小となるように、シミュレーションの事前に、各機能ブロックの割り振り先をシミュレータ上或いはエミュレータ上の何れかに決定するようにしている。しかし、シミュレーション実行時におけるシミュレータとエミュレータ間の実際の通信量を減少させることを考慮したものではない。
本発明は上述した事情を改善するために成されたものであり、従って本発明の目的は、ハードウェアエミュレータとシステムシミュレータの協調シミュレーション環境において、ハードウェアエミュレータとシステムシミュレータ間の信号数を減らすことなく通信量を減少させて、シミュレーション動作スピードを向上させることを可能とする、ハードウェア/ソフトウェア協調シミュレーション方式及びその方法、を提供することにある。
本発明のハードウェア/ソフトウェア協調シミュレーション方式は、ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは前記ハードウェアエミュレータから前記システムシミュレータに出力する出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出回路を備え、前記システムシミュレータは前記変化検出信号が出力された時のみ前記出力信号を取り込むことを特徴とする。
また、前記変化検出回路は、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする。
さらに、ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは、複数の出力信号を前記システムシミュレータに対して出力すると共に前記出力信号ごとに前記出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出回路を備え、前記システムシミュレータは何れかの前記変化検出信号が出力された時のみ前記変化検出信号に対応する前記出力信号だけを取り込むことを特徴とする。
また、前記変化検出回路は、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする。
さらに、前記ハードウェアエミュレータは、さらに、前記複数の変化検出回路が出力する複数の前記変化検出信号の論理和演算を行って第2の変化検出信号を前記システムシミュレータに対して出力する論理和回路を備え、前記システムシミュレータは前記第2の変化検出信号が出力された時のみ複数の前記変化検出信号に対応する全ての前記出力信号を取り込むことを特徴とする。
また、ユーザロジックを実装するハードウェアエミュレータと動作モデルとデバグ環境を実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは前記システムシミュレータの前記デバグ環境だけが必要とする観測用信号を協調動作実行時に蓄積する記憶手段を備え、前記システムシミュレータは協調動作実行時には前記記憶手段に蓄積された前記観測用信号を取り込まないことを特徴とする。
さらに、前記システムシミュレータは、協調動作非実行時に前記記憶手段に蓄積された前記観測用信号を取り込むことを特徴とする。
本発明のハードウェア/ソフトウェア協調シミュレーション方法は、ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは前記ハードウェアエミュレータから前記システムシミュレータに出力する出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出ステップを実行し、前記システムシミュレータは前記変化検出信号が出力された時のみ前記出力信号を取り込むことを特徴とする。
また、前記変化検出ステップにおいては、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする。
さらに、ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは、複数の出力信号を前記システムシミュレータに対して出力すると共に前記出力信号ごとに前記出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出ステップを実行し、前記システムシミュレータは何れかの前記変化検出信号が出力された時のみ前記変化検出信号に対応する前記出力信号だけを取り込むことを特徴とする。
また、前記変化検出ステップにおいては、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする。
さらに、前記ハードウェアエミュレータは、さらに、前記複数の変化検出ステップで出力される複数の前記変化検出信号の論理和演算を行って第2の変化検出信号を前記システムシミュレータに対して出力する論理和演算ステップを実行し、前記システムシミュレータは前記第2の変化検出信号が出力された時のみ複数の前記変化検出信号に対応する全ての前記出力信号を取り込むことを特徴とする。
また、ユーザロジックを実装するハードウェアエミュレータと動作モデルとデバグ環境を実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは前記システムシミュレータの前記デバグ環境だけが必要とする観測用信号を協調動作実行時に蓄積する記憶ステップを実行し、前記システムシミュレータは協調動作実行時には前記記憶ステップで蓄積された前記観測用信号を取り込まないことを特徴とする。
さらに、前記システムシミュレータは、協調動作非実行時に前記記憶ステップで蓄積された前記観測用信号を取り込むことを特徴とする。
本発明のハードウェア/ソフトウェア協調シミュレーション方式においては、ハードウェアエミュレータから送出される出力信号に変化があった場合にだけ、システムシミュレータが出力信号を取り込むようにしている。従って、ハードウェアエミュレータとシステムシミュレータ間の通信量が減少し、ハードウェア/ソフトウェア協調シミュレーションの動作スピードを向上させることができる。
次に、本発明の実施の形態について図面を参照して説明する。
図1は、本発明のハードウェア/ソフトウェア協調シミュレーション方式の一実施形態を示すブロック図である。
図1に示す本実施の形態は、システムシミュレータ1とハードウェアエミュレータ2から構成されている。そして、シミュレーションによって検証したいLSIシステムのアーキテクチャは、ソフトウェアでシミュレートされる動作モデル6と、ハードウェアでエミュレートされるユーザロジック(論理回路)5とから構成されるようになっている。
システムシミュレータ1は動作モデル6を実装しており、ハードウェアエミュレータ2はユーザロジック5を実装している。協調シミュレーションの実行時には、ハードウェアエミュレータ2にはシステムシミュレータ1からの入力信号3(複数ビット可)が入力され、また、ハードウェアエミュレータ2からは出力信号4(複数ビット可)がシステムシミュレータ1に送出される。入力信号3には、システムシミュレータ1からハードウェアエミュレータ2に供給される同期用クロック信号(クロック信号9とする)が含まれている。また、システムシミュレータ1には、ハードウェアエミュレータ2から送出される出力信号4を、信号波形表示等により観測するためのデバグ環境7が実装されている。
ハードウェアエミュレータ2には、出力信号4に変化があった時点で論理値「H(High)」の変化検出信号8を出力する変化検出回路20が実装されている。変化検出回路20は、DフリップフロップであるところのFF21と、排他的論理和演算を行う排他的論理和回路23とから構成されている。FF21は、データ入力端子に出力信号4が入力され、クロック入力端子には、入力信号3に含まれているクロック信号9が入力される。そして、入力データであるところの出力信号4を1クロック遅延させて出力端子に遅延信号22として出力する。排他的論理和回路23は、出力信号4と遅延信号22との排他的論理和演算を行い、出力信号4が遅延信号22と異なっていることを検出すると、変化検出信号8に論理値Hを出力する。
動作モデル6とユーザロジック5について詳述する。図1に示した本実施形態によって検証したいLSIシステムのアーキテクチャは、複数の機能ブロックから構成されている。各機能ブロックの内の一部は、ハードウェアエミュレータ2でエミュレートされるようになっており、ハードウェアエミュレータ2内のFPGA(Field・Programmable・Gate・Array:フィールドプログラマブルゲートアレー)などのプログラマブル素子上に、ユーザロジック5として構築されている。各機能ブロックの他の部分は、システムシミュレータ1でソフトウェアによりシミュレートされるようになっており、C言語等で記述される動作モデル6として構成されている。動作モデル6には、機能ブロックごとの機能・動作及び機能ブロック間の接続関係が記述されており、機能ブロックをシミュレーション動作させると、機能ブロック及びハードウェアエミュレータ2のユーザロジック5との間でデータ送受信がなされるようになっている。
次に、図2を参照して、図1に示した本実施形態の動作について説明する。
図2は、図1の本実施形態の動作を説明するタイミングチャートである。
図1に示したハードウェア/ソフトウェア協調シミュレーション方式により、協調シミュレーションが開始されると、システムシミュレータ1からは、クロック信号9を含む入力信号3がハードウェアエミュレータ2に送出されるようになる。また、ハードウェアエミュレータ2からは、出力信号4がシステムシミュレータ1に送出されるようになる。
ハードウェアエミュレータ2の変化検出回路20は、出力信号4を常時監視しており、出力信号4が変化した時点で、変化検出信号8に論理値Hを出力する。システムシミュレータ1は、変化検出信号8を常時監視しており、変化検出信号8に論理値Hが出力された場合のみ、出力信号4の値を取り込んで動作モデル6に渡すようにする。変化検出信号8に論理値Hが出力されない間は、システムシミュレータ1はハードウェアエミュレータ2から送出される出力信号4を取り込む通信は行わない。このことにより、ハードウェアエミュレータ2とシステムシミュレータ1間の通信量が減少することとなる。
例えば、図2のt1時点における出力信号4の値は0x00(16進数の「00」、出力信号4が8ビットとした場合の例。)である。変化検出回路20のFF21は、この「0x00」の値が入力されると1クロック遅延させて、すなわちt2の時点で遅延信号22として、排他的論理和回路23に出力する。図2のt2時点の出力信号4の値は0xFFとなっており、t1時点の値とは異なるものとなっている。変化検出回路20の排他的論理和回路23は、t2時点の出力信号4の値0xFFとt2時点の遅延信号22の値0x00との排他的論理和演算を行い、出力信号4と遅延信号22とが異なっているため、t2時点で変化検出信号8に論理値Hを出力する。システムシミュレータ1は、t2時点で変化検出信号8に論理値Hが出力されたので、t2時点で出力信号4の値を取り込み、これを動作モデル6に渡す。
図2のt3からt6の間は、出力信号4の値は変化していないため、変化検出信号8に論理値Hは出力されていない。従ってこの間、システムシミュレータ1は出力信号4の値を取り込む通信を行わない。
図2のt7の時点になると、出力信号4の値は0x01に変化しているため、変化検出信号8には論理値Hが出力される。そして、システムシミュレータ1は、t7時点の出力信号4「0x01」を取り込み、動作モデル6に渡す。
以上説明したように、本実施形態のハードウェア/ソフトウェア協調シミュレーション方式においては、ハードウェアエミュレータ2から送出される出力信号4に変化があった場合にだけ、システムシミュレータ1が出力信号4を取り込むようにしている。従って、ハードウェアエミュレータ2とシステムシミュレータ1間の通信量が減少し、通信のために必要とされていた処理を、本来のシミュレーションの処理に割り当てることができるようになる。よって、ハードウェア/ソフトウェア協調シミュレーションの動作スピードを向上させることができる。
次に、図3、図4を参照して、本発明の第2の実施形態について説明する。
図3は、本発明のハードウェア/ソフトウェア協調シミュレーション方式の第2の実施形態を示すブロック図である。
図3に示す第2の実施形態は、図1に示した第1の実施形態に比し、ハードウェアエミュレータ2から出力信号4−1と出力信号4−2が分割出力され、かつ、それぞれの出力信号4−1、4−2の変化を検出する変化検出回路20−1、20−2がハードウェアエミュレータ2に実装されている点でのみ異なるものである。従って、図3において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略するものとする。
図3において、ハードウェアエミュレータ2から出力される信号は、例えばデータバス毎など、信号の種類毎にグループ分けが行われており、それぞれ、出力信号4−1と出力信号4−2とに分割されて出力されるようになっている。そして、ハードウェアエミュレータ2は、出力信号4−1に変化があった時点で論理値Hの変化検出信号8−1を出力する変化検出回路20−1と、出力信号4−2に変化があった時点で論理値Hの変化検出信号8−2を出力する変化検出回路20−2とを実装している。
変化検出回路20−1は、DフリップフロップであるところのFF21−1と、排他的論理和演算を行う排他的論理和回路23−1とから構成されている。FF21−1は、データ入力端子に出力信号4−1が入力され、クロック入力端子には、入力信号3に含まれているクロック信号9が入力される。そして、入力データであるところの出力信号4−1を1クロック遅延させて出力端子に遅延信号22−1として出力する。排他的論理和回路23−1は、出力信号4−1と遅延信号22−1との排他的論理和演算を行い、出力信号4−1が遅延信号22−1と異なっていることを検出すると、変化検出信号8−1に論理値Hを出力する。
変化検出回路20−2も同様に、DフリップフロップであるところのFF21−2と、排他的論理和演算を行う排他的論理和回路23−2とから構成されている。FF21−2は、データ入力端子に出力信号4−2が入力され、クロック入力端子には、入力信号3に含まれているクロック信号9が入力される。そして、入力データであるところの出力信号4−2を1クロック遅延させて出力端子に遅延信号22−2として出力する。排他的論理和回路23−2は、出力信号4−2と遅延信号22−2との排他的論理和演算を行い、出力信号4−2が遅延信号22−2と異なっていることを検出すると、変化検出信号8−2に論理値Hを出力する。
なお、システムシミュレータ1は、変化検出信号8−1を常時監視しており、変化検出信号8−1に論理値Hが出力された時のみ出力信号4−1の値を取り込んで動作モデル6に渡すようになっている。また、変化検出信号8−2も常時監視しており、変化検出信号8−2に論理値Hが出力された時のみ出力信号4−2の値を取り込んで動作モデル6に渡すようになっている。
次に、図4を参照して、図3に示した第2の実施形態の動作について説明する。
図4は、図3の第2の実施形態の動作を説明するタイミングチャートである。
図3に示したハードウェア/ソフトウェア協調シミュレーション方式により、協調シミュレーションが開始されると、システムシミュレータ1からは、クロック信号9を含む入力信号3がハードウェアエミュレータ2に送出されるようになる。また、ハードウェアエミュレータ2からは、出力信号4−1と出力信号4−2がシステムシミュレータ1に送出されるようになる。
ハードウェアエミュレータ2の変化検出回路20−1は、出力信号4−1を常時監視しており、出力信号4−1が変化した時点で、変化検出信号8−1に論理値Hを出力する。システムシミュレータ1は、変化検出信号8−1を常時監視しており、変化検出信号8−1に論理値Hが出力された場合のみ、出力信号4−1の値を取り込んで動作モデル6に渡すようにする。変化検出信号8−1に論理値Hが出力されない間は、システムシミュレータ1はハードウェアエミュレータ2から送出される出力信号4−1を取り込む通信は行わない。
また、ハードウェアエミュレータ2の変化検出回路20−2は、出力信号4−2を常時監視しており、出力信号4−2が変化した時点で、変化検出信号8−2に論理値Hを出力する。システムシミュレータ1は、変化検出信号8−2を常時監視しており、変化検出信号8−2に論理値Hが出力された場合のみ、出力信号4−2の値を取り込んで動作モデル6に渡すようにする。変化検出信号8−2に論理値Hが出力されない間は、システムシミュレータ1はハードウェアエミュレータ2から送出される出力信号4−2を取り込む通信は行わない。
このことにより、ハードウェアエミュレータ2とシステムシミュレータ1間の通信量が減少することとなる。
例えば、図4のt1時点における出力信号4−1の値は0x01である。変化検出回路20−1のFF21−1は、この「0x01」の値が入力されると1クロック遅延させて、すなわちt2の時点で遅延信号22−1として、排他的論理和回路23−1に出力する。図4のt2時点の出力信号4−1の値は0x02となっており、t1時点の値とは異なるものとなっている。変化検出回路20−1の排他的論理和回路23−1は、t2時点の出力信号4−1の値0x02とt2時点の遅延信号22−1の値0x01との排他的論理和演算を行い、出力信号4−1と遅延信号22−1とが異なっているため、t2時点で変化検出信号8−1に論理値Hを出力する。システムシミュレータ1は、t2時点で変化検出信号8−1に論理値Hが出力されたので、t2時点で出力信号4−1の値を取り込み、これを動作モデル6に渡す。
図4のt3以降は、出力信号4−1の値は変化していないため、変化検出信号8−1に論理値Hは出力されていない。従ってこの間、システムシミュレータ1は出力信号4−1の値を取り込む通信を行わない。
また、図4のt7時点において、出力信号4−2の値は0x03から0x04に変化している。変化検出回路20−2は上述したと同様の動作を行って、t7時点で変化検出信号8−2に論理値Hを出力する。システムシミュレータ1は、t7時点で変化検出信号8−2に論理値Hが出力されたので、t7時点で出力信号4−2の値を取り込み、これを動作モデル6に渡す。
以上説明したように、第2の実施形態におけるハードウェア/ソフトウェア協調シミュレーション方式においては、ハードウェアエミュレータ2から送出される信号を複数のグループの出力信号4−1、4−2に分割して出力している。そして、ハードウェアエミュレータ2から送出される出力信号4−1又は4−2に変化があった場合にだけ、システムシミュレータ1が出力信号4−1又は4−2の値を取り込むようにしている。従って、ハードウェアエミュレータ2から出力される信号の一部にのみ変化が生じた場合、システムシミュレータ1は変化が生じた一部の信号だけを取り込むようになっており、システムシミュレータ1が取り込む信号の数が減少する。その結果、ハードウェアエミュレータ2とシステムシミュレータ1間の通信量が更に減少し、ハードウェア/ソフトウェア協調シミュレーションの動作スピードを向上させることができる。
次に、図5を参照して、本発明の第3の実施形態について説明する。
図5は、本発明のハードウェア/ソフトウェア協調シミュレーション方式の第3の実施形態を示すブロック図である。
図5に示す第3の実施形態は、図3に示した第2の実施形態に比し、ハードウェアエミュレータ2から送出される1つのグループの信号(すなわち、出力信号4−1)の変化を検出する構成を、他の構成に変更した点でのみ異なるものである。従って、図5において図3に示す構成要素に対応するものは同一の参照数字または符号を付し、その説明を省略するものとする。
図5において、ハードウェアエミュレータ2から送出される1つのグループの信号(図3に示した出力信号4−1)は、1ビットの出力信号4−1−1〜4−1−nに分割されて送出されるようになっている。そして、ハードウェアエミュレータ2は、出力信号4−1−1〜4−1−nそれぞれについて、その変化を検出する変化検出回路20−1−1〜20−1−nを実装している。また、変化検出回路20−1−1〜20−1−nから出力される変化検出信号24−1〜24−nの論理和演算を行って変化検出信号8−1を出力する論理和回路25を備えている。
変化検出回路20−1−1〜20−1−nはそれぞれ同一の構成であり、DフリップフロップであるところのFF21−1−1(FF21−1−n)と、排他的論理和演算を行う排他的論理和回路23−1−1(排他的論理和回路23−1−n)とから構成されている。FF21−1−1(21−1−n)は、データ入力端子に1ビットの出力信号4−1−1(4−1−n)が入力され、クロック入力端子には、入力信号3に含まれているクロック信号9が入力される。そして、入力データであるところの出力信号4−1−1(4−1−n)を1クロック遅延させて出力端子に遅延信号22−1−1(22−1−n)として出力する。排他的論理和回路23−1−1(23−1−n)は、出力信号4−1−1(4−1−n)と遅延信号22−1−1(22−1−n)との排他的論理和演算を行い、出力信号4−1−1(4−1−n)が遅延信号22−1−1(22−1−n)と異なっていることを検出すると、変化検出信号24−1(24−n)として論理値Hを出力する。
論理和回路25は、変化検出回路20−1−1〜20−1−nから出力される変化検出信号24−1〜24−nの論理和演算を行い、変化検出信号24−1〜24−nの何れかに論理値Hが出力されている場合に、変化検出信号8−1として論理値Hを出力する。
以上説明したように、図5に示す第3の実施形態においては、ハードウェアエミュレータ2から送出される1つのグループの信号、すなわち、出力信号4−1−1〜4−1−nの何れかに変化が生じた時点で、変化検出信号8−1に論理値Hが出力されるようになる。従って、システムシミュレータ1は、変化検出信号8−1を常時監視し、変化検出信号8−1に論理値Hが出力された時点で、出力信号4−1−1〜4−1−nの値を取り込んで動作モデル6に渡すようにする。
第3の実施形態においては、ハードウェアエミュレータ2から送出される出力信号4−1−1〜4−1−nの何れかに変化が生じた場合、各々の変化検出信号24−1〜24−nを論理和回路25でまとめてシステムシミュレータ1に通知するようにしている。従って、ハードウェアエミュレータ2とシステムシミュレータ1間のインタフェース信号の数を減少させることができる。
次に、図6、図7、図8を参照して、本発明の第4の実施形態について説明する。
図1に示した第1の実施形態において、ハードウェアエミュレータ2から、出力信号4とは別の観測用信号43がシステムシミュレータ1に出力される場合がある。すなわち、図6に示すように、ハードウェアエミュレータ2から、出力信号4に加え、観測用信号43がシステムシミュレータ1に出力されるようになる場合である。観測用信号43は、システムシミュレータ1の動作モデル6の動作には必要の無い信号であり、デバグ環境7だけに接続されるような信号である。例えば、ハードウェアエミュレータ2のユーザロジック5の内部レジスタ等の観測を行うための信号である。本発明の第4の実施形態は、図6に示した協調シミュレーション方式における観測用信号43の観測を、協調シミュレーションの動作時以外の時に行う方式を提供するものである。
図7は、本発明のハードウェア/ソフトウェア協調シミュレーション方式の第4の実施形態を示すブロック図である。
図7において、本発明の第4の実施形態は、ユーザロジック5を実装するハードウェアエミュレータ2と、動作モデル6とデバグ環境7を実装するシステムシミュレータ1とから構成されている。また、協調シミュレーションの実行時には、ハードウェアエミュレータ2とシステムシミュレータ1間で、入力信号3と出力信号4が送受される。これらの構成要素は、図1に示した本発明の第1の実施形態と同一であるため、図7において図1に示す構成要素に対応するものは同一の参照数字または符号を付し、これ以上の説明を省略するものとする。
図7における観測用信号43は、ハードウェアエミュレータ2からシステムシミュレータ1に対して出力される信号の内、システムシミュレータ1の動作モデル6の動作には必要のない信号であり、出力信号4とは別の信号である。観測用信号43は、例えば、ハードウェアエミュレータ2のユーザロジック5の内部レジスタ等を観測するための信号であり、システムシミュレータ1に実装されるデバグ環境7のみで必要とされる信号である。
図7に示す実施形態において、観測用信号43は、協調シミュレーション実行時に、ハードウェアエミュレータ2が備えるメモリ10内に蓄積されるようになっている。そして、協調シミュレーションの非動作時に、システムシミュレータ1からメモリ読出し信号11を与えることにより、メモリ10内に蓄積された内容が、観測用信号44としてシステムシミュレータ1のデバグ環境7に取り込まれる。なお、メモリ読出し信号11は、メモリ10の内容を読み出すために必要な信号の総称であり、クロック、メモリアドレス、イネーブル信号等を含む信号である。
次に、図8を参照して、図7に示した第4の実施形態の動作について説明する。
図8は、図7の第4の実施形態の動作を説明するタイミングチャートである。
図7に示したハードウェア/ソフトウェア協調シミュレーション方式により、協調シミュレーションが開始されると、図8のT1として示すように、システムシミュレータ1からは入力信号3がハードウェアエミュレータ2に送出されるようになる。また、ハードウェアエミュレータ2からは、出力信号4がシステムシミュレータ1に送出されるようになる。このT1の期間には、ハードウェアエミュレータ2からの観測用信号43は、メモリ10内に蓄積されている。
図8のT2の期間は、協調シミュレーションの動作が停止している。このT2の期間に、システムシミュレータ1からメモリ読出し信号11をハードウェアエミュレータ2に与えることにより、T1の期間にメモリ10内に蓄積された内容が観測用信号44としてシステムシミュレータ1に取り込まれる。取り込まれたメモリ10の内容はデバグ環境7で観測される。
図8のT3では、協調シミュレーションの動作が再開され、T1におけると同様に、ハードウェアエミュレータ2からの観測用信号43は、メモリ10内に蓄積されるようになる。
以上説明したように、第4の実施形態におけるハードウェア/ソフトウェア協調シミュレーション方式においては、ハードウェアエミュレータ2のユーザロジック5の内部レジスタ等の観測を行うための観測用信号43は、協調シミュレーション動作時にはメモリ10内に蓄積されるようになっている。そして、協調シミュレーションの非動作時に、これをシステムシミュレータ1で取り込むようになっている。従って、協調シミュレーションの動作に必要のない信号の通信を、協調シミュレーションの動作時には減少させることが可能となる。
なお、既述した第1〜第4の実施形態の構成を、それぞれ相互に組み合わせて実施するような構成としてもよい。
本発明のハードウェア/ソフトウェア協調シミュレーション方式の一実施形態を示すブロック図である。 図1の本実施形態の動作を説明するタイミングチャートである。 本発明のハードウェア/ソフトウェア協調シミュレーション方式の第2の実施形態を示すブロック図である。 図3の第2の実施形態の動作を説明するタイミングチャートである。 本発明のハードウェア/ソフトウェア協調シミュレーション方式の第3の実施形態を示すブロック図である。 図1の協調シミュレーション方式の変形例を示すブロック図である。 本発明のハードウェア/ソフトウェア協調シミュレーション方式の第4の実施形態を示すブロック図である。 図7の第4の実施形態の動作を説明するタイミングチャートである。 従来の協調シミュレーション方式の一例を示すブロック図である。
符号の説明
1 システムシミュレータ
2 ハードウェアエミュレータ
3 入力信号
4 出力信号
5 ユーザロジック
6 動作モデル
7 デバグ環境
8 変化検出信号
9 クロック信号
10 メモリ
11 メモリ読出し信号
20 変化検出回路
21 FF
22 遅延信号
23 排他的論理和回路
24 変化検出信号
25 論理和回路
43 観測用信号
44 観測用信号

Claims (14)

  1. ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは前記ハードウェアエミュレータから前記システムシミュレータに出力する出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出回路を備え、前記システムシミュレータは前記変化検出信号が出力された時のみ前記出力信号を取り込むことを特徴とするハードウェア/ソフトウェア協調シミュレーション方式。
  2. 前記変化検出回路は、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする請求項1に記載のハードウェア/ソフトウェア協調シミュレーション方式。
  3. ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは、複数の出力信号を前記システムシミュレータに対して出力すると共に前記出力信号ごとに前記出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出回路を備え、前記システムシミュレータは何れかの前記変化検出信号が出力された時のみ前記変化検出信号に対応する前記出力信号だけを取り込むことを特徴とするハードウェア/ソフトウェア協調シミュレーション方式。
  4. 前記変化検出回路は、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする請求項3に記載のハードウェア/ソフトウェア協調シミュレーション方式。
  5. 前記ハードウェアエミュレータは、さらに、前記複数の変化検出回路が出力する複数の前記変化検出信号の論理和演算を行って第2の変化検出信号を前記システムシミュレータに対して出力する論理和回路を備え、前記システムシミュレータは前記第2の変化検出信号が出力された時のみ複数の前記変化検出信号に対応する全ての前記出力信号を取り込むことを特徴とする請求項3に記載のハードウェア/ソフトウェア協調シミュレーション方式。
  6. ユーザロジックを実装するハードウェアエミュレータと動作モデルとデバグ環境を実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方式であって、前記ハードウェアエミュレータは前記システムシミュレータの前記デバグ環境だけが必要とする観測用信号を協調動作実行時に蓄積する記憶手段を備え、前記システムシミュレータは協調動作実行時には前記記憶手段に蓄積された前記観測用信号を取り込まないことを特徴とするハードウェア/ソフトウェア協調シミュレーション方式。
  7. 前記システムシミュレータは、協調動作非実行時に前記記憶手段に蓄積された前記観測用信号を取り込むことを特徴とする請求項6に記載のハードウェア/ソフトウェア協調シミュレーション方式。
  8. ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは前記ハードウェアエミュレータから前記システムシミュレータに出力する出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出ステップを実行し、前記システムシミュレータは前記変化検出信号が出力された時のみ前記出力信号を取り込むことを特徴とするハードウェア/ソフトウェア協調シミュレーション方法。
  9. 前記変化検出ステップにおいては、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする請求項8に記載のハードウェア/ソフトウェア協調シミュレーション方法。
  10. ユーザロジックを実装するハードウェアエミュレータと動作モデルを実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは、複数の出力信号を前記システムシミュレータに対して出力すると共に前記出力信号ごとに前記出力信号が変化することにより前記システムシミュレータに対し変化検出信号を出力する変化検出ステップを実行し、前記システムシミュレータは何れかの前記変化検出信号が出力された時のみ前記変化検出信号に対応する前記出力信号だけを取り込むことを特徴とするハードウェア/ソフトウェア協調シミュレーション方法。
  11. 前記変化検出ステップにおいては、ある時点の出力信号を少なくとも1クロック遅延させた遅延信号と現時点における出力信号との排他的論理和演算を行う、ことを特徴とする請求項10に記載のハードウェア/ソフトウェア協調シミュレーション方法。
  12. 前記ハードウェアエミュレータは、さらに、前記複数の変化検出ステップで出力される複数の前記変化検出信号の論理和演算を行って第2の変化検出信号を前記システムシミュレータに対して出力する論理和演算ステップを実行し、前記システムシミュレータは前記第2の変化検出信号が出力された時のみ複数の前記変化検出信号に対応する全ての前記出力信号を取り込むことを特徴とする請求項10に記載のハードウェア/ソフトウェア協調シミュレーション方法。
  13. ユーザロジックを実装するハードウェアエミュレータと動作モデルとデバグ環境を実装するシステムシミュレータとが協調してシミュレーションを行うハードウェア/ソフトウェア協調シミュレーション方法であって、前記ハードウェアエミュレータは前記システムシミュレータの前記デバグ環境だけが必要とする観測用信号を協調動作実行時に蓄積する記憶ステップを実行し、前記システムシミュレータは協調動作実行時には前記記憶ステップで蓄積された前記観測用信号を取り込まないことを特徴とするハードウェア/ソフトウェア協調シミュレーション方法。
  14. 前記システムシミュレータは、協調動作非実行時に前記記憶ステップで蓄積された前記観測用信号を取り込むことを特徴とする請求項13に記載のハードウェア/ソフトウェア協調シミュレーション方法。
JP2004149326A 2004-05-19 2004-05-19 ハードウェア/ソフトウェア協調シミュレーション方式及びその方法 Expired - Fee Related JP4470582B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004149326A JP4470582B2 (ja) 2004-05-19 2004-05-19 ハードウェア/ソフトウェア協調シミュレーション方式及びその方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004149326A JP4470582B2 (ja) 2004-05-19 2004-05-19 ハードウェア/ソフトウェア協調シミュレーション方式及びその方法

Publications (2)

Publication Number Publication Date
JP2005332162A true JP2005332162A (ja) 2005-12-02
JP4470582B2 JP4470582B2 (ja) 2010-06-02

Family

ID=35486789

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004149326A Expired - Fee Related JP4470582B2 (ja) 2004-05-19 2004-05-19 ハードウェア/ソフトウェア協調シミュレーション方式及びその方法

Country Status (1)

Country Link
JP (1) JP4470582B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249293A (ja) * 2006-03-13 2007-09-27 Fujitsu Ltd ハードウェア/ソフトウェア協調検証装置
JP2007328622A (ja) * 2006-06-08 2007-12-20 Nec Corp 回路動作検証方法
JP2009524138A (ja) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション モデル化およびシミュレーション方法
US7673265B2 (en) 2006-09-07 2010-03-02 Kabushiki Kaisha Toshiba Simulation apparatus and control method of simulation
JP2012048539A (ja) * 2010-08-27 2012-03-08 Hitachi Information & Communication Engineering Ltd ハードウェア−ソフトウェア協調検証システム、方法、及びプログラム
WO2014038030A1 (ja) * 2012-09-06 2014-03-13 株式会社日立製作所 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
WO2015004788A1 (ja) * 2013-07-11 2015-01-15 株式会社日立製作所 情報処理システム及び情報処理方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009524138A (ja) * 2006-01-20 2009-06-25 メンター グラフィックス コーポレイション モデル化およびシミュレーション方法
JP2007249293A (ja) * 2006-03-13 2007-09-27 Fujitsu Ltd ハードウェア/ソフトウェア協調検証装置
JP4589255B2 (ja) * 2006-03-13 2010-12-01 富士通株式会社 ハードウェア/ソフトウェア協調検証装置
JP2007328622A (ja) * 2006-06-08 2007-12-20 Nec Corp 回路動作検証方法
JP4743427B2 (ja) * 2006-06-08 2011-08-10 日本電気株式会社 回路動作検証方法
US7673265B2 (en) 2006-09-07 2010-03-02 Kabushiki Kaisha Toshiba Simulation apparatus and control method of simulation
JP2012048539A (ja) * 2010-08-27 2012-03-08 Hitachi Information & Communication Engineering Ltd ハードウェア−ソフトウェア協調検証システム、方法、及びプログラム
WO2014038030A1 (ja) * 2012-09-06 2014-03-13 株式会社日立製作所 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
JP5926807B2 (ja) * 2012-09-06 2016-05-25 株式会社日立製作所 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
WO2015004788A1 (ja) * 2013-07-11 2015-01-15 株式会社日立製作所 情報処理システム及び情報処理方法
JPWO2015004788A1 (ja) * 2013-07-11 2017-02-23 株式会社日立製作所 情報処理システム及び情報処理方法
US9760403B2 (en) 2013-07-11 2017-09-12 Hitachi, Ltd. Information processing system and method for distributing load over hardware processing and software processing

Also Published As

Publication number Publication date
JP4470582B2 (ja) 2010-06-02

Similar Documents

Publication Publication Date Title
US10521544B2 (en) Traffic shaping in networking system-on-chip verification
Hopkins et al. Debug support strategy for systems-on-chips with multiple processor cores
US20070277144A1 (en) Conversion of circuit description to an abstract model of the circuit
JP2005056380A (ja) データを処理する方法と装置およびコンピュータ・プログラム製品
US10678976B2 (en) Generic protocol analyzer for circuit design verification
Murali et al. Improved design debugging architecture using low power serial communication protocols for signal processing applications
TWI309384B (ja)
JP2023100844A (ja) 集積回路のためのロジックアナライザ
JP4470582B2 (ja) ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
US11775716B2 (en) High speed, low hardware footprint waveform
US7328117B2 (en) Apparatus, method and program for verifying asynchronous circuit
US20090234620A1 (en) Verification support apparatus, verification support method, and computer product
Shannon et al. Maximizing system performance: Using reconfigurability to monitor system communications
JP2010250365A (ja) 協調シミュレーションシステム、ハードウェアエミュレータ、及び協調シミュレーション方法
JP5505781B2 (ja) トレース・障害観測システム、トレース・障害観測方法及びトレース・障害観測プログラム
Lesniak et al. Non-intrusive runtime monitoring for manycore prototypes
CN109408431B (zh) 半导体装置和用于剖析半导体装置中的事件的方法
CN102402492B (zh) 一种服务器管理模块和时序控制模块的通信方法
Kogel et al. Virtual architecture mapping: a SystemC based methodology for architectural exploration of System-on-Chips
Viejo et al. Long-term on-chip verification of systems with logical events scattered in time
Rettkowski et al. An event-based Network-on-Chip debugging system for FPGA-based MPSoCs
Wilkes et al. Application of high level interface-based design to telecommunications system hardware
Blochwitz et al. Continuous live-tracing as debugging approach on FPGAs
Fujita Post-silicon verification and debugging with control flow traces and patchable hardware

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070119

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070420

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080613

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091112

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: 20100209

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: 20100222

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

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees