makehdltb
モデルまたはサブシステムから HDL テスト ベンチを生成
説明
makehdltb(
は、1 つ以上の名前と値のペアの引数で指定されたオプションを使用して、指定されたサブシステムまたはモデル参照から HDL テスト ベンチを生成します。 dut
,Name,Value
)
メモ
現在の MATLAB® セッション内でまだ
makehdl
を実行していない場合、makehdltb
はテスト ベンチ コードを生成する前にmakehdl
を呼び出してモデル コードを生成します。makehdl
に渡されたプロパティがmakehdl
の実行後も保持され、(明示的にオーバーライドしない限り) 同じ MATLAB セッションの以降のmakehdltb
の呼び出しに渡されます。テスト ベンチ コードとモデル コードの両方を同じターゲット言語で生成する必要があります。
makehdltb
に指定されたターゲット言語が前のmakehdl
の実行で指定されたターゲット言語と異なる場合、makehdltb
はテスト ベンチに指定された同じ言語でモデル コードを再生成します。
例
VHDL テスト ベンチの生成
サブシステムの 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.
hdlsrc
フォルダーに保存されます。Verilog テスト ベンチの生成
サブシステムの 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.
hdlsrc\sfir_fixed
フォルダーに保存されます。SystemVerilog DPI テスト ベンチの生成
サブシステムの 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.
hdlsrc\sfir_fixed
フォルダーに保存されます。入力引数
dut
— DUT サブシステムまたはモデル参照の名前
文字ベクトル
DUT サブシステムまたはモデル参照の絶対階層パスを含む名前。文字ベクトルとして指定します。
例: 'modelname/subsysTarget'
例: 'modelname/subsysA/subsysB/subsysTarget'
名前と値の引数
オプションの引数ペアを Name1=Value1,...,NameN=ValueN
で指定します。Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数より後に配置する必要がありますが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'TargetLanguage','Verilog'
HDLSubsystem
— DUT サブシステム
文字ベクトル
モデル内のテスト ベンチを生成するサブシステムを指定します。詳細については、HDL を生成を参照してください。
TargetLanguage
— ターゲット言語
'VHDL'
(既定値) | 'Verilog'
VHDL または Verilog コードのどちらを生成するかを指定します。詳細については、言語を参照してください。
TargetDirectory
— 出力ディレクトリ
'hdlsrc'
(既定値) | 文字ベクトル
生成されるファイルと HDL コードを書き込むパスを指定します。詳細については、フォルダーを参照してください。
GenerateHDLTestBench
— HDL テスト ベンチを生成
'on'
(既定値) | 'off'
Simulink シミュレーションを実行して入力ベクトルおよび想定される DUT の出力データを取得することで、HDL テスト ベンチが生成されます。詳細については、HDL テスト ベンチを参照してください。
GenerateSVDPITestBench
— SystemVerilog DPI テスト ベンチを生成
'none'
(既定値) | 'ModelSim'
| 'Incisive'
| 'VCS'
| 'Vivado Simulator'
このプロパティを設定すると、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 テスト ベンチも参照してください。
GenerateCoSimBlock
— HDL Cosimulation ブロックを生成
'off'
(既定値) | 'on'
HDL Cosimulation ブロックを生成します。これにより、HDL シミュレーターを使用して Simulink で DUT をシミュレートできます。
詳細については、コシミュレーション モデルを参照してください。
GenerateCoSimModel
— HDL コシミュレーション モデルを生成
'ModelSim'
(既定値) | 'Incisive'
| 'Vivado Simulator'
| 'None'
指定した HDL シミュレーター用の HDL Cosimulation ブロックを含むモデルを生成します。
詳細については、コシミュレーション モデルを参照してください。
HDLCodeCoverage
— 生成されたテスト ベンチでコード カバレッジを有効化
'off'
(既定値) | 'on'
生成されたビルドと実行スクリプトにコード カバレッジのスイッチを含めます。これらのスイッチにより、生成されたテスト ベンチのコード カバレッジがオンになります。SimulationTool
プロパティで HDL シミュレーターを指定します。指定したシミュレーター用のビルドと実行スクリプトが生成されます。
GenerateCoSimModel
引数が Xilinx Vivado Simulator
に設定されている場合、コード カバレッジはサポートされず、この入力は無視されます。
詳細については、HDL コード カバレッジを参照してください。
SimulationTool
— 生成されたテスト ベンチを実行する HDL シミュレーター
'Mentor Graphics ModelSim'
(既定値) | 'Cadence Incisive'
| 'Xilinx Vivado Simulator'
| 'Custom'
このプロパティは、生成されたテスト ベンチに適用されます。'Custom'
を選択すると、ツールでカスタム スクリプト設定が使用されます。「スクリプトの生成」のプロパティを参照してください。
詳細については、シミュレーション ツールを参照してください。
ForceClock
— クロック入力を生成
'on'
(既定値) | 'off'
生成されたテスト ベンチで ClockLowTime
と ClockHighTime
に基づいてクロック イネーブル入力を駆動することを指定します。
詳細については、クロック信号生成を参照してください。
ClockHighTime
— クロック High 時間
5 (既定値) | 正の整数
クロック周期におけるクロック High 時間。ナノ秒単位で指定します。
詳細については、クロック High 時間 (ns)を参照してください。
ClockLowTime
— クロック Low 時間
5 (既定値) | 正の整数
クロック周期におけるクロック Low 時間。ナノ秒単位で指定します。
詳細については、クロック Low 時間 (ns)を参照してください。
ForceClockEnable
— クロック イネーブル入力を生成
'on'
(既定値) | 'off'
生成されたテスト ベンチでクロック イネーブル入力を駆動することを指定します。
詳細については、クロック イネーブル信号生成を参照してください。
TestBenchClockEnableDelay
— リセットとクロック イネーブルの間のクロック サイクル
1 (既定値) | 正の整数
リセットのデアサーションとクロック イネーブルのアサーションの間のクロック サイクル数。正の整数として指定します。
詳細については、クロック イネーブル信号の遅延時間 (クロック サイクル単位)を参照してください。
ForceReset
— リセット入力を生成
'on'
(既定値) | 'off'
生成されたテスト ベンチでリセット入力を駆動することを指定します。
詳細については、リセット信号生成を参照してください。
ResetLength
— リセットがアサートされる時間の長さ
2 (既定値) | 0 以上の整数
リセットがアサートされる時間の長さ。クロック サイクル数として指定します。
詳細については、リセット信号の長さ (クロック サイクル単位)を参照してください。
HoldInputDataBetweenSamples
— 信号用に有効なデータをホールド
'on'
(既定値) | 'off'
遅いレートのクロックで動作する信号用にサンプル間の有効なデータをホールドします。
詳細については、サンプル間の入力データをホールドを参照してください。
HoldTime
— 入力とリセット生成のホールド時間
2 (既定値) | 正の整数
入力とリセット生成のホールド時間。ナノ秒単位で指定します。
詳細については、ホールド時間 (ns)を参照してください。
IgnoreDataChecking
— クロック イネーブルの後に出力データをチェックするまでの待機時間
0 (既定値) | 正の整数
クロック イネーブルがアサートされてから出力データのチェックを開始するまでの時間。サンプル数単位で指定します。
詳細については、出力データのチェックを無視 (サンプル数)を参照してください。
InitializeTestBenchInputs
— テスト ベンチの入力を初期化
'off'
(既定値) | 'on'
テスト ベンチの入力をゼロに初期化します。詳細については、テスト ベンチの入力を初期化を参照してください。
TestBenchDataPostFix
— テスト ベンチ データ ファイル名の接尾辞
'_data'
(既定値) | 文字ベクトル
テスト ベンチ データ ファイル名の接尾辞。文字ベクトルとして指定します。
詳細については、テスト ベンチ データ ファイル名の接尾辞を参照してください。
TestBenchPostFix
— テスト ベンチ名の接尾辞
'_tb'
(既定値) | 文字ベクトル
テスト ベンチ名の接尾辞。文字ベクトルとして指定します。
詳細については、テスト ベンチ名の接尾辞を参照してください。
TestBenchReferencePostFix
— テスト ベンチの基準信号の接尾辞
'_ref'
(既定値) | 文字ベクトル
テスト ベンチの基準信号名の接尾辞。文字ベクトルとして指定します。
詳細については、テスト ベンチ参照の接尾辞を参照してください。
MultifileTestBench
— 複数のテストベンチ ファイルを生成
'off'
(既定値) | 'on'
生成されたテスト ベンチを補助関数、データ、HDL テスト ベンチ ファイルに分割します。
詳細については、複数ファイルのテスト ベンチを参照してください。
UseFileIOInTestBench
— ファイル I/O によるテスト ベンチ データの読み取り/書き込みを行う
'on'
(既定値) | 'off'
詳細については、ファイル I/O によるテスト ベンチ データの読み取り/書き込みを行うを参照してください。
FPToleranceStrategy
— 浮動小数点許容誤差手法
'relative'
(既定値) | 'ulp'
相対誤差または ULP に基づく浮動小数点許容誤差チェック。詳細については、浮動小数点許容誤差チェックの基準を参照してください。
FPToleranceValue
— 浮動小数点許容誤差手法
'relative'
(既定値) | 'ulp'
指定した FPToleranceStrategy
に応じた浮動小数点許容誤差の値。詳細については、許容誤差の値を参照してください。
ClockInputs
— 単一または複数のクロック入力
'Single'
(既定値) | 'Multiple'
HDL コードに単一クロック入力と複数クロック入力のどちらを生成するかを指定します。詳細については、クロック入力を参照してください。
ResetAssertedLevel
— リセットのアサート (アクティブ) レベル
'active-high'
(既定値) | 'active-low'
リセット入力信号のアサート レベルにアクティブ High かアクティブ Low のどちらを使用するかを指定します。詳細については、リセットのアサート レベルを参照してください。
ClockEnableInputPort
— クロック イネーブル入力端子の名前
'clk_enable'
(既定値) | 文字ベクトル
クロック イネーブル入力端子の名前を文字ベクトルとして指定します。詳細については、クロック イネーブルの入力端子を参照してください。
ClockEnableOutputPort
— クロック イネーブル出力端子の名前
'ce_out'
(既定値) | 文字ベクトル
クロック イネーブル出力端子の名前。文字ベクトルとして指定します。
詳細については、クロック イネーブルの出力端子を参照してください。
ClockInputPort
— クロック入力端子の名前
'clk'
(既定値) | 文字ベクトル
クロック入力端子の名前を文字ベクトルとして指定します。詳細については、クロックの入力端子を参照してください。
ResetInputPort
— リセット入力端子の名前
'reset'
(既定値) | 文字ベクトル
リセット入力端子の名前。文字ベクトルとして指定します。
詳細については、リセットの入力端子を参照してください。
VerilogFileExtension
— Verilog ファイルの拡張子
'.v'
(既定値) | 文字ベクトル
生成される Verilog ファイル名の拡張子を指定します。詳細については、Verilog ファイルの拡張子を参照してください。
VHDLFileExtension
— VHDL ファイルの拡張子
'.vhd'
(既定値) | 文字ベクトル
生成される VHDL ファイル名の拡張子を指定します。詳細については、VHDL ファイルの拡張子を参照してください。
VHDLArchitectureName
— VHDL アーキテクチャの名前
'rtl'
(既定値) | 文字ベクトル
詳細については、VHDL アーキテクチャの名前を参照してください。
VHDLLibraryName
— VHDL ライブラリ名
'work'
(既定値) | 文字ベクトル
詳細については、VHDL ライブラリ名を参照してください。
SplitEntityFilePostfix
— VHDL エンティティ ファイル名の接尾辞
'_entity'
(既定値) | 文字ベクトル
詳細については、分離する entity ファイルの接尾辞を参照してください。
SplitArchFilePostfix
— VHDL アーキテクチャ ファイル名の接尾辞
'_arch'
(既定値) | 文字ベクトル
詳細については、分離する arch ファイルの接尾辞を参照してください。
PackagePostfix
— パッケージ ファイル名の接尾辞
'_pkg'
(既定値) | 文字ベクトル
パッケージ ファイル名の接尾辞を文字ベクトルとして指定します。詳細については、パッケージの接尾辞を参照してください。
ComplexImagPostfix
— 複素信号の虚数部の接尾辞
'_im'
(既定値) | 文字ベクトル
詳細については、複素信号の接尾辞のパラメーターの [複素数の虚数部の接尾辞] を参照してください。
ComplexRealPostfix
— 複素信号名の虚数部の接尾辞
'_re'
(既定値) | 文字ベクトル
詳細については、複素信号の接尾辞のパラメーターの [複素数の実数部の接尾辞] を参照してください。
EnablePrefix
— 内部イネーブル信号の接頭辞
'enb'
(既定値) | 文字ベクトル
内部クロック イネーブル信号と制御フロー イネーブル信号の接頭辞。文字ベクトルとして指定します。詳細については、クロック イネーブル設定とパラメーターを参照してください。
SplitEntityArch
— VHDL エンティティとアーキテクチャを別々のファイルに分割
'off'
(既定値) | 'on'
詳細については、エンティティとアーキテクチャーを分離を参照してください。
UseVerilogTimescale
— 'timescale
コンパイラ命令を生成
'on'
(既定値) | 'off'
詳細については、Verilog `timescale 文の記載を指定を参照してください。
DateComment
— ヘッダーにタイム スタンプを含める
'on'
(既定値) | 'off'
詳細については、RTL の注釈のパラメーターの [ヘッダーに時間/日付スタンプを出力] を参照してください。
InlineConfigurations
— VHDL コンフィギュレーションを含める
'on'
(既定値) | 'off'
詳細については、インラインの VHDL コンフィギュレーションを参照してください。
ScalarizePorts
— ベクトル端子をスカラー端子にフラット化
'off'
(既定値) | 'on'
| 'dutlevel'
詳細については、端子のスカラー化を参照してください。
HDLCompileInit
— コンパイル スクリプトの初期化テキスト
'vlib %s\n'
(既定値) | 文字ベクトル
詳細については、コンパイルの初期化を参照してください。
HDLCompileTerm
— コンパイル スクリプトの終了テキスト
''
(既定値) | 文字ベクトル
詳細については、コンパイルの終了を参照してください。
HDLCompileFilePostfix
— コンパイル スクリプト ファイル名の接尾辞
'_compile.do'
(既定値) | 文字ベクトル
詳細については、コンパイル ファイルの接尾辞を参照してください。
HDLCompileVerilogCmd
— Verilog コンパイル コマンド
'vlog %s %s\n'
(既定値) | 文字ベクトル
Verilog コンパイル コマンド。文字ベクトルとして指定します。SimulatorFlags
の名前と値のペアで 1 番目の引数を指定し、モジュール名を 2 番目の引数に指定します。
詳細については、Verilog のコンパイル コマンドを参照してください。
HDLCompileVHDLCmd
— VHDL コンパイル コマンド
'vcom %s %s\n'
(既定値) | 文字ベクトル
VHDL コンパイル コマンド。文字ベクトルとして指定します。SimulatorFlags
の名前と値のペアで 1 番目の引数を指定し、エンティティ名を 2 番目の引数に指定します。
詳細については、VHDL のコンパイル コマンドを参照してください。
HDLSimCmd
— HDL シミュレーション コマンド
'vsim -voptargs=+acc %s.%s\n'
(既定値) | 文字ベクトル
HDL シミュレーション コマンド。文字ベクトルとして指定します。
詳細については、シミュレーション コマンドを参照してください。
HDLSimInit
— HDL シミュレーション スクリプトの初期化名
['onbreak resume\n', 'onerror resume\n']
(既定値) | 文字ベクトル
HDL シミュレーション スクリプトの初期化。文字ベクトルとして指定します。
詳細については、シミュレーションの初期化を参照してください。
HDLSimTerm
— HDL シミュレーション スクリプトの終了名
'run -all'
(既定値) | 文字ベクトル
HDL シミュレーション コマンドの終了名。文字ベクトルとして指定します。
詳細については、シミュレーションの終了を参照してください。
HDLSimFilePostfix
— HDL シミュレーション スクリプトのポストスクリプト
'_sim.do'
(既定値) | 文字ベクトル
詳細については、シミュレーション ファイルの接尾辞を参照してください。
HDLSimViewWaveCmd
— HDL シミュレーションの波形表示コマンド
'add wave sim:%s\n'
(既定値) | 文字ベクトル
波形表示コマンド。文字ベクトルとして指定します。暗黙的な引数が DUT 最上位の入力、出力および出力基準信号の信号パスを追加します。
詳細については、シミュレーションの波形表示コマンドを参照してください。
バージョン履歴
R2006b で導入
参考
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)