КИХ-оптимизированный HDL преобразования уровня

Сверхдискретизируйте, отфильтруйте и субдискретизируйте входные сигналы — оптимизированный для генерации HDL-кода

Библиотека

Фильтрация/Многоскоростные фильтры

dspmlti4

Описание

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

Блок сверхдискретизировал целочисленным фактором L, применяет КИХ-фильтр и субдискретизирует целочисленным фактором M.

Блок имеет порты управления ввода и вывода для того, чтобы следовать по потоку выборок. В настройке по умолчанию блок использует управляющие сигналы validOut и validIn. Для дополнительного управления потоками можно включить выходной сигнал ready и входной сигнал request.

Выходной порт ready указывает, что блок может принять новую выборку входных данных на следующем временном шаге. Когда LM, можно использовать сигнал ready достигнуть непрерывных выборок выходных данных. Если вы применяете новую входную выборку после каждого раза, когда блок возвращает ready = true, блок возвращает выборку вывода данных с validOut = true на каждом временном шаге.

Когда вы не включаете порт ready, можно применить допустимую выборку данных только каждый ceil(L/M) временные шаги. Например:

  • L/M = 4/5 — можно применить новую входную выборку на каждый временной шаг.

  • L/M = 3/2 — можно применить новую входную выборку на любой временной шаг.

Когда вы включаете входной порт request, блок возвращает следующую выходную выборку, когда request является true, и допустимая выходная выборка доступна. Когда вы не используете request, блок возвращает выходные выборки, когда они доступны. Когда нет новых данных доступно, блок возвращает validOut = false.

Можно соединить входной порт request с выходным портом ready нисходящего блока.

Атрибуты сигнала

Этот значок показывает все дополнительные порты блока FIR Rate Conversion HDL Optimized.

ПортНаправлениеОписаниеТип данных
dataInВходной параметрВыборка данных, заданная как скаляр, или как вектор - строка, в котором каждый элемент представляет независимый канал. Блок принимает действительные или комплексные данные.
  • fixdt()

  • uint 8/16/32, int 8/16/32

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

validInВходной параметрПолучите значение dataIn, когда validIn будет true. Можно применяться, допустимые данные выбирают каждый ceil(L/M) временные шаги. boolean
requestВведите (Необязательно)Запросите для новой выходной выборки.boolean
dataOutВывод Передискретизируемая и отфильтрованная выборка данных, возвращенная как скаляр, или как вектор, в котором каждый элемент представляет независимый канал.То же самое как dataIn
validOutВывод Проверка значения dataOut. Когда validOut является true, dataOut допустим.boolean
readyВыведите (Необязательно)Указывает, что блок готов к новой входной выборке, когда ready является true.boolean

Параметры

Основной

Interpolation factor

Сверхдискретизировав фактор, L, заданный как скалярное целое число. Значение по умолчанию равняется 3.

Decimation factor

Субдискретизируя фактор, M, заданный как скалярное целое число. Значение по умолчанию равняется 2.

FIR filter coefficients

Отфильтруйте коэффициенты, заданные как вектор в убывающих степенях z-1.

Можно сгенерировать коэффициенты фильтра с помощью функций проекта фильтра Signal Processing Toolbox™ (таких как fir1). Разработайте фильтр lowpass с нормированной частотой среза, не больше, чем min(1/L,1/M). Блок инициализирует внутренние состояния фильтра, чтобы обнулить. Коэффициентами по умолчанию является firpm(70,[0 .28 .32 1],[1 1 0 0]).

Enable ready output port

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

Enable request input port

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

Типы данных

Rounding mode

Методом округления значения по умолчанию для внутренних вычислений фиксированной точки является Floor. режим округления Simplest не поддержан.

Saturate on integer overflow

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

Coefficients Data Type

Тип данных КИХ фильтрует коэффициенты, заданные как объект fixdt(s,wl,fl) с signedness, word length и свойствами fractional length. Значением по умолчанию является fixdt(1,16,16).

