FPGA training module

This training module aims to introduce the students to the concept of FPGAs, programming them using a higher level language (C++) and synthesizing firmware. We use AMD/Xilinx platform. The duration of this training is 1 semester - 12 weeks (2 lectures per week). The detailed syllabus and series of lectures can be found below.

  • Course syllabus
  • Series of lectures :
    • Lecture 1 Introduction to FPGA and its architecture
    • Lecture 2 Domain Specific Accelerators
    • Lecture 3 LHC, CMS Level-1 Trigger, & FPGAs in HEP
    • Lecture 4 FPGA Architecture & its sub-components
    • Lecture 5 FPGA Processing: Scheduling, Pipelining & DataFlow
    • Lecture 6 Basic concepts of Hardware design & Introduction to digital gates
    • Lecture 7 Introduction to hardware description languages: Verilog
    • Lecture 8 More on Verilog
    • Lecture 9 Introduction to HLS & its setup
    • Lecture 10 First HLS program: steps to create an IP
    • Lecture 11 Review of synthesis output
    • Lecture 12 Data-types (arbitrary precision) & introduction to pragmas
    • Lecture 13 HLS Pragma: Interface
    • Lecture 14 HLS Pragma: Array_partition
    • Lecture 15 HLS Pragma: Array_reshape, Pipeline
    • Lecture 16 HLS Pragma: Dataflow, Allocation, Latency
    • Lecture 17 HLS Pragma: Stable, Inline, Unroll
    • more to be added soon…