Version: Vitis 2022.2
This is a multi-part tutorial on how to implement an infinite impulse response (IIR) filter on the AI engine.
Part 1a shows how to parallelize the IIR filter difference equation for a single second order section and implement it on the SIMD AI engine vector processor.
Part 1b shows to implement a 6th order low pass elliptic IIR filter with three second order sections and change the filter coefficients dynamically using run-time parameters.
Part 2a illustrates the process of minimizing latency and increasing throughput.
Part 2b introduces more techniques to further improve throughput.
This tutorial also provides Julia scripts to calculate the IIR filter coefficients and generate test data.
Future parts will cover performance optimization.
This tutorial assumes that the reader is familiar with the fundamentals of AI engine kernel development.
Please use the AI Engine, DSP IP and Tools forum for any questions regarding this tutorial.
GitHub issues will be used for tracking requests and bugs. For questions go to forums.xilinx.com.
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
XD108 | © Copyright 2021 Xilinx, Inc.