Output Data Type

Тип данных выборок выходных данных. Можно выбрать Inherit: Inherit via internal rule, Inherit: Full precision, или задать объект fixdt(s,wl,fl). Значением по умолчанию является Inherit: Same word length as input.

Примеры

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

Преобразуйте сигнал от 48 кГц до 32 кГц с помощью блока FIR Rate Conversion HDL Optimized.

Источник является входным сигналом косинуса, выбранным на уровне 48 кГц. Модель передает новую выборку данных в блок на каждом временном шаге путем содержания validIn = true. После передискретизации сигналом validOut является true на только 2/3 временных шагов.

Откройте модель

Сконфигурируйте модель

Задайте параметры скорости передачи данных в коллбэке InitFcn.

Сконфигурируйте блок FIR Rate Conversion HDL Optimized. Используйте коэффициент интерполяции по умолчанию 2 и фактор десятикратного уменьшения 3. Используйте функцию firmpm, чтобы разработать equiripple КИХ-фильтр. В группе Типов данных, устанавливает Содействующий тип данных на fixdt(1,16,15), чтобы разместить фильтр, который вы разработали.

Запустите результаты модели и отображения

Запустите модель. Используйте Logic Analyzer, чтобы просмотреть сигналы ввода и вывода блока. Синий значок в модели указывает на переданные потоком сигналы. Запустите Logic Analyzer от панели инструментов модели.

В Logic Analyzer отметьте шаблон validIn и получившегося сигнала validOut.

Сгенерируйте HDL-код

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

Преобразуйте сигнал от 40 МГц до 100 МГц с помощью блока FIR Rate Converter HDL Optimized. Использует дополнительный входной сигнал request и выходной сигнал ready, чтобы управлять скоростью передачи данных.

  • Чтобы представлять уровень системных часов 200 МГц, модель соединяет повторяющийся истинно-ложный сигнал с портом request. Эта настройка генерирует выходные выборки на уровне 100 МГц, т.е. каждый шаг второго раза. Также можно соединить этот порт с портом ready нисходящего блока.

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

Откройте модель

Сконфигурируйте модель

Задайте параметры скорости передачи данных в коллбэке InitFcn.

Сконфигурируйте блок FIR Rate Conversion HDL Optimized. Используйте коэффициент интерполяции 5 и фактор десятикратного уменьшения 2. Используйте функцию firmpm, чтобы разработать equiripple КИХ-фильтр. Установите оба флажка, чтобы включить порты ready и request. % В группе Типов данных, набор Содействующий тип данных к fixdt(1,16,15), чтобы разместить ваш проект фильтра.

Запустите результаты модели и отображения

Запустите модель. Используйте Logic Analyzer, чтобы просмотреть сигналы ввода и вывода блока. Синий значок в модели указывает на переданные потоком сигналы. Запустите Logic Analyzer от панели инструментов модели.

В Logic Analyzer отметьте шаблон request и получившегося сигнала validOut, и шаблон ready и получившегося сигнала validIn.

Сгенерируйте HDL-код

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

Алгоритм

Блок FIR Rate Conversion HDL Optimized реализует полностью параллельную многофазную архитектуру фильтра. Схема показывает, куда блок бросает типы данных, согласно вашей настройке.

Задержка

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

Производительность

Для выборки проектных показателей сгенерируйте HDL для блока, как сконфигурировано в Скорости передачи данных Управления Используя Готовое и пример Портов Запроса. Фильтр в качестве примера передискретизирует в 5/2 и использует симметричный фильтр с 71 касанием. Входные выборки и коэффициенты фильтра 16 битов шириной. Проект был предназначен к Xilinx® Virtex®-6 FPGA, с помощью Xilinx синтез ISE и инструменты маршрута и место.

После места и маршрута, проект достигает частоты часов на 535 МГц. Это использует эти ресурсы.

LUT592
FFS979

Xilinx LogiCORE® DSP48

15
Блокируйте RAM (16K)0

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

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

Введенный в R2015b