MATLAB к HDL-коду и синтезу

Преобразование кода MATLAB в HDL-код

Задача MATLAB to HDL Workflow в HDL Workflow Advisor генерирует HDL-код из MATLAB с фиксированной точкой® код, и моделирует и проверяет HDL на соответствие алгоритму с фиксированной точкой. HDL Coder™ затем выполняет синтез и опционально запускает место и маршрут, чтобы сгенерировать описание схемы, подходящей для программирования ASIC или FPGA.

Генерация кода: целевая вкладка

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

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

Target

Целевой компьютер. Выберите из списка:

Типовой ASIC/FPGA
Xilinx
Altera
Симуляция

Language

Выберите язык (VHDL® или Verilog®), в котором генерируется код. Выбранный язык называется целевым.

По умолчанию: VHDL

Check HDL Conformance

Включите проверку соответствия HDL.

По умолчанию: Off

Generate HDL

Включите генерацию HDL-кода для алгоритма MATLAB с фиксированной точкой.

По умолчанию: On

Generate HDL Test Bench

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

По умолчанию: Off

Generate EDA Scripts

Включите генерацию файлов скриптов для сторонних электронных инструментов автоматизации проектирования (EDA). Эти скрипты позволяют вам компилировать и симулировать сгенерированный HDL-код и синтезировать сгенерированный HDL-код.

По умолчанию: On

Генерация кода: вкладка «Стиль кодирования»

Параметры, которые влияют на стиль сгенерированного кода.

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

Preserve MATLAB code comments

Включите комментарии кода MATLAB в сгенерированный код.

По умолчанию: On

Include MATLAB source code as comments

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

По умолчанию: On

Generate Report

Включите отчет генерации кода.

По умолчанию: Off

VHDL File Extension

Укажите расширение имени файла для сгенерированных файлов VHDL.

По умолчанию: .vhd

Verilog File Extension

Укажите расширение имени файла для сгенерированных файлов Verilog.

По умолчанию: .v

Comment in header

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

По умолчанию: Нет

Текст, введенный в это поле как вектор символов, генерирует строку с комментариями в заголовке сгенерированного кода. Генератор кода добавляет начальные символы комментария для целевого языка. Когда новые строки или linefeeds включены в текст, генератор кода излучает однострочные комментарии для каждой новой строки.

Package postfix

HDL Coder применяет эту опцию только в том случае, если для проекта требуется файл пакета.

По умолчанию: _pkg

Entity conflict postfix

Укажите вектор символов для разрешения повторяющихся имен сущностей VHDL или модулей Verilog в сгенерированном коде.

По умолчанию: _block

Reserved word postfix

Задайте вектор символов для добавления к именам значений, постфиксным значениям или меткам, которые являются зарезервированными словами VHDL или Verilog.

По умолчанию: _rsvd

Clocked process postfix

Укажите вектор символов для добавления к именам процессов HDL-синхроимпульса.

По умолчанию: _process

Complex real part postfix

Задайте вектор символов, чтобы добавить к действительной части имен сложных сигналов.

По умолчанию: '_ r'

Complex imaginary part postfix

Задайте вектор символов, чтобы добавить к мнимой части имен сложных сигналов.

По умолчанию: '_ m'

Pipeline postfix

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

По умолчанию: '_ трубопровод'

Enable prefix

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

По умолчанию: 'enb'

Генерация кода: вкладка «Часы и порты»

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

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

Reset type

Укажите, использовать ли асинхронную или синхронную логику сброса при генерации HDL-кода для регистров.

По умолчанию: Asynchronous

Reset Asserted level

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

По умолчанию: Активный-высокий

Reset input port

Введите имя входного порта сброса в сгенерированном HDL-коде.

По умолчанию: сброс

Clock input port

Укажите имя входного порта синхроимпульса в сгенерированном HDL-коде.

По умолчанию: clk

Clock enable input port

Укажите имя входного порта включения синхроимпульса в сгенерированном HDL-коде.

По умолчанию: clk

Oversampling factor

Задайте частоту часов глобальной избыточной дискретизации как кратную тестируемым проектом (DUT) основы скорости (1).

По умолчанию: 1

Input data type

Укажите тип данных HDL для входных портов.

