EEL6935 - Reconfigurable Computing 2 (Spring 2022)

Announcements

Overview

The objectives of this course are to learn, understand, and extend existing design techniques for FPGAs and other reconfigurable devices. Specific goals include gaining experience with advanced pipelining strategies, techniques for creating scalable, high-frequency pipelines, experience with FPGA virtualization strategies and high-level synthesis tools, while also evaluating FPGA application studies in embedded and high-performance domains.

Course Information

Lectures


Date Topic Slides/Reading Material
W, Jan 5 Course info, Intro to RC Slides
Start reading my SystemVerilog tutorial.
F, Jan 7 SystemVerilog: Combinational Logic (Basic constructs, 2x1 mux) Github Repo
M, Jan 10 SystemVerilog: Combinational Logic, Cont. (2x1 mux, 4-input priority encoder)
W, Jan 12 SystemVerilog: Combinational Logic, Cont. (Parameterized priority encoder)
F, Jan 14 SystemVerilog: Combinational Logic, Cont. (Adder)
M, Jan 17 Holiday
W, Jan 19 SystemVerilog: Combinational Logic, Cont. (Multiplier, ALU)
F, Jan 21 SystemVerilog: Combinational Logic, Cont. (ALU, Misc.)
SystemVerilog: Structural Architectures
Github repo for structural architectures
M, Jan 24 SystemVerilog: Sequential Logic
Github repo for sequential logic
Blocking vs. Non-blocking assignments
W, Jan 26 SystemVerilog: Sequential Logic, Cont.
F, Jan 28 SystemVerilog: Finite State Machines
Github repo for FSMs
FSM Design & Synthesis using SystemVerilog
M, Jan 31 SystemVerilog: Finite State Machines, Cont.
W, Feb 2 SystemVerilog: Finite State Machines and Datapaths (FSMDs) Github repo for FSMs + Datapaths
F, Feb 4 SystemVerilog: FSMDs, FSM+Ds
M, Feb 7 SystemVerilog: FSMDs, FSM+Ds, Cont.
W, Feb 9 SystemVerilog: FSM+Ds, Cont.
F, Feb 11 SystemVerilog: FSM+Ds, Cont.
if/case generate
M, Feb 14 SystemVerilog: for generate, unpacked arrays, parameter verification
W, Feb 16 SystemVerilog: parameter verification, gotchas Github repo for SV gotchas
F, Feb 18 Midterm 1 Review
M, Feb 21 Lab servers
SV testbenches: basic mux example
Information on using lab servers
Github repo for basic testbenches
W, Feb 23 SV testbenches: basic examples, race conditions Race condition examples
F, Feb 25 Midterm 1
M, Feb 28 Midterm 1 Solution
SV testbenches: basic examples, race conditions, cont.
W, Mar 2 SV testbenches: reset race conditions, basic register testbench.
F, Mar 4 SV testbenches: assertions, implication Github repo
Doulos assertions tutorial
M, Mar 14 SV testbenches: assertions, implication, cont.
W, Mar 16 SV testbenches: assertions, implication, cont.
F, Mar 18 SV testbenches: assertions, implication, cont.
SV testbenches: coverage (cover properties)
Coverage examples
M, Mar 21 SV testbenches: coverpoints, covergroups
W, Mar 23 SV testbenches: constrained-random verification (CRV) CRV examples
F, Mar 25 SV testbenches: constrained-random verification (CRV), Cont.
M, Mar 28 SV testbenches: constrained-random verification (CRV), Cont.
W, Mar 30 SV testbenches: constrained-random verification (CRV), Cont.
F, April 1 Lab 2
UVM
Timing analysis background
UVM tutorial
UVM Hello World
EDA Playground UVM Examples
Github repo for timing optimization (includes slides)
M, April 4 Timing optimizations Slides
W, April 6 Timing optimizations, cont.
Timing analyzer tutorial
F, April 8 Timing analyzer tutorial, cont.
Timing optimization examples
M, April 11 Timing optimization examples
W, April 13 Timing optimization examples
F, April 15 Timing optimization examples
Lab 3
M, April 18 Final Review
M, April 20 Scalable Design Strategies

SystemVerilog Resources