Implementing an IIR Filter on the AI Engine - 2024.1 English

Vitis Tutorials: AI Engine

Document ID
Release Date
2024.1 English

Version: Vitis 2024.1

This is a multi-part tutorial on implementing 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 implementing a sixth-order low pass elliptic IIR filter with three-second order sections and changing 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 improve throughput further.

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 you are familiar with the fundamentals of AI Engine kernel development.

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

Copyright © 2020–2024 Advanced Micro Devices, Inc

Terms and Conditions