JP3904645B2 - ハードウェア/ソフトウェア協調シミュレーション装置 - Google Patents
ハードウェア/ソフトウェア協調シミュレーション装置 Download PDFInfo
- Publication number
- JP3904645B2 JP3904645B2 JP34853296A JP34853296A JP3904645B2 JP 3904645 B2 JP3904645 B2 JP 3904645B2 JP 34853296 A JP34853296 A JP 34853296A JP 34853296 A JP34853296 A JP 34853296A JP 3904645 B2 JP3904645 B2 JP 3904645B2
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- level
- software
- description
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design 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
【発明の属する技術分野】
本発明は、ハードウェア/ソフトウェア協調シミュレーション装置、ハードウェア/ソフトウェア協調シミュレーション方法及びハードウェア/ソフトウェア協調シミュレーションプログラムを記録した機械読み取り可能な記録媒体に関し、特に、ハードウェア検証及びソフトウェア検証の全体として高速な協調シミュレーションを行うことができ、効率よくソフトウェアの検証を行う技術に関する。
【0002】
【従来の技術】
図16は従来のハードウェア/ソフトウェアの協調シミュレーション装置を示すブロック図である。図示の如く、従来のハードウェア/ソフトウェアの協調シミュレーションにおいては、ハードウェア(HW)部分の検証目的には、RT(Register Transfer) レベルの精度が必要であるため、ソフトウェア箇所は小規模プログラム11を用いてRTレベルソフトウェアシミュレータ13によりシミュレーションを行う。ここで、小規模ソフトウェアとは、検証するソフトウェアのうち、基本動作のみが記述されたソフトウェアであり、外部との入出力までの動作等は記述されていないソフトウェアであって、例えば、ドライバプログラムが含まれる。また、ハードウェア箇所は、ハードウェアが1システムクロックでどのような動作をするかを記述したRTレベルのハードウェア記述12を用いてRTレベルハードウェアシミュレータ14により、シミュレーションを行う。これらRTレベルソフトウェアシミュレータ13及びRTレベルハードウェアシミュレータ14が協調しつつシミュレーションを行うことによりHW検証結果20を得ることができる。このHW検証結果20を用いることでハードウェアの検証を行うことができる。
【0003】
この構成における協調シミュレータは、RTレベルの情報が得られるためハードウェアの検証向きであるが、プロセッサ部分もRTレベルであるため、シミュレーションには膨大な時間がかかってしまう。ソフトウェアシミュレータ側の入力が小規模ソフトウェアとなっているのはこの理由であり、この構成はソフトウェアの検証には向いていない。
【0004】
一方、ソフトウェア(SW)部分の検証目的には、小規模ソフトウェアの他に、外部との入出力等の動作までをも包含したアプリケーションソフトウェア16を用いて命令レベルのソフトウェアシミュレータ18によりソフトウェア箇所のシミュレーションを行う。また、ハードウェア箇所は、命令の1単位でどのような動作をするかを記述した命令レベルのハードウェア記述23を用いて、命令レベルのハードウェアシミュレータ19によりシミュレーションを行う。
【0005】
これら命令レベルソフトウェアシミュレータ18及び命令レベルハードウェアシミュレータ19が協調しつつシミュレーションを行うことによりSW検証結果21を得ることで、ソフトウェア部分の検証を行うことができる。
【0006】
ソフトウェア検証のためには、ハードウェア部分のシミュレーションをプロセッサの命令レベルに対応する抽象度でシミュレーションしても精度としては十分であり、精度を落とす分シミュレーションの高速化が期待できる。そのような記述としては、ビヘイビアレベル等の記述が考えられる。
【0007】
しかしながら、ハードウェア設計者は、RTレベルの記述データしか作成しないという問題点がある。RTレベルの記述しか作成しない理由は、現在の設計手法がRTレベル以下で自動化されているためである。つまり、例えば、ビヘイビアレベルの記述データを作成することは、ハードウェア設計者にとって余分な作業であり、また、仮にビヘイビアレベルの記述データを作成したとしても、RTレベルの記述データとの等価性を保証しなければならず、そのために更に余計な作業が発生してしまうからである。
【0008】
そこで、図17のブロック図に示した協調シミュレータが開示されている。この協調シミュレータは、ソフトウェア検証及びハードウェア検証共に、ソフトウェア部分は、アプリケーションソフトウェア16を用いて、命令レベルソフトウェアシミュレータ18により命令レベルのソフトウェアシミュレーションを行う。一方、ハードウェア部分は、RTレベルハードウェア記述12を用いて、RTレベルハードウェアシミュレータ14によりRTレベルのハードウェアシミュレーションを行うようにしてある。
【0009】
この命令レベルソフトウェアシミュレータ18とRTレベルハードウェアシミュレータは14は、レベルが相違するため協調シミュレーションをおこなうことができない。このため、レベルを変換して協調させるためのレベル変換手段24を設けるようにしてある。このレベル変換手段24は、プロセッサのバスサイクルに対応するRTレベルの信号の変化を表したデータブック25を検索して、一方の動作を他方の動作に変換して出力するようにしてある。これにより命令レベルのハードウェアシミュレータを作成しなくても協調シミュレーションを行うことができる。
【0010】
【発明が解決しようとする課題】
しかしながら、図17の協調シミュレーションでは、シミュレーション間にレベル変換手段24を設けているため、ソフトウェア側は命令レベル、また、ハードウェア側はRTレベルの精度で同時にシミュレーションを行う必要がある。
【0011】
これは、ハードウェアの開発者にとっては、ソフトウェアシミュレータが高速に処理するため問題はないが、ソフトウェア側の開発者からすれば、ハードウェア側がRTレベルの低速なシミュレーションであるため、ソフトウェアのデバッグの効率を低下させてしまうという問題点がある。
【0012】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、ハードウェア検証及びソフトウェア検証について全体として高速な協調シミュレーションを行うことができ、効率よくソフトウェアの検証を行うことができるハードウェア/ソフトウェア協調シミュレーション装置、ハードウェア/ソフトウェア協調シミュレーション方法及びハードウェア/ソフトウェア協調シミュレーションプログラムを記録した機械読み取り可能な記録媒体を提供することにある。
【0013】
【課題を解決するための手段】
本発明の発明者は、ハードウェア/ソフトウェア協調シミュレーションを高速に行うためには、ソフトウェアの検証を目的とする協調シミュレーションを命令レベルで行うことが不可欠であると考えた。一方で、設計者は、RTレベルのハードウェア記述のみを作成し、命令レベルのハードウェア記述を作成しないのが一般的であるため、上記のような問題点があることに気がついた。
【0014】
そこで、何らかの手段を用いて、RTレベルのハードウェア記述を抽象化して命令レベルに変換することにより、上記目的が達成することができることに気がついた。本発明者は、慎重な研究を重ねた結果、以下のような発明をすることができた。
【0017】
上記目的を達成するため、本願発明に係るハードウェア/ソフトウェア協調シミュレーション装置は、RTレベルのプロセッサモデルとRTレベルのハードウェア記述とを用いてハードウェアの検証を目的としたシミュレーションを行うハードウェア検証部と、前記RTレベルのハードウェア記述を前記プロセッサモデルに係るプロセッサとの入出力動作を考慮して命令レベルのハードウェア記述である抽象化記述を生成する抽象化手段と、命令レベルのプロセッサモデルと前記抽象化記述とを用いてソフトウェアの検証を目的としたシミュレーションを行うソフトウェア検証部と、を具備し、前記抽象化手段は、前記RTレベルのハードウェア記述を解析し、状態遷移グラフを作成する手段と、前記状態グラフの初期状態を先頭にして、状態を一列に並べて序列を作る手段と、前記状態グラフの入出力動作の絡むループは切断する手段と、各状態の動作記述を序列の順番に並べ、内部信号の削除を行って1つのプロセスとしてまとめる手段と、ループの切断個所にフラグをセットする文とそれ以降の処理をスキップする文を挿入して抽象化記述を生成する手段と、を具備することを特徴とする。
【0019】
また、本願発明に係るハードウェア/ソフトウェア協調シミュレーション装置は、RTレベルのプロセッサモデルとRTレベルのハードウェア記述とを用いてハードウェアの検証を目的としたシミュレーションを行うハードウェア検証部と、前記RTレベルのハードウェア記述を前記プロセッサモデルに係るプロセッサとの入出力動作を考慮して命令レベルのハードウェア記述である抽象化記述を生成する抽象化手段と、命令レベルのプロセッサモデルと前記抽象化記述とを用いてソフトウェアの検証を目的としたシミュレーションを行うソフトウェア検証部と、を具備し、前記抽象化手段は、前記RTレベルのハードウェア記述を解析し、状態遷移グラフを作成する手段と、前記状態グラフの初期状態を先頭にして、状態を一列に並べて序列を作る手段と、前記作った序列の前方に戻る状態遷移を残すか否かを判定する手段と、前記残すと判定した状態遷移の遷移先状態で序列を分割する手段と、前記求めた分割毎に動作記述を1つのプロセスにまとめ、抽象化記述を生成する手段と、を具備することを特徴とする。
【0030】
【発明の実施の形態】
以下、本発明に係るハードウェア/ソフトウェア協調シミュレーション装置、ハードウェア/ソフトウェア協調シミュレーション方法及びハードウェア/ソフトウェア協調シミュレーションプログラムを記録した機械読み取り可能な記録媒体の実施形態について、図面を参照しながら説明する。
【0031】
第1の実施形態
図1は、本実施形態のハードウェア/ソフトウェア協調シミュレーション装置を示すブロック図である。本実施形態によるハードウェア/ソフトウェア協調シミュレーション装置は、RTレベルのプロセッサモデルとRTレベルのハードウェア記述とからハードウェアの検証を目的としたシミュレーションを行うハードウェア検証部13,14と、RTレベルのハードウェア記述をプロセッサの入出力命令の動作レベルに抽象化して抽象化記述を生成する抽象化手段15と、命令レベルのプロセッサモデルと前記抽象化記述とからソフトウェアの検証を目的としたシミュレーションを行うソフトウェア検証部18,19とを具備する。
【0032】
図1に示した小規模ソフトウェア11とは、検証するソフトウェアのうち、基本動作のみが記述されたソフトウェアであり、外部との入出力までの動作等は記述されていないソフトウェアであって、例えば、ドライバプログラムが含まれる。また、アプリケーションソフトウェア16は、小規模ソフトウェアの他に、外部との入出力等の動作までをも包含したソフトウェアである。
【0033】
ハードウェア/ソフトウェア協調シミュレーションを行う際には、まず、RTレベルソフトウェアシミュレータ13と、RTレベルハードウェアシミュレータ14とを用いて、ハードウェア検証を目的とした協調シミュレーションを行う。次に、抽象化手段15によって、RTレベルのハードウェア記述12をプロセッサの入出力命令の動作レベルに抽象化して抽象化記述17を生成する。そして、命令レベルソフトウェアシミュレータ18と、命令レベルハードウェアシミュレータ19とを用いて、ソフトウェア検証を目的とした協調シミュレーションを行うようにする。
【0034】
図2は、抽象化手段15で行う処理を示すフローチャートである。まず、ステップ110でRTレベルのハードウェア記述12を解析して、状態遷移グラフを作成する。次に、ステップ120で初期状態を先頭にして、状態を一列に並べて序列を作る。次に、ステップ130で入出力動作の絡まないループはループとして残し、入出力動作の絡むループは切断する。次に、ステップ140で、各状態の動作記述を序列の順番に並べ、内部信号の削除を行って1つのプロセスとしてまとめる。次に、ステップ150でループの切断個所にフラグをセットする文とそれ以降の処理をスキップする文を挿入する。最後に、ステップ160で抽象化されたハードウェア記述を生成する。
【0035】
図3は、ステップ120の状態を一列に並べる処理のアルゴリズムを示すフローチャートである。ここで示すアルゴリズムは、深さ方向を優先して並べているが、本発明においては、このアルゴリズムに限定されるものではない。このアルゴリズムは、まず、ステップ121で初期設定として、状態番号なる変数を導入し、この状態番号に1をセットする。次に、ステップ122にて、初期状態に状態番号、すなわち、1を付与する。そして、状態番号をインクリメントする。続いて、ステップ123にて、次に遷移する状態の中に状態番号の付与されていないものがあるか否かを判定する。この判定により、状態番号が付与されていないものがある場合には、ステップ124にて、その1つを選び状態番号を付与する。また、その残りはスタックに格納し、状態番号をインクリメントする。引き続き、ステップ123に戻って、その次に遷移する状態の中に状態番号の付与されていないものがあるか否かの判定を行い、次に遷移する状態の中に状態番号が付与されていないものがなくなるまで繰り返す。
【0036】
次に遷移する状態のうち、全ての状態に状態番号が付与された場合には、ステップ125に進み、スタックに状態が格納されているか否かを判定する。状態が格納されている場合には、ステップ126にてスタックから1つ状態を取り出し、ステップ127にてその状態に状態番号が付与されているか否かを判定する。この判定により状態番号が付与されていなければ、ステップ124に戻って、ステップ126にて取り出された状態に状態番号を付与し、また、その残りはスタックに格納し、状態番号をインクリメントする。引き続き、ステップ123に戻って、判定を行い、その次に遷移する状態の中に状態番号が付与されていないものがなくなるまで繰り返し、再びステップ125に進む。一方、ステップ127にてその状態に状態番号が付与されている場合にはステップ125に戻って再びスタックに状態が格納されているか否かを判定する。以上の処理を施し、スタックに状態がなくなるまで処理を行う。
【0037】
図4は、本実施形態で用いるRTレベルのハードウェア記述12を示したものである。この記述は、紙面の都合上、図面に向かって左列上段から記述が開始され、右段下段で記述が終了するように示した。このRTレベルのハードウェア記述12は、状態の宣言部41と、動作記述部42と、状態遷移記述部43とを有するものである。以下では、図4に示したRTレベルのハードウェア記述をもとにして、図2に示した抽象化手段15のアルゴリズムの動作を詳細に説明する。
【0038】
図4に示したRTレベルのハードウェア記述12の状態の宣言部41からS1乃至S8の8つの状態があることが分かる。この8つの状態に対して状態遷移記述部43の状態遷移の動作記述を用いてステップ110の処理を行うと図5に示す如くになる。この状態遷移グラフは状態を表すノード51と、状態間の遷移関係を示すエッジ52とから構成されている。このエッジの矢印方向へ状態が遷移することを意味する。
【0039】
図5に示した状態遷移グラフに対して、初期状態を先頭にして、全ての状態を一列に並べて序列を作るステップ120の処理を行う。図6は、ステップ120で図5に示す状態遷移グラフに図3に示したアルゴリズムを適用し、状態を1列に並べた結果の例を示している。
【0040】
図6に示した状態遷移グラフに対して、ループの切断の要否を判定するステップ130の処理を行う。図7は、ステップ130で、ループを切断するか否かを判定した後の状態遷移グラフを示している。ループを切断するか否かの判定は、ループ中に入出力動作がある時はループを切断すると判定し、入出力動作がない時はループは切断しないと判定する。図7では、状態遷移71〜75がループであるが、図4の状態遷移記述部43から状態S2と状態S3に入力動作があるため、ループ71,72,73,75は切断されることになる。ループ74は入出力動作を含まないため切断しない。なお、入出力動作は、外部入力ピンを右辺に含む信号代入文あるいは外部出力ピンを左辺に含む信号代入文として表現されているため、入出力動作の有無は、これらの信号代入文の有無で判定できる。
【0041】
図7に示した状態遷移グラフに対して、各状態の動作記述を序列の順番に並べ、内部信号を削除して、一つのプロセスを作成するステップ140の処理を行う。ステップ140により処理された状態遷移グラフに対し、ループ切断箇所に状態フラグセット文と、それ以降の処理をスキップする文を挿入するステップ150の処理を行う。図8は、ステップ150でループを切断すると判定した箇所にフラグをセットする文とこれ以降の処理をスキップする文とを挿入した後の様子を模式的に示している。例えば、図7のループ71を削除し、その代わりにフラグFLGを2にセットする。なお、ループが切断されない個所にはloop文やwhile文等適切な繰り返し文を挿入しておく。この処理により図8の点線に示す如く1つのプロセスにまとめられたものとする。
【0042】
以上のような処理を経て、抽象化されたハードウェア記述を生成するステップ160により抽象化されたハードウェア記述を出力する。図9は、ステップ160で生成される抽象化記述の例を示している。
【0043】
以上説明した抽象化手段によって生成される抽象化記述は、全体が1つのプロセスとしてまとめられているため、1回のイベント処理で全ての状態が正しい順序で実行される。このため、元のRTレベルのハードウェア記述が、複数回のイベント処理で全ての状態が実行されるのに比べ、シミュレーションが高速に実行されることになる。また、プロセッサとの間でデータ交換が必要となる部分では、一旦、処理が中断でき、その後の処理もフラグを適切に設定することによって正しく実行されるようになっている。
【0044】
第2の実施形態
次に、第1の実施の形態で説明した図1に示すハードウェア/ソフトウェア協調シミュレーション装置における抽象化手段15の第2の実施形態を説明する。
【0045】
図10は、抽象化手段15で行う処理を示すフローチャートである。ここで、第2の実施形態の抽象化手段15の動作について説明する。まず、ステップ210で、RTレベルのハードウェア記述12を解析して状態遷移グラフを作成する。図5に作成された状態遷移グラフを示す。この処理は、前述の第1の実施形態と同様でもよいので、その説明は省略する。次に、ステップ220で、初期状態を先頭とし、すべての状態を一列に並べた序列を作る。この時の状態のならべ方は、図3に示したアルゴリズムと同じで良いので、その説明は省略する。図11に作成された序列を示す。
【0046】
次に、ステップ230で、序列の前方に戻る状態遷移のそれぞれについて、当該状態遷移を残すか否かを判定する。判定方法は、前方に戻る状態遷移によって構成される閉ループ内に入出力動作が含まれる時、当該状態遷移を残すと判定し、閉ループ内に入出力動作が含まれない時は、当該状態を残さないと判定する。図
11を使って具体的に説明する。図11で、序列の前方に戻る状態遷移はe1,e2,e3,e4,e5の5つある。この内、e1,e2,e3,e5は、それによって構成される閉ループ内に入出力動作を行う状態S2ないし状態S3を含むため、状態遷移を残すと判定され、e4は、閉ループ内に入出力動作を行う状態を含まないので、状態遷移を残さないと判定されることになる。図12は、このようにして判定された結果を示す。次に、ステップ240で、ステップ230で残すと判定された状態遷移の遷移先状態で序列を分割する。序列を分割した例を図13に示す。
【0047】
最後に、ステップ250で、ステップ240で求めた各分割毎に、その分割に含まれる状態の動作記述を1つのプロセスとしてまとめ、抽象化記述を生成する。図14は、抽象化記述の状態遷移関係を表す図であり、図15は、抽象化記述の例を示す。
【0048】
以上のステップにより生成された抽象化記述は、プロセッサとの間の入出力動作、つまり、ソフトウェアシミュレータとの間でデータ転送を要する部分以外の動作を1回のイベント処理でシミュレーションできるようになっており、元のRTレベルのハードウェア記述では、複数回のイベント処理が必要になるのに比べ、シミュレーションが高速に実行できる。また、第1の実施の形態に示した抽象化手段に比べ、状態遷移を実現するために余分なステートメントを追加する必要もないので、シミュレーションするハードウェアの状態遷移が複雑な場合、第1の実施形態に示した抽象化手段よりも更に効率の良いシミュレーションが可能な記述が生成できる。
【0049】
なお、上述したハードウェア/ソフトウェア協調シミュレーション方法を実現するためのプログラムは記録媒体に保存することができる。この記録媒体をコンピュータシステムによって読み込ませ、前記プログラムを実行してコンピュータを制御しながら上述したハードウェア/ソフトウェア協調シミュレーション方法を実現することができる。ここで、前記記録媒体とは、メモリ装置、磁気ディスク装置、光ディスク装置等、プログラムを記録することができるような装置が含まれる。
【0050】
【発明の効果】
以上説明してきたように、本発明に係るハードウェア/ソフトウェア協調シミュレーション装置、ハードウェア/ソフトウェア協調シミュレーション方法及びハードウェア/ソフトウェア協調シミュレーションプログラムを記録した機械読み取り可能な記録媒体によれば、RTレベルのハードウェア記述を抽象化して命令レベルの記述を生成することにより、ハードウェア側のシミュレーションも命令レベルで行うことにより、ソフトウェアの検証を目的とする協調シミュレーションを行う際に、高速なシミュレーションが可能となる。従って、ハードウェア検証及びソフトウェア検証について全体として高速な協調シミュレーションを行うことができ、効率よくソフトウェアの検証を行うことができる。
【図面の簡単な説明】
【図1】本実施形態の構成を示すブロック図である。
【図2】第1の実施形態における抽象化手段15の処理を示すフローチャートである。
【図3】状態を一列に並べて序列を作るステップ120の処理を示すフローチャートである。
【図4】第1及び第2の実施形態で用いるRTレベルのハードウェア記述である。
【図5】状態遷移グラフを示す図である。
【図6】状態を一列に並べて序列を作るステップ120の処理結果を示す図である。
【図7】ループの切断を判定した結果を示す図である。
【図8】一つのプロセスにまとめることを説明するための図である。
【図9】第1の実施形態により抽象化された後のハードウェア記述を示す図である。
【図10】第2の実施形態における抽象化手段の処理を示すフローチャートである。
【図11】状態を一列に並べて序列を作るステップ220の処理結果を示す図である。
【図12】状態遷移を残すか否かの判定結果を示す図である。
【図13】複数のプロセスに分割することを説明するための図である。
【図14】分割後の状態遷移を示す図である。
【図15】第2の実施形態により抽象化された後のハードウェア記述を示す図である。
【図16】ハードウェア/ソフトウェア協調シミュレーション装置の第1の従来例を示すブロック図である。
【図17】ハードウェア/ソフトウェア協調シミュレーション装置の第2の従来例を示すブロック図である。
【符号の説明】
11 小規模ソフトウェア
12 RTレベルハードウェア記述
13 RTレベルソフトウェアシミュレータ
14 RTレベルハードウェアシミュレータ
15 抽象化手段
16 アプリケーションソフトウェア
17 抽象化記述
18 命令レベルソフトウェアシミュレータ
19 命令レベルハードウェアシミュレータ
20 HW検証結果
21 SW検証結果
23 命令レベルハードウェア記述
24 レベル変換部
25 データブック
41 状態の宣言部
42 動作記述部
43 状態遷移記述部
51 状態(ノード)
52 状態遷移(エッジ)
71,72,73,74,75 ループ
Claims (2)
- RTレベルのプロセッサモデルとRTレベルのハードウェア記述とを用いてハードウェアの検証を目的としたシミュレーションを行うハードウェア検証部と、
前記RTレベルのハードウェア記述を前記プロセッサモデルに係るプロセッサとの入出力動作を考慮して命令レベルのハードウェア記述である抽象化記述を生成する抽象化手段と、
命令レベルのプロセッサモデルと前記抽象化記述とを用いてソフトウェアの検証を目的としたシミュレーションを行うソフトウェア検証部と、
を具備し、前記抽象化手段は、
前記RTレベルのハードウェア記述を解析し、状態遷移グラフを作成する手段と、
前記状態グラフの初期状態を先頭にして、状態を一列に並べて序列を作る手段と、
前記状態グラフの入出力動作の絡むループは切断する手段と、
各状態の動作記述を序列の順番に並べ、内部信号の削除を行って1つのプロセスとしてまとめる手段と、
ループの切断個所にフラグをセットする文とそれ以降の処理をスキップする文を挿入して抽象化記述を生成する手段と、
を具備することを特徴とするハードウェア/ソフトウェア協調シミュレーション装置。 - RTレベルのプロセッサモデルとRTレベルのハードウェア記述とを用いてハードウェアの検証を目的としたシミュレーションを行うハードウェア検証部と、
前記RTレベルのハードウェア記述を前記プロセッサモデルに係るプロセッサとの入出力動作を考慮して命令レベルのハードウェア記述である抽象化記述を生成する抽象化手段と、
命令レベルのプロセッサモデルと前記抽象化記述とを用いてソフトウェアの検証を目的としたシミュレーションを行うソフトウェア検証部と、
を具備し、
前記抽象化手段は、
前記RTレベルのハードウェア記述を解析し、状態遷移グラフを作成する手段と、
前記状態グラフの初期状態を先頭にして、状態を一列に並べて序列を作る手段と、
前記作った序列の前方に戻る状態遷移を残すか否かを判定する手段と、
前記残すと判定した状態遷移の遷移先状態で序列を分割する手段と、
前記求めた分割毎に動作記述を1つのプロセスにまとめ、抽象化記述を生成する手段と、
を具備することを特徴とするハードウェア/ソフトウェア協調シミュレーション装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34853296A JP3904645B2 (ja) | 1996-12-26 | 1996-12-26 | ハードウェア/ソフトウェア協調シミュレーション装置 |
US08/997,166 US5960182A (en) | 1996-12-26 | 1997-12-23 | Hardware-software co-simulation system, hardware-software co-simulation method, and computer-readable memory containing a hardware-software co-simulation program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34853296A JP3904645B2 (ja) | 1996-12-26 | 1996-12-26 | ハードウェア/ソフトウェア協調シミュレーション装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10187789A JPH10187789A (ja) | 1998-07-21 |
JP3904645B2 true JP3904645B2 (ja) | 2007-04-11 |
Family
ID=34225004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34853296A Expired - Fee Related JP3904645B2 (ja) | 1996-12-26 | 1996-12-26 | ハードウェア/ソフトウェア協調シミュレーション装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5960182A (ja) |
JP (1) | JP3904645B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6188975B1 (en) * | 1998-03-31 | 2001-02-13 | Synopsys, Inc. | Programmatic use of software debugging to redirect hardware related operations to a hardware simulator |
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 |
US6230114B1 (en) | 1999-10-29 | 2001-05-08 | Vast Systems Technology Corporation | Hardware and software co-simulation including executing an analyzed user program |
KR100368546B1 (ko) * | 2000-01-18 | 2003-01-24 | 한국 Mds (주) | 실제 프로세서를 이용한 낙관적 실행에 의한하드웨어-소프트웨어 통합 검증방법 |
US7107202B1 (en) * | 2000-01-31 | 2006-09-12 | Intel Corporation | Method and apparatus for hardware and software co-simulation |
US7366650B2 (en) * | 2001-04-12 | 2008-04-29 | Arm Limited | Software and hardware simulation |
JP2003016134A (ja) | 2001-07-02 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 論理回路モデルの変換方法 |
CA2704252C (en) | 2001-07-26 | 2011-09-27 | Irise | System and process for interacting with a user to define a behavior of a portion of an interactive presentation |
US7017097B1 (en) | 2002-09-24 | 2006-03-21 | Cypress Semiconductor Corp. | Simultaneously driving a hardware device and a software model during a test |
ITSV20020056A1 (it) * | 2002-11-14 | 2004-05-15 | Alstom Transp Spa | Dispositivo e metodo di verifica di motori software logici di comando di impianti ferroviari, in particolare di impianti di stazione |
JP3951925B2 (ja) * | 2003-01-31 | 2007-08-01 | セイコーエプソン株式会社 | ハードウェア/ソフトウェア協調検証方法 |
US7830386B1 (en) * | 2005-06-17 | 2010-11-09 | Nvidia Corporation | Register transfer level simulation using a graphics processor |
US20070043548A1 (en) * | 2005-07-29 | 2007-02-22 | International Business Machines Corporation | Verifying a simulated hardware environment for a simulated device under test |
US7562001B2 (en) | 2005-07-29 | 2009-07-14 | International Business Machines Corporation | Creating a behavioral model of a hardware device for use in a simulation environment |
US8073798B2 (en) * | 2007-05-24 | 2011-12-06 | Palo Alto Research Center Incorporated | Dynamic domain abstraction through meta-analysis |
US8265917B1 (en) * | 2008-02-25 | 2012-09-11 | Xilinx, Inc. | Co-simulation synchronization interface for IC modeling |
KR20100084036A (ko) * | 2009-01-15 | 2010-07-23 | 삼성전자주식회사 | 소프트웨어의 에러 검출 장치 및 방법 |
US8910143B2 (en) | 2010-09-20 | 2014-12-09 | General Electric Company | Conversion system and method for use in upgrading a monitoring system |
EP2625606A4 (en) | 2010-10-08 | 2014-11-26 | Irise | SYSTEM AND METHOD FOR EXTENDING A VISUALIZATION PLATFORM |
US8287290B2 (en) | 2011-02-08 | 2012-10-16 | General Electric Company | Device, system and method of an interface connector |
US9996637B2 (en) * | 2015-07-30 | 2018-06-12 | International Business Machines Corporation | Method for verifying hardware/software co-designs |
CN111124700B (zh) * | 2018-10-31 | 2023-07-18 | 百度在线网络技术(北京)有限公司 | 仿真软件模型的接入方法和装置 |
JP7282616B2 (ja) * | 2019-06-27 | 2023-05-29 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US20230170098A1 (en) * | 2020-04-22 | 2023-06-01 | The Fourth Paradigm (Beijing) Tech Co Ltd | Simulation system and simulation method, and epidemic deduction simulation system and simulation method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555201A (en) * | 1990-04-06 | 1996-09-10 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information |
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 |
US5809283A (en) * | 1995-09-29 | 1998-09-15 | Synopsys, Inc. | Simulator for simulating systems including mixed triggers |
US5784593A (en) * | 1995-09-29 | 1998-07-21 | Synopsys, Inc. | Simulator including process levelization |
-
1996
- 1996-12-26 JP JP34853296A patent/JP3904645B2/ja not_active Expired - Fee Related
-
1997
- 1997-12-23 US US08/997,166 patent/US5960182A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10187789A (ja) | 1998-07-21 |
US5960182A (en) | 1999-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3904645B2 (ja) | ハードウェア/ソフトウェア協調シミュレーション装置 | |
US5862361A (en) | Sliced synchronous simulation engine for high speed simulation of integrated circuit behavior | |
US8122398B2 (en) | Conversion of circuit description to an abstract model of the circuit | |
JP2009522652A (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
JP2002073719A (ja) | 回路動作モデル記述の生成方法および論理設計検証装置 | |
JP3803561B2 (ja) | 論理回路設計方法 | |
JP2005141624A (ja) | 検証装置、検証方法およびプログラム | |
JP2006048525A (ja) | シミュレーション方法 | |
JPH11184896A (ja) | 高位合成装置及び高位合成方法、並びに高位合成プログラムを記録した記録媒体 | |
JP2004013720A (ja) | 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法 | |
CN115705446A (zh) | 集成电路的后仿真方法和装置 | |
JP2008197883A (ja) | Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法 | |
JP5104356B2 (ja) | 検証支援プログラム、検証支援装置、および検証支援方法 | |
Densmore et al. | Microarchitecture development via metropolis successive platform refinement | |
JP2853649B2 (ja) | 論理シミュレーション用モデルの作成方法 | |
JP2007241836A (ja) | マルチサイクルパス検証方法 | |
JP4448048B2 (ja) | 構造解析プログラム | |
JP2001022808A (ja) | 論理回路削減装置ならびに論理シミュレーション方法および装置 | |
JP4209010B2 (ja) | クロック最適化装置 | |
KR100594593B1 (ko) | 반도체 소자의 설계 검증을 위한 고속 병렬 시뮬레이션 방법 | |
CN118036548A (zh) | 一种SoC系统中AXI总线接口子系统的建模方法 | |
JP5288124B2 (ja) | 論理シミュレーションシステム、論理シミュレーション方法及び論理シミュレーションプログラム | |
JPH06337903A (ja) | 論理回路のシミュレ−ション方法 | |
JPH05266124A (ja) | 論理回路シミュレーション用回路素子ライブラリの作成方法 | |
JP2006184020A (ja) | テストパターン編集装置、テストパターン編集プログラム及びテストパターン編集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040601 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040802 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040818 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20041029 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050603 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110119 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120119 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130119 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |