Используя разработчика DSP Altera усовершенствованный Blockset с HDL Coder

В этом примере показано, как использовать Altera® DSP Builder Advanced Blockset с HDL Coder™.

Введение

Используя блок Subsystem Altera® DSP Builder Advanced Blockset или блок Subsystem DSPBA, включает вам с блоками использования проектов модели и из Simulink® и из Altera®, и автоматически сгенерировать интегрированный HDL-код. HDL Coder™ генерирует HDL-код от блоков Simulink® и использует Altera® DSP Builder, чтобы сгенерировать HDL-код от блоков Subsystem DSPBA.

В этом примере проект или подсистема генерации кода, содержит две части: один с собственными блоками Simulink®, и один с блоками Altera® DSP Builder Advanced. Блоки Altera® сгруппированы в Подсистеме DSPBA (hdlcoder_sldspba/SLandDSPBA/DSPBA Подсистема). Altera® DSP Builder оптимизирует эти блоки для Altera® FPGAs. В остальной части проекта блоки Simulink® и HDL Coder™ предлагают много функций модельно-ориентированного проектирования, такой, как распределено конвейеризация и балансировка задержки, чтобы выполнить оптимизацию уровня модели.

open_system('hdlcoder_sldspba');
open_system('hdlcoder_sldspba/SLandDSPBA');

Setup для Altera® DSP Builder Advanced Blockset

Для того, чтобы использовать блок Subsystem Altera® DSP Builder Advanced Blockset, необходимо было настроить Altera® Quartus II с Simulink®. Для совместимости версий обратитесь к документации HDL Coder.

Создайте Altera® DSP Builder Advanced Blockset Subsystem

Создать Подсистему DSPBA:

  1. Поместите блоки Altera® в одну подсистему и установите ее архитектуру на "Модуль" (значение по умолчанию).

  2. Поместите блок Device в верхнем уровне подсистемы. У вас может быть иерархия подсистемы в Подсистеме DSPBA, но должен быть блок Device в верхнем уровне иерархии.

open_system('hdlcoder_sldspba/SLandDSPBA/DSPBA Subsystem');

Simulink® Components

В этом примере диаграмма Stateflow генерирует канал и допустимые сигналы управлять подсистемой DSPBA.

open_system('hdlcoder_sldspba/SLandDSPBA/Simulink Subsystem');

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

Можно использовать или makehdl в командной строке или HDL Workflow Advisor, чтобы сгенерировать HDL-код. Использовать makehdl:

makehdl('hdlcoder_sldspba/SLandDSPBA');

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

Обработайте несоответствие симуляции когда допустимый сигнал, не утверждаемый

Симуляция Подсистемы DSPBA не может совпадать с поведением своего сгенерированного кода, когда допустимый сигнал не утверждается при определенных обстоятельствах, такой как тогда, когда складная опция и в hdlcoder_sldspba/SLandDSPBA/DSPBA Subsystem/ChannelIn и в hdlcoder_sldspba/SLandDSPBA/DSPBA Subsystem/ChannelOut включена. Несоответствие влияет на нисходящий проект Simulink и вызывает отказ симуляции испытательного стенда.

Чтобы видеть несоответствие, можно повернуть установку сворачивания на блоках ChannelIn и ChannelOut:

set_param('hdlcoder_sldspba/SLandDSPBA/DSPBA Subsystem/ChannelIn', 'FoldingEnabled', 1);
set_param('hdlcoder_sldspba/SLandDSPBA/DSPBA Subsystem/ChannelOut', 'FoldingEnabled', 1);

Затем сгенерируйте HDL-код и испытательный стенд снова:

makehdl('hdlcoder_sldspba/SLandDSPBA');
makehdltb('hdlcoder_sldspba/SLandDSPBA');

После симуляции сгенерированного кода и испытательного стенда, вы видите, что выходные параметры от кодера HDL совпадают со справочными данными только, когда допустимый сигнал утверждается.

Как сообщение от испытательного стенда указывает, несоответствие ожидается.

Чтобы избежать этого несоответствия симуляции, вставьте активированную подсистему в выходных сигналах Подсистемы DSPBA, прежде чем они достигнут части Simulink вашего проекта или выходных портов общего замысла. Следующая подсистема показывает, как соединить сигналы с активированной подсистемой.

open_system('hdlcoder_sldspba/SLandDSPBA2');