アサーションを利用した検証であるABVには、メリットだけでなく、当然、デメリットもある。デメリットが存在するとしても、結果的にはそれを超えるメリットがあるのだが、まずはデメリットについて紹介した上で、メリットとその大きさについて説明する。
まず、ABVのデメリットとしては、以下のような事柄が挙げられる。
一方、ABVのメリットは以下のとおりである。
図2に示したのは、従来のフローとABVのフローを工数の観点から比較したものである。この図は、ブロック設計のフェーズでアサーションを利用することを前提としている。このような条件において、アサーションのメリットをピンポイントで理解するのは難しい。ブロック設計のフェーズではアサーションを挿入する工数が追加されるし、シミュレーションのパフォーマンスが落ちて実行時間が延びるからである。
では、ABVのメリットとは、端的に言うとどういうことなのか。それは、以下のようにまとめることができる。
アサーションのいちばんのメリットは、プロジェクトの早期の段階で確度の高い検証を行うことにより、より早く安定した設計が得られることである
すなわち、「工数の削減」といったピンポイントのメリットではなく、プロジェクト全体で見た場合のメリットが大きいということだ。
限られた開発期間内に、新たな言語を習得するのは困難なことである。アサーション言語には多くのシンタックスが用意されているが、そのすべてを覚える必要はない。アサーションを用いて検証できる項目の80%は、アサーション言語が備えるシンタックスの20%で表現可能だと言われている(表1)。また、使用するシンタックスを制限することで、記述の理解が容易になり、再利用性が高いアサーションを記述できるとも言える。
この20%のサブセットで表現できない検証項目については、アサーションの記述を補助するためにVerilog HDLやVHDLといったHDL(ハードウエア記述言語)を利用することで対応できる。例えば、あるイベント数をカウントしたい場合には、HDLでカウンタを記述し、そのカウント値を、限られたシンタックスで記述したアサーションの中で参照するという方法をとればよい。また、値を記憶するためのメモリー変数をHDLで用意しておき、それをアサーション記述中で比較するといったことも可能だ(リスト3)。
なお、アサーションで使用する構文を制限することによって、本当に必要なことが記述できなかったり、間違ったアサーションを記述してしまったりするようでは本末転倒である。しかし、慣れ親しんだHDL記述をうまく利用すれば、豊富な表現が可能になることは理解しておきたい。
Copyright © ITmedia, Inc. All Rights Reserved.