Для VHDL опции:

  • std_logic_vector

    Задает тип VHDL STD_LOGIC_VECTOR

  • подпись/без подписи

    Задает тип VHDL SIGNED или UNSIGNED

По умолчанию: std_logic_vector

Для Verilog опции:

  • В сгенерированном коде Verilog типом данных для всех портов является «wire». Поэтому Input data type отключается, когда целевой язык является Verilog.

По умолчанию: провода

Output data type

Укажите тип данных HDL для типов выходных данных.

Для VHDL опции:

  • Аналогично типу входных данных

    Указывает, что выходные порты имеют тот же тип, заданный типом входных данных.

  • std_logic_vector

    Задает тип VHDL STD_LOGIC_VECTOR

  • подпись/без подписи

    Задает тип VHDL SIGNED или UNSIGNED

По умолчанию: То же, что и тип входных данных

Для Verilog опции:

  • В сгенерированном коде Verilog типом данных для всех портов является «wire». Поэтому тип выходных данных отключен, когда целевой язык является Verilog.

    По умолчанию: провода

Clock enable output port

Укажите имя входного порта включения синхроимпульса в сгенерированном HDL-коде.

По умолчанию: clk_enable

Генерация кода: Испытательный стенд Tab

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

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

Test bench name postfix

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

По умолчанию: '_ tb "

Force clock

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

По умолчанию: On

Clock High time (ns)

Укажите период в наносекундах, в течение которого испытательный стенд управляет высокими входными сигналами синхроимпульса (1).

По умолчанию: 5

Clock low time (ns)

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

По умолчанию: 5

Hold time (ns)

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

По умолчанию: 2 (учитывая период времени по умолчанию 10 нс)

Setup time (ns)

Отобразите время настройки входных сигналов данных.

По умолчанию: 0

Force clock enable

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

По умолчанию: On

Clock enable delay (in clock cycles)

Задайте истекшее время (в тактах) между отключением сброса и включением синхроимпульса.

По умолчанию: 1

Force reset

Определите, принудительно ли испытательный стенд сбрасывает входные сигналы.

По умолчанию: On

Reset length (in clock cycles)

Задайте интервал времени (в тактах), в течение которого выполняется сброс.

По умолчанию: 2

Hold input data between samples

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

По умолчанию: On

Initialize testbench inputs

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

По умолчанию: Off

Multi file testbench

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

По умолчанию: Off

Test bench data file name postfix

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

По умолчанию: '_ данные "

Test bench reference post fix

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

По умолчанию: '_ ref'

Ignore data checking (number of samples)

Задайте количество выборок, во время которых подавляется проверка выходных данных.

По умолчанию: 0

Use fiaccel to accelerate test bench logging

Чтобы сгенерировать испытательный стенд, HDL Coder моделирует оригинальный код MATLAB. Используйте Fixed-Point Designer™ fiaccel функция для ускорения этой симуляции и ускорения логгирования на испытательном стенде.

По умолчанию: On

Генерация кода: вкладка Оптимизации

Настройки оптимизации

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

Map persistent array variables to RAMs

Выберите, чтобы сопоставить переменные стойкого массива с ОЗУ вместо отображения в регистры сдвига.

По умолчанию: Off

Зависимости:

  • RAM Mapping Threshold

  • Persistent variable names for RAM Mapping

RAM Mapping Threshold

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

По умолчанию: 256

Persistent variable names for RAM Mapping

Укажите имена постоянных переменных для сопоставления с ОЗУ.

По умолчанию: Нет

Input Pipelining

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

По умолчанию: 0

Output Pipelining

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

По умолчанию: 0

Distribute Pipeline Registers

Уменьшает критический путь путем изменения размещения регистров в проекте. Работает со всеми регистрами, включая те, что вставляются с использованием параметров Input Pipelining и Output Pipelining, и внутренних регистров проекта.

По умолчанию: Off

Sharing Factor

Количество дополнительных источников, которые могут совместно использовать один ресурс, например, множитель. Для совместного использования ресурсов установите Sharing Factor равным 2 или выше; значение 0 или 1 отключает совместное использование.

В проекте, который выполняет идентичные операции умножения, HDL Coder можете уменьшить количество умножителей на коэффициент совместного использования. Это может значительно уменьшить площадь.

По умолчанию: 0

