Можно сгенерировать HDL-код из модели и с Simulink® и с блоками Xilinx® с помощью подсистем Системного генератора Xilinx (XSG).
И Используя Simulink и Используя блоки Xilinx в вашей модели предоставляет следующие преимущества:
Единая платформа для объединенного Simulink и Системной симуляции Генератора Xilinx, генерации кода и синтеза.
Целевая генерация кода: Системный Генератор Xilinx для DSP генерирует код от блоков Xilinx; HDL Coder™ генерирует код от блоков Simulink.
Область HDL Coder и оптимизация скорости для компонентов Simulink.
Необходимо сгруппировать блоки Xilinx в одну или несколько подсистем Системного генератора Xilinx (XSG) для генерации кода. Подсистема XSG может содержать иерархию подсистем.
Сгенерировать код от Системной подсистемы Генератора Xilinx:
Используйте Vivado® или Комплект Проекта ISE 13.4 или позже.
Если ваш проект использует булевы типы данных, выберите установку Use STD_LOGIC type for Boolean or 1 bit wide gateways на окне Xilinx System Generator. По умолчанию Системный Генератор Xilinx использует std_logic_vector
представлять булевы типы, тогда как HDL Coder использует std_logic
, который может привести к несоответствию.
Подсистема XSG является блоком Subsystem с:
Набор архитектуры к Module.
Одна Системная лексема Генератора, помещенная в верхний уровень иерархии подсистемы XSG.
Блоки Xilinx.
Блоки Simulink, не требующие генерации кода.
Порты ввода и вывода, соединенные непосредственно со Шлюзом В или Шлюзом, блокируются.
Опция Propagate data type to output включила на Шлюзе, блокируется.
Соответствие с входными и выходными данными вводит на Шлюзе В блоках. Смотрите Ограничения для Генерации кода от Системных Подсистем Генератора Xilinx.
Создайте подсистему, содержащую блоки Xilinx, и установите его архитектуру на Module
.
Добавьте Системную лексему Генератора в верхнем уровне подсистемы.
У вас может быть иерархия подсистемы в Системной подсистеме Генератора Xilinx, но должна быть Системная лексема Генератора в верхнем уровне иерархии.
Соедините каждый порт ввода или вывода подсистемы непосредственно с блоком Gateway In или Gateway Out.
На каждом блоке Gateway Out выберите опцию Propagate data type to output.
Для примера генерации HDL-кода от Системной подсистемы Генератора Xilinx смотрите Используя Системный Генератор Xilinx для DSP с HDL Coder.
У генерации кода от подсистем Системного генератора Xilinx (XSG) есть нижеследующие ограничения:
ConstrainedOutputPipeline
, InputPipeline
, и OutputPipeline
единственные допустимые свойства блока для подсистемы XSG.
HDL Coder не генерирует код для блоков в подсистеме XSG, включая блоки Simulink.
Шлюз В блоках не должен делать нетривиального преобразования типа данных. Например, блок Gateway In может преобразовать между sfix8_en6
и Fix_8_6
типы данных, но изменяющий знак данных, размер слова или дробная длина не позволены.
Для генерации кода Verilog® имена блока Simulink в вашем проекте не могут совпасть с именами Xilinx. Точно так же блоки Xilinx в вашем проекте не могут иметь того же имени как другие блоки Xilinx. HDL Coder не может разрешить эти конфликты по совпадению имен и генерирует ошибку поздно в процессе генерации кода.