- Level Foundation
- المدة 46 ساعات hours
- الطبع بواسطة Politecnico di Milano
-
Offered by
عن
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.الوحدات
Class intro
1
Assignment
- Reconfigurations
3
Videos
- Course Introduction
- Reconfiguration in Everyday Life
- The Needs for Adaptation: an overview
2
Readings
- Self-Aware Adaptation in FPGA-based Systems [suggested readings]
- Self-Awareness as a Model for Designing and Operating Heterogeneous Multicores [suggested readings]
FPGA and reconfiguration
2
Assignment
- History of Reconfiguration
- FPGA and reconfiguration
1
Videos
- FPGA and reconfiguration: a 1st definition
1
Readings
- Reconfigurable computing: a survey of systems and software [suggested readings]
Adaptive Computing Systems
2
Assignment
- Programmable SoC Vs SoMCs
- Runtime management
3
Videos
- Runtime management
- Programmable System-on-Chip
- Programmable System-on-Multiple Chip
2
Readings
- ReconOS: An Operating System Approach for Reconfigurable Computing [suggested readings]
- R3TOS-Based Autonomous Fault-Tolerant Systems [suggested readings]
Reconfigurable Computing
1
Assignment
- Reconfigurable Computing Module
4
Videos
- 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
2
Readings
- 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]
System design space exploration and rationale behind partial reconfiguration
1
Assignment
- Performance
1
Videos
- System design space exploration and rationale behind partial reconfiguration
2
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]
Getting Familiar with FPGAs
1
Assignment
- Getting familiar with FPGAs
3
Videos
- Getting Familiar with FPGAs
- FPGA Basic Block: CLBs and IOBs
- FPGA Basic Block: Interconnections
On How to Configure an FPGA
1
Assignment
- FPGA configuration and Bitstream
4
Videos
- FPGA Configuration: an overview
- More Details on How To Configure and FPGA: the bitstream files
- Bitstream Composition
- Configuration Registers
1
Readings
- Note on the "Resources"
How to handle the complexity of an FPGA-based system
1
Videos
- How to handle the complexity of an FPGA-based system
2
Readings
- Physical design for FPGAs [suggested readings]
- Multi-Million Gate FPGA Physical Design Challenges [suggested readings]
An example on how to configure a CLB
1
Assignment
- LUT and CLB
2
Videos
- 4 inputs - 1 output OR LUT configuration example
- From the LUT to the CLB configuration example
An Example on how to implement a circuit on a simplified FPGA
1
Assignment
- Physical design
4
Videos
- 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
A Common Vocabulary
1
Assignment
- Functionalities and their implementations
1
Videos
- A Common Vocabulary
The 5 W's
1
Videos
- The 5 W's
Reconfigurable Computing as an Exstension of HW/SW Codesing
1
Videos
- Reconfigurable Computing as an Exstension of HW/SW Codesing
1
Readings
- Design methodology for partial dynamic reconfiguration: a new degree of freedom in the HW/SW codesign [suggested readings]
A Classification of Reconfigurations
1
Assignment
- Module Review
2
Videos
- A Classification of SoC Reconfigurations
- A Classification of SoMC Reconfigurations
1
Readings
- Performance of partial reconfiguration in FPGA systems: A survey and a cost model [suggested readings]
Reconfigurable Systems: opportunities and rationale
1
Assignment
- Reconfigurable System
2
Videos
- Scenarios where Partial Reconfiguration can be effective
- How to use FPGA Reconfiguration to face area issues
Partial Reconfiguration and how to manage its reconfiguration runtime overhead
1
Assignment
- Partial reconfiguration
6
Videos
- 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
4
Readings
- 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]
Xilnx Design Flows through years
1
Assignment
- Abstractions
1
Videos
- Xilnx Design Flows through years
Xilinx Partial Reconfiguration Design Flows
5
Videos
- 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
2
Readings
- 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]
Politecnico di Milano Partial Reconfiguration Research Initiatives
2
Assignment
- Politecnico di Milano Partial Reconfiguration Research Initiatives
- Design flows
3
Videos
- 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
5
Readings
- 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]
Towards distributed FPGA-based systems
1
Assignment
- Closing remarks and future directions
1
Videos
- Towards distributed FPGA-based systems
3
Readings
- 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]
Auto Summary
Discover the fundamentals of FPGA-based reconfigurable computing systems in this introductory course led by Coursera. Designed for anyone interested in adaptable hardware, the course covers the basics of FPGAs, their benefits, and programming methods. No technical background is required, making it accessible to all learners. Ideal for those seeking to enhance their knowledge and leverage FPGA technology in various domains, the course includes additional readings available through IEEE Xplore. With a duration of 2760 minutes, it offers flexible subscription options: Starter and Professional.

Marco Domenico Santambrogio