All courses
EMB 525
Term 2
3 credits
Hardware/Software Co-Design with FPGAs
This course explores the principles and practices of hardware/software co-design on System-on-Chip (SoC) FPGAs. Students will learn to leverage high-level synthesis, HDL, and AXI interfaces to create custom accelerators, optimize system partitioning, and address critical design challenges like timing closure and verification. The curriculum focuses on practical application in embedded systems development.
Course outline
Lectures, virtual labs, and graded assignments — completed in your browser.
01Foundations of SoC FPGAs and Co-Design Paradigmslecture
02Refreshing HDL: Verilog/VHDL for FPGA Designlecture
03High-Level Synthesis: Bridging Software to Hardwarelecture
04Crafting Custom Accelerators with HLSlecture
05AXI Protocol: The Backbone of SoC Communicationlecture
06AXI Integration: Connecting IP Blocks and Processorslecture
07Software's Hardware View: Interfacing Processors and Peripheralslecture
08Efficient Memory Access and Dataflow in Co-Designlecture
09Strategic Partitioning: Deciding Hardware vs. Softwarelecture
10Maximizing Performance: Optimization in Co-Designed Systemslecture
11Achieving Timing Closure: Constraints and Analysislecture
12Comprehensive Verification of Co-Design Systemslecture
13Debugging Complex Hardware/Software Interactionslecture
14Co-Design Project Showcase and Emerging Trendsassignment
Syllabus
Week 1: Introduction to SoC FPGAs and Co-Design Principles Week 2: Review of Digital Design and HDL (Verilog/VHDL) Week 3: Introduction to High-Level Synthesis (HLS) for FPGAs Week 4: Designing Custom Accelerators with HLS Week 5: AXI Interface Fundamentals and Protocol Week 6: Integrating Custom IP with AXI Interconnect Week 7: Processor-in-the-Loop and Hardware/Software Interface Week 8: Memory Systems and Data Transfer Optimization Week 9: Hardware/Software Partitioning Strategies Week 10: Performance Analysis and Optimization Techniques Week 11: Timing Closure and Design Constraints Week 12: Verification Methodologies for Co-Design Week 13: Debugging Hardware/Software Systems on FPGAs Week 14: Project Presentations and Advanced Topics