C ベースデザイン
設計デザインがますます複雑化している今日、C をベースとしたデザインフローがポピュラーになってきています。このフローでは、デザインはまず C、C++、SystemC で非常に抽象度の高いシステムレベル記述でモデリングされます。システムレベル記述は、よりシンプルで、理解しやすく、修正もより簡単な為です。シミュレーションも短時間で実行可能で、不必要な詳細は割愛することができます。システムレベル記述は、ハードウェア実装部とソフトウェア部にパーティショニングされ、ハードウェア実装部は、HDL へ記述されます。
Aldec 社は、これまでの顧客との関係から、ハードウェア設計者に C ベースフローのベネフィットをもたらせるように取り組んでいます。その経験からのソリューションによって C/C++ モデルと HDL モデルを組み合わせた高速な検証環境を提供しています。CPU モデルなどのサードパーティーからの C/C++ モデルを簡単にプラグインすることができます。Aldec 社では、このフローに関するソフトウェア・シミュレータだけでなくハードウェア・アクセラレーション・テクノロジーによるソリューションも提供しています。.
ソフトウェア・シミュレータによるソリューション:
ハードウェア・アクセラレーション・テクノロジーによるソリューション:
容易なセットアップと使い勝手
C ベースフローのセットアップに必要なツールを Active-HDL、Riviera-PRO
と一緒にご提供しています。各製品のインストールには下記が含まれています。
- 各製品で使用可能な C/C++ コンパイラ
- コンパイル済み SystemC ライブラリとライブラリヘッダーファイル
- コンパイル済み SystemC Verification Library (SCV) とライブラリヘッダーファイル
上記ツールにより C アプリケーションのコンパイルを容易に行えます。設定されたディレクトリにコンパイルデータやライブラリがリンクされます。
C/C++/SystemC から HDL 記述への移行
C/C++/SystemC で記述されたシステムレベルモデルは、より詳細な記述に移行されなければなりません。Active-HDL と Riviera-PRO
は、このプロセスを手助けします。言語テンプレートと SystemC トランザクタ生成ウィザードなどの各種ウィザードをご用意しています。
この移行プロセスは段階的に行われます。システムレベル検証で使用した C ベースのテストベンチを HDL
検証対象モデルと組み合わせて使用することがしばしばあります。その為、シミュレータが C/C++/SystemC と HDL
の協調検証が可能であることは非常に重要です。SystemC をネイティブサポートしています。SmartModel などのサードパーティーの C
モデルを組み込むことが可能です。また、標準 PLI/VHPI インターフェースをご用意しています。
SytemC をシミュレーションカーネルでサポートされている全ての HDL 言語とシームレスに統合することができます。SytemC
コンポーネントはデザインライブラリに追加することができ、HDL 内にインスタンスすることができます。また、SystemC 内に HDL
をインスタンスすることも可能です。外国語である HDL モデルと SytemC との翻訳に必要な宣言を伴った C++ ヘッダーファイルは自動的に生成されます。
SystemC オブジェクトは、元々は HDL 用に設計されたデバッグ機能を利用して解析することができます。SystemC
モジュールは、デザイン階層に表示され、SytemC 信号履歴は、シミュレーションデータベースに保存されます。これは、一般的な C/C++
デバッガと同じ感覚で、デバッグプロセスを行うことができるということです。
関連製品: Active-HDL, Riviera-PRO.
シミュレータに HDL デザインに C/C++ モデルをプラグインすることができます。典型的な例としては、C/C++ の CPU
モデルがあります。そのようなモデルは、例えば、Xilinx 社などの多くのシリコンベンダから提供されています。Xilinx 社のライブラリには、C/C++
モデルの PowerPC コアがあります。その C/C++ モデルは、HDL コンポーネントと通信可能で、PowerPC
用にコンパイルされたデータを実行します。
関連製品: Active-HDL, Riviera-PRO.
C/C++/SystemC でテストベンチを記述することはよくあります。C/C++ は 制約のランダム発生などの HDL
では、記述が難しい、または記述できないような機能を作成できます。さらに、システムレベル検証で C/C++ モデルにしようした C/C++
テストベンチは、開発のすべてのステージで再利用することができます。
Active-HDL、Riviera-PRO をインストールするとデフォルトで SytemC Verification Library (SCV)
がインストールされます。設計者は、直ちに SytemC テストベンチ作成に取り掛かることができ、環境のセットアップや HDL と C/C++
インターフェースレイヤーの作成などに悩まされることはありません。
関連製品: Active-HDL, Riviera-PRO.
Aldec 社のシミュレータは、標準の C/C++ インターフェースを備えています。VHDL には VHPI、Verilog-HDL には、PLI
インターフェースを提供しています。このインターフェースは、IEEE によって標準化されています。C/C++
コードをシミュレーションモデルにつなげることができます。
VHPI や PLI インナーフェースを使用するアプリケーションは、Aldec 社やサードパーティーから提供されています。もちろんご自分で
VHPI、PLI アプリケーションを作成することも可能です。それらのアプリケーションは、シミュレータと通信し、シミュレーション結果の視覚化、HDL
モデル内で信号のシミュレーションが可能です。
関連製品: Active-HDL, Riviera-PRO.
FPGA を搭載したハードウェアボードによって、シミュレーション実行時間を大幅に短縮することができます。論理合成可能なパートを FPGA
チップに実装することにより HDL シミュレータの負荷を軽減します。シミュレーション実行中は、シミュレータは FPGA ボードとがお互いに通信します。
デザイン全体が論理合成可能で、FPGA に実装した場合、テストベンチのみが HDL
シミュレータで処理されることになります。しかしながら、テストベンチがボトルネックになり、全体の検証パフォーマンスに制限をかけてしまう場合があります。
Aldec 社の提供するハードウェア・アクセラレーション環境は、C/C++
テストベンチを使用してハードウェアアクセラレータを実行することによりこの制限を取り除きます。
C/C++ コードでは、FPGA アーキテクチャに実装できにないブロックなどがあります。典型的な例としては、ASIC
メモリです。ハードウェアボード上の外部メモリにデザインで使用するメモリをマッピングすることができます。
関連製品: HES.
ハードウェアコンポーネントはソフトウェアによるシステム検証を行わなければならない場合があります。HDL
モデルは、システムバスに接続され、マイクロプロセッサで実行されるソフトウェアによる検証を行う必要があります。
ソフトウェア記述量が増えてきている為に、システム全体の検証にかかる労力も増大してきています。ソフトウェアの CPU
モデルは開発が難しくなり、スピードも低下してしまいます。
この問題に対応するために、Aldec 社では、HES に実 CPU
が搭載されたハードウェアボードが接続できる環境を開発しています。例えば、 ARM 実チップとプログラムを HDL
デザインが実装されたボードと連携して検証することが可能です。
ボードと HDL シミュレータはお互いに通信を行います。HDL シミュレータとの通信が必要とない場合には、実 CPU
は実動作速度で実行されます。シミュレーションは、デバッグのためにブレークすることができます。ソフトウェアデバッガによるソフトウェアのデバッグと HDL
シミュレータによる HDL のデバッグを同時に行うことが可能です。
関連製品: HES.
|