В этом примере показано, как использовать 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');
В этом примере дерево сумм, обозначенное sldut
сечение внутри SLandSysGen
Подсистема моделируется блоками Simulink. Можно использовать функцию распределённой конвейеризации, чтобы позаботиться об оптимизации скорости.
Распределённая конвейеризация может переместить регистры трубопровода в дерево сумм, чтобы уменьшить критический путь, не меняя функцию модели. Другие оптимизации, такие как совместное использование ресурсов, также доступны, но не используются в этом примере.
open_system('hdlcoder_slsysgen/SLandSysGen');
Чтобы создать подсистему Xilinx System Generator, выполните следующие действия.
Поместите блоки Xilinx в одну подсистему и оставьте для архитектуры HDL значение по умолчанию Module
.
Поместите лексему System Generator на верхний уровень подсистемы. Вы можете иметь иерархию подсистем в Подсистеме Генератора Систем Xilinx, но должен быть лексема Генератора Систем на верхнем уровне иерархии.
open_system('hdlcoder_slsysgen/SLandSysGen/sysgendut');
В каждой подсистеме Xilinx System Generator необходимо подключить входные и выходные порты непосредственно к блокам Gateway In и Gateway Out.
Шлюзы In не должны выполнять нетривиальное преобразование типов данных. Для примера Шлюза In может преобразовываться между uint8
и UFix_8_0
, но изменение знака данных, размеры слова или длины дроби не допускается.
Для генерации HDL-кода можно использовать makehdl в командной строке или HDL Workflow Advisor. Чтобы использовать makehdl:
makehdl('hdlcoder_slsysgen/SLandSysGen');
Можно также сгенерировать тестовый график, моделировать и синтезировать проект так же, как для любой другой модели.