exponenta event banner

Реализация частично последовательного систолического фильтра FIR

В этом примере показано, как реализовать 32-отводной фильтр нижних частот FIR с использованием блока оптимизации HDL дискретного фильтра FIR.

Оба блока фильтров в примерной модели реализуют идентичный частичный последовательный 32-отводной фильтр. Верхний блок настраивает последовательный фильтр, указывая количество циклов N между входными выборками. Этот интервал позволяет каждому умножителю совместно использоваться N коэффициентами. Второй блок сконфигурирован для использования определенного количества умножителей, М. Эти две конфигурации приводят к одной и той же реализации фильтра. Для 32 симметричных коэффициентов существует 16 уникальных коэффициентов. Поэтому фильтр разделяет каждый из 2 умножителей между 8 коэффициентами.

Модель показывает два способа применения входных выборок в зависимости от скорости остальной конструкции.

Открытие модели

Откройте модель. Проверьте параметры верхнего блока. Для структуры фильтра установлено значение Partly serial systolic и Укажите коэффициент сериализации, как задано значение Minimum number of cycles between valid input samples. Число циклов устанавливается (равным 8) с помощью переменной numCycles. В нижнем блоке укажите коэффициент сериализации, как задано значение Maximum number of multipliers. Число множителей устанавливается (равным 2) с помощью переменной. Переменные определены в PostLoadFcn функция обратного вызова.

Из цветового кодирования можно видеть, что скорость обоих блоков фильтра одинакова, в то время как скорость генерируемых входных выборок различна.

Выполнение модели и проверка результатов

Запустите модель. Наблюдение за входными и выходными сигналами на сгенерированных графиках. Код для создания графиков находится в PostSimFcn обратный вызов.

На панели инструментов модели откройте Logic Analyzer. Если кнопка не отображается, разверните галерею приложений Обзор результатов.

Осмотрите приподнятые края ready, validIn, и validOut.

Создание кода HDL

Чтобы сгенерировать код HDL из блока Discrete FIR Filter HDL Optimized, щелкните блок правой кнопкой мыши и выберите Create Subsystem from Selection. Затем щелкните правой кнопкой мыши подсистему и выберите HDL Code > Generate HDL Code for Subsystem. Оба блока генерируют одинаковый код HDL.

См. также

Блоки