Отфильтруйте и субдискретизируйте входные сигналы (HDL Coder)
Блок FIR Decimation доступен с DSP System Toolbox™.
Для получения информации о поведении симуляции и параметрах блоков, смотрите КИХ-Десятикратное уменьшение.
HDL Coder™ поддерживает опции Coefficient source Dialog parameters, Filter object или Auto. Программируемые коэффициенты не поддержаны.
HDL Coder поддерживает использование векторных входных параметров к КИХ-блокам Десятикратного уменьшения, где каждый элемент вектора представляет выборку вовремя. Можно использовать входной вектор до 512 выборок. Основанные на кадре типы входных и выходных данных фиксированной точки поддержки внедрения и полная точность использования внутренние типы данных. Вывод является вектор-столбцом уменьшаемого размера, соответствуя вашему фактору десятикратного уменьшения. Можно использовать действительные входные сигналы с действительными коэффициентами, комплексные входные сигналы с действительными коэффициентами или действительные входные сигналы с комплексными коэффициентами.
Соедините сигнал вектор-столбца с входным портом блока FIR Decimation.
Задайте Input processing как Columns as channels (frame based)
.
Установите Rate options на Enforce single-rate processing
.
Щелкните правой кнопкой по блоку и откройте HDL Code> HDL Block Properties. Установите Architecture на Frame Based
. Блок реализует параллельную архитектуру 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.
Вставьте конвейерный регистр между этапами вычисления в фильтре. См. также AddPipelineRegisters.
Задайте использование оптимизации канонической цифры со знаком (CSD), чтобы уменьшить область фильтра, заменив содействующие множители на логику shift-and-add. Когда вы выбираете полностью параллельную реализацию фильтра, можно установить CoeffMultipliers на csd
или factored-csd
. Значением по умолчанию является multipliers
, который сохраняет множители в HDL. См. также CoeffMultipliers.
Задайте распределенные арифметические разделы LUT частичного продукта как вектор размеров каждого раздела. Сумма всех векторных элементов должна быть равна длине фильтра. Максимальный размер для раздела является 12 касаниями. Установите DALUTPartition на скалярное значение, равное длине фильтра генерировать код DA без разделов LUT. См. также DALUTPartition.
Задайте, сколько распределенных арифметических битных сумм вычисляется параллельно. Основание DA 8 (2^3
) генерирует реализацию DA, которая вычисляет три суммы за один раз. Значением по умолчанию является 2^1
, который генерирует полностью последовательную реализацию DA. См. также DARadix.
Задайте количество настроек канала связи, чтобы добавить во входных параметрах множителя фильтра. См. также MultiplierInputPipeline.
Задайте количество настроек канала связи, чтобы добавить во множителе фильтра выходные параметры. См. также MultiplierOutputPipeline.
Задайте разделы для частично последовательных или каскадно-последовательных реализаций фильтра как вектор длин каждого раздела. Для полностью последовательной реализации, установленной этот параметр на длину фильтра. См. также SerialPartition.
Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. Значение по умолчанию 0. См. также ConstrainedOutputPipeline.
Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также InputPipeline.
Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. Значение по умолчанию 0. См. также OutputPipeline.
Необходимо обнулить Initial conditions. Генерация HDL-кода не поддержана для ненулевых начальных состояний.
Когда вы выбираете Dialog parameters, следующие опции фиксированной точки не поддержаны для генерации HDL-кода:
Slope and Bias scaling
Опции CoeffMultipliers поддерживаются только при использовании полностью параллельной архитектуры. Когда вы выбираете последовательную архитектуру, CoeffMultipliers скрыт от диалогового окна HDL Block Properties.
Основанные на кадре входные фильтры не поддержаны для:
Восстановленные и активированные подсистемы
Комплексные входные сигналы с комплексными коэффициентами. Можно использовать или комплексные входные сигналы и действительные коэффициенты, или объединить коэффициенты и действительные входные сигналы.
Совместное использование и потоковая передача оптимизации