exponenta event banner

makehdl

Создание кода RTL HDL на основе модели, подсистемы или ссылки на модель

Описание

пример

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

Примечание

При выполнении этой команды можно активировать параметр «Открыть при запуске моделирования» для таких блоков, как блок «Область», и, следовательно, вызвать этот блок.

пример

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

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

свернуть все

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

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

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

Параметры инструмента и синтеза

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

Укажите, следует ли отображать регистры конвейера в сгенерированном коде HDL для блокирования RAM в FPGA. Дополнительные сведения см. в разделе Сопоставление задержек конвейера с оперативной памятью.

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

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

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

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

Варианты оптимизации трубопроводов и скорости

свернуть все

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

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

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

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

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

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

Параметры совместного использования ресурсов и оптимизации площадей

свернуть все

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

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

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

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

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

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

Минимальная битовая ширина совместно используемого блока Multiply-Add для оптимизации совместного использования ресурсов, заданного как положительное целое число. Дополнительные сведения см. в разделе Умножение - добавление блока, имеющего минимальную битовую ширину.

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

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

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

Цель с плавающей запятой

свернуть все

Дополнительные сведения см. в разделе Библиотека IP-адресов с плавающей запятой.

Параметры отчета о создании кода

свернуть все

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

Общие параметры имени файла и переменной

свернуть все

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

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

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

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

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

Дополнительные сведения см. в разделе Зарезервированный постфикс слова.

Дополнительные сведения см. в разделе Разделение сущности и архитектуры.

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

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

Дополнительные сведения см. в разделе Имя архитектуры VHDL.

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

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

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

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

Укажите префикс для каждого имени модуля или объекта в сгенерированном коде HDL. HDL Coder™ также применяет этот префикс к созданным именам файлов сценариев

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

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

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

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

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

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

Дополнительные сведения см. в разделе Создание метки вывода.

Дополнительные сведения см. в разделе Создание метки экземпляра.

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

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

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

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

Параметры конфигурации портов

свернуть все

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

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

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

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

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

Дополнительные сведения см. в разделе Порт вывода Clock Enable.

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

Дополнительные сведения см. в разделе Scalarize ports.

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

свернуть все

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

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

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

Дополнительные сведения см. в разделе Архитектура ОЗУ.

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

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

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

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

Дополнительные сведения см. в разделе Использование стиля «rising_edge/falling_edge» для регистров в параметрах стиля RTL.

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

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

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

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

Дополнительные сведения см. в разделе Архитектура контроллера синхронизации

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

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

Дополнительные сведения см. в разделе Изменение метки времени/даты в заголовке в параметрах аннотации RTL.

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

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

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

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

свернуть все

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

Объект настройки стандартов кодирования для использования с отраслевым стандартом кодирования при создании кода HDL. Дополнительные сведения см. в разделе hdlcoder.CodingStandard.

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

свернуть все

Дополнительные сведения см. в разделе Сгенерированная модель.

Дополнительные сведения см. в разделе Модель проверки.

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

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

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

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

Дополнительные сведения см. в разделе Горизонтальное масштабирование между блоками.

Дополнительные сведения см. в разделе Межблочное вертикальное масштабирование.

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

свернуть все

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

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

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

Дополнительные сведения см. в разделе Проверка наличия реалов в сгенерированном коде HDL.

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

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

Создание сценария

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Команда Lint.

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

Дополнительные сведения см. в разделе Завершение Lint.

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

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Завершение синтеза.

См. также

|

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