В этом примере показано, как использовать системный генератор 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');

В этом примере дерево сумм, указанное sldut сечение внутри SLandSysGen Подсистема моделируется блоками Simulink. Для оптимизации скорости можно использовать функцию распределенной конвейерной обработки.
Распределенная конвейерная обработка может перемещать регистры трубопроводов в дерево сумм для уменьшения критического пути без изменения функции модели. Другие оптимизации, такие как совместное использование ресурсов, также доступны, но не используются в этом примере.
open_system('hdlcoder_slsysgen/SLandSysGen');

Чтобы создать подсистему генератора системы Xilinx, выполните следующие действия.
Поместите блоки Xilinx в одну подсистему и оставьте для архитектуры HDL значение по умолчанию Module.
Разместите маркер системного генератора на верхнем уровне подсистемы. Можно иметь иерархию подсистем в подсистеме системного генератора Xilinx, но на верхнем уровне иерархии должен быть маркер системного генератора.
open_system('hdlcoder_slsysgen/SLandSysGen/sysgendut');

В каждой подсистеме Xilinx System Generator необходимо подключать входные и выходные порты непосредственно к блокам Gateway In и Gateway Out.
Шлюз в блоках не должен выполнять нетривиальное преобразование типа данных. Например, блок Gateway In может преобразовываться между uint8 и UFix_8_0, но изменение знака данных, длины слова или длины дроби не допускается.
Для создания кода HDL можно использовать makehdl в командной строке или HDL Workflow Advisor. Для использования makehdl:
makehdl('hdlcoder_slsysgen/SLandSysGen');
Можно также создать тестовый стенд, смоделировать и синтезировать конструкцию так же, как для любой другой модели.