Hardware and software Co-design
The course covers the design and development aspects of heterogeneous (hardware/software) digital systems. This course explores the process involved in defining system specification and how design space exploration can be done. Special focus is given on design quality and cost estimation, partitioning source description into different implementation domains, target code generation, interface synthesis and co-verification.
Topic 1: Introduction to hardware and software co-design
Introduction to System-on-chip
Topic 3: System Verilog Testbench and Interface Constructs
Topic 4: System Verilog DPI-C and HW/SW Co-Simulation
System Verilog enhancements of task and function
Modelling with System Verilog DPI-C
Topic 5: Introduction to Digital Design Optimization
Design alternatives for optimizations
Loop unrolling in mapping of iterative algorithm
Topic 6: Optimizing RTL Design for Area and Latency
Area optimization with serial processing
Topic 7: Optimizing RTL Design through Pipelining
Pipelining definition and concepts
Topic 8: Case study of RTL design optimizations
Topic 9: C-based High-level Synthesis
Topic 10: Design optimization for C-based HLS
Summary of optimization directives
Topic 11: HLS case studies