ECE 474/574 - VLSI System Design
CRN 30398/30451

Spring 2003

Instructor:
Roger Traylor
Office: 238 ECE Bldg.
E-mail:traylor@ece.orst.edu
Office Hours: Tu, Th 3:00 - 4:00 or by appointment

When and Where:
Tuesday, Thursday 8:00-9:20 AM; Kidder 364

TA:
Peroly Natesan
E-mail: natesan@engr.orst.edu
Office Hours: M 2-4, Th 6-8

Text
"The Students Guide to VHDL" by Peter Ashenden.

Prerequisites
The stated prerequisites are ECE 375 and ECE323. In reality, proficiency with UNIX, really good with digital logic design, especially state machines and data paths. Having taken ECE471 is a plus.

Class Description
This class focuses on system-level design and implementation of Very Large Scale Integrated (VLSI) devices, specifically, ASICs and FPGAs. The emphasis is on system-level as opposed to circuit-level issues.

Overall Class Objective
Each student should be able to translate a high-level design specification into a working digital system using contemporary tools and techniques. To do this each student will be able to:

The Project
The centerpiece of this class is a large design project. It will be executed much as it would be in an industrial setting. As such, timeliness, neatness, and clarity are important. The project is presented as a precise written description of how the system should work. Your job is first to write a very complete specification of a VLSI system (a chip) that will implement the system. The specification will include all block diagrams, interfaces, state machines, and data paths.

Once the specification is completed, you will describe the system in VHDL. This system is then simulated and modified until correct behavior is observed. The VHDL design is then synthesized into gates. The gate level design is then regressed against the VHDL description and checked for proper behavior and timing. After this, timing information is back annotated and regression is done again.

When your design is complete, you will submit your final revised specification. You will also electronically submit all your VHDL code. I will compile, synthesize, and resimulate your design against a set of published test vectors.


Take home midterm

Essential VHDL Document

Essential VHDL pgs 0 - 23
Essential VHDL pgs 24 - 46
Essential VHDL pgs 47 - 60
Essential VHDL pgs 61 - 76
Essential VHDL pgs 77 - 106
Essential VHDL pgs 107 - 127


RMU Documents

RMU Specification Outline
Schedule for RMU Project
First cut Requirments Document for RMU project
Second cut Requirments Document for RMU project
RMU Requirments Document v1.0
RMU Requirments Document v1.1
Tar file of dofiles and src for init and sensor modules
Tar file (doit.tar): dofiles, src files, golden results, synth scripts
(rmu_tar_6.1.tar)Final release (I hope!)

CAD Tool Pages:

Dan Brown's Perl script
Leonardo Documentation
Model Technology Documentation (vcom, vsim)
ADK library databook
SRAM code for project

Lecture notes on Top Down Design.

Page 2
Page 2a
Page 3
Page 4a
Page 5
Page 5a

ECE474 Design Teams

ECE474 Design Teams


Testbenches for the project


Scripts for the project


Project Administration
You will design the project within a three partner group. I will set up the assigned groups. I want to make sure that each group has at least one person who has taken ECE471 or ECE472. This will give your team a leg up in VHDL.

You may work in groups on homework if you wish. Sharing of design approaches, philosophy, general block diagrams or coding ideas is strongly suggested. However, sharing between groups of detailed information such as detailed block diagrams, state machine diagrams, or actual VHDL code is not approved and will meet with the strongest action that I can bring.


Getting Class information

A mail reflector (or group, list) for the class will be established by the beginning of class. This "mail group" is where you find information about important "stuff". The mailgroup is how I communicate with you outside the classroom. It can also be used as an interactive forum where you discuss problems and solutions. Such usage is encouraged.

Students who register early for ECE474/574 are automatically added to the class mail list. You may not be on the list at first if you register late. You should be added within a day or so. The name of the class list for ECE474/574 is: class-ece474@engr.orst.edu This name is case sensitive. Mail on the class list is archived at:
www.engr.orst.edu/classes/ece/ece474/archive


Grading

About 50% of your grade will come from the project. The rest will come from quizzes (~25%) and (~25%) from lab/homework. I reserve the right of to change final percentages depending upon the difficulty of the project and labs.

ECE474 Grades
ECE574 Grades


ECE 474 Schedule and Assignments



Period


Date


Reading/Subject


Project deliverables


Homework

1 Tuesday, Apr 1 Introduction to ECE474/574
Designing Large Systems
  What you get to start with
  Successive refinement - Top Down Design
  Using Abstraction (information hiding)
Initial block diagrams (high level)
  Partitioning
    the "minimum-cut" idea
    data paths first, then control
    clock domains
    data rates
  Tracking and naming signals, blocks
  Computer or Pencil and Paper?
None
2 Thursday, Apr 3 Detailed Design of Large Systems
  Detailed Block Diagrams
  Writing a Design Specification
    sections, writing, drawings
    state machine notation
    signal naming
  HDL code and specification coherrence
  Peer specification reviews
  When do I start writing code?
TBA Hierarchy/Entity/Architecture Exercise
Homework 1
TAS Requirements document
TAS VHDL code in tar foramt
3 Tuesday, Apr 8 Introduction to HDL design
Entity and Architecture
Ports
Signal Assignment
Declaring Objects
Simulating VHDL Code
Reading:
    Chapt. 1 of Ashenden
    Chapt. 5.1, 5.2 of Ashenden
    "Essential VHDL", pg.0 - pg.23
