exponenta event banner

FIR децимация HDL оптимизирована

Децимационный фильтр с конечной импульсной характеристикой (FIR) - оптимизирован для генерации кода HDL

  • Библиотека:
  • Системная панель инструментов DSP Поддержка HDL/Фильтрация

  • FIR Decimation Filter HDL Optimized block

Описание

Блок FIR Decimation HDL Optimized реализует многофазный децимационный фильтр FIR, оптимизированный для генерации кода HDL. Блок обеспечивает аппаратный интерфейс с входными и выходными сигналами управления. Для обеспечения точного моделирования генерируемого кода HDL блок моделирует архитектурную задержку, включая регистры конвейера и совместное использование ресурсов.

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

Блок имеет две структуры фильтров. Систолическая архитектура прямого вида обеспечивает полностью параллельную реализацию, которая обеспечивает эффективное использование блоков Intel ® и Xilinx ® DSP. Транспонированная архитектура прямой формы является полностью параллельной реализацией, которая подходит для приложений FPGA и ASIC. Для реализации фильтра, соответствующего множителям, регистрам конвейера и предварительным сумматорам конфигурации DSP поставщика FPGA, укажите целевое устройство при создании кода HDL.

Блок реализует по одному фильтру для каждой выборки во входном векторе. Затем блок совместно использует этот фильтр между многофазными субфильтрами путем перемежения коэффициентов субфильтра во времени.

Для фильтра децимации КИХ с размером входа, большим коэффициента децимации или реализации последовательного HDL (только скалярный ввод), вместо этого блока используйте блок децимации КИХ.

Порты

Вход

развернуть все

Входные данные должны быть скаляром или вектором с реальным или комплексным значением. При использовании векторного ввода коэффициент прореживания должен быть целым числом, кратным размеру вектора. Размер вектора должен быть меньше или равен 64.

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

double и single типы данных поддерживаются для моделирования, но не для генерации кода HDL.

Типы данных: fixed point | single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Поддержка комплексного номера: Да

Когда допустимо 1блок захватывает данные из порта ввода данных.

Типы данных: Boolean

При сбросе 1блок останавливает текущий расчет и очищает внутреннее состояние фильтра. Сигнал сброса является синхронным и сбрасывает состояние тракта данных и управляющего тракта. Дополнительные сведения о сбросе см. в разделе Советы.

Зависимости

Чтобы включить этот порт, на вкладке Control Ports выберите параметр Enable reset input port.

Типы данных: Boolean

Продукция

развернуть все

Отфильтрованные выходные данные, возвращаемые как скаляр реального или комплексного значения. Когда входной тип данных является типом с плавающей запятой, выходные данные наследуют тип данных входных данных. Если тип входных данных является целым типом или типом с фиксированной точкой, параметр Output на вкладке Data Types определяет тип выходных данных.

Выходной сигнал достоверности указывает, какие выборки являются действительными после прореживания.

Типы данных: fixed point | single | double
Поддержка комплексного номера: Да

Наборы блоков действительны для 1 с указанием всех допустимых данных, возвращаемых портом вывода данных.

Типы данных: Boolean

Параметры

развернуть все

Главный

Дискретные коэффициенты КИХ-фильтра, заданные как действительный или комплексный вектор. Вектор можно указать как переменную рабочей области или как вызов функции проектирования фильтра. Когда входной тип данных является типом с плавающей запятой, блок переводит коэффициенты в тот же тип данных, что и входные. Если входной тип данных является целым типом или типом с фиксированной точкой, можно задать тип данных для коэффициентов на вкладке «Типы данных».

Пример: firpm(30,[0 0.1 0.2 0.5]*2,[1 1 0 0])

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
Поддержка комплексного номера: Да

Укажите архитектуру фильтра HDL в качестве одной из следующих структур:

  • Direct form systolic - Эта архитектура обеспечивает реализацию полностью параллельного фильтра, что позволяет эффективно использовать блоки Intel и Xilinx DSP.

  • Direct form transposed - Эта архитектура является полностью параллельной реализацией, которая подходит для приложений FPGA и ASIC.

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

Блок реализует многофазный фильтр декомпозиции с использованием блоков, оптимизированных для дискретного КИХ-фильтра HDL. Дополнительные сведения об архитектуре см. в разделах «Полностью параллельная систолическая архитектура» и «Полностью параллельная транспонированная архитектура» на странице ссылок на блоки, оптимизированные для дискретного КИХ-фильтра HDL.

Укажите целочисленный коэффициент прореживания больше двух. При использовании векторного ввода коэффициент прореживания должен быть целым числом, кратным размеру вектора.

Типы данных

Режим округления для типа - приведение выходных данных к типу данных, указанному параметром Output. Если входной тип данных - плавающая точка, блок игнорирует этот параметр. Дополнительные сведения см. в разделе Режимы округления.

Обработка переполнения для типа - приведение выходных данных к типу данных, указанному параметром Output. Если входной тип данных - плавающая точка, блок игнорирует этот параметр. Дополнительные сведения см. в разделе Обработка переполнения.

Блок преобразует коэффициенты фильтра в этот тип данных. Квантование округляется до ближайшего представимого значения и насыщается при переполнении. Если входной тип данных - плавающая точка, блок игнорирует этот параметр.

Рекомендуемый тип данных для этого параметра: Inherit: Same word length as input.

Блок возвращает предупреждение или ошибку, если возникает одно из этих условий.

  • Тип данных коэффициентов не имеет достаточной дробной длины для точного представления коэффициентов.

  • Тип данных коэффициентов не подписан, и коэффициенты включают отрицательные значения.

