ECE 448

FPGA and ASIC Design with VHDL

Spring 2008

 

Quick Links

Instructor

Kris Gaj
S&T 2, room 223
e-mail:  kgaj (at) gmu.edu
             Please start a subject of your e-mail from "ECE 448:"
 

Teaching Assistants

Tuesday & Wednesday sections
Tuesday, 7:20-10:00 PM
Wednesday, 7:20-10:00 PM

Danesh Esteki
Mailbox: S&T 2 hallway near Room 208
e-mail: danesh.esteki (at) gmail.com
Please start a subject of your
e-mail from "ECE 448:"
Thursday section
Thursday, 7:20-10:00 PM
 

Joe Burns
Mailbox: S&T 2 hallway near Room 208
e-mail: jjburns1 (at) gmail.com
Please start a subject of your
e-mail from "ECE 448:"

Lecture:

Monday, Wednesday, 3:00-4:15 PM, Krug Hall 242

Labs:

Section 202: Tuesday, 7:20-10:00 PM, S&T 2, Room 203
Section 203: Wednesday, 7:20-10:00 PM, S&T 2, Room 203
Section 204: Thursday, 7:20-10:00 PM, S&T 2, Room 203

All students will be provided with an access code to the room 203, and are welcome to work on their experiments at any time.
Experiment demonstrations will be accepted exclusively during the class time for a particular lab section.

Office hours:

Monday,  4:30-5:30 PM, Kris Gaj
Monday,  6:00-7:00 PM, Joe Burns
Tuesday, 6:00-7:00 PM, Danesh Esteki
Wednesday, 4:30-5:30 PM, Kris Gaj
Wednesday, 6:00-7:00 PM Danesh Esteki
Saturday, 11:00 AM-12 noon Danesh Esteki

All office hour sessions are open to all students, independently of their assignment to a particular lab section.

Course credit:

4 hours

Grading

Lab experiments & homework (Part I):   20%
Midterm exam for the lecture:  10%
Midterm exam for the lab:  15%
Quizzes  10%
Lab experiments & homework (Part II):    20%
Final exam:  25%

General Laboratory Rules

Lecture slides & VHDL codes (to be published before each lecture)

Lecture 20 - ASIC Back-End Design
Required reading:
Physical Level Design using Synopsys

Lecture 19 - ASIC Front-End Design
Required reading: Measuring the Gap Between FPGAs and ASICs

Lecture 18 - FPGA Boards & FPGA-based Supercomputers. High Level Language (HLL) Design Methodology.

Lecture 17 - FPGAs – Survey of the Market

Lecture 16 - Survey of Reconfigurable Logic Technologies

Lecture 15 - VHDL Modeling of Microprocessors

Lecture 14 - Multipliers

Lecture 13 - RTL Design Methodology. Sorting.

Lecture 12 - Modeling of Circuits with a Regular Structure. Mixing Design Styles. Synthesis.

Lecture 11 - Advanced Testbenches

Lecture 10 - Memories (RAM/ROM)

Lecture 9 - VHDL Coding for Synthesis

Lecture 8 - RTL Design Methodology. MIN_MAX_AVR Example.

Lecture 7 - Finite State Machines. State Diagrams vs. Algorithmic State Machine (ASM) Charts.

Lecture 6 - FPGA Devices and Design Flow

Lecture 5 - Sequntial-Circuit Building Blocks

Lecture 4 - Simple Testbenches

Lecture 3 - Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic.

Lecture 2 - VHDL Refresher

Lecture 1 - Introduction and Organizational Issues

Posted gradually at least one day before a given lecture.

See Course Webpage from Spring 2007 for slides from the previous year.
 

Homework assignments

Homework 2

Homework 1
 

List of experiments

Experiment 7 - VHDL Modeling of Embedded Microprocessors and Microcontrollers. Logic Analyzer.

Experiment 6 - AES Look-up Tables, Memory Testing, Sorting

Experiment 5 - VGA Signal Generator

Experiment 4 - Subway Ticket Dispensing Machine - implementing digital systems based on finite state machines

Experiment 3 - implementing digital systems using FPGAs (functional, post-synthesis & timing simulation, experimental verification with the board)

Experiment 2 - implementing sequential logic in VHDL - PIC Program Execution & Built-In Self-Test

Experiment 1 - implementing combinational logic in VHDL - PIC ALU and arithmetic shift by a variable number of positions

The specifications of lab experiments will be posted gradually at least one day before a given lab.

See Course Webpage from Spring 2007 for specifications from the previous year.

 

Lab slides & VHDL codes (to be published before each lab session)

