makehdltb

Сгенерируйте испытательный стенд HDL из модели или подсистемы

Синтаксис

makehdltb(dut)
makehdltb(dut,Name,Value)

Описание

пример

makehdltb(dut) генерирует испытательный стенд HDL от заданной подсистемы или модели - ссылки.

Примечание

Если вы ранее не выполнили makehdl в текущем сеансе MATLAB®, makehdltb вызывает makehdl, чтобы сгенерировать типовой кодекс прежде, чем сгенерировать код испытательного стенда. Свойства, переданные в к makehdl, сохраняются после того, как makehdl выполняется, и (если явным образом не заменено) передаются последующим вызовам makehdl во время того же сеанса работы с MATLAB.

пример

makehdltb(dut,Name,Value) генерирует испытательный стенд HDL от заданной подсистемы или модели - ссылки с опциями, заданными одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

Сгенерируйте 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.
Сгенерированный код испытательного стенда VHDL сохранен в папке 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.
Сгенерированный код испытательного стенда Verilog сохранен в папке hdlsrc\sfir_fixed.

Сгенерируйте испытательный стенд SystemVerilog DPI для подсистемы.

Рассмотрите эту возможность, если генерация или симуляция испытательного стенда 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 и код С. Отключите генерацию испытательного стенда по умолчанию.

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'

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'TargetLanguage','Verilog'

Основные опции

свернуть все

Задайте, сгенерировать ли код VHDL или Verilog. Для получения дополнительной информации смотрите раздел Language в Цели.

Задайте путь, чтобы записать сгенерированные файлы и HDL-код в. Для получения дополнительной информации смотрите раздел Folder в Цели.

Для получения дополнительной информации смотрите Split entity and architecture в сущности Разделения и архитектуре.

Генерация испытательного стенда

свернуть все

Кодер генерирует испытательный стенд HDL путем выполнения симуляции Simulink, чтобы получить входные векторы и ожидаемые выходные данные для DUT. Для получения дополнительной информации смотрите Генерацию Испытательного стенда HDL test bench Вывод.

Когда вы устанавливаете это свойство, кодер генерирует компонент интерфейса программирования на машинном языке (DPI) для вашей целой модели Simulink, включая ваш DUT и источники данных. Ваша целая модель должна поддержать генерацию кода C с Simulink Coder™. Кодер генерирует испытательный стенд SystemVerilog, который сравнивает вывод компонента DPI с выводом реализации HDL вашего DUT. Кодер также создает совместно использованные библиотеки и генерирует скрипт симуляции для средства моделирования, которое вы выбираете.

Рассмотрите использование этой опции, если испытательный стенд HDL по умолчанию занимает много времени, чтобы сгенерировать или моделировать. Генерация испытательного стенда DPI иногда быстрее, чем версия по умолчанию, потому что это не запускает полную симуляцию Simulink, чтобы создать данные об испытательном стенде. Симуляция испытательного стенда DPI с большим набором данных быстрее, чем версия по умолчанию, потому что это не хранит вход или ожидаемые данные в отдельном файле. Для примера смотрите, Генерируют испытательный стенд SystemVerilog DPI.

Чтобы использовать эту функцию, у вас должны быть лицензии Simulink Coder и HDL Verifier™. Чтобы запустить испытательный стенд SystemVerilog со сгенерированным кодом VHDL, у вас должна быть лицензия симуляции на разных языках на ваш симулятор HDL.

Ограничения

Этот испытательный стенд не поддержан, когда вы генерируете HDL-код для модели Simulink верхнего уровня. Ваша подсистема DUT должна ответить следующим условиям:

  • Типы входных и выходных данных DUT не могут быть больше, чем 64 бита.

  • Порты ввода и вывода DUT не могут использовать перечисленные типы данных.

  • Порты ввода и вывода не могут быть типами данных с двойной точностью или с одинарной точностью.

  • DUT не может иметь нескольких часов. Необходимо установить опцию генерации кода Clock inputs на Single.

  • Use trigger signal as clock не должен быть выбран.

  • Если DUT использует векторные порты, необходимо использовать Scalarize vector ports, чтобы сгладить интерфейс.

Сгенерируйте блок HDL Cosimulation, таким образом, можно моделировать DUT в Simulink с симулятором HDL.

Для получения дополнительной информации смотрите GenerateCoSimBlock.

Сгенерируйте модель, содержащую блок HDL Cosimulation для заданного симулятора HDL.

Для получения дополнительной информации смотрите GenerateCoSimModel.

Включайте переключатели покрытия кода в сгенерированные build-run скрипты. Эти переключатели включают покрытие кода для сгенерированного испытательного стенда. Задайте свой симулятор HDL в свойстве SimulationTool. Кодер генерирует build-run скрипты для средства моделирования, которое вы задаете.

Это свойство применяется к сгенерированным испытательным стендам. 'VCS' и 'Vivado' поддерживаются только для испытательных стендов SystemVerilog DPI. Когда вы выбираете 'Custom', инструмент использует пользовательские настройки скрипта. Смотрите свойства “Script Generation”.

Настройка испытательного стенда

свернуть все

Укажите, что сгенерированные диски испытательного стенда часы включают вход на основе ClockLowTime и ClockHighTime.

Для получения дополнительной информации смотрите ForceClock.

Синхронизируйте пора в период часов, заданный в наносекундах.

Для получения дополнительной информации смотрите ClockHighTime.

Покажите низкое время в период часов, заданный в наносекундах.

Для получения дополнительной информации смотрите ClockLowTime.

