Main Content

makehdltb

モデルまたはサブシステムから HDL テスト ベンチを生成

説明

makehdltb(dut) は、指定されたサブシステムまたはモデル参照から HDL テスト ベンチを生成します。

makehdltb(dut,Name,Value) は、1 つ以上の名前と値のペアの引数で指定されたオプションを使用して、指定されたサブシステムまたはモデル参照から HDL テスト ベンチを生成します。

メモ

  • 現在の MATLAB® セッション内でまだ makehdl を実行していない場合、makehdltb はテスト ベンチ コードを生成する前に makehdl を呼び出してモデル コードを生成します。makehdl に渡されたプロパティが makehdl の実行後も保持され、(明示的にオーバーライドしない限り) 同じ MATLAB セッションの以降の makehdltb の呼び出しに渡されます。

  • テスト ベンチ コードとモデル コードの両方を同じターゲット言語で生成する必要があります。makehdltb に指定されたターゲット言語が前の makehdl の実行で指定されたターゲット言語と異なる場合、makehdltb はテスト ベンチに指定された同じ言語でモデル コードを再生成します。

すべて折りたたむ

サブシステムの VHDL® DUT およびテスト ベンチを生成します。

makehdl を使用してサブシステム symmetric_fir の VHDL コードを生成します。

makehdl('sfir_fixed/symmetric_fir')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, 
    and 0 messages.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as 
    hdlsrc\sfir_fixed\symmetric_fir.vhd
### HDL code generation complete.

makehdl が完了したら、makehdltb を使用して同じサブシステムの VHDL テスト ベンチを生成します。

makehdltb('sfir_fixed/symmetric_fir')
### Begin TestBench generation.
### Generating HDL TestBench for 'sfir_fixed/symmetric_fir'.
### Begin simulation of the model 'gm_sfir_fixed'...
### Collecting data...
### Generating test bench: hdlsrc\sfir_fixed\symmetric_fir_tb.vhd
### Creating stimulus vectors...
### HDL TestBench generation complete.
生成された VHDL テスト ベンチ コードが hdlsrc フォルダーに保存されます。

サブシステムの Verilog® DUT およびテスト ベンチを生成します。

makehdl を使用してサブシステム symmetric_fir の Verilog コードを生成します。

makehdl('sfir_fixed/symmetric_fir','TargetLanguage','Verilog')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, 
    and 0 messages.
### Begin Verilog Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as 
    hdlsrc\sfir_fixed\symmetric_fir.v
### HDL code generation complete.

makehdl が完了したら、makehdltb を使用して同じサブシステムの Verilog テスト ベンチを生成します。

makehdltb('sfir_fixed/symmetric_fir','TargetLanguage','Verilog')
### Begin TestBench generation.
### Generating HDL TestBench for 'sfir_fixed/symmetric_fir'.
### Begin simulation of the model 'gm_sfir_fixed'...
### Collecting data...
### Generating test bench: hdlsrc\sfir_fixed\symmetric_fir_tb.v
### Creating stimulus vectors...
### HDL TestBench generation complete.
生成された Verilog テスト ベンチ コードが hdlsrc\sfir_fixed フォルダーに保存されます。

サブシステムの SystemVerilog DUT およびテスト ベンチを生成します。

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

makehdl('sfir_fixed/symmetric_fir','TargetLanguage','SystemVerilog')

makehdl が完了したら、makehdltb を使用して同じサブシステムの SystemVerilog テスト ベンチを生成します。

makehdltb('sfir_fixed/symmetric_fir','TargetLanguage','SystemVerilog')
symmetric_fir サブシステムに対して生成された SystemVerilog テスト ベンチ コードは、hdlsrc\sfir_fixed\symmetric_fir_tb.sv に保存されます。

サブシステムの SystemVerilog DPI テスト ベンチを生成します。

既定の HDL テスト ベンチの生成またはシミュレーションに長い時間がかかる場合、このオプションを検討してください。DPI テスト ベンチの生成では、テスト ベンチ データを作成するために Simulink® シミュレーションが実行されないため、既定のバージョンよりも高速になる可能性があります。大容量のデータセットをもつ DPI テスト ベンチのシミュレーションでは、個別のファイルに入力または想定されたデータが格納されないため、既定のバージョンよりも高速になります。この機能を使用するための要件については、GenerateSVDPITestBench プロパティを参照してください。

makehdl を使用してサブシステム symmetric_fir の Verilog コードを生成します。

makehdl('sfir_fixed/symmetric_fir','TargetLanguage','Verilog')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, 
    and 0 messages.
### Begin Verilog Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as 
    hdlsrc\sfir_fixed\symmetric_fir.v
### HDL code generation complete.

コードが生成されたら、makehdltb を使用して同じサブシステムのテスト ベンチを生成します。生成された SystemVerilog および C のコードをビルドして実行するスクリプトを生成できるように、HDL シミュレーターを指定します。既定のテスト ベンチの生成は無効にします。

