makehdl

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

Описание

пример

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

Пример: 'TargetLanguage','Verilog'
Выходной язык и опции выбора папки

свернуть все

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

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

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

Используйте оптимизацию разделения ресурсов, чтобы совместно использовать блоки MATLAB Function в вашем проекте. Для получения дополнительной информации смотрите блоки MATLAB function Доли.

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

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

свернуть все

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

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

свернуть все

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

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

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

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

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

Установки часов

свернуть все

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для получения дополнительной информации смотрите, Включают Требования в Комментарии Блока.

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

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

Кодирование стандартов

свернуть все

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|

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