News and Views 2016 Summer / Vol. 18: 上流設計&組込み

Accelleraによる標準化が進むポータブルスティミュラス

はじめに

Accellera Systems Initiative(以下Accellera)によって標準化されたUVMは、手書きでテストスティミュラスを記述していた時代から、制約付きランダムテスト生成や機能カバレッジをテストベンチに実装して検証を自動化する時代への変遷を支えた技術、メソドロジとして機能検証の生産性向上に大きな役割を果たしています。現在、その生産性をさらに向上させるものとして期待されているテストとスティミュラスのポータビリティを最大化するSoC検証手法をAccellera標準として作成すべく、2014年12月15日、Accelleraは仕様策定のためのワーキンググループとなるPortable Stimulus Working Groupを発足させました。

ポータブルスティミュラスの概要

同ワーキンググループが策定しているポータブルスティミュラスと呼ばれる標準には、SoCやその構成要素となるIP、ソフトウェアなどを検証対象とするユースケースシナリオを定義するためのコンセプト、言語、セマンティクス、シンタックスが含まれます。策定に当たっては、ユースケースシナリオをビジュアライズすることで仕様を共有し、理解、議論するという要件も考慮されています。

図1.は同標準の対象スコープ、対象ユーザ、検証環境、プラットフォーム、標準が果たす主な役割を示したものです。SoCではソフトウェアがハードウェアを駆動する重要な要素となるため、スコープにはミドルウェア、ドライバ、OS、ベアメタルやSoC HW/SWシステム、SoCサブシステム、IPが含まれます。同ワーキンググループではこれを「垂直方向のポータビリティ」という言葉で表現しています。検証環境には、UML/SysML、SystemC、UVM、C++、AMSが、検証環境を実行するエンジンやプラットフォームには、仮装プラットフォーム、シミュレータ、エミュレータ、FPGAプロトタイプ、実シリコン搭載ボードなどが含まれます。これらは、「水平方向のポータビリティ」となります。

図1. Accelleraが策定中のポータブルスティミュラス図1. Accelleraが策定中のポータブルスティミュラス

SoCを開発する場合、製品企画に基づいた単一の仕様に沿って開発されていきますが、その構成やコンフィギュレーション、性能や消費電力といった要件が相まることにより、マルチコアを含めたアーキテクチャ検討と最適化、ハードウェアやソフトウェアの実装、解析、検証などさまざまな作業分野と付随する工程が派生し、実に多くのエンジニアが関与することになります。ポータブルスティミュラスは、そのようなそれぞれ異なる役割を担った数多くのエンジニアにユースケースシナリオという共通のビューを提供するものです。

ユースケースシナリオから、それぞれの作業分野で使用される言語や手法が自動生成されます。例えば、マルチコアSoCに対して、ユースケースシナリオから自動的にソフトウェアを生成することも可能です。機能検証であれば、UVMの複数のシーケンサを駆動することになるでしょう。また、ユースケースシナリオからの自動生成は静的なものに限られません。SoCの内部ステートは外部テストやソフトウェアによって活性化され、刻々と変化します。その時の内部ステートに対する動的なテスト生成や、入力空間のカバレッジ状況に応じた重複のないテストの自動生成も可能です。

図2. グラフによるシナリオ指定の概念図2. グラフによるシナリオ指定の概念
図3. グラフのコード記述例図3. グラフのコード記述例

グラフベースによるアプローチ

Accelleraで議論されているユースケースシナリオの指定方法に、グラフベースのアプローチがあります。グラフを宣言的に表現し、実行される個々の動作をaction(アクション)として実装します。またresource(リソース)、component(コンポーネント)、flow(フロー)などのオブジェクトを、対象プラットフォームに適切なテストを生成する際のルールや制約として用います。これによりテストの抽象度を上げるだけでなく、ランダム生成の柔軟性を高めます。

図2.は、データをUSBポートもしくはモデムポートで受信し、受信し終わったデータをビデオデコーダでデコードする単純なシステムのシナリオをグラフベースで表したものです。データをUSBポートで受信した場合にはDMA転送のみがデータ転送としての選択肢となりますが、モデムポートで受信した場合にはDMA転送とメモリコピーがサポートされます。

言語としては最終的なものではありませんが、このグラフは図3.に示すコードのような記述として表現されます。

DMA xferなどのアクションは、UVMのシーケンスで実装することも、あるいは実存するC++記述で実装することも可能です。アクション記述はあくまでも宣言的であり、階層化が可能です。またターゲットプラットフォームによって異なる実装を割り当てることができるため、前出の「水平方向のポータビリティ」が実現できます。

商用実績によって加速する標準化

業界標準を策定する上で、すでに実績のある商用ツールの手法や言語を応用することは、標準化作業を加速する上で欠かせません。ここまで読み進めてきた方の中には、メンター・グラフィックスのQuesta inFactやQuesta iSDVというソリューションを思い浮かべた方も多いことでしょう。また実際にプロジェクトで使用されている方もいらっしゃるでしょう。Portable Stimulus Working Groupでは、メンター・グラフィックスを始めとするメンバー企業の様々な言語や手法の実績をベースに、標準化の議論が行われています。

この新標準がどれほどの生産性向上をもたらすか今の段階では推し量ることは困難ですが、あくまでも参考としてQuestaによるグラフベースによるユースケースシナリオによる機能検証の事例をご紹介します。あるネットワーク企業の事例では、従来3,175 CPU時間を要していた制約付きランダムテストの環境にQuesta inFactのグラフベースによるテストシナリオを適用したところ、48 CPU時間で達成できました。また別のある家電メーカーの事例では、6 CPUで8週間シミュレーションした後、ターゲットカバレッジが60%で留まる状態となっていましたが、Questa inFactを用いて内部ステートに対する動的かつ、入力空間のカバレッジ状況に応じた重複のないテスト自動生成に切り替えたところ、同じ6 CPUを用いてわずか36時間で100%のターゲットカバレッジが得られました。

今後の動き

Accelleraは、半導体ベンダ、EDAベンダ、システムユーザ、コンサルティング会社などから構成されており、半導体や半導体を用いたシステム開発に関する技術やメソドロジを標準化しています。EDAベンダはツールへの実装実現性を評価し、半導体ベンダやシステムユーザ、コンサルティング会社はSoC開発や機能検証に求められる要件を満たす標準であるかどうかを評価します。

ポータビリティスティミュラスの標準化に向けては、仕様のドラフト版レビューや実現可能性の見極めなどのマイルストーンを経て、2017年1月の初版リリースを目指して作業が進められています。