FPGA computing systems: Partial Dynamic Reconfiguration (POK)

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

The course introduces students to the concept of Reconfigurable FPGA-based Systems, by discussing their overall architecture and companion design flows. The goal is to present to the students the methodological approaches for the design of such systems, showing also real industrial tools, examples and common practices.

This series of courses introduces students to the concept of Reconfigurable FPGA-based Systems, by discussing their overall architecture and companion design flows. The goal is to present to the students the methodological approaches for the design of such systems, showing also real industrial tools, examples and common practices.

New 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. 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.
After this course you will be able to:

  • describe why reconfigurable computing can be seen as an extension of the HW/SW codesign;
  • illustrate the reconfigurable computing “taxonomy”;
  • summarize the main concepts/terms introduced with respect to a reconfigurable computing scenario;
  • understand how a design flow to design and implement a reconfigurable system is working.

Once a student completes this course, he will be ready to take more advanced FPGA courses.

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

Related Courses

FPGA computing systems: Background knowledge and introductory materials (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: Background knowledge and introductory materials (Coursera)

This course is for anyone passionate in learning how a hardware component can be adapted at runtime to better respond to users/environment needs. This adaptation can be provided by the designers, or it can be an embedded characteristic of the system itself. These runtime adaptable systems will be implemented by using FPGA technologies.

Nov 2nd 2026
4 Weeks
Developing FPGA-accelerated cloud applications with SDAccel: Practice (POK) Polimi OPEN KNOWLEDGE
Politecnico di Milano

Developing FPGA-accelerated cloud applications with SDAccel: Practice (POK)

This course, which is the fourth one of a “series”, is for anyone passionate about practicing how to develop FPGA-accelerated applications with SDAccel. This course will present several scenarios where the workloads require more performance than can be obtained even by using the fastest CPUs. This scenario is turning cloud and data center architectures toward accelerated computing.

Available
5-12 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
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
Algorithmic Thinking (Part 2) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 2) (Coursera)

Experienced Computer Scientists analyze and solve computational problems at a level of abstraction that is beyond that of any particular programming language. This two-part class is designed to train students in the mathematical concepts and process of "Algorithmic Thinking", allowing them to build simpler, more efficient solutions to computational problems.

Nov 2nd 2026
4 Weeks
Ethical Issues in AI and Professional Ethics (Coursera) Coursera
University of Colorado Boulder

Ethical Issues in AI and Professional Ethics (Coursera)

Computing systems and technologies fundamentally impact the lives of most people in the world, including how we communicate, get information, socialize, and receive healthcare. This course is the second of a three course sequence that examines ethical issues in the design and implementation of computing systems and technologies, and reflects upon the broad implication of computing on our society. It covers algorithmic bias in machine learning methods, professional ethics, and issues in the tech workplace.

Oct 19th 2026
5-12 Weeks
3D Printing Capstone Coursera
University of Illinois at Urbana-Champaign

3D Printing Capstone

The capstone will integrate the learning acquired from the four courses in the 3D Printing Specialization through a hands-on project. This project will enable you to turn an idea into an object using the knowledge and skills acquired through the other courses. Specifically, you will be guided through a step-by-step process in which you imagine, design, make, and share a 3D printed object. Thus, through this capstone, you will be able to put course concepts into action and utilize the skills that you have acquired throughout the Specialization.

Oct 26th 2026
4 Weeks
CompTIA Exam Prep (Coursera) Coursera
LearnQuest

CompTIA Exam Prep (Coursera)

This course is geared towards anyone looking to take the CompTIA A+ certification exam. This certification focuses predominately on computer support or helpdesk. This course gives you easy access to the invaluable learning techniques used by many in their preparation of the CompTIA A+ certification exam. We’ll learn about the exam process, expectations, and tip & tricks that can be used in passing the exam. Using these approaches, regardless of your skill levels in the topics and objective areas of the exam.

Oct 26th 2026
3 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Nov 2nd 2026
4 Weeks