EEL 4783: HDL in Digital System Design
Course:
Spring 2024. 3 credits.
Lectures: MW 12:00PM-1:15PM @ CB 307
Instructor Office Hours: MWF 4-5PM @ HEC439A
Course Instructor:
Mingjie Lin
Office: HEC 439A, Telephone: 407-882-2298
Email: mingjie@eecs.ucf.edu, Home Page: http://www.eecs.ucf.edu/~mingjie
TA: Sanjay Gandham (sanjaygandham@ucf.edu)
Course Description:
This course provides a systematic introduction
to the topic of HDL programming for designing embedded digital system.
It emphasizes the basic ideas, and the practical aspects of HDL programming with FPGA devices. In addition, this course presents techniques for modeling
hardware components
at different levels of abstraction
and many concepts including the various forms of expressing computations,
sequential and parallel implementations, control-flow and data-flow, control
dependency and data dependency, latency and throughput as well as the
architecture design space of hardware data paths, finite state machines. Specific topics
include:
• Basic concepts of HDL
• Veilog language and its usage.
• How to use Verilog to design large-scale and complicated digital systems.
• Identifying performance bottlenecks in a given
hardware architecture and optimize it by transformations on hardware components
• How to use logic simulation to analyze and verity a HDL design.
Prerequisites:
EEL 3342: Digital Logic Design
Minimally Required Skills:
Basic logic design and basic software programming skills.
Recommended Text:
“Advanced Digital Design with the Verilog HDL" (2nd Edition) Hardcover – January 31, 2010 by Michael D. Ciletti
Grading:
The distribution of weights for the exams, assignments, and projects is as
follows:
Midterm Exam |
30% |
Final Exam |
20% |
Final Project |
25% |
Assignments |
25% |
Students
are encouraged to participate in class.
Honor System Policy:
Schedule (minor changes possible throughout the semester )
Event | Topics | Notes | Assignments |
HDL/Verilog Fundamentals |
|||
Lecture 1 | Introduction (Objectives, Expectations, Logistics) | ||
Lecture 2 |
|||
Lecture 2+ |
Intro to VHDL | ||
Lecture 3 |
Logic Design with Behavioral Models |
||
Lecture 3+ | Carry Lookahead Adder | ||
Lecture 4 | Logic Design with Behavioral Models (cont.) | ||
Lecture 5 | More Complex Behavioral Models | ||
Lecture 6 |
More Examples |
||
Emerging/Alternative HDL Languages |
|||
Lecture 8 |
Intro to SystemC (Part 1) |
||
Lecture 9 |
Intro to SystemC (Part 2) | pdf |
|
Lecture 10 | Intro to SystemVerilog | ||
Emerging HDL/Verilog Techniques | |||
Lecture 11 |
High Level Synthesis |
pdf |
|
Lecture 12 |
Final Review |
pdf |
|
Lecture 15 |
|||
Advanced HDL/Verilog Optimizations
|
|||
Lecture 16 |
Coding for HLS |
||
Lecture 17 |
Architecting for Speed |
||
Lecture 18 |
Architecting for Area |
||
Lecture 19 |
Architecting for Power |
||
Lecture 20 |
|||
Final Exam |