• DEPARTMENT
    • Overview
    • Computing
    • Facilities
    • Organizations
    • Scholarship Awards
    • Employment
    • Advisory Committee
    • Contact
  • ACADEMICS
    • Undergraduate
      • Computer Eng.
      • Electrical Eng.
      • Ambassadors
    • Graduate
      • Information for Prospective Students
      • ECE Graduate Handbook
      • Graduate Forms
      • Ph.D. Qualifying Exam
      • Distance Education
      • Frequently Asked Questions (FAQ)
    • Courses
    • Student Survival kit
    • Distance Learning
  • PEOPLE
    • Faculty
    • Staff
  • PROSPECTIVE STUDENTS
    • Overview
    • FAQ
    • Considering ECE
    • Scholarships
    • PC Requirements
    • Office of Admissions
  • RESEARCH
    • Overview
    • Signal Processing & Communications
    • Digital Systems & Microelectronics
    • Power & High Voltage
    • Research Centers
      • Emerging Materials Research Laboratory
      • High Voltage Laboratory
      • Robotics
    • HPCC
  • ALUMNI
ECE4263 Intro to VLSI - Ece
Personal tools
  • 38.107.191.107
  • Talk for this IP
  • Log in
Views
  • Page
  • Discussion
  • View source
  • History

ECE4263 Intro to VLSI

From Ece

Jump to: navigation, search

ECE4263 Introduction to VLSI (course home page) is a single-semester course in the Department of Electrical Engineering at Mississippi State University. In spring 2007, the course is taught by Robert B. Reese.

This is the official wiki page for Intro to VLSI. All students are welcome to add to this page any wisdom that may be helpful to other and future students in the class. Dr. Reese has provided some possible topics that students may want to use for contributions; other headings may be added. Obviously, any objectionable content will be removed as soon as it is discovered, and the author will be ... contacted.

Contents

  • 1 Lecture material
  • 2 Java Electric
    • 2.1 Launching Java Electric from a Windows GUI
    • 2.2 Launching Java Electric from a Linux GUI
    • 2.3 Editing Tips
    • 2.4 Debugging NCC errors
  • 3 Cadence Spectre
  • 4 Synopsys JupiterXT
  • 5 Homework
  • 6 Lab exercises
  • 7 Textbook
  • 8 Random thoughts
  • 9 External links

Lecture material

  • Buy (erasable) colored pencils or (erasable) crayons or (erasable) markers for class. Colors are needed when drawing stick diagrams to identify different metals and conductors.

Java Electric

  • You need to have the Java Runtime Environment or SDK installed before trying to run electric. Go to www.java.com and press the 'free Java download' button to download the latest version of the Java Runtime Environment.
  • When right clicking in a Web browser and saving the Java Electric JAR archive, ensure that the file extension is saved as .jar. Some browsers will save it by default with a different extension, such as .zip, and executing this incorrectly labeled file will not produce the expected result.
  • Before right-clicking and downloading, ensure you are logged into the ECE domain. Otherwise your browser will download a 1KB junk file (this is a problem on the Linux machines primarily!) If you're still having trouble downloading the file in linux, try running the following command:
>: curl -u ECEUSERNAME http://www.ece.msstate.edu/courses/ece4263/private/electricGNUIRSIM.jar > electricGNUIRSIM.jar

If the URL location of electric changes, simply update the URL above with the new URL. Lastly, you can check to verify the jar file was downloaded correctly by using the following command:

>: file electricGNUIRSIM.jar 
The result should read:
electricGNUIRSIM.jar: Zip archive data, at least v1.0 to extract 
  • If you are having problems running Java Electric on Windows, try running it from a command prompt with the command:
>: java -jar electricGNUIRSIM.jar

Launching Java Electric from a Windows GUI

  • This changes the max allocated memory for all JVM instances (Electric does not always need that much).
  • These directions assume you have admin access and the JRE already installed (confirmed on jre1.5.0_10).
  • Start the Windows Registry Editor and find the following key:
