Сгенерируйте испытательный стенд HDL из модели или подсистемы
makehdltb(dut)
makehdltb(dut,Name,Value)
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
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'TargetLanguage','Verilog'
'TargetLanguage'
— Выходной язык'VHDL'
(значение по умолчанию) | 'Verilog'
Задайте, сгенерировать ли код VHDL или Verilog. Для получения дополнительной информации смотрите раздел Language в Цели.
'TargetDirectory'
— Output'hdlsrc'
(значение по умолчанию) | вектор символовЗадайте путь, чтобы записать сгенерированные файлы и HDL-код в. Для получения дополнительной информации смотрите раздел Folder в Цели.
'SplitEntityArch'
— Разделите сущность VHDL и архитектуру в отдельные файлы'off'
(значение по умолчанию) | 'on'
Для получения дополнительной информации смотрите Split entity and architecture в сущности Разделения и архитектуре.
'GenerateHDLTestBench'
— Сгенерируйте испытательный стенд HDL'on'
(значение по умолчанию) | 'off'
Кодер генерирует испытательный стенд HDL путем выполнения симуляции Simulink, чтобы получить входные векторы и ожидаемые выходные данные для DUT. Для получения дополнительной информации смотрите Генерацию Испытательного стенда HDL test bench Вывод.
'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, чтобы сгладить интерфейс.
'GenerateCoSimBlock'
— Generate HDL Cosimulation'off'
(значение по умолчанию) | 'on'
Сгенерируйте блок HDL Cosimulation, таким образом, можно моделировать DUT в Simulink с симулятором HDL.
Для получения дополнительной информации смотрите GenerateCoSimBlock
.
'GenerateCoSimModel'
— Generate HDL Cosimulation'ModelSim'
(значение по умолчанию) | 'Incisive'
| 'None'
Сгенерируйте модель, содержащую блок HDL Cosimulation для заданного симулятора HDL.
Для получения дополнительной информации смотрите GenerateCoSimModel
.
'HDLCodeCoverage'
— Включите покрытие кода на сгенерированном испытательном стенде'off'
(значение по умолчанию) | 'on'
Включайте переключатели покрытия кода в сгенерированные build-run скрипты. Эти переключатели включают покрытие кода для сгенерированного испытательного стенда. Задайте свой симулятор HDL в свойстве SimulationTool
. Кодер генерирует build-run скрипты для средства моделирования, которое вы задаете.
'SimulationTool'
— Симулятор HDL, куда вы запустите сгенерированный испытательный стенд'ModelSim'
(значение по умолчанию) | 'Incisive'
| 'VCS'
| 'Vivado'
| 'Custom'
Это свойство применяется к сгенерированным испытательным стендам. 'VCS'
и 'Vivado'
поддерживаются только для испытательных стендов SystemVerilog DPI. Когда вы выбираете 'Custom'
, инструмент использует пользовательские настройки скрипта. Смотрите свойства “Script Generation”.
'ForceClock'
— Обеспечьте вход часов'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированные диски испытательного стенда часы включают вход на основе ClockLowTime
и ClockHighTime
.
Для получения дополнительной информации смотрите ForceClock
.
'ClockHighTime'
— Синхронизируйте пораСинхронизируйте пора в период часов, заданный в наносекундах.
Для получения дополнительной информации смотрите ClockHighTime
.
'ClockLowTime'
— Покажите низкое времяПокажите низкое время в период часов, заданный в наносекундах.
Для получения дополнительной информации смотрите ClockLowTime
.
'ForceClockEnable'
— Часы силы включают вход'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированные диски испытательного стенда часы включают вход.
Для получения дополнительной информации смотрите ForceClockEnable
.
'ClockInputs'
— Один или несколько входных параметров часов'Single'
(значение по умолчанию) | 'Multiple'
Задайте, сгенерировать ли один или несколько входных параметров часов в HDL-коде. Для получения дополнительной информации смотрите входной раздел Часов в диспетчере Синхронизации Постфиксе и Установках часов.
'ForceReset'
— Обеспечьте вход сброса'on'
(значение по умолчанию) | 'off'
Укажите, что сгенерированный испытательный стенд управляет входом сброса.
Для получения дополнительной информации смотрите ForceReset
.
'ResetLength'
— Сбросьте утверждаемую продолжительностьОтрезок времени, которые сбрасывают, утверждается, задается как количество тактов.
Для получения дополнительной информации смотрите.
'ResetAssertedLevel'
— Утверждаемый (активный) уровень сброса'active-high'
(значение по умолчанию) | 'active-low'
Задайте, использовать ли возбуждаемый высоким уровнем сигнала или возбуждаемый низким уровнем сигнала утверждаемый уровень для входного сигнала сброса. Для получения дополнительной информации смотрите, что Сброс утверждал раздел уровня в Настройках Сброса.
'HoldInputDataBetweenSamples'
— Содержите допустимые данные для сигналов, синхронизированных на более медленном уровне'on'
(значение по умолчанию) | 'off'
Для получения дополнительной информации смотрите HoldInputDataBetweenSamples
.
'HoldTime'
— Время задержки для входных параметров и обеспеченного сбросаВремя задержки для входных параметров и обеспеченного сброса, заданного в наносекундах.
Для получения дополнительной информации смотрите HoldTime
.
'IgnoreDataChecking'
— Время, чтобы ожидать после часов включает прежде, чем проверять выходные данныеВремя после часов включает, утверждается прежде, чем запустить проверки выходных данных, заданные в количестве выборок.
Для получения дополнительной информации смотрите IgnoreDataChecking
.
'InitializeTestBenchInputs'
— Инициализируйте входные параметры испытательного стенда к 0
'off'
(значение по умолчанию) | 'on'
Для получения дополнительной информации смотрите InitializeTestBenchInputs
.
'MultifileTestBench'
— Разделите сгенерированный испытательный стенд на функции помощника, данные и файлы испытательного стенда HDL'off'
(значение по умолчанию) | 'on'
Для получения дополнительной информации смотрите MultifileTestBench
.
'UseFileIOInTestBench'
— Используйте файловый ввод-вывод для данных об испытательном стенде чтения-записи'on'
(значение по умолчанию) | 'off'
Для получения дополнительной информации смотрите UseFileIOInTestBench
.
'TestBenchClockEnableDelay'
— Количество тактов между deassertion сброса и утверждением часов включаетДля получения дополнительной информации смотрите TestBenchClockEnableDelay
.
'TestBenchDataPostFix'
— Постфикс для имени файла данных испытательного стенда'_data'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите TestBenchDataPostFix
.
'TestBenchPostFix'
— Суффикс для имени испытательного стенда'_tb'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите TestBenchPostFix
.
'UseVerilogTimescale'
— Сгенерируйте директивы компилятора 'timescale
'on'
(значение по умолчанию) | 'off'
Для получения дополнительной информации смотрите Use Verilog 'timescale directives в Аннотациях RTL.
'DateComment'
— Включайте метку времени в заголовок'on'
(значение по умолчанию) | 'off'
Для получения дополнительной информации смотрите Emit time/date stamp in header в Аннотациях RTL.
'InlineConfigurations'
— Включайте настройки VHDL'on'
(значение по умолчанию) | 'off'
Для получения дополнительной информации смотрите Inline VHDL configuration в Аннотациях RTL.
'ScalarizePorts'
— Сгладьте векторные порты в скалярные порты'off'
(значение по умолчанию) | 'on'
Для получения дополнительной информации смотрите Scalarize vector ports в Стиле RTL.
'HDLCompileInit'
— Текст инициализации скрипта компиляции'vlib %s\n'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите HDLCompileInit
.
'HDLCompileTerm'
— Текст завершения скрипта компиляции''
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите HDLCompileTerm
.
'HDLCompileFilePostfix'
— Постфикс для имени файла скрипта компиляции'_compile.do'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите HDLCompileFilePostfix
.
'HDLCompileVerilogCmd'
— Команда компиляции Verilog'vlog %s %s\n'
(значение по умолчанию) | вектор символовКоманда компиляции Verilog, заданная как вектор символов. Пара "имя-значение" SimulatorFlags
задает первый аргумент, и имя модуля задает второй аргумент.
Для получения дополнительной информации смотрите HDLCompileVerilogCmd
.
'HDLCompileVHDLCmd'
— Команда компиляции VHDL'vcom %s %s\n'
(значение по умолчанию) | вектор символовКоманда компиляции VHDL, заданная как вектор символов. Пара "имя-значение" SimulatorFlags
задает первый аргумент, и имя сущности задает второй аргумент.
Для получения дополнительной информации смотрите HDLCompileVHDLCmd
.
'HDLSimCmd'
— Команда симуляции HDL'vsim -novopt %s.%s\n'
(значение по умолчанию) | вектор символовКоманда симуляции HDL, заданная как вектор символов.
Для получения дополнительной информации смотрите HDLSimCmd
.
'HDLSimInit'
— Имя инициализации скрипта симуляции HDL['onbreak resume\n', 'onerror resume\n']
(значение по умолчанию) | вектор символовИнициализация для скрипта симуляции HDL, заданного как вектор символов.
Для получения дополнительной информации смотрите HDLSimInit
.
'HDLSimTerm'
— Имя завершения скрипта симуляции HDL'run -all'
(значение по умолчанию) | вектор символовИмя завершения для команды симуляции HDL, заданной как вектор символов.
Для получения дополнительной информации смотрите HDLSimTerm
.
'HDLSimFilePostfix'
— Постскриптум для скрипта симуляции HDL'_sim.do'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите HDLSimFilePostfix
.
'HDLSimViewWaveCmd'
— Команда просмотра формы волны симуляции HDL'add wave sim:%s\n'
(значение по умолчанию) | вектор символовКоманда просмотра формы волны, заданная как вектор символов. Неявный аргумент добавляет пути прохождения сигнала для входа верхнего уровня DUT, вывода, и вывел ссылочные сигналы.
Для получения дополнительной информации смотрите HDLSimViewWaveCmd
.
'ClockEnableInputPort'
— Часы включают имя входного порта'clk_enable'
(значение по умолчанию) | вектор символовУкажите, что часы включают имя входного порта как вектор символов. Для получения дополнительной информации смотрите, что Часы Включают Настройки.
'ClockEnableOutputPort'
— Часы включают имя выходного порта'ce_out'
(значение по умолчанию) | вектор символовЧасы включают имя выходного порта, заданное как вектор символов.
Для получения дополнительной информации смотрите, что Часы Включают выходной порт.
'ClockInputPort'
— Синхронизируйте имя входного порта'clk'
(значение по умолчанию) | вектор символовЗадайте имя входного порта часов как вектор символов. Для получения дополнительной информации смотрите диспетчер Синхронизации Постфикс и Установки часов.
'ResetInputPort'
— Сбросьте имя входного порта'reset'
(значение по умолчанию) | вектор символовСбросьте имя входного порта, заданное как вектор символов.
Для получения дополнительной информации смотрите раздел входного порта Сброса в Настройках Сброса.
'VerilogFileExtension'
— Расширение файла Verilog'.v'
(значение по умолчанию) | вектор символовЗадайте расширение файла для сгенерированных файлов Verilog. Для получения дополнительной информации смотрите Специфичные для языка Идентификаторы и Расширения файла.
'VHDLFileExtension'
— Расширение файла VHDL'.vhd'
(значение по умолчанию) | вектор символовЗадайте расширение файла для сгенерированных файлов VHDL. Для получения дополнительной информации смотрите раздел VHDLFileExtension в Специфичных для языка Идентификаторах и Расширениях файла.
'VHDLArchitectureName'
— Имя архитектуры VHDL'rtl'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите VHDL architecture name на Имя Архитектуры и Библиотеки VHDL.
'VHDLLibraryName'
— VHDL'work'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите VHDL library name на Имя Архитектуры и Библиотеки VHDL.
'SplitEntityFilePostfix'
— Постфикс для имен файлов сущности VHDL'_entity'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Split entity file postfix в сущности Разделения и архитектуре.
'SplitArchFilePostfix'
— Постфикс для имен файлов архитектуры VHDL'_arch'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Split arch file postfix в сущности Разделения и архитектуре.
'PackagePostfix'
— Постфикс для имени файла пакета'_pkg'
(значение по умолчанию) | вектор символовЗадайте постфикс для имени файла пакета как вектор символов. Для получения дополнительной информации смотрите раздел Package Postfix в Специфичных для языка Идентификаторах и Расширениях файла.
'ComplexImagPostfix'
— Постфикс для мнимой части комплексного сигнала'_im'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex imaginary part postfix в Комплексном Постфиксе Сигналов.
'ComplexRealPostfix'
— Постфикс для мнимой части комплексных имен сигнала'_re'
(значение по умолчанию) | вектор символовДля получения дополнительной информации смотрите Complex real part postfix в Комплексном Постфиксе Сигналов.
'EnablePrefix'
— Префикс для внутреннего включает сигналы'enb'
(значение по умолчанию) | вектор символовПрефикс для внутренних часов включает, и поток управления включают сигналы, заданные как вектор символов. Для получения дополнительной информации смотрите, что Часы Включают Настройки.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.