makehdltb('sfir_fixed/symmetric_fir','TargetLanguage','Verilog',...
      'GenerateSVDPITestBench','ModelSim','GenerateHDLTestBench','off')
### Start checking model compatibility with SystemVerilog DPI testbench
### Finished checking model compatibility with SystemVerilog DPI testbench
### Preparing generated model for SystemVerilog DPI component generation
### Generating SystemVerilog DPI component
### Starting build procedure for model: gm_sfir_fixed_ref
### Starting SystemVerilog DPI Component Generation
### Generating DPI H Wrapper gm_sfir_fixed_ref_dpi.h
### Generating DPI C Wrapper gm_sfir_fixed_ref_dpi.c
### Generating SystemVerilog module gm_sfir_fixed_ref_dpi.sv using template C:\matlab\toolbox\hdlverifier\dpigenerator\rtw\hdlverifier_dpitb_template.vgt
### Generating makefiles for: gm_sfir_fixed_ref_dpi
### Invoking make to build the DPI Shared Library
### Successful completion of build procedure for model: gm_sfir_fixed_ref
### Working on symmetric_fir_dpi_tb as hdlsrc\sfir_fixed\symmetric_fir_dpi_tb.sv.
### Generating SystemVerilog DPI testbench simulation script for ModelSim/QuestaSim hdlsrc\sfir_fixed\symmetric_fir_dpi_tb.do

### HDL TestBench generation complete.
生成された SystemVerilog および C のテスト ベンチ ファイルとビルド スクリプトが hdlsrc\sfir_fixed フォルダーに保存されます。

入力引数

すべて折りたたむ

DUT サブシステムまたはモデル参照の絶対階層パスを含む名前。文字ベクトルとして指定します。

例: 'modelname/subsysTarget'

例: 'modelname/subsysA/subsysB/subsysTarget'

名前と値の引数

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

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

例: 'TargetLanguage','Verilog'

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

すべて折りたたむ

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

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

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

テスト ベンチ生成出力のオプション

すべて折りたたむ

Simulink シミュレーションを実行して入力ベクトルおよび想定される DUT の出力データを取得することで、HDL テスト ベンチが生成されます。詳細については、HDL テスト ベンチを参照してください。

このプロパティを設定すると、DUT およびデータ ソースを含む Simulink モデル全体に対する Direct Programming Interface (DPI) コンポーネントが生成されます。モデル全体で、Simulink Coder™ による C コードの生成をサポートしなければなりません。DPI コンポーネントの出力を DUT の HDL 実装の出力と比較する SystemVerilog テスト ベンチが生成されます。共有ライブラリも構築され、選択したシミュレーターのシミュレーション スクリプトが生成されます。

既定の HDL テスト ベンチで生成またはシミュレーションに長い時間がかかる場合、このオプションの使用を検討してください。DPI テスト ベンチの生成では、テスト ベンチ データを作成するために完全な Simulink シミュレーションが実行されないため、既定のバージョンよりも高速になることがあります。大容量のデータセットをもつ DPI テスト ベンチのシミュレーションでは、個別のファイルに入力または想定されたデータが格納されないため、既定のバージョンよりも高速になります。例については、SystemVerilog DPI テスト ベンチの生成を参照してください。

この機能を使用するには、HDL Verifier™ および Simulink Coder のライセンスが必要です。生成された VHDL コードで SystemVerilog テストベンチを実行するには、HDL シミュレーター用の混合言語シミュレーション ライセンスがなければなりません。

制限

このテスト ベンチは、最上位の Simulink モデルの HDL コードを生成するときはサポートされません。DUT サブシステムは、次の条件を満たしていなければなりません。

  • DUT の入力データ型と出力データ型を 64 ビットより大きくすることはできません。

  • DUT の入力端子と出力端子に列挙データ型を使用することはできません。

  • 入力端子と出力端子に単精度データ型または倍精度データ型を使用することはできません。

  • DUT に複数のクロックを設定することはできません。[クロックの入力] コード生成オプションを [単一] に設定しなければなりません。

  • [トリガー信号をクロックとして使用] を選択してはなりません。

  • DUT がベクトル端子を使用する場合、[ベクトル端子のスカラー化] を使用してインターフェイスをフラットにしなければなりません。

SystemVerilog DPI test benchも参照してください。

HDL Cosimulation ブロックを生成します。これにより、HDL シミュレーターを使用して Simulink で DUT をシミュレートできます。

詳細については、Cosimulation modelを参照してください。

指定した HDL シミュレーター用の HDL Cosimulation ブロックを含むモデルを生成します。

詳細については、Cosimulation modelを参照してください。

生成されたビルドと実行スクリプトにコード カバレッジのスイッチを含めます。これらのスイッチにより、生成されたテスト ベンチのコード カバレッジがオンになります。SimulationTool プロパティで HDL シミュレーターを指定します。指定したシミュレーター用のビルドと実行スクリプトが生成されます。

