JP2007072604A - 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 - Google Patents
論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2007072604A JP2007072604A JP2005256855A JP2005256855A JP2007072604A JP 2007072604 A JP2007072604 A JP 2007072604A JP 2005256855 A JP2005256855 A JP 2005256855A JP 2005256855 A JP2005256855 A JP 2005256855A JP 2007072604 A JP2007072604 A JP 2007072604A
- Authority
- JP
- Japan
- Prior art keywords
- logic circuit
- verification
- monitoring
- simulation
- monitor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】
論理回路の検証を行う際に、シミュレーション時間を短縮し、リグレッションテストを効果的に実行可能とする。
【解決手段】
論理回路の検証項目のセットを複数登録する登録手段と、前記検証項目について前記論理回路をシミュレーションするシミュレーション手段と、複数の前記セットのいずれかにそれぞれ割り当てられ、前記シミュレーションにおいて前記検証項目に対応する前記論理回路の動作をモニタリングする複数のモニタリング手段と、前記モニタリングにより動作が確認された検証項目を保持する保持手段と、前記保持手段に、前記セットに含まれる検証項目の全てが保持された場合に、該セットに割り当てられた前記モニタリング手段の動作を停止する制御手段とを備えることを特徴とする。
【選択図】図1
論理回路の検証を行う際に、シミュレーション時間を短縮し、リグレッションテストを効果的に実行可能とする。
【解決手段】
論理回路の検証項目のセットを複数登録する登録手段と、前記検証項目について前記論理回路をシミュレーションするシミュレーション手段と、複数の前記セットのいずれかにそれぞれ割り当てられ、前記シミュレーションにおいて前記検証項目に対応する前記論理回路の動作をモニタリングする複数のモニタリング手段と、前記モニタリングにより動作が確認された検証項目を保持する保持手段と、前記保持手段に、前記セットに含まれる検証項目の全てが保持された場合に、該セットに割り当てられた前記モニタリング手段の動作を停止する制御手段とを備えることを特徴とする。
【選択図】図1
Description
本発明は、論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体に関する。
LSIを含む論理回路の規模は、年毎に増加している。それに伴い、論理回路の検証にかかる工数も増加している。一方、市場には消費者が欲するときに製品を投入しなければならず、LSIを始めとした論理回路の開発期間は短くなっている。そのため、論理回路の設計・検証の効率向上を図る必要が生じている。
こうした中、LSIの論理検証に関して、テストの信頼性、網羅性を測る手段として機能カバレッジが知られている(特許文献1参照)。機能カバレッジとは、論理回路が所定の機能を実行したことを証明するために行うべき検証項目である。論理検証者はLSIの仕様書からテストすべき項目を抽出し、テストアイテムリストを作成する。そして、リスト中のテストアイテム毎にどのようなパラメータの値を網羅すべきかをピックアップし、検証項目としての機能カバレッジを明確化する。論理検証者はまた、テスト用のプログラムを作成し、これを用いてシミュレーションを行う。その際、機能カバレッジを指標として、注目するパラメータの全ての値が網羅されるまでシミュレーションを行い、論理回路の機能を保証する。
より具体的には、論理回路が機能カバレッジに対応する所定の機能が実行されたか否かは、フラグを利用して判定することができる。即ち、論理回路の機能を検証するためのテストを実行し、それより論理回路の所定機能が実行されるとフラグがセットされ(例えば、フラグ値が“1”となる)、所定機能が実行されなければフラグはセットされない(例えば、フラグ値は“0”のままとなる)。従って、テストの実行後にフラグをチェックし、フラグがセットされていれば機能が実行されたことが証明され、フラグが立たなければ機能は実行されておらず検証が充分ではないことになる。
更に具体的に説明すると、例えばある回路が仕様として転送長1、2、4、8のトランザクションを起こす場合を想定する。これら全ての種類のトランザクションを機能カバレッジとして定義すれば、1、2、4、8のトランザクションが指標になる。ここで、あるテストを実行した場合に、1、2、8についてのみフラグがセットされたとすれば、該テストにより1、2、8については機能が実行されたことが証明される。しかし、該テストでは転送長が4の機能カバレッジについては検証が不十分となるので、更に転送長4についての検証を行うために、追加のテストを行うこととなる。追加テストの結果、転送長4についてフラグがセットされれば、検証が完了する。
LSIの論理検証においてはまた、各モジュールの機能および機能間でのプロトコル違反をチェックするためにモニタを繋げてシミュレーションを実行し、論理回路の不具合を発見したならば論理回路の不具合を修正している。更に、行った修正による不具合が生じていないかを確かめるための、リグレッションテストを繰り返し行っている。
ここで、リグレッションテストとは、ある回路にバグが見つかった場合に、そのバグを直したことで、回路がデグレードしていないかどうかを確かめるためのテストである。このテストにより、既存のテストを再度実行した際に、それまでは実行されていた機能が影響を受けていないかが検証される。
特開2001-101250号公報
以上のようにして論理回路の検証は行われるものであるが、近年は回路規模の増大により機能カバレッジの項目数が増加し、検証に必要とされるモニタの数も増えている。モニタを接続するとクロックの毎サイクルにおいて処理出力データを監視しなければならない。よって、モニタ数が増えれば増えるほど監視する回数、処理量が多くなりシミュレーション時間に影響を与え、シミュレーションの速度が低下する。そのため、リグレッションを終了するのにより多くの時間を要することとなる。これにより、一定期間内に満足のいく回数だけのテストを実行しきれないという問題があった。
本発明は、上記課題を鑑みてなされたものであり、論理回路の検証を行う際に、シミュレーション時間を短縮し、リグレッションテストを効果的に実行可能とすることを目的とする。
上記課題を解決するための本発明は、集積回路の動作につき検証すべき検証項目を定義し、前記検証項目を検証する複数のモニタを用意し、前記検証項目を複数のモニタの何れかに割り当ててその検証項目についての動作を前記モニタに検証させ、夫々のモニタが担当すべき検証項目の検証が終了したとき、そのモニタの活動を停止させることを特徴とする。
本発明によれば、論理回路の検証を行う際に、シミュレーション時間を短縮し、リグレッションテストを効果的に行うことができる。
以下、図面を参照しながら本発明の実施形態を説明する。
図1は本発明の代表的な実施形態である、ハードウェア記述言語で記述した論理回路を検証するための論理回路検証装置100の概略図である。
図1において、検証項目保持部10には、モニタとしてのデザイン観測部11が取得すべき機能カバレッジ(検査指標)が定義され、蓄積されている。デザイン観測部11は、本実施形態におけるモニタとして機能し、機能カバレッジに対応する各論理回路の動作(機能)が実行されたか否かを観測(モニタリング)する。モニタ結果保持部12は、デザイン観測部11において観測された機能カバレッジを保持する。これにより、該機能カバレッジに対応する機能が実行されたことを示すフラグが設定されることとなる。
比較部13は、検証項目保持部10に蓄積された機能カバレッジと、モニタ結果保持部12に保持されている機能カバレッジとを比較して、機能カバレッジの全項目がすべて取得されたか否かを判定する。モニタリング制御部14は、デザイン観測部11を制御し、検証項目保持部10に定義された機能カバレッジの全項目が取得されたと比較部13により判定された場合に、デザイン観測部11によるモニタリングを停止する。
図2を参照して、本実施形態に対応する論理回路検証装置100における論理回路検証処理の一例を説明する。
ステップS201において、シミュレーションを行うLSI論理回路の仕様書から論理検証者が抽出したLSIの検証項目に基づき、機能カバレッジの項目が定義される。定義された機能カバレッジ項目は、検証項目保持部10に蓄積される。ステップS202では、ステップS201において定義された機能カバレッジをモニタリングするために、デザイン観測部11に各種モニタを設定し、設定されたモニタにカバーする複数の機能カバレッジのセットが割当てられる。
ステップS203では、ステップS202において設定された全てのモニタを接続し、シミュレーションを開始する。ステップS204では、デザイン観測部11において、モニタリングを継続中のモニタの機能カバレッジの取得状況のチェックを開始する。ここで、デザイン観測部11は、モニタリング制御部14の制御に基づきシミュレータ又は実際に組まれた論理回路について論理動作をモニタリングし、実行が検知された論理動作に対応する機能カバレッジは、モニタ結果保持部12に保持される。
ステップS205では、モニタ結果保持部12に保持された機能カバレッジにも基づき、検証項目保持部10に蓄積された各モニタに割り当てられた機能カバレッジのセットの全てを取得したモニタが存在するか否かが、比較部13により判定される。もし、取得すべき機能カバレッジの全てを取得したモニタが存在すると判定された場合には(ステップS205において「YES」)、ステップS207に移行して、モニタリング制御部14の制御に基づいて対応するモニタの動作を停止させる。
一方、そのようなモニタが存在しない場合には(ステップS205において「NO」)、ステップS206に移行して、モニタリングが継続される。続いて、ステップS208では、各モニタの機能カバレッジ取得状況のチェックを終了する。但し、この時点でモニタリングが停止されていないモニタは、モニタリングを継続する。
続くステップS209では、全てのモニタが停止の状態になっているかいなかを判定する。もし、全てのモニタが停止状態にあると判定された場合には(ステップS209において「YES」)、ステップS210に移行してシミュレーションを停止する。一方、全てのモニタが停止状態にないと判定された場合には(ステップS209において「NO」)、ステップS204に戻って、機能カバレッジの取得状況のチェックを再開する。
次に、本発明をメモリコントローラに適用した場合のモニタの動作の実施形態を、図3から図8を参照して説明する。
まず、図3は、メモリコントローラ22の構成の一例を示す図である。メモリコントローラ22は、メモリ23に繋がるバス1又は2上のマスターモデル(20又は21)からの要求に対してメモリ23へデータを書き込み、メモリ23からデータを読み出してマスターモデル(20又は21)側にデータを返す役割を担っている。図3においてマスターモデル1(20)及びマスターモデル2(21)は、メモリコントローラ22とそれぞれバス1、バス2で接続され、メモリコントローラ22を介してメモリ23に対してライトまたはリード動作を行う。
ここで、メモリコントローラ22の検証を行う場合、複数のモニタを付けて、メモリコントローラ22に繋がる各マスターモデル(20又は21)からメモリ23に対してリード・ライトアクセスが行えるか等の機能を検証する。
本実施形態では、メモリコントローラ22の検証の際に確認すべき項目がリストアップされ、取得すべき各機能カバレッジを各モニタに割り当てることになる。
図4に、メモリコントローラ22の検証の際に必要なモニタを全て接続した状態を表す一例を示す。図4において、バス1モニタ30はメモリコントローラ22とマスターモデル1(20)とを繋ぐバス1上で起こるべき機能カバレッジを取得するためのモニタである。バス2モニタ31は、メモリコントローラ22とマスターモデル2(21)とを繋ぐバス2上で起こるべき機能カバレッジを取得するためのモニタである。レジスタモニタ32はメモリコントローラ22内のレジスタへの設定値を観測するためのモニタである。
バッファ1モニタ33は、マスターモデル1(20)から送られたデータもしくマスターモデル1(20)へ送るデータを保持するバッファを監視するためのモニタである。バッファ2モニタ34は、マスターモデル2(21)から送られたデータもしくマスターモデル2(21)に送るデータを保持するメモリコントローラ22内のバッファを監視するためのモニタである。
アービタモニタ35は、メモリコントローラ22内のバッファ1からのデータ送信要求とメモリコントローラ22内のバッファ2からのデータ送信要求に対して、どちらのデータをトランザクションキューに入れるかを判断するためのモニタである。トランザクションキューモニタ36は、キューの中でのデータの順番の入れ替え等を監視するためのモニタである。メモリモニタ37はメモリコントローラ22からメモリ23に対して送信されるデータもしくはコマンド等を監視するモニタである。
図4に示したバス1モニタ(30)に定義された機能カバレッジのセットの一例を図5に示す。
機能カバレッジセット500において、バイトレーン501、バースト転送長502、ディレクション503、バイトレーン&バースト転送長のクロス504、バイトレーン&ディレクションのクロス505等の項目及び検証範囲が登録されている。また、各項目についての値を保存するための変数が登録されている。該変数には、byte_enable_cov506、Length_cov507、Direction_cov508、Byte_enable_length_cov509及びByte_enable_dir_cov510がある。
バイトレーン501は、例えばバス幅が32ビット時に1バイトの転送を行う際、どのデータを有効にするかを示す信号であり、0000〜1111の16種類の全ての事象が起きることがバス1モニタには機能カバレッジとして定義されている。従って、byte_enable_cov506は0000〜1111までのすべて事象が起きるまでテストが実行されることとなる。例えば、1回目のテストでカバーされた値が(0001, 0011, 1011)で、2回目のテストでカバーされた値(0000, 0101, 1100, 1110)とする。更に、3回目のテストでカバーされた値(0010, 1000)で、4回目のテストでカバーされた値(0111, 0110, 1101, 0100, 1001)、更に5回目のテストでカバーされた値(1010, 1011, 1111)とする。以上で、byte_enable_cov506が取るべき値がすべて埋まったこととなり、バイトレーン501については取得すべき機能カバレッジがすべて取得されたこととなる。
また、バースト転送長502は、データを連続して転送する回数を示しており、図4においては1、2、4、8が定義されている。ディレクション503は、データをメモリ23へ書き込む際のアドレスの方向を示している。
バイトレーンとバースト転送長のクロス504は、上述したバイトレーン501とバースト転送長502の各々の全ての組合せを示す。同様に、バイトレーンとディレクションのクロス505も上述したバイトレーン501とディレクション503の各々の全ての組合せを示す。
また、本実施形態に対応する他の機能カバレッジセットの一例として、メモリモニタ37で定義されるものを図6に示す。図6において、メモリモニタ37には、以下のようなメモリへのコマンドが機能カバレッジセット600として定義されている。モードレジスタセット601、エクステンドモードレジスタセット602、アクティブコマンド603、プリチャージコマンド604。また、ライトコマンド605、ライトオートプリチャージコマンド606などである。また、mrs_cov607、emrs_cov608、active_cov609、pre_cov610、write_cov611及びwritea_cov612等の、各項目についての値を保存するための変数が登録されている。メモリモニタ37は、各種コマンドが起こるたびに、機能カバレッジを取得し全てのコマンドの機能カバレッジが取得できるまでモニタリングを継続することになる。
本実施形態では、図4に示されるように、論理検証開始時は全てのモニタを接続した状態でシミュレーションの実行が開始される。初期の状態は全てのモニタがモニタリングを行っているので、論理回路との間で通信が発生しシミュレーションに時間がかかる。しかしながら、例えばバス1モニタ(30)が、図5で示した全ての機能カバレッジを取得したならばモニタリング制御部14の制御に従って、モニタリング機能が停止される。即ち、シミュレーション環境が図7に示すようになり、バス1モニタ(30)が一つ取れた状態になる。
これによりバス1モニタ(30)が機能カバレッジを取得するために要した通信時間が、他のモニタのために開放される。
同様にして、メモリモニタ37が図6に示されるメモリ23へのコマンド全てについて機能カバレッジを取得すれば、メモリモニタ37はモニタリング制御部14の制御に従いモニタリング機能を停止する。この結果、シミュレーション環境は、図8に示されるようになる。これにより、メモリモニタ37が機能カバレッジを取得するために要した通信時間が他のモニタに開放される。
同様にして、各モニタがそれぞれが取得すべき機能カバレッジを全て取得するたびに、モニタの数が減少していくので、モニタ数の減少に従ってシミュレーションの速度が向上することになる。最終的には、全てのモニタが停止され、検証処理が終了する。
以上説明したように本発明によれば、複数のモニタを利用して論理回路の動作検証を行う場合に、取得すべき機能カバレッジの全てを取得したモニタから順にモニタリング動作を停止させ、処理資源を他のモニタに開放することとしている。これにより、検証が進行するに従いシミュレーション速度を向上させ、一度にかかるテスト時間を短縮化し、一定期間内により多くのテストを実行することが可能となる。また、本発明によれば、論理回路及びそのシステム開発の検証工程に要する時間を短縮化できるので、論理システム開発の効率化に繋げることができる。
[その他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
Claims (6)
- 論理回路の検証項目のセットを複数登録する登録手段と、
前記検証項目について前記論理回路をシミュレーションするシミュレーション手段と、
複数の前記セットのいずれかにそれぞれ割り当てられ、前記シミュレーションにおいて前記検証項目に対応する前記論理回路の動作をモニタリングする複数のモニタリング手段と、
前記モニタリングにより動作が確認された検証項目を保持する保持手段と、
前記保持手段に、前記セットに含まれる検証項目の全てが保持された場合に、該セットに割り当てられた前記モニタリング手段の動作を停止する制御手段と、
を備えることを特徴とする論理回路検証装置。 - 前記シミュレーション手段は、前記複数のモニタリング手段のすべての動作が停止された場合に、前記シミュレーションを終了することを特徴とする請求項1に記載の論理回路検証装置。
- 登録部に複数登録された論理回路の検証項目のセットの該検証項目について前記論理回路をシミュレーションするシミュレーション工程と、
複数の前記セットのいずれかにそれぞれ割り当てられた複数のモニタリング部により、前記シミュレーションにおいて前記検証項目に対応する前記論理回路の動作をモニタリングするモニタリング工程と、
前記モニタリング工程において動作が確認された前記検証項目を保持部に保持する保持工程と、
前記保持部に前記セットに含まれる検証項目の全てが保持された場合に、該セットについて割り当てられた前記モニタリング部の動作を停止する制御工程と、
を備えることを特徴とする論理回路検証装置の制御方法。 - 前記シミュレーション工程では、前記複数のモニタリング部のすべての動作が停止された場合に、前記シミュレーションが終了されることを特徴とする請求項3に記載の論理回路検証装置の制御方法。
- 請求項3又は4のいずれかに記載の論理回路検証装置の制御方法をコンピュータに実行させるためのコンピュータプログラム。
- 請求項5に記載のコンピュータプログラムを格納したコンピュータで読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005256855A JP2007072604A (ja) | 2005-09-05 | 2005-09-05 | 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005256855A JP2007072604A (ja) | 2005-09-05 | 2005-09-05 | 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007072604A true JP2007072604A (ja) | 2007-03-22 |
Family
ID=37934009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005256855A Withdrawn JP2007072604A (ja) | 2005-09-05 | 2005-09-05 | 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007072604A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108306A (zh) * | 2018-02-09 | 2018-06-01 | 盛科网络(苏州)有限公司 | 一种提高报文解析测试覆盖率的方法及系统 |
-
2005
- 2005-09-05 JP JP2005256855A patent/JP2007072604A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108306A (zh) * | 2018-02-09 | 2018-06-01 | 盛科网络(苏州)有限公司 | 一种提高报文解析测试覆盖率的方法及系统 |
CN108108306B (zh) * | 2018-02-09 | 2021-10-15 | 苏州盛科通信股份有限公司 | 一种提高报文解析测试覆盖率的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101923494B (zh) | 一种存储器控制器验证系统、方法及记分板 | |
CN114168200B (zh) | 多核处理器访存一致性的验证系统及方法 | |
CN112231005A (zh) | 一种基于uboot管理fpga版本的方法 | |
US7168029B2 (en) | Method for testing a universal serial bus host controller | |
US8627273B2 (en) | Model checking of liveness property in a phase abstracted model | |
JP5309938B2 (ja) | 要求処理装置、要求処理システムおよびアクセス試験方法 | |
US7231568B2 (en) | System debugging device and system debugging method | |
JP2007072604A (ja) | 論理回路検証装置及びその制御方法、コンピュータプログラム及び記憶媒体 | |
KR101300443B1 (ko) | 바이패스 경로를 이용하여 신뢰성 검증을 할 수 있는 플래시 메모리 저장 장치, 및 이를 이용한 플래시 메모리 저장 장치의 신뢰성 검증 시스템 및 방법 | |
CN112885403B (zh) | 一种Flash控制器的功能测试方法、装置及设备 | |
JP5994661B2 (ja) | 検証プログラム、検証方法及び検証装置 | |
JP2012113502A (ja) | 半導体集積回路の検証装置 | |
US8090991B2 (en) | Information processing apparatus, method, and computer program product for self-diagnosis for utilizing multiple diagnostic devices, each having exclusive access to a resource | |
JP5279817B2 (ja) | 試験装置および試験方法 | |
JP4344147B2 (ja) | コンピュータの拡張機能検査装置 | |
CN117236277B (zh) | 用于检查寄存器的方法及装置、电子设备 | |
CN109087682B (zh) | 全局存储器顺序检测系统及方法 | |
CN113407408B (zh) | 数据传输规则验证方法、装置、设备和存储介质 | |
JP4892406B2 (ja) | 情報処理装置のトランザクション管理方法及び情報処理装置 | |
JP4893028B2 (ja) | チップセットのエミュレーション装置および方法 | |
US10120737B2 (en) | Apparatus for detecting bugs in logic-based processing devices | |
KR100532104B1 (ko) | 프로세서에 내장된 메모리를 관리하는 방법 및 장치와 그 장치를 탑재한 시스템 온 칩 | |
JP5282325B2 (ja) | ポステッドライトバス制御装置 | |
CN118093248A (zh) | Str调试的故障确定方法、装置、电子设备及存储介质 | |
CN116702666A (zh) | 一种ip核验证方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20081202 |