Дискретный фильтр FIR (Simulink) (при использовании со скалярными или многоканальными входными данными) и блоки Biquad Filter участвуют в оптимизации на уровне подсистемы. Чтобы задать свойства оптимизации, щелкните правой кнопкой мыши подсистему и откройте диалоговое окно Свойства HDL (HDL Properties).
Для участия этих блоков в оптимизации на уровне подсистем необходимо оставить для параметра «Архитектура на уровне блоков» значение по умолчанию. Fully parallel.
Эти оптимизации подсистемы нельзя использовать при использовании дискретного фильтра FIR в режиме ввода на основе кадров.
Эти блоки фильтра поддерживают совместное использование ресурсов внутри фильтра и между несколькими блоками в подсистеме. При указании SharingFactor инструменты оптимизации генерируют реализацию фильтра в HDL, которая совместно использует ресурсы с использованием временного мультиплексирования. Чтобы создать реализацию HDL, использующую минимальное количество множителей, установите SharingFactor в значение, большее или равное общему количеству множителей. Алгоритм совместного использования совместно использует множители с одинаковыми типами входных и выходных данных. Чтобы разрешить совместное использование блоков, может потребоваться настроить внутренние типы данных фильтров. Кроме того, с помощью SharingFactor можно задать целевую частоту системных часов.
Совместное использование ресурсов применяется к множителям по умолчанию. Чтобы предоставить общий доступ к сумматорам, установите флажок «Общий доступ к ресурсам» в диалоговом окне «Параметры конфигурации» > «Создание кода HDL» > «Глобальные параметры» > «Оптимизации».
Дополнительные сведения см. в разделах Совместное использование ресурсов (кодер HDL) и Пример уменьшения площади подсистемы многоканального фильтра.
Можно также использовать SharingFactor с многоканальными фильтрами. См. раздел Уменьшение площади подсистемы фильтра.
Под потоковой передачей понимается совместное использование атомной части конструкции в нескольких каналах. Чтобы создать потоковую реализацию HDL многоканальной подсистемы, установите StreamingFactor в число каналов в конструкции.
Если подсистема содержит одиночный блок фильтра, то опция «block-level StartSharing» и опция «StreamingFactor» на уровне подсистемы приводят к аналогичным реализациям HDL. Используйте StreamingFactor, если подсистема содержит несколько блоков фильтров или дополнительную многоканальную логику, которая может участвовать в оптимизации. Вы должны установить на block-level (блочный общий доступ) значение off для использования StreamingFactor на уровне подсистемы.
См. примеры потоковой передачи (кодер HDL) и уменьшения площади подсистемы фильтра.
Можно включить функцию Pipelining на уровне подсистемы, чтобы разрешить фильтру участвовать в оптимизации трубопровода. Инструменты оптимизации работают на этапах трубопровода InputPipeline и OutputPipeline, указанных на уровне подсистемы. Инструменты оптимизации также работают на следующих ступенях трубопровода уровня блока:
InputPipeline и OutputPipeline
Мультипликатор InputPipeline и мультипликатор OutputPipeline
AddPipelineRegisters
Средства оптимизации не перемещают задержки проектирования в пределах архитектуры фильтра. См. Распределенная конвейерная обработка (кодер HDL).
Блок фильтра также участвует в конвейере тактовой частоты, если он включен в параметрах конфигурации. Эта функция включена по умолчанию. См. раздел Конвейерная обработка тактовой частоты (кодер HDL).
Чтобы уменьшить количество множителей в реализации HDL многоканального фильтра и логики окружения, используйте оптимизацию Coder™ StreamingFactor HDL.

Модель включает в себя двухканальный источник синусоидального сигнала, питающий подсистему фильтра, предназначенную для генерации кода ЛПВП.

Подсистема содержит блок дискретного КИХ-фильтра и постоянный множитель. Множитель включен, чтобы показать оптимизации, работающие по всей подходящей логике в подсистеме.
Фильтр имеет 44 симметричных коэффициента. Без поддержки оптимизации созданный код HDL использует преимущества симметрии. Неоптимизированная реализация ЛПВП использует 46 умножителей: 22 для каждого канала фильтра и 1 для каждого канала блока продукта.

Для оптимизации потоковой передачи для подсистемы многоканального фильтра FIR щелкните правой кнопкой мыши подсистему и выберите «Код HDL» > «Свойства блока HDL».

Установите для StreamingFactor значение 2, поскольку эта конструкция является двухканальной системой.
Чтобы увидеть эффект оптимизации, в разделе Параметры конфигурации > Создание кода HDL выберите Создать отчет об использовании ресурсов и Создать отчет об оптимизации. Затем для генерации кода HDL щелкните правой кнопкой мыши подсистему многоканального фильтра FIR и выберите HDL Code > Generate HDL for Subsystem.
При примененном коэффициенте потоковой передачи логическая схема для одного канала создается один раз и выполняется с удвоенной скоростью исходной модели.

В окне Отчет о создании кода щелкните Отчет о высокоуровневых ресурсах. Сгенерированный код HDL теперь использует 23 умножителя по сравнению с 46 в неоптимизированном коде. Множители в ядре фильтра и последующее масштабирование совместно используются каналами.

Чтобы применить SharingFactor к многоканальным фильтрам, установите SharingFactor равным 23.

Оптимизированный ЛПВП теперь использует только 2 умножителя. Инструменты оптимизации не используют мультипликаторы различных размеров.

Для уменьшения количества множителей в реализации HDL мультифильтра используется оптимизация Coder™ SharingFactor HDL.

Модель включает в себя источник синусоидального сигнала, питающий подсистему фильтра, предназначенную для генерации кода ЛПВП.

Подсистема содержит блок дискретного КИХ-фильтра и блок биквад-фильтра. Эта конструкция демонстрирует, как инструменты оптимизации совместно используют ресурсы между несколькими блоками фильтров.
Блок дискретного КИХ-фильтра имеет 43 симметричных коэффициента. Блок фильтра Биквада имеет 6 коэффициентов, два из которых являются единицами. При отсутствии оптимизации генерируемый код HDL использует преимущества коэффициентов симметрии и единицы. В неоптимизированной реализации HDL подсистемы используется 27 умножителей.

Для оптимизации потоковой передачи для мультифильтровой подсистемы щелкните правой кнопкой мыши подсистему и выберите «Код HDL» > «Свойства блока HDL».

Установите SharingFactor равным 27, чтобы уменьшить конструкцию до одного множителя. Инструменты оптимизации пытаются совместно использовать множители с соответствующими типами данных. Чтобы уменьшить число до одного множителя, необходимо настроить внутренние типы данных блоков фильтра на соответствие друг другу.
Чтобы увидеть эффект оптимизации, в разделе Параметры конфигурации > Создание кода HDL выберите Создать отчет об использовании ресурсов и Создать отчет об оптимизации. Затем для создания кода HDL щелкните правой кнопкой мыши подсистему Multi-Filter и выберите HDL Code > Generate HDL for Subsystem.
Применяя SharingFactor, подсистема увеличивает частоту на 27, чтобы совместно использовать один множитель для всех коэффициентов.

В окне Отчет о создании кода щелкните Отчет о высокоуровневых ресурсах. Сгенерированный код HDL теперь использует один множитель.
