FPGA computing systems: Partial Dynamic Reconfiguration (Coursera)

Offered by Politecnico di Milano,
FPGA computing systems: Partial Dynamic Reconfiguration (Coursera)

INTRONew application domains demand ever increasing adaptability and performance. In order to cope with changing user requirements, improvements in system features, changing protocol and data-coding standards, and demands for support of a variety of different user applications, many emerging applications in communication, computing and consumer electronics demand that their functionality stays flexible after the system has been manufactured. Reconfigurable Systems-on-a-Chips (SoCs) employing different microprocessor cores and different types of reconfigurable fabrics are one attractive solution for these domains.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

The increasing prominence of reconfigurable devices within such systems requires HW/SW co-design for SoCs to address the trade-off between software execution and reconfigurable hardware acceleration.
Dynamic reconfiguration capabilities of current reconfigurable devices create an additional dimension in the temporal domain. During the design space exploration phase, overheads associated with reconfiguration and hardware/software interfacing need to be evaluated carefully in order to harvest the full potential of dynamic reconfiguration.
The course will introduce the student with the concept of reconfigurability in FPGAs, presenting the available mechanisms and technologies at the device level and the tools and design methodologies required to design reconfigurable FPGA-based systems. The course will present the different aspects of the design of FPGA-based reconfigurable systems, focusing in particular on dynamically self-reconfigurable systems. The design methodologies and tools required to design a dynamically-reconfigurable system will be introduced and described, together with the problems that need to be considered.

What You Will Learn

  • You will learn to name the 5 Ws with respect to a reconfigurable hardware context
  • You will learn which techniques can be used to deal with the overhead introduced by the Partial Dynamic Reconfiguration
  • You will compare different flows to realize a reconfigurable system and you will explain the phases composing a design flow for FPGA-based system.
  • You will understand the reason of moving towards reconfigurable cloud solutions and moving from a single FPGA-based system to a distributed scenario

Syllabus

WEEK 1
An Introduction to Reconfigurations
Before continuing in this terrific journey in the reconfigurable computing area, it can be useful to define a common language. Obviously, some of these terms have been already used but it is now time to better understand them and to make some order before continuing with more advanced concepts. Furthermore, as we know, FPGA configuration capabilities allow a great flexibility in hardware design and, as a consequence, they make it possible to create a vast number of different reconfigurable systems. These can vary from systems composed of custom boards with FPGAs, often connected to a standard PC or workstation, to standalone systems including reconfigurable logic and General Purpose Processors, to System-on-Chip's, completely implemented within a single FPGA mounted on a board, with only few physical components for I/O interfacing. There are different models of reconfiguration, and a scheme to classify them is presented in this module. We can consider this module as a transitional/turning point module. We have been exposed to some terminology and concepts and we are now ready to move forward. To do this, we need to combine all the pieces of the puzzles together and to invest a bit at looking at the overall picture, and this is exactly what this module has been designed for.

WEEK 2
Towards Partial Dynamic Reconfiguration and Complex FPGA-based systems
The reconfiguration capabilities of FPGAs give the designers extended flexibility in terms of hardware maintainability. FPGAs can change the hardware functionalities mapped on them by taking the application offline, downloading a new configuration on the FPGA (and possibly new software for the processor, if any) and rebooting the system. Reconfiguration in this case is a process independent of the execution of the application. A different approach is the one that considers reconfiguration of the FPGA as part of the application itself, giving it the capability of adapting the hardware configured on the chip resources according to the needs of a particular situation during the execution time. In this case we are referring to this reconfiguration as dynamic reconfiguration and the reconfiguration process is seen as part of the application execution, and not as a stage prior to it. This module illustrates a particular technique, which is extending the previous two, that has been viable for most recent FPGA devices, Partial Dynamic Reconfiguration. To fully understand what this technique is, the concepts of reconfigurable computing, static and dynamic reconfiguration, and the taxonomy of dynamic reconfiguration itself must be analyzed. In this way partial dynamic reconfiguration can be correctly placed in the set of system development techniques that it is possible to implement on a modern FPGA chip.

WEEK 3
Design Flows
After presenting different solutions proposed to design and implement dynamic reconfigurable systems, this module will describe a general and complete design methodology that can be followed as a guideline for designing reconfigurable computing systems. To design and implement a reconfigurable computing system, designers need Computer-Aided Design (CAD) tools for system design and implementation, such as a design analysis tool for architecture design, a synthesis tool for hardware construction, a simulator for hardware behavior simulation, and a placement and routing tool for circuit layout. We may build these tools ourselves or we can also use commercial tools and platforms for reconfigurable system design. The first choice implies a considerable investment in terms of both time and effort to build a specific and optimized solution for the given problem, while the second one allows the re-use of knowledge, cores, and software to reach a good solution to the same problem more rapidly. This module is guiding the students through an historical view on how CAD frameworks evolved through the years. This is done to show how fast the technology is evolving and the rationale behind the choice made to improve the users experience when working with an FPGA-based system. Not only commercial tools are described, but also the personal journey done by the course instructor and his research team, starting from his early days as a PhD up to the research challenges they are nowadays working on.

WEEK 4
Closing remarks and future directions
We are working at the edge of the research in the area of reconfigurable computing. FPGA technologies are not used only as standalone solutions/platforms but are now included into cloud infrastructures. They are now used both to accelerate infrastructure/backend computations and exposed as-a-Service that can be used by anyone. Within this context we are facing the definition of new research opportunities and technologies improvements and the time cannot be better under this perspective. What it is needed now is new platform creation tools, monitoring and profiling infrastructure, better runtime management systems, static and dynamic workload partitioning, just to name a few possible areas of research. This module is concluding this course but posing interesting questions towards possible future research directions that may also point the students to other Coursera courses on FPGAs.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Story and Narrative Development for Video Games (Coursera) Coursera
California Institute of the Arts

