КИХ-десятикратное уменьшение

Отфильтруйте и субдискретизируйте входные сигналы (HDL Coder)

Описание

Блок FIR Decimation доступен с DSP System Toolbox™.

Для получения информации о поведении симуляции и параметрах блоков, смотрите КИХ-Десятикратное уменьшение.

HDL Coder™ поддерживает опции Coefficient source Dialog parameters, Filter object или Auto. Программируемые коэффициенты не поддержаны.

Основанная на кадре входная поддержка

HDL Coder поддерживает использование векторных входных параметров к КИХ-блокам Десятикратного уменьшения, где каждый элемент вектора представляет выборку вовремя. Можно использовать входной вектор до 512 выборок. Основанные на кадре типы входных и выходных данных фиксированной точки поддержки внедрения и полная точность использования внутренние типы данных. Вывод является вектор-столбцом уменьшаемого размера, соответствуя вашему фактору десятикратного уменьшения. Можно использовать действительные входные сигналы с действительными коэффициентами, комплексные входные сигналы с действительными коэффициентами или действительные входные сигналы с комплексными коэффициентами.

  1. Соедините сигнал вектор-столбца с входным портом блока FIR Decimation.

  2. Задайте Input processing как Columns as channels (frame based).

  3. Установите Rate options на Enforce single-rate processing.

  4. Щелкните правой кнопкой по блоку и откройте HDL Code> HDL Block Properties. Установите Architecture на Frame Based. Блок реализует параллельную архитектуру HDL. Смотрите Основанную на кадре Архитектуру.

Архитектура HDL

Чтобы уменьшать область или скорость увеличения, блок FIR Decimator поддерживает оптимизацию блочного уровня.

Щелкните правой кнопкой по блоку или подсистеме, чтобы открыть соответствующее диалоговое окно HDL Properties и установить свойства оптимизации.

Блокируйте оптимизацию

Последовательная архитектура

Чтобы использовать оптимизацию блочного уровня, чтобы уменьшать аппаратные ресурсы, установите Architecture на Fully Serial или Partly Serial. Смотрите Архитектуру Фильтра HDL.

Когда вы задаете SerialPartition для блока FIR Decimator, устанавливаете Filter structure на Direct form. Структура Direct form transposed не поддержана с последовательной архитектурой. Повторное использование аккумулятора не поддержано для КИХ-Децимирующих фильтров.

Распределенная арифметика

Чтобы минимизировать множители, заменяя их на LUTs и сдвиговые регистры, используйте реализацию фильтра распределенной арифметики (DA). Смотрите Распределенную Арифметику для Фильтров HDL.

Когда вы выбираете архитектуру Distributed Arithmetic (DA) и используете DALUTPartition, и DARadix распределил арифметические свойства, установите Filter structure на Direct form. Структура Direct form transposed не поддержана с распределенной арифметикой.

Конвейеризация

Чтобы улучшить тактовую частоту, используйте AddPipelineRegisters, чтобы использовать конвейерное дерево сумматора, а не линейный сумматор по умолчанию. Эта опция поддерживается для архитектуры Direct form. Можно также задать количество настроек канала связи до и после множителей. Смотрите Архитектуру Фильтра HDL.

Свойства фильтра HDL

AddPipelineRegisters

Вставьте конвейерный регистр между этапами вычисления в фильтре. См. также AddPipelineRegisters.

CoeffMultipliers

Задайте использование оптимизации канонической цифры со знаком (CSD), чтобы уменьшить область фильтра, заменив содействующие множители на логику shift-and-add. Когда вы выбираете полностью параллельную реализацию фильтра, можно установить CoeffMultipliers на csd или factored-csd. Значением по умолчанию является multipliers, который сохраняет множители в HDL. См. также CoeffMultipliers.

DALUTPartition

Задайте распределенные арифметические разделы LUT частичного продукта как вектор размеров каждого раздела. Сумма всех векторных элементов должна быть равна длине фильтра. Максимальный размер для раздела является 12 касаниями. Установите DALUTPartition на скалярное значение, равное длине фильтра генерировать код DA без разделов LUT. См. также DALUTPartition.

DARadix

Задайте, сколько распределенных арифметических битных сумм вычисляется параллельно. Основание DA 8 (2^3) генерирует реализацию DA, которая вычисляет три суммы за один раз. Значением по умолчанию является 2^1, который генерирует полностью последовательную реализацию DA. См. также DARadix.

MultiplierInputPipeline

Задайте количество настроек канала связи, чтобы добавить во входных параметрах множителя фильтра. См. также MultiplierInputPipeline.

MultiplierOutputPipeline

Задайте количество настроек канала связи, чтобы добавить во множителе фильтра выходные параметры. См. также MultiplierOutputPipeline.

SerialPartition

Задайте разделы для частично последовательных или каскадно-последовательных реализаций фильтра как вектор длин каждого раздела. Для полностью последовательной реализации, установленной этот параметр на длину фильтра. См. также SerialPartition.

Свойства блока HDL

ConstrainedOutputPipeline

Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. Значение по умолчанию 0. См. также ConstrainedOutputPipeline.

InputPipeline

Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также InputPipeline.

OutputPipeline

Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также OutputPipeline.

Ограничения

  • Необходимо обнулить Initial conditions. Генерация HDL-кода не поддержана для ненулевых начальных состояний.

  • Когда вы выбираете Dialog parameters, следующие опции фиксированной точки не поддержаны для генерации HDL-кода:

    • Slope and Bias scaling

  • Опции CoeffMultipliers поддерживаются только при использовании полностью параллельной архитектуры. Когда вы выбираете последовательную архитектуру, CoeffMultipliers скрыт от диалогового окна HDL Block Properties.

  • Основанные на кадре входные фильтры не поддержаны для:

    • Восстановленные и активированные подсистемы

    • Комплексные входные сигналы с комплексными коэффициентами. Можно использовать или комплексные входные сигналы и действительные коэффициенты, или объединить коэффициенты и действительные входные сигналы.

    • Совместное использование и потоковая передача оптимизации

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Fixed-Point Designer™.

Введенный в R2014a