テストベンチ開発容易化環境Veraは、機能検証固有の要求に応えるために開発された直感的なオブジェクト指向プログラミング言語であるOpenVeraをベースとしています。Veraを使用することにより、ユーザはセルフチェックを行いながらリアクティブなテストベンチ生成を行う環境が容易に構築できるようになります。シミュレーション実行中は、ユーザによる機能カバレッジ定義に従った自動カバレッジ収集を行い、その結果をスティミュラス生成にダイナミックに反映させることが出来ます。カバレッジ結果のフィードバックを用いたこのような手法は、カバレッジ・ゴールに早く達するための最も容易で有効なメカニズムといえます。
●ダイナミックな信号印加とチェックの構造
Veraのダイナミックな信号印加とチェックの構造により、簡潔な記述で多彩な検証内容を記述可能です。中でも最も強力な構造の一つは、floating expectと呼ばれ、ある時間の枠内でダイナミックに変化する信号値の変化のモニタリングを可能にします。
●拡張されたコンカレント性の制御
上位レベルでの、イベント同期動作とイベント制御のメカニズム(セマフォ、メールボックス、Sync/Trigger 等)が組み込まれています。これらの機能は、共有の資源に対してランダムで同時に並行してアクセスする周辺ASICやシステムの動作間のモデル化を容易にし、プロセス間の情報伝達、プロセス間の競合の回避の記述ができます。
●効率的なメモリの取り扱い
Veraはメモリをダイナミックにアロケートします。そしてメモリを自動的に解放し、再利用します。これにより必要なメモリ容量が激減します。Associative arraysもVERAでサポートされ、アクセスされる時のみアレイの領域が割り付けられます。この方法はモデリングをキャッシュして、大きなアドレス空間が必要な時に最適です。
●デバイスに対する柔軟なインターフェイス
Veraには、回路で用いる全ての I/O、もしくは内部ノードを任意のクロックにおいて、任意のスキューを伴ってドライブ/サンプリングできます。クロックの本数に制限はなく、非同期な信号動作にも対応可能です。
●C言語の演算子をサポート
ユーザは、C言語の強力な算術演算/論理演算の機能を使用することができます。ZやXのデータ型はVerilog-HDLと同様に扱われます。
●既存のモデルとのリンクが可能
HDLやCあるいはC++で記述された既存のモデル、ユーザタスクを含めたシミュレーション環境を構築可能で、それらのモデル/タスクとのデータの授受、同期動作を完全にサポートします。
●拡張オブジェクト指向言語
列挙型、レコード、クラス、ガベージ・コレクション、再帰機能などが完全にサポートされ、コードの開発効率に最大の柔軟性を提供します。
●習得が容易なOpenVera言語ベース
オープンソースのハードウェア検証言語OpenVeraは、Verilog-HDL や C++ 言語に似たシンタックスとスタイルを持ち、ユーザは楽しく容易にOpenVera言語を習得することができます。