ガイド付きコード生成
Simulink® ツールストリップの [HDL コード] タブ、または [コンフィギュレーション パラメーター] ダイアログ ボックスを使用して、Simulink モデル向けの HDL コードを UI から生成できます。このダイアログ ボックスで、基本的なフォルダーや言語の選択から、さらに高度な最適化パラメーターまで、各種の HDL コード生成の設定を指定できます。[HDL コード] タブから HDL コードを生成する方法の詳細については、Simulink モデルからの HDL コードの生成を参照してください。
生成されたコードをターゲット デバイスに展開するには、Simulink HDL ワークフロー アドバイザーを使用します。このアドバイザーでは、HDL 互換性のチェックを行うエンドツーエンドのワークフローを実行し、生成されたコードをターゲット デバイスに展開することができます。HDL ワークフロー アドバイザーは Simulink Online™ では使用できません。
関数
hdladvisor | HDL ワークフロー アドバイザーの表示 |
hdlsetup | HDL コード生成用のモデル パラメーターの設定 |
hdlsetuptoolpath | FPGA 合成ソフトウェアにアクセスするためのシステム環境の設定 |
チェック
モデル設定
HDL コード生成
HDL の生成対象 | HDL コード生成用のサブシステムまたはモデルを選択する |
言語 | Specify HDL code generation language |
コード生成フォルダー | Specify target folder for generated HDL code |
モデルを既定の設定に戻す | |
HDL 生成可チェック | |
生成 |
ターゲット
ワークフロー | Specify the target workflow |
プロジェクト フォルダー | Folder specification for workflow-specific files (R2023b 以降) |
ターゲット プラットフォーム | Specify where to deploy generated HDL code (R2023b 以降) |
合成ツール | Specify the synthesis tool for targeting the generated HDL code |
ファミリ | Specify target device chip family for the model |
デバイス | Specify target device name |
パッケージ | Specify target device package name |
速度 | Specify target device speed value |
リファレンス設計 | Configuration parameters to customize reference design (R2023b 以降) |
リファレンス設計ツールのバージョン | Display of reference design tool version (R2023b 以降) |
ツール バージョンの不一致を無視 | Warning in instances of reference design tool version mismatch (R2023b 以降) |
リファレンス設計のパラメーター | Parameters available for default reference designs (R2023b 以降) |
ターゲット周波数 | Specify target frequency for multiple features and workflows |
最適化
一般
RAM へのパイプライン遅延のマッピング | 生成される HDL コードのパイプライン レジスタを RAM にマッピング |
RAM マッピングのしきい値 | Specify the minimum RAM size for mapping to block RAMs |
非ゼロ初期値の遅延の変換 | Specify Transform Delay blocks to have zero initial value (R2020b 以降) |
未使用の端子を削除 | Remove unused ports from the design (R2020b 以降) |
イネーブルベースの制約 | Meet the timing requirement of the multicycle path in your model |
パイプライン
設計上の遅延分散を許可 | Whether to allow distributed pipelining and delay absorption optimizations to move design delays |
パイプライン分散の優先順位 | Priority for the distributed pipelining and delay absorption optimizations |
クロックレート パイプライン | Insert pipeline registers at a clock rate that is faster than the data rate |
DUT 出力端子のクロックレート パイプラインを許可 | Produce the DUT outputs as soon as possible by passing the outputs from the DUT at the clock rate rather than the data rate |
クロック レート パイプライン DUT 出力端子の均衡化 | Synchronize the DUT outputs while satisfying the highest-latency requirements of the outputs (R2022b 以降) |
分散型パイプライン | Enable pipeline register distribution |
分散型パイプラインに合成推定値を使用 | Determine more accurate propagation delays for each component (R2022a 以降) |
適応パイプライン | Insert pipeline registers to the blocks in your design, reduce the area usage, and maximize the achievable clock frequency on the target FPGA device |
ルックアップ テーブルを RAM にマッピングする | Lookup tables in your design to block RAM and reduce area usage on the target FPGA device (R2021b 以降) |
リソース共有
加算器の共有 | Share adders with the resource sharing optimization |
加算器共有の最小ビット幅 | Specify the minimum bit width that is required to share adders with the resource sharing optimization |
乗算器の共有 | Share multipliers with the resource sharing optimization |
乗算器共有の最小ビット幅 | リソース共有の最適化によって乗算器を共有するのに必要な最小ビット幅を指定する |
乗算器拡張のしきい値 | リソース共有の最適化を使用して小さい乗算器を他のより大きい乗算器と共有する |
乗算器分割のしきい値 | しきい値に基づく乗算器の分割 |
Multiply-Add ブロック | リソース共有の最適化によって Multiply-Add ブロックを共有する (R2021a 以降) |
Multiply-Add ブロック共有の最小ビット幅 | Specify the minimum bit width that is required to share Multiply-Add with the resource sharing optimization (R2021a 以降) |
Atomic サブシステム | Share Atomic Subsystem blocks with the resource sharing optimization |
MATLAB Function ブロック | Share MATLAB Function blocks with the resource sharing optimization |
浮動小数点 IP | Share floating-point IPs in the design |
フレームからサンプルへの変換
フレームからサンプルへの変換を有効にする | Enable frame-to-sample conversion (R2022b 以降) |
サイクルあたりのサンプル数 | Specify the size of the signals after the frame-to-sample conversion streams them (R2022b 以降) |
FIFO 入力サイズ | Specify the register size of the generated input FIFOs around the streaming matrix partitions (R2022b 以降) |
FIFO 出力サイズ | Specify the register size of the generated output FIFOs around the streaming matrix partitions (R2022b 以降) |
入力処理順序 | Choose between row-major and column-major ordering for the frame inputs (R2023a 以降) |
外部メモリ用の遅延サイズしきい値 (ビット) | Specify a threshold size in kilobytes to map large integer delays to input and output DUT ports and offload large delays to external memory outside of your FPGA (R2023a 以降) |
浮動小数点
浮動小数点の使用 | Specify use of native floating-point library (R2023a 以降) |
レイテンシ手法 | Specify minimum or maximum latency (R2020b 以降) |
非正規化数の処理 | Specify whether to handle denormal numbers (R2020b 以降) |
仮数乗算器手法 | Specify how to implement the mantissa multiplication operation (R2020b 以降) |
ベンダー固有の浮動小数点ライブラリ | Select vendor-specific floating-point library (R2023a 以降) |
グローバル設定
グローバル設定
リセット タイプ | Asynchronous or synchronous reset logic for registers |
リセットのアサート レベル | リセット入力信号のアサートまたはアクティブ レベル |
クロックの入力端子 | Name for clock input port |
クロック イネーブルの入力端子 | クロック イネーブルの入力端子の名前 |
リセットの入力端子 | Name for reset input port |
クロックの入力 | 単一または複数のクロック入力の生成 |
Simulink のレートを実際のハードウェアのレートとして扱う | Oversampling value based on model rates (R2023b 以降) |
クロック エッジ | アクティブなクロック エッジ |
オーバーサンプリング係数 | Oversampling value |
一般
Verilog ファイルの拡張子 | 生成される Verilog ファイル名の拡張子 |
VHDL ファイルの拡張子 | 生成される VHDL ファイル名の拡張子 |
SystemVerilog ファイルの拡張子 | File name extension for generated SystemVerilog files (R2023b 以降) |
パッケージの接尾辞 | Text to append to model or subsystem name |
エンティティ競合の接尾辞 | Text to resolve duplicate module names |
分離する entity ファイルの接尾辞 | Text to be appended to model name to form name of generated entity file |
予約語の接尾辞 | Text to append to value names, postfix values, or labels |
分離する arch ファイルの接尾辞 | Text to be appended to model name to form name of generated architecture file |
クロックの process 文の接尾辞: | Postfix as character vector |
エンティティとアーキテクチャを分離 | Number of files entity and architecture code is written to |
複素数の実数部の接尾辞 | 複素信号名の実数部に追加するテキスト |
VHDL アーキテクチャ名 | Architecture name for DUT |
複素数の虚数部の接尾辞 | 複素信号名の虚数部に追加するテキスト |
モジュール名の接頭辞 | モジュールまたはエンティティの名前の接頭辞 |
イネーブル信号の接頭辞 | Base name as character vector |
タイミング コントローラーの接尾辞 | Postfix as character vector |
パイプラインの接尾辞 | 入力パイプライン レジスタまたは出力パイプライン レジスタの名前の後に追加するテキスト |
VHDL ライブラリ名 | 生成された VHDL コードのターゲット ライブラリ名 |
モデル参照用の VHDL または SystemVerilog コードを単一のライブラリに生成 | Code placement for model references |
ブロック生成ラベル | HDL GENERATE ステートメントに使用されるブロック ラベルの接尾辞 |
出力生成ラベル | 出力割り当てブロック ラベルの接尾辞 |
インスタンス生成ラベル | インスタンス セクション ラベルに追加するテキスト |
ベクトルの接頭辞 | ベクトル名の接頭辞 |
インスタンスの接頭辞 | 生成されたコンポーネント インスタンス名の接頭辞 |
インスタンスの接尾辞 | 生成されたコンポーネント インスタンス名の接尾辞 |
マップ ファイルの接尾辞 | 生成されたマッピング ファイルのファイル名に追加される接尾辞 |
端子
入力データ型 | モデルの入力端子の HDL データ型 |
出力データ型 | モデルの出力端子の HDL データ型 |
クロック イネーブルの出力端子 | 生成されたクロック イネーブルの出力端子の名前 |
クロック イネーブルの最小化 | クロック イネーブル ロジックを最小化する |
グローバル リセットの最小化 | Minimize reset logic |
トリガー信号をクロックとして使用 | Trigger input signal |
調整可能なパラメーターの HDL DUT 端子生成の有効化 | Enable creation of DUT input ports for tunable parameters (R2021b 以降) |
生成された DUT 入力端子の遅延の均衡化 | Insert matching delays on generated DUT inport port paths (R2022b 以降) |
テスト ポイントの HDL DUT 端子生成を有効にする | Enable creation of DUT output ports for the test point signals |
生成された DUT 出力端子の遅延の均衡化 | 生成された DUT 出力端子パスに、一致する遅延を挿入する (R2022b 以降) |
端子のスカラー化 | Vector ports flattened into scalar ports |
FPGA 展開における I/O ピンの最大数 | ターゲット FPGA の I/O ピンの最大数 (R2022a 以降) |
I/O しきい値を超える DUT ピン数のチェック | Message generated when DUT pin count exceeds maximum number of I/O pins (R2023a 以降) |
コーディング スタイル
集合体で定数値を表現 | Constants represented by aggregates |
インラインの MATLAB Function ブロック コード | MATLAB Function ブロックの HDL コードをインライン化 |
すべての RAM ブロックを初期化 | Generate initial signal value for RAM blocks |
RAM アーキテクチャ | RAM architecture with or without clock enable |
レジスタのリセットによらない初期化 | Initialize registers without reset and mode of initialization |
中間信号を最小にする | デバッグを可能にするため、またはコード カバレッジのために HDL コードを最適化する |
For-Generate ループの展開 | 生成された HDL コードから FOR -GENERATE ループを展開して省略する |
マスクされたサブシステムからのパラメーター化された HDL コードの生成 | Generate reusable HDL code for subsystems |
列挙型エンコード スキーム: | Encoding scheme represent enumeration types |
レジスタに “rising_edge/falling_edge” スタイルを使用 | Specify if generated should code use rising_edge function or
falling_edge function |
コードの再利用 | Single reusable file to represent the subsystem logic (R2022a 以降) |
インラインの VHDL configuration | Specify if generated VHDL code includes inline configurations |
固定値の表示方法の設定 | Syntax for concatenated zeros in generated VHDL code |
難読化された HDL コードを生成 | Specify generation of obfuscated HDL code (R2020b 以降) |
生成された HDL コード内のバス構造を保持 | Generate code with VHDL record or SystemVerilog structure types (R2022b 以降) |
スカラー化された端子名のインデックス付け | Starting index for the names of scalarized vector ports (R2022a 以降) |
タイミング コントローラーの最適化 | Timing controller entity for speed and code size |
タイミング コントローラーのアーキテクチャ | Architecture of generated timing controller |
Verilog または SystemVerilog の timescale 命令を使用 | 生成された Verilog または SystemVerilog コード内でのコンパイラ命令の使用 |
Verilog または SystemVerilog の timescale 仕様 | Timescale to use in generated Verilog or SystemVerilog code |
コーディング標準
HDL コーディング標準 | Enable the Industry coding standard guidelines |
コーディング標準レポートにおける受け渡しルールの表示 | Filter the coding standard report so passing rules do not appear (R2020b 以降) |
名前の重複をチェック | Check for duplicate names in the design (R2020b 以降) |
設計名の HDL キーワードをチェック | Check for HDL keywords in design names (R2020b 以降) |
モジュール、インスタンス、エンティティの名前の長さをチェック | Specify whether to check module, instance, and entity name length (R2020b 以降) |
信号、端子、パラメーターの名前の長さをチェック | Specify whether to check signal, port, and parameter name length (R2020b 以降) |
クロック イネーブル信号をチェック | Specify whether to check for clock enable signals in the generated code (R2020b 以降) |
リセット信号の使用の検出 | Specify whether to check for reset signals in the generated code (R2020b 以降) |
非同期リセット信号の使用の検出 | Specify whether to check for asynchronous reset signals in the generated code (R2020b 以降) |
変数の使用を最小限に抑える | Specify whether to minimize use of variables (R2020b 以降) |
RAM の初期値を設定する開始ステートメントをチェック | Specify whether to check for initial statements that set RAM initial values (R2020b 以降) |
プロセス内の条件ステートメントをチェック | Specify whether to check for length of conditional statements (R2020b 以降) |
カスケードされた複数の制御領域で同じ変数への代入がないかをチェック | Specify whether to check if there are assignments to same variable in multiple cascaded control regions (R2021b 以降) |
If-else ステートメントのチェーンの長さをチェック | Specify whether to check if-else statement chain length (R2020b 以降) |
If-else ステートメントの入れ子の深さをチェック | Specify whether to check if-else statement nesting depth (R2020b 以降) |
乗算器の幅をチェック | Specify whether to check multiplier bit width (R2020b 以降) |
整数でない定数をチェック | Specify whether to check for non-integer constants (R2020b 以降) |
行の折り返しの長さをチェック | Specify whether to check line lengths in the generated HDL code (R2020b 以降) |
コメント
コメントを有効にする | Enable or disable comments |
ヘッダーのコメント | Comment lines in header of generated HDL and test bench files |
ヘッダーに時間/日付スタンプを出力 | Time and date information in the generated HDL file header |
ブロック コメントに要件を含める | Generation of requirements comments |
カスタム ファイルのヘッダー コメント | カスタム ファイルのヘッダー コメント |
カスタム ファイルのフッター コメント | Custom file footer comment |
モデル生成
生成されたモデル | Enable or disable generation of generated model |
検証モデル | Enable or disable generation of a validation model |
検証モデル名の接尾辞 | 検証モデルの名前の接尾辞 (R2020b 以降) |
生成されたモデル名の接頭辞 | Prefix of the generated model name |
レイアウト スタイル | Layout style of the generated HDL model (R2021b 以降) |
信号の自動経路指定 | Automatic routing of signals in the generated model (R2020b 以降) |
ブロック間の水平方向のスケーリング | Horizontal scaling of generated model (R2020b 以降) |
ブロック間の垂直方向のスケーリング | Vertical scaling of generated model (R2020b 以降) |
詳細設定
ブラック ボックス インターフェイスでの名前の競合をチェック | Specify whether to check for duplicate module or entity names |
生成された HDL コード内での実数の有無のチェック | 生成された HDL コードで、実数をチェックするかどうかを指定する |
HDL コードを生成 | モデルまたはサブシステムの HDL コード生成を有効または無効にする |
シミュレーションのみのインデックス チェックを生成することで、範囲外アクセス エラーを非表示にする | 配列インデックスが範囲外にならないようにするためにシミュレーション時に実行されるロジック (R2022a 以降) |
レポート
トレーサビリティ レポートの生成 | Report with hyperlinks to code to model and model to code |
トレーサビリティ スタイル | Designation of line-level or comment-based traceability (R2020b 以降) |
モデルの Web ビューを生成 | Web view to navigate between code and model |
リソース利用レポートを生成 | Generate HTML resource utilization report |
最適化レポートを生成 | Generate HTML optimization report |
高位のタイミング クリティカル パス レポートを生成 | Generate a report that shows estimated critical path in models |
カスタム タイミング データベースのディレクトリ | Path to load custom timing (R2021b 以降) |
テスト ベンチ
シミュレーション ツール | Simulator for running generated test benches |
HDL コード カバレッジ | 生成されたシミュレーター スクリプトで HDL コード カバレッジ フラグを有効または無効にする |
HDL テスト ベンチ | HDL テスト ベンチの生成を有効または無効にする |
コシミュレーション モデル | Enable or disable model generation |
SystemVerilog DPI テスト ベンチ | Enable or disable SystemVerilog DPI test bench generation |
テスト ベンチ名の接尾辞 | Specify suffix appended to test bench name |
クロック信号生成 | テスト ベンチがクロック入力信号を生成するかどうかを指定する |
クロック High 時間 (ns) | テスト ベンチがクロック入力信号を High (1) にする期間をナノ秒単位で指定する |
クロック Low 時間 (ns) | テスト ベンチがクロック入力信号を Low (0) にする期間をナノ秒単位で指定する |
ホールド時間 (ns) | 入力信号とリセット入力信号生成のホールド時間をナノ秒単位で指定する |
セットアップ時間 (ns) | データ入力信号のセットアップ時間を表示する |
クロック イネーブル信号生成 | テスト ベンチでクロック イネーブル入力信号を生成するかどうかを指定する |
クロック イネーブル信号の遅延 (クロック サイクル単位) | リセットのデアサーションとクロック イネーブルのアサーション間の経過時間 (クロック サイクル単位) を定義する |
リセット信号生成 | テスト ベンチがリセット入力信号を生成するかどうかを指定する |
Reset 信号の長さ (クロック サイクル単位) | リセットがアサートされる時間 (クロック サイクル単位) を定義する |
サンプル間の入力データをホールド | サブレート信号値を有効な状態に保持する時間を指定する |
テスト ベンチの入力を初期化 | データが DUT にアサートされる前のテスト ベンチ入力上で駆動される初期値を指定する |
複数ファイルのテスト ベンチ | 生成されたテスト ベンチを補助関数、データ、HDL テスト ベンチ コード ファイルに分割する |
テスト ベンチ データ ファイル名の接尾辞 | 複数ファイルのテスト ベンチを生成するときにテスト ベンチ データ ファイルの名前に追加される接尾辞を指定する |
テスト ベンチ参照の接尾辞 | テスト ベンチ コード内で生成される基準信号の名前に付加される文字ベクトルを指定する |
ファイル I/O によるテスト ベンチ データの読み取り/書き込みを行う | テスト ベンチの入力と出力データの読み取りおよび書き込み用にデータ ファイルを作成して使用する |
出力データのチェックを無視 (サンプル数) | 出力データのチェックが抑制されている間のサンプルの数を指定する |
浮動小数点許容誤差チェックの基準 | Specify the floating-point tolerance check option |
許容誤差の値 | 指定した浮動小数点許容誤差チェックの設定に基づいて許容誤差の値を入力する |
シミュレーション ライブラリ パス | コンパイルされた Altera または Xilinx シミュレーション ライブラリへのパスを指定する |
EDA ツール スクリプト
EDA スクリプトを生成 | サードパーティ製のコンピューターによる設計の自動化 (EDA) ツール向けのスクリプト ファイル |
コンパイル スクリプトのパラメーター
コンパイル ファイルの接尾辞 | コンパイル スクリプト ファイルの名前を形成するための DUT 名またはテスト ベンチ名に付加する接尾辞 |
コンパイルの初期化 | コンパイル スクリプトの Init セクションを書き込むために使用される書式名 |
VHDL のコンパイル コマンド | コンパイル スクリプトの Cmd セクションを書き込むために使用される書式名 |
Verilog または SystemVerilog のコンパイル コマンド | コンパイル スクリプトの Cmd セクションを書き込むために使用される書式名 |
コンパイルの終了 | コンパイル スクリプトの終了部分を書き込むために使用される書式名 |
シミュレーション スクリプトのパラメーター
シミュレーション ファイルの接尾辞 | Postfix to append to the DUT or test bench name |
シミュレーションの初期化 | シミュレーション スクリプトの初期化セクションを書き込むために使用される書式名 |
シミュレーション コマンド | Format name used to write the simulation command |
シミュレーション波形表示コマンド | シミュレーション スクリプトに記述される波形表示コマンド |
シミュレーションの終了 | シミュレーション スクリプトの終了部分を書き込むために使用される書式名 |
シミュレーター フラグ | 生成されたコンパイル スクリプトに適用するシミュレーター フラグ |
合成ツールの選択 | 合成スクリプトの生成 |
合成ファイルの接尾辞 | Postfix to append to file name |
合成の初期化 | Format name used to write initialization section of synthesis script |
合成コマンド | Format name used to write the synthesis command |
合成の終了 | Format name that is used to write termination portion of synthesis script |
合成プロジェクトに追加するファイル | Additional HDL or constraint files |
lint スクリプトのパラメーター
HDL lint ツールの選択 | Generation of an HDL lint script |
lint の初期化 | Initialization text |
lint コマンド | Command for HDL lint script |
lint の終了 | Termination character vector |
トピック
HDL ワークフロー アドバイザーの使用
- HDL ワークフロー アドバイザーのワークフロー
HDL ワークフロー アドバイザーと選択できるさまざまなワークフロー、ターゲットにするプラットフォームについて確認する。 - HDL ワークフロー アドバイザーのご利用の前に
HDL ワークフロー アドバイザーの基礎とさまざまなタスクの実行方法について学習します。 - HDL ワークフロー アドバイザーのタスク
HDL ワークフロー アドバイザーのタスクの説明 - HDL ワークフロー アドバイザーを使用したコードの生成と FPGA での合成
HDL ワークフロー アドバイザーは、次のような Simulink サブシステムの HDL コードを生成する各段階と、FPGA 設計プロセスをサポートします。
[モデル コンフィギュレーション パラメーター] ダイアログ ボックスの使用
- HDL コード生成オプションの設定
[コンフィギュレーション パラメーター] ダイアログ ボックス、Simulink ツールストリップ、または [HDL ブロック プロパティ] ウィンドウで HDL オプションにアクセスする。 - コンフィギュレーション パラメーターを使用した Simulink モデルからの HDL コードの生成
[コンフィギュレーション パラメーター] ダイアログ ボックスを使用して Simulink モデルの HDL コードを生成する。 - Simulink モデルから生成された HDL コードの難読化
モデルから生成された VHDL® コード、Verilog® コードまたは SystemVerilog コードを難読化する方法について学習する。
モデル コンフィギュレーション パラメーター
- Model Configuration Parameters: HDL Code Generation
Use this pane to set code generation parameters, initiate compatibility checking, and generate HDL code for your design. - Model Configuration Parameters: Target
Use this pane to specify the target hardware settings. - Model Configuration Parameters: Optimization
Use this pane to improve area and timing. - Model Configuration Parameters: Floating Point
Use this pane to specify floating-point IP libraries. - Model Configuration Parameters: Global Settings
Use this pane to specify detailed characteristics of the generated code. - Model Configuration Parameters: Report
Use this pane to specify the generation of reports. - Model Configuration Parameters: Test Bench
Use this pane to determine characteristics of generated test bench code. - Model Configuration Parameters: EDA Tool Scripts
Use this pane to control generation of script files for third-party HDL simulation and synthesis tools.
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)