Story and Narrative Development for Video Games (Coursera)

In this course, you will examine how storytelling acts as a vital mechanism for driving video gameplay forward. Looking at several historical and contemporary games, you will be asked to evaluate and interpret different story styles with the goal of identifying themes and procedures for your own game ideas. We'll examine traditional narrative story processes, such as three-act structure, and how they fit into game story flows and the strategic elements of gameplay. Ultimately, you will learn how to define character, setting, and structure to create a compelling game concept.

Oct 26th 2026
4 Weeks
FPGA computing systems: A Bird’s Eye View (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: A Bird’s Eye View (Coursera)

Nowadays the complexity of computing systems is skyrocketing. Programmers have to deal with extremely powerful computing systems that take time and considerable skills to be instructed to perform at their best. It is clear that it is not feasible to rely on human intervention to tune a system: conditions change frequently, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment.

Oct 19th 2026
4 Weeks
FPGA computing systems: A Bird’s Eye View on Reconfigurable Computing (POK) Polimi OPEN KNOWLEDGE
Politecnico di Milano

FPGA computing systems: A Bird’s Eye View on Reconfigurable Computing (POK)

This course is the first one of a “series”, aimed at providing a structured understanding on how the FPGAs are working and of the rationale behind the choice of them to implement a desired system. This course is for anyone passionate in learning how a hardware component can be adapted at runtime to better respond to users/environment needs.

Available
4 Weeks
Introducción al diseño de hardware con Verilog (edX) EdX
Galileo University,GalileoX

Introducción al diseño de hardware con Verilog (edX)

Aprende el lenguaje de descripción de hardware Verilog, utilizado en la industria en el diseño de hardware digital y microprocesadores a la medida. En la actualidad, el hardware de soporte en sistemas digitales se suele diseñar en un solo circuito integrado FPGA (Field Programmable Gate Array), en parte debido al abundante espacio físico que ocuparía una implementación con varios circuitos integrados dedicados para este fin.

Self Paced
Self-Paced
Learn UI Design Fundamentals (Coursera) Coursera
Scrimba

Learn UI Design Fundamentals (Coursera)

The ability to create stunning user interfaces is a skill any frontend developer will benefit from, whether you're in a team, a consultant, or want to build your own projects. This course will teach you the seven fundamentals that underpin any beautiful and effective user interface. Through lectures and interactive exercises, you'll discover the skills you need in order to build UIs that both look amazing and feel great to use. You will build everything in the browser using HTML and CSS, and put your new skills to the test many times throughout the course!

Nov 2nd 2026
1 Week
Developing FPGA-accelerated cloud applications with SDAccel: Theory (Coursera) Coursera
Politecnico di Milano

Developing FPGA-accelerated cloud applications with SDAccel: Theory (Coursera)

This course is for anyone passionate in learning how to develop FPGA-accelerated applications with SDAccel! We are entering in an era in which technology progress induces paradigm shifts in computing! As a tradeoff between the two extreme characteristics of GPP and ASIC, we can find a new concept, a new idea of computing... the reconfigurable computing, which has combined the advantages of both the previous worlds.

Oct 19th 2026
4 Weeks
Introduction to 3D Modeling (Coursera) Coursera
University of Michigan

Introduction to 3D Modeling (Coursera)

On this four-week practical course from the University of Michigan, you’ll not only learn how to use the Rhino software to create your 3D models, but you’ll also gain basic design skills to help bring your imagination to life. This course will guide you through 3D modeling within Rhino, so you’ll cover the fundamentals of the software as well as 3D modeling in general. You’ll first look at how to navigate the user interface and the different tools that you’ll be using to create models throughout this course. You’ll familiarize yourself with the 3D space and 3D objects before jumping straight in to create your own objects and building blocks.

Nov 2nd 2026
4 Weeks
Data Warehouse Concepts, Design, and Data Integration (Coursera) Coursera
University of Colorado System

Data Warehouse Concepts, Design, and Data Integration (Coursera)

This is the second course in the Data Warehousing for Business Intelligence specialization. Ideally, the courses should be taken in sequence. In this course, you will learn exciting concepts and skills for designing data warehouses and creating data integration workflows. These are fundamental skills for data warehouse developers and administrators. You will have hands-on experience for data warehouse design and use open source products for manipulating pivot tables and creating data integration workflows.

Oct 26th 2026
5-12 Weeks
AI Materials (Coursera) Coursera
Korea Advanced Institute of Science and Technology - KAIST

AI Materials (Coursera)

Learn about the materials that have advanced the performance of artificial intelligence, and the machine learning models that could help accelerate the design and development of novel materials. This course defines artificial intelligence (AI) as a machine to which some or all of the functions of the human brain have been delegated. It highlights the need, and explains in an easy-to-understand way how machine learning from artificial intelligence can dramatically accelerate the development of new materials.

Nov 2nd 2026
5-12 Weeks
Introduction to FPGA Design for Embedded Systems (Coursera) Coursera
University of Colorado Boulder

Introduction to FPGA Design for Embedded Systems (Coursera)

Programmable Logic has become more and more common as a core technology used to build electronic systems. By integrating soft-core or hardcore processors, these devices have become complete systems on a chip, steadily displacing general purpose processors and ASICs. In particular, high performance systems are now almost always implemented with FPGAs. This course will give you the foundation for FPGA design in Embedded Systems along with practical design skills.

Oct 19th 2026
4 Weeks