(57)【要約】【課題】  ＬＳＩ開発における論理回路を検証する論理シミュレーションにおいて、記憶素子のデータ参照時に該記憶素子へのリードアクセスによってシミュレーションサイクルを進めて余分な時間を消費することを無くし、シミュレーションを高速化する。【解決手段】  検証対象となる記憶素子の情報を登録するリストとそのリストを参照・更新しつつ記憶素子にアクセスを行う検証手法を設ける。【選択図】  図１
2007087176.tif 000002
【特許請求の範囲】
【請求項１】
LSI開発における論理回路を検証するための論理シミュレーションにおいて、検証対象となる記憶素子の情報を登録するリストとそのリスト情報を元に記憶素子にアクセスし期待値比較により検証を行う仕組みを持つことを特徴とする記憶素子の検証手法。
【請求項２】
上記請求項1における記憶素子の情報において、その要素として、記憶素子の名前、アドレス、初期値データ、現在のデータ、ライト可能か、リード可能か、ライトして良いかなどの情報であることを特徴とする検証手法。
【請求項３】
上記請求項1における記憶素子の情報を登録するリストにおいて、検証担当者が任意に検証対象である記憶素子の情報をリストに更新できることを特徴とした検証手法。
【請求項４】
上記請求項1における記憶素子の検証としては、記憶素子のデータ短絡検証、アドレス短絡検証、リセット時初期値検証などであることを特徴とした検証手法。
【請求項５】
上記請求項１における記憶素子の情報を登録するリストにおいて、記憶素子から情報を取り出す代わりにリストから情報を取り出すことを特徴とした検証手法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、LSI開発における論理回路の検証に関するものである。
【背景技術】
【０００２】
従来、LSI開発における論理シミュレーションを用いた記憶素子の検証方法は、各検証担当者が、検証対象の仕様書をもとに、記憶素子の検証指針に従って記憶素子にアクセスするテストを作成し検証することであった。  記憶素子の検証指針は、データ短絡の検証方法、アドレス短絡の検証方法などを文書化したものである。
【０００３】
従来例を図3を用いて説明する。
【０００４】
(従来例)
図3において、1は32bitデータの記憶素子であるアドレス32'h1000のレジスタ1とアドレス32'h1004のレジスタ2をもつ検証対象であるモジュールA、2は32bitデータの記憶素子であるアドレス32'h2000のレジスタ3、アドレス32'h2004のレジスタ4そしてアドレス32'h2008のレジスタ5をもつ検証対象であるモジュールB、3はバスCのトランザクションを発行してモジュールAとモジュールBにバスCを介してアクセスする検証を目的としたCPUのバスファンクションモデル、4はモジュールA、モジュールBそしてCPUバスファンクションモデルを接続するバスC、5はモジュールBの機能仕様書、6はモジュールAの機能仕様書、7は記憶素子の検証指針、8はモジュールBの検証担当者BがモジュールB仕様書と記憶素子の検証指針を元に作成したモジュールBのレジスタ3、レジスタ4そしてレジスタ5のテスト、9はモジュールAの検証担当者AがモジュールA仕様書と記憶素子検証指針を元に作成したモジュールAのレジスタ1とレジスタ2のテストである。
【０００５】
LSI開発の論理検証において、検証対象固有の機能を検証する前段階として、まず、検証対象にある記憶素子の検証という基本検証を行う。
【０００６】
モジュールAの検証担当者Aは、モジュールA仕様書からモジュールAの記憶素子に注目し、記憶素子の検証指針に従って、モジュールAのレジスタ1とレジスタ2の記憶素子のテストである9のモジュールAのレジスタテストを作成する。9のモジュールAレジスタテストの中身は、CPUバスファンクションモデルからモジュールAのレジスタへのライトやリードといったバスCのトランザクション発行するCPUバスファンクションモデルへの命令と、レジスタのデータをリードした値とレジスタが持つべきデータとの期待値検証である。9のレジスタテストを実行することで、CPUバスファンクションモデルからモジュールAのレジスタ1とレジスタ2にライトおよびリードのアクセスが行われ、期待値比較によってモジュールAの記憶素子レジスタ1とレジスタ2の検証が行われる。
【０００７】
同様に、モジュールBの検証担当者Bは、検証担当者Aとは別に、モジュールB仕様書と記憶素子の検証指針を元に8のモジュールBのレジスタテストを作成し、そのテストがCPUバスファンクションモデルに命令を発行することで、CPUバスファンクションモデルはモジュールBにアクセスおよび期待値比較により、モジュールBの記憶素子であるレジスタ3、レジスタ4そしてレジスタ5の検証を行う。
【０００８】
7の記憶素子の検証指針には、検証すべき項目とその項目を検証するためにどのようなデータを用いて、また、どのようなアクセスシーケンスを行うのかという方法が記載されている。検証すべき項目としては、リセット時の初期値、記憶素子のデータ短絡していないか、アドレス短絡していないかなどである。
【０００９】
データ短絡の一例は、CPUバスファンクションモデルから32bitデータのモジュールAレジスタ１に対して32bitデータ 32'h0000_000Fのライトトランザクションを行ったとき、実際のモジュールAレジスタ1のデータは32'h000F_0000となる不具合である。アドレス短絡の一例は、CPUバスファンクションモデルからモジュールAレジスタ１アドレス32'h1000にライトトランザクションを行ったとき、モジュールAレジスタ１ではなくアドレス32'h1004のモジュールAレジスタ2にライトされる不具合である。
【００１０】
レジスタテストの記述は、CPUバスファンクションモデルへの命令と期待値比較を検証指針にあるシーケンスにそって記述するのみで、各レジスタテストの違いは、レジスタ数やアドレスの違いなどに依存する部分のみである。
【００１１】
また、モジュールの論理検証を行う時、現在のレジスタ設定によって処理を変更する場合について図4を用いて説明する。８のテストは、モジュールAのレジスタ１のデータをバスC経由でリードし、該データによって処理を変更する。該データを変数dataに格納しておき、次に参照する時にはこのdataを参照することでモジュールAへのバスC経由のアクセスは発生しない。しかしながら、他のテストが同一シミュレーション中にレジスタ１へのライトを行うような場合には、実際のレジスタの状態と矛盾してしまう場合がある。
【００１２】
図5はこのようなケースに対応した例である。８のテストA1がレジスタ１を２度目以降参照する時にも１のモジュールAのレジスタ１からデータをリードすることによって、他のテストとの並列動作を行うシステムテストにおいての矛盾を回避している。
【００１３】
従来例としては、例えば特許文献１をあげることが出来る。
【特許文献１】特開平１０−１１１８８７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上記従来例で述べたように、レジスタテストは、記憶素子の検証指針に従ってテストを記述するという機械作業的な面を多く含んでおり、また、モジュール固有機能の検証を行う前の基本テストであるにもかかわらず、そのテスト記述には多くの時間を必要とするといった非常に非効率な課題がある。
【００１５】
また、各検証担当者が、各検証対象のレジスタテストを記述するため、記述ミスなどによりテストによっては品質が十分でない、検証担当者間・テスト間で品質が異なるという可能性が生じる。
【００１６】
さらに、複数のテストが並列動作する場合には、テストが現在のレジスタ設定を参照する時に毎回レジスタからのリードを行うことでシミュレーションサイクルを進め、余分な時間を消費してしまうという課題がある。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、検証対象となる記憶素子の情報を登録するリストとそのリストを参照・更新しつつ記憶素子にアクセスおよび期待値比較により検証を行う装置により記憶素子の検証を行う検証手法を設ける。
【００１８】
リストに登録する記憶素子の情報の要素は、"記憶素子名"、"アドレス"、"初期値データ"、"現在のデータ"、"ライト可能か"、"リード可能か"、"ライトして良いか"などの要素である。
【００１９】
リストは、すべての検証担当者が任意に記憶素子の情報の更新を行えるリストである。
【００２０】
検証装置が行う記憶素子へのアクセスと期待値比較の方法は、記憶素子の検証指針に従う。
【００２１】
[作用]
本発明の検証対象となる記憶素子の情報を登録するリストとそのリストを参照・更新しつつ記憶素子にアクセスおよび期待値比較により検証を行う装置により記憶素子の検証を行う検証手法を用いることにより、各モジュールの検証担当者の作業はモジュール仕様書から記憶素子に関する情報をリストに登録するのみでよく、記憶素子の検証指針にそった記憶素子へのアクセスや期待値比較は自動的に行われる。
【００２２】
従って、記憶素子の検証指針にそってテストを記述するという機械作業的な面を多く含みかつ時間のかかった作業を省くことが可能となる。また、テストを各検証担当者が行うのではなく同一の検証装置が行うので、記述ミスなどによりテストによっては品質が十分でない、また検証担当者間・テスト間で品質が異なるということはなくなる。
【００２３】
また、該リストをライト時に更新することから、記憶素子のデータを参照する際に該リストを参照すれば良く、記憶素子へのアクセスによってシミュレーションサイクルを進めて余分な時間を消費することが無くなる。
【発明の効果】
【００２４】
上で説明した本発明の検証手法により、記憶素子の情報をリストに登録するのみで記憶素子の検証が可能となり検証担当者の手間を省くことができ、検証対象ごとの固有機能の検証に早期に専念することができる。また、全体での記憶素子の検証の質を高めることができる。
【００２５】
また、記憶素子のデータの参照時に該記憶素子へのアクセスによってシミュレーションサイクルを進めて余分な時間を消費することが無くなり、シミュレーションが高速化する。
【００２６】
従って、本発明の検証手法を用いることで、効率的にLSIの論理検証を行うことが可能となり、LSIの開発期間の短縮、および、高品質なLSIを開発することが出来る。
【発明を実施するための最良の形態】
【００２７】
（実施例１）
まず、請求項１〜４に対する実施例を、図１を用いて説明する。
【００２８】
図1において、1は32bitデータの記憶素子であるアドレス32'h1000のレジスタ1とアドレス32'h1004のレジスタ2をもつ検証対象であるモジュールA、2は32bitデータの記憶素子であるアドレス32'h2000のレジスタ3、アドレス32'h2004のレジスタ4、そしてアドレス32'h2008のレジスタ5をもつ検証対象であるモジュールB、3はバスCのトランザクションを発行してモジュールAとモジュールBにバスCを介してアクセスする検証を目的としたCPUのバスファンクションモデル、4はモジュールA、モジュールBそしてCPUバスファンクションモデルを接続するバスC、5は記憶素子の検証指針、 6はモジュールAの機能仕様書、7はモジュールBの機能仕様書、8は検証を行う記憶素子の情報を登録するリスト、9は8のリストを参照・更新しつつ記憶素子にアクセスおよび期待値比較により検証を行う装置、10は8のリストに登録されたモジュールAレジスタ１情報の詳細である。
【００２９】
記憶素子の検証指針にあるレジスタ検証のシーケンスに従って、8の記憶素子情報リストに登録されているレジスタすべてを検証するレジスタアクセスのバスCトランザクションを行うCPUモデルコマンドの発行および期待値比較を行う9の検証装置を設ける。
【００３０】
リストに登録される各レジスタ情報には、10のレジスタ1情報に示すように"レジスタ名"、"アドレス"、"初期値データ"、"現在のデータ"、"ライト可能"、"リード可能"、"ライトして良いか"の要素がある。レジスタ情報の"初期値データ"をリセット時期待値として検証を行う。CPUバスファンクションモデルからレジスタにライトするときに、ライトするデータをレジスタ情報の"現在のデータ"に更新することにより、後にCPUバスファンクションモデルからレジスタのデータをリードするとき、"現在のデータ"を期待値として用いる。レジスタ情報の"ライト可能か","リード可能か"の要素により、レジスタのリザーブ領域などライトしてもレジスタのデータに反映されない等におけるマスク値として用いる。レジスタ情報の"ライトして良いか"に関しては、検証を行う上である値をライトした場合誤動作するなどの不具合が生じるレジスタのデータを示し、そこに関しては検証を行わないことを示すために用いる。記憶素子情報リストのレジスタ情報と検証指針にあるアクセスシーケンスにより、9の検証装置は、自動で記憶素子の検証を行う。
【００３１】
モジュールAの検証担当者は、モジュールA仕様書から記憶素子であるレジスタに注目し、レジスタ１とレジスタ2の情報を8の記憶素子情報リストに登録するのみで、モジュールAの記憶素子の検証を行える。
【００３２】
同様に、モジュールBの検証担当者は、モジュールB仕様書から記憶素子であるレジスタに注目し、レジスタ1、レジスタ2とレジスタ3の情報を8の記憶素子情報リストに登録するのみで、モジュールBの記憶素子の検証を行える。
【００３３】
（実施例２）
次に、請求項５に対する実施例を、図2を用いて説明する。
【００３４】
図１に対して8のリストを参照・更新しつつ記憶素子にアクセスおよび期待値比較により検証を行う装置が２つになり、それぞれを９の検証装置A、９'の検証装置Bとする。検証装置A、B共に８の１のレジスタ１へのリード、ライトアクセスを行うものとする。
【００３５】
まず、９の検証装置AがモジュールAの動作設定を行うために１のレジスタ１へのライトを行う時、同時に８の記憶素子情報リストのレジスタ１情報の“現在のデータ”を更新する。次に、９'の検証装置Bが１のレジスタ１のデータを参照する時、実際のレジスタ１にアクセスせず、８の記憶素子情報リストのレジスタ１情報の“現在のデータ”をリードして参照する。
【図面の簡単な説明】
【００３６】
【図１】本発明の請求項１〜４に対する実施例の説明図である。
【図２】本発明の請求項５に対する実施例の説明図である。
【図３】請求項１〜４に対する従来例の説明図である。
【図４】請求項５に対する従来例の説明図である。
【図５】請求項５に対する従来例の説明図である。
【符号の説明】
【００３７】
1  モジュールA
2  バスファンクションモデル
4  バスC
5  記憶素子の検証指針
6  モジュールAの機能仕様書
7  モジュールBの機能仕様書
8  検証を行う記憶素子の情報を登録するリスト
9  検証を行う装置
10  モジュールAレジスタ１情報の詳細
【図１】
2007087176.tif 000003
【図２】
2007087176.tif 000004
【図３】
2007087176.tif 000005
【図４】
2007087176.tif 000006
【図５】
2007087176.tif 000007