# Evaluating Rapid Application Development with Python for Heterogeneous   Processor-based FPGAs

**Authors:** Andrew G. Schmidt, Gabriel Weisz, and Matthew French

arXiv: 1705.05209 · 2017-05-16

## TL;DR

This paper evaluates the use of Python, specifically the PYNQ environment, for rapid application development on heterogeneous processor-based FPGAs, analyzing performance and integration challenges compared to traditional methods.

## Contribution

It provides an empirical assessment of Python's effectiveness in FPGA development, highlighting performance implications and integration benefits for heterogeneous systems.

## Key findings

- Python with PYNQ simplifies FPGA application development.
- Performance bottlenecks are identified when using Python on FPGA systems.
- Python can serve as an effective bridge between software and hardware development.

## Abstract

As modern FPGAs evolve to include more het- erogeneous processing elements, such as ARM cores, it makes sense to consider these devices as processors first and FPGA accelerators second. As such, the conventional FPGA develop- ment environment must also adapt to support more software- like programming functionality. While high-level synthesis tools can help reduce FPGA development time, there still remains a large expertise gap in order to realize highly performing implementations. At a system-level the skill set necessary to integrate multiple custom IP hardware cores, interconnects, memory interfaces, and now heterogeneous processing elements is complex. Rather than drive FPGA development from the hardware up, we consider the impact of leveraging Python to ac- celerate application development. Python offers highly optimized libraries from an incredibly large developer community, yet is limited to the performance of the hardware system. In this work we evaluate the impact of using PYNQ, a Python development environment for application development on the Xilinx Zynq devices, the performance implications, and bottlenecks associated with it. We compare our results against existing C-based and hand-coded implementations to better understand if Python can be the glue that binds together software and hardware developers.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1705.05209/full.md

## Figures

4 figures with captions in the complete paper: https://tomesphere.com/paper/1705.05209/full.md

## References

18 references — full list in the complete paper: https://tomesphere.com/paper/1705.05209/full.md

---
Source: https://tomesphere.com/paper/1705.05209