FIR Decimation HDL Optimized

Конечная импульсная характеристика (КИХ) децимирующего фильтра - оптимизирована для генерации HDL-кода

  • Библиотека:
  • Поддержка/фильтрация HDL-файлов DSP System Toolbox

  • FIR Decimation Filter HDL Optimized block

Описание

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

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

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

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

Для конечной импульсной характеристики децимирующего фильтра с размером входного сигнала, большим коэффициент десятикратного уменьшения, или последовательной реализации HDL (только скаляр ввода) используйте блок FIR Decimation вместо этого блока.

Порты

Вход

расширить все

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

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

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

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

Когда valid 1блок захватывает данные от data входного порта.

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

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

Зависимости

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

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

Выход

расширить все

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

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

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

Блок устанавливает valid на 1 с каждым действительным данным, возвращаемым на data выходном порте.

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

Параметры

расширить все

Главный

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

Пример: 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.

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

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

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

Типы данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительные факторы сброса см. в разделе Подсказки.

Выберите этот параметр, чтобы подключить сгенерированный сигнал глобального сброса HDL к регистрам пути данных. Этот параметр не изменяет внешний вид блока и не изменяет поведение симуляции в Simulink®. Когда вы очищаете этот параметр, сгенерированный глобальный сброс HDL очищает только регистры пути управления. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от параметра HDL Code Generation Global Settings > Reset type > в Параметры конфигурации модели.

Дополнительные факторы сброса см. в разделе Подсказки.

Совет

Сброс поведения

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

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

  • Параметр Use HDL global reset соединяет сгенерированный HDL сигнал глобального сброса с регистрами пути данных. Этот параметр не изменяет внешний вид блока и не изменяет поведение симуляции в Simulink. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от параметра HDL Code Generation Global Settings > Reset type > в Параметры конфигурации модели. В зависимости от вашего устройства, использование глобального сброса может переместить регистры из блоков DSP и увеличить использование ресурсов.

  • Когда вы выбираете параметры Enable reset input port и Use HDL global reset вместе, глобальные и локальные сигналы сброса очищают регистры пути данных и управления.

Факторы о сбросе для сгенерированных испытательных стендов

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

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

Алгоритмы

расширить все

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

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

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

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

Примечание

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

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

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

.
Введенный в R2020b