Course Year 2010 - 2011
Instructor: N.P. (Nick) van der Meijs - email - web (co-ordinates)
Note: this site will be created during the course.
Announcements
2010-10-08 Information about the exam, and how to prepare for it, is added. See here and below.
2010-10-08 The slides have been uploaded, see below.
2010-10-08 The information for the programming assignment has been updated, and now includes grading policy. See here and below.
2010-10-08 The 'verify_eda' source has been updated with a better consistency check (tolerant of floating point precision errors). See this link.
Prerequisites
For catching up on programming, please follow the course ET4174, "System programming in C".
For catching up on algorithms and data structures, graphs, etc., you can check out the course ET3155, Algorithms and Data Structures. See this link. Never mind the announcements etc. in Dutch, the slides can be found under 'Course Documents' and are in English. The course book is "Johnsonbaugh, R. Discrete mathematics, Pearson Prentice Hall, 2009, seventh edition, ISBN 0-13-135430-2". I have a copy available.
Programming Assignment
Here are the slides for the assignment. Slides 17
through 20 introduce the input and output formats as presented in class.
The source code files can be found from
this link.
These files now (as of Oct. 4) contain the source code for a program called verify_eda as
well as a program called kcr-stub. See the enclosed README. Briefly,
these programs test the output of your tool, and the flow of all tools
including verify_eda, respectively.
Important note for visualization:
It appears that there is a bug in Mozilla Firefox that disables the rendering of SVG files if they are not retrieved via http://. If you are searching for a good way of drawing/showing SVG files, consider Inkscape. It also has a view-only solution, inkview.
However, Internet Explorer with Adobe SVG viewer can also render the SVG files that are produced.
Studying the book
The book course book is "Algorithms for VLSI Design Automation" by Sabih H. Gerez, published by Wiley. It is available at the ETV.
Presentation Material
Here are the slides, in pdf-2up format.
- 00 pdf About the course
- 01 pdf Introduction to EDA
- 02 pdf Background on graphs and computation
- 03 pdf General optimization techniques
- 04 pdf Compaction
- 05 pdf Placement and Partitioning
- 06 pdf Floorplanning
- 07 pdf Local Routing
- 08 pdf Global Routing
- 09 pdf Simulation part 1
- 10 pdf Simulation part 2
- pdf Instructions for the clock tree synthesis assignment
- pdf Information about exam and example questions
- pdf Background info about clocking (not used).
- dijkstra.py Python code for Dijkstra Shortest path algorithm.
- fib.py Python code for Fibonaci numbers, demonstrating dynamic programming in 2 ways, as well as a recursive algorithm.
Getting Started with programming
See this file. Manuals for most gnu programs, including gcc, make, bison, that you will need are online at the gnu site. Linux documentation can be found at tldp.org. Contains lots of information, for beginners and advanced system administration tasks.
Cygwin
See cygwin for a free Linux-like environment for Windows. It consists of two parts: (1) A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality and (2) a collection of tools, which provide Linux look and feel. In particular, it offers the standard Linux programming tools including gcc, make, bison, flex, etc. For most types of programs it is relatively easy to ensure portability between programs written in a real Linux environment and in a cygwin environment under windows. Note that cygwin can make for an easy introduction into the world of Linix without feeling completely lost (from Windows).
Free VLSI Design Systems
Electric is a freely available system, including source code, for VLSI Design Automation. It is (re)written in Java by Steven M. Rubin. See here. An online course book "Computer Aids for VLSI Design" by the same author is here.
Further Reading
- About the P vs NP issue: Fortnow, L. 2009. The status of the P versus NP problem. Commun. ACM 52, 9 (Sep. 2009), 78-86. DOI
More Links
| unix/linux | tutorial | Unix help | Utah help | Utah tutorial |
| book | gerez book |
| animations | collected algorithm animations | voronoi/delaunay animation | cadapplets | morris |
| conferences | dac | iccad | date | aspdac | prorisc | spi | epep | glsvlsi | iedm | iscas | ispd | isqed | slip | tau | therminic |
| ieee xplore | xplore | TCAD | SSC | TVLSI | MTT |
| misc literature | google scholar | citeseer | acm portal | tud library |
| algorithms | stony brook algorithm repository |
| software | geda |
| organizations | itrs | fsa | sigda |
| computing | stroustrup's C++ site | cprogramming.com | burks | C++ virtual library | lattice computing links | C++ for C programmers | C++ coding standard |
| VLSI | dacafe | fsa |
| eda companies | cadence | agilent | synopsis | magma | optem |
| misc | dict. of alg. and datastructures | morris dsa course |