FIR Decimation HDL Optimized

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

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

  • FIR Decimation Filter HDL Optimized block

Описание

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

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

Блок обеспечивает две структуры фильтра. Систолическая архитектура прямой формы обеспечивает полностью параллельную реализацию, которая делает эффективное использование Intel® и Xilinx® Блоки DSP. Транспонированная архитектура прямой формы является полностью параллельной реализацией, которая подходит для приложений ASIC и FPGA. Для реализации фильтра, которая совпадает со множителями, регистры трубопровода и предварительные сумматоры к настройке 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 — Эта архитектура обеспечивает полностью параллельную реализацию фильтра, которая делает эффективное использование блоков DSP Intel и Xilinx.

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

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

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

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

Типы данных

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для более факторов сброса смотрите Советы.

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

Для более факторов сброса смотрите Советы.

Советы

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

  • По умолчанию блок 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 в модели Configuration Parameters. В зависимости от вашего устройства, с помощью глобального сброса может переместить регистры из блоков DSP и увеличить использование ресурса.

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

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

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

  • Сгенерированный испытательный стенд 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. Это различие в основном из-за фазы, что выборки применяются через подфильтры. Чтобы совпадать с блоком FIR Decimation, примените Decimation factor – 1 нуль с блоком FIR Decimation HDL Optimized в начале потока данных.

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

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

Введенный в R2020b