(57)【要約】【課題】カバレッジ測定時間を短縮する。【解決手段】カバレッジ測定方法は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコード（１）を用いてテストパターンについてカバレッジを算出する（Ｓ５）。ＲＴＬの実論理の完成を待つこと無く、換言すれば、ＲＴＬの実論理の作成に並行して、ＲＴＬによる記述よりも簡素化された高抽象度モデルソースコードを作成することができる。早く作成できた高抽象度モデルソースコードを用いることにより、ＲＴＬの実論理の完成を待たずにカバレッジを計測できる。しかも、ＲＴＬの実論理を用いたシミュレーション時間に比べて高抽象度モデルソースコードを用いたシミュレーション処理時間の方が短い。【選択図】図１
2009069922.tif 000002
【特許請求の範囲】
【請求項１】
ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードをコンパイル用コンピュータ装置に入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成し、
シミュレーション用コンピュータ装置にテストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積し、
前記蓄積したカバレッジ情報に基づいてカバレッジ生成用コンピュータ装置によりテストパターンについてのカバレッジを算出する、カバレッジ測定方法。
【請求項２】
ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを生成する第１処理と、
生成された高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する第２処理と、
テストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する第３処理と、
前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する第４処理と、を夫々コンピュータ装置を用いて実行するカバレッジ測定方法。
【請求項３】
前記高抽象度モデルソースコードはＣ言語で記述される、請求項２記載のカバレッジ測定方法。
【請求項４】
コンピュータ装置が読み取って夫々実行可能なコンパイラ、シミュレータ及びカバレッジ測定ツールを有し、
前記コンパイラは、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する制御を行い、
前記シミュレータは、テストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する制御を行い、
前記カバレッジ測定ツールは、前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する制御を行う、コンピュータ読み取り可能な記録媒体。
【請求項５】
ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを生成する第１処理と、
生成された高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する第２処理と、
テストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する第３処理と、
前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する第４処理と、を夫々実行するコンピュータ装置を有するデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理シミュレーションで用いるテストパターンのカバレッジを測定する技術に関する。
【背景技術】
【０００２】
半導体集積回路、例えばマイコンなどの論理集積回路の設計において、機能検証用テストパターンを実行した時、検証対象論理の全機能が実行されることが望ましい。この実行される機能の網羅性を確認するために、従来から、どの機能あるいはどの記述が全体の何％実行されたかを表すカバレッジが指標として使用されてきた。例えば論理シミュレーションで用いたテストパターンが検証対象回路のＲＴＬ（register transfer level）ソースコードをどれだけ網羅したかを計測する。
【０００３】
特許文献1には、設計者側から把握される機能検証に必要充分なテストパターンを表現したプロパティ、および検証者作成のテストパターンの２種類をシミュレータ入力し、現在のテストパターンがどの程度プロパティを満たしているかを確認する手法が記載されている。
【０００４】
しかしながら、この技術では漏れのないプロパティ入力が必須となり、プロパティの妥当性の検証も必要になる。したがって、このカバレッジ測定方法を採用しても、ＲＴＬソースコードの作成からテストパターンの作成完了に至る開発期間の短縮に寄与することはできない。
【０００５】
【特許文献１】特開２００４−７０４５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明者の検討によれば、上記特許文献１の技術はもとより、従来のカバレッジ測定方法は、ＲＴＬによる実論理を検証対象モデルとして論理シミュレーションを行うことを前提とするから、ＲＴＬによる実論理の完成を待たなければテストパターンの作成に採りかかることができず、しかも、カバレッジ取得のための論理シミュレーションに時間がかかってしまう、ということが明らかにされた。このように、実論理を用いたシミュレーションを前提とするために、大規模開発時にカバレッジ取得に時間がかかり、以って、半導体集積回路の開発期間が長引くという問題を生ずる。
【０００７】
本発明の目的は、カバレッジ測定時間を短縮でき、半導体集積回路の開発期間の短縮に寄与することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１０】
すなわち、カバレッジ測定方法は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを用いてテストパターンについてのカバレッジを算出する。
【００１１】
これによりＲＴＬの実論理の完成を待つこと無く、換言すれば、ＲＴＬの実論理の作成に並行して、ＲＴＬによる記述よりも簡素化された高抽象度モデルソースコードを作成することができる。ＲＴＬの実論理の作成に並行してテストパターンの作成と検証を先に進めることが可能になる。早く作成できた高抽象度モデルソースコードを用いることにより、ＲＴＬの実論理の完成を待つこと無くカバレッジを計測することができる。しかも、ＲＴＬの実論理を用いたシミュレーション時間に比べて高抽象度モデルソースコードを用いたシミュレーション処理時間の方が短い。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、カバレッジ測定時間を短縮でき、半導体集積回路の開発期間の短縮に寄与することができる。
【発明を実施するための最良の形態】
【００１４】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕カバレッジ測定方法は、ＲＴＬのハードウェア記述言語(HDL : hardware description language)によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードをコンパイル用コンピュータ装置に入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する。シミュレーション用コンピュータ装置にテストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する。前記蓄積したカバレッジ情報に基づいてカバレッジ生成用コンピュータ装置によりテストパターンについてのカバレッジを算出する。上述と同様に、ＲＴＬの実論理の作成に並行してテストパターンの作成と検証を先に進めることが可能になり、また、カバレッジ測定時間を短縮できるから、半導体集積回路の開発期間の短縮に寄与することができる。
【００１６】
〔２〕別の観点によるカバレッジ測定方法は第１処理乃至第４処理をコンピュータ装置を用いて実行する。第1処理は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを生成する。第２処理は、生成された高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する。第３処理はテストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する。第４処理は前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する。
【００１７】
〔３〕項２のカバレッジ測定方法において前記高抽象度モデルソースコードはＣ言語で記述される。
【００１８】
〔４〕コンピュータ読み取り可能な記録媒体は、コンピュータ装置が読み取って夫々実行可能なコンパイラ、シミュレータ及びカバレッジ測定ツールを有する。前記コンパイラは、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する制御を行う。前記シミュレータは、テストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する制御を行う。前記カバレッジ測定ツールは、前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する制御を行う。コンピュータ装置がこの記録媒体からコンパイラ、シミュレータ及びカバレッジ測定ツールを読み取って実行することにより、容易に上記カバレッジ測定方法を行うことができる。
【００１９】
〔５〕データ処理システムは、第１処理乃至第４処理を夫々実行するコンピュータ装置を有する。第１処理は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコードを生成する。第２処理は、生成された高抽象度モデルソースコードを入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイルを生成する。第３処理は、テストパターンを入力して前記実行ファイルを実行し、実行中に逐次カバレッジ情報を蓄積する。第４処理は、前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジを算出する。このデータ処理システムを用いることにより容易に上記カバレッジ測定方法を行うことができる。
【００２０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２１】
図１にはカバレッジ測定方法の処理フローが例示される。カバレッジはテストパターンに対する信頼性評価の一つの指標である。図１に示されるカバレッジ測定方法は、ＲＴＬのハードウェア記述言語を用いて論理設計された半導体集積回路に対する機能検証のためのテストパターンにおけるカバレッジを計測する方法を提供するものである。特に、ＲＴＬのハードウェア記述言語を用いた論理設計が完了する前にカバレッジの計測を可能とするものである。以下、その方法について詳述する。
【００２２】
図１に示されるカバレッジ測定方法は、高抽象度モデルソースコードの生成処理（第１処理）Ｓ１、コンパイル処理（第２処理）Ｓ２、高抽象度シミュレーション処理（第３処理）Ｓ３、及びカバレッジ生成処理（第４処理）Ｓ４に大別される。
【００２３】
高抽象度モデルソースコードの生成処理Ｓ１は、ＲＴＬのハードウェア記述言語によって記述される論理回路に対してその入力信号の定義と前記入力信号に対する演算操作の定義を有すると共にクロック信号によるタイミング定義が省略された記述形態を有する高抽象度モデルを用いた回路モジュールの高抽象度モデルソースコード１を生成する。例えば図２にはＲＴＬのハードウェア記述言語による加算回路の記述が例示される。この記述内容を論理回路で示すと図３のようになる。この記述では、クロック信号ＣＬＫのが変化するたびに入力信号Ａ，Ｂを取り込み、信号Ａ’，Ｂ’に代入する（値の伝播）。次にＡ’＋Ｂ’を計算し、出力信号Ｃに代入する。このＲＴＬの動作をシミュレーションする場合、クロック信号ＣＬＫの変化を検出する処理、クロック信号ＣＬＫの変化があったら入力信号を加算器に通知する処理、加算器の演算処理、及び加算器の出力を信号Ｃに代入する処理、の合計４個の処理が必要になる。また、波形表示のために途中の信号の値を保存する必要がある。クロック信号ＣＬＫを４００ＭＨｚと仮定した場合、加算器の動作を1秒間シミュレーションするために、この４個の処理を４億回実行しなければならない。実製品を考えると、必ずしも加算が毎回必要でない。例えば加算以外の減算処理を行っている期間、加算器の処理は不要である。しかし、クロック信号ＣＬＫが変化するので加算器の動作が毎回シミュレーションされてしまう。また、加算器以外にも、クロック信号に同期して動作する記述が存在するので、処理量はさらに増加することになる。
【００２４】
カバレッジの測定では前記ＲＴＬレベルによる回路記述を用いたシミュレーションを行わない。上記ＲＴＬによるモデルに代えて高抽象度モデルを用いる。図４には図２の加算回路に対応する高抽象度モデルの記述が例示される。この記述では入力Ａ，Ｂを加算し、出力する、という記述である。ＲＴＬで必要であった、クロック信号ＣＬＫの検出、Ａ，ＢからＡ’，Ｂ’への信号の伝播、波形表示のための信号の保存を行わない。さらに、加算器の動作が不要な場合にはそれをシミュレーションしないものとする。よって、Ａ＋Ｂの演算結果のような機能的な部分について確認可能になる。高抽象度モデルで省略される情報を確認・検証したい場合、高抽象度モデルは使用できない。
【００２５】
コンパイル処理Ｓ２においては、生成された高抽象度モデルソースコード１を入力し、入力した高抽象度モデルソースコードにカバレッジ計測用のモニタ情報を挿入して実行ファイル（高抽象度シミュレータ）２を生成する。
【００２６】
高抽象度シミュレーション処理Ｓ３は、テストパターン３を入力して前記高抽象度シミュレータ２を実行し、実行中にカバレッジ情報４を逐次蓄積する。カバレッジ情報は、例えば、実行された高抽象度モデルの機能名に対応するモニタ情報であり、時系列に蓄積されていく。高抽象度シミュレーション処理においては実行結果６がシミュレーションのタイムホイールの時刻毎に蓄積され、他の評価への流用異が考慮されている。
【００２７】
カバレッジ生成処理は、前記蓄積したカバレッジ情報に基づいてテストパターンについてのカバレッジ５を算出する処理である。
【００２８】
図５にはＲＴＬの記述を用いた論理シミュレーションと、高抽象度モデルによる記述を用いたシミュレーション処理（Ｓ３）との相違が示されている。ＲＴＬの記述を用いた論理シミュレーションでテストパターン（検証パターン）のカバレッジを確認する場合には、１回当たりの実行時間が長い。アーキテクチャレベルの事前検討やソフトウェア開発などのために開発される高抽象度なハードウェアのモデルである高抽象度モデルを用いてシミュレーションを行うことにより、高速にテストパターンのカバレッジを取得することができる。前述のように高抽象度モデルは個々の信号線や不要な論理をシミュレートしないため、高速に実行できる。要するに、実論理のカバレッジ確認に実論理と異なる高抽象度のモデルを利用するからでる。
【００２９】
図６には半導体集積回路の設計開発の概略フローが示される。（Ａ）はＲＴＬによる論理設計結果である実倫理を用いて論理シミュレーションを行ってカバレジを生成する場合の処理フローである。テストパターンの開発及び検証に期間Ｐ１にいてカバレジを計測できるのは実論理であるＲＴＬ設計が完了するのを待たなければならない。図１の処理フローに従う（Ｂ）の場合には、ＲＴＬの実論理の完成を待つこと無く、換言すれば、ＲＴＬの実論理の作成に並行して、ＲＴＬによる記述よりも簡素化された高抽象度モデルソースコードを作成することができる。早く作成できた高抽象度モデルソースコードを用いることにより、ＲＴＬの実論理の完成を待つことなく、テストパターン開発及び検証の期間Ｐ２にカバレッジを計測することができる。すなわち、ＲＴＬの実論理の作成に並行してテストパターンの作成と検証を先に進めることが可能になる。さらに、ＲＴＬの実論理を用いたシミュレーション時間に比べて高抽象度モデルソースコードを用いたシミュレーション処理時間の方が短い。したがって、ＲＴＬ設計完了後のテストパターン開発及び検証の期間Ｐ３はＰ２の期間よりも短くてすむ。既にＰ２においてカバレッジを取得するところまでテストパターンの開発が進んでいるからである。Ｐ１，Ｐ２，Ｐ３の何れの場合にも最終的に形成すべきテストパターンは同じである。
【００３０】
高抽象度モデルによるシミュレーションは高速に実施できるからカバレッジ取得を高速化することができる。高抽象度モデルを使用するフローでも、（Ｂ）の場合と同様にＲＴＬ記述、検証という処理は必要だが、カバレッジ取得高速化によりテストパターン開発期間を短縮でき、結果として、半導体集積回路の開発期間をＴ１からＴ２に短縮することができる。
【００３１】
図１の方法を実現するにはエンジニアリングワークステーションのようなコンピュータ装置（図示せず）を用いればよい。コンピュータ装置は高抽象度モデルソースコード生成処理プログラムを実行して前記高抽象度モデルソースコード生成処理Ｓ１のための制御を行う。また、前記コンピュータ装置はコンパイル処理プログラムを実行して前記コンパイル処理Ｓ２のための制御を行う。また、前記コンピュータ装置は高抽象度シミュレーション処理プログラムを実行して前記高抽象度シミュレーション処理Ｓ３のための制御を行う。さらに、前記コンピュータ装置はカバレッジ生成処理プログラムを実行して前記カバレッジ生成処理Ｓ４のための制御を行う。
【００３２】
前記コンピュータ装置が実行する高抽象度モデルソースコード生成処理プログラム、コンパイル処理プログラム、高抽象度シミュレーション処理プログラム、及びカバレッジ生成処理プログラムはＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又は不揮発性メモリカード等のコンピュータ読み取り可能な記録媒体に記録されて提供される。
【００３３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００３４】
例えば、高抽象度モデルソースコードはＣ＋＋のようなＣ言語を用いた記述に限定されない。ユニックス系のｇ＋＋等の言語を用いることもできる。高抽象度モデルソースコード生成処理プログラム、コンパイル処理プログラム、高抽象度シミュレーション処理プログラム、及びカバレッジ生成処理プログラムを実行するコンピュータ装置は単一であっても複数であってもよい。
【図面の簡単な説明】
【００３５】
【図１】カバレッジ測定方法による処理を例示するフローチャートである。
【図２】ＨＤＬによるＲＴＬのハードウェア記述言語による加算回路の記述を例示する説明図である。
【図３】図２の記述内容を論理回路で示した説明図である。
【図４】図２の加算回路に対応する高抽象度モデルの記述を例示する説明図である。
【図５】ＲＴＬの記述を用いた論理シミュレーションと、高抽象度モデルによる記述を用いたシミュレーション処理（Ｓ３）との相違を示す説明図である。
【図６】カバレッジの取得にＲＴＬによる論理シミュレーションを採用した場合における半導体集積回路の設計開発と高抽象度シミュレーションを採用した場合における半導体集積回路の設計開発との概略フローを示すタイムチャートである。
【符号の説明】
【００３６】
Ｓ１  高抽象度モデルソースコードの生成処理（第１処理）
Ｓ２  コンパイル処理（第２処理）
Ｓ３  高抽象度シミュレーション処理（第３処理）
Ｓ４  カバレッジ生成処理（第４処理）
１  高抽象度モデルソースコード
２  実行ファイル（高抽象度シミュレータ）
３  テストパターン
４  カバレッジ情報
５  カバレッジ
６  実行結果
【図１】
2009069922.tif 000003
【図２】
2009069922.tif 000004
【図３】
2009069922.tif 000005
【図４】
2009069922.tif 000006
【図５】
2009069922.tif 000007
【図６】
2009069922.tif 000008