HDL ベリフィケーション
ハードウェア開発において検証がボトルネックになってきていることは広く知られています。デザインはますます大規模化されており、
デザインとテストベンチに使用される言語も多様化してきています。これによって新たな課題が発生してきています。
異なった言語を組み合わせる際にインターフェース記述に工数をかけることのないように、シミュレータは全ての言語をネイティブに取り扱える必要があります。
設計と検証を統合して取り扱える環境も重要です。
デバッグと信号観測についても新しい要求を満たす必要があります。非常に大きなデータをユーザーからの指示に従って、数秒で反応する
必要があります。設計者は、他者によって作成されたデザインを分析、デバッグしなければならないことがあります。デバッグツールは、デザイン
の振る舞いを理解する手助けもできなくてはなりません。
検証環境で、検証対象デザインの振る舞いの観測だけでなく、それがどのようなテストをされたかを理解することが重要です。
これは、様々なカバレッジを行うおことが要求されます。
検証環境はまた、デザインの複雑化に伴って提案されている新しいメソドロジにも対応していなくてはなりません。その新しいメソドロジの一つに
アサーション・ベース検証があります。ファンクショナルカバレッジのカバー率を満たすことによって、デザインが意図した通りに実行されているかどう
かを確認することができ、高品質なデザインを作成することができます。
シミュレーションの長さとリグレッションテストにかかる時間が非常に大きくなってきています。Alec 社ではシミュレーション・ファームによる検証の並列
化とハードウェアアクセラレーションテクノロジーによりこの課題に対応しています。
上記の課題に対する下記のソリューションをご紹介します。
ハードウェアアクセラレータによるソリューション:
デザインが複雑化するにつれて、新しいメソドロジが提案されています。システムレベルでの検証手法やアサーション・ベース検証などがあります。
それらのメソドロジでは、新しい言語への対応が必要となります。例えば、SystemC、PSL、OVA、SystemVerilog などです。
この新しいメソドロジを活用する為には、使用する言語にシミュレータが対応しているて、容易に使用できなくてはなりません。
Aldec 社のシミュレータは、下記の通り市場で最も多くの言語をサポートしています。
- VHDL (IEEE 1076-1993)
- Verilog (IEEE 1364-2001)
- SystemVerilog (LRM 3.1)
- SystemC (LRM 2.0)
- EDIF 2 0 0
Aldec 社では、アサーション・ベース検証メソドロジをサポートすることを表明しています。シミュレータでは下記アサーション言語をサポートしています。
- PSL (LRM 1.1)
- OVA
- SystemVerilog; assertion subset (LRM 3.1)
上記言語で記述されたソースファイルは、どれでもコンパイルしてデザインライブラリに加えることができます。一つのライブラリ内に複数の言語で
記述されたユニットがあってもかまいません。シミュレータが起動されると、どのような言語で記述されたユニットであってもデザイン階層構造を作成します。
SystemC と HDL 間のインターフェースレイヤーを記述する必要はありません。HDL コード中にアサーション記述を加えるときも同様です。
このため Aldec 社のシミュレータは、最も多様化した使いやすい検証環境を構築することができます。
また、シミュレータは PLI/VHPI の IEEE 標準インターフェースを備えています。このインターフェースによって、サードパーティーのアプリケーション
やインハウスのアプリケーションを接続することが可能です。
関連製品: Active-HDL, Riviera-PRO, HES.
パワフルなデバッグ機能はデザイン全体の検証とピンポイントのエラー発見に必須です。設計者は、信号履歴、データフロー、階層構造、
ソースコードなどの情報に素早くアクセスする必要があります。デバッグ機能は、数百万規模のデザインでも素早く操作・実行できなけれ
ばなりません。さらに、デバッグ機能は、作成されたデザインの分析のために、デザインを作成したツールとの連携がとれていなくてはなりません。
HDL シミュレーションテクノロジーとデザインエントリツールとの両者のプロバイダである Aldec 社は、最も高機能なデバッグ環境を開発しています。
Active-HDL と Riviera-PRO では様々なタイプのオブジェクトとデータを調べることのできるツールを提供しています。波形ウィンドウ、
リストウィンドウでは信号履歴を表示します。データフローウィンドウでは、データの流れを表示します。メモリウィンドウでは、デザインで
使用されるメモリのモニターが可能です。シミュレーションは、イベントや信号に対してブレークすることもソースコード中にブレークポイントを設定することもできます。
シミュレーションを実行すると、デザイン作成で使用したブックダイアグラムエディタとステートマシンエディタは自動的にデバッグ機能として働きます。
ブロックダイアグラムの入出力部にプローブが立ち信号値を表示します。ステートマシンでは、実行中のステートがハイライト表示されます。
関連製品: Active-HDL, Riviera-PRO.
年毎にデザインの複雑化が進んでいます。その為、シミュレーション結果にも多くのデータが含まれてきます。信号観測に適したツールを使用
しないとシミュレーション結果の解析が難しくなってしまいます。Aldec 社は大規模、複雑なデータ構造に最適な信号観測ツールを提供しています。
信号観測ツールの最も一般的なものは波形ウィンドウです。波形ウィンドウは、信号履歴をタイミングの波形として表示します。このウィンドウ
は非常に大きなデータを処理する為に最適化されています。ウィンドウへの波形の表示は瞬時に実行されます。波形のスクロールやズームも
瞬時に行うことができます。信号履歴は、リストウィンドウでタブ形式で表示することもできます。波形ウィンドウとリストウィンドウは、一つの
ウィンドウに同時に表示されることができます。
信号観測ツールはデザインの構造とデータの流れも表示できなければなりません。この機能はデザインの理解には必須です。Aldec 社は
デザイン構造とデータの流れをグラフィカルに表示するデータフローウィンドウを提供しています。階層を超えて信号の発生元となるプロセスを
遡って解析することができます。
全ての信号観測ツールはクロスプローブが可能です。例えば、データーフローウィンドウに表示された信号から波形ウィンドウの該当する信号へ
のジャンプができます。そして、波形ウィンドウのイベントをクリックして、ソースコードのイベント発生源を表示されることができます。
関連製品: Active-HDL, Riviera-PRO.
テストベンチは、検証プロセスの基盤です。Aldec 社はテストセンチ作成を手助けするツールを提供しています。
テストベンチ作成のポピュラーで簡単な方法はシミュレーション波形を HDL でのスティミュラスとして記述することです。(もととなる波形はシミュレータ
から信号値をインタラクティブまたはコマンドから強制的に与えて作成することができます。パターンジェネレータによってカウンタやランダムスティミュラスの
発生なども可能です。) Aldec 社ではウィザードによってそのようなテストベンチ作成の自動化を提供しています。さらに、波形エディタによって、波
形の編集や一から作成することもでき、その波形からテストベンチを作成することができます。波形エディタは直感的に使用することができます。
Aldec 社のシミュレータは、VHDL/Verilog-HDL のサポートが市場で実証されており両者の LRM (Language Reference Manuals)
に準拠して実行します。これは、テストベンチ作成によく利用されるビヘイビア・レベルの構文、I/O ルーティーンなども含まれています。デバッグ機能は
そのようなコードのデバッグをサポートしています。ソースコードへのブックマークやブレークポイントの設計やウオッチウィンドウでサブプログラムの実行状況
やバリアブルの表示が可能です。
Aldec 社では新しいテストベンチ生成メソドロジをサポートしています。ファンクショナルカバレッジからのデータを HDL テストベンチにフィードバック
します。テストベンチは非常に柔軟性のある C/C++/SystemC で作成することもできます。
関連製品: Active-HDL.
デザインの振る舞いを波形で観測することは煩雑で時間がかかりエラーのもととなる作業です。この問題を解決するために、自動的なデザ
インチェックを手助けするための新しい言語が適用されています。Aldec 社では、その新しいアサーション言語、PSL、OVA、SVA を全て
サポートしています。PSL、OVA、SVA は HDL と同様にコンパイルしてデザインライブラリに追加することができます。アサーション言語は、
階層構造ツリーに表示され(失敗するとハイライト表示され)ます。シミュレータは、アサーションが失敗するとシミュレーションをストップまたは
ポーズされます。また、失敗レポートを生成して、継続することもできます。
関連製品: Riviera-PRO.
デザインの検証は、デザイン開発プロセスの大きな部分を占めています。デザインのリグレッションテストの実行に必要なテストベンチの数と
それに伴い実行時間も大きくなり、設計者はデザインがどれだけテストされたかの信頼できるフィードバックを必要としています。
Aldec 社のカバレッジ機能にはステートメント(ライン・ブランチ)カバレッジ、トグルカバレッジ、ファンクショナルカバレッジが含まれています。
ラインカバレッジは、デザインのどのコードがテストされたか、テストベンチで実行されなかったコードはどこかについての情報を提供します。
ブランチカバレッジは、コンディションによる分岐条件で同様の情報を提供します。ステートメントカバレッジ情報を得るためには、シミュレータ
のオプションを設定するだけですので、設計の工数にはほどんど影響しません。
トグルカバレッジは、デザインの信号についての情報をフィードバックします。トグルカバレッジは、シミュレーション中に値が設定されていない信号やエッジ
の立ち上がり・立下りのない信号をレポートします。トグルカバレッジの設定はステートメントカバレッジとほぼ同じですので、設計の工数にはほとんど影響しません。
Riviera-PRO にはファンクショナルカバレッジ機能も搭載されています。個々のステートメントや信号に注目するのではなく、ファンクショナルカバレッジは、
どの程度実際のデザインが機能的にテストされたかの情報を提供します。ファンクショナルカバレッジは、PSL、OVA、SVA で設計者によって記述さ
れた仕様に基づいて集計されます。その記述には抽象度の高い要求、テストシナリオ、エラーのケース、コーナーケースを含めることができます。
これらのカバレッジ結果は専用のウィンドウに表示されます。複数のシミュレーションで得られらカバレッジ結果はマージすることが可能です。
関連製品: Active-HDL, Riviera-PRO.
検証プロセスはデザインそのものの作成よりもむしろ複雑な場合があります。検証プロセスが複雑になっているため、HDL と C/C++ とを組み合
わせて検証することが増えてきています。C/C++ では HDL では記述が難しいファンクションや柔軟性があるためです。設計者は、SystemC と
SCV、C/C++ ベースの環境による検証を必要としています。
Aldec 社は、HDL デザインに C/C++ コードをプラグインしたり、C/C++ ベースのテストベンチに HDL デザインをインスタンスするソリューション
を提供しています。コンパイル済みの SystemC と SCV は、Active-HDL と Riviera-PRO で提供されています。SystemC モジュールは、
HDL ユニットと同様にデザインライブラリとして扱うことができます。HDL-SystemC 間のインターフェースは、シミュレーションカーネルでダイレクトに
サポートしています。その為、HDL-SystemC の統合はシームレスに行われ、ユーザーがケアする必要はありません。さらに、標準 PLI/VHPI インターフェースによって、C/C++ コードから HDL デザインを直接アクセスすることができます。HDL 信号のモニターとドライブが可能です。
C/C++ 作成をサポートするために、Aldec 社は作成、管理、デバッグの為のグラフィカルツールとウィザードを提供しています。
関連製品: Active-HDL, Riviera-PRO, HES.
検証プロセスで問題になるのは、リグレッションテストに必要な実行時間です。Aldec 社は、ソフトウェア・シミュレータとハードウェアボードの組み
合わせによってシミュレーション実行時間を大きく短縮化するソリューションを提供しています。検証済みのブロックがあれば、ハードウェアボード上
の FPGA に実装して、シミュレータとの連携された検証が可能です。
ハードウェアアクセラレーションは、ユーザーにとって気にしなくてよい部分です。たとえ、全ての論理合成可能な部分をハードウェアに実装したとしても、
設計者は通常ソフトウェアシミュレータで行っているシミュレーションと同じように検証することができます。デザインをハードウェアに実装すればするほど
全体の検証時間を短縮することができます。
関連製品: HES.
ハードウェア/ソフトウェア協調検証
ハードウェアコンポーネントはソフトウェアによるシステム検証を行わなければならない場合があります。HDL モデルは、システムバスに接続され、
マイクロプロセッサで実行されるソフトウェアによる検証を行う必要があります。
ソフトウェア記述量が増えてきている為に、システム全体の検証にかかる労力も増大してきています。ソフトウェアの CPU モデルは開発が難しくな
り、スピードも低下してしまいます。
この問題に対応するために、Aldec 社では、HES に実 CPU が搭載されたハードウェアボードが接続できる環境を開発しています。
例えば、 ARM 実チップとプログラムを HDL デザインが実装されたボードと連携して検証することが可能です。
ボードと HDL シミュレータはお互いに通信を行います。HDL シミュレータとの通信が必要とない場合には、実 CPU は実動作速度で実行されます。
シミュレーションは、デバッグのためにブレークすることができます。ソフトウェアデバッガによるソフトウェアのデバッグと HDL シミュレータによる HDL のデバ
ッグを同時に行うことが可能です。
関連製品: HES.
|