Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

makehdl

モデル、サブシステム、モデル参照からの HDL RTL コードの生成

説明

makehdl(dut) は、指定した DUT モデル、サブシステム、またはモデル参照から HDL コードを生成します。

メモ

このコマンドを実行すると、Scope ブロックなどのブロックの [シミュレーション開始時に開く] 設定がアクティブになるため、そのブロックを呼び出せるようになります。

makehdl(dut,Name,Value) は、1 つ以上の名前と値のペアの引数によって指定されるオプションを使用して、指定した DUT モデル、サブシステム、またはモデル参照から HDL コードを生成します。

すべて折りたたむ

この例では、対称 FIR モデル用の VHDL を生成する方法を示します。

sfir_fixed モデルを開きます。

sfir_fixed

コード生成オプションを既定値に設定し、現在のモデルの HDL コードを生成します。

makehdl('sfir_fixed/symmetric_fir','TargetDirectory','C:\GenVHDL\hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\GenVHDL\hdlsrc\sfir_fixed\symmetric_fir.vhd.
### Creating HDL Code Generation Check Report file://C:\GenVHDL\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

生成された VHDL コードは hdlsrc フォルダーに保存されます。

sfir_fixed モデル内のサブシステム symmetric_fir に対して Verilog® を生成します。

sfir_fixed モデルを開きます。

sfir_fixed;

モデルが新しい Simulink® ウィンドウで開きます。

symmetric_fir サブシステムに対して Verilog を生成します。

makehdl('sfir_fixed/symmetric_fir', 'TargetLanguage', 'Verilog', ...
               'TargetDirectory', 'C:/Generate_Verilog/hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### Begin Verilog Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\Generate_Verilog\hdlsrc\sfir_fixed\symmetric_fir.v.
### Creating HDL Code Generation Check Report file://C:\Generate_Verilog\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

symmetric_fir サブシステムに対して生成された Verilog コードは、hdlsrc\sfir_fixed\symmetric_fir.v に保存されます。

モデルを閉じます。

bdclose('sfir_fixed');

sfir_fixed モデル内のサブシステム symmetric_fir に対して SystemVerilog コードを生成します。

sfir_fixed モデルを開きます。

sfir_fixed;

モデルが新しい Simulink® ウィンドウで開きます。

symmetric_fir サブシステムに対して SystemVerilog コードを生成します。

makehdl('sfir_fixed/symmetric_fir', 'TargetLanguage', 'SystemVerilog', ...
               'TargetDirectory', 'C:/Generate_SV/hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Using the config set for model <a href="matlab:configset.showParameterGroup('sfir_fixed', { 'HDL Code Generation' } )">sfir_fixed</a> for HDL code generation parameters.
### Running HDL checks on the model 'sfir_fixed'.
### Begin compilation of the model 'sfir_fixed'...
### Working on the model 'sfir_fixed'...
### Working on... <a href="matlab:configset.internal.open('sfir_fixed', 'GenerateModel')">GenerateModel</a>
### Begin model generation 'gm_sfir_fixed' ....
### Copying DUT to the generated model....
### Model generation complete.
### Begin SystemVerilog Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\Generate_SV\hdlsrc\sfir_fixed\symmetric_fir.sv.
### Code Generation for 'sfir_fixed' completed.
### Creating HDL Code Generation Check Report file:///C:/Generate_SV/hdlsrc/sfir_fixed/symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

symmetric_fir サブシステムに対して生成された SystemVerilog コードは、hdlsrc\sfir_fixed\symmetric_fir.sv に保存されます。

モデルを閉じます。

bdclose('sfir_fixed');

サブシステム symmetric_fir が HDL コード生成と互換性をもつことを確認してから、HDL を生成します。

sfir_fixed モデルを開きます。

sfir_fixed

モデルが新しい Simulink® ウィンドウで開きます。

関数 checkhdl を使用して、symmetric_fir サブシステムが HDL コード生成と互換性があるかどうかを確認します。

hdlset_param('sfir_fixed','TargetDirectory','C:/HDL_Checks/hdlsrc');
checkhdl('sfir_fixed/symmetric_fir')
### Starting HDL check.
### Creating HDL Code Generation Check Report file://C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.

checkhdl は正常に完了しました。これは、HDL コード生成と互換性のあるモデルであることを意味しています。コードを生成するには、makehdl を使用します。

makehdl('sfir_fixed/symmetric_fir')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Using the config set for model <a href="matlab:configset.showParameterGroup('sfir_fixed', { 'HDL Code Generation' } )">sfir_fixed</a> for HDL code generation parameters.
### Starting HDL check.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir.vhd.
### Creating HDL Code Generation Check Report file://C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

symmetric_fir サブシステムに対して生成された VHDL® コードは、hdlsrc\sfir_fixed\symmetric_fir.vhd に保存されます。

モデルを閉じます。

bdclose('sfir_fixed');

入力引数

すべて折りたたむ

サブシステム名、最上位モデルの名前、または絶対階層パスを含むモデル参照名として指定します。

例: 'top_level_name'

例: 'top_level_name/subsysA/subsysB/codegen_subsys_name'

名前と値の引数

オプションの引数ペアを Name1=Value1,...,NameN=ValueN で指定します。Name は引数名で、Value は対応する値です。名前と値の引数は他の引数より後に配置する必要がありますが、ペアの順序は重要ではありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切りName を引用符で囲みます。

例: 'TargetLanguage','Verilog'

ターゲット言語とフォルダー選択オプション

すべて折りたたむ

モデル内の HDL コードを生成するサブシステムを指定します。詳細については、HDL を生成を参照してください。

VHDL または Verilog コードのどちらを生成するかを指定します。詳細については、言語を参照してください。

生成されるファイルと HDL コードを書き込むパスを指定します。詳細については、コード生成フォルダーを参照してください。

ツールと合成オプション

すべて折りたたむ

生成される HDL コードをターゲットにするように合成ツールを文字ベクトルとして指定します。詳細については、合成ツールを参照してください。

ターゲット デバイスの合成ツールのチップ ファミリを文字ベクトルとして指定します。詳細については、ファミリを参照してください。

ターゲット デバイスの合成ツールのデバイス名を文字ベクトルとして指定します。詳細については、デバイスを参照してください。

ターゲット デバイスの合成ツールのパッケージ名を文字ベクトルとして指定します。詳細については、パッケージを参照してください。

ターゲット デバイスの合成ツールの速度値を文字ベクトルとして指定します。詳細については、速度を参照してください。

ターゲット周波数 (MHz) を文字ベクトルとして指定します。詳細については、ターゲット周波数パラメーターを参照してください。

一般的な最適化とマルチサイクル パス制約の設定

すべて折りたたむ

モデルに対して遅延の均衡化を有効にするかどうかを指定します。詳細については、遅延の均衡化を参照してください。

レジスタではなく RAM にマッピングする際に必要な最小 RAM サイズを指定します。次のいずれかを指定できます。

  • マッピングのしきい値を定義する単一の整数。このしきい値のビット サイズを超えるすべての遅延または永続配列が RAM にマッピングされます。

  • 2 つのしきい値を定義する string。1 つは遅延の長さまたは配列サイズ、もう 1 つは語長です。

詳細については、RAM マッピングのしきい値を参照してください。

生成される HDL コードのパイプライン レジスタを FPGA 上のブロック RAM にマッピングするかどうかを指定します。詳細については、RAM へのパイプライン遅延のマッピングを参照してください。

非ゼロの初期値をもつ Delay ブロックを、ゼロの初期値をもつ Delay ブロックに変換するかどうかを指定します。詳細については、非ゼロ初期値の遅延の変換を参照してください。

しきい値に基づく設計内の乗算器の分割。このしきい値は正の整数、N でなければなりません。詳細については、乗算器分割のしきい値を参照してください。

詳細については、未使用の端子を削除を参照してください。

イネーブルベースのマルチサイクル パス制約ファイルを生成します。詳細については、イネーブルベースの制約を参照してください。

パイプラインと速度の最適化オプション

すべて折りたたむ

分散型パイプライン方式および遅延吸収で数値の整合性とパフォーマンスのどちらを優先するか。'Numerical Integrity' または 'Performance' として指定します。詳細については、パイプライン分散の優先順位を参照してください。

分散型パイプライン方式および遅延吸収のときに設計上の遅延分散を許可するオプション。'off' または 'on' として指定します。詳細については、設計上の遅延分散を許可を参照してください。

分散型パイプライン方式で合成タイミング推定を使用し、ハードウェアに対するコンポーネントの機能をより正確に反映することで、分散型パイプラインの精度を高めてターゲット デバイスのクロック速度を上げます。詳細については、分散型パイプラインに合成推定値を使用を参照してください。

マルチサイクル パスにパイプライン レジスタをデータ レートではなくクロック レートで挿入します。詳細については、クロックレート パイプラインを参照してください。

DUT 端子に対してクロック レート パイプラインを有効にします。詳細については、DUT 出力端子のクロック レート パイプラインを許可を参照してください。

設計に適応パイプライン レジスタを挿入します。詳細については、適応パイプラインを参照してください。

リソース共有と面積の最適化オプション

すべて折りたたむ

リソース共有の最適化を使用して、設計内の加算器を共有します。詳細については、加算器の共有を参照してください。

リソース共有の最適化のための共有加算器の最小ビット幅。正の整数として指定します。詳細については、加算器共有の最小ビット幅を参照してください。

リソース共有の最適化を使用して、設計内の乗算器を共有します。詳細については、乗算器の共有を参照してください。

リソース共有の最適化のための共有乗算器の最小ビット幅。正の整数として指定します。詳細については、乗算器共有の最小ビット幅を参照してください。

コード ジェネレーターが他の乗算器と共有するために乗算器を拡張する最小語長。詳細については、乗算器拡張のしきい値を参照してください。

リソース共有の最適化を使用して、設計内の Multiply-Add ブロックを共有します。詳細については、乗算器の共有を参照してください。

リソース共有の最適化のための共有 Multiply-Add ブロックの最小ビット幅。正の整数として指定します。詳細については、Multiply-Add ブロック共有の最小ビット幅を参照してください。

リソース共有の最適化を使用して、設計内の Atomic Subsystem ブロックを共有します。詳細については、Atomic サブシステムの共有を参照してください。

リソース共有の最適化を使用して、設計内の MATLAB Function ブロックを共有します。詳細については、MATLAB Function ブロックの共有を参照してください。

リソース共有の最適化を使用して、設計内の浮動小数点 IP を共有します。詳細については、浮動小数点 IP の共有を参照してください。

浮動小数点のターゲット

すべて折りたたむ

詳細については、浮動小数点 IP ライブラリのパラメーターを参照してください。

コード生成レポートのオプション

すべて折りたたむ

コードからモデルへ、モデルからコードへ移動するハイパーリンクを含むトレーサビリティ レポートを生成します。詳細については、トレーサビリティ レポートの生成を参照してください。

コードからモデルへ、モデルからコードへ移動するために、各行からのハイパーリンク、またはコードのブロックを示すコメントへのハイパーリンクを含むトレーサビリティ レポートを生成します。詳細については、トレーサビリティ スタイルを参照してください。

生成される HDL コードによって使用されるハードウェア リソースの数を表示するリソース利用レポートを生成します。詳細については、リソース利用レポートを生成を参照してください。

ストリーミング、共有、分散型パイプライン方式などの最適化の効果を表示する最適化レポートを生成します。詳細については、最適化レポートを生成を参照してください。

コード生成レポートにモデルの Web 表示を生成し、コードとモデル間の移動を容易にします。詳細については、モデルの Web 表示を生成を参照してください。

クロック設定

すべて折りたたむ

生成される HDL コードで同期リセットと非同期リセットのどちらを使用するかを指定します。詳細については、リセット タイプを参照してください。

リセット入力信号のアサート レベルにアクティブ High かアクティブ Low のどちらを使用するかを指定します。詳細については、リセットのアサート レベルを参照してください。

クロック入力端子の名前を文字ベクトルとして指定します。詳細については、クロックの入力端子を参照してください。

クロック イネーブル入力端子の名前を文字ベクトルとして指定します。詳細については、クロック イネーブルの入力端子を参照してください。

リセット入力端子の名前。文字ベクトルとして指定します。

詳細については、リセットの入力端子を参照してください。

生成される HDL コードのアクティブなクロック エッジを指定します。詳細については、クロック エッジを参照してください。

HDL コードに単一クロック入力と複数クロック入力のどちらを生成するかを指定します。詳細については、クロック入力を参照してください。

グローバル オーバーサンプリング クロックの周波数。モデルのベース レートの整数倍として指定します。詳細については、を参照してください。

一般的なファイルおよび変数名のオプション

すべて折りたたむ

生成される HDL ファイルとテスト ベンチ ファイルのヘッダー内のコメント行を指定します。詳細については、ヘッダーのコメントを参照してください。

生成される Verilog ファイル名の拡張子を指定します。詳細については、Verilog ファイルの拡張子を参照してください。

生成される VHDL ファイル名の拡張子を指定します。詳細については、VHDL ファイルの拡張子を参照してください。

重複するエンティティまたはモジュール名を解決する接尾辞を文字ベクトルとして指定します。詳細については、エンティティ競合の接尾辞を参照してください。

パッケージ ファイル名の接尾辞を文字ベクトルとして指定します。詳細については、パッケージの接尾辞を参照してください。

詳細については、予約語の接尾辞を参照してください。

詳細については、エンティティとアーキテクチャーを分離を参照してください。

詳細については、分離する entity ファイルの接尾辞を参照してください。

詳細については、分離する arch ファイルの接尾辞を参照してください。

詳細については、VHDL アーキテクチャの名前を参照してください。

クロック プロセス名の接尾辞を文字ベクトルとして指定します。詳細については、クロック設定とタイミング コントローラーの接尾辞のパラメーター"クロックの process 文の接尾辞" セクションを参照してください。

詳細については、複素信号の接尾辞のパラメーター[複素数の虚数部の接尾辞] を参照してください。

詳細については、複素信号の接尾辞のパラメーター[複素数の実数部の接尾辞] を参照してください。

内部クロック イネーブル信号と制御フロー イネーブル信号の接頭辞。文字ベクトルとして指定します。詳細については、クロック イネーブル設定とパラメーターを参照してください。

生成される HDL コード内の個々のモジュールまたはエンティティの名前の接頭辞を指定します。HDL Coder™ は、生成されたスクリプト ファイルの名前にもこの接頭辞を適用します。

詳細については、言語固有の識別子と接尾辞のパラメーター[ModulePrefix] を参照してください。

詳細については、クロック設定とタイミング コントローラーの接尾辞のパラメーター[タイミング コントローラーの接尾辞] を参照してください。

詳細については、パイプラインの接尾辞を参照してください。

詳細については、VHDL ライブラリ名を参照してください。

詳細については、ブロック生成ラベルを参照してください。

詳細については、出力生成ラベルを参照してください。

詳細については、インスタンス生成ラベルを参照してください。

詳細については、インスタンスの接尾辞を参照してください。

詳細については、インスタンスの接頭辞を参照してください。

詳細については、ベクトルの接頭辞を参照してください。

詳細については、マップ ファイルの接尾辞を参照してください。

端子のコンフィギュレーション オプション

すべて折りたたむ

VHDL 入力は、'std_logic_vector' または 'signed/unsigned' データ型をもつことができます。Verilog 入力は 'wire' でなければなりません。

詳細については、入力と出力端子およびクロック イネーブルの出力タイプのパラメーターを参照してください。

VHDL 出力は、'Same as input data type''std_logic_vector'、または 'signed/unsigned' にすることができます。Verilog 出力は 'wire' でなければなりません。

詳細については、入力と出力端子およびクロック イネーブルの出力タイプのパラメーターを参照してください。

クロック イネーブル出力端子の名前。文字ベクトルとして指定します。

詳細については、クロック イネーブルの出力端子を参照してください。

詳細については、クロック イネーブルとリセット信号の最小化のパラメーターを参照してください。

詳細については、クロック イネーブルとリセット信号の最小化のパラメーターを参照してください。

詳細については、トリガー信号をクロックとして使用を参照してください。

詳細については、テスト ポイントの HDL DUT 端子生成の有効化を参照してください。

詳細については、端子のスカラー化を参照してください。

コーディング スタイル

すべて折りたたむ

詳細については、集合体で定数値を表現を参照してください。

詳細については、インラインの MATLAB Function ブロック コードを参照してください。

詳細については、すべての RAM ブロックを初期化を参照してください。

詳細については、RAM アーキテクチャを参照してください。

詳細については、レジスタのリセットによらない初期化を参照してください。

詳細については、中間信号を最小にするを参照してください。

詳細については、For-Generate ループの展開を参照してください。

詳細については、列挙型エンコード スキームを参照してください。

詳細については、スカラー化された端子名のインデックス付けを参照してください。

詳細については、レジスタに "rising_edge/falling_edge" スタイルを使用を参照してください。

詳細については、インラインの VHDL コンフィギュレーションを参照してください。

詳細については、固定値の表示方法の設定を参照してください。

生成される HDL コードを難読化するかどうかを指定します。詳細については、難読化された HDL コードの生成を参照してください。

テスト対象設計 (DUT) インターフェイスとさまざまなサブシステムレベルのインターフェイスで、バス信号の VHDL 構造レコード タイプを使用するコードを生成するかどうかを指定します。詳細については、生成された HDL コード内のバス構造を保持を参照してください。

詳細については、タイミング コントローラーの最適化を参照してください。

詳細については、タイミング コントローラーのアーキテクチャを参照してください。

詳細については、カスタム ファイルのヘッダー コメントを参照してください。

詳細については、カスタム ファイルのフッター コメントを参照してください。

詳細については、RTL の注釈のパラメーター[ヘッダーに時間/日付スタンプを出力] を参照してください。

詳細については、ブロック コメントに要件を含めるを参照してください。

詳細については、Verilog または SystemVerilog `timescale 命令の使用を参照してください。

詳細については、Verilog または SystemVerilog timescale の仕様を参照してください。

コーディング標準

すべて折りたたむ

生成される HDL コードが業界のコーディング標準ガイドラインに準拠しなければならないかどうかを指定します。詳細については、コーディング標準とレポート オプションの選択のパラメーターを参照してください。

HDL コードを生成するときに、業界のコーディング標準と共に使用するコーディング標準のカスタマイズ オブジェクト。詳細については、hdlcoder.CodingStandardを参照してください。

モデル生成パラメーター

すべて折りたたむ

詳細については、生成されたモデルを参照してください。

詳細については、検証モデルを参照してください。

詳細については、生成されたモデル名の接頭辞を参照してください。

詳細については、検証モデル名の接尾辞を参照してください。

詳細については、レイアウト スタイルを参照してください。

詳細については、信号の自動経路指定を参照してください。

詳細については、ブロック間の水平方向のスケーリングを参照してください。

詳細については、ブロック間の垂直方向のスケーリングを参照してください。

診断とコード生成の出力パラメーター

すべて折りたたむ

設計内のフィードバック ループを強調表示するかどうかを指定します。

クロックレート パイプラインの最適化に対する障壁を強調表示するかどうかを指定します。

分散型パイプラン方式を抑制するブロックを強調表示するかどうかを指定します。

詳細については、生成された HDL コード内での実数の有無のチェックを参照してください。

HDL コードを生成するか、生成されたモデルの表示のみを行うか、HDL コードを生成して生成されたモデルを表示するかを指定します。詳細については、コード生成の出力のパラメーター[HDL コードを生成] セクションを参照してください。

モデルの HDL コードを生成します。詳細については、コード生成の出力のパラメーター[HDL コードを生成] セクションを参照してください。

スクリプトの生成

すべて折りたたむ

詳細については、EDA スクリプトを生成を参照してください。

詳細については、コンパイルの初期化を参照してください。

詳細については、コンパイルの終了を参照してください。

詳細については、コンパイル ファイルの接尾辞を参照してください。

Verilog コンパイル コマンド。文字ベクトルとして指定します。SimulatorFlags の名前と値のペアで 1 番目の引数を指定し、モジュール名を 2 番目の引数に指定します。

詳細については、Verilog または SystemVerilog のコンパイル コマンドを参照してください。

VHDL コンパイル コマンド。文字ベクトルとして指定します。SimulatorFlags の名前と値のペアで 1 番目の引数を指定し、エンティティ名を 2 番目の引数に指定します。

詳細については、VHDL のコンパイル コマンドを参照してください。

詳細については、HDL lint ツールの選択を参照してください。

HDL lint の初期化名。文字ベクトルとして指定します。既定値は、HDLLintTool の名前と値のペアから派生します。

詳細については、lint の初期化を参照してください。

HDL lint コマンド。文字ベクトルとして指定します。既定値は、HDLLintTool の名前と値のペアから派生します。

詳細については、lint コマンドを参照してください。

HDL lint の終了。文字ベクトルとして指定します。既定値は、HDLLintTool の名前と値のペアから派生します。

詳細については、lint の終了を参照してください。

詳細については、合成ツールを選択を参照してください。

HDL 合成コマンド。文字ベクトルとして指定します。既定値は、HDLSynthTool の名前と値のペアから派生します。

詳細については、合成コマンドを参照してください。

HDL 合成スクリプト ファイル名の接尾辞。文字ベクトルとして指定します。既定値は、HDLSynthTool の名前と値のペアから派生します。

詳細については、合成ファイルの接尾辞を参照してください。

HDL 合成スクリプトの初期化。文字ベクトルとして指定します。既定値は、HDLSynthTool の名前と値のペアから派生します。

詳細については、合成の初期化を参照してください。

HDL 合成スクリプトの終了名。既定値は、HDLSynthTool の名前と値のペアから派生します。

詳細については、合成の終了を参照してください。

バージョン履歴

R2006b で導入