Частично последовательная систолическая КИХ-реализация фильтра

Этот пример показывает, как реализовать lowpass КИХ-фильтр с 32 касаниями с помощью блока Discrete FIR Filter HDL Optimized.

Оба блока фильтра в модели в качестве примера реализуют идентичное частично - последовательный фильтр с 32 касаниями. Главный блок конфигурирует последовательный фильтр путем определения количества циклов, N, между входными выборками. Этот интервал позволяет каждому множителю быть совместно использованным коэффициентами N. Второй блок сконфигурирован, чтобы использовать определенное число множителей, M. Эти две настройки приводят к той же реализации фильтра. Для 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-код.

Смотрите также

Блоки