EEL6935 - Reconfigurable Computing 2 (Spring 2025)

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
M, Jan 13 Course info, Intro Slides
Start reading my SystemVerilog tutorial.
W, Jan 15 SystemVerilog: Combinational Logic (Basic constructs, 2x1 mux) Github repo for combinational logic
2x1 mux code
Design the circuit, then write the code (optional)
F, Jan 17 SystemVerilog: Combinational Logic (Basic constructs, 4-input priority encoder) 4-input priority encoder
Article explaining "unique" keyword
W, Jan 22 SystemVerilog: Combinational Logic (Parameterized priority encoder, adder) Parameterized priority encoder
Adder code
F, Jan 24 SystemVerilog: Combinational Logic, Cont. (Mult, ALU)
Multiplier code
ALU code
M, Jan 27 SystemVerilog: Structural Architectures (4x1 mux, ripple-carry adder, delay)
Github repo for structural architectures
You Can (and Should) Write Recursive RTL Code
You Can (and Should) Write Recursive RTL: Part 2
W, Jan 29 SystemVerilog: Sequential Logic
Github repo for sequential logic
Blocking vs. Non-blocking assignments
Crafting Clean Reset Logic
Sequential logic example
Schematic of architectures
F, Jan 31 SystemVerilog: Sequential Logic, Cont.
M, Feb 3 SystemVerilog: Sequential Logic, Cont.
SystemVerilog: Finite State Machines
Github repo for FSMs
FSM Design & Synthesis using SystemVerilog
W, Feb 5 Lab 1 (See Canvas)
SystemVerilog: Finite State Machines, Cont.
F, Feb 7 SystemVerilog: Finite State Machines, Cont.
M, Feb 10 SystemVerilog: Finite State Machines and Datapaths (FSMDs) Github repo for FSMs + Datapaths
W, Feb 12 SystemVerilog: Finite State Machines and Datapaths, Cont. (FSM+Ds)
F, Feb 14 SystemVerilog: Finite State Machines and Datapaths, Cont. (FSM+Ds)
Design-space exploration for throughput, latency, and area
M, Feb 17 SV testbenches: basic examples
Github repo for SV testbenches (see basics section)
W, Feb 19 SV testbenches: race conditions
SV "gotchas"
Race Conditions: The Root of All Verilog Evil
SystemVerilog Event Regions, Race Avoidance & Guidelines
Race condition examples
Github repo for SV "gotchas"
F, Feb 21 Lab 2
SV testbenches: race conditions, cont.
SV testbenches: basics, cont.
M, Feb 24 SV testbenches: race conditions, cont.
SV testbenches: basics, cont.
W, Feb 26 SV testbenches: basics, cont.
SV testbenches: assertions, sequences, implication
Github repo for assertions (see assertions section)
Doulos assertions tutorial
F, Feb 28 SV testbenches: assertions, sequences, implication, cont. Github repo for assertions (see assertions section)
M, Mar 3 Midterm Review
W, Mar 5 SV testbenches: assertions, sequences, implication, cont.
F, Mar 7 Midterm
M, Mar 10 SV testbenches: assertions, sequences, implication, cont.
W, Mar 12 SV testbenches: assertions, cont.
F, Mar 14 SV testbenches: coverage, cover properties, cover groups/points Github repo (see coverage and CRV section)
M, Mar 24 SV testbenches: constrained-random verification
W, Mar 26 SV testbenches: Universal Verification Methodology (UVM) intro (basics) Intro example
F, Mar 28 SV testbenches: Universal Verification Methodology (UVM) intro (agents) Agent and coverage example
M, Mar 31 SV testbenches: Universal Verification Methodology (UVM) intro (tests, sequences, environments) Example
W, April 2 SV testbenches: Universal Verification Methodology (UVM), cont.
Lab 4
Example 1
Example 2
F, April 4 Lab 4, Cont.
Timing Optimization: background, common strategies
Background video
Github repo for timing optimization (includes slides)
M, April 7 Timing Optimization: common strategies Timing optimization strategies video
W, April 9 Timing Optimization: Quartus timing analyzer overview, add tree example Timing analyzer overview
Add tree example
F, April 11 Timing Optimization: timer examples, reset reduction Timer example 1
Timer example 2
Reset reduction example
M, April 14 Timing Optimization: multi-cycle paths, counter Multi-cycle paths
Counter
FSM(D) tips slides
W, April 16 Timing Optimization: register duplication, reset tree, 3-input adder Register duplication example
Reset tree example
3-input adder
F, April 18 Timing Optimization: add/sub, RAMs Add/sub example
M, April 21 Timing Optimization: RAMs, cont.
W, April 23 Timing Optimization: FIFOs
Misc UVM

SystemVerilog Resources