Сгенерируйте испытательный стенд 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
папка.Сгенерируйте испытательный стенд 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.
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
— Директория Output'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 с большим набором данных быстрее, чем версия по умолчанию, потому что это не хранит вход или ожидаемые данные в отдельном файле. Для примера смотрите, Генерируют испытательный стенд 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, чтобы сгладить интерфейс.
См. также испытательный стенд SystemVerilog DPI.
GenerateCoSimBlock
— Блок Generate HDL Cosimulation'off'
(значение по умолчанию) | 'on'
Сгенерируйте блок HDL Cosimulation, таким образом, можно симулировать DUT в Simulink с симулятором HDL.
Для получения дополнительной информации см. модель Cosimulation.
GenerateCoSimModel
— Модель Generate HDL Cosimulation'ModelSim'
(значение по умолчанию) | 'Incisive'
| 'None'
Сгенерируйте модель, содержащую блок HDL Cosimulation для заданного симулятора HDL.
Для получения дополнительной информации см. модель Cosimulation.
HDLCodeCoverage
— Включите покрытие кода на сгенерированном испытательном стенде'off'
(значение по умолчанию) | 'on'
Включайте переключатели покрытия кода в сгенерированные build-run скрипты. Эти переключатели включают покрытие кода для сгенерированного испытательного стенда. Задайте свой симулятор HDL в SimulationTool
свойство. Кодер генерирует build-run скрипты для средства моделирования, которое вы задаете.
Для получения дополнительной информации смотрите покрытие HDL-кода.
SimulationTool
— Симулятор HDL, куда вы запустите сгенерированный испытательный стенд'ModelSim'
(значение по умолчанию) | 'Incisive'
| 'VCS'
| 'Vivado'
| 'Custom'
Это свойство применяется к сгенерированным испытательным стендам. 'VCS'
и 'Vivado'
поддерживаются только для испытательных стендов SystemVerilog DPI. Когда вы выбираете 'Custom'
, инструмент использует пользовательские настройки скрипта. Смотрите свойства “Script Generation”.
Для получения дополнительной информации смотрите инструмент Simulation.
ForceClock
— Обеспечьте вход часов'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированные диски испытательного стенда часы включают вход на основе ClockLowTime
и ClockHighTime
.
Для получения дополнительной информации смотрите часы Силы.
ClockHighTime
— Синхронизируйте пораСинхронизируйте пора в период часов, заданный в наносекундах.
Для получения дополнительной информации смотрите Часы пора (не уточнено).
ClockLowTime
— Покажите низкое времяПокажите низкое время в период часов, заданный в наносекундах.
Для получения дополнительной информации смотрите Часы низкое время (не уточнено).
ForceClockEnable
— Часы силы включают вход'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированные диски испытательного стенда часы включают вход.
Для получения дополнительной информации смотрите, что часы Силы включают.
TestBenchClockEnableDelay
— Такты между сбросом и часами включаютКоличество тактов между deassertion сброса и утверждением часов включает в виде положительного целого числа.
Для получения дополнительной информации смотрите, что Часы включают задержку (за такты)
ForceReset
— Обеспечьте вход сброса'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированный испытательный стенд управляет входом сброса.
Для получения дополнительной информации смотрите сброс Силы.
ResetLength
— Сбросьте утверждаемую продолжительностьОтрезок времени, которые сбрасывают, утверждается в виде количества тактов.
Для получения дополнительной информации смотрите длину Сброса (за такты).
HoldInputDataBetweenSamples
— Содержите допустимые данные для сигналов'on'
(значение по умолчанию) | 'off'
Содержите допустимые данные между выборками для сигналов, синхронизированных на более медленном уровне.
Для получения дополнительной информации смотрите, Содержат входные данные между выборками.
HoldTime
— Время задержки для входных параметров и обеспеченного сбросаВремя задержки для входных параметров и обеспеченного сброса, заданного в наносекундах.
Для получения дополнительной информации смотрите Время задержки (не уточнено).
IgnoreDataChecking
— Время, чтобы ожидать после часов включает прежде, чем проверять выходные данныеВремя после часов включает, утверждается прежде, чем запустить проверки выходных данных, заданные в количестве отсчетов.
Для получения дополнительной информации смотрите, Игнорируют выходные данные, проверяющие (количество отсчетов).
InitializeTestBenchInputs
— Инициализируйте входные параметры испытательного стенда'off'
(значение по умолчанию) | 'on'
Инициализируйте входные параметры испытательного стенда, чтобы обнулить. Для получения дополнительной информации смотрите, Инициализируют входные параметры испытательного стенда.
TestBenchDataPostFix
— Постфикс для имени файла данных испытательного стенда'_data'
(значение по умолчанию) | вектор символовПостфикс для файла данных испытательного стенда называет в виде вектора символов.
Для получения дополнительной информации смотрите постфикс имени файла данных Испытательного стенда.
TestBenchPostFix
— Постфикс для имени испытательного стенда'_tb'
(значение по умолчанию) | вектор символовПостфикс для испытательного стенда называет в виде вектора символов.
Для получения дополнительной информации смотрите постфикс имени Испытательного стенда.
TestBenchReferencePostFix
— Постфикс для опорного сигнала испытательного стенда'_ref'
(значение по умолчанию) | вектор символовПостфикс для опорного сигнала испытательного стенда называет в виде вектора символов.
Для получения дополнительной информации смотрите постфикс ссылки Испытательного стенда.
MultifileTestBench
— Сгенерируйте несколько файлов испытательного стенда'off'
(значение по умолчанию) | 'on'
Разделите сгенерированный испытательный стенд на функции помощника, данные и файлы испытательного стенда HDL.
Для получения дополнительной информации смотрите Многофайловый испытательный стенд.
UseFileIOInTestBench
— Используйте файловый ввод-вывод для данных об испытательном стенде чтения-записи'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
— Постфикс для имен файлов сущности VHDL'_entity'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите постфикс файла сущности Разделения.
SplitArchFilePostfix
— Постфикс для имен файлов архитектуры VHDL'_arch'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите постфикс файла дуги Разделения.
PackagePostfix
— Постфикс для имени файла пакета'_pkg'
(значение по умолчанию) | вектор символовЗадайте постфикс для имени файла пакета как вектор символов. Для получения дополнительной информации смотрите постфикс Пакета.
ComplexImagPostfix
— Постфикс для мнимой части комплексного сигнала'_im'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex imaginary part postfix в Комплексных Параметрах Постфикса Сигналов.
ComplexRealPostfix
— Постфикс для мнимой части комплексных имен сигнала'_re'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex real part 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'
Для получения дополнительной информации смотрите Встроенную настройку VHDL.
ScalarizePorts
— Сгладьте векторные порты в скалярные порты'off'
(значение по умолчанию) | 'on'
| 'dutlevel'
Для получения дополнительной информации смотрите порты Scalarize.
HDLCompileInit
— Текст инициализации скрипта компиляции'vlib %s\n'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите инициализацию Компиляции.
HDLCompileTerm
— Текст завершения скрипта компиляции''
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите завершение Компиляции.
HDLCompileFilePostfix
— Постфикс для имени файла скрипта компиляции'_compile.do'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите постфикс файла Компиляции.
HDLCompileVerilogCmd
— Команда компиляции Verilog'vlog %s %s\n'
(значение по умолчанию) | вектор символовКоманда компиляции Verilog в виде вектора символов. SimulatorFlags
пара "имя-значение" задает первый аргумент, и имя модуля задает второй аргумент.
Для получения дополнительной информации смотрите команду Компиляции для Verilog.
HDLCompileVHDLCmd
— Команда компиляции VHDL'vcom %s %s\n'
(значение по умолчанию) | вектор символовКоманда компиляции VHDL в виде вектора символов. SimulatorFlags
пара "имя-значение" задает первый аргумент, и имя сущности задает второй аргумент.
Для получения дополнительной информации смотрите команду Компиляции для 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, выхода и выходных опорных сигналов.
Для получения дополнительной информации смотрите, что форма волны Симуляции просматривает команду.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.