Main Content

Speedgoat Simulink プログラム可能 I/O モジュールでの FPGA プログラミングと構成

この例では、HDL ワークフロー アドバイザーを使用して Simulink® アルゴリズムを Speedgoat® Simulink プログラム可能 I/O モジュールに実装する方法を説明します。Simulink Real-Time FPGA IO ワークフローを実行して、次を実行します。

  1. FPGA I/O モジュールとそのインターフェイスを指定します。

  2. FPGA プログラミング用に Simulink アルゴリズムを合成します。

  3. Simulink® Real-Time™ インターフェイス サブシステム モデルを生成します。

インターフェイス サブシステム モデルには、FPGA をプログラミングし、リアルタイム アプリケーションの実行中に PCIe バスを介して FPGA モジュールと通信するブロックが含まれます。生成したサブシステムを Simulink Real-Time ドメインのモデルに追加します。

この例では Speedgoat IO397-50k モジュールを使用します。HDL ワークフロー アドバイザーでの Speedgoat FPGA のサポートを参照してください。

セットアップと構成

アルゴリズムを Speedgoat IO モジュールに展開する前に、以下を行います。

1. HDL の言語サポートおよびサポートされるサードパーティ製ツールとハードウェアにリストされている Xilinx® Vivado® の最新バージョンをインストールします。

次に、関数hdlsetuptoolpathを使用して、インストールした Xilinx Vivado 実行可能ファイルへのツール パスを設定します。

hdlsetuptoolpath('ToolName','Xilinx Vivado','ToolPath','C:\Xilinx\Vivado\2019.2\bin\vivado.bat')

2.リアルタイム シミュレーション用に、開発環境とターゲット コンピューターの設定を行います。Get Started with Simulink Real-Time (Simulink Real-Time)を参照してください。

3.Speedgoat ライブラリおよび Speedgoat HDL Coder Integration Package をインストールします。Install Speedgoat HDL Coder Integration Packages を参照してください。

HDL ワークフロー アドバイザー

HDL ワークフロー アドバイザーは、HDL コード生成および FPGA 設計のプロセスをサポートします。このアドバイザーを使用して以下のことを行います。

  • モデルに HDL コード生成との互換性があるか確認し、非互換の設定を修正。

  • HDL コード、テスト ベンチ、およびそのコードとテスト ベンチをビルドして実行するスクリプトを生成。

  • 合成およびタイミングの解析を実行。

  • 生成されたコードを SoC、FPGA、Speedgoat I/O モジュールに展開。

モデル内のサブシステムに対して HDL ワークフロー アドバイザーを開くには、関数hdladvisorを使用します。

load_system('sschdlexTwoLevelConverterIgbtExample')
hdladvisor('sschdlexTwoLevelConverterIgbtExample/Simscape_system')

アドバイザーの左側のペインには、関連タスクのグループを表すフォルダーが含まれます。フォルダーを展開してタスクを選択すると、そのタスクに関する情報が右側のペインに表示されます。右側のペインには、詳細設定パラメーターに対してタスクを実行するための単純なコントロールと、HDL コードとテスト ベンチの生成を制御するオプション設定が含まれます。各タスクの詳細については、そのタスクを右クリックし、[これはなに?] を選択します。HDL ワークフロー アドバイザーのご利用の前にを参照してください。

Simulink ループバック ドメインのモデル

このモデルが FPGA ドメインのモデルです。これは FPGA ボードのクロックのシミュレーションのサンプル レートを表します。loopback サブシステムには、FPGA を読み込むアルゴリズムが含まれます。データ型とモデルの入力行数と出力行数は、Speedgoat IO397-50k プラットフォームに合わせて設定されます。

open_system('hdlcoder_slrt_loopback')
set_param('hdlcoder_slrt_loopback', 'SimulationCommand', 'Update')

Speedgoat IO397 プラットフォームの Simulink Real-Time インターフェイス モデルの生成

1. loopback サブシステムの HDL ワークフロー アドバイザーを開きます。このサブシステムは FPGA に読み込まれます。

hdladvisor('hdlcoder_slrt_loopback/loopback')

2.[ターゲットを設定] フォルダーを展開します。[ターゲット デバイスおよび合成ツールを設定] タスクで、[ターゲット ワークフロー] を [Simulink Real-Time FPGA I/O] として、[ターゲット プラットフォーム] を [Speedgoat IO397-50k] として指定します。[ターゲットのリファレンス設計を設定] タスクを右クリックし、[選択したタスクまで実行] を選択します。

3.[ターゲット インターフェイスを設定] タスクで、端子 hwInhwOutIO397_TTL [0:13] および pciRead C0-C4 にマッピングし、pciWrite C0-C4PCIe interface にマッピングします。[このタスクを実行] をクリックします。

4.既定値が [ターゲット周波数 (MHz)] に設定されている [ターゲット周波数を設定] タスクを実行します。ターゲット周波数は、範囲 [周波数範囲 (MHz)] 内でなければなりません。

5.[ターゲットにダウンロード] タスクを展開します。[Simulink Real-Time インターフェイスの生成] タスクを右クリックして [選択したタスクまで実行] を選択します。

このタスクは RTL コード、IP コア、FPGA ビットストリーム、および Simulink Real-Time インターフェイス モデルを生成します。[プロジェクトを作成] タスクで、Vivado プロジェクトを開いて、実装されているブロック設計を確認します。

Real-Time サブシステムの統合と実行

[Simulink Real-Time インターフェイスの生成] タスクが成功したら、リンクをクリックして Simulink Real-Time インターフェイス モデルを開きます。

Simulink Real-Time インターフェイス モデルには、Simulink FPGA ドメインのモデル内のサブシステムと同じ名前のマスク サブシステムが含まれます。このサブシステムは、FPGA に読み込まれるアルゴリズムを含む Simulink Real-Time インターフェイス サブシステムです。生成された Simulink Real-Time インターフェイス モデルを使用するか、Simulink Real-Time ドメインのモデルを作成して Simulink Real-Time インターフェイス サブシステムをそのモデルにコピーして、Speedgoat ターゲット マシンで FPGA アルゴリズムをシミュレートします。

Simulink Real-Time インターフェイス サブシステム マスクで、3 つのパラメーターを設定します。

  • デバイス インデックス

  • PCI スロット

  • サンプル時間

ターゲットに単一の FPGA I/O ボードがある場合、デバイス インデックスを既定値のままにします。FPGA I/O ボードが複数の場合、固有のデバイス インデックスを指定します。同じ種類のボードが 2 つ以上ある場合、各ボードの PCI スロットを指定します。

リアルタイム テストでは、信号をログに記録して、シミュレーション データ インスペクターでシミュレーション結果を表示します。

  1. [リアルタイム] タブで、Simulink Real-Time Explorer を開いてターゲット インターフェイス接続設定を指定します。例については、Speedgoat FPGA I/O モジュールへの Simscape モデルのハードウェアインザループ実装を参照してください。

  2. [リアルタイム] タブで、[ターゲットで実行] をクリックして Simulink Real-Time アプリケーションをビルドしてダウンロードします。リアルタイム アプリケーションが Speedgoat ターゲット マシンに読み込まれ、FPGA アルゴリズム ビットストリームが FPGA に読み込まれます。

次に、シミュレーション データ インスペクターでシミュレーション結果を表示できます。

関連するトピック