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