Overview
Rarely does a single technology take over the world in quite the way that integrated circuits (ICs) have done. From their invention around 60 years ago, ICs are now found in almost everything we do (computers, smart phones, wearables, robots). While in the past, the focus was on designing high performance general purpose processors, the industry is now moving towards more and more specialized ICs (called accelerators) such as graphics processing units (GPUs), deep learning accelerators and image and video processing accelerators. This move towards specialization is driven by the high performance and energy efficiency demands of sensor-rich smart phones, autonomous robots, and large data centers running applications such as image and video processing and analysis, graphics, speech processing, AI and machine learning. This course will teach you how to design such specialized ICs.
The course starts with a quick introduction to MOS transistors and IC fabrication and then creates abstractions to allow you to create and reason about complex digital systems. It starts with a switch resistor model of a transistor, uses it to model gates, and then shows how gates and physical layout can be synthesized from Verilog or SystemVerilog descriptions. Most of the class will be spent on teaching techniques to create designs that can be validated, are low power, provide good performance, and can be completed in finite time.
Term: 2019-2020 Autumn
Units: 3
Instructor: Priyanka Raina
TAs: Kartik Prabhu, Maxwell Bradley Strange
Lectures: Mon, Wed 10:30 AM - 12:00 PM at Thornton 102
Review sessions: Fri, 11:30 - 12:20 at Thornton 102
Weekly review sessions will help you recap some of the pre-requisites and discuss homework and background material for the project.
Office hours:
Priyanka: Mon, Tue, 1:30 - 2:30 PM in Allen 114
Kartik: Mon, Wed, 6:00 - 7:00 PM in Packard 106
Max: Tue, Thur, 10:30 - 11:30 AM in Gates 323
Canvas: All documents, including lecture notes, and lecture video recordings will be posted on Canvas.
Piazza: For questions about lectures, homeworks and project we will use Piazza.
Course Learning Goals
By taking this course, you will be able to:
- Build combinational digital logic from transistors and wires and model and optimize its delay and power.
- Build sequential logic using clocks and storage elements; understand the tradeoffs between different clocking methods.
- Design a complex digital system by describing it in Verilog or SystemVerilog and use CAD tools to synthesize it into gates and physical layout.
- Verify the system using testing and formal methods using CAD tools.
- Measure the system’s power, performance and area; build an intuition for tradeoff’s between these and iterate on the design to optimize them.
Prerequisites
EE 101A and EE 108 (or equivalents) are pre-requisites for this course. We are looking for familiarity with transistors, logic design, Verilog and digital system organization from these pre-requisite courses.
Please talk to us if you have any questions about prerequisites.
Course Topics and Tentative Schedule
# | Date | Topic | Homework |
---|---|---|---|
1 | Mon, Sep 23 | Introduction | |
2 | Wed, Sep 25 | Transistors and gates | HW 1 out |
Fri, Sep 27 | Review session 1 | ||
3 | Mon, Sep 30 | Layout and fabrication | |
4 | Wed, Oct 2 | Gate delay and power - 1 | |
Fri, Oct 4 | Review session 2 | HW 2 out, HW 1 due | |
5 | Mon, Oct 7 | Gate delay and power - 2, scaling | |
6 | Wed, Oct 9 | Delay optimization and logical effort - 1 | |
Fri, Oct 11 | Review session 3 | HW 3 out, HW 2 due | |
7 | Mon, Oct 14 | Delay optimization and logical effort - 2 | |
8 | Wed, Oct 16 | Static timing analysis | |
Fri, Oct 18 | Review session 4 | HW 4 out, HW 3 due | |
9 | Mon, Oct 21 | Sequential circuits | |
10 | Wed, Oct 23 | HDLs, synthesis, optimizations | |
Fri, Oct 25 | Review session 5: Midterm review | HW 5 out, HW 4 due | |
11 | Mon, Oct 28 | Midterm (in class) | |
12 | Wed, Oct 30 | Hardware generators (genesis, magma) | |
Fri, Nov 1 | Review session 6: Project walk-through | HW 5 due, Project out | |
13 | Mon, Nov 4 | Design verification (Richard Ho) | |
14 | Wed, Nov 6 | Formal verification - 1 (Clark Barrett) | |
Fri, Nov 8 | Review session 7: SystemVerilog, genesis2, UVM drivers and monitors | ||
15 | Mon, Nov 11 | Formal verification - 2 (Clark Barrett) | Project part 1 due |
16 | Wed, Nov 13 | Advanced synthesis, delay models | |
Fri, Nov 15 | Review session 8: Writing assertions and using CoSA (Makai) | ||
17 | Mon, Nov 18 | High level synthesis | |
18 | Wed, Nov 20 | QED and symbolic QED (Subhasish Mitra) | Project part 2 due |
Fri, Nov 22 | Review session 9: Rasterizer optimizations | ||
Mon, Nov 25 | No class (Thanksgiving) | ||
Wed, Nov 27 | No class (Thanksgiving) | ||
Wed, Nov 29 | No review session (Thanksgiving) | ||
19 | Mon, Dec 2 | Testing and design for testability | |
20 | Wed, Dec 4 | Accelerators | Project part 3 due |
Fri, Dec 6 | Review session 10: Magma + fault (Lenny), HLS | ||
Fri, Dec 13 | Project part 4 due (extra credit) |
Course Grading
Midterm: 35% - In class exam, closed book but 1 hand written cheatsheet allowed.
Homework: 25% - 5 homeworks, 5% each.
Project: 40% (+ extra 10%) - Can be time consuming, going to the review sessions will be helpful.
In groups of 2.
Part 1: Write C/C++ code to express high-level system behavior for a rasterization pipeline.
Part 2: Implement the rasterization pipeline in SystemVerilog and synthesize it to gates using EDA tools.
Part 3: Optimize the performance of the design.
Part 4: (extra 10%) Port the rasterizer to magma and fault (new generator framework) and high level synthesis, and compare results.
Homework
Handed out on Fridays (except HW1).
Due the following week (at 11:59 PM on Friday). Please submit homework on canvas.
Homework received up to 24 hours late will receive 50% credit. Homework received beyond 24 hours late will receive 0% credit.
Group work on homework is okay, but each student must prepare their own individual assignment to turn in.
If you need us to regrade your homework or midterm it must be submitted within 1 week.
Entire homework/midterm will be re-graded and downgrading is possible.
Make-up Exam Policy
There are no make-ups for the midterm, so you must plan to be in class that day. Let me know immediately if a university-sanctioned event makes it impossible for you to be present at the midterm.
Course Texts and Materials
The lecture notes are the main reference material that you will use in the class. While the notes will cover the material in the class, they will not be as complete as the information that you would find in a textbook. To provide additional information and/or an alternative explanation of the material in the notes, readings from other textbooks will be included in the notes. While these readings are not required, they are often helpful in understanding the material.
- Weste, Harris, Principles of CMOS VLSI Design (4th Edition) - Primary reference. Most readings are from this book. The book is on reserve for class use in Terman library.
- Rabaey, Chandrakasan, Nikolic, Digital Integrated Circuits (2nd Edition)
- Wolf, Modern VLSI Design (3rd Edition)
- Glasser Dobberpuhl, The Design and Analysis of VLSI Circuits - Good transistor-level circuits book, but very old (mostly nMOS!)
Course Videos
Video cameras located in the back of the room will capture the instructor presentations in this course. For your convenience, you can access these recordings by logging into the course Canvas site. These recordings might be reused in other Stanford courses, viewed by other Stanford students, faculty, or staff, or used for other education and research purposes. Note that while the cameras are positioned with the intention of recording only the instructor, occasionally a part of your image or voice might be incidentally captured. If you have questions, please contact a member of the teaching team.
Academic Misconduct Policy
It is expected that Stanford’s Honor Code will be followed in all matters relating to this course. You are encouraged to meet and exchange ideas with your classmates while studying and working on homework assignments, but you are individually responsible for your own work and for understanding the material. You are not permitted to copy or otherwise reference another student’s homework or computer code. If you have any questions regarding this policy, feel free to contact us.
Compromising your academic integrity may lead to serious consequences, including (but not limited to) one or more of the following: failure of the assignment, failure of the course, disciplinary probation, suspension from the university, or dismissal from the university.
Students are responsible for understanding the University’s Honor Code policy and must make proper use of citations of sources for writing papers, creating, presenting, and performing their work, taking examinations, and doing research.
ADA Policy
Students who may need an academic accommodation based on the impact of a disability must initiate the request with the Office of Accessible Education (OAE). Professional staff will evaluate the request with required documentation, recommend reasonable accommodations, and prepare an Accommodation Letter for faculty dated in the current quarter in which the request is being made. Students should contact the OAE as soon as possible since timely notice is needed to coordinate accommodations. The OAE is located at 563 Salvatierra Walk (phone: 723-1066, URL: http://oae.stanford.edu).
Other Useful Classes
- Design Projects in VLSI Systems (EE272)
- Analog Circuit Design (EE214)
- Digital Systems Engineering (EE273)
- Integrated Circuit Fabrication Processes (EE212)
- Principles and Models of Semiconductor Devices (EE216)
- RF Integrated Circuit Design (EE314A, B)
- Programming (perl, C, python)
- Plus application specific knowledge