ECE 545
Digital System Design with VHDL

Fall 2024

Time:

Tuesday, 7:20-10:00 PM
Enterprise Hall, room 275

Instructor:

Kris Gaj

Email:

kgaj@gmu.edu

Office hours:

Face-to-face: Tuesdays, 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.



TA:

Kamyar Mohajerani

Office hours:

For section DL1: Mondays, 5:00-6:00 PM. For section 001: Tuesdays, 5:00-6:00 PM, and by appointment.

Email: 

mmohajer@gmu.edu

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/27/2024
  2. Digital Logic Refresher - Combinational Logic.    09/03/2024
  3. Digital Logic Refresher - Sequential Logic.    09/10/2024
  4. RTL Design Methodology - Part A.    09/17/2024
  5. RTL Design Methodology - Part B.    09/24/2024
  6. VHDL Fundamentals. Dataflow Modeling in VHDL.    10/01/2024
  7. Testbenches.    10/08/2024
  8. VHDL Description of Basic Combinational Building Blocks.    10/15/2024
  9. Midterm Exam.    10/22/2024
  10. VHDL Description of Basic Sequential Building Blocks. Poor Design Practices & Their Remedies. 10/29/2024
  11. Modeling of Circuits with Regular Structure. Timing Analysis.    11/12/2024
  12. Solutions to the Midterm Exam. Design of Controllers - Part A.    11/19/2024
  13. Design of Controllers - Part B.    11/26/2024
  14. VHDL-2008. High-Level Synthesis. Software/Hardware Codesign.    12/03/2024
  15. Final Exam (7:30-10:15 PM).    12/12/2023

Project Rules

In consultation with the instructor, you will have the 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

Homework 3, due Sunday, October 6, 2024, 11:59 PM

Homework 2, due Saturday, September 28, 2024, 11:59 PM

Homework 1, due Sunday, September 15, 2024, 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 Blackboard.

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

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

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 A - Combinational Logic Building Blocks - cont., 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

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

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

 

Practice and Past Exams

2023:

Midterm Exam 2023

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

 

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