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

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

Введение

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

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

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

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

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

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

open_system('hdlcoder_slsysgen/SLandSysGen');

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

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

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

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

open_system('hdlcoder_slsysgen/SLandSysGen/sysgendut');

Сконфигурируйте блоки Gateway In и Gateway Out

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

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

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

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

makehdl('hdlcoder_slsysgen/SLandSysGen');

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