HDL Coder

パルス検出アルゴリズムのハードウェア アーキテクチャの図。

高位ハードウェア設計

300 以上の HDL 対応 Simulink ブロックと MATLAB 関数から選択してサブシステムを設計し、Stateflow チャート、Simscape モデル、ディープラーニング ネットワークを追加できます。設計のハードウェア動作のシミュレーションと代替アーキテクチャの検討を行い、固定小数点データ型、浮動小数点データ型、あるいはその両方を組み合わせて、合成可能な Verilog、SystemVerilog、または VHDL の生成を行います。 

合成可能な HDL から FPGA および ASIC までのワークフローを説明する図。

ベンダーに依存しないターゲティング

主要なベンダーの FPGA をターゲットに最適化された合成可能な RTL を生成し、ASIC でも使用できます。プロトタイプと量産コードの生成に同じモデルを再利用します。

FIR フィルター用の完全並列アーキテクチャおよび完全パイプライン アーキテクチャを示す図。

設計の最適化

RTL 実装にコミットする前に、さまざまなハードウェア アーキテクチャと固定小数点の量子化オプションを検討します。リソース共有、パイプライン化、遅延の均衡化などの高位合成の最適化を使用して、ロジック、DSP、RAM などのデバイスリソースに効率的にマッピングします。

FPGA を搭載した開発ボード。

FPGA ベースのデバイス

FPGA および SoC デバイスに効率的にマッピングされる RTL を生成します。汎用ボード向けハードウェア サポート パッケージを使用して入出力をデバイスレベルの I/O および AXI レジスタにマッピングするか、独自のカスタムリファレンス設計を定義します。

ASIC をターゲットとする MATLAB および Simulink アルゴリズム展開の処理手順。

ASIC ワークフロー

アナログ、デジタル、およびソフトウェアが混在するシステムのコンテキストにおいて、アーキテクチャと高位のハードウェア機能の設計および検証を行います。高い結果品質 (QoR) を持つ RTL や、Cadence® Stratus HLS で使用する合成可能な SystemC を生成します。

ダッシュボードカメラからの静止画とともに表示された動画処理用の Simulink モデルおよびロジックアナライザー。

アプリケーション開発

Wireless HDL Toolbox のサブシステムやブロックを使用して、通信アルゴリズムを設計します。また、Vision HDL Toolbox を使用して、画像処理アルゴリズムのストリーミング実装を開発します。複雑な低レイテンシのモーター制御システムを実装します。 

フレームからサンプルへの自動変換を行うための高水準のワークフロー図。

ハードウェアの設計

ストリーミングデータに対して効率的に機能するアルゴリズムを開発します。HDL 対応の Simulink ブロック、カスタムの MATLAB Function ブロック、および Stateflow チャートを使用してハードウェア アーキテクチャの詳細を設計します。

FPGA ブロックを表示する Simulink モデルの上に重ねられた Speedgoat FPGA I/O ボード。

リアルタイム シミュレーションおよびテスト

HDL ワークフロー アドバイザーを使用して Speedgoat のプログラム可能な FPGA I/O モジュールをターゲットとします。Simulink Real-Time を使用してシミュレーションするか、dSPACE および NI の FPGA I/O モジュールを追加して使用します。ネイティブ浮動小数点 HDL コードを生成し、高精度プロトタイピングのワークフローを簡略化します。 

HDL Verifier とその ASIC Testbench アドオンの機能を示す図。

早期検証

主要な HDL シミュレーターとのコシミュレーションを使用して、生成された HDL を MATLAB および Simulink のテストベンチで検証します (HDL Verifier が必要)。 

「Simulink を使用することで、システムアーキテクトとハードウェア設計者の間のコミュニケーションがスムーズになります。Simulink という共通言語のおかげで、私たちは知識、アイデア、設計を交換することができます。Simulink と HDL Coder により、VHDL 構文とコーディングルールのチェックに時間をかけることなく、アルゴリズムの開発と、シミュレーションを介した設計の微調整に注力することができます。」

HDL Coder に関するよくある質問 (FAQ)

HDL Coder は、FPGA プログラミング、ASIC プロトタイピング、および量産設計向けに、MATLAB 関数、Simulink および Simscape モデル、Stateflow チャートから移植や論理合成が可能な Verilog、SystemVerilog、および VHDL コードを生成するコード生成ツールです。また、HDL Coder は Cadence Stratus HLS と連携し、合成可能な SystemC コードを生成します。

HDL Coder は FPGA、SoC、および ASIC 向けの高位設計を可能にします。

HDL Coder は、300 以上の HDL 対応 Simulink ブロックと MATLAB 関数、さらに Stateflow チャートと Simscape モデルをサポートします。

はい。HDL Coder は、固定小数点データ型、浮動小数点データ型、または両者の組み合わせを使用して、合成可能な HDL を生成できます。

HDL Coder では、速度と面積の最適化、クリティカルパスの強調表示、合成前のリソース使用量の推定を行えるほか、リソース共有、パイプライン化、遅延の均衡化などの高位合成の最適化を使用できます。

HDL Coder は、Simulink モデルと生成された Verilog、SystemVerilog、VHDL コードとの間のトレーサビリティを提供し、DO-254 やその他の標準に準拠した高信頼性アプリケーションのコード検証を行うことができます。

はい。HDL Coder は ASIC ワークフロー向けに PPA (Power-Performance-Area) 対応 RTL を生成します。また、Cadence Stratus HLS で使用するための合成可能な SystemC も生成できます。

はい。HDL Coder は FPGA ボードにおける生成されたコードのプロトタイピングを自動化し、ASIC および FPGA ワークフロー用の IP コアを生成するワークフロー アドバイザーを備えています。