ECE 474 - VLSI System Design
CRN TBA

Winter 2008


When and Where:
MWF 11:00-11:50 am; KEC 1003

Instructor:
Roger Traylor
Office: 3095 Kelley Engineering Center
E-mail:  traylor@ece.NOSPAM.edu (replace "NOSPAM" with "orst")
Office Hours: Tu 3:30 - 5:00pm, Wed 3:00-4:00pm or by appointment

TA:
TBA
E-mail: TBA@ece.SPAM.edu (replace "SPAM" with "orst")
Office: TBA
Office Hours: TBA

Text:(not manditory)
Essential VHDL
RTL Synthesis Done Right
By Sundar Rajan (self-published)


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

Class Objective:
At the completion of this class, each student should be able to:

Class Environment:
This class is centered about multiple design projects. They will be executed much as they would be in an industrial setting. As such, timeliness, neatness, and clarity are important. Your work may involve writing specifications for systems (chip level) that are implemented.

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

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 will be added to the list later if you register late. If auditing, I will have to manually add you to the list. In either case, you should be added to the list within a day or so.

The name of the class list for ECE474/574 is: ece474-w07@engr.NOSPAM.edu This name is case sensitive. You know what to put in place of "NOSPAM"


Reccomended books and links
The following books are "keepers"... good for your whole career.

Running graphical CAD programs on Windows:
You will need: Download both main program and font package installers.
Once you have the programs installed,
  -start the X server
  -start SSH
  -create a new profile to access one of the ENGR servers
   (make sure to tell SSH to tunnel X11 connections
   see: http://engr.oregonstate.edu/computing/labs/134 for information on how to do this)
  -start the connection.
  -type in "xterm" to specify an X terminal session
   -invoke whatever program you want.


Running graphical CAD programs on Mac OSX:
Install X11 from optional Mac install CD
From the prompt in the X11 window: ssh -Y -l [username] [machine]
Invoke whatever program you want.
Course Ethics
Students are expected to uphold high ethical standards in this course including adherence to Oregon State University Academic Regulations and Student Regulations. You are permitted and to a great extent encouraged to seek the advice of others. However, there is an obvious difference between a constructive discusssion and copying. Copying is not permitted. Any help/advice you receive must be fully documented so that you do not falsely represent yourself and your work. All material submitted for grade MUST contain complete documentation including a "references" section appended to the end of each submission. The following table lists some examples of how to properly document your work.

1) Using only the course text book, you complete a homework set.
References: None

2) You work with a group to complete a homework set.
References: I worked concurrently with Joe Smith, and Sam Brown on this homework set as part of a study group.

3) You are stuck on how to draw a timing diagram on a homework set and ask Joe Blow how he approached the problem.
References: Joe Blow explained how to set up the timing diagram on problem 1.

4) You cannot get your simulation to give correct results. You look at Sally's working code.
References: I looked at Sally's code to try and figure out what was going wrong.


Homework Solutions

Grading
Weekly/Bi-Weekly Assignments:       65%
Midterm:         15%
Final Project: 20%

Grade Spreadsheet


Example Bash and PERL scripts
Travis Carlson's doit file  

Schedule and Assignments



Week


Date


Subject


Design Work


Supplemental Reading

1 1/7,
1/9,
1/11
ASIC Design Basics
    -Top-down and Bottom-up
    -A hybrid Top-down Strategy?
    -Practical limitations
    -Architecture and Paritioning
Design Stage Progression
    -Modeling in the Design Process
Drawing Block Diagrams
    -Block diagrams
An Intel Design Scenario
Intro to HDL Design
VHDL: what is it?
    -origins, motivation
