Course Syllabus
CS/ECE 5710/6710
Digital VLSI Design
Fall 2017
Instructor: | Erik Brunvand, elb 'at' cs 'dot' utah 'dot' edu, MEB 3142 |
Office Hours: |
After class and by appointment |
TAs |
Ramya Selvan and Kambala Hari Krishna Subramanyam |
TA Office Hours |
Ramya: Wednesdays 3:00-5:30 Kambala: Thursdays 3:00-4:30 Here's an on-line queue that you can use during TA office hours to request TA help. |
Class: | T - Th 5:15-6:35 in WEB 2230 |
Contact | Through Canvas messaging |
Logistics
-
Prerequsites: Digital Logic (CS/ECE 3700 or equivalent) is required. Computer organization (CS/ECE 3810 or equivalent) will be extremely helpful. The Computer Design course CS/ECE 3710 is also a great lead-in course, especially to help you with your project.
- Textbooks:
- Principles of CMOS VLSI Design: A Circuit and Systems Perspective (4th Edition), By Neil Weste, David Harris, Published by Addison-Wesley, c2010, ISBN 978-0321547743. Note that there are some Errata (mistakes) that are listed here.
-
We'll also use Digital VLSI Chip Design with Cadence and Synopsys CAD Tools by Erik Brunvand as a lab manual. Published by Addison-Wesley, c2010, ISBN 978-0321547996. This book is available at a special price in a bundle with the CMOS VLSI Design textbook. That bundled version should be what is available in our University of Utah bookstore
- The lab manual was written for the v5 Cadence tools. We're now using the v6 tools. There's a v5-to-v6 transition guide for the Digital VLSI Chip Design book available here.
- The book describes library characterization using the Encounter Library Characterizer (ELC) tool. But, this tool is no longer supported by Cadence. The new tool is Cadence Liberate. Here is a tutorial describing how to do library characteriztion using Liberate.
- Here's a new tutorial about how to mark a connected net in Virtuoso Layout Editor using Connectivity->MarkNet.
-
Academic Misconduct (Cheating): The School of Computing Academic Misconduct Policy is in effect for this course. Every student should read the policy here. You will be asked to sign on the first assignment that you read and understood the policy. Note that the default sanction for any academic misconduct offense is a failing grade for the course. Note also that it's easy to avoid - just don't cheat! A discussion of this issue as it relates to this class can be found here.
- If you have NOT already filed one of these forms with the SoC office, please print this, sign it, and submit it to the TAs in class. All students who have not already filed this form MUST sign and return the form. Thanks. You can download the form here
- If you have NOT already filed one of these forms with the SoC office, please print this, sign it, and submit it to the TAs in class. All students who have not already filed this form MUST sign and return the form. Thanks. You can download the form here
-
College guidelines for adding, dropping, and other administrative issues may be found here. Other academic resources from the College of Engineering may be found here.
- The University of Utah provides reasonable accommodation to the known disabilities of employees and students. If you need special accommodations, please contact University Disability Services and let the instructor know at the beginning of the semester.
Course Information
This is an introductory course in VLSI CMOS integrated circuit design where you will go from the low level physical transistor and mask design of your own cell library, all the way to the design, implementation, and fabrication of a significant CMOS digital integrated circuit.
Many aspects of Digital VLSI design will be introduced in order to take this significant and enjoyable design journey. However, note that this is not a course in digital system design or computer architecture. You will already need to know about boolean logic and how to design and implement combinational and sequential digital circuits (such as adders and other data-path logic, and especially finite state machines). The project will also require some knowledge of computer architecture for you to complete a moderately large digital design.
Topics that will be covered in lectures include:
Basic transistor theory
CMOS processing
Mask layout and design rules
VLSI CAD tools
Circuit simulation and characterization
Custom data-path circuit design
Standard cell design and use
Library-based circuit synthesis
Full chip assembly
The class will require extensive use of Computer Aided Design (CAD) tools (sometimes these are classified as Electronic Design Automation (EDA) tools). All of the CAD tools required will be available in the CADE lab. Students must have an account that will allow them to use the CADE machines. These tools do not run on Windows. Therefore some familiarity with Linux and the X window system is required for this course. There are lots of web resources for learning the basics of Linux if you're unfamiliar with that operating system.
The tools will be discussed in class and the TAs know how to use the tools and will hold office hours in the CADE lab to help. However, there is no specific lab class that you are required to attend. You can perform the labs and your project at your own convenience, either in the CADE lab at the University, or across the network. Remember that nothing can replace taking the time to read the CAD tool documentation, or follow along in the CAD book..
Integrated circuit design is mastered only through experience, so this is a hands-on course with lots of labs and project time required. The homework, as well as lectures, will be closely tied to the term project, the design of a simple standard cell library and then the use of that library to design a project. The initial design of cells for the project will be done individually. You must complete the design of these cells on time. You are encouraged to interact with others, but until you are asked to form teams, the work on your cell designs, simulations, etc., must be your own.
The final library and project will be done in teams of 3-4 students. The project must be completed, and you must submit a final report in the format specified.
Fabrication of your final project is optional. Fabrication of student chips is made possible thanks to funding provided through the MOSIS service. Little is more rewarding that creating a functional integrated circuit. Little is more disappointing than spending time on a design only to have in be non-functional. Therefore, careful design practices must be followed if you are to fabricate your chip including sufficient Design-For-Test, validation of your design, and a quality design review. If you do fabricate the chip, you will be required to take ECE/CS 6712 in Spring 2018 (1cr) to test and report on the results. 6712 is a fun class and a reward to those who make the effort to fabricate their designs.
Lecture Schedule
(This is my best guess at initial schedule based on previous offerings of this course. Things are likely to change a little during the semester...)
Slide links will become live as I update things...
Week | Lecture Topics | Lecture Slides | Reading and Notes |
8/22, 8/24 | Introduction and switch-level circuits |
Introduction Slides: IntroX2.pdf Here are some slides on basic |
Chapter 1, Sections 1.1-1.4 |
8/29, 8/31 |
More transistor switch-level circuits |
Slides on CMOS layout Slides on Verilog testbenches Pictures of chips |
Section 1.4 looking forward Note that there is a 5:30pm UofU football game on Thursday, 8/31. Because we are on the opposite side of campus, we should be fine, but be prepared for a little extra hassle on that day. |
9/5, 9/7 | More layout issues Line-of-diffusion and Euler paths |
More about CMOS layout |
Sections 1.5.2-1.5.5 and Section 3.3 |
9/12, 9/14 | MOS transistor theory and behavior | Slides on MOS transistor theory | Chapter 2 and some of Chapters 5 and 6 on power and interconnect |
9/19, 9/21 | CMOS processing and fabrication | Section 1.5 and Chapter 3 | |
9/26, 9/28 |
Logical effort transistor sizing and analysis Review of CAD3 register layouts |
Chapter 4, especially sections 4.4 and 4.5 |
|
10/3, 10/5 | CAD5 introduction |
Slides on CAD3 DFF designs - in-class design critique. Slides about CAD5 -New slides about Virtuoso Liberate library characterization |
CAD Book Chapters 8 & 10 Weste/Harris Appendix A |
10/10, 10/12 | No class | Fall Break! | |
10/17, 10/19 | Project ideas Synopsis synthesis overview |
Slides on Project Ideas |
CAD Book Chapters 9 & 11 Weste/Harris Appendix A |
10/24, 10/26 | Cadence Innovus place and route Mini-MIPS example - small processor VGA circuits |
Slides about Cadence Innovus place and route |
Weste/Harris Sections 1.7 & A.12, & chapter 11 CAD book chapters 11 & 12 |
10/31, 11/2 | NO LECTURES | Sign up for group project proposal meetings during class time | |
11/7, 11/9 | Regular lecture on Tuesday, 11/7 MID-TERM EXAM on Thursday 11/9 |
A handout about the memCellsF09 memory cells Here's a sample midterm to give you an idea of the types of things that might be asked on the midterm. Of course this year's midterm might cover different material - anything from the homework/CAD assignments is fair game! |
|
11/14, 11/16 | Chip assembly using CCAR Pads and pad rings |
Slides on chip assembly using VSR and CCAR |
|
11/21 |
No lecture on Tuesday - I'll be in the CADE lab helping with issues and questions during class time |
Thanksgiving Holiday on 11/23 | |
11/28, 11/30 | Student project presentations in class | 10-minute lightening talks on your projects. You must give me your slides in advance so I can put them all in one computer! |
|
12/5, 12/7 |
Various Topics |
I'll letcture on some topics of VLSI interest. DRAM - how it works and why it's so annoying |
|
12/13 | Final reports due | ||
1/17/2018 | Final GDS files due for fabrication!! |
Assignments and Labs are found at the bottom of this page...
These chapters in the Weste/Harris textbook are directly related to the labs. These sections in the textbook will be extremely helpful as you work on these lab assignments.
CAD1 - Schematics and Verilog: Chapter 1, and Appendix A
CAD2 - layout / DRC/ LVS: Chapter 3 (layout) and Chapter 8 (simulation)
CAD3 - Flip Flop Design: Chapter 3 (layout) and Chapter 10 (sequential circuit design)
CAD4 - DC analysis and Spectre: Chapter 2 (MOS device theory), Chapter 4 (delay), and Chapter 8 (simulation)
CAD5 - Five-cell Library: Chapter 9 (combinational circuit design)
CAD6 - Extending your Library: Chapter 9 (combinational circuit design) and Chapter 10 (sequential circuit design)
CAD7 - Adding drive strengths: Chapter 4 (delay)
Proposal - Project Proposal: Chapter 11 (datapath subsystems), Chapter 12 (array subsystems), and Chapter 14 (design methods)
Grading Policy
Refer to the College of Engineering Guidelines for more detail on appeals, disabilities, adding, and withdrawing from courses.
Grading will be based on participation. Note that I expect you to submit homework and labs on time. There is generally no possibility of turning in late work - in a large class and with labs happing on a regular schedule late work quickly becomes unmanageable. The due dates will be known long in advance so that you can plan for this. If there are exceptional circumstances, let me know. If there are exceptional circumstances that are class-wide, adjustments to the due dates might be given for the whole class.
Expected participation includes:
- Homework: Written homework will take the form of problem sets, project proposals, and other written work.
- Labs: Labs involve mask-layout design of cells that will be used in your semester project. We will use CAD tools from Cadence and Synopsys runing on linux in the CADE lab.
- Design Review: A short presentation on your project given to the class.
- Mid-term Exam: There will be one exam given sometime in the middle of the semester.
- Class Project: The class project will require the design of a small digital standard cell library that will then be used as a target library for a moderate sized chip design. Class members will join design teams for the implementation of the design. More details on the format of the final report will be available later in the semester.
-
Graduate Students: Those taking the graduate level course will have additional requirements that include a more rigorous project or design flow and the review of two papers relating to VLSI from journals or conferences in the area. These could be related to the project being implemented. For graduate students the labs will be 35%, and the paper reviews will be 5%.
-
Percentages for grades are as follows:
- Labs (cell designs) & Homework: 40%
- Design Review: 5%
- Mid-term Exam: 15%
- Project (design and report) 40%
Tool Information (Cadence, Synopsys, Verilog, etc. )
- Verilog Information
- Here's a site with some Verilog tutorials that seem quite nice
- Single-page reference sheet on Verilog syntax.
- A Verilog Quick Reference guide
- Another Verilog Quick Reference guide (perhaps the same one reformatted...)
- A Verilog 2001 reference guide
- Yet another Verilog guide. This one is an introduction to Verilog from Daniel C. Hyde at Bucknell University. This guide is targeted at simulation
- A set of documents from Synopsys that describe good Verilog coding style for synthesis. They are all in linked PDF. Open the Table of Contents and you should be able click on the chapters in that file to open up the chapters.
Note that these files are only accessible to CS/EE 5710/6710 students - A reference manual from Synopsys describing the Verilog synthesis engine.
Note that these files are only accessible to CS/EE 5710/6710 students- Table of contents
- Chapter 1 : Introducing the HDL Compiler for Verilog
- Chapter 2 : Description Styles
- Chapter 3 : Structural Descriptions
- Chapter 4 : Expressions
- Chapter 5 : Functional Descriptions
- Chapter 6 : Register, Multibit, Multiplexer, and Three-State Inference
- Chapter 7 : Resource Sharing
- Chapter 8 : Writing Circuit Descriptions
- Chapter 9 : HDL Compiler Directives
- Chapter 10 : Design Compiler Interface
- Appendix A : Examples
- Appendix B : Verilog Syntax
Helpful Information
- Other books you might find useful (there are lots and lots of good VLSI books out there - these are just a few!):
- Logic Effort - designing fast CMOS Circuits, I. Sutherland, B. Sproull, and D. Harris. Academic Press, 1999
- Analysis and Design of Digital Integrated Circuits (3rd ed), David Hodges. McGraw Hill, 2004.
- The Design and Analysis of VLSI Circuits, Glasser and Doberpuhl. Addison-Wesley, 1985 (still surprisingly useful)
-
CMOS Digital Integrated Circuits Analysis & Design 4th Edition, Sung-Mo (Steve) Kang, Yusuf Leblebici, Chul Woo Kim, 2014
- Off-chip Memory Chips - these are 32kx8 chips (256k bits) that you can use as examples for the types of off-chip memories you could use in your projects. I have some of each of these specific chips that you can use if you fab your chip and want to build an example system. You can, of course, also search hardware vendors for other memory chips that have different specs if you like. Remember that our process (ON Semi, C5N) has a 5v power supply. That may limit the types of chips you can use easily.
- 242376CYPRESS.pdf - This is a 32k static RAM (SRAM) - I have the -35 versions (35ns read access time).
- 266079CYP.pdf - This is an EPROM that you can program using the EPROM programmer in the digital lab. I have the 55ns access time version. (32kx8)
- 394986.pdf - This is a one-time-programmable 32kx8 ROM. You can burn this in our prom burner, but once it's burned, it can't be changed. I have some of the 45ns access time versions. Its slightly faster, and in a slightly smaller package than the EPROM above.
- VGA Information
- Here's a link to a page with lots of VGA timing info. Note that this is "official timing" information, and most VGA displays are quite forgiving if you are consistent with your own timing.
- This page from the XESS company has some examples of VGA controllers targeted at their Xilinx-based boards. So, memory details would have to be finessed for custom chips, but the basics might be interesting. The appnote for the simple controller for the ancient XS-40 board is a good basic design, although it's in VHDL in the appnote...
-
The VGA mini-project from 2005 which has lots of details on how to get a VGA controller working. Check out the text message option for details on using the charROM to make characters on the screen.
Note that some of the details from 2005 aren't relevant any more, like the stuff about Silicon Ensemble. We now use EDI. But,the specs on VGA are still good. - Here's a link to a site with information about interfacing to a PS/2 keyboard and mouse. It describes the timing interface and the communication protocol that keyboards and mice use to send data through that link. Note that PS/2 keyboards, for example, don't send ASCII. They send "make codes" and "break codes" on key press and key release that encode which physical key has been pressed. You need to map those keys to the letters using those codes if you want ascii.
- Chapter one from Sutherland, Sproull, and Harris' book on Logic Effort is here in PDF.
- A document by Eric Marsman from University of Michigan that describes a layout and floorplanning approach in a three metal process. This is a nice basic guide to planning interconnect issues. It's in PDF.
- A guide to basic electronics including MOS transistors: Appendix B from Contemporary Logic Design by Randy Katz. You don't need to know the sections on bipolar or diode logic. The MOS section is the most important.
- The SCN3M_SUBM SCMOS design rules from MOSIS, translated to microns, in PDF format, and in Word format.
- A link to Reid Harrison's CS/EE 5720/6720 Analog VLSI class. They are also using the NCSU CDK and the SCMOS rules so you can find more information here including tutorials on analog simulation of designs built with the NCSU CDK, and a layout tutorial. (Note that this is an older version of this course that Reid taught when he was faculty here at the U. He's now at Intan Technologies in Santa Monica, a company he founded)
- Paper formatting information:
- LaTeX style files for producing IEEE-formatted two-column papers: A .cls style file with formatting information, a .bst bibliography style file, and a sample .tex file that demonstrates how it all should be used.
- A Microsoft Word example file that shows how to get an IEEE format in MS Word.
- A data sheet on the HM6264 8kX8 SRAM from the DSL lab kits. This is a good example of a generic SRAM that shows read and write protocols.
- Documentation from Tanner Research about their digital pads in PDF. We'll be using these pads for our chip designs.
- A page from Americn Microsemiconductor that has lots of tutorials on various semiconductor topics.
- Here's a paper that I wrote a few years ago that describes a simple stack based architecture similar to the transputer that might make a great project. Even if you don't use this exact architecture, stack-based machine make nice simple processor architectures for those wanting to do a processor project. You definitely don't have to do this as a self-timed processor! It's a perfectly good synchronous stack machine too.
- Here are a couple papers from the Journal of Solid State Circuits about latches and flip flops. These are just a couple examples, there are lots of papers about this! These papers analyze different latch and flip flop circuits for speed and power performance.
- Comparative Analysis of Master Slave Latches and Flip-Flops for High-Performance and Low-Power Systems by Vladimir Stojanovic and Vojin G. Oklobdzija
- New single-Clock CMOS LAtches and Flipflops with Improved Speed and Power Savings by Jiren Yuan and Christer Svensson
- Compact yet High-Performance (CyHP) Library for Short Time-to-Market with New Technologies by Nguyen Minh Duc and Takayasu Sakurai. This paper makes a case that a small (11 or 20 cells) library can perform almost as well as a 400 cell library when used with Synopsys design compiler and standard benchmarks.
Course Summary:
Date | Details | Due |
---|---|---|