Прежде чем вы будете работать с HDL Workflow Advisor HDL Coder™, будете планировать, как подготовить подсистему FPGA к синтезу FPGA и генерации HDL-кода.
Во-первых, чтобы решить, который FPGA предназначаться для генерации кода, консультируйтесь с таблицей данных Speedgoat для получения информации:
Доступность и стоимость
Соедините шиной совместимость
Размер
Схемы контактов
Тактовая частота
Процедура в качестве примера использует рабочий процесс Simulink® Real-Time™ FPGA и FPGA Speedgoat IO331 плата IO как целевая платформа. Этот выбор требует, чтобы вы использовали инструмент синтеза Xilinx® ISE.
Для получения информации о других целевых устройствах смотрите Поддерживаемые Сторонние программы и Оборудование (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 (
) и файл C (gm_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 (
) и файл MCS (gm_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®. Если вы развертываете модель на другом местоположении на диске, добавьте новое местоположение в путь.