Guide For The VLSI Chip Design CAD Tools at Penn State, CSE Department
Guide For The VLSI Chip Design CAD Tools at Penn State, CSE Department
University Park
1. Introduction
The objective of this tutorial is to give you a quick overview to (1) setup the Cadence and Synopsys hspice tools for your
account in IST 218 Lab, (2) use the schematic editor, (3) use the hspice tool, (3) use the chip layout editor - Cadence
Virtuoso, and (4) use DRC, Extract, LVS tools. This guide may be updated as needed during the semester, any user
comments are welcome.
Step1.
Login to a machine in room 218 IST Building. Bring up a terminal window where you can type a UNIX command. Then
type the following:
% /home/faculty/kyusun/c411x/bin/class411setup
This setup needs to be done only once for this semester.
Now for the setup to take effect, you logout and login again.
Step 2.
Make your own class directory(folder) for CMPEN 411 class. I made:
% mkdir c411
The c411 is the name of your class directory(folder). You can use any name you like. This directory will be containing
all your homework, project, exam, etc. design directories and files. ls or ls al unix command will list your directory
contents and you will see the c411 subdirectory.
Directory structure:
For the grading, one must collect all files of each design project under one directory. Student will tar and zip the
directory of their design project and turn-in for grading. Any missing files may cause the design project verification to fail.
So each design project must be stand-alone, self-contained, and independent of other projects. For example, the design
project for homework 2 may include homework 1 inverter design. In this case, the inverter design files must be physically
copied into the homework 2 directory; otherwise, the turned-in homework 2 project cannot be verified due to missing
homework 1 inverter files.
Step3.
Change your current directory to c411 by typing:
% cd c411
Now you may create your design project directory. For a short tutorial presented in this guide, create hw0 directory:
% mkdir hw0
You need to set up your directory for the CAD tool use. So type:
% runcds
This command needs to be done only once for each design project directory. (When you do homework 2 project later,
you will need to create hw2 directory, and you would need to cd to that directory, and do runcds once again for that
directory.)
Now start the Cadence tool by typing the following:
% virtuoso &
Then the CIW (Command Interpreter Window) and the library manager should pop up.
Figure 3d CIW Window with NOT proper starting, Library Manager does NOT pops up
If you see the Library Manager on your screen, your set up is proper. If you do NOT see the Library Manager and see the
*WARNING* message in CIW window, your set up is not proper, you can still use Cadence Virtuoso tool and do the work
but you need to see the lab-support staffs in room 111 IST Building to update your account. You need to also send email
to:
[email protected]
Step4. Optional connecting to the Lab 218 IST machines from home or campus
You can connect to the Lab 218 IST machines from home Windows PC and do the VLSI design work at home. You will
need the following:
VPN
SSH
- http:// downloads.its.psu.edu
- http:// downloads.its.psu.edu
Plus you will need one of the following X11 clients running on your Windows PC:
Xming
Xmanager
Xwin32
Exceed from Hummingbird
cygwin ('XWin -multiwindow' command)
Once you have the above programs installed on your Windows PC, follow the steps below to connect to the Lab 218 IST
machines:
Run VPN, set ISP to CSE
Run X11 client program
Run ssh terminal, login one of the following machines:
p218inst10
p218inst15
p218inst20
p218inst25
p218inst30
p218inst11
p218inst16
p218inst21
p218inst26
p218inst31
p218inst12
p218inst17
p218inst22
p218inst27
p218inst32
p218inst13
p218inst18
p218inst23
p218inst28
p218inst33
p218inst14
p218inst19
p218inst24
p218inst29
Double click on the ssh shell to start the ssh Terminal session.
Click on the Settings and be sure to check on the Tunnel X11 connection as shown below.
Once the ssh shell started, click on Quick Connect and type the followings, for example:
Host Name:
User Name:
Port Number:
Authentication Method:
alderaan.cse.psu.edu
your_cse_user_id
22
Password
Once you are logged-in, type xclock & to see if X11 is properly working. You will see a new clock on your screen.
Otherwise X11 is not working.
Once the X11 is working, you may resize you ssh Terminal and change fonts if you like. Then be sure to save Settings
and save Layout, these menu options are located under the File menu tap.
Schematic design and entry transistors, symbols, input pins, output pins vdd pin, and gnd pin
Schematic check check and save
Schematic spice netlist file creation
Hspice simulation of the netlist file from the schematic
Schematic symbol creation
6. Layout design and entry pmos, nmos, ptap, NTAP, input pins, output pins, vdd! pin, and gnd! pin
7.
8.
9.
10.
11.
4. Generate schematic
We use latest Cadence tool, however the almost all the older Cadence schematic and layout editing tool procedures are
the same. In this section, we will create our own library and generate a schematic of inverter.
Step1.
Create a library that holds all our designs named mylib.
In the CIW window,
a) Select File -> New -> Library.
b) Enter the library name mylib.
c) Select the option Attach to an existing technology library.
d) Press OK, another window will pop up. Choose the library NCSU_Techlib_aim06 and press OK. Then, a library using
the AIM 0.6um technology is created.
Step2.
Create a new schematic view of inverter.
a) Select File -> New -> Cellview.
b) Choose mylib and enter the cell name inv in the pop-up window.
Check the design. Select Check -> Current Cellview to check the design. Errors will be displayed in the CIW. Correct any
errors.
You can find further instruction from Help option in CIW. There are many detailed tutorials in this option.
Step2.
Select Launch -> ADE L, the Analog Design Environment window pop up.
Step3.
Select Setup->Model libraries, add two models ami06N and ami06P from ncsu/models/hspice/public/publicModel/
Step4.
Select Simulation->Netlist->Create to generate the following netlist:
Step5.
Without any changes, Save the file as inv.s using the File -> Save As menu. Now you must create inv.hsp file with the
following content:
VDD 5.0
CLK 5.0
RISE 0.1
FALL 0.1
in
01010
..cload out 0 20fF
You may use any text editor of your choice. One I use is gedit program. You can type:
% gedit inv.hsp &
And select Create New File option if asked.
To create the hspice file to simulate your design, I have created hsp50 command script. PWL (Piecewise Linear
Function) voltage source is assumed for signal sources. You may change the parameters above to experiment how the
hspice simulation can be designed. The last line ..cload out 0 20fF is an actual spice line which proceeds with two
periods. This adds 20fF capacitor at the out node. Once the above 6 lines are typed, Save the file (saved as inv.hsp).
Then type hsp50 inv to create inv.sp file. Both inv.s file and inv.hsp file are combined into the inv.sp file.
Step6.
Now hspice simulate your schematic netlist using the following command:
% hspice inv.sp
Be sure to read the hspice output, it must say it completed and not aborted. The tpd value in the result is the propagation
delay of the inverter. Once the hspice is successfully completed, you can see the input and output waveform. Type the
following command to plot the simulation output:
% sc inv.tr0 &
Choose the inv.tr0 from the Output View window of the SpiceCheck (sc) window and expand it. Then select in and out
signals, drag them to the Waveview window. You may explore other features of the SpiceCheck program to measure the
signal statistics.
6. Generate layout
In this section, we will draw the layout view of the inverter. A layout describes the masks from which your design will be
fabricated. The layers in a layout describe the physical characteristics of the device and have more details than a
schematic. Therefore, layout verification of your design is critical. There are two types of layout design: Full-Custom and
Automated. Full-custom layout is when the user physically draws all of the layers for the individual transistor. This is a
very tedious process, but it usually enables results in a compacter design than the automated process. The automated
process, on the other hand, is done by instantiating standard cells (reusing basic blocks) and usually takes more area but
it is much faster. We only introduce custom layout design here.
You should follow MOSIS SCMOS design rule for AIM 0.6m:
http://www.mosis.com/Technical/Designrules/scmos/scmos-main.html
The inverter consists of three parts -- p-transistor, n-transistor, and connections.
From: 0 To: 20
Step2.
Create a instance of pmos transistor.
1. Select Create->instance. Then click on the Browse.. button. Wait for the Library Browser to pop up.
2. In the Library Browser, Choose NCSU_TechLib_ami06, select the cell name pmos, and select layout view.
3. Place the pmos in the layout editor and get the following layout:
Step3.
Place a nmos as in step2.
Step4.
Draw the gnd next to the Nmos
1. Select the pselect layer from the LSW window; we will draw the pselect enclosing the substrate (connected to the gnd)
contact for the N transistor
2. Select the Create->Rectangle
3. Draw the pselect on the cellview; it will have to enclose the contact p-active by at least 0.6.The pselect abuts directly to
the nselect of the N transistor, but they should not overlap.
4. Select the pactive layer from the LSW window
5. Draw the pactive island on the cellview to be 1.2 wide by 1.5 tall; it must be enclosed by the pselect by 0.6.
6. Add contacts in the center of the substrate-contact island.
Step5.
Draw the Vdd next to the nmos as in the previous step.
Step6.
1. Connect the source of p-transistor to the well-contact using the metal 1 layer.
2. Connect the source of n-transistor to the substrate-contact with the metal 1.
3. Add a contact to the gate (poly)
Step2.
Layout of P-transistor with L=0.6m and W=1.5 m.
Since we are using the Nwell process technology, the substrate will be p-substrate.
We will create a pmos transistor first. To do that we need an Nwell in which the pmos
transistor will be formed.
Step3.
Draw the vdd and gnd as in section 5.1.
Step4.
Add Pins to the layout. Use metal 1 layer for the power supply pins: "vdd!" and "gnd!" Be sure to use the "!" in the power
supply pin names - it will match with pin names generated by the schematic components: vdd and gnd. This is important
for the hspice simulation and LVS checking later. Then add "in" and "out" pins, again on metal 1 layer if possible.
Figure 19 DRC
If your design has violated any design rules, DRC will reports the errors in the CIW.
Errors are indicated by the markers (white color) on the circuit. You may then proceed to correcting the errors according
to the design rules. For huge layouts, the marker might not be easily located. To find markers, choose Verify ->
Markers -> Find in layout window.
A pop-up menu will appear. Select on the Zoom to Markers box.
Click on the Apply button and Cadence will zoom in to the errors or warnings as desired.
Step2.
Get the extracted view of the layout:
Select Verify -> Extract
Click the Set Switches button.
Select Extract_parasitic_caps option. If you use capacitors or resistors, like in many
analog applications, select Extract_cap and Extract_resistor also.
Step 3
Open the extracted file. Open -> cell name: my_inv -> view name: extracted. You will
see a extracted view:
Step4.
Similar to section 4, Select Launch -> ADE L, and select models
Step5.
Select Simulation->Netlist->Create to generate the following netlist. Compare with that in section 4.
Step5.
Save the file as inv_layout.s using the File -> Save As menu. Now you must create inv_layout.hsp file with the
following content:
VDD 5.0
CLK 5.0
RISE 0.1
FALL 0.1
in
01010
..cload out 0 20fF
You may use any text editor of your choice. Save the file. Then type hsp50 inv to create inv_layout.sp file. Both
inv_layout.s file and inv_layout.hsp file are combined into the inv_layout.sp file.
Step6.
Now hspice simulate your schematic netlist using the following command:
% hspice inv_layout.sp
Be sure to read the hspice output, it must say it completed and not aborted. The tpd value in the result is the propagation
delay of the inverter. Once the hspice is successfully completed, you can see the input and output waveform. Type the
following command:
% sc inv_layout.tr0 &
Choose the inv_layout.tr0 from the Output View window of the SpiceCheck (sc) window and expand it. Then select in
and out signals, drag them to the Waveview window. You may explore other features of the SpiceCheck program to
measure the signal statistics.
The tpd value in the result is the propagation delay of the inverter. Compare with the result from section 4.
Keep the default set up and create the symbol view of inverter.
In the schematic view window, select Launch->Layout XL. We will see the XL Editor and two layout instances in the right
window. Note that you should connect the two layout of inverters with Metal2 layer manually (the automatic layout
generator doesnt create wire connections).
9. LVS
The LVS rule check is to verify the consistence between the layout and the schematic. The layout should verified before
the further simulation.
Since now we have already got the schematic and extracted views of inverter. We could do the LVS check with the
extracted view. Open the extracted view and choose Verify->LVS, the following window will pop up. De-select the rule
library and input the LVS Rule file /home/faculty/kyusun/c411/ncsu-cdk-1.6.0.beta/techfile/divaLVS.rul
Figure 24 LVS
Press RUN. If the layout is consistent with the schematic, we could get the following promotion:
Disconnection mismatch