makehdl

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

Описание

пример

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

Примечание

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

пример

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

Примеры

свернуть все

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

Откройте 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 - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'TargetLanguage','Verilog'
Опции выбора целевого языка и папки

свернуть все

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

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

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

Опции инструмента и синтеза

свернуть все

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

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

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

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

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

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

Общие настройки оптимизации и ограничения многоколесного пути

свернуть все

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

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

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

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

Умножители разделов в проекте на основе порогового значения. Порог должно быть положительным целым значением, N. Для получения дополнительной информации см. Раздел «порог разбиения на множители».

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

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

Опции конвейеризации и оптимизации скорости

свернуть все

Укажите, следует ли расставлять приоритеты оптимизации распределённой конвейеризации для вычислительной целостности или эффективности. Для получения дополнительной информации см. Раздел «Приоритет распределённой конвейеризации».

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

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

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

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

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

Опции разделения ресурсов и оптимизации областей

свернуть все

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

Минимальная битовая ширина общего сумматора для оптимизации совместного использования ресурсов, заданная как положительное целое число. Для получения дополнительной информации смотрите Adder sharing minimum bitwidth.

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

Минимальная битовая ширина общего множителя для оптимизации совместного использования ресурсов, заданная как положительное целое число. Для получения дополнительной информации см. Раздел «Умножитель, разделяющий минимальную битовую ширину».

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

Используйте оптимизацию совместного использования ресурсов для совместного использования блоков Multiply-Add в проекте. Для получения дополнительной информации см. раздел «Совместное использование множителей».

Минимальная битовая ширина блока общего Multiply-Add для оптимизации совместного использования ресурсов, заданная как положительное целое число. Для получения дополнительной информации смотрите Multiply-Add block sharing minimum bitwidth.

Используйте оптимизацию совместного использования ресурсов для совместного использования блоков Atomic Subsystem в проекте. Для получения дополнительной информации см. Раздел «Совместное использование подсистем».

Используйте оптимизацию совместного использования ресурсов для совместного использования блоков MATLAB Function в проекте. Для получения дополнительной информации см. раздел «Совместное использование функциональных блоков MATLAB».

Используйте оптимизацию совместного использования ресурсов для совместного использования IP-адресов с плавающей точкой в проекте. Для получения дополнительной информации см. раздел «Совместное использование IP-адресов с плавающей точкой».

Цель с плавающей точкой

свернуть все

Для получения дополнительной информации см. раздел «Библиотека IP с плавающей точкой».

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

свернуть все

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

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

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

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

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

Настройки часов

свернуть все

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

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

Задайте имя входного порта синхроимпульса как вектор символов. Для получения дополнительной информации см. Раздел «Входной порт синхроимпульса»

Задайте имя входного порта включения синхроимпульса как вектор символов. Для получения дополнительной информации см. раздел «Включение синхроимпульса входа портом».

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

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

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

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

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

Общие опции имен файлов и переменных

свернуть все

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

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

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

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

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

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

Для получения дополнительной информации см. Раздел «Разделение сущности и архитектуры».

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

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

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

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

Для получения дополнительной информации смотрите Complex imaginary part postfix в Параметрах Complex Signals Postfix.

Для получения дополнительной информации смотрите Complex real part postfix в Параметрах Complex Signals Postfix.

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

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

Для получения дополнительной информации смотрите ModulePrefix в Language-Specific Identifiers и Postfix Parameters.

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Образце.

Дополнительные сведения см. в разделе Префикс Образец.

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

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

Опции строения для портов

свернуть все

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

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

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

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

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

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

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

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

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

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

Для получения дополнительной информации см. Раздел «Скаляризация портов».

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

свернуть все

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

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

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

Для получения дополнительной информации см. Архитектуру ОЗУ.

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

Для получения дополнительной информации см. «Минимизация промежуточных сигналов».

Для получения дополнительной информации смотрите Unroll for Generate Loops in VHDL code.

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

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

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

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

Для получения дополнительной информации см. Раздел «Безопасные нули типа конкатенации».

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

Для получения дополнительной информации см. Раздел «Оптимизация контроллера синхронизации»

Для получения дополнительной информации см. Раздел «архитектура контроллера синхронизации»

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

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

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

Дополнительные сведения см. в разделе Включение требований в комментарии блоков.

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

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

Стандарты кодирования

свернуть все

Укажите, должен ли сгенерированный HDL-код соответствовать стандартам отраслевого кодирования. Для получения дополнительной информации смотрите Выбор стандарта кодирования и Параметры опции.

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

Параметры генерации модели

свернуть все

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

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

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

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

Для получения дополнительной информации см. раздел «Автоматическое размещение блоков».

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

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

Для получения дополнительной информации смотрите Межблочное вертикальное масштабирование.

Диагностика и выходные параметры генерации кода

свернуть все

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

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

Для получения дополнительной информации см. «Подсветка блоков, препятствующих распределённой конвейеризации».

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

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

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

Сгенерируйте HDL-код для модели. Для получения дополнительной информации смотрите раздел Generate HDL code в Генерация Кода Output Parameter.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

Для получения дополнительной информации см. Раздел «Инициализация Lint».

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

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

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

Для получения дополнительной информации см. Раздел «Отключение Линта».

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

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

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

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

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

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

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

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

Для получения дополнительной информации см. «Завершение синтеза».

См. также

|

Введенный в R2006b
Для просмотра документации необходимо авторизоваться на сайте