HKEY_CLASSES_ROOT\jarfile\shell\open\command
  • The Default string value should contain a path to your installed version of Java. Edit the string so that
-jar "%1"

becomes

-jar -mx1000M "%1"

The default maximum allocation is now 1000 MB instead of ~66MB. You should now be able to start Electric by double-clicking.

If you'd rather not edit the registry and want to change the memory only for Electric, then instead simply create a shortcut on your desktop (Right-click→New→Shortcut). Enter the following, editing for your JRE path and .jar file path:

"C:\Program Files\Java\jre6\bin\javaw.exe" -jar -mx1000M "C:\electric-8.05e_java6.jar"

Launching Java Electric from a Linux GUI

  • Use a text editor and create new file called 'javaElectric.sh', place this in the same directory as the electricGNUIRSIM.jar achive.
  • Edit the file to contain the following commands
#!/bin/sh
# Java heap size, in megabytes
JAVA_HEAP_SIZE=1000
DEFAULT_JAVA_HOME="/opt/java/jdk1.5.0_04/jre"
if [ "$JAVA_HOME" = "" ]; then
JAVA_HOME="$DEFAULT_JAVA_HOME"
fi
exec "$JAVA_HOME/bin/java" -mx${JAVA_HEAP_SIZE}m ${GNUELEC} -jar "./electricGNUIRSIM.jar" $@
  • You may have to change the pathname for DEFAULT_JAVA_HOME to the location of Java on your system.
  • Open a shell window, change to the directory containing 'javaElectric.sh' and javaElectric.jar
  • Give the 'javaElectric.sh' file execute permission by doing
chmod +x javaElectric.sh
  • Execute the shell script by the command:
./javaElectric.sh

Editing Tips

  • When you open the library for Lab 1 for the first time, it will ask you whether or not to use the new settings (the one with the library) or keep the old settings (save as a .elib file). You want to use the NEW settings. If you don't do this, you can recover from this later by saving your modified library with a different name. Then open the original library, and this time choose 'New settings' (this modifies some internal Electric properties). Now open your modified library, and when it asks if you want to use the new library settings or the currrent settings, use the 'current' settings.
  • When saving libraries, you can save as either a .jelib file format or a .elib format - either one works, but the lab submission scripts expect a .elib file. Please do NOT save a library in .jelib format, and then edit the file extension to be .elib (or vice versa) - this will cause Electric to think that the library is corrupted.
  • There is only one time you should be using a PURE layer, and that is for filling in NWELL gaps using an NWELL node. You will need to toggle the special select arrow in order to select this, and then use the Cell Properties menu to edit the X, Y size.
  • UNDO is your friend!
  • To run wires, such as a metal 1 wire, or poly wire, use the MISC PIN element to put down a wire pin, then left click to select the pin, and right click on a destination node to run the wire. NOT use pure layers for connection! This does not really create a connection, it just looks like the elements are connected.
  • Connections are NOT created when two layers are simply abutted to each other. So, if you take two cells, and abut them, the VDD and GND rails are not connect in the neighboring cells. You have to create wires between them in order to connect them.
  • The arrow keys are your friend after selecting an object and then you want to move it!
  • To discover the grid resolution (measured in lambda), see Preferences.Display.Grid
  • If you have to copy cells between libraries (Cross Library copy) the safest way to copy a hierarchical design is to copy the top cell in the hierarchy, and ensure that 'Copy Subcells' and 'Copy all related views' are checked. Any other method seems to result in copied views that are missing connections.
  • If the text on cells are too big, use 'ctrl -' (control minus) to shrink all text on screen.
  • To force all objects to snap to grid points, in File:Preferences:Display:Grid choose 'Full' for 'Alignment of Cursor to Grid'.

