メインコンテンツ

MATLAB および Simulink からの HDL コード生成を使用したシステム設計

この例では、MATLAB® アルゴリズムから Simulink® モデルと MATLAB Function ブロックを生成する方法を示します。その後、このモデルから HDL コードを作成できます。

HDL Coder® では MATLAB と Simulink の両方から HDL コードを生成できます。MATLAB で関数の HDL コードを生成すると、MATLAB コードから Simulink モデルと MATLAB Function ブロックを生成することもできます。この機能を使用して MATLAB アルゴリズムを Simulink モデルに統合できます。さらに、完全なシステムをシミュレートして最適化し、モデルから HDL コードを生成して、設計全体で FPGA をプログラムできます。

この例では、FIR フィルターを実装する MATLAB コードから MATLAB Function ブロックを生成します。

MATLAB アルゴリズムの確認

mlhdlc_fir の MATLAB コードはシンプルな FIR フィルターです。MATLAB テスト ベンチ mlhdlc_fir_tb はこのフィルターを実行します。

design_name = "mlhdlc_fir";
testbench_name = "mlhdlc_fir_tb";

テスト ベンチを使用してアルゴリズムの結果を検証

HDL コードの生成時に実行時エラーが発生しないことを確認するために、テスト ベンチを使用してアルゴリズムの結果を検証します。次のコマンドを入力します。

mlhdlc_fir_tb

新規プロジェクトの作成

HDL Coder プロジェクトを新規作成するには、次のコマンドを入力します。

coder -hdlcoder -new fir_project

[MATLAB 関数の追加] をクリックし、mlhdlc_fir.m を選択します。次に、[MATLAB テスト ベンチ] セクションで [ファイルの追加] をクリックして mlhdlc_fir_tb.m を選択します。

[ワークフロー アドバイザー] ボタンをクリックして HDL ワークフロー アドバイザーを起動します。

[MATLAB Function ブロック] オプションの有効化

MATLAB HDL 設計から MATLAB Function ブロックを生成するには、Simulink のライセンスが必要です。次のコマンドを実行して 1 が返される場合は、Simulink を使用できます。

license("test","Simulink")

HDL ワークフロー アドバイザーで [HDL コード生成] タスクを選択します。右側のペインで [詳細設定] タブをクリックして [Simulink モデルの生成 (Simulink のライセンスが必要)] チェック ボックスをオンにします。

浮動小数点から固定小数点への変換の実行とコードの生成

MATLAB Function ブロックを生成するには、設計を浮動小数点から固定小数点に変換します。

[HDL コード生成] のステップを右クリックし [選択したタスクまで実行] オプションを選択して、最初から HDL コード生成までのすべてのステップを実行します。

生成された MATLAB Function ブロックの検査

HDL コード生成が完了すると、生成されたモデルが開きます。これには MATLAB アルゴリズムから生成された固定小数点の MATLAB コードをもつ MATLAB Function ブロックが含まれています。HDL Coder ではモデルと MATLAB Function ブロックに設定が自動的に適用され、Simulink でシミュレートして HDL コードを生成することができます。

MATLAB Function ブロックから HDL コードを生成するには、次のコマンドを入力します。

makehdl("mlhdlc_fir_fixpt_MLFcnModel");

大規模な Simulink モデルで使用するために、ブロック名を変更して新しいブロックとして保存することができます。

参考

|

トピック