Deeper course for experimentalists
Limited to 16 participants
Advanced FPGA Development: Design, Timing, and Toolflows
Hendrik Krause, Olena Manzhura, Lukas Scheller, Ahmed Qamesh (KIT)
Abstract
Field-Programmable Gate Arrays (FPGAs) are powerful computing platforms that combine the performance and determinism of custom ASICs with the flexibility of microcontrollers. By enabling massive parallelism and true real-time processing, FPGAs are well-suited for high-performance signal processing, data analysis, and hardware acceleration. This makes them the perfect candidate for the readout of detectors and leads to their adoption in many small to large-scale physics experiments. Their functionality is defined using hardware description languages (HDLs) such as VHDL or Verilog, which requires a fundamentally different mindset than traditional sequential software programming in languages like Python or C/C++.
This advanced FPGA course focuses on developing that hardware-oriented way of thinking. Through a combination of theory and hands-on exercises, participants will explore key concepts such as combinational and sequential logic, timing analysis, and common design pitfalls. In addition to core design principles, the course emphasizes modern development practices, including automation of the FPGA design flow, source control management, and the effective use of external tools to streamline development.
This is not a complete beginner course: participants are expected to have some prior exposure to digital design or HDLs, but expert-level knowledge is not required.