Weekly project discussion
Exercises with Hierarchy and Design
HW 1: Blocks and Gates
Due Mon, Jan 14, in ECE office by 5pm
tas.vhd
fifo.vhd
TAS Requirements Document(.pdf)
Rajan: Chapt 1,2
Rajan: Chapt 9 (Design Partitioning)
Rajan: Chapt 11, pgs 222-225 (Generics in Scalable and Parameterizable Design)
Cramming more components onto ICs
(The original paper on Moore's Law written in 1965)
Good Designers Must Fail
(more risk, more learning)
Truthful Schedules?
(Lies, damn lies, and engineering schedules)
Hierarchical Design
(Pros and Myths about hierarchical design)
2 1/14,
1/16,
1/18
Scripting for EDA tools
What makes up a script?
Shells
    -sh, tcsh, bash
Scripting languages:
    -PERL, TCL
Testbenches
Design Management
Weekly project discussion
Quiz 1
HW 2: Scripts and Testbenches
Due Wed, Jan 23, to TEACH website by 11:30pm
HW2 Tarball   Submitting help
Writing Shell Scripts
Bash Programming Introduction
Advanced Bash Programming
Beginners Introductionto Perl
Perl FAQ
Scripting for IC Flows
3 1/21(off),
1/23,
1/25
ENTITY, ARCHITECTURE, PORT
    -the basics of VHDL
Compenent Instantiation
    -structural design, lables,
    -positional and named association
GENERIC Clause
Text I/O
Data Types and Operators
    Data types
    Package std_logic_1164
    Operators, overloading
Signal Assignment
    Signal Assignment
    Busses
Concurrency
Conditional Signal Assignment
    incomplete specifications
Selected Signal Assignment
    use of OTHERS
    making choices with "|"
Weekly project discussion
HW 3: Combo VHDL circuits
.synopsys_dc.setup
Due Fri, Feb 1, in ECE Office site by 5:00pm
Rajan: Chapt 14, pgs 291-303
(text i/o)
4 1/28,
1/30,
2/1
PROCESS statement
Sequential operators and Variables
IF and relational operators
CASE statement and OTHERS
LOOP statement
Delays in VHDL
Attributes
Synthesis Intro
TCL for DC
Partitioning for Synthesis
Weekly project discussion
HW 4: Synthesis scripting with Combo Logic
Synthesis boilerplate
Due Wed, Feb 6, to TEACH web site by 11:30pm
Rajan: Chapt 3,
(gates, decoders, encoders)

Rajan: Chapt 11,
(loops, attributes, varaibles, generate)

Rajan: Chapt 3, pgs 141-155
(delay types, )
5 2/4,
2/6,
2/8
Inferring Storage Elements
State Machines in VHDL
    -Coding syles
    -Enumerated States
    -Glitchless State Machines
Mealy Outputs
Sync vs Async Reset
Inclass Exercise - What am I?
Weekly project discussion
HW 5: State element synthesis
Waveforms for HW5
Due Wed, Feb 13, in class
Rajan: Chapt 5 (Registers and Latches)
Synchronous vs Asynchronous Resets
(Which type of reset should I use?)
X's in Digital Simulation
(When "X" is your friend) Rajan: Chapt 6 (Finite State Machines)
Opencores coding guidelines
Coding guidelines (lite)
6 2/11,
2/13,
2/15
Interactive Classwork Session
  -TAS data paths
  -TAS state machines
Midterm (inclass)
HW 6: HDL State Machines
Due Wed, Feb 20, in class
Simulation dofiles: TBD
dofiles in tarball
golden_results
7 2/18,
2/20,
2/22
Timing and area constraints
Timing Constraints
    Problems and Questions
        -Latches
        -Combinatorial loops
        -Failure to run at speed
        -SDF errors
    Debugging Pointers
Timing Verification
    -Static and Dynamic
    -Multicycle paths
    -False paths
Static Timing/ Reports
Weekly project discussion
HW 7: Sequential Logic Synthesis
Full submittal Due Wed, Feb 27, to TEACH web site by midnight
list dofile   Skeleton synthesis script
8 2/25,
2/27,
2/29
Metastability
Design for Test
    -Fault test vs. verification
    -Finding and propagating faults
    -Ad hoc, partial scan, full scan
    -Test vectors
    -DFT-aware design
Partial Scan
Iddq Testing
Problems caused by DFT
Fixing Hold Violations
Weekly project discussion
HW 8: scan insertion
Due Wed, Mar 5, in class or my office by 5pm, electronic part by midnight
implement_scan script
schematic - noscan
schematic - scan ready
Scan ATPG process guide
9 3/3,
3/5,
3/7
Equivalency Checking - part 1
Equivalency Checking - part 2
Discussion of Final Project
Final Project: 16x16 multiplier
  Due Mon, Mar 17, to TEACH web site by midnight
multiplier_spec.pdf   testbench  
Hennessy and Patterson multiplier  
block diagram for multiplier  
Functional Verification
10 3/10,
3/12,
3/15
(3/10)Discussion of Final Project
(3/12)Eric Campbell - Mentor Graphics
   Topics:
   -achieving timing during synthesis
   -testbench evolution, force files to transactions
(3/15)Class eval/recap
   -Snacks provided

Questions, suggestions?.... Mail to:

traylor@ece.SPAM.edu (replace SPAM with orst)