Speaker
Description
Many components, including software/hardware CPUs, hardware description language (HDL) modules, high-level synthesis (HLS) entities, and embedded Linux / bare-metal applications, are used in the development of modern FPGA firmware. This is due to the usage of custom modules, tools from various vendors, and hierarchical designs from various manufacturers. The mentioned process is initially complicated and involves many abstract layers. Moreover, maintaining long-term repeatability and maintenance adds more challenges, especially in collaborative environments such as the Deutsches Elektronen-Synchrotron (DESY). To overcome these obstacles, DESY has created an open-source FPGA firmware framework (FWK) that promotes cooperation, simplifies development, and reduces complexity. The initial version of our framework, developed in 2013 for MTCA.4 systems at EuXFEL, served as the foundation for its continuous development. The FWK generates essential documentation and address maps required for high-level software frameworks such as ChimeraTK, thereby simplifying the development process. One of the most challenging aspects of FPGA design is the generation of address space descriptions. The FWK addresses this by collecting address space information and creating address space trees. A key tool in this process is DesyRDL, an open-source utility that generates outputs for address spaces defined by one or multiple SystemRDL input files. Furthermore, FWK offers generic Yocto package feeds for a range of embedded FPGA architectures, supporting custom Embedded Linux developments via the Yocto build method. An overview of the FWK, its inception, and its current developments are presented in this work, with a focus on how it facilitates the development of FPGA firmware, encourages collaboration, and improves repeatability and maintainability.