Симуляция и верификация

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

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

Инструмент для симуляции

Список доступных инструментов симуляции.

По умолчанию: Нет

Skip this step

По умолчанию: Off

Результаты и рекомендуемые действия

УсловияРекомендуемое действие
В пути к системе отсутствует инструмент симуляции.Добавьте путь инструмента симуляции к системному пути MATLAB, а затем перезапустите MATLAB. Для получения дополнительной информации см. Раздел «Setup пути инструмента синтеза».

Синтез и анализ

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

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

Skip this step

По умолчанию: Off

Пропустите этот шаг, если вы заинтересованы только в симуляции или у вас нет инструмента синтеза.

Создание проекта

Создайте проект синтеза для поддерживаемого инструмента синтеза.

Описание.  Эта задача создает проект синтеза для выбранного инструмента синтеза и загружает проект с HDL-кодом, сгенерированным для вашего алгоритма MATLAB.

Можно выбрать необходимое семейство, устройство, пакет и скорость.

Когда создание проекта завершено, HDL Workflow Advisor отображает ссылку на проект в правой панели. Щелкните эту ссылку, чтобы просмотреть проект в окне проекта инструмента синтеза.

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

Synthesis Tool

Выберите из списка:

  • Altera Quartus II

    Сгенерируйте проект синтеза для Altera® Quartus II. Когда вы выбираете эту опцию, HDL Coder устанавливает:

    • Chip Family с Stratix II

    • Device Name с EP2S60F1020C4

    Эти параметры можно изменить вручную.

  • Xilinx ISE

    Сгенерируйте проект синтеза для Xilinx® ISE. Когда вы выбираете эту опцию, HDL Coder:

    • Устанавливает Chip Family на Virtex4

    • Устанавливает Device Name на xc4vsx35

    • Устанавливает Package Name на ff6...

    • Устанавливает Speed Value на —...

    Эти параметры можно изменить вручную.

По умолчанию: No Synthesis Tool Specified

Когда вы выбираете No Synthesis Tool SpecifiedHDL Coder не генерирует синтезирующий проект. Он очищает и отключает поля на панели Synthesis Tool Selection.

Chip Family

Семейство целевых устройств.

По умолчанию: Нет

Device Name

Конкретное целевое устройство в выбранном семействе.

По умолчанию: Нет

Package Name

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

По умолчанию: Нет

Speed Value

Доступные варианты скорости. Семейство, устройство и пакет определяют эти варианты.

По умолчанию: Нет

Результаты и рекомендуемые действия

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

Запуск логического синтеза

Запустите выбранный инструмент синтеза и синтезируйте сгенерированный HDL-код.

Описание.  Эта задача:

  • Запускает инструмент синтеза в фоновом режиме.

  • Открывает ранее сгенерированный проект синтеза, компилирует HDL-код, синтезирует дизайн и издает нетлисты и связанные файлы.

  • Отображает журнал синтеза в подпанели Result.

Результаты и рекомендуемые действия

УсловияРекомендуемое действие
Инструмент синтеза выходит из строя при работе с местом и маршрутом.Считайте сообщение об ошибке, возвращенное инструментом синтеза, измените код MATLAB, а затем перезапустите из начала рабочего процесса HDL Coder.

Место и маршрут запуска

Запускает инструмент синтеза в фоновом режиме и запускает процесс Place and Route.

Описание.  Эта задача:

  • Запускает инструмент синтеза в фоновом режиме.

  • Запускает процесс Place and Route, который принимает описание схемы, полученное в предыдущем процессе отображения, и излучает описание схемы, подходящее для программирования FPGA.

  • Отображение журнала в подпанели Результат.

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

Skip this step

Если вы выбираете Skip this step, HDL Workflow Advisor выполняет рабочий процесс, но опускает Perform Place и Route, помечая его Passed. Можно хотеть выбрать Skip this step, если вы предпочитаете выполнять работу по месту и маршруту вручную.

По умолчанию: Off

Результаты и рекомендуемые действия

УсловияРекомендуемое действие
Инструмент синтеза выходит из строя при работе с местом и маршрутом.Считайте сообщение об ошибке, возвращенное инструментом синтеза, измените код MATLAB, а затем перезапустите из начала рабочего процесса HDL Coder.