Фильтр с конечной импульсной характеристикой - оптимизирован для генерации HDL-кода
The dsp.HDLFIRFilter
Системный object™ моделирует архитектуры фильтров с конечной импульсной характеристикой, оптимизированные для генерации HDL-кода. Объект принимает по одной входной выборке за раз и предоставляет опцию для программируемых коэффициентов. Он обеспечивает аппаратный интерфейс с входными и выходными сигналами управления. Чтобы обеспечить точное по циклу симуляцию сгенерированного HDL-кода, объект моделирует архитектурную задержку, включая регистры трубопроводов и совместное использование ресурсов.
Объект обеспечивает три структуры фильтра. Системная архитектура прямой формы обеспечивает полностью параллельную реализацию, которая эффективно использует Intel® и Xilinx® Блоки DSP. Транспонированная архитектура прямой формы является полностью параллельной реализацией и подходит для приложений FPGA и ASIC. Частично-последовательная сестрическая архитектура обеспечивает конфигурируемую последовательную реализацию, которая эффективно использует блоки DSP FPGA. Для реализации фильтра, который совпадает с множителями, регистрами трубопроводов и предварительными добавками к строению DSP вашего поставщика FPGA, укажите целевое устройство, когда вы генерируете HDL-код.
Все три структуры оптимизируют аппаратные ресурсы путем совместного использования множителей для симметричных или антисимметричных фильтров. Параллельные реализации также удаляют умножители для нулевых коэффициентов, таких как в полупериодических фильтрах и преобразованиях Гильберта.
Задержка между действительными входными данными и соответствующими действительными выходными данными зависит от структуры фильтра, опций сериализации, количества коэффициентов и от того, обеспечивают ли значения коэффициентов возможности оптимизации.
Для конечная импульсная характеристика с многоканальными или основанными на кадрах входами используйте dsp.FIRFilter
Системный объект вместо этого системного объекта.
Для фильтрации входных данных с помощью HDL-оптимизированного конечная импульсная характеристика:
Создайте dsp.HDLFIRFilter
Объекту и установите его свойства.
Вызывайте объект с аргументами, как будто это функция.
Дополнительные сведения о работе системных объектов см. в разделе «Что такое системные объекты?».
создает HDL-оптимизированный дискретный фильтр конечной импульсной характеристики Системного объекта, firFilt
= dsp.HDLFIRFilterfirFilt
, со свойствами по умолчанию.
firFilt = dsp.HDLFIRFilter(num)
создает фильтр с Numerator
значение свойства установлено в num
.
устанавливает свойства с помощью одной или нескольких пар "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.firFilt
= dsp.HDLFIRFilter(___,Name,Value
)
Для примера:
Numerator = firpm(10,[0,0.1,0.5,1],[1,1,0,0]); fir = dsp.HDLFIRFilter(Numerator,'FilterStructure','Direct form transposed'); ... [dataOut,validOut] = fir(dataIn,validIn);
[
возвращает dataOut
,validOut
,ready
]
= firFilt(dataIn
,validIn
)ready
установлено на true
когда объект готов принять новые входные данные при следующем вызове.
Объект возвращает ready
аргумент только при установке FilterStructure
свойство к 'Partly serial systolic'
. Для примера:
firFilt = dsp.HDLFIRFilter(Numerator,... 'FilterStructure','Partly serial systolic',... 'SerializationOption','Minimum number of cycles between valid input samples',... 'NumberOfCycles',8) ... for k=1:length(dataIn) [dataOut,validOut,ready] = firFilt(dataIn(k),validIn(k));
[
фильтрует данные с помощью коэффициентов, dataOut
,validOut
]
= firFilt(dataIn
,validIn
,coeff
)coeff
. Объект ожидает coeff
аргумент только при установке NumeratorSource
свойство к 'Input port (Parallel interface)'
. Для примера:
firFilt = dsp.HDLFIRFilter(NumeratorSource,'Input Port (Parallel interface)') ... for k=1:length(dataIn) Numerator = myGetNumerator(); %calculate coefficients [dataOut,validOut] = firFilt(dataIn(k),validIn(k),Numerator);
[
фильтрует данные при dataOut
,validOut
]
= firFilt(dataIn
,validIn
,reset
)reset
является false
. Когда reset
является true
объект сбрасывает регистры фильтров. Объект ожидает reset
аргумент только при установке ResetInputPort
свойство к true
. Для примера:
firFilt = dsp.HDLFIRFilter(Numerator,'ResetInputPort',true) ... % reset the filter firFilt(0,false,true); for k=1:length(dataIn) [dataOut,validOut] = firFilt(dataIn(k),validIn(k),false);
Чтобы использовать функцию объекта, задайте системный объект в качестве первого входного параметра. Например, чтобы освободить системные ресурсы системного объекта с именем obj
, используйте следующий синтаксис:
release(obj)
Сброс поведения
По умолчанию в dsp.HDLFIRFilter
объект соединяет сгенерированный глобальный сброс HDL только с регистрами пути управления. Два свойства сброса, ResetInputPort и HDLGlobalReset, соединяют сигнал сброса с регистрами пути данных. Из-за дополнительной маршрутизации и загрузки сигнала сброса сброс регистров пути данных может снизить эффективность синтеза.
The ResetInputPort
свойство включает reset
аргумент объекта. Сигнал сброса реализует локальный синхронный сброс регистров пути данных. Для оптимального использования ресурсов FPGA эта опция не соединяет сигнал сброса с регистрами, нацеленными на блоки DSP FPGA.
The HDLGlobalReset
свойство соединяет сгенерированный сигнал глобального сброса HDL с регистрами пути данных. Это свойство не изменяет аргументы объекта и не изменяет поведение симуляции в MATLAB. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от настроек генерации HDL-кода. В зависимости от вашего устройства, использование глобального сброса может переместить регистры из блоков DSP и увеличить использование ресурсов.
Когда вы устанавливаете оба ResetInputPort
и HDLGlobalReset
свойства для true
глобальные и локальные сигналы сброса очищают регистры управления и пути данных.
Этот Системный объект реализует алгоритмы, описанные на Discrete FIR Filter HDL Optimized блочных страниц с описанием.