Extended Kalman Filter Implementation: A Comparative Study of Python-Based DSL and Vivado HLS for Target Tracking
摘要
We have developed an Extended Kalman Filter (EKF) for target tracking, which estimates seven system states by observing four measurements. This was implemented using Xilinx Vivado High-Level Synthesis (HLS) and a Python-based Domain Specific Language (DSL). The Vivado HLS exported IP was integrated with a ZYNQ System on Chip (SoC) via an AXI interface and tested on the ZCU104 FPGA Board utilizing the PYNQ framework. We calculated and compared the execution times for both hardware and software implementations to estimate the speedup. In the Python DSL, the EKF was designed using custom-made floating-point units operating on IEEE754 single-precision floating-point numbers, also designed in the Python DSL. The EKF designed in Python DSL employs SizedFIFOs for external interfacing and SimpleBRAMs for internal data handling. Finally, the accuracy of the results from the Vivado HLS exported IP integrated with the ZYNQ SoC and the Python DSL-designed EKF were compared across four iterations of the EKF.