Coursera
Coursera Logo

FPGA computing systems: Background knowledge and introductory materials 

  • Offered byCoursera

FPGA computing systems: Background knowledge and introductory materials
 at 
Coursera 
Overview

Duration

46 hours

Start from

Start Now

Total fee

Free

Mode of learning

Online

Difficulty level

Beginner

Official Website

Explore Free Course External Link Icon

Credential

Certificate

FPGA computing systems: Background knowledge and introductory materials
 at 
Coursera 
Highlights

  • Shareable Certificate Earn a Certificate upon completion
  • 100% online Start instantly and learn at your own schedule.
  • Flexible deadlines Reset deadlines in accordance to your schedule.
  • Beginner Level
  • Approx. 46 hours to complete
  • English Subtitles: French, Portuguese (European), Russian, English, Spanish
Read more
Details Icon

FPGA computing systems: Background knowledge and introductory materials
 at 
Coursera 
Course details

More about this course
  • 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.
  • Within this course we are going to provide a basic understanding on how the FPGAs are working and of the rationale behind the choice of them to implement a desired system.
  • This course aims to teach everyone the basics of FPGA-based reconfigurable computing systems. We cover the basics of how to decide whether or not to use an FPGA and, if this technology will be proven to be the right choice, how to program it.
  • This is an introductory course meant to guide you through the FPGA world to make you more conscious on the reasons why you may be willing to work with them and in trying to provide you the sense of the work you have to do to be able to gain the advantages you are looking for by using these technologies.
  • We rely on some extra readings to provide more information on the topic covered in this course.
  • Please NOTE that most of the time, these documents are provided through the IEEE Xplore Digital Library, which means that, to access them, you have to have a valid IEEE subscriptions, either does by yourself or through your university/company.
  • The course has no prerequisites and avoids all but the simplest mathematics and it presents technical topics by using analogizes to help also a student without a technical background to get at least a basic understanding on how an FPGA works.
  • One of the main objectives of this course is to try to democratize the understanding and the access to FPGAs technologies. FPGAs are a terrific example of a powerful technologies that can be used in different domains. Being able to bring this technologies to domain experts and showing them how they can improve their research because of FPGAs, can be seen as the ultimate objective of this course. Once a student completes this course, they will be ready to take more advanced FPGA courses.
Read more

FPGA computing systems: Background knowledge and introductory materials
 at 
Coursera 
Curriculum

A Bird's Eye View on Adaptive Computing Systems

Course Introduction

Reconfiguration in Everyday Life

The Needs for Adaptation: an overview

FPGA and reconfiguration: a 1st definition

Runtime management

Programmable System-on-Chip

Programmable System-on-Multiple Chip

Self-Aware Adaptation in FPGA-based Systems [suggested readings]

Self-Awareness as a Model for Designing and Operating Heterogeneous Multicores [suggested readings]

Reconfigurable computing: a survey of systems and software [suggested readings]

ReconOS: An Operating System Approach for Reconfigurable Computing [suggested readings]

R3TOS-Based Autonomous Fault-Tolerant Systems [suggested readings]

Reconfigurations

History of Reconfiguration

FPGA and reconfiguration

Programmable SoC Vs SoMCs

Runtime management

Reconfigurable Computing: a 1st definition

Reconfigurable Computing: HW vs SW

On how to improve the Reconfigurable computing performance via CAD improvements

FPGA-Based Reconfigurable Computing

System design space exploration and rationale behind partial reconfiguration

A platform-independent runtime methodology for mapping multiple applications onto FPGAs through resource virtualization [suggested readings]

A Heterogeneous Multicore System on Chip with Run-Time Reconfigurable Virtual FPGA Architecture [suggested readings]

Partitioning and Scheduling of Task Graphs on Partially Dynamically Reconfigurable FPGAs [suggested readings]

A Mapping-Scheduling Algorithm for Hardware Acceleration on Reconfigurable Platforms [suggested readings]

Reconfigurable Computing Module

Performance

Reconfigurable Computing and FPGAs

Getting Familiar with FPGAs

FPGA Basic Block: CLBs and IOBs

FPGA Basic Block: Interconnections

FPGA Configuration: an overview

More Details on How To Configure and FPGA: the bitstream files

