ECE 545
Digital System Design with VHDL

Fall 2023


Tuesday, 7:20-10:00 PM
Nguyen Engineering Building, room 2608


Kris Gaj


Office hours:

Face-to-face: Tuesdays, 6:00-7:00 PM, Fridays, 5:00-6:00 PM, or by appointment, ENGR 3225.
Using Zoom: Please send an e-mail request or private Piazza request, including your availability in the form of a list of days and time slots suitable for you. I will select one particular day and starting time of the meeting, and I will send you the corresponding Zoom link. During the conference call, please make sure to have your camera on and the ability to share your screen.


Dilip Epparapalli

Office hours:

Tuesdays, 3:30-5:00PM, and Thursdays, 11:30 AM-1:00 PM, ENGR 3203.


Course Syllabus

Please submit all your homework and project reports using Blackboard by going to

Please use Piazza instead of e-mail for asking questions related to this class 

Course Description

Introduces the design of complex digital systems using hardware description languages. Teaches design methodologies which partition a system into a datapath and controller. Focuses on synthesizable RTL VHDL code for digital circuit design using dataflow, structural, and behavioral coding styles. Introduces VHDL simulation and verification, and FPGA synthesis, placement, routing, timing analysis, and performance optimization. 

Prerequisites: Graduate Standing. No official course prerequisite is required, but an undergraduate background in digital logic design is strongly recommended.

Required Textbooks

Pong P. ChuRTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability, Wiley-IEEE Press, 2006.

Supplementary Textbooks

Ricardo Jasinski, Effective Coding with VHDL: Principles and Best Practice, 1st Edition, The MIT Press, 2016.

Ryan Kastner, Janarbek Matai, and Stephen Neuendorffer, Parallel Programming for FPGAs: The HLS Book, 2018.

Software Packages Used in This Class

  • Xilinx Vivado

FREE versions can be installed on your laptops and home workstations.

Course Outline (subject to possible modifications):

  1. Organization of the Course. Introduction to FPGA Technology. Project.   08/22/2023
  2. Digital Logic Refresher - Combinational Logic.    08/29/2023
  3. Digital Logic Refresher - Sequential Logic.    09/05/2023
  4. RTL Design Methodology - Part 1.    09/12/2023
  5. RTL Design Methodology - Part 2.    09/19/2023
  6. VHDL Fundamentals. Dataflow Modeling in VHDL.    09/26/2023
  7. Testbenches.    10/03/2023
  8. VHDL Description of Basic Combinational Building Blocks.    10/17/2023
  9. VHDL Description of Basic Sequential Building Blocks. Poor Design Practices & Their Remedies.    10/24/2023
  10. Midterm Exam. 10/31/2023
  11. Modeling of Circuits with Regular Structure.    11/07/2022
  12. Solutions to the Midterm Exam. Design of Controllers - Part A.    11/14/2023
  13. Design of Controllers - Part B.    11/21/2023
  14. VHDL-2008. High-Level Synthesis. Software/Hardware Codesign.    11/28/2023
  15. Final Exam (7:30-10:15 PM).    12/12/2023

Project Rules

In consultation with the instructor, you will have an option to select between

  1. One semester-long project
    1. Can be done in groups of 1-2 students
    2. Different for each group
    3. Proposed by the instructor or students
    4. Based on the specification developed by members of the group and approved by the instructor
    5. Can be related to your MS Thesis, Ph.D. Dissertation, or Senior Design Project
    6. Can be combined with a project in ECE 646 Applied Cryptography, taught by Dr. Kaps
    7. Can include practical experiments performed using FPGA or FPGA SoC boards
    8. Best projects rewarded with bonus points
  2. Three smaller projects
    1. Done individually
    2. The same for all students choosing this option
    3. Specified by the instructor
    4. Each about 2-3 weeks long
    5. May be related to one another
    6. Contest for the best design
      1. Only fully verified designs eligible for an award
      2. Designs ranked in terms of speed (design with the shortest execution time ranked first).

This year's projects proposed by the instructor may involve implementing basic building blocks of

  • Post-Quantum Cryptography
  • Lightweight Cryptography

These projects will support standardization organizations, such as the National Institute of Standards and Technology (NIST), in the selection of new cryptographic standards.


Project Resources

Deliverables for Type 1 Projects

Detailed Block Diagrams

Reduced Complexity Block Diagrams

Examples of GMU Designs - LWC Candidates

Examples of GMU Designs - PQC Building Blocks

Examples of GMU Designs - Hash Functions

Project Recommendations



Homework 4b, required for all students; due Thursday, October 26, 2023, 11:59 PM

Homework 4a, optional for students with extensive experience in using Xilinx Vivado; recommended to be completed (by other students) by Thursday, October 19, 2023, 11:59 PM

