FPGA computing systems: Background knowledge and introductory materials

  • 4.6
Approx. 46 hours to complete

Course Summary

Learn the basics of FPGA design and programming in this introductory course. Gain hands-on experience through lab exercises using the Xilinx Vivado Design Suite.

Key Learning Points

  • Understand the basics of FPGA design and programming
  • Learn how to use the Xilinx Vivado Design Suite
  • Gain hands-on experience through lab exercises

Related Topics for further study


Learning Outcomes

  • Understand the fundamentals of FPGA design and programming
  • Gain hands-on experience with the Xilinx Vivado Design Suite
  • Be able to design and implement basic digital circuits on an FPGA

Prerequisites or good to have knowledge before taking this course

  • Basic knowledge of digital circuits
  • Familiarity with Verilog or VHDL

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Digital Systems Design
  • Advanced Digital Signal Processing
  • Introduction to Robotics

Notable People in This Field

  • Editor in Chief of EEWeb.com
  • Inventor of the 555 Timer

Related Books

Description

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.

Outline

  • 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
  • An introduction to Reconfigurable Computing
  • 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
  • Examples on how to configure an FPGA
  • 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
  • Towards Partial Dynamic Reconfiguration and Complex FPGA-based systems
  • 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
  • Closing remarks and future directions
  • 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

Summary of User Reviews

Learn the basics of FPGA design with this introductory course on Coursera. The course has received positive feedback from users and is highly recommended for beginners. A key aspect that many users enjoyed was the hands-on approach of the course, allowing them to gain practical experience in FPGA design.

Pros from User Reviews

  • Hands-on approach to learning FPGA design
  • Clear and concise explanations
  • Great for beginners
  • Engaging and interactive content

Cons from User Reviews

  • Requires some background knowledge in digital design
  • Limited coverage of advanced topics
  • Not suitable for those looking for in-depth knowledge
  • May be too basic for experienced designers
English
Available now
Approx. 46 hours to complete
Marco Domenico Santambrogio
Politecnico di Milano
Coursera

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses