NOC:Mapping Signal Processing Algorithms to Architectures


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