Homework 3, due Sunday, October 1, 2023, 11:59 PM

Homework 2, due Sunday, September 17, 2023, 11:59 PM

Homework 1, due Sunday, September 10, 2023, 11:59 PM

Homework assignments will be posted gradually here, at least 7 days before a given assignment is due.


Homework Rules

Please submit all solutions using the Blackboard section ECE-545-001, ECE-499-001 (Fall 2023).

All solutions should be submitted in electronic form. When preparing your hand-drawn/hand-written solutions for submission, please use either a scanner app on your smartphone or an "old-fashioned" scanner (often integrated with your printer). Please do not submit photos; they are usually hard to read and take a lot of space. You can also use a tablet, such as an iPad, to directly write down and save your solutions in electronic form.

Each student can have an automatic 72-hour extension on one assignment (no questions asked) as long as the student informs the instructor in writing.

Any additional late assignments will earn a flat 20% grade deduction as long as they are completed within 7 days of the deadline.

For selected assignments, you will have an opportunity to submit a revised version of your solutions due a week after receiving your graded homework. Your final score for the assignment will be an average of your first and second scores.



Follow-Up Courses.

ECE 646 Project Presentations, Monday, December 4, 4:30-10:00 PM; Session on Post-Quantum Cryptography, 8:20-10:00 PM

Exam Date and Project Deadlines.

Lecture 17: Software/Hardware Codesign. High-Level Synthesis. [pdf-1, pdf-6]

Lecture 16: VHDL-2008 : see Piazza under Resources => Resources => Lecture Notes

Lecture 15: Design of Controllers - Part B. [pdf-1, pdf-6]

Lecture 14: Design of Controllers - Part A. [pdf-1, pdf-6]

Lecture 13: Modeling of Circuits with Regular Structure. [pdf-1, pdf-6]

Lecture 12: RTL VHDL Code. [pdf-1, pdf-6]

Lecture 11: VHDL Description of Basic Sequential-Circuit Building Blocks. Poor Design Practices & Their Remedies. [pdf-1, pdf-6]

Lecture 10: VHDL Description of Basic Combinational-Circuit Building Blocks. [pdf-1, pdf-6]

Lecture 9: Dataflow Modeling in VHDL. [pdf-1, pdf-6]

Lecture 8: Testbenches. [pdf-1, pdf-6]

Lecture 7: VHDL Fundamentals. [pdf-1, pdf-6]

Lecture 6: RTL Design Methodology - Part B. [pdf-1, pdf-6]

Lecture 5: Timing Analysis. Part 1. [pdf-1, pdf-6]

Lecture 4: RTL Design Methodology - Part A. [pdf-1, pdf-6]

Lecture 3: Digital Logic Refresher. Part B - Sequential Logic Building Blocks. [pdf-1, pdf-6]

Lecture 2: Digital Logic Refresher. Part A - Combinational Logic Building Blocks. [pdf-1, pdf-6]

Lecture 1: Organization of the Course. Introduction to FPGA Technology. Project. [pdf-1, pdf-6]

Viewgraphs will be posted gradually here.


Reference Materials



VHDL Instructions: Templates & Examples

OpenCores HDL Modeling Guidelines



Top 10 C Language resources that will turn you into a better programmer

C Tutorial


Recommended Block Diagram Editors


Past Course Web Pages

ECE 545:   Fall 2022  Fall 2021  Fall 2020  Fall 2019  Fall 2018  Fall 2017  Fall 2015 

ECE 448:   Spring 2023  Spring 2021  Spring 2020  Spring 2019  Spring 2018  Spring 2016 


Practice and Past Exams


Midterm Exam 2023

Solutions to the Midterm Exam 2023 - based on the solutions by Stewart Schuler



Final Exam 2022

Solutions to the Final Exam 2022

Midterm Exam 2022

Solutions to the Midterm Exam 2022 Problem 1



Final Exam 2021

Solutions to the Final Exam 2021

Midterm Exam 2021

Solutions to the Midterm Exam 2021



Final Exam 2020

Solutions to the Final Exam 2020 - Problem 1, Task 2

Midterm Exam 2020

Solutions to the Midterm Exam 2020



Final Exam 2019

Midterm Exam 2019

Solutions to the Midterm Exam 2019



Final Exam 2018

Solutions to the Final Exam 2018:


Midterm Exam 2018

Solutions to the Midterm Exam 2018


Final Exam 2017

Solutions to the Final Exam 2017

Midterm Exam 2017

Solutions to the Midterm Exam 2017


Final Exam 2015

Midterm Exam 2015


Final Exam 2014 + Answer Sheet for Problem 3 + Answer Sheet for Problem 4

Solutions to the Final Exam 2014

Midterm Exam 2014 + Fill-in-the-blanks Problem 2