Конечный импульсный фильтр ответа — оптимизированный для генерации HDL-кода
Система dsp.HDLFIRFilter object™ архитектура фильтра ответа конечного импульса моделей оптимизирована для генерации HDL-кода. Объект принимает входную выборку того за один раз и предоставляет возможность для программируемых коэффициентов. Это обеспечивает благоприятный для оборудования интерфейс с управляющими сигналами ввода и вывода. Обеспечить точную циклом симуляцию сгенерированного HDL-кода, объектные модели архитектурная задержка включая конвейерные регистры и разделение ресурсов.
Объект обеспечивает три структуры фильтра. Систолическая архитектура прямой формы обеспечивает полностью параллельную реализацию, которая делает эффективное использование блоков Xilinx® DSP и Intel®. Прямая форма транспонировала архитектуру, полностью параллельная реализация и подходит для приложений ASIC и FPGA. Частично последовательная систолическая архитектура обеспечивает конфигурируемую последовательную реализацию, которая делает эффективное использование блоков DSP FPGA. Для реализации фильтра, которая совпадает со множителями, конвейерные регистры и предварительные сумматоры к настройке DSP вашего поставщика FPGA, задают ваше целевое устройство, когда вы генерируете HDL-код.
Все три структуры оптимизируют аппаратные ресурсы путем совместного использования множителей для симметричных или антисимметричных фильтров. Параллельные реализации также удаляют множители для коэффициентов с нулевым знаком такой как в полуленточных фильтрах, и Гильберт преобразовывает.
Задержка между допустимыми входными данными и соответствующими допустимыми выходными данными зависит от структуры фильтра, опций сериализации, количества коэффициентов и обеспечивают ли содействующие значения возможности оптимизации.
Для КИХ-фильтра с комплексными коэффициентами или с многоканальными или основанными на кадре входными параметрами, используйте Системный объект dsp.FIRFilter вместо этого Системного объекта.
Отфильтровать входные данные с оптимизированным HDL КИХ-фильтром:
Создайте объект dsp.HDLFIRFilter и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
firFilt = dsp.HDLFIRFilterfirFilt = dsp.HDLFIRFilter(num)firFilt = dsp.HDLFIRFilter(___,Name,Value) создает оптимизированный 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]
= firFilt(dataIn,validIn)[dataOut,validOut,ready]
= firFilt(dataIn,validIn)[dataOut,validOut]
= firFilt(dataIn,validIn,coeff)[dataOut,validOut]
= firFilt(dataIn,validIn,reset)[ возвращает набор 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.