(57)【要約】【課題】レジスタ検証において高精度の網羅率を実現する。【解決手段】レジスタ検証装置（１０Ａ）は、レジスタへのアクセスに係る仕様を記したレジスタ情報（１０２）に基づいて、テストベンチ（１０３）が実行されたときのレジスタへのアクセスの有無及び読み書き順序の正否を監視するためのプロパティ（１０４）を生成するプロパティ生成部（１１）と、回路記述（１０１）に対してテストベンチ（１０３）を実行するとともにプロパティ（１０４）で特定された回路動作の監視を行う検証実施部（１２）と、検証実施部（１０２）による監視の結果に基づいて、検証の網羅率を算出する網羅率算出部（１３）とを備えている。【選択図】図１
2008226020.tif 000002
【特許請求の範囲】
【請求項１】
レジスタを介して制御回路によって制御される周辺回路を備えた集積回路の回路記述に対してテストベンチを実行して前記レジスタへのアクセスに係る検証を行うレジスタ検証装置であって、
前記レジスタへのアクセスに係る仕様を記したレジスタ情報に基づいて、前記テストベンチが実行されたときの前記レジスタへのアクセスの有無及び読み書き順序の正否を監視するためのプロパティを生成するプロパティ生成部と、
前記回路記述に対して前記テストベンチを実行するとともに前記プロパティで特定された回路動作の監視を行う検証実施部と、
前記検証実施部による前記監視の結果に基づいて、前記検証の網羅率を算出する網羅率算出部とを備えた
ことを特徴とするレジスタ検証装置。
【請求項２】
請求項１に記載のレジスタ検証装置において、
前記周辺回路は、
前記制御回路から供給されるアドレス信号をデコードして複数のレジスタの中からいずれか一つを特定し、当該特定したレジスタに、前記制御回路から供給される制御信号を供給するアドレスデコーダを有するものであり、
前記プロパティ生成部は、前記アドレスデコーダから前記複数のレジスタの中の二つ以上に前記制御信号が同時に供給される多重アクセスの有無を監視するためのプロパティを生成する
ことを特徴とするレジスタ検証装置。
【請求項３】
請求項１に記載のレジスタ検証装置において、
前記プロパティ生成部は、前記レジスタの初期化の成否を監視するためのプロパティを生成する
ことを特徴とするレジスタ検証装置。
【請求項４】
請求項１に記載のレジスタ検証装置において、
前記回路記述に基づいて、前記回路記述と矛盾する前記レジスタ情報の誤りを検出するレジスタ情報誤り検出部を備えた
ことを特徴とするレジスタ検証装置。
【請求項５】
請求項１に記載のレジスタ検証装置において、
前記レジスタ情報に基づいて、前記レジスタの設計仕様を記したレジスタ仕様表を生成するレジスタ仕様表生成部を備えた
ことを特徴とするレジスタ検証装置。
【請求項６】
請求項１に記載のレジスタ検証装置において、
前記検証実施部による前記監視の結果に基づいて、前記テストベンチの誤りを検出するテストベンチ誤り検出部を備えた
ことを特徴とするレジスタ検証装置。
【請求項７】
請求項６に記載のレジスタ検証装置において、
前記検出されたテストベンチの誤りに基づいて、前記テストベンチを修正するテストベンチデバッグ部を備えた
ことを特徴とするレジスタ検証装置。
【請求項８】
レジスタを介して制御回路によって制御される周辺回路を備えた集積回路の回路記述に対してテストベンチを実行して前記レジスタへのアクセスに係る検証を行うレジスタ検証方法であって、
前記レジスタへのアクセスに係る仕様を記したレジスタ情報に基づいて、前記テストベンチが実行されたときの前記レジスタへのアクセスの有無及び読み書き順序の正否を監視するためのプロパティを生成するステップと、
前記回路記述に対して前記テストベンチを実行するとともに前記プロパティで特定された回路動作の監視を行うステップと、
前記監視の結果に基づいて、前記検証の網羅率を算出するステップとを備えた
ことを特徴とするレジスタ検証方法。
【請求項９】
請求項８に記載のレジスタ検証方法において、
前記周辺回路は、
前記制御回路から供給されるアドレス信号をデコードして複数のレジスタの中からいずれか一つを特定し、当該特定したレジスタに、前記制御回路から供給される制御信号を供給するアドレスデコーダを有するものであり、
当該レジスタ検証方法は、
前記アドレスデコーダから前記複数のレジスタの中の二つ以上に前記制御信号が同時に供給される多重アクセスの有無を監視するためのプロパティを生成するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１０】
請求項８に記載のレジスタ検証方法において、
前記レジスタの初期化の成否を監視するためのプロパティを生成するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１１】
請求項８に記載のレジスタ検証方法において、
前記回路記述に基づいて、前記回路記述と矛盾する前記レジスタ情報の誤りを検出するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１２】
請求項８に記載のレジスタ検証方法において、
前記レジスタ情報に基づいて、前記レジスタの設計仕様を記したレジスタ仕様表を生成するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１３】
請求項８に記載のレジスタ検証方法において、
前記監視の結果に基づいて、前記テストベンチの誤りを検出するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１４】
請求項１３に記載のレジスタ検証方法において、
前記検出されたテストベンチの誤りに基づいて、前記テストベンチを修正するステップを備えた
ことを特徴とするレジスタ検証方法。
【請求項１５】
コンピュータに、レジスタを介して制御回路によって制御される周辺回路を備えた集積回路の回路記述に対してテストベンチを実行させて前記レジスタへのアクセスに係る検証を行わせるレジスタ検証プログラムであって、
前記レジスタへのアクセスに係る仕様を記したレジスタ情報に基づいて、前記テストベンチが実行されたときの前記レジスタへのアクセスの有無及び読み書き順序の正否を監視するためのプロパティを生成する手段、
前記回路記述に対して前記テストベンチを実行するとともに前記プロパティで特定された回路動作の監視を行う手段、及び、
前記監視の結果に基づいて、前記検証の網羅率を算出する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項１６】
請求項１５に記載のレジスタ検証プログラムにおいて、
前記周辺回路は、
前記制御回路から供給されるアドレス信号をデコードして複数のレジスタの中からいずれか一つを特定し、当該特定したレジスタに、前記制御回路から供給される制御信号を供給するアドレスデコーダを有するものであり、
当該レジスタ検証プログラムは、
前記アドレスデコーダから前記複数のレジスタの中の二つ以上に前記制御信号が同時に供給される多重アクセスの有無を監視するためのプロパティを生成する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項１７】
請求項１５に記載のレジスタ検証プログラムにおいて、
前記レジスタの初期化の成否を監視するためのプロパティを生成する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項１８】
請求項１５に記載のレジスタ検証プログラムにおいて、
前記回路記述に基づいて、前記回路記述と矛盾する前記レジスタ情報の誤りを検出する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項１９】
請求項１５に記載のレジスタ検証プログラムにおいて、
前記レジスタ情報に基づいて、前記レジスタの設計仕様を記したレジスタ仕様表を生成する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項２０】
請求項１５に記載のレジスタ検証プログラムにおいて、
前記監視の結果に基づいて、前記テストベンチの誤りを検出する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【請求項２１】
請求項２０に記載のレジスタ検証プログラムにおいて、
前記検出されたテストベンチの誤りに基づいて、前記テストベンチを修正する手段として、コンピュータを機能させる
ことを特徴とするレジスタ検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタを有する論理集積回路において当該レジスタのアクセス制御機能を検証するためのレジスタ検証装置、方法及びプログラムに関する。
【背景技術】
【０００２】
多数の機能を有する論理集積回路は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などの汎用的な制御回路と、特定信号処理を実現する周辺回路を組み合わせて実現されることが多い。周辺回路は各々の信号処理内容を制御するためのレジスタを有している。制御回路はそれらのレジスタへのアクセス制御を行う機能を備えている。このような論理集積回路に実装された制御機能の回路品質を確認するためには、アクセス制御機能の実装及び周辺回路への接続の正当性を担保すべく、すべてのレジスタへのアクセスについて網羅的に検証を行ってその動作を確認することが非常に重要である。
【０００３】
従来、レジスタアクセス検出用のモデルを作成し、当該モデルを制御回路のレジスタアクセス制御部に接続して網羅率測定を行うことで、アクセスの有無や頻度を検出しているものがある（例えば、特許文献１参照）。
【特許文献１】特開平５−６７１６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のレジスタ検証方法では、レジスタの初期値や書き込み動作後の書き込み値を確認しているか、複数のアクセスモードがある場合にすべてのモードの検証をしているかなどを判断することができない。このため、全レジスタの動作を正確かつ網羅的に検証することが困難である。また、検出された未アクセスのレジスタや不具合の可能性があるレジスタについてより詳細に確認するためには、検証担当者が論理回路の仕様を正しく判断して必要な検証を行うためのテストベンチを作成する必要がある。さらに、レジスタアクセス検出用のモデルと論理回路とを接続する必要があるため、準備時にモデルの誤作成や論理回路との誤接続などが生じてしまうおそれがある。この場合、各レジスタ検証結果を集計・算出して得られる論理回路の検証に関して検出結果が不正となってしまう。
【０００５】
上記問題に鑑み、本発明は、レジスタ検証において高精度の網羅率を実現することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明が講じた手段は、レジスタを介して制御回路によって制御される周辺回路を備えた集積回路の回路記述に対してテストベンチを実行してレジスタへのアクセスに係る検証を行うレジスタ検証装置として、レジスタへのアクセスに係る仕様を記したレジスタ情報に基づいて、テストベンチが実行されたときのレジスタへのアクセスの有無及び読み書き順序の正否を監視するためのプロパティを生成するプロパティ生成部と、回路記述に対してテストベンチを実行するとともにプロパティで特定された回路動作の監視を行う検証実施部と、検証実施部による監視の結果に基づいて、検証の網羅率を算出する網羅率算出部とを備えたものとする。これによると、テストベンチ実行時に検証対象のレジスタへのアクセスの有無及び読み書き順序の正否が監視され、当該監視結果に基づいて当該検証の網羅率が算出される。これにより、高精度の網羅率のレジスタ検証が実現される。
【０００７】
具体的には、周辺回路は、制御回路から供給されるアドレス信号をデコードして複数のレジスタの中からいずれか一つを特定し、当該特定したレジスタに、制御回路から供給される制御信号を供給するアドレスデコーダを有する。そして、好ましくは、プロパティ生成部は、アドレスデコーダから複数のレジスタの中の二つ以上に制御信号が同時に供給される多重アクセスの有無を監視するためのプロパティを生成するものとする。これによると、アクセスすべきレジスタが周辺回路に備えられたアドレスデコーダによって特定される場合において、テストベンチ実行時にレジスタへの多重アクセスの有無が監視され、当該監視結果に基づいて当該検証の網羅率が算出される。これにより、より高精度の網羅率のレジスタ検証が実現される。
【０００８】
また、好ましくは、プロパティ生成部は、レジスタの初期化の成否を監視するためのプロパティを生成するものとする。これによると、テストベンチ実行時にレジスタの初期化の成否が監視され、当該監視結果に基づいて当該検証の網羅率が算出される。これにより、より高精度の網羅率のレジスタ検証が実現される。
【０００９】
好ましくは、上記のレジスタ検証装置は、回路記述に基づいて、回路記述と矛盾する前記レジスタ情報の誤りを検出するレジスタ情報誤り検出部、レジスタ情報に基づいて、レジスタの設計仕様を記したレジスタ仕様表を生成するレジスタ仕様表生成部、及び検証実施部による監視の結果に基づいて、テストベンチの誤りを検出するテストベンチ誤り検出部の少なくともいずれかを備えたものとする。さらに好ましくは、検出されたテストベンチの誤りに基づいて、テストベンチを修正するテストベンチデバッグ部を備えたものとする。
【発明の効果】
【００１０】
以上のように本発明によると、高精度の網羅率のレジスタ検証を実現することができる。これにより、論理集積回路の品質を向上することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００１２】
（第１の実施形態）
図１は、第１の実施形態に係るレジスタ検証装置の構成を示す。図１において、回路記述１０１は、論理集積回路の構成を記述した、検証対象となる回路記述である。論理集積回路は、ＣＰＵ（制御回路）と、検証対象であるレジスタを含む複数の周辺回路により構成されている。ＣＰＵは周辺回路の制御を行う際に制御対象のレジスタに対して格納値の読み出しや書き込みを行う。レジスタ情報１０２は、検証対象となるレジスタのアクセスに係る仕様を記したものである。
【００１３】
レジスタ検証装置１０Ａにおいて、プロパティ生成部１１は、レジスタ情報１０２に基づいて、テストベンチ１０３が実行されたときの各レジスタのアクセス状態を監視するためのプロパティ１０４を生成する。検証実施部１２は、回路記述１０１に対してテストベンチ１０３を実行するとともに、プロパティ１０４で特定された回路動作の監視を行う。網羅率算出部１３は、検証実施部１２による回路動作の監視の結果に基づいて、レジスタ検証装置１０Ａによる検証の網羅率を算出する。表示部１４は、算出された網羅率のほか、レジスタへのアクセス回数、アクセスに係る不備があった場合のその理由などを表示する任意の構成要素である。
【００１４】
以下、本実施形態に係るレジスタ検証装置１０Ａによるレジスタ検証動作についていくつかの例を挙げて説明する。
【００１５】
≪動作例１≫
本例では検証対象のレジスタへのアクセスの有無及び読み書き順序の正否の観点からレジスタ検証の網羅率を算出する。図２及び図３は、それぞれ、本例に係る回路記述１０１として表される論理集積回路及びレジスタ情報１０２を模式的に表したものである。レジスタ情報１０２には、ＣＰＵから周辺回路のレジスタにアクセスするためのアドレス信号、リードイネーブル信号、ライトイネーブル信号、ページ切り替え信号、及びアクセスモード切り替え信号の各識別名が記されている。さらに、検証対象となるレジスタの実装アドレス、リード／ライト属性、ページ番号、及びアクセスモードが定義されている。
【００１６】
本例に係る検証対象のレジスタは、識別名addressで表されるアドレス信号によって特定されるアドレスa000,a001,a002,a004に実装されている。各レジスタのリードイネーブル信号の識別名はr_enであり、ライトイネーブル信号の識別名はw_enである。アドレスa000-a002に実装されたレジスタのみリード及びライトが可能であり、アドレスa004に実装されたアドレスはリードのみ可能である。
【００１７】
一般に、周辺回路が必要とするアドレス空間に対してＣＰＵが割り当てることのできるアドレス空間が不足している場合、限られたアドレス空間で多数のレジスタをアクセス可能にするためにページ切り替えを行うことがある。ページ切り替え方式では、レジスタをいくつかのページに分割して管理し、アドレス空間に設けた特定領域に必要なページを一つだけ割り当てて利用する。アドレスa004に実装されたレジスタはページ切り替え信号pegeに従ってページ切り替えが可能となっている。
【００１８】
また、一般に、ＣＰＵは各レジスタと所定バイト（例えば１バイト）単位でデータの読み書きを行うが、場合によってはその倍あるいは４倍単位でデータの読み書きを行うことがある。アドレスa004に実装されたレジスタはアクセスモード切り替え信号modeに従って１バイト又は２バイト単位でＣＰＵからアクセス可能となっている。
【００１９】
なお、レジスタ情報１０２において、レジスタの実装アドレスは、連続する同一属性のものについては“a000-a002”のように一括して指定することができる。一方、未実装のレジスタについてはアドレスa005のように各属性を“−”で表すことでそれが未実装であることを明示することができる。
【００２０】
プロパティ生成部１１は、レジスタ情報１０２に基づいて、テストベンチ１０３が実行されたときの各レジスタへのアクセスの有無を監視するためのプロパティ１０４を生成する。図４（ａ）は生成されたプロパティ１０４を示す。プロパティa_check1からa_check6はそれぞれproperty_accessというキーワードによって定義され、レジスタ情報１０２に記されたアドレス信号名、リードイネーブル信号名、ライトイネーブル信号名、ページ切り替え信号名、アクセスモード切り替え信号名、各レジスタの実装アドレス、ページ番号、及びアクセスモードをパラメータとして設定される。
【００２１】
ここで、本例のようにページ切り替え可能なレジスタ及びアクセスモード切り替え可能なレジスタが存在する場合には、全ページ及び全アクセスモードについて網羅的に検証を行う必要があるため、ページ及びアクセスモードごとにプロパティを生成する。本例ではアドレスa004に実装されたレジスタが、ページ番号1かつアクセスモード1のレジスタ、ページ番号1かつアクセスモード2のレジスタ、及びページ番号2かつアクセスモード1のレジスタとしてそれぞれ別個のプロパティが生成される。この結果、本例ではproperty_accessで定義されるa_check1からa_check6までの６個のプロパティが生成される。
【００２２】
プロパティ生成部１１は、さらに、レジスタ情報１０２に基づいて、テストベンチ１０３が実行されたときの各レジスタへの読み書き順序の正否を監視するためのプロパティ１０４を生成する。図４（ｂ）は生成されたプロパティ１０４を示す。プロパティs_check1からs_check6はそれぞれproperty_sequenceというキーワードによって定義され、レジスタ情報１０２に記されたアドレス信号名、実装アドレス、リードイネーブル信号名、ライトイネーブル信号名、ページ切り替え信号名、アクセスモード切り替え信号名、リード／ライト属性、ページ番号、及びアクセスモードをパラメータとして設定される。
【００２３】
上述したように、ページ切り替え可能なレジスタ及びアクセスモード切り替え可能なレジスタが存在する場合にはアクセスモードごとにプロパティを生成する。本例ではproperty_sequenceで定義されるs_check1からs_check6までの６個のプロパティが生成される。
【００２４】
こうして生成されたプロパティ１０４はテストベンチ１０３の実行中に監視され、検証結果が表示される。図５は、本例に係る検証結果の表示例を示す。表示項目は、網羅率、アクセス回数及び不備理由の３つである。網羅率は不備理由を考慮した上で次式に従って算出される。
網羅率＝アクセスされ、かつ、読み書き順序が正しいレジスタの数／全レジスタの数
【００２５】
図５では、アドレスa000に実装されたレジスタ及びアドレスa004に実装されたページ番号1及びアクセスモード2のレジスタへのアクセスがなかったことが示されている。また、アドレスa001に実装されたレジスタ及びアドレスa004に実装されたページ番号2及びアクセスモード1のレジスタについては読み書き順序が正しくなかったことが示されている。すなわち、６個のレジスタのうち、アクセスされ、かつ、読み書き順序が正しかったものは、アドレスa002に実装されたレジスタ及びアドレスa004に実装されたページ番号1及びアクセスモード1のレジスタの２個だけである。したがって、当該検証の網羅率は３３％（＝２／６）と算出される。
【００２６】
≪動作例２≫
本例では検証対象のレジスタを制御するアドレスデコーダが正しく構成されているか否かという観点からレジスタ検証の網羅率を算出する。当該アドレスデコーダは、ＣＰＵから供給されるアドレス信号をデコードして複数のレジスタの中からいずれか一つを特定し、当該特定したレジスタに、ＣＰＵから供給されるリードイネーブル信号、ライトイネーブル信号その他の制御信号を供給する。図６及び図７は、それぞれ、本例に係る回路記述１０１として表される論理集積回路及びレジスタ情報１０２を模式的に表したものである。レジスタ情報１０２には、アドレスデコーダごとに、当該アドレスデコーダに入力されるアドレス信号及びアクセスモード切り替え信号並びに当該アドレスデコーダから各レジスタに出力されるリードイネーブル信号及びライトイネーブル信号の各識別名が周辺回路のモジュール名（module00）とともに記されている。さらに、検証対象となるレジスタの実装アドレスが定義されている。
【００２７】
本例に係る検証対象のレジスタは、アドレスa000,a001,a002,a003に実装されている。各レジスタのリードイネーブル信号はそれぞれ信号r_en_blk1,r_en_blk2,r_en_blk3,r_en_blk4であり、ライトイネーブル信号は信号w_en_blk1,w_en_blk2,w_en_blk3,w_en_blk4である。これらレジスタは多重アクセスされることがないように、アドレスデコーダがアクセスすべきレジスタを択一的に選択するようになっている。
【００２８】
プロパティ生成部１１は、レジスタ情報１０２に基づいて、テストベンチ１０３が実行されたときの各レジスタへのアクセスの有無及びレジスタへの多重アクセスの有無を監視するためのプロパティ１０４を生成する。多重アクセスの有無を判定するには、例えば、１バイトアクセス時にリードイネーブル信号又はライトイネーブル信号が１本だけ有効になるという仕様であれば２本以上が同時に有効にならないことを監視する必要がある。本例ではリードイネーブル信号及びライトイネーブル信号のそれぞれについて多重アクセスの有無を監視するためプロパティが生成される。図８は生成されたプロパティ１０４を示す。プロパティd_check1はproperty_decodeというキーワードによって定義され、レジスタ情報１０２に記されたアドレス信号名、アクセスモード切り替え信号名、４つのリードイネーブル信号名をパラメータとして設定される。また、プロパティd_check2はproperty_decodeというキーワードによって定義され、レジスタ情報１０２に記されたアドレス信号名、アクセスモード切り替え信号名、４つのライトイネーブル信号名をパラメータとして設定される。
【００２９】
こうして生成されたプロパティ１０４はテストベンチ１０３の実行中に監視され、検証結果が表示される。図９は、本例に係る検証結果の表示例を示す。表示項目は、網羅率、アクセス回数及び不備理由の３つである。網羅率の算出については先の例で説明したとおりである。
【００３０】
図９では、全レジスタについてアクセスがあったが、アドレスa001に実装されたレジスタについては多重アクセスがあったことが示されている。すなわち、４個のレジスタのうち、多重アクセスがされることなく正しくアクセスがあったものは、アドレスa001に実装されたレジスタ以外の３個である。したがって、網羅率は７５％（＝３／４）と算出される。
【００３１】
なお、アドレスデコーダが複数存在する場合にはアドレスデコーダごとに多重アクセスを監視するためのプロパティを生成すればよい。また、アクセスモードの違いによって同時に有効となるリードイネーブル信号及びライトイネーブル信号の本数が異なるような場合には、アクセスモードごとに個別のプロパティを生成すればよい。
【００３２】
≪動作例３≫
本例では検証対象のレジスタの初期化が正しく行われているか否かという観点からレジスタ検証の網羅率を算出する。図１０及び図１１は、それぞれ、本例に係る回路記述１０１として表される論理集積回路及びレジスタ情報１０２を模式的に表したものである。レジスタ情報１０２には、ＣＰＵから周辺回路のレジスタにアクセスするためのアドレス信号、リードイネーブル信号、及びリセット信号の各識別名が記されている。さらに、検証対象となるレジスタの実装アドレス及び初期値が定義されている。ここで、レジスタの初期値とは、ＣＰＵ又は外部端子から初期化信号がアサートされたときにレジスタに設定される値のことである。
【００３３】
本例に係る検証対象のレジスタは、識別名addressのアドレス信号によって特定されるアドレスa000,a001,a002,a003に実装されている。各レジスタのリードイネーブル信号の識別名はr_enである。アドレスa000に実装されたレジスタの初期値は16'h0000であり、それ以外のレジスタの初期値は16'h0011である。
【００３４】
プロパティ生成部１１は、レジスタ情報１０２に基づいて、テストベンチ１０３が実行されたときの各レジスタへのアクセスの有無及び初期化の成否を監視するためのプロパティ１０４を生成する。レジスタの初期化の成否を判定するには、初期化信号がアサートされてから初めて読み出したレジスタ値がレジスタ情報１０２に定義された初期値と一致するか否かを監視する必要がある。図１２は生成されたプロパティ１０４を示す。プロパティi_check1からi_check4はそれぞれproperty_initialというキーワードによって定義され、レジスタ情報１０２に記されたアドレス信号名、リードイネーブル信号名、リセット信号名、実装アドレス、及び初期値をパラメータとして設定される。
【００３５】
こうして生成されたプロパティ１０４はテストベンチ１０３の実行中に監視され、検証結果が表示される。図１３は、本例に係る検証結果の表示例を示す。表示項目は、網羅率、アクセス回数及び不備理由の３つである。網羅率の算出については先の例で説明したとおりである。
【００３６】
図１３では、全レジスタについてアクセスがあったが、アドレスa000に実装されたレジスタについては初期化が正しく行われなかったことが示されている。すなわち、４個のレジスタのうち、初期化が正しく行われたものは、アドレスa000に実装されたレジスタ以外の３個である。したがって、網羅率は７５％（＝３／４）と算出される。
【００３７】
以上、本実施形態によると、レジスタ検証に関して、レジスタへのアクセスの有無及び読み書き順序の正否に基づいた高精度の網羅率を得ることができる。さらに、アドレスデコーダがある場合の多重アクセスの有無やレジスタの初期化の成否をも加味することにより高精度の網羅率を得ることができる。また、このような高精度の網羅率をもたらす検証用プロパティはレジスタ情報から自動的に生成されるため、正確かつ漏れのない検証が可能となる。
【００３８】
なお、必ずしも各レジスタへのアクセス回数はカウントする必要はなく、少なくともアクセスの有無が判明すればよい。したがって、表示部１４において「アクセス回数」は特に表示しなくてもよい。また、制御回路はＣＰＵやＤＳＰなどの演算回路に限るものではなく、レジスタに対してアクセスできるものであれば単なる論理回路であってもよい。また、ページ切り替え方式においてページが何枚存在していてもよい。同様に、アクセスモード切り替え方式においてアクセスモードがいくつ存在していてもよい。逆に、レジスタはページ切り替えやアクセスモード切り替えに対応していなくてもよい。
【００３９】
（第２の実施形態）
図１４は、第２の実施形態に係るレジスタ検証装置の構成を示す。本実施形態に係るレジスタ検証装置１０Ｂは、第１の実施形態に係るレジスタ検証装置１０Ａにレジスタ情報誤り検出部１５を追加した構成をしている。以下、第１の実施形態と異なる点について説明する。
【００４０】
レジスタ情報誤り検出部１５は、回路記述１０１に基づいて、これと矛盾するレジスタ情報１０２の誤りを検出する。具体的には、レジスタ誤り検出部１５は、レジスタ情報１０２に記された信号が回路記述１０１に存在するか否かを判定する。また、レジスタ情報１０２に記された内容に重複した定義や矛盾した内容があるか否かを判定する。そして、表示部１４は、レジスタ情報誤り検出部１５によって検出された誤り内容を警告表示する。
【００４１】
例えば、図２に示した論理集積回路の回路記述１０１に対して図１５に示したレジスタ情報１０２が用意されたとする。ここで、当該レジスタ情報１０２において、リードイネーブル信号の識別名が回路記述１０１に存在しないng_r_enとなっている。また、レジスタの実装アドレスa001が重複して定義されており、一方はリード属性のみ、他方はライト属性のみとなっている。この場合、レジスタ情報誤り検出部１５は、リードイネーブル信号ng_r_enが回路記述１０１に存在しないこと、及びアドレスa001が重複定義されていることを検出する。そして、図１６に示したように表示部１４に警告表示がされる。
【００４２】
以上、本実施形態によると、プロパティ生成の前段でレジスタ情報１０２の誤りが検出されるため、その検出結果に基づいてレジスタ検証を実施する前にレジスタ情報１０２を修正することができる。これにより、レジスタ検証の信頼性が向上する。
【００４３】
なお、レジスタ情報誤り検出部１５は、回路記述１０１を解析して各レジスタに入力される各種信号を特定し、それら信号の識別名がレジスタ情報１０２に正しく記載されているか否かを判定するようにしてもよい。
【００４４】
（第３の実施形態）
図１７は、第３の実施形態に係るレジスタ検証装置の構成を示す。本実施形態に係るレジスタ検証装置１０Ｃは、第１の実施形態に係るレジスタ検証装置１０Ａにレジスタ仕様表生成部１６を追加した構成をしている。以下、第１の実施形態と異なる点について説明する。
【００４５】
レジスタ仕様表生成部１６は、レジスタ情報１０２に基づいて、検証対象のレジスタの設計仕様を記したレジスタ仕様表を生成する。検証対象のレジスタが定義済みの場合、当該定義済みのレジスタの仕様表が生成される。一方、検証対象のレジスタが未定義の場合、レジスタ仕様表のテンプレートが生成される。定義済み及び未定義のレジスタのいずれについてレジスタ仕様表を生成するかは任意である。
【００４６】
例えば、図１８に示した未定義レジスタのレジスタ情報１０２が用意されていたとする。当該レジスタは、アドレスa000に実装され、読み出しのみ可能である。また、ページ番号は1であり、初期値は16'h0000である。この場合、レジスタ仕様表生成部１６は、図１９に示したようなレジスタ仕様表を生成する。当該レジスタ仕様表では、アドレスa000に実装されたレジスタの各ビットについて、初期値は０であり、読み出し専用であることを示している。そして、機能説明及びビットごとの機能説明の欄は検証者などが追記できるように空欄となっている。
【００４７】
以上、本実施形態によると、検証対象のレジスタのレジスタ仕様表が自動的に生成されるため、論理集積回路の設計・検証を支援することができる。
【００４８】
（第４の実施形態）
図２０は、第４の実施形態に係るレジスタ検証装置の構成を示す。本実施形態に係るレジスタ検証装置１０Ｄは、第１の実施形態に係るレジスタ検証装置１０Ａにテストベンチ誤り検出部１７及びテストベンチデバッグ部１８を追加した構成をしている。以下、第１の実施形態と異なる点について説明する。
【００４９】
テストベンチ誤り検出部１７は、検証実施部１２によるプロパティ１０４の監視の結果に基づいて、テストベンチ１０３の誤りを検出する。そして、テストベンチデバッグ部１８は、当該検出されたテストベンチ１０３の誤りに基づいて、テストベンチ１０３を修正する。
【００５０】
例えば、上記動作例１において図２１（ａ）に示した原テストベンチを実行したとする。この場合、図５に示した検証結果の例において示されたアドレスa001に実装されたレジスタ係る不備は、当該レジスタに値16'h1234を書き込んだ後にそれを読み出しせずにさらに値16'h5678を書き込もうとするテストベンチ１０３の誤りに起因するものである。テストベンチ誤り検出部１７は、当該テストベンチ１０３の誤りを検出する。テストベンチデバッグ部１８は、アドレスa001に実装されたレジスタに値16'h5678が書き込まれる前に（例えば、値16h'1234が書き込まれた直後に）、当該アドレスからデータを読み出すためのタスク文を追加して、図２１（ｂ）に示した修正後テストベンチを生成する。そして、次回検証の際に修正後テストベンチを用いることによって、アドレスa001に実装されたレジスタ係る不備が解消される。
【００５１】
以上、本実施形態によると、テストベンチの誤りが検出され、さらにその誤りが自動的に修正される。これにより、レジスタ検証の信頼性が向上する。
【００５２】
なお、テストベンチ１０３の自動修正を行わないのであれば、テストベンチデバッグ部１８を省略してもよい。また、テストベンチ１０３の記述言語としてＶｅｒｉｌｏｇ（登録商標）を想定しているが、アセンブラ言語、Ｃ言語その他のプログラミング言語を用いてもよい。また、テストベンチ１０３は、設定すべき信号を時系列的に直接数値でベクター表記した機能動作的記述であってもよい。
【００５３】
また、上記の各実施形態に係るレジスタ検証装置は、コンピュータに所定のプログラム（レジスタ検証プログラム）を実行させることにより構成可能である。レジスタ検証プログラムは、コンピュータに、上記各レジスタ検証装置の各構成要素の機能を実現させるように記述されたものである。
【産業上の利用可能性】
【００５４】
本発明に係るレジスタ検証装置は、高精度の網羅率を達成することができるため、高品質の論理集積回路の設計に有用である。
【図面の簡単な説明】
【００５５】
【図１】第１の実施形態に係るレジスタ検証装置の構成図である。
【図２】動作例１に係る回路記述として表される論理集積回路の模式図である。
【図３】動作例１に係るレジスタ情報の模式図である。
【図４】動作例１において生成されるプロパティを表す図である。
【図５】動作例１の検証結果の表示例を示す図である。
【図６】動作例２に係る回路記述として表される論理集積回路の模式図である。
【図７】動作例２に係るレジスタ情報の模式図である。
【図８】動作例２において生成されるプロパティを表す図である。
【図９】動作例２の検証結果の表示例を示す図である。
【図１０】動作例３に係る回路記述として表される論理集積回路の模式図である。
【図１１】動作例３に係るレジスタ情報の模式図である。
【図１２】動作例３において生成されるプロパティを表す図である。
【図１３】動作例３の検証結果の表示例を示す図である。
【図１４】第２の実施形態に係るレジスタ検証装置の構成図である。
【図１５】誤りを含むレジスタ情報の模式図である。
【図１６】レジスタ情報誤りの警告表示例を示す図である。
【図１７】第３の実施形態に係るレジスタ検証装置の構成図である。
【図１８】未定義レジスタのレジスタ情報の模式図である。
【図１９】レジスタ仕様表の例を示す図である。
【図２０】第４の実施形態に係るレジスタ検証装置の構成図である。
【図２１】原テストベンチと修正後テストベンチを表す図である。
【符号の説明】
【００５６】
１０Ａ−１０Ｄ  レジスタ検証装置
１１  プロパティ生成部
１２  検証実施部
１３  網羅率算出部
１５  レジスタ情報誤り検出部
１６  レジスタ仕様表生成部
１７  テストベンチ誤り検出部
１８  テストベンチデバッグ部
【図１】
2008226020.tif 000003
【図２】
2008226020.tif 000004
【図３】
2008226020.tif 000005
【図４】
2008226020.tif 000006
【図５】
2008226020.tif 000007
【図６】
2008226020.tif 000008
【図７】
2008226020.tif 000009
【図８】
2008226020.tif 000010
【図９】
2008226020.tif 000011
【図１０】
2008226020.tif 000012
【図１１】
2008226020.tif 000013
【図１２】
2008226020.tif 000014
【図１３】
2008226020.tif 000015
【図１４】
2008226020.tif 000016
【図１５】
2008226020.tif 000017
【図１６】
2008226020.tif 000018
【図１７】
2008226020.tif 000019
【図１８】
2008226020.tif 000020
【図１９】
2008226020.tif 000021
【図２０】
2008226020.tif 000022
【図２１】
2008226020.tif 000023