GenerateCoSimModel 引数が Xilinx Vivado Simulator に設定されている場合、コード カバレッジはサポートされず、この入力は無視されます。

詳細については、HDL コード カバレッジを参照してください。

このプロパティは、生成されたテスト ベンチに適用されます。'Custom' を選択すると、ツールでカスタム スクリプト設定が使用されます。「スクリプトの生成」のプロパティを参照してください。

詳細については、Simulation toolを参照してください。

クロックとリセットの入力のオプション

すべて折りたたむ

生成されたテスト ベンチで ClockLowTimeClockHighTime に基づいてクロック イネーブル入力を駆動することを指定します。

詳細については、クロック信号生成を参照してください。

クロック周期におけるクロック High 時間。ナノ秒単位で指定します。

詳細については、クロック High 時間 (ns)を参照してください。

クロック周期におけるクロック Low 時間。ナノ秒単位で指定します。

詳細については、クロック Low 時間 (ns)を参照してください。

生成されたテスト ベンチでクロック イネーブル入力を駆動することを指定します。

詳細については、クロック イネーブル信号生成を参照してください。

リセットのデアサーションとクロック イネーブルのアサーションの間のクロック サイクル数。正の整数として指定します。

詳細については、クロック イネーブル信号の遅延時間 (クロック サイクル単位)を参照してください。

生成されたテスト ベンチでリセット入力を駆動することを指定します。

詳細については、リセット信号生成を参照してください。

リセットがアサートされる時間の長さ。クロック サイクル数として指定します。

詳細については、リセット信号の長さ (クロック サイクル単位)を参照してください。

テストベンチのスティミュラスと応答のパラメーター

すべて折りたたむ

遅いレートのクロックで動作する信号用にサンプル間の有効なデータをホールドします。

詳細については、サンプル間の入力データをホールドを参照してください。

入力とリセット生成のホールド時間。ナノ秒単位で指定します。

詳細については、ホールド時間 (ns)を参照してください。

クロック イネーブルがアサートされてから出力データのチェックを開始するまでの時間。サンプル数単位で指定します。

詳細については、出力データのチェックを無視 (サンプル数)を参照してください。

テスト ベンチの入力をゼロに初期化します。詳細については、テスト ベンチの入力を初期化を参照してください。

テストベンチのコンフィギュレーション パラメーター

すべて折りたたむ

テスト ベンチ データ ファイル名の接尾辞。文字ベクトルとして指定します。

詳細については、テスト ベンチ データ ファイル名の接尾辞を参照してください。

テスト ベンチ名の接尾辞。文字ベクトルとして指定します。

詳細については、Test bench name postfixを参照してください。

テスト ベンチの基準信号名の接尾辞。文字ベクトルとして指定します。

詳細については、テスト ベンチ参照の接尾辞を参照してください。

生成されたテスト ベンチを補助関数、データ、HDL テスト ベンチ ファイルに分割します。

詳細については、複数ファイルのテスト ベンチを参照してください。

浮動小数点許容誤差のオプション

すべて折りたたむ

相対誤差または ULP に基づく浮動小数点許容誤差チェック。詳細については、Floating point tolerance check based onを参照してください。

指定した FPToleranceStrategy に応じた浮動小数点許容誤差の値。詳細については、許容誤差の値を参照してください。

端子の名前とタイプ

すべて折りたたむ

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

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

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

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

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

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

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

詳細については、Reset input portを参照してください。

ファイルと変数の名前

すべて折りたたむ

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

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

詳細については、VHDL architecture nameを参照してください。

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

詳細については、Split entity file postfixを参照してください。

詳細については、Split arch file postfixを参照してください。

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

詳細については、複素数の虚数部の接尾辞を参照してください。

詳細については、複素数の実数部の接尾辞を参照してください。

内部クロック イネーブル信号と制御フロー イネーブル信号の接頭辞。文字ベクトルとして指定します。詳細については、[クロック イネーブルの入力端子] および [イネーブル信号の接頭辞] を参照してください。

コーディング スタイル

すべて折りたたむ

詳細については、Split entity and architectureを参照してください。

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

詳細については、Emit time/date stamp in headerを参照してください。

詳細については、Inline VHDL configurationを参照してください。

詳細については、Scalarize portsを参照してください。

スクリプトの生成

すべて折りたたむ

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

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

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

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

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

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

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

HDL シミュレーション コマンド。文字ベクトルとして指定します。

詳細については、Simulation commandを参照してください。

HDL シミュレーション スクリプトの初期化。文字ベクトルとして指定します。

詳細については、シミュレーションの初期化を参照してください。

HDL シミュレーション コマンドの終了名。文字ベクトルとして指定します。

詳細については、シミュレーションの終了を参照してください。

詳細については、Simulation file postfixを参照してください。

波形表示コマンド。文字ベクトルとして指定します。暗黙的な引数が DUT 最上位の入力、出力および出力基準信号の信号パスを追加します。

詳細については、シミュレーションの波形表示コマンドを参照してください。

バージョン履歴

R2006b で導入

参考