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

Offered by Politecnico di Milano,
Developing FPGA-accelerated cloud applications with SDAccel: Theory (POK)

This course, which is the third one of a “series”, is for anyone passionate about learning the theory on how to develop FPGA-accelerated applications with SDAccel. We are entering an era in which technological 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. Within this context, we can say that reconfigurable computing will widely, pervasively, and gradually impact human lives. Hence, it is time that we focus on how reconfigurable computing and reconfigurable system design techniques are to be utilised for building applications.

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.
Within this context, the Xilinx SDx tools, including the SDAccel environment, the SDSoC environment, and Vivado HLS, provide an out-of-the-box experience for system programmers looking to partition elements of a software application to run in an FPGA-based hardware element, and having that hardware work seamlessly with the rest of the application running in a processor or embedded processor.
The out-of-the-box experience will provide interesting and, let us say, “good enough” results for many applications.
However, this may not be true for you, you may be looking for better performance, data throughput, reduced latency, or to reduce the resources usage...
This course is focusing on this. After introducing you to the FPGAs we are going to dig more into the details on how to use Xilinx SDAccel providing you also with working examples on how to optimize the hardware logic to obtain the best of of your hardware implementations. In this case, certain attributes, directives, or pragmas, can be used to direct the compilation and synthesis of the hardware kernel, or to optimise the function of the data mover operating between the processor and the hardware logic.
Furthermore, in this course we are going to focus on distributed, heterogeneous infrastructures, presenting how to bring your solutions to life by using the Amazon EC2 F1 instances.

Prerequisites
This course follows the previous ones “FPGA computing systems: A Bird’s Eye View on Reconfigurable Computing” and “FPGA computing systems: Partial Dynamic Reconfiguration”. Within this context no specific background knowledge is requested. Anyone with moderate computer experience should be able to master the materials in this course.

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

Related Courses

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.

Jul 27th 2026
4 Weeks
Everyday Excel, Part 3 (Projects) (Coursera) Coursera
University of Colorado Boulder

Everyday Excel, Part 3 (Projects) (Coursera)

"Everyday Excel, Part 3 (Projects)" is a continuation of "Everyday Excel, [Parts 1](https://www.mooc-list.com/course/everyday-excel-part-1-coursera) and [Parts 2](https://www.mooc-list.com/course/everyday-excel-part-2-coursera)". It is a capstone, projects-based course in which you will apply what you've learned previously to more complex, somewhat open-ended projects (open-ended with respect to the fact that they can be solved in multiple ways). Each learner must complete two easy projects (chosen from four), two intermediate projects (chosen from 4), and three main (more difficult) projects (chosen from 7).

Jul 27th 2026
5-12 Weeks
Computing in Python II: Control Structures (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python II: Control Structures (edX)

Learn about control structures, one of the most powerful parts of programming. This course covers conditionals, loops, functions, and error handling, specifically in Python but with broader applicability to other languages as well. Building on your prior knowledge of variables and operators, this course gets into the meat of programming. Organized into five chapters, this course starts by covering the fundamentals of what control structures are and what they do, then moves on to four common control structures in Python.

Self Paced
Self-Paced
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
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
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
Computer Programming for Everyone (FutureLearn) FutureLearn
University of Leeds,Institute of Coding

Computer Programming for Everyone (FutureLearn)

Discover the art of computer programming and learn what code can do with the Institute of Coding and the University of Leeds. Explore computer programming and complete block-language programming exercises. What are computers good at and how can you get the best out of them? On this course, you’ll find out how and why people program computers.

Self Paced
2 Weeks
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.

Aug 10th 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.

Aug 10th 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.

Jul 27th 2026
4 Weeks