ECE 545
Digital System Design with VHDL

Fall 2022

Time:

Monday, 7:20-10:00 PM
Music Theater Building, room 1002

Instructor:

Kris Gaj

Email:

kgaj@gmu.edu

Office hours:

Face-to-face: Mondays, 6:00-7: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.

Course Syllabus

Please submit all your homework and project reports using Blackboard by going to http://mymason.gmu.edu

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/2022
  2. Digital Logic Refresher - Combinational Logic.    08/29/2022
  3. Digital Logic Refresher - Sequential Logic.    09/12/2022
  4. RTL Design Methodology - Part 1.    09/19/2022
  5. RTL Design Methodology - Part 2.    09/26/2022
  6. VHDL Fundamentals.   10/03/2022
  7. Testbenches.    10/11/2022
  8. Dataflow Modeling in VHDL. VHDL Description of Basic Combinational Building Blocks.    10/17/2022
  9. VHDL Description of Basic Sequential Building Blocks. Poor Design Practices & Their Remedies.    10/24/2022
  10. Midterm Exam. 10/31/2022
  11. Modeling of Circuits with Regular Structure. Timing Analysis.    11/07/2022
  12. Solutions to the Midterm Exam. Class Exercise on Timing Analysis. Design of Controllers - Part A.    11/14/2022
  13. Design of Controllers - Part B.    11/21/2022
  14. FPGA Memories. VHDL-2008. Follow-Up Courses.    11/28/2022
  15. Final Exam (7:30-10:15 PM).    12/12/2022

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

Using Vivado for Synthesis, Implementation, and Timing Analysis

 

Homework

Homework 5 - bonus, due Wednesday, November 30, 2022, 11:59 PM

Homework 4b, required for all students; due Saturday, November 5, 2022, 11:59 PM

Homework 4a + Related Testbenches [testbench_examples.zip], optional for students with experience in using Xilinx Vivado; recommended to be completed by Wednesday, November 2, 2022

Homework 3, due Saturday, October 8, 2022, 11:59 PM

Homework 2, due Wednesday, September 21, 2022, 11:59 PM

Homework 1, due Saturday, September 10, 2022, 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 (Fall 2022).

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.

 


Viewgraphs

Follow-Up Courses.

Remaining Deadlines.

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

Lecture 15: FPGA Memories. [pdf-1, pdf-6]

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

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

Midterm Exam - Problem 1

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

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

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

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

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

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

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

Homework 2, Problem 3 - discussion. [pdf-1]

Lecture 5: RTL Design Methodology - Part B. [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]

Lecture 1 Appendix: Quantum Computers and Cryptography. [pdf-1, pdf-6]

 

Viewgraphs will be posted gradually here.

 

Reference Materials

 

VHDL

VHDL Instructions: Templates & Examples

OpenCores HDL Modeling Guidelines

 

C

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 2021  Fall 2020  Fall 2019  Fall 2018  Fall 2017  Fall 2015 

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

 

Practice and Past Exams

2022:

Final Exam 2022

Solutions to the Final Exam 2022

Midterm Exam 2022

Solutions to the Midterm Exam 2022 Problem 1

 

2021:

Final Exam 2021

Solutions to the Final Exam 2021

Midterm Exam 2021

Solutions to the Midterm Exam 2021

 

2020:

Final Exam 2020

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

Midterm Exam 2020

Solutions to the Midterm Exam 2020

 

2019:

Final Exam 2019

Midterm Exam 2019

Solutions to the Midterm Exam 2019

 

2018:

Final Exam 2018

Solutions to the Final Exam 2018:

 

Midterm Exam 2018

Solutions to the Midterm Exam 2018

2017:

Final Exam 2017

Solutions to the Final Exam 2017

Midterm Exam 2017

Solutions to the Midterm Exam 2017

2015:

Final Exam 2015

Midterm Exam 2015

2014:

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