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

Introduction to High-Performance and Parallel Computing (Coursera) Coursera
University of Colorado Boulder

Introduction to High-Performance and Parallel Computing (Coursera)

This course introduces the fundamentals of high-performance and parallel computing. It is targeted to scientists, engineers, scholars, really everyone seeking to develop the software skills necessary for work in parallel software environments. These skills include big-data analysis, machine learning, parallel programming, and optimization. We will cover the basics of Linux environments and bash scripting all the way to high throughput computing and parallelizing code.

Nov 9th 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
Productivity and Systems Development (Coursera) Coursera
University of California, Irvine

Productivity and Systems Development (Coursera)

This course provides hands-on experience with technology-based productivity tools, as well as foundational knowledge and understanding of system design and development. The course is designed to integrate concepts of hardware, software, and the Internet. This course also provides an overview of data security, data privacy, and ways to increase productivity and efficiency. Students will also investigate technology career paths and some of the various certifications available in the industry.

Nov 9th 2026
3 Weeks
Computer Hardware and Software (Coursera) Coursera
University of California, Irvine

Computer Hardware and Software (Coursera)

This course provides foundational understanding of how computers process information through hardware and software. You will investigate the world of Information Technology (IT) and survey hardware components, mobile devices, operating systems, programs and apps, network fundamentals, the Internet, and touch on security and ethics.

Nov 9th 2026
3 Weeks
Developing FPGA-accelerated cloud applications with SDAccel: Practice (Coursera) Coursera
Politecnico di Milano

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

This course is for anyone passionate about learning how to develop FPGA-accelerated applications with SDAccel! The more general purpose you are, the more flexible you are and the more kinds of programs and algorithms you can execute on your underlying computing infrastructure. All of this is terrific, but there is no free food and this is happening, quite often, by losing in efficiency.

Nov 9th 2026
4 Weeks
Exploring C (Coursera) Coursera
University of Michigan

Exploring C (Coursera)

The C programming language is heavily influential in the world of coding and helps run some of the most powerful computer programs in the world. In Exploring C, examine the historical context and impact of C on the development of programming over the past 50 years. In this course, you’ll compare and contrast C with the programming language Python, review how to code in C and gain an understanding of the nuances of computer programming.

Nov 9th 2026
5-12 Weeks
Algorithmic Thinking (Part 1) (Coursera) Coursera
Rice University

Algorithmic Thinking (Part 1) (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
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
Capstone Project: Teaching Impacts of Technology (Coursera) Coursera
University of California, San Diego

Capstone Project: Teaching Impacts of Technology (Coursera)

In this project-based course you’ll review the Advanced Placement Computer Science Principles course and exam description guide to prepare for the “Explore Task”, where students must research a recent computing innovation and and analyze its impacts on the world. You’ll also review the description of this task from the student perspective and complete the task yourself. Then you’ll assess sample secondary student work by following the APCSP scoring guidelines as well as provide feedback to a fellow learner on their submitted task and receive the same from fellow learners.

Nov 4th 2026
5-12 Weeks
Designing Hardware for Raspberry Pi Projects (Coursera) Coursera
Johns Hopkins University

Designing Hardware for Raspberry Pi Projects (Coursera)

This is course 4 of this specialization (although it can be taken out of order) and focuses on applying experience and knowledge gained in the first three courses to build physical electronics hardware. Specifically, this course focuses on four areas: circuit simulation, schematic entry, PCB layout, and 3D CAD modeling. There are many excellent commercial applications available in these areas, however to give everyone access we'll be using all free and open-source software.

Nov 9th 2026
4 Weeks