Фильтр конечной импульсной характеристики - оптимизирован для генерации кода HDL
dsp.HDLFIRFilter Система object™ моделирует архитектуры фильтров с конечным импульсом отклика, оптимизированные для генерации кода HDL. Объект принимает одну входную выборку за раз и предоставляет опцию для программируемых коэффициентов. Он обеспечивает аппаратный интерфейс с входными и выходными управляющими сигналами. Для обеспечения точного по циклу моделирования генерируемого кода HDL объектные модели архитектурных задержек, включая регистры конвейера и совместное использование ресурсов.
Объект имеет три структуры фильтров. Систолическая архитектура прямого вида обеспечивает полностью параллельную реализацию, которая обеспечивает эффективное использование блоков Intel ® и Xilinx ® DSP. Транспонированная архитектура прямой формы является полностью параллельной реализацией и подходит для приложений FPGA и ASIC. Частично последовательная систолическая архитектура обеспечивает конфигурируемую последовательную реализацию, которая обеспечивает эффективное использование блоков DSP FPGA. Для реализации фильтра, соответствующего множителям, регистрам конвейера и предварительным сумматорам конфигурации DSP поставщика FPGA, укажите целевое устройство при создании кода HDL.
Все три структуры оптимизируют аппаратные ресурсы путем совместного использования множителей для симметричных или антисимметричных фильтров. Параллельные реализации также удаляют множители для нулевых коэффициентов, таких как в полуполосных фильтрах и преобразованиях Гильберта.
Задержка между действительными входными данными и соответствующими действительными выходными данными зависит от структуры фильтра, опций сериализации, количества коэффициентов и того, обеспечивают ли значения коэффициентов возможности оптимизации.
Для фильтра FIR с многоканальными входами или входами на основе кадров используйте dsp.FIRFilter Системный объект вместо этого системного объекта.
Для фильтрации входных данных с помощью фильтра FIR, оптимизированного для HDL:
Создать dsp.HDLFIRFilter и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
создает оптимизированный для HDL объект системы дискретного фильтра FIR, 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);
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
Сбросить поведение
По умолчанию dsp.HDLFIRFilter объект соединяет сгенерированный глобальный сброс HDL только с регистрами тракта управления. Два свойства ResetInputPort и HDLGlobalReset соединяют сигнал сброса с регистрами путей данных. Из-за дополнительной маршрутизации и нагрузки на сигнал сброса сброс регистров тракта данных может снизить производительность синтеза.
ResetInputPort активизирует свойство reset аргумент объекта. Сигнал сброса реализует локальный синхронный сброс регистров тракта данных. Для оптимального использования ресурсов FPGA эта опция не подключает сигнал сброса к регистрам, предназначенным для блоков DSP FPGA.
HDLGlobalReset свойство соединяет сгенерированный сигнал глобального сброса HDL с регистрами тракта данных. Это свойство не изменяет аргументы объекта и поведение моделирования в MATLAB. Сгенерированный глобальный сброс HDL может быть синхронным или асинхронным в зависимости от настроек генерации кода HDL. В зависимости от устройства использование глобального сброса может привести к перемещению регистров из блоков DSP и увеличению использования ресурсов.
При установке обоих параметров ResetInputPort и HDLGlobalReset свойства для true, сигналы глобального и локального сброса очищают регистры тракта управления и передачи данных.
Этот объект System реализует алгоритмы, описанные на странице ссылок на блоки, оптимизированные для дискретного FIR-фильтра HDL.