Main Content

Simscape HDL ワークフロー アドバイザーのタスク

Simscape HDL ワークフロー アドバイザーを使用して、HDL 実装モデルを生成できます。次に、実装モデルの HDL コードを生成し、コードを FPGA プラットフォームに展開できます。アドバイザーを開くには、関数 sschdladvisor を実行します。以下に例を示します。

openExample('hdlcoder/HILImplementationOfSimscapeModelOnSpeedgoatFPGAIOModulesExample',...
'supportingFile','sschdlexHalfWaveRectifierExample')
sschdladvisor('sschdlexHalfWaveRectifierExample')

各 Simscape HDL ワークフローのフォルダーまたはタスクの概要については、そのフォルダーまたはタスクを右クリックして、[これはなに?] を選択します。

Simscape HDL Workflow Advisor tasks

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

Simscape™ モデルを HDL 実装モデルに変換するために、Simscape HDL ワークフロー アドバイザーに含まれているさまざまなタスクを使用できます。その後、HDL 実装モデル内で HDL サブシステム用のコードを生成できます。Simscape HDL ワークフロー アドバイザーのタスクは次のフォルダーにあります。

  • [コード生成互換性] フォルダーには、モデルが適切なソルバー構成設定を使用しているどうかをチェックし、HDL コード生成と互換性がないブロックをレポートするタスクが含まれています。

  • [状態空間の変換] フォルダーには、実装モデルを生成するために状態空間パラメーターをモデルから取得するタスクが含まれています。

  • [実装モデルの生成] フォルダーには、状態空間パラメーターから指定したターゲット ハードウェア設定の HDL 実装モデルを生成するタスクが含まれています。

各フォルダーまたはタスクの詳細については、そのフォルダーまたはタスクを右クリックして、[これはなに?] を選択します。

コード生成互換性

[コード生成互換性] フォルダーのタスクでは、次の項目を確認します。

  • ソルバー構成設定を正しく指定しており、設定は Simscape モデルの各ネットワーク内の Solver Configuration (Simscape) ブロックで一貫性がある。

  • HDL 互換のブロックがモデルで使用される。

ソルバーのコンフィギュレーションのチェック

[ソルバーのコンフィギュレーションのチェック] タスクでは、正しい設定を指定しているかどうか、および設定が Simscape モデルの各ネットワーク内にある Solver Configuration ブロック全体で一貫しているかどうかを確認します。

Simscape HDL ワークフロー アドバイザーは、すべての Solver Configuration ブロックに対して以下の設定を指定しているかどうかを確認します。

  • [ローカル ソルバーを使用] が選択されている。

  • [ソルバー タイプ][後退オイラー][分割]、または [台形則] に設定されている。

  • 離散サンプル時間として Ts が指定されている。

  • [固定コストでの実行時整合性の反復を使用] の選択が同じ (オンまたはオフになっている)。

  • [固定コストでの実行時整合性の反復を使用] がオンになっている場合、[非線形の反復] の値が同じ。

これらの設定を指定しなかった場合、タスクはモデル内の Solver Configuration ブロックへのリンクと変更する設定を提供します。

モデルの互換性のチェック

[モデルの互換性のチェック] タスクは、Simscape モデルで HDL 互換のブロックを使用しているかどうかをチェックします。

このタスクが成功すると、以下が表示されます。

  • モデルが線形スイッチド システムであることを示すメッセージ。

  • モデルに存在する Simscape ネットワーク数。

  • Simscape モデル内の関連するブロックへのリンクをもつ各 Simscape ネットワークの代数変数と微分変数の数。

    微分変数は、ターゲット FPGA デバイスで乗算器リソースの 2 次の量を消費します。代数変数は、乗算器リソースの線形の量を消費します。この情報を使用して、FPGA デバイスで Simscape の設計が消費する乗算器リソースの数を特定できます。

  • モデル内の Simulink-PS Converter (Simscape) ブロックと PS-Simulink Converter (Simscape) ブロックへのリンクをもつメッセージ (これらのブロックに既定の名前を使用する場合)。

    実装モデルの HDL Subsystem の入力端子と出力端子は、Simulink-PS Converter ブロックと PS-Simulink Converter ブロックに対して指定した名前を使用します。このメッセージを回避するには、これらのブロックにわかりやすい名前を付けます。

状態空間の変換

HDL 実装モデルを生成する前に、このフォルダー内のタスクを実行して、状態空間パラメーターをモデルから取得します。このフォルダー内のタスクは以下のとおりです。

  • Simscape モデルをシミュレートして、微分代数方程式とモード切り替え関数を抽出する。

  • 微分代数方程式を離散化し、モデルを線形モードの形式で表す抽象状態空間表現を生成する。

離散方程式の抽出

