Используя системный генератор Xilinx для DSP с HDL Coder

Этот пример показывает, как использовать Генератор Xilinx® System для DSP с HDL Coder™.

Введение

Используя Xilinx® System блок Subsystem Генератора позволяет образцовым блокам использования проектов и от Simulink® и от Xilinx®, и автоматически сгенерировать интегрированный HDL-код. HDL Coder™ генерирует HDL-код от блоков Simulink® и использует Генератор Xilinx® System, чтобы сгенерировать HDL-код от блоков Subsystem Генератора Xilinx® System.

В этом примере проект или подсистема генерации кода, содержит две части: один с собственными блоками Simulink®, и один с блоками Xilinx®. Блоки Xilinx® сгруппированы в Xilinx® System Generator Subsystem (hdlcoder_slsysgen/SLandSysGen/sysgendut). Системный Генератор оптимизирует эти блоки для Xilinx® FPGAs. В остальной части проекта блоки Simulink® и HDL Coder™ предлагают много функций модельно-ориентированного проектирования, такой, как распределено конвейеризация и балансировка задержки, чтобы выполнить оптимизацию образцового уровня.

open_system('hdlcoder_slsysgen');
open_system('hdlcoder_slsysgen/SLandSysGen');

Создайте Xilinx® System Generator Subsystem

Создать подсистему Генератора Xilinx® System:

  1. Поместите блоки Xilinx® в одну подсистему и установите ее архитектуру на "Модуль" (значение по умолчанию).

  2. Поместите Системную лексему Генератора в верхнем уровне подсистемы. У вас может быть иерархия подсистемы в Xilinx® System Generator Subsystem, но должна быть Системная лексема Генератора в верхнем уровне иерархии.

open_system('hdlcoder_slsysgen/SLandSysGen/sysgendut');

Сконфигурируйте шлюз в, и шлюз блокируется

В каждой подсистеме Генератора Xilinx® System необходимо соединить порты ввода и вывода непосредственно со Шлюзом В, и Шлюз блокируется.

Шлюз В блоках не должен делать нетривиального преобразования типа данных. Например, блок Gateway In может преобразовать между uint8 и UFix_8_0, но изменяющим знаком данных, размером слова, или фракционироваться, длина не позволена.

Выполните оптимизацию Образцового Уровня для Simulink® Components

В этом примере дерево суммы моделируется с блоками Simulink®. Распределенная функция конвейеризации может заботиться об оптимизации скорости.

Здесь свойство Output Pipeline hdlcoder_slsysgen/SLandSysGen/Simulink Подсистемы установлено в "4", и свойство Distributed Pipelining установлено в "на". Конвейерные регистры, вставленные распределенной функцией конвейеризации, будут продвинуты в дерево суммы уменьшать критический путь, не изменяя образцовую функцию. Другая оптимизация, такая как разделение ресурсов, также доступна, но не используемая в этом примере.

open_system('hdlcoder_slsysgen/SLandSysGen/sldut');

Сгенерируйте HDL-код

Можно использовать или makehdl в командной строке или HDL Workflow Advisor, чтобы сгенерировать HDL-код. Использовать makehdl:

makehdl('hdlcoder_slsysgen/SLandSysGen');

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