ECE 448 in Spring 2023

FPGA Design with VHDL

Tuesday, Thursday, 10:30-11:45 AM
Horizon Hall 2016

 

Quick Links

Organization

Lecture

Lab

Instructor

Kris Gaj
The Nguyen Engineering Building, room 3225
e-mail:  kgaj (at) gmu.edu

Please start a subject of your e-mail from "ECE 448:"
 

Teaching Assistant

Dilip Epparapalli
e-mail: depparap (at) gmu.edu

Please start a subject of your e-mail from "ECE 448:"

Office Hours

Dilip Epparapalli:

Kris Gaj:

Please send an e-mail request or private Piazza request, including the day and time slot suitable for you.

Grading

Lab assignments:   40%
Lab exercises:     4%
Midterm exam for the lab:  15%
Quizzes and homework:    6%
Midterm exam for the lecture:  10%
Final exam:  25%
Class & Piazza activity:    5% bonus

Textbooks

Required textbooks

Pong P. Chu, FPGA Prototyping by VHDL Examples: Xilinx MicroBlaze MCS SoC , Wiley, 2017, 2nd edition, ISBN-13: 978-1119282747.

Recommended textbooks

  1. Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design, McGraw-Hill, 2008  © 3rd edition.
  2. Pong P. ChuRTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability, Wiley-IEEE Press, 2006.
  3. Ricardo Jasinski, Effective Coding with VHDL: Principles and Best Practice, The MIT Press, 2016  © 1st edition.

Lecture Slides

Lecture 25 - RTL Design Methodology. [pptx, pdf]

Lecture 24 - Lab 6 Hints. Timing Analysis. [pptx, pdf]

Lecture 23 - The FPro Video Subsystem: On-Screen-Display (OSD) Core and Its Driver. [pptx, pdf]

Lecture 22 - Video Cores. [pptx, pdf]

Lecture 21 - The FPro Video Subsystem: VGA Display & Frame Buffer Core. [pptx, pdf]

Lecture 20 - Software/Hardware Co-design Using the FPro System. Part 3: I/O Register Map and a Wrapper of the Sorting Core. [pptx, pdf]

Lecture 19b - I/O Register Map of an MMIO Core. Part 2: Simplified Address Decoding. [pptx, pdf]

Lecture 19a - I/O Register Map of an MMIO Core. Part 1: Exact Address Decoding. [pptx, pdf]

Lecture 18 - Software/Hardware Co-design Using the FPro System. Part 2: Sorting Core. [pptx, pdf]

Lecture 17 - Software/Hardware Co-design Using the FPro System. Part 1: Sorting Core. [pptx, pdf]

Lecture 16 - Drivers of the LED-MUX Core & Debouncing Core. [pptx, pdf]

Lecture 15 - Bare Metal System Software Development. [pptx, pdf]

Lecture 14 - Introduction to the FPro System. [pptx, pdf]

Midterm Exam for the Lecture - Solutions. [pptx, pdf]

Lecture 13 - Programmable Logic Memories. Part 1. [pptx, pdf]

Lecture 12 - Modeling of Circuits with Regular Structure. [pptx, pdf]

Lecture 11 - Review for the Midterm Exam. [pptx, pdf]

Lecture 10 - Finite State Machines. State Diagrams, Algorithmic State Machine (ASM) Charts, and VHDL Code. [pptx, pdf]

Lecture 9 - Introduction to Lab 4. The LightsOut Puzzle. [pptx, pdf]

Lecture 8 - Introduction to Basys 3. Using Seven-Segment Displays, LEDs, Switches, and Buttons. [pptx, pdf]

Lecture 7b - Sequential-Circuit Building Blocks - Part 2. Mixing Description Styles. [pptx, pdf]

Lecture 7a - Sequential Logic Refresher Quiz. [pptx, pdf]

Lecture 6 - Sequential-Circuit Building Blocks - Part 1. Timing Analysis. [pptx, pdf]

Lecture 5 - Combinational-Circuit Building Blocks - Part 2. [pptx, pdf]

Lecture 4 - Combinational-Circuit Building Blocks - Part 1. [pptx, pdf]

Lecture 3 - Examples of Testbenches [pptx, pdf]

Lecture 2 - Introduction to Testbenches [pptx, pdf]

Lecture 2 - HDL Refresher Quiz [pptx, pdf]

Lecture 1 - Objectives, Scope, and Organization of the Course [pptx, pdf]

Posted gradually, typically one day before a given lecture.

See Course Webpage from Spring 2021 for slides from one of the previous years. 

Homework

    Homework 1 - due Sunday, May 14, 11:59pm

    Homework 2 - due Sunday, May 14, 11:59pm

Labs

General Laboratory Rules

Lab Assignments

Please submit all solutions using Blackboard.

Lab Assignment 6: The LightsOut Puzzle with the Display on a Monitor Screen

Lab Assignment 5: Using an FPro SoC with Standard and Custom Hardware IP Cores: Fast Sorting. (revised on April 8, 2023)

Lab Assignment 4: The LightsOut Puzzle.

