JP4484048B2 - ハードウェア/ソフトウェア協調検証システム - Google Patents

ハードウェア/ソフトウェア協調検証システム Download PDF

Info

Publication number
JP4484048B2
JP4484048B2 JP2004263821A JP2004263821A JP4484048B2 JP 4484048 B2 JP4484048 B2 JP 4484048B2 JP 2004263821 A JP2004263821 A JP 2004263821A JP 2004263821 A JP2004263821 A JP 2004263821A JP 4484048 B2 JP4484048 B2 JP 4484048B2
Authority
JP
Japan
Prior art keywords
verification
circuit
logic circuit
hardware
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004263821A
Other languages
English (en)
Other versions
JP2006079417A (ja
Inventor
由加 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2004263821A priority Critical patent/JP4484048B2/ja
Publication of JP2006079417A publication Critical patent/JP2006079417A/ja
Application granted granted Critical
Publication of JP4484048B2 publication Critical patent/JP4484048B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Description

本発明は、集積回路、特にLSIのシステムレベルでの検証を行うシステムおよび方法に関する。
LSIの大規模化に伴い、設計段階での検証も複雑さを増している。特に、システムLSIでは、1つのLSIチップ上に機能の異なる複数の回路が搭載されることから、検証は多岐にわたり、より複雑である。こうした状況の中、さまざまなソフトウェア/ハードウェア協調検証方法が提案されている。
ソフトウェア/ハードウェア協調検証は、ソフトウェアの動作検証とハードウェア(機能回路)の機能検証を相互に協調して行うものであって、例えば、RTL設計によって作成したハードウェア部分とソフトウェア仕様の間に不整合がないかどうかの検証を行うことができる。ソフトウェアの動作検証には、CPUと周辺回路を含むシステム全体(LSIチップ全体)を対象とした動作検証が可能なソフトウェア検証専用のシステムシミュレータが用いられる。ハードウェアの機能検証には、FPGA(Field Programmable Gate Array)とメモリ等で構成されるハードウェアエミュレータが用いられる。システムシミュレータでは、各種ハードウェア記述言語(VHDLやVerilog HDLなど)で記述した動作モデルを使用して動作検証を行う。ハードウェアエミュレータでは、検証対象であるハードウェア(機能回路)の論理回路を使用して機能検証を行う。
RTLシミュレータを使用したソフトウェア/ハードウェア協調検証システムが既に実現されている。しかし、RTLシミュレータによる検証は、動作スピードが遅く、また、デバック性も悪い。そこで、RTLよりも抽象度の高いC言語等で機能回路の動作を記述した動作モデルを別途作成して検証に用いる方法が提案されている(特許文献1参照)。クロック概念のないC言語で記述した動作モデルは、クロック動作をしないことから、検証時間はRTLシミュレータを使用する場合よりも短縮される。また、抽象度の高いC言語で記述した動作モデルを使用することで、デバック性も改善される。ここで、抽象度は、ビヘイビアレベル、RTL、ゲートレベルなどの設計レベルを表すものである。例えば、VHDLやVerilog HDLなどを用いる場合の抽象度は、ビヘイビアレベル〜ゲートレベルの範囲であるのに対して、C言語を用いる場合の抽象度は、アルゴリズムレベル〜ビヘイビアレベルの範囲である。
上記の他、ソフトウェアを搭載するプロセッサを動作レベルモデルとサイクルアキュレートモデルで切り替えて、論理レベルのハードウェアシミュレータと協調動作させるソフトウェア/ハードウェア協調検証方法も提案されている(特許文献2参照)。サイクルアキュレートモデルは、クロック動作をするモデルである。このサイクルアキュレートモデルを使用した場合は、クロック動作での検証が可能となり、ステップバイステップの検証ができるため、検証精度が向上する。
特開2001−189387号公報 特開2000−11022号公報
ハードウェア(機能回路)の動作モデルをRTLよりも抽象度の高いC言語等で記述するソフトウェア/ハードウェア協調検証方法においては、検証時間の短縮およびデバック性の改善を図ることができるものの、以下のような問題がある。
動作合成ツールを使用しない場合、同じ仕様書から作成した動作モデルとRTLの回路とは、それぞれ個別に作成することになるために、同じ動作をするかの保証はない。このため、通常は、動作モデルを検証して得られた結果は、そのハードの論理結果であることから、RTLの論理回路が動作モデルと同じ論理結果となるかの確認として期待値に使用する。このとき、RTLの論理回路の検証結果と期待値が一致すれば、同じ論理を出力したこととなる。しかし、そのような論理等価性の確認においては、通常、システムシミュレータでの動作モデルを使用した動作検証とハードウェアエミュレータでのRTL論理回路の検証とをそれぞれ個別の検証環境で行うが、そのような個別の検証環境の構築は、非常に手間がかかる上、工数も増えることになり、使用者への負担が大きい。この問題は、RTLの回路に対して、C言語等を用いて動作モデルを作成した場合にも生じる。
なお、ソフトウェア検証を目的として、既存のツールを用いてRTLの回路への動作合成を行うことができないC言語等でハードウェアの動作モデルを作成した場合において、その動作モデル相当のRTLの回路を作成した場合に、その論理等価性を同一環境で検証する具体的な方法は、これまで提案されていない。
特許文献2に記載のソフトウェア/ハードウェア協調検証方法においては、ソフトウェアを搭載するプロセッサをサイクルアキュレートモデルとした場合に、クロック動作を行う分、処理に時間を要することになり、検証スピードが落ちる。
上述した問題の他、従来のソフトウェア/ハードウェア協調検証方法には、以下のような問題もある。
複数の機能回路から構成されているシステム(LSI)のある機能回路を検証する場合で、他の機能回路に、すでにRTLの論理回路と動作モデルとの論理等価性が確認された機能回路がある場合は、その論理等価性が確認された機能回路の動作レベルを切り替えることで、検証目的に応じた協調検証を行うことができる。具体的には、検証すべき機能回路を回路A、論理等価性が確認された機能回路を回路Bとした場合、回路Aについてスピードを優先した検証を行う場合は、回路Bとして動作モデルを使用し、回路Aについてクロック動作の精度を重視した検証を行う場合は、回路Bとして論理回路を使用する。こうすることで、検証目的に応じた協調検証を効率良く行うことができる。しかし、従来は、機能回路の動作レベルの切り替えを行うことができないため、そのような検証目的に応じた協調検証を行うことはできなかった。
本発明の目的は、上記問題を解決し、検証時間の短縮およびデバック性の改善を図りつつ、論理等価性を同一環境で検証することができ、かつ、検証目的に応じた協調検証を行うことができる、協調検証システム、協調検証方法およびプログラムを提供することにある。
上記目的を達成するため、本願発明は、少なくとも1つの機能回路の動作を所定の言語で記述した動作モデルが設けられたシステムシミュレータと、前記機能回路の論理回路が設けられ、前記システムシミュレータと同期して協調検証が行われるハードウェアエミュレータとを有し、前記動作モデルと前記論理回路は、前記協調検証においていずれかが使用されるように選択可能に構成されている。
本発明によれば、機能回路の論理回路と動作モデルの論理等価性の検証を、同一の協調検証環境にて行うことが可能である。具体的に説明すると、ある機能回路の動作モデルとRTLの回路(論理回路)を同じ仕様書から個別に作成した場合、システムシミュレータ上にその動作モデルが、ハードウェアエミュレータ上にそのRTLの回路(論理回路)がそれぞれ設けられる。機能回路として動作モデルを選択して協調検証を行うことで、動作モデルの検証結果を得られ、機能回路としてRTLの回路(論理回路)を選択して協調検証を行うことで、RTLの回路(論理回路)の検証結果を得られる。こうして得られた検証結果を比較することで、論理等価性を検証することできる。この論理等価性の検証において、協調検証環境は、動作モデルとRTLの回路(論理回路)を切り替えた以外は全く同じ検証環境となる。
また、本発明によれば、抽象度の異なる論理回路と動作モデルを切り替え可能に構成したことで、検証目的に応じた協調検証を行うことが可能である。具体的に説明すると、機能回路の論理回路(RTL回路)と動作モデル(C言語)の論理等価性が確認済みの場合、機能回路として動作モデルを選択すれば、スピードを優先した検証を行うことが可能となり、また、機能回路として論理回路を選択すれば、クロック動作の精度を重視した検証を行うことが可能となる。
以上のように、本発明によれば、個別の検証環境を構築する従来の手法において生じていたような手間や工数の増大の問題を解決することができ、また、検証目的に応じた協調検証を効率良く行うことができる。
次に、本発明の実施形態について図面を参照して説明する。
(実施形態1)
図1は、本発明の第1の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。このソフトウェア/ハードウェア協調検証システムは、LSIのシステムレベルの検証、より具体的には、RTL設計によって作成したハードウェア部分とソフトウェア仕様の間に不整合がないかどうかを検証するものであって、その構成はシステムシミュレータ1とハードウェアエミュレータ2からなる。
システムシミュレータ1は、CPUや周辺回路(通信回路等)などの機能回路を含むシステム全体を対象とした動作検証が可能なソフトウェア検証専用のシミュレータである。このようなシミュレータは、表示部と、シミュレーションプログラム(ソフトウェア)やシミュレーション処理に必要なデータが格納されるメモリ部と、このメモリ部から必要なプログラムおよびデータを読み出してシミュレーションを実行する制御部(CPU)とを少なくとも有する計算機(具体的には、パーソナルコンピュータ)により実現される。
ハードウェアエミュレータ2は、FPGAとメモリ等を搭載したボートよりなり、FPGAに機能回路を書き込むことでその論理回路を作成することができる。このハードウェアエミュレータ2の拡張ボートを、システムシミュレータ1を構成する計算機に搭載することで、ソフトウェア/ハードウェア協調検証システムが実現される。
上記のようにしてソフトウェア/ハードウェア協調検証システムを実現した計算機において、制御部は、システムシミュレータ1によるシミュレーションおよびハードウェアエミュレータ2によるエミュレーションを制御する。また、制御部は、システムシミュレータ1からシミュレーション結果を、ハードウェアエミュレータ2からエミュレーション結果をそれぞれ取得し、それら結果に基づいて、RTLの回路(論理回路)と動作モデルの等価性の検証および機能回路の検証を行うとともに、その検証結果を表示部に表示させる。
システムシミュレータ1の主要部は、機能回路であるA回路の動作モデル3、クロック生成回路6、Cプロセッサ動作モデル7、RAMモデル8、タイミング調整回路9およびセレクタ10からなる。ハードウェアエミュレータ2の主要部は、A回路の論理回路4、別の機能回路であるB回路の論理回路5およびセレクタ11からなる。
クロック生成回路6は、動作の基準となるクロックを生成し、該生成したクロックをA回路動作モデル3、Cプロセッサ動作モデル7、タイミング調整回路9、論理回路4、5のそれぞれに供給する。A回路動作モデル3およびCプロセッサ動作モデル7は、所定の記述言語で記述した動作モデルである。ここで、所定の記述言語とは、クロック概念のない記述言語であって、例えばC言語である。このようなC言語で記述した動作モデルでは、ハードウェアクロック(システムクロック)による制御は行われず、ソフトウェアによる処理が実行される。ただし、ハードウェア(論理回路4、5)との同期をとるためにクロック生成回路6からのクロックが用いられる。
A回路の論理回路4およびB回路の論理回路5は、クロック生成回路6からのクロックに基づいて動作する。RAMモデル8は、Cプロセッサ動作モデル7上で動作するソフトウェアを格納するものである。Cプロセッサ動作モデル7は、RAMモデル8に格納されているソフトウェアに従って動作する。タイミング調整回路9は、システムシミュレータ1上の動作モデルとハードウェアエミュレータ2上の論理回路との間の信号のやりとりにおいてタイミングの調整を行う。
Cプロセッサ動作モデル7の出力は2つに分岐され、一方はA回路動作モデル3、タイミング調整回路9を順次介してセレクタ11の一方の入力に供給され、他方は、タイミング調整回路9、A回路の論理回路4を順次介してセレクタ11の他方の入力に供給されている。セレクタ11は、2つの入力のいずれかをB回路の論理回路5に供給する。B回路の論理回路5の出力は2つに分岐され、一方はA回路の論理回路4、タイミング調整回路9を順次介してセレクタ10の一方の入力に供給され、他方はタイミング調整回路9、A回路動作モデル3を順次介してセレクタ10の他方の入力に供給されている。セレクタ10は、2つの入力のいずれかをCプロセッサ動作モデル7に供給する。
セレクタ10、11における入力の選択は、制御部によって制御される。セレクタ10、セレクタ11は連動して動作する構成であり、A回路として、システムシミュレータ1上の動作モデル3とハードウェアエミュレータ2上の論理回路4のいずれかを選択することが可能である。A回路動作モデル3が選択された場合は、セレクタ10は、A回路動作モデル3からの信号をタイミング調整回路9によりタイミング調整したものをハードウェアエミュレータ2上のB回路の論理回路5に渡し、セレクタ11は、A回路動作モデル3からの信号をCプロセッサ動作モデル7に渡す。また、A回路の論理回路4が選択された場合は、セレクタ10は、B回路の論理回路5にA回路の論理回路4からの出力信号を渡し、セレクタ11は、A回路4からの出力信号をタイミング調整回路9によりタイミング調整した信号をCプロセッサ動作モデル7に渡す。
クロック生成回路6から供給されるクロックで各部を動作させることで、システムシミュレータ1とハードウェアエミュレータ2の間の同期をとることが可能となっており、これにより、論理回路および動作モデルからなるシステムモデルの各部の同時起動および同時停止が可能となっている。システムモデルの同時起動および同時停止は、任意のタイミング、または、イベントの発生および終了に基づいて行われる。
システムシミュレータ1およびハードウェアエミュレータ2による協調検証は、システムモデルを停止した状態で行われる。具体的には、システムシミュレータ1の動作を停止することで、クロック生成回路6からハードウェアエミュレータ2の各論理回路4、5へのクロック供給が停止することとなり、その結果、システムシミュレータ1上の動作モデルとハードウェアエミュレータ2上の論理回路が同時に停止することになる。この停止状態での論理回路の状態(FPGAのレジスタの状態)および動作モデルの内部変数がそれぞれエミュレーション結果およびシミュレーション結果として制御部に供給される。
なお、エミュレーション結果およびシミュレーション結果は、テキストファイル形式で供給されてもよい。また、検証結果の比較は、ステップバイステップで行ってもよく、システムシミュレータ上でブレーク設定可能なタイミングで行ってもよい。
上述した本実施形態のソフトウェア/ハードウェア協調検証システムでは、制御部によって、(1)A回路の動作モデル3と論理回路4の等価性の検証、(2)B回路の機能検証の2つの検証が行われる。以下、これら検証の具体的な動作を説明する。
(1)A回路の動作モデル3と論理回路4の等価性の検証:
この等価性の検証では、既存のRTLの回路に対して、新たに動作モデルを作成し、その作成した動作モデルとRTLの回路との等価性が検証される。図2に、既存のRTLの回路に対して新たに作成した動作モデルの等価性を検証する一手順を示す。
図3を参照すると、まず、使用者が、計算機上で、既存のツールを用いてA回路の動作モデルをクロック概念のないC言語等により作成する(ステップS11)。次に、使用者が、ハードウェアエミュレータ2上にA回路の論理回路(既存のRTLの回路の論理回路)を、システムシミュレータ1上にA回路の動作モデルをそれぞれ形成し、A回路をテストするためのテストパタンを所定のツールで作成する(ステップS12)。こうして図1に示した検証環境が構築されるとともに、検証のための準備がなされる。準備が整った後、使用者が、計算機上で、回路Aの等価性の検証を行うための入力操作を行うと、制御部によって以下のような処理が実行される。なお、テストパタンは、システムシミュレータ1にインタフェースを設けて外部装置から供給するようにしてもよく、また、ハードウェアエミュレータ2上にテストパタンを発生する回路を設けて、その回路から供給するようにしてもよい。
まず、セレクタ10、11を制御して、ハードウェアエミュレータ2上の論理回路4を選択する(ステップS13)。この選択により、図3に示すような状態となる。図3の状態では、システムシミュレータ1上で、Cプロセッサ動作モデル7およびRAMモデル8が動作し、ハードウェアエミュレータ2上で、論理回路4、5が動作する。
次に、ステップS12で作成したテストパタンをシステムシミュレータ1およびハードウェアエミュレータ2に供給して協調検証を行う(ステップS14)。この協調検証では、任意のタイミング、またはイベントの発生および終了をきっかけにして、システムシミュレータ1上の動作モデル(A回路動作モデル3およびCプロセッサ動作モデル7)およびハードウェアエミュレータ2上の論理回路(論理回路4、5)が同時起動して同時停止する。同時停止後、動作モデルおよび論理回路のそれぞれの状態が制御部に供給される。
次に、セレクタ10、11を制御して、システムシミュレータ1上のA回路動作モデル3を選択する(ステップS15)。この選択により、図4に示すような状態となる。図4の状態では、システムシミュレータ1上で、A回路動作モデル3、Cプロセッサ動作モデル7およびRAMモデル8が動作し、ハードウェアエミュレータ2上で、論理回路5が動作する。
次に、ステップS12で作成したテストパタンをシステムシミュレータ1およびハードウェアエミュレータ2に供給して協調検証を行う(ステップS16)。この協調検証では、任意のタイミング、またはイベントの発生および終了をきっかけにして、システムシミュレータ1上の動作モデル(A回路動作モデル3およびCプロセッサ動作モデル7)およびハードウェアエミュレータ2上の論理回路(論理回路5)が同時起動して同時停止する。同時停止後、動作モデルおよび論理回路のそれぞれの状態が制御部に供給される。
最後に、ステップS14で得られた検証結果のうちの論理回路4の内部状態と、ステップS16で得られた検証結果のうちのA回路動作モデル3の内部変数とが一致するか否かを判断する(ステップS17)。一致した場合は、論理回路4とA回路動作モデル3が等価であるとして、検証処理を終了する。一致しなかった場合は、使用者が、計算機上で、所定のツールを用いてA回路動作モデル3の修正を行い(ステップS18)、その後、ステップS12〜S17の処理を繰り返す。
(2)B回路の機能検証:
この機能検証では、A回路として論理等価性が確認済みの動作モデル3および論理回路4が用いられ、B回路の機能検証が以下のようにして実行される。なお、A回路の論理等価性の確認には、上述した「(1)A回路の動作モデル3と論理回路4の論理等価性の検証」を用いることができる。
まず、使用者が、論理等価性が確認済みの動作モデル3、論理回路4をそれぞれシステムシミュレータ1、ハードウェアエミュレータ2上に形成する。さらに、機能検証すべきB回路の論理回路5をハードウェアエミュレータ2上に形成する。こうして、図1に示した検証環境を構築する。
検証環境を構築後、使用者が、計算機上で、検証目的に応じた動作レベルを入力指定する。検証目的には、(1)クロック動作の精度を重視した検証、(2)スピードを優先した検証があり、それぞれを動作レベルL1、L2と表す。計算機のメモリ部には、動作レベルL1、L2毎にA回路の動作モデル3および論理回路4のいずれを選択するかの情報を記述したテーブルが予め格納されており、制御部は、使用者が指定した動作レベルからテーブルを参照して動作モデル3および論理回路4のいずれを選択するかの判断を行う。ここでは、動作レベルL1に対して論理回路4が、動作レベルL2に対して動作モデル3がそれぞれ選択されるようにテーブルが構成されている。
動作レベルL1が指定入力されると、制御部は、セレクタ10、11を制御して論理回路4を選択する。この選択により、図3に示した状態となる。この状態では、A回路として、クロック動作する論理回路4が使用され、その結果、クロック動作の精度を重視した検証が可能となる。
図3に示した状態で、テストパタンをシステムシミュレータ1およびハードウェアエミュレータ2に供給して協調検証を行う。この協調検証においても、任意のタイミング、またはイベントの発生および終了をきっかけにして、システムシミュレータ1上の動作モデル(Cプロセッサ動作モデル7)およびハードウェアエミュレータ2上の論理回路(論理回路4、5)が同時起動して同時停止する。同時停止後、動作モデルおよび論理回路のそれぞれの状態が制御部に供給される。制御部は、ハードウェアエミュレータ2から供給された検証結果のうちの論理回路5の内部状態と予め設定されている期待値とを比較し、その比較結果を表示部に出力する。
動作レベルL2が指定入力されると、制御部は、セレクタ10、11を制御してA回路動作モデル3を選択する。この選択により、図4に示した状態となる。この状態では、A回路として、クロックの概念のない動作モデル3が使用され、その結果、スピードを優先した検証が可能となる。
図4に示した状態で、テストパタンをシステムシミュレータ1およびハードウェアエミュレータ2に供給して協調検証を行う。この協調検証においても、任意のタイミング、またはイベントの発生および終了をきっかけにして、システムシミュレータ1上の動作モデル(A回路動作モデル4およびCプロセッサ動作モデル7)およびハードウェアエミュレータ2上の論理回路(論理回路5)が同時起動して同時停止する。同時停止後、動作モデルおよび論理回路のそれぞれの状態が制御部に供給される。制御部は、ハードウェアエミュレータ2から供給された検証結果のうちの論理回路5の内部状態と予め設定されている期待値とを比較し、その比較結果を表示部に出力する。
上述の「(2)B回路の機能検証」の手順はCプロセッサ動作モデル7の検証にも適用することができる。この場合は、論理回路5の内部状態と予め設定されている期待値との比較する動作に代えて、システムシミュレータ1からの検証結果のうちのCプロセッサ動作モデル7の内部変数と予め設定されている期待値との比較を行う動作が行われる。
以上のように、本実施形態では、システムシミュレータ1とハードウェアエミュレータ2の協調検証環境において、異なった抽象度で作成されたA回路の論理回路と動作モデルをそれぞれシステムシミュレータ1とハードウェアエミュレータ2にあらかじめ搭載しておき、協調検証時に、A回路として抽象度の異なるの論理回路と動作モデルのどちらを検証に使用するかを選択することができる。これにより、A回路について、同一検証環境での同一テストパタンを使用した論理等価性の確認を行うことができる。
また、A回路の抽象度を選択することができるので、検証スピード重視の場合やクロック動作精度重視など検証目的に合わせて、検証環境を自由に変更することができる。さらに、動作モデルを抽象度の高いC言語で作成するので、検証時間の短縮およびデバック性の改善を図ることができる。
(実施形態2)
上述した第1の実施形態の協調検証システムにおいて、システムシミュレータ1に形成する動作モデルとハードウェアエミュレータ2上に形成する論理回路の動作レベルが異なる機能回路は複数であってもよい。ここでは、そのような機能回路を複数有する協調検証システムについて説明する。
図5は、本発明の第2の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。この協調検証システムは、図1に示した検証システムにおいて、システムシミュレータ1上にB回路の動作モデル12、セレクタ14、15をさらに設け、ハードウェアエミュレータ2上にセレクタ13をさらに設けて、制御部により、A回路の動作モデル3および論理回路4の切り替えおよびB回路の動作モデル12と論理回路5の切り替えが個別に制御されるように構成されている。図5中、図1に示したものと同じものには同じ符号を付している。
A回路動作モデル3のタイミング調整回路9への出力は分岐されており、その分岐した出力はセレクタ14の一方の入力に供給されている。論理回路4のセレクタ11への出力は分岐されており、その分岐した出力はタイミング調整回路9を介してセレクタ14の他方の入力に供給されている。セレクタ14は、2つの入力のいずれかをB回路動作モデル12に供給する。
B回路動作モデル12は、他の動作モデルおよび論理回路との同期をとるためにクロック生成回路6からクロックが供給されている。B回路動作モデル12の出力は分岐されており、一方は、セレクタ15の一方の入力に供給され、他方はタイミング調整回路9を介してセレクタ13の一方の入力に供給されている。論理回路5の出力は分岐されており、一方はセレクタ13の他方の入力に供給され、他方はタイミング調整回路9を介してセレクタ15の他方の入力に供給されている。セレクタ13は、2つの入力のいずれかをA回路の論理回路4に供給する。セレクタ15は、2つの入力のいずれかをA回路動作モデル3に供給する。
セレクタ10〜15における入力の選択は、制御部によって制御される。これらセレクタ10〜15を用いた選択により、図6に示すような第1〜第4の状態を選択することが可能となる。
第1の状態では、A回路として動作モデル3を選択し、B回路として動作モデル12を選択する。この場合は、各セレクタ10〜15の切り替えは次のようになる。セレクタ10は、A回路動作モデル3からの信号を選択してCプロセッサ動作モデル7に渡す。セレクタ14は、A回路動作モデル3からの出力信号を選択してB回路動作モデル12に渡す。セレクタ15は、B回路動作モデル12からの出力信号を選択してA回路動作モデル3に渡す。ハードウェアエミュレータ2上の論理回路4、5はいずれも未使用の状態であるため、セレクタ11、13はどのように選択されていてもよい。
第2の状態では、A回路として動作モデル3を選択し、B回路として論理回路5を選択する。この場合は、各セレクタ10〜15の切り替えは次のようになる。セレクタ10は、A回路動作モデル3からの出力信号を選択してCプロセッサ動作モデル7に渡す。セレクタ15は、ハードウェアエミュレータ2上のB回路5からの出力されタイミング調整回路9によりタイミング調整された信号を選択してA回路動作モデル3に渡す。セレクタ11は、システムシミュレータ1上のA回路動作モデル3から出力されタイミング調整回路9によりタイミング調整された信号を選択してB回路5に渡す。A回路の論理回路4およびB回路動作モデル12は未使用のため、セレクタ13、14はどのように選択されていてもよい。
第3の状態では、A回路として論理回路4を選択し、B回路として動作モデル12を選択する。この場合は、各セレクタ10〜15の切り替えは次のようになる。セレクタ10は、A回路の論理回路4から出力されタイミング調整回路9によりタイミング調整された信号を選択しCプロセッサ動作モデル7に渡す。セレクタ14は、A回路4から出力されタイミング調整回路9によりタイミング調整された信号を選択してB回路動作モデル12に渡す。セレクタ13は、B回路動作モデル12から出力されタイミング調整回路9によりタイミング調整された信号を選択してA回路の論理回路4に渡す。A回路動作モデル3とB回路の論理回路5は未使用のため、セレクタ11、15はどのように選択されていてもよい。
第4の状態では、A回路として論理回路4を選択し、B回路として論理回路5を選択する。この場合は、各セレクタ10〜15の切り替えは次のようになる。セレクタ10は、A回路の論理回路4から出力されタイミング調整回路9によりタイミング調整された信号を選択しCプロセッサ動作モデル7に渡す。セレクタ11は、A回路の論理回路4からの出力信号を選択してB回路5に渡す。セレクタ13は、B回路の論理回路5からの出力信号を選択してA回路の論理回路4に渡す。A回路動作モデル3およびB回路動作モデル12は未使用のため、セレクタ14、15はどのように選択されていてもよい。
本実施形態の協調検証システムでは、第2、第4の状態を適宜切り替えることで、A回路の動作モデル3と論理回路4の等価性の検証を行うことができる。
また、第3、第4の状態を適宜切り替えることで、B回路の動作モデル12と論理回路5の等価性の検証を行うことができる。
また、検証目的に応じて第1〜第4の状態を切り替えることで、協調検証を効率良く行うことができる。例えば、B回路の論理等価性が確認されている場合において、A回路の動作モデル3の検証を行う場合は、検証目的に応じて第1、第2の状態を切り替え、A回路の論理回路4の検証を行う場合は、検証目的に応じて第3、第4の状態を切り替える。同様に、A回路の論理等価性が確認されている場合において、B回路の動作モデル12の検証を行う場合は、検証目的に応じて第1、第3の状態を切り替え、B回路の論理回路5の検証を行う場合は、検証目的に応じて第2、第4の状態を切り替える。また、A回路およびB回路の論理等価性がともに確認されている場合において、Cプロセッサ動作モデル7の検証を行う場合は、検証目的に応じて第1〜4の状態が適宜切り替えられる。いずれの場合の検証も、基本的には、上述の「(2)B回路の機能検証」と同じ処理となる。
以上の本実施形態によれば、第1の実施形態のものと比べて、検証環境の変更における自由度がより大きくなる。
(実施形態3)
上述した第1および第2の実施形態において、切り替え可能とする機能回路をCプロセッサとしてもよい。ここでは、Cプロセッサの動作モデルおよび論理回路がそれぞれシステムシミュレータおよびハードウェアエミュレータに設けられた形態について説明する。
図7は、本発明の第3の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。この協調検証システムは、図1に示した協調検証システムにおいて、セレクタ10、11、A回路動作モデル3を削除するとともに、システムシミュレータ1上にデバック環境19を設け、ハードウェアエミュレータ2上にセレクタ18、Cプロセッサ論理回路16およびRAM論理回路18を設けたものである。図7中、図1に示したものと同じものには同じ符号を付している。
クロック生成回路6からのクロックは、論理回路4、5、Cプロセッサ動作モデル7、タイミング調整回路9およびCプロセッサ論理回路16のそれぞれに供給されている。RAM論理回路18は、Cプロセッサ論理回路16上で動作するソフトウェアを格納するものである。Cプロセッサ論理回路16は、RAM論理回路18に格納されているソフトウェアに従って動作する。Cプロセッサ論理回路16の出力は、セレクタ18の一方の入力に供給されている。セレクタ18の他方の入力には、Cプロセッサ動作モデル7の出力がタイミング調整回路9を介して供給されている。セレクタ18は、いずれかの入力を選択して論理回路4に供給する。論理回路4は論理回路5との間で信号をやりとりする。論理回路4からタイミング調整回路9へ出力された信号はそのままCプロセッサ動作モデル7に供給されている。デバッグ環境19には、ソフトウェアのプログラムカウンタ等の信号が供給されている。
本実施形態では、制御部によってセレクタ18の切り替えが制御される。この切り替え制御により、CプロセッサとしてCプロセッサ動作モデル7またはCプロセッサ論理回路16が選択される。Cプロセッサ動作モデル7を選択した場合は、セレクタ18はCプロセッサ動作モデル7から出力されタイミング調整機能9によりタイミング調整された信号をA回路の論理回路4に渡す。Cプロセッサ論理回路16を選択した場合は、セレクタ18は、Cプロセッサ論理回路18からの出力信号をA回路の論理回路4に渡す。
Cプロセッサの論理等価性の検証は、基本的には、図2に示した手順で行われる。図2の手順において、ステップS11では、Cプロセッサの動作モデルが作成される。また、ステップS13では、CプロセッサとしてCプロセッサ論理回路16が選択され、ステップS15ではCプロセッサとしてCプロセッサ動作モデル7が選択される。そして、ステップS18では、Cプロセッサの動作モデルの修正が行われる。これ以外の動作は、第1の実施形態で説明したとおりである。
また、本実施形態においても、Cプロセッサの論理等価性が確認できている場合は、論理回路4、5のそれぞれについて、Cプロセッサ動作モデル7とCプロセッサ論理回路16の切り替え制御により、検証目的に応じた協調検証を行うことができる。この場合の動作も、基本的には、第1の実施形態と同じである。
本発明の第1の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。 図1に示す協調検証システムにおいて論理等価性の検証の一手順を示すフローチャートである。 図1に示す協調検証システムの選択状態の一例を示す模式図である。 図1に示す協調検証システムの選択状態の他の例を示す模式図である。 本発明の第2の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。 図5に示す協調検証システムにおける選択状態を説明する図である。 本発明の第3の実施形態であるソフトウェア/ハードウェア協調検証システムの主要部の構成を示すブロック図である。
符号の説明
1 システムシミュレータ
2 ハードウェアエミュレータ
3 A回路動作モデル
4、5 論理回路
6 クロック生成回路
7 Cプロセッサ動作モデル
8 RAMモデル
9 タイミング調整回路
10、11 セレクタ

Claims (13)

  1. 第1の機能回路の動作を所定の言語で記述した動作モデルが設けられたシステムシミュレータと、
    前記第1の機能回路の第1の論理回路と前記第1の機能回路とは異なる第2の機能回路の第2の論理回路が設けられ、前記システムシミュレータと同期して協調検証が行われるハードウェアエミュレータとを有するハードウェア/ソフトウェア協調検証システムであって
    表示部と、
    前記第1の論理回路と前記第2の論理回路が接続される第1の状態と、前記第2の論理回路と前記動作モデルが接続される第2の状態とのいずれかを選択する選択部と、
    前記選択部に前記第1の状態を選択させて前記協調検証により第1の検証結果を取得し、前記選択部に前記第2の状態を選択させて前記協調検証により第2の検証結果を取得し、該取得した第1および第2の検証結果を比較して、前記動作モデルと前記第1の論理回路の論理等価性の有無を判断する制御部と、を有し、
    前記制御部は、
    前記選択部に前記第1の状態を選択させ、前記論理等価性があることが確認された前記第1の論理回路を前記第2の論理回路に接続して、前記協調検証により第3の検証結果を取得し、該取得した第3の検証結果を前記表示部に出力し、
    前記選択部に前記第2の状態を選択させ、前記論理等価性があることが確認された前記動作モデルを前記第2の論理回路に接続して、前記協調検証により第4の検証結果を取得し、該取得した第4の検証結果を前記表示部に出力する、ハードウェア/ソフトウェア協調検証システム。
  2. 前記協調検証の動作レベルが、クロック動作の精度を重視した検証が行われる第1の動作レベルと、スピードを優先した検証が行われる第2の動作レベルとからなり、前記第1の動作レベルに対する選択対象として前記第1の論理回路が、前記第2の動作レベルに対する選択対象として前記動作モデルがそれぞれ設定されたテーブルを有し
    前記制御部は、前記第1の動作レベルを選択する旨の入力を受け付けると、前記テーブルの内容から前記第1の論理回路が選択対象であると判断して、前記選択部に前記第1の状態を選択させて前記第3の検証結果を取得し、前記第2の動作レベルを選択する旨の入力を受け付けると、前記テーブルの内容から前記動作モデルが選択対象であると判断し、前記選択部に前記第2の状態を選択させて前記第4の検証結果を取得する、請求項1に記載のハードウェア/ソフトウェア協調検証システム。
  3. 前記所定の言語が、クロック概念のない言語である、請求項1または2に記載のハードウェア/ソフトウェア協調検証システム。
  4. 前記第1の機能回路がプロセッサである、請求項1または2に記載のハードウェア/ソフトウェア協調検証システム。
  5. 前記第1の機能回路は複数あり、各第1の機能回路ごとに前記動作モデルおよび第1の論理回路の選択が可能に構成されている、請求項1または2に記載のハードウェア/ソフトウェア協調検証システム。
  6. 第1の機能回路の動作を所定の言語で記述した動作モデルが設けられたシステムシミュレータと、前記第1の機能回路の第1の論理回路と前記第1の機能回路とは異なる第2の機能回路の第2の論理回路が設けられ、前記システムシミュレータと同期して協調検証が行われるハードウェアエミュレータとを有するコンピュータシステムにおいて行われるハードウェア/ソフトウェア協調検証方法であって、
    前記第1の論理回路と前記第2の論理回路を接続して、前記協調検証により第1の検証結果を取得する第1のステップと、
    前記第2の論理回路と前記動作モデルを接続して、前記協調検証により第2の検証結果を取得する第2のステップと、
    前記第1および第2のステップで取得した前記第1および第2の検証結果を比較して前記動作モデルと前記第1の論理回路の論理等価性の有無を判断する第3のステップと、
    前記論理等価性があることが確認された前記第1の論理回路を前記第2の論理回路に接続して、前記協調検証により第3の検証結果を取得し、該取得した第3の検証結果を表示部に出力する第4のステップと、
    前記論理等価性があることが確認された前記動作モデルを前記第2の論理回路に接続して、前記協調検証により第4の検証結果を取得し、該取得した第4の検証結果を前記表示部に出力する第5のステップとを含むハードウェア/ソフトウェア協調検証方法。
  7. 記協調検証の動作レベルが、クロック動作の精度を重視した検証が行われる第1の動作レベルと、スピードを優先した検証が行われる第2の動作レベルとからなり、
    前記第4のステップは、前記第1の動作レベルを選択する旨の入力を受け付けると、前記第1の動作レベルに対する選択対象として前記第1の論理回路が、前記第2の動作レベルに対する選択対象として前記動作モデルがそれぞれ設定されたテーブルを参照して、前記第1の論理回路が選択対象であると判断して、前記論理等価性があることが確認された前記第1の論理回路を前記第2の論理回路に接続するステップを含み、
    前記第5のステップは、前記第2の動作レベルを選択する旨の入力を受け付けると、前記テーブルを参照して、前記論理等価性があることが確認された前記動作モデルを前記第2の論理回路に接続するステップを含む、請求項6に記載のハードウェア/ソフトウェア協調検証方法。
  8. 前記所定の言語が、クロック概念のない言語である、請求項またはに記載のハードウェア/ソフトウェア協調検証方法。
  9. 前記第1の機能回路がプロセッサである、請求項またはに記載のハードウェア/ソフトウェア協調検証方法。
  10. 第1の機能回路の動作を所定の言語で記述した動作モデルが設けられたシステムシミュレータと、前記第1の機能回路の第1の論理回路と前記第1の機能回路とは異なる第2の機能回路の第2の論理回路が設けられ、前記システムシミュレータと同期して協調検証が行われるハードウェアエミュレータとを有するコンピュータシステムにおいて用いられるプログラムであって、
    前記第1の論理回路と前記第2の論理回路を接続して、前記協調検証により第1の検証結果を取得する第1の処理と、
    前記第2の論理回路と前記動作モデルを接続して、前記協調検証により第2の検証結果を取得する第2の処理と、
    前記第1および第2のステップで取得した前記第1および第2の検証結果を比較して前記動作モデルと前記第1の論理回路の論理等価性の有無を判断する第3のステップと、
    前記論理等価性があることが確認された前記第1の論理回路を前記第2の論理回路に接続して、前記協調検証により第3の検証結果を取得し、該取得した第3の検証結果を表示部に出力する第4の処理と、
    前記論理等価性があることが確認された前記動作モデルを前記第2の論理回路に接続して、前記協調検証により第4の検証結果を取得し、該取得した第4の検証結果を前記表示部に出力する第5の処理とコンピュータに実行させるプログラム。
  11. 記協調検証の動作レベルが、クロック動作の精度を重視した検証が行われる第1の動作レベルと、スピードを優先した検証が行われる第2の動作レベルとからなり、
    前記第4の処理は、前記第1の動作レベルを選択する旨の入力を受け付けると、前記第1の動作レベルに対する選択対象として前記第1の論理回路が、前記第2の動作レベルに対する選択対象として前記動作モデルがそれぞれ設定されたテーブルを参照して、前記第1の論理回路が選択対象であると判断して、前記論理等価性があることが確認された前記第1の論理回路を前記第2の論理回路に接続する処理を含み、
    前記第5の処理は、前記第2の動作レベルを選択する旨の入力を受け付けると、前記テーブルを参照して、前記論理等価性があることが確認された前記動作モデルを前記第2の論理回路に接続する処理を含む、請求項10に記載のプログラム。
  12. 前記所定の言語が、クロック概念のない言語である、請求項10または11に記載のプログラム。
  13. 前記第1の機能回路がプロセッサである、請求項10または11に記載のプログラム。
JP2004263821A 2004-09-10 2004-09-10 ハードウェア/ソフトウェア協調検証システム Expired - Fee Related JP4484048B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004263821A JP4484048B2 (ja) 2004-09-10 2004-09-10 ハードウェア/ソフトウェア協調検証システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004263821A JP4484048B2 (ja) 2004-09-10 2004-09-10 ハードウェア/ソフトウェア協調検証システム

Publications (2)

Publication Number Publication Date
JP2006079417A JP2006079417A (ja) 2006-03-23
JP4484048B2 true JP4484048B2 (ja) 2010-06-16

Family

ID=36158808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004263821A Expired - Fee Related JP4484048B2 (ja) 2004-09-10 2004-09-10 ハードウェア/ソフトウェア協調検証システム

Country Status (1)

Country Link
JP (1) JP4484048B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472361B2 (en) * 2005-12-30 2008-12-30 Cadence Design Systems, Inc. System and method for generating a plurality of models at different levels of abstraction from a single master model
CN117313650B (zh) * 2023-11-28 2024-03-01 苏州元脑智能科技有限公司 一种芯片测试验证方法及其应用装置

Also Published As

Publication number Publication date
JP2006079417A (ja) 2006-03-23

Similar Documents

Publication Publication Date Title
EP1093619B1 (en) System and method for identifying finite state machines and verifying circuit designs
JP2003503791A (ja) 入出力探針装置及びこれを用いた入出力探針方法と、これを基盤とする混合エミュレーション/シミュレーション方法
US6185726B1 (en) System and method for efficiently designing integrated circuit devices
KR100794916B1 (ko) 에뮬레이션과 시뮬레이션을 혼용한 점진적 설계 검증을위한 설계검증 장치 및 이를 이용한 설계 검증 방법
US7139673B1 (en) Method of and circuit for verifying a data transfer protocol
JP2002366602A (ja) ソフトウエア及びハードウエアのシミュレーション方法及びシステム並びにプログラム
JP4484048B2 (ja) ハードウェア/ソフトウェア協調検証システム
JP2009009318A (ja) 非同期回路検証用のプログラムデータ生成方法、非同期回路検証方法及び非同期回路検証装置
US8392776B2 (en) Delay fault diagnosis program
JP2009223661A (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US20070266361A1 (en) Logic verification method, logic verification apparatus and recording medium
US7962796B2 (en) State testing device and methods thereof
JP2006318121A (ja) 遅延付加rtl論理シミュレーション方法および装置
JPH10261002A (ja) 設計支援方法および設計支援装置
US20040230414A1 (en) Method for verification of hardware designs with multiple asynchronous frequency domains
JP6949440B2 (ja) ベクタ生成装置及びベクタ生成用プログラム
JP5450973B2 (ja) 回路検証装置および回路検証方法
JP3917342B2 (ja) 論理検証用テストプログラム生成装置
Haar Design Reconstruction for Partial Reconfigurable FPGA Systems
JPH06148293A (ja) 論理回路テスト回路
JPH0934534A (ja) プラントシミュレーションシステム
JP3678656B2 (ja) インタフェース回路、論理回路検証方法、論理装置、情報処理装置
JP2972499B2 (ja) 論理回路遅延シミュレータ装置
JP2001067383A (ja) 静的タイミング解析方法におけるフォールスパス検出方法およびフォールスパス検査方法
JP2788882B2 (ja) 論理回路の設計方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070813

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100316

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130402

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140402

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

LAPS Cancellation because of no payment of annual fees