exponenta event banner

Использование системного генератора Xilinx ® для DSP с HDL Coder™

В этом примере показано, как использовать системный генератор Xilinx для DSP с кодером HDL.

Введение

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

В этом примере конструкция, или подсистема генерации кода, содержит две части: одна с собственными блоками Simulink, а другая с блоками Xilinx. Блоки Xilinx сгруппированы в подсистему генератора системы Xilinx sysgendut который находится внутри SLandSysGen Подсистема на верхнем уровне модели hdlcoder_slsysgen. Системный генератор оптимизирует эти блоки для FPGA Xilinx. В остальной части проекта блоки Simulink и HDL Coder предлагают возможности проектирования на основе моделей и оптимизацию HDL, такие как распределенная конвейерная обработка и балансировка задержек.

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

Оптимизация на уровне модели для компонентов Simulink ®

В этом примере дерево сумм, указанное sldut сечение внутри SLandSysGen Подсистема моделируется блоками Simulink. Для оптимизации скорости можно использовать функцию распределенной конвейерной обработки.

Распределенная конвейерная обработка может перемещать регистры трубопроводов в дерево сумм для уменьшения критического пути без изменения функции модели. Другие оптимизации, такие как совместное использование ресурсов, также доступны, но не используются в этом примере.

open_system('hdlcoder_slsysgen/SLandSysGen');

Создание подсистемы генератора системы Xilinx

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

  1. Поместите блоки Xilinx в одну подсистему и оставьте для архитектуры HDL значение по умолчанию Module.

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

open_system('hdlcoder_slsysgen/SLandSysGen/sysgendut');

Настройка входящих и исходящих шлюзов

В каждой подсистеме Xilinx System Generator необходимо подключать входные и выходные порты непосредственно к блокам Gateway In и Gateway Out.

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

Создание кода HDL

Для создания кода HDL можно использовать makehdl в командной строке или HDL Workflow Advisor. Для использования makehdl:

makehdl('hdlcoder_slsysgen/SLandSysGen');

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