Укажите, что сгенерированные диски испытательного стенда часы включают вход.

Для получения дополнительной информации смотрите ForceClockEnable.

Задайте, сгенерировать ли один или несколько входных параметров часов в HDL-коде. Для получения дополнительной информации смотрите входной раздел Часов в диспетчере Синхронизации Постфиксе и Установках часов.

Укажите, что сгенерированный испытательный стенд управляет входом сброса.

Для получения дополнительной информации смотрите ForceReset.

Отрезок времени, которые сбрасывают, утверждается, задается как количество тактов.

Для получения дополнительной информации смотрите.

Задайте, использовать ли возбуждаемый высоким уровнем сигнала или возбуждаемый низким уровнем сигнала утверждаемый уровень для входного сигнала сброса. Для получения дополнительной информации смотрите, что Сброс утверждал раздел уровня в Настройках Сброса.

Для получения дополнительной информации смотрите HoldInputDataBetweenSamples.

Время задержки для входных параметров и обеспеченного сброса, заданного в наносекундах.

Для получения дополнительной информации смотрите HoldTime.

Время после часов включает, утверждается прежде, чем запустить проверки выходных данных, заданные в количестве выборок.

Для получения дополнительной информации смотрите IgnoreDataChecking.

Для получения дополнительной информации смотрите InitializeTestBenchInputs.

Для получения дополнительной информации смотрите MultifileTestBench.

Для получения дополнительной информации смотрите UseFileIOInTestBench.

Для получения дополнительной информации смотрите TestBenchClockEnableDelay.

Для получения дополнительной информации смотрите TestBenchDataPostFix.

Для получения дополнительной информации смотрите TestBenchPostFix.

Стиль кодирования

свернуть все

Для получения дополнительной информации смотрите Use Verilog 'timescale directives в Аннотациях RTL.

Для получения дополнительной информации смотрите Emit time/date stamp in header в Аннотациях RTL.

Для получения дополнительной информации смотрите Inline VHDL configuration в Аннотациях RTL.

Для получения дополнительной информации смотрите Scalarize vector ports в Стиле RTL.

Генерация скриптов

свернуть все

Для получения дополнительной информации смотрите HDLCompileInit.

Для получения дополнительной информации смотрите HDLCompileTerm.

Для получения дополнительной информации смотрите HDLCompileFilePostfix.

Команда компиляции Verilog, заданная как вектор символов. Пара "имя-значение" SimulatorFlags задает первый аргумент, и имя модуля задает второй аргумент.

Для получения дополнительной информации смотрите HDLCompileVerilogCmd.

Команда компиляции VHDL, заданная как вектор символов. Пара "имя-значение" SimulatorFlags задает первый аргумент, и имя сущности задает второй аргумент.

Для получения дополнительной информации смотрите HDLCompileVHDLCmd.

Команда симуляции HDL, заданная как вектор символов.

Для получения дополнительной информации смотрите HDLSimCmd.

Инициализация для скрипта симуляции HDL, заданного как вектор символов.

Для получения дополнительной информации смотрите HDLSimInit.

Имя завершения для команды симуляции HDL, заданной как вектор символов.

Для получения дополнительной информации смотрите HDLSimTerm.

Для получения дополнительной информации смотрите HDLSimFilePostfix.

Команда просмотра формы волны, заданная как вектор символов. Неявный аргумент добавляет пути прохождения сигнала для входа верхнего уровня DUT, вывода, и вывел ссылочные сигналы.

Для получения дополнительной информации смотрите HDLSimViewWaveCmd.

Имена порта и типы

свернуть все

Укажите, что часы включают имя входного порта как вектор символов. Для получения дополнительной информации смотрите, что Часы Включают Настройки.

Часы включают имя выходного порта, заданное как вектор символов.

Для получения дополнительной информации смотрите, что Часы Включают выходной порт.

Задайте имя входного порта часов как вектор символов. Для получения дополнительной информации смотрите диспетчер Синхронизации Постфикс и Установки часов.

Сбросьте имя входного порта, заданное как вектор символов.

Для получения дополнительной информации смотрите раздел входного порта Сброса в Настройках Сброса.

Файл и имена переменных

свернуть все

Задайте расширение файла для сгенерированных файлов Verilog. Для получения дополнительной информации смотрите Специфичные для языка Идентификаторы и Расширения файла.

Задайте расширение файла для сгенерированных файлов VHDL. Для получения дополнительной информации смотрите раздел VHDLFileExtension в Специфичных для языка Идентификаторах и Расширениях файла.

Для получения дополнительной информации смотрите VHDL architecture name на Имя Архитектуры и Библиотеки VHDL.

Для получения дополнительной информации смотрите VHDL library name на Имя Архитектуры и Библиотеки VHDL.

Для получения дополнительной информации смотрите Split entity file postfix в сущности Разделения и архитектуре.

Для получения дополнительной информации смотрите Split arch file postfix в сущности Разделения и архитектуре.

Задайте постфикс для имени файла пакета как вектор символов. Для получения дополнительной информации смотрите раздел Package Postfix в Специфичных для языка Идентификаторах и Расширениях файла.

Для получения дополнительной информации смотрите Complex imaginary part postfix в Комплексном Постфиксе Сигналов.

Для получения дополнительной информации смотрите Complex real part postfix в Комплексном Постфиксе Сигналов.

Префикс для внутренних часов включает, и поток управления включают сигналы, заданные как вектор символов. Для получения дополнительной информации смотрите, что Часы Включают Настройки.

Смотрите также

Представленный в R2006b