Lab Assignment 3: Implementing and Synthesizing Sequential Logic in VHDL.

Lab Assignment 2: Implementing and Synthesizing Combinational Logic in VHDL.

Lab Assignment 1: Developing and Using Effective Testbenches.

The specifications of lab assignments will be posted gradually here on the days when each lab assignment is introduced for the first time (typically Fridays).

Lab Slides & Examples

Lab Lecture 6: Implementing the LightsOut Puzzle with the display on a monitor screen.

Lab Lecture 5: Developing an FPro SoC with standard & custom hardware IP cores.

Lab Lecture 4: FPGA Design Flow. Using Seven-Segment Displays, LEDs, Buttons, and Switches. Design of Controllers Using ASM Charts.

Lab Lecture 3: Implementing and Synthesizing Sequential Logic in VHDL.

Lab Lecture 2: Implementing and Synthesizing Combinational Logic in VHDL.

Lab Lecture 1: Developing Effective Testbenches. Simulation using Xilinx Vivado Simulator.

Lab slides and examples will be posted gradually here on the days when each lab assignment is introduced for the first time (typically Fridays).

Software

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

Hardware

Useful References

VHDL

VHDL Instructions: Templates & Examples

VHDL-2008: Why It Matters

OpenCores Coding Guidelines

The Low Carb VHDL Tutorial - by Bryan Mealy

Frequently Asked Questions And Answers about VHDL (Part 1): General from comp.lang.vhdl

Frequently Asked Questions And Answers about VHDL (Part 4): VHDL Glossary from comp.lang.vhdl

C

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

C Tutorial

 

Past Exams

Past Lab Exams

Lab Midterm Exam from Spring 2023 - Monday Section
Solutions by Dilip Epparapalli: Deliverables 
Solutions by Paul Bentz: Deliverables 

Lab Midterm Exam from Spring 2023 - Friday Section
Solutions by Dilip Epparapalli: Deliverables 

Lab Midterm Exam from Spring 2021 - Tuesday Section
Solutions by Javad Bahrami: Deliverables 

Lab Midterm Exam from Spring 2021 - Wednesday Section
Solutions by Robert DeCoito: Deliverables 

Lab Midterm Exam from Spring 2021 - Friday Section
Solutions by Javad Bahrami: Deliverables 

Lab Midterm Exam from Spring 2020 - Tuesday Section
Solutions by Javad Bahrami: Source_files  Timing Waveform 1  Timing Waveform 2  Timing Waveform 3  Resource Utilization 

Lab Midterm Exam from Spring 2020 - Wednesday Section
Solutions by Jamil Al Kallas (with corrections and extensions by the instructors): Source_files  Timing Waveforms  Resource Utilization 

Lab Midterm Exam from Spring 2020 - Friday Section
Solutions by Timothy Bullock (with corrections and extensions by the instructors): Source_files  Timing Waveforms  Resource Utilization 

Lab Midterm Exam from Spring 2019 - Tuesday Section
Solutions by Kevin Riley: toplevel.vhd  testbench.vhd  Basys-3-Master.xdc  Functional Waveform  Timing Waveform  Midterm Report 

Lab Midterm Exam from Spring 2019 - Wednesday Section
Solutions by Spencer Lombardo: toplevel.vhd  datapath.vhd  asm.vhd  toplevel_tb.vhd  Functional Waveform  Timing Waveform  Timing Report 

Lab Midterm Exam from Spring 2016 - Monday Section
Solutions: Datapath.vhd  Controller.vhd  Statistics.vhd  testbench.vhd 

Lab Midterm Exam from Spring 2016 - Tuesday Section
Solutions: Reg.vhd  Counter.vhd  ram.vhd  Datapath.vhd  Controller.vhd  Sort.vhd  Sort_tb.vhd 

Lab Midterm Exam from Spring 2016 - Wednesday Section
Solutions: vrot.vhd  vrot_tb.vhd  sqrt_CORDIC.vhd  sqrt_CORDIC_tb.vhd 

Lab Midterm Exam from Spring 2014 - Monday Section
Solutions: up_counter.vhd  shiftn.vhd  datapath.vhd  controller.vhd  top.vhd  top_tb.vhd  func_sim_waveform.pdf

Lab Midterm Exam from Spring 2014 - Thursday Section
Solutions: regn.vhd  lfsr.vhd  counter.vhd  datapath.vhd  controller.vhd  midterm_thursday.vhd  midterm_thursday_tb.vhd  func_sim_waveform.pdf  solutions_to_tasks_4-6.pdf

Lab Midterm Exam from Spring 2013 - Wednesday Section
Solutions: regn.vhd  counter.vhd  lfsr.vhd  PISO.vhd  SIPO.vhd  midterm_wednesday.vhd  midterm_wednesday_TB.vhd  Functional_simulation_waveforms.pdf  Timing_simulations_waveforms_ISim.pdf  Timing_simulations_waveforms_Aldec.pdf  Tasks_4-6.pdf

