Сгенерируйте испытательный стенд HDL из модели или подсистемы
makehdltb(
генерирует HDL- испытательного стенда из указанной подсистемы или модели-ссылки.dut
)
Примечание
Если вы ранее не выполняли makehdl
в текущем MATLAB® сеанс, makehdltb
вызовы makehdl
сгенерировать код модели перед сгенерированием кода испытательного стенда. Свойства переданы в makehdl
сохраняются после makehdl
выполняет, и (если явно не переопределено) передаются в последующие makehdl
вызовы во время того же сеанса работы с MATLAB.
makehdltb(
генерирует HDL- испытательного стенда из указанной подсистемы или модели-ссылки с опциями, заданными одним или несколькими аргументы пары "имя-значение".dut
,Name,Value
)
Сгенерируйте VHDL® DUT и испытательный стенд для подсистемы.
Использовать makehdl
для генерации кода VHDL для подсистемы symmetric_fir
.
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® DUT и испытательный стенд для подсистемы.
Использовать makehdl
чтобы сгенерировать код Verilog для подсистемы symmetric_fir
.
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
папка.Сгенерируйте испытательный стенд DPI SystemVerilog для подсистемы.
Рассмотрите эту опцию, если генерация или симуляция HDL- испытательного стенда по умолчанию занимает много времени. Генерация испытательного стенда DPI может быть быстрее, чем версия по умолчанию, поскольку он не запускает Simulink® Симуляция для создания испытательного стенда данных. Симуляция испытательного стенда DPI с большим набором данных быстрее, чем версия по умолчанию, поскольку она не хранит входные или ожидаемые данные в отдельном файле. Требования к использованию этой функции см. в GenerateSVDPITestBench
свойство.
Использовать makehdl
чтобы сгенерировать код Verilog для подсистемы symmetric_fir
.
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
чтобы сгенерировать испытательный стенд для той же подсистемы. Укажите свой Симулятор HDL, чтобы кодер мог генерировать скрипты для создания и запуска сгенерированного кода SystemVerilog и C. Отключите генерацию испытательного стенда по умолчанию.
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'
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'TargetLanguage','Verilog'
'HDLSubsystem'
- Подсистема DUTУкажите Подсистему в модели, для которой необходимо сгенерировать испытательный стенд. Для получения дополнительной информации смотрите Сгенерировать HDL для.
'TargetLanguage'
- Целевой язык'VHDL'
(по умолчанию) | 'Verilog'
Укажите, нужно ли генерировать код VHDL или Verilog. Для получения дополнительной информации см. раздел Язык.
'TargetDirectory'
- Выходная директория'hdlsrc'
(по умолчанию) | вектор символовУкажите путь для записи сгенерированных файлов и HDL-кода. Для получения дополнительной информации см. раздел Папка.
'GenerateHDLTestBench'
- Сгенерируйте испытательный стенд HDL'on'
(по умолчанию) | 'off'
Кодер генерирует HDL- испытательного стенда, запустив симуляцию Simulink, чтобы захватить вход вектора и ожидаемые выходы данные для вашего DUT. Для получения дополнительной информации см. испытательный стенд HDL.
'GenerateSVDPITestBench'
- Сгенерируйте тестовый стенд SystemVerilog DPI'none'
(по умолчанию) | 'ModelSim'
| 'Incisive'
| 'VCS'
| 'Vivado Simulator'
Когда вы устанавливаете это свойство, кодер генерирует компонент интерфейса прямого программирования (DPI) для всей вашей модели Simulink, включая DUT и источники данных. Вся ваша модель должна поддерживать генерацию кода C с Simulink Coder™. Кодер генерирует испытательный стенд SystemVerilog, который сравнивает выходы компонента DPI с выходами реализации HDL вашего DUT. Кодер также создает общие библиотеки и генерирует скрипт симуляции для выбранного симулятора.
Рассмотрите использование этой опции, если испытательный стенд HDL по умолчанию занимает много времени, чтобы сгенерировать или моделировать. Генерация испытательного стенда DPI иногда быстрее, чем версия по умолчанию, потому что она не запускает полную симуляцию Simulink, чтобы создать испытательный стенд данные. Симуляция испытательного стенда DPI с большим набором данных быстрее, чем версия по умолчанию, поскольку она не хранит входные или ожидаемые данные в отдельном файле. Для получения примера смотрите Сгенерировать Испытательный стенд DPI SystemVerilog.
Чтобы использовать эту функцию, вы должны иметь лицензии HDL- Verifier™ и Simulink Coder. Чтобы запустить тестбенч SystemVerilog с сгенерированными кодами VHDL, необходимо иметь лицензию симуляции на смешанном языке для вашего Симулятора HDL.
Ограничения
Этот испытательный стенд не поддерживается, когда вы генерируете HDL-код для модели Simulink верхнего уровня. Ваша подсистема DUT должна отвечать следующим условиям:
Типы входных и выходных данных DUT не могут быть больше 64 биты.
Входные и выходные порты DUT не могут использовать перечисленные типы данных.
Входные и выходные порты не могут быть типами данных с одной точностью или с двойной точностью.
DUT не может иметь нескольких синхроимпульсов. Вы должны задать опцию генерации кода Clock inputs равную Single
.
Use trigger signal as clock не должны быть выбраны.
Если DUT использует векторные порты, необходимо использовать Scalarize vector ports для выравнивания интерфейса.
См. также испытательный стенд SystemVerilog DPI.
'GenerateCoSimBlock'
- Сгенерируйте блок HDL-косимуляции'off'
(по умолчанию) | 'on'
Сгенерируйте блок HDL Cosimulation, чтобы можно было симулировать DUT в Simulink с Симулятором HDL.
Для получения дополнительной информации см. Модель косимуляции.
'GenerateCoSimModel'
- Сгенерируйте модель HDL-косимуляции'ModelSim'
(по умолчанию) | 'Incisive'
| 'None'
Сгенерируйте модель, содержащую блок HDL Cosimulation для заданного Симулятора HDL.
Для получения дополнительной информации см. Модель косимуляции.
'HDLCodeCoverage'
- Включить покрытие кода на сгенерированном испытательном стенде'off'
(по умолчанию) | 'on'
Включите коммутаторы покрытия кода в сгенерированные скрипты сборки и выполнения. Эти переключатели включают покрытие кода для сгенерированного испытательного стенда. Задайте свои Симуляторы HDL в SimulationTool
свойство. Кодер генерирует скрипты сборки и выполнения для заданного симулятора.
Для получения дополнительной информации смотрите покрытие HDL-кода.
'SimulationTool'
- Симулятор HDL, где вы запустите сгенерированный испытательный стенд'ModelSim'
(по умолчанию) | 'Incisive'
| 'VCS'
| 'Vivado'
| 'Custom'
Это свойство относится к сгенерированным испытательным стендам. 'VCS'
и 'Vivado'
поддерживаются только для испытательных стендов SystemVerilog DPI. Когда вы выбираете 'Custom'
, инструмент использует пользовательские настройки скрипта. Смотрите свойства «Скрипт Генерации».
Для получения дополнительной информации см. раздел Инструмент симуляцию.
'ForceClock'
- Вход синхроимпульса'on'
(по умолчанию) | 'off'
Укажите, что сгенерированный испытательный стенд управляет входным сигналом включения синхроимпульса на основе ClockLowTime
и ClockHighTime
.
Для получения дополнительной информации см. Раздел «Форс-часы»
'ClockHighTime'
- Часы высокого времениЧасы высокого времени в течение тактового периода, указывается в наносекундах.
Для получения дополнительной информации смотрите Часы высокого времени (ns).
'ClockLowTime'
- Низкое время синхроимпульсаНизкое время синхронизации в течение тактового периода, заданное в наносекундах.
Для получения дополнительной информации смотрите Часы с низким временем (ns).
'ForceClockEnable'
- Вход включения синхроимпульса'on'
(по умолчанию) | 'off'
Укажите, что сгенерированный испытательный стенд управляет входным сигналом включения синхроимпульса.
Для получения дополнительной информации смотрите Force clock enable.
'TestBenchClockEnableDelay'
- Тактовые импульсы между сбросом и включением синхроимпульсаКоличество тактов между отключением сброса и установкой включения синхроимпульса, заданное в виде положительного целого числа.
Для получения дополнительной информации смотрите Задержка включения синхроимпульса (в тактах)
'ForceReset'
- Вход сброса силы'on'
(по умолчанию) | 'off'
Укажите, что сгенерированный испытательный стенд управляет входом сброса.
Для получения дополнительной информации см. Раздел «Сброс силы»
'ResetLength'
- Сброс установленного временного интервалаДлительность сброса задается как количество тактов.
Для получения дополнительной информации смотрите Сброс длины (в тактах).
'HoldInputDataBetweenSamples'
- Сохраните действительные данные для сигналов'on'
(по умолчанию) | 'off'
Сохраните действительные данные между выборками для сигналов, синхронизируемых с более низкой скоростью.
Для получения дополнительной информации см. Раздел «Удержание входных данных между выборками».
'HoldTime'
- Время удержания входов и принудительного сбросаВремя удержания входов и принудительного сброса, заданное в наносекундах.
Для получения дополнительной информации смотрите Hold time (ns).
'IgnoreDataChecking'
- Время ожидания после включения синхроимпульса перед проверкой выходных данныхВремя после включения синхроимпульса задается перед началом проверки выходных данных, заданное в количестве выборок.
Для получения дополнительной информации смотрите Игнорировать проверку выходных данных (количество выборок).
'InitializeTestBenchInputs'
- Инициализация входов испытательного стенда'off'
(по умолчанию) | 'on'
Инициализируйте входы испытательного стенда в нуле. Для получения дополнительной информации смотрите Инициализация входов испытательного стенда.
'TestBenchDataPostFix'
- Постфикс для имени файла данных тестового стенда'_data'
(по умолчанию) | вектор символовПостфикс для испытательного стенда файла данных, заданный как вектор символов.
Для получения дополнительной информации смотрите Испытательный стенд имя файла данных postfix.
'TestBenchPostFix'
- Постфикс для имени испытательного стенда'_tb'
(по умолчанию) | вектор символовПостфикс для испытательного стенда имени, заданный как вектор символов.
Для получения дополнительной информации смотрите испытательный стенд postfix.
'TestBenchReferencePostFix'
- Постфикс для опорного сигнала стенда'_ref'
(по умолчанию) | вектор символовПостфикс для испытательного стенда опорного сигнала, заданный как вектор символов.
Для получения дополнительной информации смотрите Испытательный стенд ссылки postfix.
'MultifileTestBench'
- Сгенерируйте несколько файлов testbench'off'
(по умолчанию) | 'on'
Разделите сгенерированные испытательные стенды на вспомогательные функции, данные и файлы HDL- испытательного стенда.
Для получения дополнительной информации см. Multi-file испытательный стенд.
'UseFileIOInTestBench'
- Используйте file ввод-вывод для чтения/записи тестовых данных'on'
(по умолчанию) | 'off'
Для получения дополнительной информации смотрите Использовать файл ввода-вывода для чтения/записи испытательного стенда данных.
'FPToleranceStrategy'
- Стратегия допуска с плавающей точкой'relative'
(по умолчанию) | 'ulp'
Проверка допуска с плавающей точкой на основе относительной погрешности или ULP. Для получения дополнительной информации см. раздел Проверка допусков с плавающей точкой на основе.
'FPToleranceValue'
- Стратегия допуска с плавающей точкой'relative'
(по умолчанию) | 'ulp'
Значение допуска с плавающей точкой в зависимости от FPToleranceStrategy
указано. Для получения дополнительной информации см. раздел «Значение допуска».
'ClockInputs'
- Один или несколько входов синхроимпульса'Single'
(по умолчанию) | 'Multiple'
Задайте, генерировать ли входные входы одного или нескольких синхроимпульсов в HDL-коде. Для получения дополнительной информации см. Раздел «входы синхроимпульса»
'ResetAssertedLevel'
- Установленный (активный) уровень сброса'active-high'
(по умолчанию) | 'active-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'
- Имена файлов сущностей Postfix для VHDL'_entity'
(по умолчанию) | вектор символовДля получения дополнительной информации см. раздел Разделение файла сущности постфикс.
'SplitArchFilePostfix'
- Имена файлов архитектуры Postfix для VHDL'_arch'
(по умолчанию) | вектор символовДля получения дополнительной информации см. Раздел «Разделение арочного файла» постфикс.
'PackagePostfix'
- Postfix для имени файла пакета'_pkg'
(по умолчанию) | вектор символовУкажите постфикс для имени файла пакета в виде вектора символов. Для получения дополнительной информации см. раздел Постфикс пакета.
'ComplexImagPostfix'
- Постфикс для мнимой части комплексного сигнала'_im'
(по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex imaginary part postfix в Параметрах Complex Signals Postfix.
'ComplexRealPostfix'
- Постфикс для мнимой части имен комплексных сигналов'_re'
(по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex real part postfix в Параметрах Complex Signals Postfix.
'EnablePrefix'
- Префикс для внутренних сигналов включения'enb'
(по умолчанию) | вектор символовПрефикс включения внутреннего синхроимпульса и управления сигналами включения потока, заданный как вектор символов. Для получения дополнительной информации смотрите Настройки и параметры включения синхроимпульса.
'SplitEntityArch'
- Разделение сущности и архитектуры VHDL на отдельные файлы'off'
(по умолчанию) | 'on'
Для получения дополнительной информации см. Раздел «Разделение сущности и архитектуры».
'UseVerilogTimescale'
- Сгенерируйте 'timescale
директивы компилятора'on'
(по умолчанию) | 'off'
Для получения дополнительной информации смотрите Использовать директивы шкалы времени Verilog.
'DateComment'
- Включить метку времени в заголовок'on'
(по умолчанию) | 'off'
Для получения дополнительной информации см. раздел Emit time/date stamp in header в параметрах аннотации RTL».
'InlineConfigurations'
- Включать строения VHDL'on'
(по умолчанию) | 'off'
Для получения дополнительной информации см. раздел Inline VHDL- строения.
'ScalarizePorts'
- Сплюсните векторные порты в скалярные порты'off'
(по умолчанию) | 'on'
| 'dutlevel'
Для получения дополнительной информации см. Раздел «Скаляризация портов».
'HDLCompileInit'
- Текст инициализации скрипта компиляции'vlib %s\n'
(по умолчанию) | вектор символовДля получения дополнительной информации см. Раздел «Компиляция инициализации».
'HDLCompileTerm'
- Текст завершения скрипта компиляции''
(по умолчанию) | вектор символовДля получения дополнительной информации смотрите Компиляция завершения.
'HDLCompileFilePostfix'
- Имя файла скрипта постфикса для компиляции'_compile.do'
(по умолчанию) | вектор символовДля получения дополнительной информации смотрите Компиляция файла postfix.
'HDLCompileVerilogCmd'
- команда компиляции Verilog'vlog %s %s\n'
(по умолчанию) | вектор символовКоманда компиляции Verilog, заданная как вектор символов. The SimulatorFlags
пара "имя-значение" задает первый аргумент, а имя модуля задает второй аргумент.
Для получения дополнительной информации см. «Компиляция команды для Verilog».
'HDLCompileVHDLCmd'
- команда компиляции VHDL'vcom %s %s\n'
(по умолчанию) | вектор символовКоманда компиляции VHDL, заданная как вектор символов. The SimulatorFlags
пара "имя-значение" задает первый аргумент, а имя сущности задает второй аргумент.
Для получения дополнительной информации смотрите команду Компиляции для VHDL.
'HDLSimCmd'
- команда симуляции HDL'vsim -voptargs=+acc %s.%s\n'
(по умолчанию) | вектор символовКоманда HDL simulation, заданная как вектор символов.
Для получения дополнительной информации см. команду симуляции».
'HDLSimInit'
- Имя инициализации скрипта симуляции['onbreak resume\n', 'onerror resume\n']
(по умолчанию) | вектор символовИнициализация для скрипта HDL-симуляции, заданная как вектор символов.
Для получения дополнительной информации см. Раздел «Инициализация симуляции».
'HDLSimTerm'
- имя завершения симуляции HDL'run -all'
(по умолчанию) | вектор символовИмя окончания для команды HDL- симуляции, заданное как вектор символов.
Для получения дополнительной информации см. Раздел «Завершение симуляции».
'HDLSimFilePostfix'
- Приписка для HDL-скрипта симуляции'_sim.do'
(по умолчанию) | вектор символовДля получения дополнительной информации смотрите Файл симуляции postfix.
'HDLSimViewWaveCmd'
- команда просмотра формы сигнала симуляции HDL'add wave sim:%s\n'
(по умолчанию) | вектор символовКоманда просмотра формы волны, заданная как вектор символов. Неявный аргумент добавляет пути сигнала для входных, выходных и выходных опорных сигналов верхнего уровня DUT.
Для получения дополнительной информации смотрите команду просмотра формы волны симуляции.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.