DVCon Paper: Assertion-Based Verification For Mixed-Signal Designs

By Richard Goering on March 10, 2011

(この記事は、DVCon Paper: Assertion-Based Verification For Mixed-Signal Designs超訳です)

デジタル設計者と検証エンジニアもアサーションベースの検証手法の有効性については、何度も主張している。なぜ、アナログ/ミックスドシグナルには広がらないのだろう? CadenceはDVCon2011において、アサーションベースの検証手法をアナログ/ミックスドシグナルに適用した例を発表した。

Cadence社のDon O'Riordan, Prabal Bhattacharya, Walter Hartongが、"Mixed Signal Assertion-Based Verification"と言うタイトルで発表した。プレゼンテーションしたのは、Cadence Virtuoso PlatformのシニアアーキテクトであるDon O'Riordanである(この論文を含め、他の論文もDVConのサイトから閲覧することができる)。

プレゼンテーションの中で、Donはアサーションベースの検証手法のメリットについて述べ、PSL(Property Specification Language)とSVA(SystemVerilog Assertion)をどうやってミックスドシグナルの世界に展開するか、を示した。ΣΔADCを用い、アサーションをシミュレーションに適用した例をしめした。ここで、Donは波形を単に見つめるよりをアサーションを用いたほうがデバッグが容易であることを示した。

Why Assertions Improve Verification -- なぜ、アサーションは検証を改善するのか?

Donが説明したように、アサーションは望ましい動作と望ましくない動作を記述するものである。あるイベントの後か、もしくはある時刻での信号が常に(もしくは、決して)trueであったり、もしくはtrue(逆にuntrue)になったり、と言う条件を記述する。シミュレーションでは、アサーションにトリガがかかったときに、エラーを直ちに捕捉できる。すなわち、このエラーが出力に出てくるのを待つ必要もないし、波形を見る必要もないのである。さらに、アサーションは、ドキュメンテーション、観測性、制御性、カバレッジも向上させる。

各社は、それぞれのアプローチでミックスドシグナルアサーションを開発しているが、標準のアプローチが最もよい、とDonは言っている。彼は、二つの標準化グループを紹介した。両方共Accelera Verilog-AMSの寄与によるものであり、アナログ/ミックスドシグナルでのアサーションを標準化しようとしている。

  • ASVA(Analog System Verilog Assertions)委員会は、SystemVerilogのサブセットであるSystemVerilog AssertionsへのAMSの拡張を進めている。
  • SV-AMS(SytemVerilog AMS)委員会は、SystemVerilogそのものに対して、AMS拡張をしようとしている。このグループはASVAの結果を反映している。

どちらの委員会でも、SystemVerilogに"real"なデータ型を持ち込む必要性がある。「realデータをサポートしたときには、どんなスゴイことが起こるのか想像つかない」とDonは、言っている。今日、Cadence IncisiveのSVA(SystemVerilog Assertions)には、realデータタイプがBooleanの拡張として実装されている。これにより、AMSでのアサーションも可能となっている。

一方で、PSLは言語に依存しないものであり、アナログ/ミックスドシグナルに異なった付加価値をもたらす可能性がある、とDonは指摘する。彼は、ミックスドシグナルアサーションで、PSLが有効に機能するために、"アナログオブジェクトをPSLのBoolean層に持ち込むこと", "ミックスドシグナルシミュレータにおいて、アナログのイベントを可能にすること", "Verilog-AMSのwrealデータタイプを活用すること(これは、Cadenceが標準化委員会に出した改善事項に基づくものである)"が必要だと述べている。

Making Sure an Integrator Integrates -- 積分器の実装を検証する

ミックスドシグナルアサーションの単純な例がΣΔADCの例として示されている。このADCは積分器を含んでいる。この積分器が正しく実装されていることをどうやって検証すればよいだろうか? 現在の出力と入力が共に正であれば、次の出力も正の値になるだろう(逆に全てが負であっても同じ)。そこでDonは、「積分器は、常に正負の符号を保持しべているべきだ、と言うアサーションを書くことができる。それにより、ノイズを含んだデジタルのネットを接続しても、混乱するようなことにはならない。

論文で指摘されているように、このPSLのアサーションは、入力が正の値である時に、次のサイクルでの積分器の出力は正である、と、どのサイクルでもテストされる。

pos_integ1: assert always { i1_inputs_pos } |=> i1_pos;

もし、アサーションが満たされなかった場合、シミュレータは確実に指摘することができる。Donは、「アサーションベースでシミュレーションを検証していれば、波形にバイオレーションが見つかった場合に、大きなフラグを見つけることができる。このフラグが、回路デバッグの際に、波形をじっと見つめる従来のやり方よりも、非常に有用なものである。

さらに、デジタルのエンジニアがやっているように、ミックスドシグナルエンジニアもアサーションでどれだけアナログ値をカバーできているかがわかる。これにより、ミックスドシグナルの世界にもメトリックドリブン検証の考え方を持ち込むことができる。さらに、検証プランにフィードバックできる単体のカバレッジレポートを得ることができる。

Mixed-Signal Assertions in Cadence Tools -- Cadenceツールでのミックスドシグナルアサーションの取り組み

Donは、DVConのプレゼンテーション中で、Cadenceツールのことには触れなかった。そこで、私はCadenceツールがどの程度アナログ/ミックスドシグナルアサーションをサポートしているのか聞いてみた。以下はほんの一部だが、Virtuoso-AMS製品での対応状況である。

  • Assertions on wreal data types using PSL
  • Assertions on real data types using SVA
  • Coupling of real and wreal data types to analog simulator kernel objects
  • Verilog-AMS expressions in the Boolean layer of PSL
  • Ability for analog signal transitions to clock assertion expressions in PSL
  • Support for coverage measurements on PSL assertions

全てのSoCはミックスドシグナルである。そのため、ますますアサーションが重要になってくるだろう。そのため、Donは「アナログ/ミックスドシグナルアサーション実現のために、PSA、SVAに標準化していこう」と述べた。

Richard Goering