コード・カバレッジ・ツール(code coverage analyzer)は,論理シミュレーションで用いたテスト・パターンが検証対象回路のRTL(register transfer level)ソース・コードをどれだけ網羅したか(カバレッジ)を測定するツールである。

 コード・カバレッジ・ツールは,検証対象回路のRTLソース・コードにカバレッジ・モニタ用のコードを埋め込む部分,シミュレーション中にカバレッジ・データを抽出する部分,カバレッジ結果を表示する部分から成る()。市場にはすべてをGUIから行なえる製品と,カバレッジ結果表示用のGUIだけをもつ製品がある。

 コード・カバレッジ・ツールを使用すると,以下のような効果が期待できる。すなわち,カバレッジ結果を参考にすることで,論理シミュレーションを終了させる基準を明確にできる。さらに,未検証コードや不要コードが発見でき,テスト・パターンの品質向上や回路規模の縮小につなげられる。

 市販されているツールは,一般に複数のカバレッジを扱える。カバレッジの種類の名称は製品によって異なることもあるが,ここでは次のように分類した。

1)ライン・カバレッジ:ソース・コード1行ごとの実行回数をカウントする。1行に複数の記述がある場合は分割してカウントする。ただし「assign」文に対応できない製品もある。

2)ブランチ・カバレッジ:分岐条件の「true」または「false」をカウントする。

3)ブロック・カバレッジ:begin~endを1つのまとまりとしてカウントする。

4)パス・カバレッジ:ブロックからブロックへ遷移した経路をトレースしてカウントする。

5)コンディション・カバレッジ:条件式のとりうる状態を抽出しカウントする。解析する深さを指定することでカバレッジ率が大きく変化する。

6)トグル・カバレッジ:変数の「0」→「1」および「1」→「0」への変化をカウントする。

7)FSM(finite state machine)カバレッジ:状態の遷移をカウントする。状態の遷移順序を指定し発生回数をカウントする製品や,複数FSM間の状態の依存関係を調べることができる製品もある。

8)ユーザ指定カバレッジ:ユーザが指定した条件での状態の発生回数をカウントする。

 どのカバレッジをモニタするかは,目的によって選定する必要がある。測定項目が多いほどシミュレーション中にモニタする回数が増えるためシミュレーション時間が増大する。

 同様の理由で測定対象部分も選定する必要がある。また,RTL記述の方法や仕様によっては,100%のカバレッジを得ることができない場合がある。思うようにカバレッジが上がらないからといって,むやみにテスト・パターンを追加すると,冗長なテスト・パターンを作ってしまう恐れがある。パターンごとのカバレッジ結果を集計し,目標カバレッジに到達するためのパターンの組み合わせを検討する機能を備えた製品もある。


(99. 9. 6更新)

このEDA用語辞典は,日経エレクトロニクス,1996年10月14日号,no.673に掲載した「EDAツール辞典(NEC著)」を改訂・増補したものです。