Прежде чем вы будете работать с HDL Workflow Advisor HDL Coder™, будете планировать, как подготовить подсистему FPGA к синтезу FPGA и генерации HDL-кода.
Во-первых, чтобы решить, который FPGA предназначаться для генерации кода, консультируйтесь с таблицей данных Speedgoat для получения информации:
Доступность и стоимость
Соедините шиной совместимость
Размер
Схемы контактов
Тактовая частота
Процедура в качестве примера использует рабочий процесс Simulink® Real-Time™ FPGA и FPGA Speedgoat IO331 плата IO как целевая платформа. Этот выбор требует, чтобы вы использовали инструмент синтеза Xilinx® ISE.
Для получения информации о других целевых устройствах смотрите Поддержку Языка HDL и Поддерживаемые Сторонние программы и Оборудование (HDL Coder).
Чтобы выбрать режим синхронизации процессора/FPGA, необходимо решить который из режимов синхронизации FPGA, чтобы использовать:
Free running
Coprocessing — blocking
Coprocessing — nonblocking with delay
.
Для получения дополнительной информации смотрите Режимы Синхронизации FPGA.
Inports и выходные порты могут передать данные сигнала между целевой машиной Speedgoat и FPGA по шине PCI. В качестве альтернативы они могут сопоставить с каналами ввода-вывода для связи с внешними устройствами. Для контакта коннектора и присвоений канала ввода-вывода вашей поддерживаемой платы ввода-вывода FPGA, смотрите страницу с описанием платы для своей платы.
В дополнение к Port Name и Port Type (Inport
или Outport
), чтобы задать интерфейс I/O, см.:
Тип данных такие атрибуты как ширина и знак. Типы данных должны последовательно сопоставлять со своими соответствующими контактами ввода-вывода. Импорт типа Boolean
требует 1 бита, один из типа uint32
требует 32 битов, и так далее. Например, вы не можете соединить импорт типа uint32
к интерфейсу FPGA I/O типа TTL I/O channel [0:7]
; это требует TTL I/O channel [0:31]
.
Target Platform Interfaces — Кодирует каналы ввода-вывода на FPGA и их функциональном типе. Для несимметричного интерфейса (TTL
, LVCMOS
), один канал сопоставляет с одним контактом коннектора. Для дифференциального интерфейса (RS422
, LVDS
), один канал сопоставляет с двумя контактами коннектора. Чтобы обнаружить отображение для конкретного контакта, см. карту коннектора контакта, которой предоставляют описание плат.
Каналы ввода-вывода могут также сопоставить с предопределенной спецификацией или ролью (PCI Interface
, Interrupt from FPGA
).
Для получения информации об использовании прерываний FPGA смотрите Настройку Прерывания.
Bit Range/Address/FPGA Pin — Кодирует контакты на целевой платформе, которой импорт и выходные порты присвоены, наряду с номером канала, используемым портом. Для спецификации PCI Interface
, Bit Range/Address/FPGA Pin кодирует адрес PCI, используемый портом.
Если векторный импорт или выходные порты требуются, задают векторный порт:
Inport
— Добавьте мультиплексор вне подсистемы, которая соединяется с демультиплексором в подсистеме.
Outport
– Добавьте мультиплексор в подсистеме, которая соединяется с демультиплексором вне подсистемы.
Inport
и Outport
– Сконфигурируйте размерность порта, чтобы быть больше 1.
Чтобы достигнуть одновременного обновления векторных элементов порта, Советник по вопросам Рабочего процесса автоматически вставляет строб и задает смещение строба. Для получения дополнительной информации см. Руководство пользователя Ядра IP (HDL Coder).
Если вы задали векторный импорт или выходные порты, прежде, чем сгенерировать код, необходимо установить флажок Scalarize vector ports. Этот флажок находится на вкладке Coding style узла Global Settings под узлом HDL Code Generation в диалоговом окне Configuration Parameters.
Значения по умолчанию частоты системных часов FPGA к фиксированному входу FPGA синхронизируют частоту. Фиксированную частоту часов входа FPGA показывают в поле FPGA input clock frequency (MHz). Можно задать другую частоту в этом поле. Если схемы синхронизации FPGA не могут сгенерировать заданное значение точно, HDL Workflow Advisor HDL Coder генерирует самое близкое соответствие. Самое близкое соответствие, Fsystem
, основан на следующей формуле:
Finput
фиксированная частота часов входа FPGA. ClkFxMultiply
и ClkFxDivide
целые числа.
Процедура развертывания FPGA зависит от модели FPGA.
Когда HDL Workflow Advisor HDL Coder генерирует запрограммированную подсистему FPGA, он записывает файл SLX (gm_
) и файл C (mdlname
.slx
) в папку модели. Файл SLX содержит подсистему FPGA. Файл C содержит поток битов.blkorrefmdlname
_topiospeedgoat#
C
Например, примите ту модель fpga_model.slx
содержит блок Subsystem под названием fpga_subsystem
, и это вы конфигурируете целевую платформу FPGA для модели как Speedgoat IO331. Затем HDL Workflow Advisor HDL Coder генерирует следующие файлы:
gm_fpga_model.slx fpga_subsystem_topIO331.c
Когда вы создаете свою модель предметной области с интегрированной подсистемой, разработчиком моделей:
Читает файл C.
Вставляет его содержимое в приложение реального времени.
Группирует приложение реального времени как файл MLDATX.
Разработчик моделей принимает, что файл SLX и файл C находятся в той же папке. Если вы развертываете модель в другое местоположение на диске, копируете файл SLX и файл C к новому местоположению.
Когда HDL Workflow Advisor HDL Coder генерирует запрограммированную подсистему FPGA, он записывает файл SLX (gm_
) и файл MCS (mdlname
.slx
) в папку модели. Файл SLX содержит подсистему FPGA. Файл MCS содержит поток битов.blkorrefmdlname
_timestamp
.mcs
Например, примите ту модель fpga_model.slx
содержит блок Subsystem под названием fpga_subsystem
, и это вы конфигурируете целевую платформу FPGA для модели как Speedgoat IO333. Затем HDL Workflow Advisor HDL Coder генерирует следующие файлы:
gm_fpga_model.slx fpga_subsystem_201703301740.mcs
Когда вы создаете свою модель предметной области с интегрированной подсистемой, разработчиком моделей:
Генерирует приложение реального времени.
Группирует приложение реального времени и файл MCS как файл MLDATX.
Разработчик моделей ищет файл MCS на пути MATLAB®. Если вы развертываете модель в другое местоположение на диске, добавьте новое местоположение в путь.