[離散方程式の抽出] タスクは Simscape モデルをシミュレートして、微分代数方程式とモード切り替え関数を抽出します。このタスクは微分代数方程式を離散化し、モデルを線形モードの形式で表す抽象離散状態空間表現を生成します。各モードは状態空間行列のセットで表されます。このタスクは、元の Simscape モデルから [シミュレーション終了時間] の値を取得し、Simscape ネットワークの [離散サンプル時間] を表示します。

このタスクが成功すると、モデル内に存在する各 Simscape ネットワークについてシミュレーション終了時間、ソルバーの反復回数、状態の数、入力の数、出力の数、モードの数、微分変数の数、および状態空間表現が表示されます。

Solver Configuration ブロックで [固定コストでの実行時整合性の反復を使用] チェック ボックスを選択し、[非線形の反復] テキスト ボックスにソルバーの反復回数のカスタム値を指定します。詳細については、ソルバーの反復回数の使用を参照してください。

モードの数は、Simscape モデル内に存在するスイッチの数で制限されます。可能なモードの最大数は 2n です ("n" はスイッチの数)。Simscape HDL ワークフロー アドバイザーが生成するすべてのモードはスイッチ ロジックを使用して入力パラメーターに従って実行されます。有効なモード数は、Simscape モデルの設計に応じてアドバイザーによって選択されます。

実装モデルの生成

[実装モデルの生成] フォルダー内のタスクは、離散状態空間表現から HDL 実装モデルを生成します。実装モデルは、指定したターゲット ハードウェア設定の HDL コード生成と互換性のある Simulink® ブロックを使用することによって Simscape アルゴリズムを表します。このフォルダー内の [実装モデルを生成] タスクが成功すると、生成された HDL 実装モデルへのリンクが提供されます。

ターゲットの設定

このタスクでは、HDL 実装モデルを生成する前に、ターゲット ハードウェア設定に必要な情報を指定できます。これにより、ハードウェアへの展開に必要な HDL 最適化 (最適な共有係数値の設定など) を組み込むことができます。右側のペインで [合成ツール] オプションを選択し、ターゲット ハードウェアの [ファミリ][デバイス][パッケージ][速度] を更新します。

実装モデルを生成

離散状態空間表現から HDL 実装モデルを生成するには、[実装モデルを生成] タスクを実行します。HDL 実装モデルには、[状態空間の変換] フォルダー内のタスクを実行することで取得した状態空間パラメーターを使用して状態空間方程式をモデル化する HDL Subsystem が含まれています。HDL Subsystem ブロックは、HDL コードを生成できる DUT を表します。

このタスクの実行前に、以下を行うことができます。

  • [データ型の精度] 設定を使用して、生成された実装モデルの HDL Subsystem が、singledouble、または fixed-point のいずれの行列タイプを保存するか、また指定したデータ型で結果を計算するかを指定します。[データ型の精度] ドロップダウン リストからデータ型を選択できます。Fixed-point データ型を選択した場合、[固定小数点語長] テキスト ボックスで語長を指定することもできます。詳細については、データ型の精度と数値精度を参照してください。

  • [状態空間のパラメーターを RAM にマッピング] 設定を使用して、状態空間のパラメーターを RAM やルックアップ テーブル (LUT) などのハードウェア リソースにマッピングします。詳細については、状態空間のパラメーターを RAM にマッピングを参照してください。

  • [実装モデルの検証ロジックの生成] を選択して、生成された HDL 実装モデルが機能的に元の Simscape モデルと等価であるかどうかを検証するロジックを生成します。このタスクにより、モデル内にある各 Simscape ネットワークに対してロジックが生成されます。[検証ロジックの許容誤差] を設定することで、数値的な正確性の許容誤差を指定できます。[検証ロジックの許容誤差] は絶対値です。たとえば、1e-12 の許容誤差値を指定できます。

  • [加算器と乗算器の共有] オプションを選択して、HDL 実装モデル内の Matrix Multiply (Product) ブロックに対して [SharingFactor] の最適値を設定します。モデルに最適な共有係数の値は、Simscape HDL ワークフロー アドバイザーの [実装モデルの生成] フォルダー内の [ターゲットの設定] タスクで指定したターゲットの詳細に基づいて計算されます。このオプションを設定すると、モデルの HDL コードを生成する前に合成のオーバーヘッドが軽減され、リソース利用が最適化されます。ターゲット ハードウェアを指定しなかった場合、またはサポートされていないターゲット ハードウェアを指定した場合、既定でターゲット プラットフォーム Xilinx® Vivado® Kintex®-7 xc7k325t パーツが最適な共有係数の計算に使用されます。サポートされているデバイス ファミリおよびパーツの詳細については、最適な共有係数でサポートされている FPGA デバイス ファミリを参照してください。

タスクが成功すると、生成された HDL 実装モデルへのリンクが表示されます。

関連するトピック