makehdl

Сгенерируйте код RTL HDL из модели, подсистемы или модели - ссылки

Синтаксис

makehdl(dut)
makehdl(dut,Name,Value)

Описание

пример

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

Примечание

Выполнение этой команды может активировать установку Open at simulation start для блоков, таких как блок Scope и поэтому вызвать блок.

пример

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

Примеры

свернуть все

Этот пример показывает, как сгенерировать VHDL для симметричной модели FIR.

Откройте модель sfir_fixed.

sfir_fixed

Сгенерируйте HDL-код для текущей модели с набором опций генерации кода к значениям по умолчанию.

makehdl('sfir_fixed/symmetric_fir','TargetDirectory','C:\GenVHDL\hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\GenVHDL\hdlsrc\sfir_fixed\symmetric_fir.vhd.
### Creating HDL Code Generation Check Report file://C:\GenVHDL\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

Сгенерированный код VHDL сохранен в папке hdlsrc.

Сгенерируйте Verilog® для подсистемы symmetric_fir в модели sfir_fixed.

Откройте модель sfir_fixed.

sfir_fixed;

Модель открывается в новом окне Simulink®.

Сгенерируйте Verilog для подсистемы symmetric_fir.

makehdl('sfir_fixed/symmetric_fir', 'TargetLanguage', 'Verilog', ...
               'TargetDirectory', 'C:/Generate_Verilog/hdlsrc')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Starting HDL check.
### Begin Verilog Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\Generate_Verilog\hdlsrc\sfir_fixed\symmetric_fir.v.
### Creating HDL Code Generation Check Report file://C:\Generate_Verilog\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

Сгенерированный код Verilog для подсистемы symmetric_fir сохранен в hdlsrc\sfir_fixed\symmetric_fir.v.

Закройте модель.

bdclose('sfir_fixed');

Проверяйте, что подсистема, symmetric_fir совместим с генерацией HDL-кода, затем генерируют HDL.

Откройте модель sfir_fixed.

sfir_fixed

Модель открывается в новом окне Simulink®.

Используйте функцию checkhdl, чтобы проверять, совместима ли подсистема symmetric_fir с генерацией HDL-кода.

hdlset_param('sfir_fixed','TargetDirectory','C:/HDL_Checks/hdlsrc');
checkhdl('sfir_fixed/symmetric_fir')
### Starting HDL check.
### Creating HDL Code Generation Check Report file://C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.

checkhdl завершился успешно, что означает, что модель совместима для генерации HDL-кода. Чтобы сгенерировать код, используйте makehdl

makehdl('sfir_fixed/symmetric_fir')
### Generating HDL for 'sfir_fixed/symmetric_fir'.
### Using the config set for model <a href="matlab:configset.showParameterGroup('sfir_fixed', { 'HDL Code Generation' } )">sfir_fixed</a> for HDL code generation parameters.
### Starting HDL check.
### Begin VHDL Code Generation for 'sfir_fixed'.
### Working on sfir_fixed/symmetric_fir as C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir.vhd.
### Creating HDL Code Generation Check Report file://C:\HDL_Checks\hdlsrc\sfir_fixed\symmetric_fir_report.html
### HDL check for 'sfir_fixed' complete with 0 errors, 0 warnings, and 0 messages.
### HDL code generation complete.

Сгенерированный код VHDL® для подсистемы symmetric_fir сохранен в hdlsrc\sfir_fixed\symmetric_fir.vhd.

Закройте модель.

bdclose('sfir_fixed');

Входные параметры

свернуть все

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

Пример: 'top_level_name'

Пример: 'top_level_name/subsysA/subsysB/codegen_subsys_name'

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

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

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

Целевые опции

свернуть все

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

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

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

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

Для получения дополнительной информации смотрите, Генерируют код VHDL для моделей - ссылок в одну библиотеку.

Генерация кода Выходные опции

свернуть все

Задайте, хотите ли вы сгенерировать HDL-код, или только отобразить сгенерированную модель, или сгенерировать HDL-код и отобразить сгенерированную модель. Для получения дополнительной информации смотрите раздел Generate HDL code в Генерации кода Вывод.

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

Задайте, сгенерировать ли модель валидации с HDL-кодом. Для получения дополнительной информации смотрите раздел Generate validation model в Генерации кода Вывод.

Опции отчета генерации кода

свернуть все

Задайте, должен ли сгенерированный HDL-код соответствовать Промышленности, кодирующей стандартные инструкции. Для получения дополнительной информации смотрите, Выбирают Coding Standard и Report Options.

Задайте объект индивидуальной настройки стандартов кодирования использовать с Промышленным стандартом кодирования при генерации HDL-кода. Для получения дополнительной информации смотрите hdlcoder.CodingStandard.

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

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

Задайте, сгенерировать ли оптимизацию, сообщают, что отображает эффект оптимизации, такой как потоковая передача, совместное использование и распределенная конвейеризация. Для получения дополнительной информации смотрите, Генерируют отчет оптимизации.

Задайте, сгенерировать ли веб-представление модели в Генерации кода, сообщают, чтобы легко перейти между кодом и моделью. Для получения дополнительной информации смотрите Веб-представление модели Generate.

Скорость и оптимизация области

свернуть все

Задайте, разрешить ли задержку, балансирующуюся на модели. Для получения дополнительной информации смотрите задержки Баланса.

Задайте, приоритизировать ли распределенную оптимизацию конвейеризации для числовой целостности или производительности. Для получения дополнительной информации смотрите, что Распределенный конвейерно обрабатывает приоритетный раздел в Распределенной Конвейеризации.

Задайте, применить ли иерархическую распределенную оптимизацию конвейеризации на модель. Для получения дополнительной информации смотрите Распределенную Конвейеризацию.

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

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

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

Задайте, в битах, минимальный размер RAM, требуемый для отображения с RAM вместо регистров. Для получения дополнительной информации смотрите раздел RAM mapping threshold (bits) в Отображении RAM.

Задайте, сопоставить ли конвейерные регистры в сгенерированном HDL-коде к блоку RAM на FPGA. Для получения дополнительной информации смотрите раздел Map pipeline delays to RAM в Отображении RAM.

Задайте, подсветить ли обратную связь в вашем проекте. Для получения дополнительной информации смотрите Диагностику для Оптимизации.

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

свернуть все

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

Для получения дополнительной информации смотрите Represent constant values by aggregates в Индивидуальных настройках RTL для Констант и блоков MATLAB function.

Для получения дополнительной информации смотрите Use "rising_edge/falling_edge" style for registers в Стиле RTL.

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

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

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

Для получения дополнительной информации смотрите Concatenate type safe zeros в Аннотациях RTL.

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

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

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

Для получения дополнительной информации смотрите Include requirements in block comments в Аннотациях RTL.

Для получения дополнительной информации смотрите Индивидуальные настройки RTL Inline MATLAB Function block code для Констант и блоков MATLAB function.

Для получения дополнительной информации смотрите Generate parameterized HDL code from masked subsystem в Стиле RTL.

Для получения дополнительной информации смотрите Initialize all RAM blocks в Индивидуальных настройках RTL для RAM.

Для получения дополнительной информации смотрите RAM Architecture в Индивидуальных настройках RTL для RAM.

Часы и сброс

свернуть все

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

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

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

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

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

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

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

Испытательный стенд

свернуть все

Когда вы используете это свойство с makehdl, HDL Coder™ не делает блока Cosimulation. Чтобы сгенерировать блок Cosimulation, используйте makehdltb. С блоком Cosimulation можно моделировать DUT в Simulink® с симулятором HDL.

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

Когда вы используете это свойство с makehdl, HDL Coder не делает модели Cosimulation. Чтобы сгенерировать модель Cosimulation, используйте makehdltb. Модель содержит блок Cosimulation для симулятора HDL, который вы задаете.

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

Имя инициализации линта HDL, заданное как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLLintTool.

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

Команда линта HDL, заданная как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLLintTool.

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

Завершение линта HDL, заданное как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLLintTool.

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

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

Команда синтеза HDL, заданная как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLSynthTool.

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

Постфикс имени файла скрипта синтеза HDL, заданный как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLSynthTool.

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

Инициализация для скрипта синтеза HDL, заданного как вектор символов. Значение по умолчанию выведено от пары "имя-значение" HDLSynthTool.

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

Имя завершения для скрипта синтеза HDL. Значение по умолчанию выведено от пары "имя-значение" HDLSynthTool.

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

Сгенерированная модель

свернуть все

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

Синтез

свернуть все

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

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

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

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

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

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

Задайте целевую частоту в МГц как вектор символов. Для получения дополнительной информации смотрите Целевую Частоту.

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

Задайте, сгенерировать ли разрешение - базирующийся файл ограничений тракта мультицикла. Для получения дополнительной информации смотрите, Включают - базирующиеся ограничения в Ограничениях тракта Мультицикла.

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

свернуть все

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

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

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

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

Входные параметры VHDL могут иметь тип данных 'signed/unsigned' или 'std_logic_vector'. Входными параметрами Verilog должен быть 'wire'.

Для получения дополнительной информации смотрите Input data type в Типах Данных порта Ввода и вывода.

VHDL вывод может быть 'Same as input data type', 'std_logic_vector' или 'signed/unsigned'. Verilog вывод должен быть 'wire'.

Для получения дополнительной информации смотрите Output data type в Типах Данных порта Ввода и вывода.

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

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

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

свернуть все

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

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

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

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

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

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

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

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

Для получения дополнительной информации смотрите, что Block generate label в Генерирует Метки Оператора.

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

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

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

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

Для получения дополнительной информации смотрите, что Instance generate label в Генерирует Метки Оператора.

Для получения дополнительной информации смотрите Instance postfix в Векторных и Метках Экземпляров Компонента.

Для получения дополнительной информации смотрите Instance prefix в Векторных и Метках Экземпляров Компонента..

Для получения дополнительной информации смотрите, что Output generate label в Генерирует Метки Оператора.

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

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

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

Для получения дополнительной информации смотрите Vector prefix в Векторных и Метках Экземпляров Компонента.

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

Задайте префикс для каждого модуля или имени сущности в сгенерированном HDL-коде. HDL Coder также применяет этот префикс к сгенерированным именам файлов скрипта

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

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

|

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