8/9/2019 Virtuoso Tutorial
1/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
Virtuoso Schematic, Layout, and Verification
This tutorial will cover the basic steps involved in
• Accessing the Cadence tool called Virtuoso on GLUE• Creating a schematic in the Virtuoso Schematic Editor • Creating and extracting a layout with the Virtuoso Layout Editor • Veri ying the layout!s manu acturability with "esign #ule Chec$ing• Veri ying the layout!s unctionality with Layout Versus Schematic %LVS&
The document covers schematic and layout creation o a simple '()S transistor or illustrative purposes* (ore details about using Virtuoso can be ound in the #e erences section and undercdnshelp * To launch Cadence documentations application+ type cdnshelp at the terminal*
Notes: We shall assume that you are using a Windows Operating System and are familiar with
basic Linux system commands (creating directories, deleting files, etc. .
Contents
, ',T,AL,-AT,)' *****************************************************************************
SET U/ A'" STA#T V ,#TU)S) ****************************************************************
C#EATE A 'E1 L,2#A#3 ********************************************************************
C#EATE A SC5E(AT,C 1,T5 V ,#TU)S) ********************************************************
C#EATE A'" VE#,73 A LA3)UT 1,T5 V ,#TU)S) ***********************************************
# E7E#E'CES *******************************************************************************
I NITIALIZATION
, you are wor$ing in 1indows+ the ollowing so tware will be needed or the tutorial*
.* #min$% 9ming is a ree+ open source 9:1indows terminal emulator %9 Server& that runson (icroso t 1indows computers* ,n simplest terms+ 9ming allows you to run an 9application a ter connecting to a remote server using SS5* ,t is available at
http;
8/9/2019 Virtuoso Tutorial
2/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
S ET UP AND START V IRTUOSO
.* Start #min$% , 9ming is started correctly+ it should appear in your system tray*0* Start and confi$ure &u''(% ,n the Category portion o the /uTT3 Con iguration
window %le thand side&+ select the subcategory ?S55@ o ?Connection*@ Then+ select?9..@ which opens the )ptions controlling SS5 9.. orwarding* Under 9.. orwarding+
ma$e sure that ?Enable 9.. orwarding@ is chec$ed %see 7igure .&* 'ext+ go to thesubcategory ?"ata@ o ?Connection*@ Under Login details+ enter your Auto:loginusername %see 7igure 0&* Note you username should be your login name for accessing
!y"!#, testudo, campus e$mail, etc. #eturn to the 2asic options or your /uTT3session by clic$ing ?Session@ in the Category portion o the Con iguration window*Under 5ost name and port+ write linux.glue.umd.edu and 22 respectively* 7orConnection type+ choose SS5 %see 7igure 4&*
"i$ure )* Set #)) "or+ardin$ "i$ure * Set Username
"i$ure -* Setu! and Save Session .!tions
"i$ure 4* Command &rom!t
8/9/2019 Virtuoso Tutorial
3/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
4* Save the &u''( settin$s% ,n order to avoid repeating these steps the next time you wantto use Virtuoso+ you should save the session* This can be done by naming the session inthe Saved Sessions bar and clic$ing the Save button* , done correctly+ the name o yoursession will appear in the box next to the Load+ Save+ "elete buttons* To retrieve your
settings+ select the session you named and clic$ the Load button %see 7igure 4&*6* .!en a &u''( session% Clic$ the )pen button at the bottom o the window* ,n theterminal window that opens+ you will be prompted or your password* Note you password
should be the one you use for accessing !y"!#, testudo, campus e$mail, etc. Thecommand prompt will appear upon entering your password %see 7igure 6&*
* Virtuoso Setu!% Create a directory % mkdir & you want to put your designs in and change%cd & to that directory* ,n the terminal+ type the command tap cadenceIC6 and clic$enter* Note this command is re%uired e&ery time you begin a new 'u ) session and
gi&es you access to the *adence tools * ,n order to use Virtuoso+ you!ll also need to setupthe 'orth Carolina State University C"B design technology iles . To do so+ simply runthe ollowing two commands
%i& cp/afs/glue.umd.edu/department/enee/software/cadenceIC6/linux/inst/ncsu-cdk-1.6.0.beta/.cdsinit .
%ii& cp/afs/glue.umd.edu/department/enee/software/cadenceIC6/linux/inst/ncsu-cdk-1.6.0.beta/cdssetup/cds.lib .
to copy the two iles to your current directory %note that there is a space be ore the last period&*
8* Launch Virtuoso% Type irtuoso ! ! and press enter* A ter a ew moments+ Virtuososhould start and the Command ,nter ace 1indow will appear %see 7igure &*
"i$ure /* Command nterface 1indo+ 2C 13
Note: +f you are ha&ing trouble logging into L"- or launching irtuoso, please contactthe -*- helpdes/ at ecehelpDece*umd*edu . 0or additional documentation on irtuoso,type cdnshelp in the terminal after the abo&e tap commands.
C REATE A NEW LIBRARY
1hen starting a design in Cadence+ the irst thing to do is to create a library where you can storeyour designs* Every library is associated with a technology ile and it is the technology ile that
8/9/2019 Virtuoso Tutorial
4/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
supplies all the color maps+ layer maps+ design rules+ extraction parameters re uired to view+design+ simulate+ and abricate your design* To create a new library+ goto ToolsFLibrary(anager in the C,1* Note if you performed the abo&e Virtuoso Setu! steps properly, you will
see the N*S" technology libraries in the directory (see 0igure 1 . Then in the Library (anagerwindow+ goto 7ileF'ewFLibrary* 1hen the ?'ew Library@ window opens+ enter the name oyour library and press the )B button* Then choose 2ttach to an existing technology library and
press the )B button* Choose "C#$%&ech'ib%tmsc02 as the technology library and press)B*
At this point+ you have created a library to store your design and can start the design process* 7or a ull custom design+ the process will proceed by creating the ollowing; schematic+ symbol+ andlayout* ,n this tutorial+ we shall ocus on creating new schematics and layouts or an '()Stransistor*
"i$ure 6* Li rary Mana$er +ith NCSU li raries
C REATE A SCHEMATIC WITH V IRTUOSO
.* Create a Ne+ Cell% 1e shall begin with the Virtuoso Schematic Editor* To create a newcell schematic+ highlight the library you created in the previous section and goto7ileF'ewFCell View in the Library (anager* ,n the ?'ew 7ile@ window+ enter thename o your cell* Set the view and type to ?schematic@ %see 7igure &+ and then press)B* , you receive any warnings about the version o the tool %L+ 9L+ G9L&+ =ust $eepclic$ing ?3es@ until the Schematic Editor opens*
0* Virtuoso Schematic Editor Menu% The ollowing menu items are re uently used while
creating a layout* ,t may also be worthwhile to be amiliariHe yoursel with their $eyshortcut commands* Some o the menu options are also accessible via the buttons belowthe menu*
"ileo Sa&e: Save your changes to the layout*
Edito "ndo: Undo the previous commands*
8/9/2019 Virtuoso Tutorial
5/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
o 3edo: #edo the previous commands*o !o&e ; Clic$ on any ob=ect once+ move it in the schematic editor+ and clic$
once to drop it*o *opy: Creates a copy o any ob=ect in the schematic* Clic$ on the ob=ect
you want to copy+ move the mouse to the desired location in theschematic+ and clic$ again to paste the copied ob=ect*
o #elete: "elete an ob=ect in the layout by choosing delete rom the menuand then clic$ing the ob=ect*
o 3otate: #otate an ob=ect IJ degrees by choosing rotate rom the menu andthen clic$ing the ob=ect*
Createo +nstance: Allows you to choose a part %transistor+ gate+ etc*& and place it in
the schematic* Choose the desired part by browsing the library+ and then place it by clic$ing once in the schematic editor*
o 'in: Create pins* 'ame the pin irst+ and then place it in the schematic byclic$ing once*
o Wire: Connect wires to terminals o the parts and pins by clic$ing the?yellow diamonds@ o the parts
8/9/2019 Virtuoso Tutorial
6/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
"i$ure 5* Create ne+ Cell layout
"i$ure * Com!onent 7ro+ser
"i$ure 8* (ello+ iamond 9!!earin$ in &in"i$ure )0* Com!leted NM.S Schematic
C REATE AND VERIFY A LAYOUT WITH V IRTUOSO
)% Create a Ne+ Cell% 'ext+ we shall discuss how to create a layout or the '()Stransistor* To create a new cell layout+ highlight the library you created in the Section ,,,and goto 7ileF'ewFCell View* ,n the ?'ew 7ile@ window+ enter the name o your cell*Set the view and type to ?layout@* Then press )B* , you receive any warnings about theversion o the tool %L+ 9L+ G9L&+ =ust $eep clic$ing ?3es@ until the Layout tool opens*
Note if you performed the abo&e Virtuoso Setup steps properly, the layers (pwell, nwell,
8/9/2019 Virtuoso Tutorial
7/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
etc. in the Layers Window (snapped to the lefthand side of irtuoso will ha&e differentcolors as shown in 0igure 55.
% Virtuoso Menu% The ollowing menu items are re uently used while creating a layout* ,tmay be worthwhile to amiliariHe yoursel with their shortcut $ey commands* Some o
the menu options are also accessible via the buttons below the menu* "ile
o Sa&e: Save your changes to the layout* Create
o 3ectangle: Creates a rectangle or the current layer selected in the Layerswindow* To create a rectangle+ clic$ the mouse once to start the rectangle+then drag+ then clic$ the mouse again to inish the rectangle*
o !ultipart 'ath: Creates a path o the layer selected in the Layers window*Clic$ once to begin a path then drag* To ma$e IJ degree bends in the path+clic$ once* "ouble clic$ to end the path*
o +nstance: Used to import another existing cell view into this cell view*/lace in the layout by clic$ing once*
o 'in: Create pins* /ins are created in the layout similar to rectangles* Edit
o "ndo: Undo the previous commands*o 3edo: #edo the previous commands*o !o&e ; Clic$ on any ob=ect once+ move it in the layout+ and clic$ once to
drop in bac$ into the layout*o *opy: Create a copy o any ob=ect in the layout* Clic$ on the ob=ect you
want to copy+ move the mouse to the desired location in the layout+ and
clic$ again to paste the copied ob=ect*o Stretch: Clic$ on the ed$e o a rectangle and re:siHe it by moving the
mouse and clic$ing again*o #elete: "elete an ob=ect in the layout by choosing delete rom the menu
and then clic$ing the ob=ect*o 6asic:
'roperties: Change the properties o ob=ects in the layout %Eg* thelayer the ob=ect corresponds to&*
'oolso 3uler: Creates a ruler or you to measure eatures in your layout* Clic$
once to start the ruler+ drag the mouse+ and clic$ once more to end theruler* The ruler will remain in the layout until deleted*
o *lear 2ll 3ulers: "eletes all rulers* Verify
o #3*: Chec$ the layout or design rule violations*o -xtract: Create an extracted view o the layout %used or simulations and
or comparison to schematics&*
8/9/2019 Virtuoso Tutorial
8/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
o !ar/ers: -xplain: Clic$ on the mar$ers to see what rule was violated* #elete all: #emove the mar$ers a ter a "#C run*
"i$ure ))* Virtuoso 1indo+ +ith Layers 1indo+
-% Set is!lay .!tions% 2e ore starting the layout+ you need ix the grid siHing* ,n the?Virtuoso@ window+ goto )ptionsF"isplay+ which will open the ?"isplay )ptions@window* Set the grid control parameters in the right hand upper corner to the desiredvalues %see 7igure .0&* Note that the unit of each parameter is in 7m. 3ou should set thegrid parameters to match the minimum eature siHe o your technology %i*e* M&* Suggested
parameters are shown in 7igure .0*
Layers1indow
8/9/2019 Virtuoso Tutorial
9/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
"i$ure ) * is!lay .!tions +indo+ and $rid s!acin$
4% ra+in$ an NM.S 'ransistor% As discussed above+ we will be creating an '()Stransistor layout in this tutorial* Note that the blac/ bac/ground in the initial layoutcorresponds to a p$substrate. Since we are designing an '()S+ we can place our activelayers directly in the p:substrate* Note that building a '!OS re%uires you to create an n$well.
The layers re uired to build the '()S are shown in 7igure .4* The layers are cc+ metal.+ pactive+ nactive+ poly+ nselect+ and pselect* 3ou can create each layer using the commandsdiscussed in Virtuoso Menu% The order in which the layers are created is not important*The only re uirement is that all the layers should be present* Note that the si8e of eachrectangle is a function of the display options you choose abo&e and should be chosen to
8/9/2019 Virtuoso Tutorial
10/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
pass the rules in the selected technology file. "esign rules to ollow can be ound at the()S,S website %eg* http;
8/9/2019 Virtuoso Tutorial
11/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
place a contact to connect the p:substrate to ground* The p:contact is complementary tothe n:contact and is made o cc+ p:active and metal. surrounded by a p:select rectangle*
"i$ure )4* NM.S 'ransistor Layout
/% esi$n ;ule Chec
8/9/2019 Virtuoso Tutorial
12/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
"i$ure )/* Create Sha!e &in 1indo+
"i$ure )6* NM.S 'ransistor Layout +ith &ins
* Layout E=traction and Verification% The layout extraction tool is used to generate acircuit netlist rom your layout* The extracted view can be used to run Layout VersusSchematic %LVS& or to run simulations* To run layout extraction tool+ go toVeri yFExtract* The Extractor window %see 7igure . & should appear* Clic$ on the ?Set
8/9/2019 Virtuoso Tutorial
13/14
ENEE640 Virtuoso Schematic, Layout, and VerificationUniversity of Maryland – ECE e!artment omenic "orte
Switches@ button* ,n the Switches Selection 1indow %see 7igure . &+ select?ExtractKparasiticKcaps@ and ?BeepKlabelsKinKextractedKview@ options as shown in theigure %hold Ctrl and clic$ on options to select multiple options&* Note that if the9-xtract parasitic caps; switch is turned on during extraction, the extraction toolcalculates the parasitic capacitances on all layers on the layout. Clic$ )B to close setswitches dialog and clic$ )B again on Extractor dialog to run the layout extraction* Theextraction report will appear in C,1 window when inished and should hope ully beerror: ree*
"i$ure )5* E=tractor 1indo+"i$ure ) * Set S+itches 1indo+
8/9/2019 Virtuoso Tutorial
14/14
R EFERENCES
)% E$arat Laohavaleeson+ irtuoso Schematic *omposer + available at http;
Top Related