(57)【要約】【課題】論理回路のパスカバレッジ測定において、パス総数が膨大なハードウェア記述によるシミュレーションの実行を未然に防止して、検証期間の短縮化を図ること。【解決手段】カバレッジ評価装置２００は、入力部２０１において、ハードウェア記述情報２１１が入力された場合、判定部２０２において、記述ルールのチェックをおこなう。記述ルール（１）または（２）に合致した場合、最適化部２０３において、ハードウェア記述情報２１１を、合致した記述ルールに従って論理最適化、すなわち、書き換えをおこなう。そして、算出部２０４において、論理最適化されたあらたなハードウェア記述情報２１３のパス総数を算出する。実行部２０５において、ハードウェア記述情報２１３を用いて論理シミュレーションを実行する。測定部２０６において、パスカバレッジ２１５を測定する。【選択図】        図２
2006201980.tif 000002
【特許請求の範囲】
【請求項１】
対象回路のハードウェア記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定手段と、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化する最適化手段と、
を備えることを特徴とするカバレッジ評価装置。
【請求項２】
前記最適化手段によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出手段を備えることを特徴とする請求項１に記載のカバレッジ評価装置。
【請求項３】
対象回路のハードウェア記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定手段と、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出する算出手段と、
を備えることを特徴とするカバレッジ評価装置。
【請求項４】
対象回路のハードウェア記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化する最適化工程と、
を含んだことを特徴とするカバレッジ評価方法。
【請求項５】
前記最適化工程によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出工程を含んだことを特徴とする請求項４に記載のカバレッジ評価方法。
【請求項６】
対象回路のハードウェア記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出する算出工程と、
を含んだことを特徴とするカバレッジ評価方法。
【請求項７】
対象回路のハードウェア記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定させる判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化させる最適化工程と、
をコンピュータに実行させることを特徴とするカバレッジ評価プログラム。
【請求項８】
前記最適化工程によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出工程をコンピュータに実行させることを特徴とする請求項７に記載のカバレッジ評価プログラム。
【請求項９】
対象回路のハードウェア記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定させる判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出させる算出工程と、
をコンピュータに実行させることを特徴とするカバレッジ評価プログラム。
【請求項１０】
請求項７〜９のいずれか一つに記載のカバレッジ評価プログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、対象回路のカバレッジを評価するカバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体に関する。
【背景技術】
【０００２】
ＬＳＩ設計では、従来から設計期間の短縮による作業効率化が要求されている一方、ＬＳＩが正しく動作するかどうかを検証する検証作業が必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているＬＳＩについては、高品質を維持するためにもこの検証作業は重要である。
【０００３】
この検証作業の効率化を図るためには、効果的なシミュレーションパターンやテストベンチを用いてシミュレーションを実行する必要がある。このシミュレーションを補完する検証作業の一つとしてコードカバレッジ（コード網羅率）がある。コードカバレッジとは、ＲＴＬ（Register Transfer Level）のＨＤＬ（Hardware Description Language）によるハードウェア記述が、用意されたシミュレーションパターンやテストベンチによって実際に実行されたか否かを定量的に測定する手法である。
【０００４】
このコードカバレッジには、パスカバレッジと呼ばれる処理の流れに着目したカバレッジがある。パスカバレッジは、if文やcase文などの条件分岐文において条件が複数ある場合、それぞれの組み合わせの経路、すなわちパスを通ってきたかどうかを解析するカバレッジである。
【０００５】
なお、従来技術として、論理回路の機能テストをする際に用いられるテストデータのカバレッジを評価する際、検証テストでカバーされていない記述を正確に計測し、不要なテストを作成することを防ぐことによって、不要なシミュレーション等の作業を省略するカバレッジ評価システムが開示されている（たとえば、下記特許文献１を参照。）。
【０００６】
また、ハードウェア記述の記述ブロック単位に実行行履歴を記録し、同一時刻に同じ記述ブロックが実行された場合、同一時刻の前回の実行履歴を消去する工程を有し、カバレッジ測定時の誤カウントを防止する方法も開示されている（たとえば、下記特許文献２を参照。）。
【０００７】
【特許文献１】特開２００１−１４３６５号公報
【特許文献２】特開２００４−１９２０６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したパスカバレッジでは、パス総数は出力に関係なく、排他的な各分岐のパス数を掛け合わせて算出されるため、絶対に発生しないパスを含む記述や出力毎に違う分岐が存在する記述がハードウェア記述の記述内容に含まれていると、パス総数が膨大になるという問題があった。
【０００９】
また、パス総数が膨大であるにもかかわらず、シミュレーションを実行すると、シミュレーション時間が指数的に増加して検証期間が長期化したり、場合によってはパスカバレッジの測定自体が不可能にとなるという問題があった。
【００１０】
特に、上述した特許文献１、２の従来技術では、シミュレーションの実行前にパス総数が膨大となる記述が含まれているかどうかを検出することができないため、検証者はパス総数が膨大であることを把握することができない。したがって、上述した検証期間の長期化やパスカバレッジ測定不可能といった問題が避けられないこととなった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、論理回路のパスカバレッジ測定において、パス総数が膨大なハードウェア記述によるシミュレーションの実行を未然に防止して、検証期間の短縮化を図ることができるカバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、この発明にかかるカバレッジ評価装置は、対象回路のハードウェア記述情報を入力し、入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定し、判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化することを特徴とする。
【００１３】
また、上記発明において、前記ハードウェア記述情報に記述されている条件分岐文が、case文と等価なif-if文であるか否かを判定し、前記case文と等価であると判定されたif-if文をcase文に書き換えることによって、前記ハードウェア記述情報を最適化することとしてもよい。
【００１４】
また、上記発明において、前記ハードウェア記述情報に記述されている複数の条件分岐文の入力条件が重複するか否かを判定し、前記複数の条件分岐文の入力条件が重複しないように書き換えることによって、前記ハードウェア記述情報を最適化することとしてもよい。
【００１５】
また、上記発明において、前記最適化手段によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出することとしてもよい。
【００１６】
また、上記発明において、記述内容が最適化されたあらたなハードウェア記述情報を用いて論理シミュレーションを実行し、算出されたパス総数と、実行された実行結果と、に基づいて、前記対象回路のパスカバレッジを測定することとしてもよい。
【００１７】
また、この発明にかかるカバレッジ評価装置は、対象回路のハードウェア記述情報を入力し、入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定し、判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出することを特徴とする。
【００１８】
また、上記発明において、前記ハードウェア記述情報に記述されている複数の条件分岐文のうち、一の条件分岐文からの出力変数が、他の条件分岐文からの出力変数に対して独立しているか否かを判定し、独立していると判定された場合、前記出力変数ごとのパス数に基づいて、前記ハードウェア記述情報のパス総数を算出することとしてもよい。
【００１９】
また、上記発明において、判定された判定結果に基づいて、前記ハードウェア記述情報を用いて論理シミュレーションを実行し、算出されたパス総数と、実行された実行結果と、に基づいて、前記対象回路のパスカバレッジを測定することとしてもよい。
【００２０】
これらの発明によれば、ハードウェア記述情報のパス総数を削減することができる。特に、ハードウェア記述情報を最適化することにより、フォールスパスなど絶対に発生することがないパスを削減することができる。また、出力変数を用いることにより、無意味なパスを削減することができる。また、パス総数が削減されたハードウェア記述情報に対してシミュレーションを実行することにより、正確なパスカバレッジ測定をおこなうことができる。
【発明の効果】
【００２１】
本発明にかかるカバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体は、論理回路のパスカバレッジ測定において、パス総数が膨大なハードウェア記述によるシミュレーションの実行を未然に防止して、検証期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明にかかるカバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体の好適な実施の形態を詳細に説明する。
【００２３】
（カバレッジ評価装置のハードウェア構成）
まず、この発明の実施の形態にかかるカバレッジ評価装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかるカバレッジ評価装置のハードウェア構成を示すブロック図である。
【００２４】
図１において、カバレッジ評価装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ１０１は、カバレッジ評価装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２６】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータをカバレッジ評価装置に読み取らせたりする。
【００２７】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ１１２は、画像を光学的に読み取り、カバレッジ評価装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３１】
（カバレッジ評価装置の機能的構成）
つぎに、この発明の実施の形態にかかるカバレッジ評価装置の機能的構成について説明する。図２は、この発明の実施の形態にかかるカバレッジ評価装置の機能的構成を示すブロック図である。図２において、カバレッジ評価装置２００は、入力部２０１と、判定部２０２と、最適化部２０３と、算出部２０４と、実行部２０５と、測定部２０６と、から構成されている。
【００３２】
入力部２０１は、対象回路のハードウェア記述情報２１１の入力を受け付ける。ここで、対象回路とは、たとえば、パスカバレッジによる評価対象となる論理回路である。ハードウェア記述情報２１１とは、ハードウェア記述言語で記述された対象回路のＲＴＬの記述情報である。また、ハードウェア記述言語としては、たとえば、Ｖｅｒｉｌｏｇ  ＨＤＬまたはＶＨＤＬを用いることができる。
【００３３】
また、判定部２０２は、入力部２０１によって入力されたハードウェア記述情報２１１のパス総数が圧縮可能か否かを判定する。具体的には、ハードウェア記述情報２１１に記述されている条件分岐文が、case文と等価なif-if文であるか否かを判定する。また、ハードウェア記述情報２１１に記述されている複数の条件分岐文の入力条件が重複するか否かを判定する。さらに、ハードウェア記述情報２１１に記述されている複数の条件分岐文のうち、一の条件分岐文からの出力変数が、他の条件分岐文からの出力変数に対して独立しているか否かを判定する。
【００３４】
より具体的に説明すると、入力されたハードウェア記述情報２１１が、以下の記述ルール（１）〜（３）に合致するか否かを判定することとなる。
【００３５】
（１）『case文と等価なif-if文の記述があるか？』
（２）『if文間、case文間、またはif文とcase文との間で入力条件が重複している記述があるか？』
（３）『測定単位内で関連のないif文またはcase文からの出力が混在している記述があるか？』
【００３６】
この記述ルールは、ハードウェア記述情報２１１内における所定の測定単位でおこなわれる。測定単位とは、たとえば、ハードウェア記述言語がＶｅｒｉｌｏｇ  ＨＤＬの場合はalways文、ＶＨＤＬの場合はprocess文の範囲である。
【００３７】
また、最適化部２０３は、判定部２０２によって判定された判定結果に基づいて、ハードウェア記述情報２１１の記述内容を最適化する。具体的には、最適化部２０３は、記述ルール（１）および（２）に合致したと判定された場合、ハードウェア記述情報２１１を記述ルールに従って書き換える。なお、最適化部２０３の具体的な最適化処理については後述の実施例１、２で説明する。
【００３８】
また、算出部２０４は、パス総数（チェック結果２１２）を算出する。具体的には、最適化部２０３によって記述内容が最適化されたあらたなハードウェア記述情報２１３のパス総数（チェック結果２１２）を算出する。また、算出部２０４は、判定部２０２において、記述ルール（３）に合致していると判定された場合、出力変数ごとのパス数に基づいて、ハードウェア記述情報２１１のパス総数を算出する。なお、パス総数のより具体的な算出処理については後述の実施例３で説明する。
【００３９】
また、実行部２０５は論理シミュレータであり、最適化部２０３によって記述内容が最適化されたあらたなハードウェア記述情報２１３を用いて論理シミュレーションを実行する。また、実行部２０５は、判定部２０２において、記述ルール（３）に合致していると判定された場合、入力されたハードウェア記述情報２１１を用いて論理シミュレーションを実行する。なお、論理シミュレーションはテストベンチ２１４を用いて実行する。
【００４０】
また、測定部２０６は、算出部２０４によって算出されたパス総数と、実行部２０５によって実行された実行結果と、に基づいて、対象回路のパスカバレッジ２１５を測定する。すなわち、算出部２０４によって算出されたパス総数がパスカバレッジ２１５の分母となり、実行部２０５によって実行された実行結果がパスカバレッジ２１５の分子となる。
【００４１】
なお、上述した入力部２０１、判定部２０２、最適化部２０３、算出部２０４、実行部２０５および測定部２０６は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などに記録されたプログラムを、ＣＰＵ１０１が実行することによって、または、Ｉ／Ｆ１０９によって、その機能を実現する。
【００４２】
（カバレッジ評価処理手順）
つぎに、この発明の実施の形態にかかるカバレッジ評価処理手順について説明する。図３は、この発明の実施の形態にかかるカバレッジ評価処理手順を示すフローチャートである。図３において、まず、入力部２０１において、ハードウェア記述情報２１１が入力された場合（ステップＳ３０１：Ｙｅｓ）、判定部２０２において、記述ルールのチェックをおこなう（ステップＳ３０２）。
【００４３】
そして、記述ルール（１）または（２）に合致した場合（ステップＳ３０３：Ｙｅｓ）、最適化部２０３において、入力されたハードウェア記述情報を、合致した記述ルールに従って論理最適化、すなわち、書き換えをおこなう（ステップＳ３０４）。そして、算出部２０４において、論理最適化されたあらたなハードウェア記述情報のパス総数を算出する（ステップＳ３０５）。算出されるパス総数は、入力されたハードウェア記述情報のパス総数を大幅に削減した値となるため、パス総数の圧縮化を図ることができる。
【００４４】
また、実行部２０５において、論理最適化されたあらたなハードウェア記述情報とテストベントを用いて論理シミュレーションを実行する（ステップＳ３０６）。最後に、測定部２０６において、パスカバレッジを測定する（ステップＳ３０７）。
【００４５】
一方、ステップＳ３０３において、記述ルール（１）または（２）に合致しない場合（ステップＳ３０３：Ｎｏ）、記述ルール（３）に合致するか否かを判定する（ステップＳ３０８）。記述ルール（３）に合致する場合（ステップＳ３０８：Ｙｅｓ）、ステップＳ３０５に移行してパス総数を算出する。この場合は、最適化部２０３において、ハードウェア記述情報２１１の論理最適化（ステップＳ３０４）はおこなわず、入力されたハードウェア記述情報２１１のパス総数を算出する。
【００４６】
一方、ステップＳ３０８において、記述ルール（３）に合致しないと判定された場合（ステップＳ３０８：Ｎｏ）、一連の処理を終了する。なお、この場合は通常処理、すなわち、入力されたハードウェア記述情報２１１とテストベンチ２１４を用いて論理シミュレーションを実行して、パスカバレッジ２１５を測定することとなる。
【実施例１】
【００４７】
つぎに、上述した実施の形態にかかるカバレッジ評価装置２００の実施例１について説明する。実施例１では、上述した記述ルール（１）『case文と等価なif-if文の記述があるか？』に合致する場合のカバレッジ評価について説明する。
【００４８】
排他的な論理は本来、case文またはif-else文で記述しないとシミュレーションにおいて絶対に起こらないパスが発生する。同様に、シミュレーションにおいて絶対に起こらないパスが発生するケースとして、排他的な論理がif-if文で記述されているケースがある。ここで、if-if文で記述されているハードウェア記述情報を図４に示す。図４は、実施例１にかかるカバレッジ評価装置２００に用いるハードウェア記述情報の一例を示す説明図である。なお、ハードウェア記述情報４００の左端に行番号を示す。
【００４９】
このハードウェア記述情報４００では、cntにより５つのif文４０１〜４０５に分岐されている。各if文４０１〜４０５には、その中にさらにif文が記述されているif-if文である。なお、if文４０３には、case文４３１が記述されている。このハードウェア記述情報４００では、cntの値がすべて排他的なので、同時に各if文４０１〜４０５のthen節が実行されることはあり得ない。
【００５０】
ところが、このハードウェア記述情報４００において、最初のif文４０１以外の各if文４０２〜４０５の先頭行において、変数cnt[6:4]に対し、それぞれ異なる定数3'h1、3'h2、3'h3、3'h4が与えられている。したがって、判定部２０２において、if文４０２〜４０５は、case文と論理等価なif-if文であると判定される。これにより、最適化部２０３では、if文４０２〜４０５をcase文に書き換えることができ、最適化部２０３によりハードウェア記述情報４００を最適化することができる。
【００５１】
つぎに、ハードウェア記述情報のパス総数の算出手法について説明する。図５−１〜図５−３は、図４に示したハードウェア記述情報４００をフローチャート化した模式図である。図５−１〜図５−３において、対応する箇所には図４に示した記述の行番号（[ｘｘｘ]で表記）が付されている。
【００５２】
ひし形図形はif文を示しており、ひし形図形の中央下の頂点から引かれた線分は、当該if文のthen節の実行を示しており、左右の頂点から引かれた線分は、当該if文のelse節の実行を示している。なお、実線で示された線分は、ハードウェア記述情報４００に記述されている文であり、点線で示された線分は、ハードウェア記述情報４００に記述されていない暗黙の文である。
【００５３】
また、円形図形は演算子を示しており、内部に記述された演算記号を用いてパス数を演算する。演算記号「＋」の演算子Ａは、ひし形図形からの線分の接続本数を加算する。たとえば、図５−１において、if文４０１の演算子Ａを例に挙げて説明すると、if文４０１の演算子Ａに接続されているひし形図形からの線分の本数は、５本の線分、すなわち、［００３］からの２本の線分、［００５］からの２本の線分、および［００１］からの１本の線分（点線）である。したがって、if文４０１のパス数は５本である。
【００５４】
また、演算記号「×」の演算子Ｃは、上下のif文間において、演算記号「＋」の演算子で算出されたパス数の乗算をおこなう。たとえば、図５−１において、if文４０１のパス数とif文４０２との間の演算子Ｃは、if文４０１のパス数とif文４０２のパス数とを乗算する。
【００５５】
また、ひし形図形を縦に分割してその間に縦の線分を有する図形は、case文を表している。たとえば、図５−２において、case文４３１は、１１個のthen節とcase文４３１に記述されていない暗黙のdefault節（１個）の線分を有するため、case文４３１のパス数は１２本である。なお、図５−１〜図５−３における模式図およびその記号の意味は、後述する図７〜図１０、図１２および図１４においても同様である。
【００５６】
図５−１〜図５−３によれば、if文４０１のパス数Ｐ１は５本である。同様に、if文４０２のパス数Ｐ２は、３本（if文４２１のパス数）×５本（if文４２２のパス数）＋１本（［００７］の暗黙のelse節）で、１６本となる。また、if文４０３のパス数Ｐ３は、５本×１４本×３本＋１本で２１１本となる。
【００５７】
また、if文４０４のパス数Ｐ４は、５本×９本×３本＋１本で１３６本となる。また、if文４０５のパス数Ｐ５は３本である。このように、パスカバレッジ測定では暗黙のelse文（記述されていないelse節）も考慮すると、このハードウェア記述情報４００のパス総数Ｐは、図５−１〜図５−３に示した演算子を用いて、各if文４０１〜４０５におけるパス数Ｐ１〜Ｐ５を乗じた値となる。
【００５８】
Ｐ＝Ｐ１×Ｐ２×Ｐ３×Ｐ４×Ｐ５
＝５×（３×５＋１)×（５×１４×３＋１）×（５×９×３＋１）×３
＝６８８７０４０
【００５９】
また、上述したように、ハードウェア記述情報４００は、記述ルール（１）に合致しているため、case文に書き換え可能である。図６は、等価なcase文に書き換えられたあらたなハードウェア記述情報を示す説明図である。なお、図４に示した構成と同一構成には同一符号を付し、その説明を省略する。
【００６０】
ハードウェア記述情報６００において、図４に示したif文４０２〜４０５が、case文６０２（case文６１１〜６１４）に書き換えられている。つぎに、図６に示したハードウェア記述情報６００のパス総数の算出手法について説明する。図７は、図６に示したハードウェア記述情報６００をフローチャート化した模式図である。図７においては、図６に示した行番号（[ｘｘｘ]で表記）が付されている。図７において、case文６１１〜６１３内の数字は、それぞれパス数を示している。また、[０７８]における数字は、case文６０２のパス数を示している。
【００６１】
ここで、case文６１１〜６１３の記述内容をフローチャート化した図を示す。図８は、図６に示したcase文６１１をフローチャート化した模式図、図９は、図６に示したcase文６１２をフローチャート化した模式図、図１０は、図６に示したcase文６１３をフローチャート化した模式図である。
【００６２】
図６〜図１０に示したように、同一変数に対して定数が異なるif-if文を、case文に書き換えることにより、書き換えられたあらたなハードウェア記述情報６００のパス総数ｐは、if文４０１のパス数Ｐ１と、case文６０２のパス数ｐ２との乗算となる。パス数ｐ２は、case文６１１のパス数ｐ１１（ｐ１１＝７本）と、case文６１２のパス数ｐ１２（ｐ１２＝２０本）と、case文６１３のパス数ｐ１３（ｐ１３＝１５本）と、if文６１４のパス数（ｐ１４＝２本）と、case文６０２の暗黙のdefault節によるパス数（１本）との和である。したがって、ハードウェア記述情報６００のパス総数ｐは、以下の通りである。
【００６３】
ｐ＝Ｐ１×（ｐ１１＋ｐ１２＋ｐ１３＋ｐ１４＋１）
＝５×（７＋２０＋１５＋２＋１）
＝２２５（本）
【００６４】
書き換え前のハードウェア記述情報４００のパス総数Ｐは６８８７０４０本であるため、書き換えによって、パス総数は約１／３００００に削減（圧縮）され、ハードウェア記述情報４００の最適化を図ることができる。
【実施例２】
【００６５】
つぎに、上述した実施の形態にかかるカバレッジ評価装置２００の実施例２について説明する。実施例２では、上述した記述ルール（２）『if文間、case文間、またはif文とcase文との間で入力条件が重複している記述があるか？』に合致する場合のカバレッジ評価について説明する。
【００６６】
パスカバレッジの計測単位内でcase文やif文の入力条件に重複がある場合についてもシミュレーションで絶対に起らないパスが発生する。図１１は、実施例２にかかるハードウェア記述情報を示す説明図である。ハードウェア記述情報１１００の左端に行番号を示す。図１１において、同一変数を入力条件とする２つのif文１１０１，１１０４と、if文１１０１に続くcase文１１０２，１１０３と、if文１１０４に続くcase文１１０５，１１０６とが記述されている。
【００６７】
ハードウェア記述情報１１００では、ともにin1を入力条件とする２つのif文１１０１、１１０４において、if文１１０１のthen節（［００２］）は、if文１１０４のelse節（［０２６］）に含まれるため、入力条件が重複している。同様に、if文１１０４のthen節（［０２４］）も、if文１１０１のelse節（［００４］）に含まれるため、入力条件が重複している。したがって、上述した記述ルール（２）に合致することとなる。なお、indを入力条件とする４つのcase文１１０２、１１０３、１１０５、１１０６においても、ind==3'h0では各case文１１０２、１１０３、１１０５、１１０６の先頭以外の分岐は同時に実行されることはあり得ない。
【００６８】
図１２は、図１１に示したハードウェア記述情報１１００をフローチャート化した模式図である。対応する箇所には、図１１の行番号（［ｘｘｘ］で表記）が付されている。パスカバレッジ測定ではすべて排他的にカウントされるため、このハードウェア記述情報１１００のパス総数Ｑは、if文のパス数Ｑ１と、case文１１０２のパス数Ｑ２と、case文１１０３のパス数Ｑ３と、if文１１０４のパス数Ｑ４と、case文１１０５のパス数Ｑ５と、case文１１０６のパス数Ｑ６との乗算となる。すなわち、ハードウェア記述情報１１００のパス総数Ｑは、以下の通りである。
【００６９】
Ｑ＝Ｑ１×Ｑ２×Ｑ３×Ｑ４×Ｑ５
＝２×４×８×２×４×８
＝４０９６（本）
【００７０】
一方、記述ルール（２）に合致するため、入力条件が重複しないようにハードウェア記述情報１１００を書き換える。図１３は、入力条件が重複しないように書き換えられたあらたなハードウェア記述情報を示す説明図であり、図１４は、図１３に示したハードウェア記述情報をフローチャート化した模式図である。図１４において、図１３の記述と対応する箇所には、図１３の行番号（［ｘｘｘ］で表記）が付されている。
【００７１】
図１１と図１３（または図１２と図１４）を比較すると、図１３のif文のthen節１３１１は、図１１のthen節［００２］およびelse節［０２７］をまとめた記述である。また、図１３のif文のthen節１３１２は、図１１のelse節［００４］およびthen節［０２５］をまとめた記述である。
【００７２】
また、図１３のcase文１３２１は、図１１のcase文［００７］、［０１４］、［０３０］および［０３７］をまとめた記述である。また、図１３のcase文１３２２は、図１１のcase文［００７］、［０１５］、［０３１］および［０３８］をまとめた記述である。また、図１３のcase文１３２３は、図１１のcase文［００８］、［０１６］、［０３２］および［０３９］をまとめた記述である。また、図１３のcase文１３２４は、図１１のcase文［００８］、［０１７］、［０３３］および［０４０］をまとめた記述である。
【００７３】
また、図１３のcase文１３２５は、図１１のcase文［００９］、［０１８］、［０３０］および［０４１］をまとめた記述である。図１３のcase文１３２６は、図１１のcase文［００９］、［０１９］、［０３２］および［０４２］をまとめた記述である。また、図１３のcase文１３２７は、図１１のcase文［０１０］、［０２０］、［０３２］および［０４３］をまとめた記述である。また、図１３のcase文１３２８は、図１１のcase文［０１０］、［０２１］、［０３３］および［０４４］をまとめた記述である。
【００７４】
この図１３に示した書き換え後のあらたなハードウェア記述情報１３００のパス総数ｑは、下記に示すように、if文１３０１のパス数ｑ１（図１４より２本）と、case文１３０２のパス数ｑ２（図１４より８本）との乗算となる。
【００７５】
ｑ＝ｑ１×ｑ２
＝２×８
＝１６（本）
【００７６】
書き換え前のハードウェア記述情報１１００のパス総数Ｑは、Ｑ＝４０９６（本）であるから、この論理最適化によりパス総数を１／２５６に削減（圧縮）することができる。
【実施例３】
【００７７】
つぎに、上述した実施の形態にかかるカバレッジ評価装置２００の実施例３について説明する。実施例３では、上述した記述ルール（３）『測定単位内で関連のないif文またはcase文からの出力が混在している記述があるか？』に合致する場合のカバレッジ評価について説明する。
【００７８】
図１５は、実施例３にかかるハードウェア記述情報を示す説明図である。このハードウェア記述情報１５００では、パスカバレッジの計測単位内でcase文やif文から出力される変数がそれぞれ独立しており、他の出力間で関連性がない。すなわち、図１５に記述されている各if文１５０１〜１５１４は、出力される変数oo、rc（rc＝r1〜ｒ8）、tx（tx＝t1〜t5）は、他のif文からの出力と混在していない。したがって、記述ルール（３）に合致することとなる。なお、if文がおのおの独立しているため、ハードウェア記述情報１５００は最適化する必要がない。
【００７９】
このハードウェア記述情報１５００のパスカバレッジ測定では、すべて排他的にカウントされる。１４個のif文１５０１〜１５１４のパス数ｒは、then節、elseif節、および暗黙のelse節からなる３本である。したがって、ハードウェア記述情報１５００のパス総数Ｒは、以下の通りである。
【００８０】
Ｒ＝ｒ14
＝３14
＝４７８２９６９（本）
【００８１】
一方、出力変数(oo，rc，tx)毎のパス数を合計する場合、出力変数ooのパス数をＲooとし、出力変数rcのパス数をＲrcとし、出力変数txのパス数をＲtxとすると、Ｒoo＝１、Ｒrc＝８、Ｒtx＝５であるから、パス総数Ｒ１は、以下のようになる。
【００８２】
Ｒ１＝３1＋３8＋３5
＝６８０９（本）
【００８３】
したがって、パス総数Ｒ１はパス総数Ｒの約１／７００に削減される。また、出力１ビット毎のパス数を合計する場合、パス総数Ｒ２は以下のようになる。
【００８４】
Ｒ２＝３×１４＝４２（本）
【００８５】
したがって、パス総数Ｒ２はパス総数Ｒの約１／１０００００に削減（圧縮）することができる。また、実施例３では、実施例１，２のようにハードウェア記述情報の記述内容の最適化は必要ないため、実施例１，２よりも効果的に検証期間の短縮化を図ることができる。
【００８６】
以上説明したように、カバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体によれば、論理シミュレーションの実行前に、ハードウェア記述情報のパス総数を削減することができる。したがって、論理回路のパスカバレッジ測定において、パス総数が膨大なハードウェア記述によるシミュレーションの実行を未然に防止して、検証期間の短縮化を図ることができるという効果を奏する。
【００８７】
なお、本実施の形態で説明したカバレッジ評価方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００８８】
（付記１）対象回路のハードウェア記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定手段と、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化する最適化手段と、
を備えることを特徴とするカバレッジ評価装置。
【００８９】
（付記２）前記判定手段は、
前記ハードウェア記述情報に記述されている条件分岐文が、case文と等価なif-if文であるか否かを判定し、
前記最適化手段は、
前記case文と等価であると判定されたif-if文をcase文に書き換えることによって、前記ハードウェア記述情報を最適化することを特徴とする付記１に記載のカバレッジ評価装置。
【００９０】
（付記３）前記判定手段は、
前記ハードウェア記述情報に記述されている複数の条件分岐文の入力条件が重複するか否かを判定し、
前記最適化手段は、
前記複数の条件分岐文の入力条件が重複しないように書き換えることによって、前記ハードウェア記述情報を最適化することを特徴とする付記１に記載のカバレッジ評価装置。
【００９１】
（付記４）前記最適化手段によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出手段を備えることを特徴とする付記１〜３のいずれか一つに記載のカバレッジ評価装置。
【００９２】
（付記５）前記最適化手段によって記述内容が最適化されたあらたなハードウェア記述情報を用いて論理シミュレーションを実行する実行手段と、
前記算出手段によって算出されたパス総数と、前記実行手段によって実行された実行結果と、に基づいて、前記対象回路のパスカバレッジを測定する測定手段と、
を備えることを特徴とする付記４に記載のカバレッジ評価装置。
【００９３】
（付記６）対象回路のハードウェア記述情報の入力を受け付ける入力手段と、
前記入力手段によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定手段と、
前記判定手段によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出する算出手段と、
を備えることを特徴とするカバレッジ評価装置。
【００９４】
（付記７）前記判定手段は、
前記ハードウェア記述情報に記述されている複数の条件分岐文のうち、一の条件分岐文からの出力変数が、他の条件分岐文からの出力変数に対して独立しているか否かを判定し、
前記算出手段は、
前記判定手段によって独立していると判定された場合、前記出力変数ごとのパス数に基づいて、前記ハードウェア記述情報のパス総数を算出することを特徴とするカバレッジ評価装置。
【００９５】
（付記８）前記判定手段によって判定された判定結果に基づいて、前記ハードウェア記述情報を用いて論理シミュレーションを実行する実行手段と、
前記算出手段によって算出されたパス総数と、前記実行手段によって実行された実行結果と、に基づいて、前記対象回路のパスカバレッジを測定する測定手段と、
を備えることを特徴とする付記７に記載のカバレッジ評価装置。
【００９６】
（付記９）対象回路のハードウェア記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化する最適化工程と、
を含んだことを特徴とするカバレッジ評価方法。
【００９７】
（付記１０）前記最適化工程によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出工程を含んだことを特徴とする付記９に記載のカバレッジ評価方法。
【００９８】
（付記１１）対象回路のハードウェア記述情報を入力する入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定する判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出する算出工程と、
を含んだことを特徴とするカバレッジ評価方法。
【００９９】
（付記１２）対象回路のハードウェア記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定させる判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報の記述内容を最適化させる最適化工程と、
をコンピュータに実行させることを特徴とするカバレッジ評価プログラム。
【０１００】
（付記１３）前記最適化工程によって記述内容が最適化されたあらたなハードウェア記述情報のパス総数を算出する算出工程をコンピュータに実行させることを特徴とする付記１２に記載のカバレッジ評価プログラム。
【０１０１】
（付記１４）対象回路のハードウェア記述情報を入力させる入力工程と、
前記入力工程によって入力されたハードウェア記述情報のパス総数が圧縮可能か否かを判定させる判定工程と、
前記判定工程によって判定された判定結果に基づいて、前記ハードウェア記述情報のパス総数を算出させる算出工程と、
をコンピュータに実行させることを特徴とするカバレッジ評価プログラム。
【０１０２】
（付記１５）付記１２〜１４のいずれか一つに記載のカバレッジ評価プログラムを記録したコンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１０３】
以上のように、本発明にかかるカバレッジ評価装置、カバレッジ評価方法、カバレッジ評価プログラム、および記録媒体は、論理回路のコードカバレッジに有用であり、特に、パスカバレッジに適している。
【図面の簡単な説明】
【０１０４】
【図１】この発明の実施の形態にかかるカバレッジ評価装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかるカバレッジ評価装置の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかるカバレッジ評価処理手順を示すフローチャートである。
【図４】実施例１にかかるカバレッジ評価装置に用いるハードウェア記述情報の一例を示す説明図である。
【図５−１】図４に示したハードウェア記述情報をフローチャート化した模式図（その１）である。
【図５−２】図４に示したハードウェア記述情報をフローチャート化した模式図（その２）である。
【図５−３】図４に示したハードウェア記述情報をフローチャート化した模式図（その３）である。
【図６】等価なcase文に書き換えられたあらたなハードウェア記述情報を示す説明図である。
【図７】図６に示したハードウェア記述情報をフローチャート化した模式図である。
【図８】図６に示したcase文６１１をフローチャート化した模式図である。
【図９】図６に示したcase文６１２をフローチャート化した模式図である。
【図１０】図６に示したcase文６１３をフローチャート化した模式図である。
【図１１】実施例２にかかるハードウェア記述情報を示す説明図である。
【図１２】図１１に示したハードウェア記述情報をフローチャート化した模式図である。
【図１３】入力条件が重複しないように書き換えられたあらたなハードウェア記述情報を示す説明図である。
【図１４】図１３に示したハードウェア記述情報をフローチャート化した模式図である。
【図１５】実施例３にかかるハードウェア記述情報を示す説明図である。
【符号の説明】
【０１０５】
２００  カバレッジ評価装置
２０１  入力部
２０２  判定部
２０３  最適化部
２０４  算出部
２０５  実行部
２０６  測定部
【図１】
2006201980.tif 000003
【図２】
2006201980.tif 000004
【図３】
2006201980.tif 000005
【図４】
2006201980.tif 000006
【図５−１】
2006201980.tif 000007
【図５−２】
2006201980.tif 000008
【図５−３】
2006201980.tif 000009
【図６】
2006201980.tif 000010
【図７】
2006201980.tif 000011
【図８】
2006201980.tif 000012
【図９】
2006201980.tif 000013
【図１０】
2006201980.tif 000014
【図１１】
2006201980.tif 000015
【図１２】
2006201980.tif 000016
【図１３】
2006201980.tif 000017
【図１４】
2006201980.tif 000018
【図１５】
2006201980.tif 000019