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

Offered by 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.

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

This course analyzes the stated problem, embraces a radically new approach, and it introduces how software and hardware systems can be adjusted during execution. By doing this, we are going to introduce the Field Programmable Gate Arrays (FPGA) technologies and how they can be (re)configured.

What You Will Learn

  • You will learn to give examples of different kinds of reconfigurations
  • You will able to define reconfigurable computing, to explain the rationale behind an FPGA-based reconfigurable computing system
  • You will learn how an FPGA can be configured and what a bitstream is used for.
  • You will learn to design a circuit on an FPGA and how a circuit can be implemented on an FPGA.

Syllabus

WEEK 1
A Bird's Eye View on Adaptive Computing Systems
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. This module analyzes the stated problem, embraces a radically new approach, and it introduces how software and hardware systems ca ben adjusted during execution. By doing this, we are going to introduce the Field Programmable Gate Arrays (FPGA) technologies and how they can be (re)configured.

WEEK 2
An introduction to Reconfigurable Computing
Traditionally, computing was classified into General-Purpose Computing performed by a General-Purpose Processor (GPP) and Application-Specific Computing performed by an Application-Specific Integrated Circuit (ASIC). As a trade-off between the two extreme characteristics of GPP and ASIC, reconfigurable computing has combined the advantages of both. On one hand reconfigurable computing can have better performance with respect to a software implementation but paying this in terms of time to implement. On the other hand a reconfigurable device can be used to design a system without requiring the same design time and complexity compared to a full custom solution but being beaten in terms of performance. The main advantage of a reconfigurable system is its high flexibility, while its main disadvantage is the lack of a standard computing model. In this module we are presenting a first definition of reconfigurable computing, describing the rationale behind it and introducing how this field has been influenced by the introduction of the FPGAs.

WEEK 3
Reconfigurable Computing and FPGAs
From the mid-1980s, reconfigurable computing has become a popular field due to the FPGA technology progress. An FPGA is a semiconductor device containing programmable logic components and programmable interconnects but no instruction fetch at run time, that is, FPGAs do not have a program counter. In most FPGAs, the logic components can be programmed to duplicate the functionality of basic logic gates or functional Intellectual Properties (IPs). FPGAs also include memory elements composed of simple flip-flops or more complex blocks of memories. Hence, FPGA has made possible the dynamic execution and configuration of both hardware and software on a single chip. This module provides a detailed description of FPGA technologies starting from a general description down to the discussion on the low-level configuration details of these devices, to the bitstream composition and the description of the configuration registers.

WEEK 4
Examples on how to configure an FPGA
FPGA design tools must provide a design environment based on digital design concepts and components (gates, flip-flops, MUXs, etc.). They must hide the complexities of placement, routing and bitstream generation from the user. This module is not going through these steps in details, an entire course will be needed just for this, but it is important at least to have an idea of what it is happening behind the scene to better understand the complexity of the processes carried out by the tools you are going to use. Within this context, this module guides you through a simple example, which is abstracting the complexity of the underlying FPGA, starting from the description of the circuit you may be willing to implement to the bitstream used to configure the FPGA.

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 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.

Sep 21st 2026
4 Weeks
Agile Planning for Software Products (Coursera) Coursera
University of Alberta

Agile Planning for Software Products (Coursera)

This course covers the techniques required to break down and map requirements into plans that will ultimately drive software production. Upon successful completion of this course, you will be able to: create effective plans for software development; map user requirements to developer tasks; assess and plan for project risks; apply velocity-driven planning techniques; generate work estimates for software products.

Sep 28th 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
Teaching Computing Systems and Networks to 5- to 11-year-olds (FutureLearn) FutureLearn
Raspberry Pi Foundation,National Centre for Computing Education

Teaching Computing Systems and Networks to 5- to 11-year-olds (FutureLearn)

Increase your knowledge of "computing systems & networks" and plan how you will teach young children about this topic. Help young children understand the Computing Systems and Networks around them. On this three-week course you’ll explore how you can build up young learners’ knowledge in an age-appropriate manner. You’ll start by thinking about how you can to help your learners recognise information technology - and how computers process an input to give an output.

Jan 2nd 2023
3 Weeks
Electrónica Digital Bit a Bit: Aprendiendo fundamentos (Coursera) Coursera
Pontificia Universidad Católica de Chile

Electrónica Digital Bit a Bit: Aprendiendo fundamentos (Coursera)

Es desafiante y hasta atemorizante entender un circuito digital cuando observamos la cantidad de transistores que puede contener, y aún más difícil diseñarlo eficientemente para su implementación en un circuito integrado o una FPGA. Sin embargo, saber diseñar circuitos digitales simples nos abre las puertas para diseñar sistemas digitales más complejos a partir de estos.

Jun 22nd 2026
5-12 Weeks
Introduction to Software Product Management (Coursera) Coursera
University of Alberta

Introduction to Software Product Management (Coursera)

This course highlights the importance and role of software product management. It also provides an overview of the specialization, as well as its goals, structure, and expectations. The course explains the value of process, requirements, planning, and monitoring in producing better software. Upon successful completion of this course, you will be able to: relate software product management to better software products; recognize the role of a software product manager; reflect on how Agile principles will improve your own projects.

Sep 28th 2026
2 Weeks
VFX with Adobe After Effects from Novice to Expert (Coursera) Coursera
EDUCBA

VFX with Adobe After Effects from Novice to Expert (Coursera)

Embark on a transformative journey into Adobe After Effects, gaining fundamental and advanced skills. Explore the intricacies of the interface, create compositions and master timeline dynamics. Dive into hands-on experiences, shaping proficiency in animation, advanced text techniques, and masking for enhanced visual effects. Discover the profound impact of light, colors, and perspective, refining chroma keying, compositing, and motion tracking skills. Immerse yourself in 3D integration, lighting, and tracking for dynamic storytelling.

Oct 5th 2026
5-12 Weeks
UX / UI: Fundamentos para o design de interface (Coursera) Coursera
Universidade de São Paulo, Brasil

UX / UI: Fundamentos para o design de interface (Coursera)

Aprenda com uma das maiores startups do Brasil, a Taqtile sobre com criar a melhor experiência para o seu usuário, formas de gerar ideias, princípios básicos de design e como desenvolver interfaces de aplicativos e sites, esse curso introdutório é composto de aulas teóricas com exemplos práticos de aplicação de cada assunto abordado.

Oct 5th 2026
5-12 Weeks