Можно отключить или контролировать серьезность этих сообщений типа данных из модели Параметры конфигурации (Configuration Parameters), изменив параметр Диагностика (Diagnostics) > Преобразование типов (Type Conversion) > Обнаружить потерю точности (Detect precision loss).

Блок приводит выходные данные фильтра к этому типу данных. Квантование использует настройки параметров режима округления и режима переполнения. Если входной тип данных - плавающая точка, блок игнорирует этот параметр.

Блок увеличивает длину слова для полной точности в каждом отводе фильтра и выдает окончательный выходной сигнал в соответствии с указанным типом. Максимальный окончательный внутренний тип данных (WF) зависит от типа входных данных (WI), типа данных коэффициента (WC) и количества коэффициентов (L) и задается

WF = WI + WC + ceil(log2(L)).

Поскольку значения коэффициентов ограничивают потенциальный рост, обычно фактическая внутренняя длина слова полной точности меньше, чем WF.

Порты управления

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

Дополнительные сведения о сбросе см. в разделе Советы.

Выберите этот параметр для подключения сгенерированного сигнала глобального сброса HDL к регистрам тракта данных. Этот параметр не изменяет внешний вид блока и не изменяет поведение моделирования в Simulink ®. При сбросе этого параметра сгенерированный глобальный сброс HDL очищает только регистры управляющего тракта. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от параметров «Генерация кода HDL» > «Глобальные настройки» > «Тип сброса» в модели «Параметры конфигурации».

Дополнительные сведения о сбросе см. в разделе Советы.

Совет

Сбросить поведение

  • По умолчанию блок FIR Decimation HDL Optimized соединяет сгенерированный глобальный сброс HDL только с регистрами путей управления. Два параметра сброса, Enable reset input port и Use HDL global reset, подключают сигнал сброса к регистрам тракта данных. Из-за дополнительной маршрутизации и нагрузки на сигнал сброса сброс регистров тракта данных может снизить производительность синтеза.

  • Параметр Enable reset input port включает порт сброса в блоке. Сигнал сброса реализует локальный синхронный сброс регистров тракта данных. Для оптимального использования ресурсов FPGA эта опция не подключает сигнал сброса к регистрам, предназначенным для блоков DSP FPGA.

  • Параметр Use HDL global reset соединяет сгенерированный сигнал глобального сброса HDL с регистрами путей передачи данных. Этот параметр не изменяет внешний вид блока и не изменяет поведение моделирования в Simulink. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от параметров «Генерация кода HDL» > «Глобальные настройки» > «Тип сброса» в модели «Параметры конфигурации». В зависимости от устройства использование глобального сброса может привести к перемещению регистров из блоков DSP и увеличению использования ресурсов.

  • При совместном выборе параметров Enable reset input port (Включить входной порт сброса) и Use HDL global reset parameters (Использовать глобальные параметры сброса HDL) сигналы глобального и локального сброса очищают регистры тракта управления и передачи данных.

Вопросы сброса для созданных испытательных стендов

  • Инициализация FPGA-in-the-loop обеспечивает глобальный сброс, но не обеспечивает автоматический локальный сброс. При использовании параметров сброса по умолчанию регистры путей данных, которые не сбрасываются, могут привести к несоответствиям FPGA-in-the-loop (FIL) при многократном запуске модели FIL без сброса платы. Выберите Use HDL global reset для автоматического сброса регистров тракта данных или Enable reset input port и установите локальный сброс в модели, чтобы сигнал сброса стал частью тестового стенда Simulink FIL.

  • Созданный стенд для тестирования HDL обеспечивает глобальный сброс, но не обеспечивает автоматический локальный сброс. При использовании параметров сброса по умолчанию и параметров конфигурации сброса регистра по умолчанию сгенерированный код HDL включает начальное значение моделирования для регистров путей данных. Однако, если вы обеспокоены X-propagation в вашем проекте, вы можете установить HDL Code Generation > Global Settings > Coding style > No-reset register initialization parameters in Configuration Parameters to Do not initialize. В этом случае, с параметрами сброса блока по умолчанию, регистры пути данных, которые не сбрасываются, могут вызвать X- распространение по пути данных в начале моделирования ЛПВП. Выберите Use HDL global reset для автоматического сброса регистров тракта данных или Enable reset input port и установите локальный сброс в модели, чтобы сигнал сброса стал частью генерируемого тестового стенда HDL.

Алгоритмы

развернуть все

Блок реализует набор многофазных фильтров, где коэффициенты фильтра разбиваются на субфильтры коэффициента прореживания. Если длина фильтра не делится на значение параметра Коэффициент прореживания, то блок отсчитывает коэффициенты от нуля.

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

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

Каждый субфильтр реализован с блоком, оптимизированным для дискретного КИХ-фильтра HDL. Сумматор на выходе конвейерирован для размещения более высоких частот синтеза. Дополнительные сведения об архитектуре см. в разделах «Полностью параллельная систолическая архитектура», «Полностью параллельная транспонированная архитектура» и «Комплексные множители» на справочной странице блока «Дискретный FIR-фильтр, оптимизированный для HDL».

Примечание

Выходной сигнал блока FIR Decimation HDL Optimized не соответствует выходному сигналу блока FIR Decimation sample-for-sample. Это различие обусловлено главным образом фазой, на которой образцы применяются к субфильтрам. Чтобы сопоставить блок децимации КИХ, примените коэффициент децимации - 1 ноль к блоку оптимизации децимации КИХ HDL в начале потока данных.

Блок децимации FIR также использует несколько другие типы данных для вычислений с полной точностью. Различные типы данных могут также вводить различия в выходных значениях, если значения переполняют внутренние типы данных.

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

.
Представлен в R2020b