Debugging NCC errors

  • Start with wires tied to input nodes. Look at the difference between the list of transistors that it says are connected in the schematic, and the ones in the layout. When it says 'NMOS 2stack', the 'stack' means that two transistors are tied in series. If it says 'NMOS gate', it means an NMOS transitor in parallel with other transistors.
  • If you get a 'hash' error in NCC, it means the ordering of the transistors in a stack are different between schematic and layout. For example, you may have two transistors in series in the schematic, with the transistor whose gate is tied to input 'A' coming first in the stack, and the transistor whose gate is tied to input 'B' coming second in the stack. If this ordering is reversed in the layout, you will get a 'hash' error.

Cadence Spectre

Synopsys JupiterXT

Homework

  • Don't forget to do it! The Homeworks section of the course home page could be easily overlooked.

Lab exercises

Submission

  • If your netid@ece.msstate.edu email address forwards to an external address, ensure that external address accepts .zip attachments with executable files (extension .cmd specifically) inside. Gmail has been identified to reject emails with executable files attached. This prevents you from receiving your copy of the lab submission, even though the script says the mail was sent. Dr. Reese will still get his copy, though, since it was sent in a separate command in the script.
  • The provided Perl submission script halts if it creates a ZIP file over 1,000,000 B in size. Remove not only any extra files (typically directories with raw simulation output) in the labN directory but also the abandoned netid_labN.zip file (usually located one level above the labN root). This ensures that the next execution of the submission script creates a new ZIP file instead of refreshing the previous one.

Lab 1

  • Get an early start so to familiarize yourself with the software.
  • When setting preferences, make sure the correct window is in focus before going to File > Preferences. Preferences for the layout window can be different from the preferences for the schematic window.

Lab 2

  • Using the layout on the inside front cover will save you some time - yes, this is okay to do. One of the goals of this lab is to make you familiar with more complex layouts, and I do not expect you to be able to come up with this on your own.
  • Terminal c must be available in metal1 at the bottom of the cell, cout at the top in metal 1. These two terminals should align VERTICALLY, so that when one full adder cell is stacked on top of the a second full adder cell, the cout from the bottom full adder can be easily connected to the c terminal of the top full adder.
  • Do not change the names of the terminals on the icon views of the cells; i.e., don't change terminal s to be named sum because you have found a schematic that uses that terminal name. These cells are used in larger designs, and the designs expect the terminal names that are originally on the icon views. If you export a terminal from your schematic with a different name, both terminals will show up in the icon view, further confusing things.
  • The lab writeup specifies that there must be space for at least 5 metal2 tracks over the top of cell - if you do not do this, then you run the risk of being unable to do the needed routing over the top of this cell in the next lab, and you will have to redo your fulladder layout. Five tracks is somewhat overkill, but do not leave less than three.

Textbook

  • The international edition of the textbook is available on the Internet if you so choose to obtain it. You assume all responsibilities of purchasing this edition of the textbook. The edition by Pearson Education Asia (ISBN 81-7758-568-1), for example, omits some end-of-chapter review problems.

Random thoughts

  • Do not get dropped out of an airplane into a vast ocean without a textbook as a life preserver.

External links

  • Course home page
  • How to write using Wiki markup
Retrieved from "http://www.ece.msstate.edu/wiki/index.php/ECE4263_Intro_to_VLSI"
Category: Undergraduate courses
Navigation
  • Main Page
  • Community portal
  • Current events
  • Recent changes
  • Random page
  • Help
SEARCH
TOOLBOX
LANGUAGES
 
Toolbox
  • What links here
  • Related changes
  • Upload file
  • Special pages
  • Printable version
  • Permanent link
Powered by MediaWiki
  • This page was last modified on 4 February 2009, at 00:07.
  • This page has been accessed 5,739 times.
  • Privacy policy
  • About Ece
  • Disclaimers

Mississippi State University Home| PO Box 9571, Mississippi State, MS 39762 | Main Office: 1.662.325.3912

Bagley College of Engineering | Mississippi State University| Legal| Webmaster| Intranet

Page modified: Tue, 23 Sep 2008 15:18:39 CDT