Bitstream Composition

Configuration Registers

How to handle the complexity of an FPGA-based system

Note on the "Resources"

Physical design for FPGAs [suggested readings]

Multi-Million Gate FPGA Physical Design Challenges [suggested readings]

Getting familiar with FPGAs

FPGA configuration and Bitstream

4 inputs - 1 output OR LUT configuration example

From the LUT to the CLB configuration example

A simplified FPGA and its configuration settings

An Example on how to implement a circuit on a simplified FPGA

An Example on how to implement a circuit on a simplified FPGA: bitstram generation phase - CLBs

An Example on how to implement a circuit on a simplified FPGA: bitstram generation phase - SBs and routing

LUT and CLB

Physical design

An Introduction to Reconfigurations

A Common Vocabulary

The 5 W's

Reconfigurable Computing as an Exstension of HW/SW Codesing

A Classification of SoC Reconfigurations

A Classification of SoMC Reconfigurations

Design methodology for partial dynamic reconfiguration: a new degree of freedom in the HW/SW codesign [suggested readings]

Performance of partial reconfiguration in FPGA systems: A survey and a cost model [suggested readings]

Functionalities and their implementations

Module Review

Scenarios where Partial Reconfiguration can be effective

How to use FPGA Reconfiguration to face area issues

How to deal with the Reconfiguration runtime overhead

Recurring modules to reuse them to reduce the Reconfiguration time

Partial Reconfiguration to reduce the Reconfiguration runtime overhead

Runtime management to explore alternative implementations

Bitstreams relocation

Bitstreams relocation and virtual homogeneity

Operating system runtime management of partially dynamically reconfigurable embedded systems [suggested readings]

Core Allocation and Relocation Management for a Self Dynamically Reconfigurable Architecture [suggested readings]

A runtime relocation based workflow for self dynamic reconfigurable systems design [suggested readings]

Partial Dynamic Reconfiguration in a Multi-FPGA Clustered Architecture Based on Linux [suggested readings]

Reconfigurable System

Partial reconfiguration

Design Flows

Xilnx Design Flows through years

Partial Reconfiguration Design Flows

Xilinx Difference Based Partial Reconfiguration

Xilinx Module Based Partial Reconfiguration

Xilinx Partial Reconfiguration (PR) Flow

Moudle Based vs Partial Reconfiguration Design Flows

Rationale behind DRESD and the work done by the Politecnico di Milano

From DRESD to CHANGE and ASAP, two new research initiatives from the Politecnico di Milano

CAOS: from embedded to heterogeneous distributed FPGA-based computing systems

Vivado Design Suite Tutorial, Partial Reconfiguration, UG947 (v2016.1) April 6, 2016 [suggested readings - handbook - PDF]

Vivado Design Suite User Guide, Partial Reconfiguration, UG909 (v2016.1) April 6, 2016 [suggested readings - handbook - PDF]

Dynamic Reconfigurability in Embedded System Design [suggested readings]

A design methodology for dynamic reconfiguration: the Caronte architecture [suggested readings]

Floorplanning Automation for Partial-Reconfigurable FPGAs via Feasible Placements Generation [suggested readings]

Heterogeneous exascale supercomputing: The role of CAD in the exaFPGA project [suggested readings]

The Role of CAD Frameworks in Heterogeneous FPGA-Based Cloud Systems [suggested readings]

Abstractions

Politecnico di Milano Partial Reconfiguration Research Initiatives

Design flows

Towards distributed FPGA-based systems

Virtualized Execution Runtime for FPGA Accelerators in the Cloud [suggested readings]

A cloud-scale acceleration architecture [suggested readings]

Enabling Flexible Network FPGA Clusters in a Heterogeneous Cloud Data Center [suggested readings]

Closing remarks and future directions

FPGA computing systems: Background knowledge and introductory materials
 at 
Coursera 
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    3 months
    Beginner
    – / –
    20 hours
    Beginner
    – / –
    2 months
    Beginner
    – / –
    3 months
    Beginner
    View Other 6715 CoursesRight Arrow Icon
    qna

    FPGA computing systems: Background knowledge and introductory materials
     at 
    Coursera 

    Student Forum

    chatAnything you would want to ask experts?
    Write here...