Конечный фильтр импульсной характеристики — оптимизированный для генерации HDL-кода
dsp.HDLFIRFilter
Система object™ архитектуры фильтра конечной импульсной характеристики моделей оптимизирована для генерации HDL-кода. Объект принимает входную выборку того за один раз и предоставляет возможность для программируемых коэффициентов. Это обеспечивает благоприятный для оборудования интерфейс с управляющими сигналами ввода и вывода. Обеспечить точную циклом симуляцию сгенерированного HDL-кода, объектные модели архитектурная задержка включая конвейерные регистры и разделение ресурсов.
Объект обеспечивает три структуры фильтра. Систолическая архитектура прямой формы обеспечивает полностью параллельную реализацию, которая делает эффективное использование блоков Xilinx® DSP и Intel®. Прямая форма транспонировала архитектуру, полностью параллельная реализация и подходит для приложений ASIC и FPGA. Частично последовательная систолическая архитектура обеспечивает конфигурируемую последовательную реализацию, которая делает эффективное использование блоков 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, соединяют сигнал сброса с регистрами информационного канала. Из-за дополнительной маршрутизации и загрузки на сигнал сброса, сбрасывая регистры информационного канала может уменьшать эффективность синтеза.
ResetInputPort
свойство включает reset
аргумент объекта. Сигнал сброса реализует локальный синхронный сброс регистров информационного канала. Для оптимального использования ресурсов FPGA эта опция не соединяет сигнал сброса с регистрами, предназначенными с блоками DSP FPGA.
HDLGlobalReset
свойство соединяет сгенерированный глобальный сигнал сброса HDL с регистрами информационного канала. Это свойство не изменяет аргументы объекта или изменяет поведение симуляции в MATLAB. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от ваших настроек генерации HDL-кода. В зависимости от вашего устройства, с помощью глобального сброса может переместить регистры из блоков DSP и увеличить использование ресурса.
Когда вы устанавливаете обоих ResetInputPort
и HDLGlobalReset
свойства к true
, глобальная переменная и локальные сигналы сброса очищают регистры информационного канала и управление.
Этот Системный объект реализует алгоритмы, описанные на странице с описанием блока Discrete FIR Filter HDL Optimized.