Lab Midterm Exam from Spring 2013 - Thursday Section
Solutions: regn.vhd  counter.vhd  midterm_thursday.vhd  midterm_Thursday_TB.vhd  Functional_simulation_waveforms.pdf  Tasks_4-6.pdf

Lab Midterm Exam from Spring 2012 - Tuesday Section
Solutions: reg.vhd  shiftn.vhd  MidTerm_201.vhd  MidTerm_201_TB.vhd  Waveform.pdf  Report.pdf

Lab Midterm Exam from Spring 2012 - Thursday Section
Solutions: reg.vhd  shift1.vhd  shiftn.vhd  counter.vhd  datapath.vhd  controller.vhd  MidTerm_203.vhd  MidTerm_203_TB.vhd  Waveform.pdf  Report.pdf
 
Lab Midterm Exam from Spring 2011 - Monday Section
Solutions:  ma_ppd_pkg.vhd   ma_ppd.vhd   ma_ppd_tb.vhd
 
Lab Midterm Exam from Spring 2011 - Tuesday Section
 
Lab Midterm Exam from Spring 2011 - Wednesday Section
Solutions:   regn.vhd   AV4.vhd   AV4_test.vhd
 
Lab Midterm Exam from Spring 2011 - Thursday Section
Solutions:  regn.vhd  full_adder.vhd  half_adder.vhd  madd.vhd  avg.vhd  avg_tb.vhd
 
Lab Midterm Exam from Spring 2010 - Monday Section
Solutions:   dgs.vhd   dgs_tb.vhd
 
Lab Midterm Exam from Spring 2010 - Tuesday Section
Solutions:   int-comb.vhd   cic.vhd   cic_tb.vhd
 
Lab Midterm Exam from Spring 2010 - Wednesday Section
Solutions:   grain128_pkg.vhd   grain128.vhd   grain128_tb.vhd
 
Lab Midterm Exam from Spring 2010 - Thursday Section
Solutions:   systolic_block.vhd   systolic_mult.vhd   systolic_mult_tb.vhd
 
Lab Midterm Exam from Spring 2008 - Tuesday Section
Lab Midterm Exam from Spring 2008 - Wednesday Section
Lab Midterm Exam from Spring 2008 - Thursday Section

Lab Midterm Exam from Spring 2007 - Tuesday Section
Lab Midterm Exam from Spring 2007 - Wednesday Section
 




Past Midterm Exams for the Lecture

Midterm Exam from Spring 2023:
Text of the exam  Solutions

Midterm Exam from Spring 2021:
Text of the exam  Grading scheme  Solutions

Midterm Exam from Spring 2020:
Text of the exam for Group 1  Solutions for Group 1
Text of the exam for Group 2  Solutions for Group 2

Midterm Exam from Spring 2019:
Text of the exam for Group 1  Solutions for Group 1
Text of the exam for Group 2  Solutions for Group 2

Midterm Exam from Spring 2016:
Text of the exam  Answer sheet  Solutions

Midterm Exam from Spring 2015:
Text of the exam  Answer sheet   Solutions
Source Codes:  
Controller (Problems 1 & 4):   controller.vhd   controller_tb.vhd  
Variable Arithmetic Shifter Right (Problem 3): fixed_shifter_right.vhd   variable_shifter_right.vhd   variable_shifter_right_tb.vhd  

Midterm Exam from Spring 2014:
Text of the exam  

Midterm Exam from Spring 2013:
Text of the exam  Answer sheet   Solutions

Midterm Exam from Spring 2012
Solutions: Problem 1, Problem 2, Problem 3, Problem 4: piso.vhd, piso_inst.vhd

Midterm Exam from Spring 2011:    Group 1    Group 2    distribution of grades
Solutions for Group 1:  Problem 1, Problem 2: NFSR_1.vhd, F.vhd, NFSR_1_tb.vhd   Resource Utilization
Solutions for Group 2:  Problem 1, Problem 2: NFSR_2.vhd, F.vhd, NFSR_2_tb.vhd   Resource Utilization
 
Midterm Exam from Spring 2010
Solutions: Task 1: bsm.vhd   Task 2: bsm_tb.vhd  Task 3: solution
 

Past Final Exams

Final Exam from Spring 2021
Exam

Final Exam from Spring 2020
Exam

Final Exam from Spring 2019
Group 1
Group 2

Final Exam from Spring 2015: Part 1, Part 2

Final Exam from Spring 2014: Part 1, Part 2

Final Exam from Spring 2013: Part 1, Part 2
Solutions: Part 1, Part 2

Final Exam from Spring 2012
Final Exam Part I - Group 1
Final Exam Part I - Group 2
Final Exam Part II
Solutions: P1_1.jpg, P1_2.jpg, P2.jpg, P3_Task1_1.jpg, P3_Task1_2.jpg, P3_Task2.pdf

Final Exam from Spring 2011
Final Exam Part I - Group 1
Final Exam Part I - Group 2
Final Exam Part II 
Solutions: P1_Block_diagram.jpg, P2_ASM_chart.jpg, P3_PicoBlaze_program.jpg