Lecture 1 - Introduction: Objectives and Pre-requisites

Lecture 2 - Review of digital logic

Lecture 3 - Timing and Power in digital circuits

Lecture 4 - Implementation Costs and Metrics

Lecture 5 - Example: Audio processing

Lecture 6 - Example: AlexNet

Lecture 7 - Architecture cost components

Lecture 8 - Examples of Architectures

Lecture 9 - Multi-objective Optimization

Lecture 10 - Number representation

Lecture 11 - Scientific notation and Floating point

Lecture 12 - Basic FIR filter

Lecture 13 - Serial FIR filter architectures

Lecture 14 - Simple programmable architecture

Lecture 15 - Block diagrams and SFGs

Lecture 16 - Dataflow Graphs

Lecture 17 - Iteration period

Lecture 18 - FIR filter iteration period

Lecture 19 - IIR filter iteration period

Lecture 20 - Computation Model

Lecture 21 - Constraint analysis for IPB computation

Lecture 22 - Motivational examples for IPB

Lecture 23 - General IPB computation

Lecture 24 - Sample period calculation

Lecture 25 - Parallel architecture

Lecture 26 - Odd-even register reuse

Lecture 27 - Power consumption

Lecture 28 - Pipelining

Lecture 29 - Pipelining FIL Filter

Lecture 30 - Time-invariant Systems

Lecture 31 - Valid Pipelining Examples

Lecture 32 - Feedforward Cutsets

Lecture 33 - Balanced Pipeline

Lecture 34 - Retiming basic concept

Lecture 35 - Example and uses of retiming

Lecture 36 - Resource sharing: adder example

Lecture 37 - Changing iteration period

Lecture 38 - Hardware assumptions and constraint analysis

Lecture 39 - Mathematical formulation

Lecture 40 - Examples with formulation

Lecture 41 - Example: Biquad filter

Lecture 42 - Hardware architecture

Lecture 43 - Review biquad folding sets

Lecture 44 - Complete biquad hardware

Lecture 45 - DEMO: FFT in Vivado HLS

Lecture 46 - DEMO: FFT synthesis

Lecture 47 - Obtaining a folding schedule

Lecture 48 - ASAP schedule

Lecture 49 - Utilization Efficiency

Lecture 50 - ALAP schedule

Lecture 51 - Iteration period bound and scheduling

Lecture 52 - Retiming for scheduling

Lecture 53 - Blocked schedules

Lecture 54 - Overlapped schedules

Lecture 55 - Improved blocked schedule

Lecture 56 - Allocation, Binding and Scheduling

Lecture 57 - DEMO: Analyze FFT implementation

Lecture 58 - DEMO: FFT interface

Lecture 59 - Scheduling: problem formulation

Lecture 60 - Example: differential equation solver

Lecture 61 - Heuristic approaches to scheduling

Lecture 62 - Mathematical formulation

Lecture 63 - ILP formulation

Lecture 64 - List scheduling

Lecture 65 - Hardware model

Lecture 66 - Force Directed Scheduling

Lecture 67 - DEMO: HLS on FFT

Lecture 68 - DEMO: FFT Simulation and Optimization

Lecture 69 - DEMO: CPU interfacing

Lecture 70 - Software Compilation

Lecture 71 - Optimization Examples

Lecture 72 - Loop optimizations - 1

Lecture 73 - Loop optimizations - 2

Lecture 74 - Loop optimizations - 3

Lecture 75 - Software pipelining - 1

Lecture 76 - Software pipelining - 2

Lecture 77 - FFT Optimization

Lecture 78 - Background: CPUs and FPGAs

Lecture 79 - Demo: Vivado setup

Lecture 80 - Demo: Vivado HLS FFT IP Export

Lecture 81 - Demo: Vivado ILA and VIO on hardware

Lecture 82 - Demo: FFT on FPGA board

Lecture 83 - Demo: Simulating SoC and SDK

Lecture 84 - Background: Understanding ELF files

Lecture 85 - On-chip communication basics

Lecture 86 - Many-to-Many communication

Lecture 87 - AXI bus handshaking

Lecture 88 - AXI bus (Continued...)

Lecture 89 - Demo: Microblaze processor on FPGA

Lecture 90 - Demo: Performance counter AXI peripheral

Lecture 91 - Demo: HW accelerator for FPGA

Lecture 92 - DMA and arbitration

Lecture 93 - Network-on-chip basics

Lecture 94 - NoC - Topologies and metrics

Lecture 95 - NoC - Routing

Lecture 96 - NoC - Switching and flow control

Lecture 97 - Systolic Arrays - Background

Lecture 98 - Systolic Arrays - Examples

Lecture 99 - CORDIC algorithm

Lecture 100 - Parallel implementation of FIR filters

Lecture 101 - Unfolding Transformation

Lecture 102 - Lookahead Transformation

Lecture 103 - Introduction to GPUs and Matrix multiplication