Lab 7 - VHDL Modeling of Embedded Microprocessors and Microcontrollers

Lab 6 - AES Look-up Tables, Memory Testing, Sorting

Lab 5 - Introduction to VGA Signal Generation

Practice Lab Exam

Lab 4 - Finite State Machines & Xilinx ISE GUI

Lab 3 - Introduction to FPGA Board and FPGA Implementation Tools.

Lab 2 - Introduction to the Xilinx ISE GUI and the ModelSim simulator.

Lab 1 - Introduction to Aldec Active HDL. Implementing Combinational Logic in VHDL: MLU & mini ALU.

   

Posted gradually at least one day before a given lab.

See Course Webpage from Spring 2007 for slides from the previous year.


Software

The Detailed Instructions on How to Configure your FPGA Tools at School, and Install and Configure your FPGA Tools at Home

The FPGA design process will be based on the following design tools:

- Design Entry and Simulation: Active HDL from Aldec or ModelSim Xilinx Edition from Xilinx,
- Logic Synthesis: Synplify Pro from Synplicity or Xilinx XST from Xilinx,
- Implementation: Xilinx ISE or Xilinx WebPACK from Xilinx.

The ASIC design process (front-end) will be based on the following design tools:

- Logic Synthesis: Design Compiler from Synopsys
- Timing Analysis: PrimeTime from Synopsys.

Hardware

Students are not required to purchase any boards or other equipment by themselves. The boards will be provided to the students during the lab sessions, office hours, and on-demand by checking out the boards from the research lab located in S&T 2, room 220, and Dr. Gaj's office, S&T 2, room 223.

Required textbooks

Stephen Brown and Zvonko Vranesic, Fundamentals of Digital Logic with VHDL Design, McGraw-Hill  © 2nd edition, 2005, ISBN: 0-07-249938-9.

Mark Zwolinski, Digital System Design with VHDL, Prentice Hall © 2nd edition, 2004, ISBN: 0-13-039985-X.

Recommended textbooks

  1. Sundar Rajan, Essential VHDL: RTL Synthesis Done Right, ISBN 0-9669590-0-0, can be ordered from XESS Corporation Web Site (see also table of contents).
  2. Sunggu Lee, Advanced Digital Logic Design using VHDL, State Machines, and Syntesis for FPGAs, Thomson, 2006, ISBN: 0-534-46602-8.
     

Useful references

VHDL

VHDL Instructions: Templates & Examples
Version 1
Version 2

The Low Carb VHDL Tutorial - by Bryan Mealy

VHDL Tips & Tricks - from the Integrated Systems Laboratory, ETH Zurich
 

FPGAs & FPGA Boards

Introduction to FPGA devices and tools

Documentation for Xilinx devices, and in particular for the Spartan 3 family

Celoxica RC10 FPGA Board User Manual


Aldec Active-HDL

Aldec Active-HDL - Getting Started
 

Xilinx ISE

Xilinx manuals for ISE software.


Synopsys

Introduction to Synopsys

Remote Access to Synopsys


Related course web pages

ECE 448 course web page from Spring 2007

ECE 448 course web page from Spring 2006

ECE 545 course web page from Fall 2006

ECE 449 course web page from Spring 2005

ECE 449 course web page from Spring 2004

ECE 449 course web page from Spring 2003


Exams & Quizzes from Previous Years

In-Class Midterm Exam from Spring 2007
 
Hands-on Midterm Exam from Spring 2004:
Solutions to the Midterm Exam - Tuesday section
Solutions to the Midterm Exam - Thursday section
 
Hands-on Midterm Exam from Spring 2005:
Solutions to the Midterm Exam - Monday section
Solutions to the Midterm Exam - Tuesday section
Solutions to the Midterm Exam - Thursday section
 
Practice Midterm Exam from Spring 2006
Practice Hands-on Midterm Exam
 
Practice Final Exam from Spring 2006
Practice final exam - Parts I & II
Solutions to Practice final exam - Part I
Solution to Part 2 Problem 3 - 2to1mux.vhd, 16to1mux.vhd
 
Quizzes from Spring 2006
Quiz 1
Quiz 2 with solutions
Quiz 3
Quiz 4 with solutions
Quiz 5 with solutions
 
Final Exam from Spring 2006
Final Exam Part I - version 1
Final Exam Part II - version 1
Final Exam Part I - version 2
Final Exam Part II - version 2
 
Final Exam from Spring 2007
Final Exam Part I - version 1
Final Exam Part II - version 1
Final Exam Part I - version 2
Final Exam Part II - version 2

 


Maintainer of the page: Kris Gaj