TBA
4 Thursday, Apr 10 Synthesis
Data Types
Operators
Concurrent Statements
Bus signal assignment
Bit vectors
Conditional Concurrent Signal Assignment
Reading:
    Pgs 28, 42, 92, 127-131 of Ashenden
    Sect 2.5 of Ashenden
TBA
5 Tuesday, Apr 15 Selected concurrent signal assignment
OR'ing Selected concurrent signal assignments
Component Instantiation
Labels
Association lists
Named vs Positional Association
OPEN and pullup/pulldowns in associaton lists
Reading:
    Pg131-133 of Ashenden
    Section 5.4 of Ashenden
TBA Homework 2
6 Thursday, Apr 17 GENERATE statement
    -FOR and IF schemes
    -Usage to create structures
ASSERT statement
PROCESS statement
Sensitivity lists
Delay
    -Transport
    -Inertial
    -Delta
Sequential statements
Variable declaration and assignment
IF statement, implied priority
Relational operators
Reading:
    Sect 2.1 of Ashenden
    pg 117-127 of Ashenden
    Sect 2.1,2.2 of Ashenden
    Sect 3.1 of Ashenden
TBA TBA
7 Tuesday, Apr 22 IF statement (cont)
CASE statement
OTHERS statement
X Propagation
FOR and WHILE loops
Atributes
Generics
Inferring Flip Flops
Inferring Latches
"Resets: Asynchronous or Synchronous"
Homework 3

8 Thursday, Apr 24 Metastability
Preliminary block diagram/state machines/timing diagram due in class Thursday April 24.
9 Tuesday, Apr 29 Class Canceled for Senior Design Expo Be working like crazy on your design.
No deliverables.
10 Thursday, May 1 State machines in VHDL
State machine synthesis
State machine with enmumerated encoding
Decoding and glitchless outputs
State machine example
Homework 4
Tar file for homework 4
11 Tuesday, May 6 A Sample Specification Outline HDL Synthesis
    -translation
    -optimization
Constraints
     -operating conditions
         - global and local
     -input to register
     -register to register
     -register to output
     -calculation of slack
Synthesis and Shell/Perl Scripts
Optimization Strategies
Scaling and the problems in interconnect delay
Final block diagram/state machines/timing diagram due in class Tuesday May 6. TBA
12 Thursday, May 8 Steps in a Full Design Flow
    -RTL synthesis, simulation
    -gate-level simulation
    -static timing verification
    -scan test insertion
    -place and route
    -extraction and resimulation
Timing Closure in submicron designs
Physical Synthesis
13 Tuesday, May 13 Testability
Faults
Excitation and Observation of faults
Scan test methodology
    -scan flip flops
    -how scan insertion works
    -timing re-optimization after scan insertion
    -how vectors are scanned in and out
Should start coding this week.
Design specification due in class 5/13.
TBA
14 Thursday, May 15 Packaging
How packaging effects the system
Package types: DIP, PGA, BGA
Characteristics of different package styles
    -power dissipation
    -thermal resistance
    -ease of manufacturing and test
    -package paracitics, R, L, and C
15 Tuesday, May 20 Problems with simultaneous Switching Outputs (SSOs)
    -ground bounce
    -dynamic threshold shift in input buffers
    -disturbing quiet output buffers
Solutions to the ground bounce problem
    -ways to reduce L
    -ways to reduce di/dt
    -use of differential drivers and receivers
Debug crunch time!
First test vectors now available
No deliverables.
16 Thursday, May 22 High Speed Signaling
    -problems with high speed signaling
    -ground bounce
    -common mode noise
    -crosstalk
    -differential signaling
    -pseudodifferential signaling
    -SSO reduction with coding schemes
Transmission lines
    -when is a line a transmission line?
    -characteristic line impedance Zo
    -stripline microstripline
    -flight time
    -source and terminations
    -DC vs AC terminations
    -point to point vs multidrop networks
    -GTL, PECL examples
Take home midterm posted
Clean up any last bugs, synthesize and do regression testing.
No deliverables.
TBA
17 Tuesday, May 27 VLSI Clock Distribution
Tar file of clock distribution slides
    -skew
    -latency
    -jitter
    -power dissipation
    -signal integrity
    -reliability
    -clock tree implementations
        -H-tree
        -Grid
        -Balanced Tree
    -clock gating
    -reset trees
    -PLLs and DLLs
    -asynchronous logic design
TBA
18 Thursday, May 29 The final script for testing your project
Guest speaker from Agilent - Uma Polisetti
"Industry practices for verification - A glimpse"
Formal Verification
    -Equivalence CHecking
    -Assertion Based Verification
    -Suggestions for Best Practices
Submit all design files by midnight Sunday, June 1. TBA
19 Tuesday, Jun 3 Guest speaker #2 from Agilent - Chuck Evans Static Timing Analysis Homework 5
20 Thursday, Jun 5 Review of project
Awards ceremony
Monday, Jun ?? Final?

Questions, suggestions?.... Mail to:

traylor@ece.orst.edu