+ All Categories
Home > Documents > Tutorial Icfb

Tutorial Icfb

Date post: 02-Jun-2018
Category:
Upload: jitendra-mishra
View: 223 times
Download: 0 times
Share this document with a friend

of 35

Transcript
  • 8/10/2019 Tutorial Icfb

    1/35

    Microelectronica

    Full-Custom Design with Cadence

    Tutorial

    AustriaMicroSystems C35B3 (HIT-Kit 3.70)

    Marcelino Santos

    rea Cientficade Electrnica

  • 8/10/2019 Tutorial Icfb

    2/35

    2

    Table of contends

    1. Starting Cadence ............................................................................................................................ 3Starting Cadence for the first time ..................................................... ............................................ 3Starting Cadence again .................................................... ........................................................... .... 4

    2. Creating the Schematic................................................................................................................. 4Creating a library and a schematic cell view ........................................................ ........................ 4Drawing the schematic ..................................................... ........................................................... .... 5

    Adding the MOS transistors ...................................................... ...................................................... 5Placing VDD and GND supply.................................................. ...................................................... 7

    Adding input and output pins .................................................... ...................................................... 7Adding wires and wire names................................................... ...................................................... 7Miscellaneous .......................................................... ............................................................ ............. 7Saving the design .................................................... ............................................................ ............. 8

    3. Creating the Symbol ...................................................................................................................... 8

    4. Schematic Simulation.................................................................................................................... 9Creating a test bench (schematic for simulation) .......................................................... .............. 9Simulating the schematic ...................................................... ........................................................ 11Waveform Window ............................................................ ........................................................... .. 13Expressions .................................................... ............................................................ ..................... 14Parametric analysis ........................................................... ........................................................... .. 15

    5. Creating the Layout...................................................................................................................... 17Starting the layout tool .................................................. ....................................................... .......... 17Layer Selection Window (LSW)...................................................... .............................................. 17Initialize the layout................................................... ............................................................ ........... 17Settings for the Virtuoso Layout XL Editor........................................................ .......................... 19Layout creation - placing the components ........................................................ .......................... 20

    Routing between the components .................................................. ............................................. 25Layout creation - miscellaneous..................................................... .............................................. 27

    6. Design-Rule-Check (DRC) .......................................................................................................... 28Starting DRC ............................................................ ............................................................ ........... 28Processing DRC errors................................................. ........................................................ ......... 29

    7. Extraction....................................................................................................................................... 31Starting extraction ................................................... ............................................................ ........... 31

    8. Layout-versus-Schematic Check (LVS Check) ..................................................................... 31Starting LVS checking .................................................. ....................................................... .......... 32

    Analyzing LVS results ................................................... ....................................................... .......... 32Parasitics probing .................................................... ............................................................ ........... 33

    9. Post-Layout Simulation.............................................................................................................. 34

    10. GDSII Export of the Cell Layout.............................................................................................. 34

  • 8/10/2019 Tutorial Icfb

    3/35

    3

    Acknowledgements:The author thanks Jos Jesus and Slvia Gomes for their precious helpin the elaboration of this tutorial.

    1. Starting Cadence

    Starting Cadence for the first time

    At first, open a terminal program and source the configuration file cad.init.

    > source cad.init

    Then create a directory for the project files and change to that directory.

    > mkdir cds_tutorial> cd cds_tutorial

    Then a script from AustriaMicroSystems is used to initialize the Cadence Custom IC Designtools with the process technology C35B3 (-tech c35b3). Also the Command InterpreterWindow (CIW) is started in mode Front-To-Back Design (-mode fb).

    > ams_cds -mode fb -tech c35b3

    After Cadence has been started two important windows appear:

    Command Interpreter Window (CIW): To start Cadence tools and enter SKILLcommands. The output of the running tools are displayed here and closing thiswindow causes the whole suite to close.

    Library Manager: To manage the cells with their various views in the libraries. Herenew cells and libraries are created. This tool can be started from the CIW via themenu bar: Tools - Library Manager.

    Close the whats new windows and select the C35B3C0 process.

    The library manager window (Fig. 1) can be used for opening existing libraries or cells orcreating new ones. The left column of the library manager window is a list of the current(accessible) libraries. Among these PRIMLIB contains the transistors you will need for theinverter.

    Left click at PRIMLIB. The middle column shows the elements of PRIMLIB. Left click atnmos4. This is the basic n-MOS transistor. In the third, rightmost, column you can seeseveral views of nmos4. You will need the symbolview for the schematic and the layoutview

    for building the layout.

  • 8/10/2019 Tutorial Icfb

    4/35

    4

    Fig. 1 Library Manager window

    Starting Cadence again

    If you want to start a new Cadence session in a directory where the Cadence tools havealready been initialized only the following commands are necessary:

    > source cad.init> cd cds_tutorial> ams_cds -mode fb

    2. Creating the Schematic

    Creating a library and a schematic cell view

    At first, a new library that will contain the data for the implemented cell must be created. Fromthe menu bar of the Library Manager select

    File - New - Library

    and enter a name for the new library, e.g. STUDENTS. In the next window we choose toattach the library to an existing techfile. After pressing OK the techfile can be selected: SetTechnology Fileto TECH_C35B3and press OK.

    Now we can start to create the schematic of our cell. Select the newly made library andchoose

    File - New - Cell View

    from the menu bar of the Library Manager. Enter a name for the cell in the appearing form(e.g. inverter1) and check whether the correct options are selected: Library Namemust be set

    to STUDENTS, View Name must be set to schematic and Tool must be set to Composer-Schematic in order to start the Virtuoso Schematic Composer. After pressing OK the

    Schematic Composer should start automatically.

  • 8/10/2019 Tutorial Icfb

    5/35

    5

    Drawing the schematic

    The following schematic is now entered into the Schematic Composer:

    Fig. 2 Schematic of the inverter.

    Before adding instances or wires in the inverter schematic, briefly read the Miscellaneous partin this section.

    Adding the MOS transistors

    First, add the pMOS and nMOS transistors. Select from the Composer menu bar

    Add - Instance(or use the shortcut )

    Fill out the form by hand or press the Browsebutton to search the libraries for the appropriatecell. The MOS transistors are in the library PRIMLIBand are calledpmos4and nmos4respectively. To place them in a schematic the selected Viewmust be symbol. After choosingthe right cell, parameters of the cell can be set in the form (Fig. 3). Change the default values

    of the transistor width (wpmos = 4 m and wnmos = 1 m) and place each symbol in theschematic using the left mouse button.

  • 8/10/2019 Tutorial Icfb

    6/35

    6

    Fig.3 Dialogue box for the transistor properties.

  • 8/10/2019 Tutorial Icfb

    7/35

    7

    To hide the Add Instance form during placing press the Hidebutton. To rotate or flip the cellpress the Rotate(shortcut ), Sidewaysor Uside Downbuttons.

    Placing VDD and GND supply

    Add instances of vdd and gnd supply cells which can be found in the library analogLib.

    Adding input and output pins

    To add input and output pins select

    Add - Pin(shortcut

    )

    from the menu bar and fill out the appearing form. Give a list of Pin Names separated byspaces, e.g. IN OUT, and select the direction of the first pin in the list (INis an input pin). Nowplace the first pin. To hide the Add Pin form, press the Hidebutton. To rotate or flip the pinpress the Rotate (shortcut ), Sideways or Uside Down buttons.

    After placing the first pin its name is automatically deleted from the Pin Names list and thenext pin direction can be changed and the pin placed. Place the input pin INand the outputpin OUT.

    Adding wires and wire names

    To add wires select

    Add - Wire (narrow)(shortcut )

    from the menu bar and place wires by clicking on the begin and end point of a wire. Connect

    the objects via their connection ports. If the mouse pointer is moved near to a connection portand the port is marked with the diamond symbol the wire can be quick-connected to that portby pressing .

    Don't forget to connect the bulk-ports of the pMOS transistors with VDD and the bulk-ports of the nMOS transistors with GND!

    To name a wire select

    Add - Wire Name(shortcut l)

    and fill in a list of wire Namesin the appearing form. To hide the Add Wire Name form during

    naming press the Hidebutton. Add the wire names in the order as the appear on the Nameslist by clicking the appropriate wire. Note that wires given the same name are connectedimplicitly. The wires connected to the vdd cell are automatically named vdd! and the wiresconnected to the cell gnd are automatically named gnd!.

    Miscellaneous

    To zoom in on the schematic select Windows - Zoom - Zoom in(shortcut ) and drag abox around the area of interest. Alternatively, right click and draw the rectangle to zoom in.

    To fit the schematic window to the current design select Window - Fit(shortcut ).

    To move an object:

    Very

    useful!

  • 8/10/2019 Tutorial Icfb

    8/35

    8

    Select the object and move the mouse pointer over it until the pointer changes to amove-object symbol. Press the left mouse button and move the object.

    Select Edit - Move(shortcut ) from the menu bar and select the object to move.

    To edit cell instance properties select the cell in the composer window and choose Edit -Properties - Objects(shortcut ) from the menu bar.

    In the Composer window you can see which command is currently activated and how manyinstances are currently selected. In the lower status bar you can see the current actionsassigned to the mouse buttons according to the currently activated command.

    Multiple objects can be selected by:

    Holding down the key and selecting the objects.

    Draging a box around them with the mouse pointer while pressing the left mousebutton.

    Other useful commands:

    command menu bar command shortcut

    copy object Edit - Copy

    detele object Edit - Delete

    rotate object Edit - Rotate

    undo last action Edit - Undo

    save the design Design - Save

    move within window, , ,

    redraw window terminate any command

    Saving the design

    Save the design by choosing

    Design - Check and Save(shortcut )

    from the menu bar. Possible errors are indicated by flashing markers. These markers can bedeleted by selecting Check - Delete All Markersand pressing OK.

    3. Creating the Symbol

    Creating a symbol of the cell is necessary if the cell should be instantiated in anotherschematic (i.e. the simulation schematic). The symbol defines the shape your cell will assumein another schematic.

    To create the symbol, open the cell schematic in the Virtuoso Composer and select

    Design - Create Cellview - From Cellview

    and check whether the appearing form is filled in correctly: To View Name must be set tosymbol and Tool / Data Type must be set to Composer-Symbol. After hitting OK the form

    Very

    useful!

    Very

    important!

  • 8/10/2019 Tutorial Icfb

    9/35

    9

    Symbol Generation Options appear where the initial positions of the pins can be chosen.Press OKafter assigning the pins to the desired lists.

    The Virtuoso Schematic Composer will open in symbol-editing mode and a default symbol willbe created for the cell. Now the symbol can be designed.

    After finishing the design of the symbol check and save it with: Design - Check and Save.

    The final symbol could look like this (click on the picture to enlarge it):

    Fig.4 Inverter symbol.

    After finishing the design of the symbol check and save it with: Design - Check and Save.

    4. Schematic SimulationCreating a test bench (schematic for simulation)

    The first step to simulate the inverter is to create a schematic with an instance of the newinverter1 (symbol). To create a schematic refer to section 2. Creating the Schematicof thisdocument. The schematic of the test bench must be created in the library STUDENTS andthe cell should be named inv_test.

    The inverter gate in the simulation schematic is of course the cell inverter1 from the librarySTUDENTS.

  • 8/10/2019 Tutorial Icfb

    10/35

    10

    Add a instance () of a DC voltage source between vddand gnd. Use the cell vdcfrom thelibrary analogLiband set the parameter DC Voltageto vdd_val V. By connecting this voltagesource to the cells vddand gnd,from the library analogLib, you are defining vdd and gnd forall the cells that use these labels.

    Fig.5 vdc instance with parametric DC voltage

    In order to generate the input signal for the simulation use a voltage source of type vpulse(rectangular signal) from the library analogLib. Define the voltage source with the followingparameters:

    V

  • 8/10/2019 Tutorial Icfb

    11/35

    11

    vpulse voltage source at

    input IN

    Voltage 1 3.3 V

    Voltage 2 0.0 V

    Delay time 0 s

    Rise time 5n s

    Fall time 5n s

    Pulsewidth

    45n s

    Period 100n s

    Note that all parameters in the previous table can be defined as function of parameters (e.g.Pulse with = input_slew; Pulse with = 50n-input_slew). These parameters must be assignedin the simulator environment, with a constant value or in a parametric analysis.

    We also have to name the input wire (e.g. IN) and the output wire (e.g. OUT) so that we canselect them during simulation and plot their voltage curves.

    Add a capacitor (cap) of 1pF to the output pin from the library analogLib.

    You should end up with the test bench of Fig. 6.

    Fig. 6 Test bench for the inverter transient simulation.

    Simulating the schematic

    After creating the simulation schematic you are ready to simulate the inverter gate. Selectfrom the Composer window of the simulation schematic

    Tools - Analog Environment

    vdc = vdd_value

  • 8/10/2019 Tutorial Icfb

    12/35

    12

    The following simulator settings have to be made:

    menu bar command details

    Setup - Simulator/Directory/Host- Set Simulatorto spectreS- Also the Project Directorycould be changed here

    Setup - Model Path

    - Check the model library files. In some cases the library/soft/ams/3.7/spectres/cmos53/tm is referred as cmos15/tm.Double click the library to change, edit and select the CHANGEbutton.

    Setup - Temperature - Set Degreesto 25

    Setup - Environment- Switch View Listshould be set to spectreS cmos_sch schematic- Stop View Listshould be set to spectreS ahdl

    Analyses - Choose

    - SetAnalysisto trans- Set Stop Timeto 200n-Accuracy Defaultsshould be set to conservative- A description of the analysis will be listed in the fieldAnalysesof

    the Virtuoso Analog Environment tool- To edit theAnalyses entries either double-click on an entry orselectAnalyses Chooseagain

    Variables - Copy From Cellview

    - Variables in the simulation schematic will be identified and will belisted in the field Design Variablesof the Virtuoso Analog

    Environment tool- To edit the Design Variablesentries either double-click on an entryor select Variables - Editfrom the menu bar- Set vdd_valto 3.3V

    Outputs - To Be Plotted - Select

    On Schematic

    - Select the signals to be ploted in the simulation schematic: net(must be named!) => voltage; object node => current into the objectthrough this node- Selected signals will be listed in the field Outputsof the Virtuoso

    Analog Environment tool- To edit the Outputsentries either double-click on an entry or selectOutputs - Setupfrom the menu bar

    After configuring the simulator it should look like Fig. 7.

    Fig. 7 Simulation configuration window.

  • 8/10/2019 Tutorial Icfb

    13/35

    13

    To build the netlist and run the simulation select

    Simulation - Netlist and Run.

    First the simulator output log window appears and shows the simulation progress. After thesimulation has finished the waveform window appears and the selected signals are plotted.

    Waveform Window

    Fig. 8 Simulation waveform window.

    In order to perform arithmetic operations you can use the calculator:

    Tools calculator

    In the IO area of the calculator window (see Fig. 9) you can type the expression to evaluate(see the list of functions presented) and see the result after clicking eval.

  • 8/10/2019 Tutorial Icfb

    14/35

    14

    Fig. 9 Calculator window.

    Expressions

    It is also possible to enter expressions in the field Outputsof the Virtuoso Analog Environmentto calculate parameters of the cell (propagation delay, output slew, ...) from the simulationresults directly or to plot modified signal curves. These expressions can be tested with theCalculator!

    Select Outputs - Setup from the menu bar of the Virtuoso Analog Environment and add thefollowing expression:

    Name = propagation delay, Expression = delay(v("/IN" ?result "tran") 1.65 1 "rising"v("/OUT" ?result "tran") 1.65 1 "falling")

    The expression propagation delay gives the propagation delay of the gate when the input

    value changes from IN = 0 to IN = 1.

    Fig. 10 Adding an expression to be evaluated or displayed.

    IO area

  • 8/10/2019 Tutorial Icfb

    15/35

    15

    After plotting the expression with Results - Plot Outputs - Expressions the result of theexpression for the propagation delay is displayed in the field Outputsof the Virtuoso AnalogEnvironment.

    The current curve of an object node can be accessed with the command i("/object/node"?result "tran").

    Fig. 11 Expression value display in the Virtuoso Analog Environment.

    Parametric analysis

    It is very important to evaluate the circuit behaviour with different temperatures, supplyvoltages and technological parameters. Parametric analysis is used in this tutorial to sweepthe vdd_val parameter and the temperature. In the Virtuoso Analog Environment select

    Tools Parametric Analysis

    Fig. 12 Parametric analysis window.

  • 8/10/2019 Tutorial Icfb

    16/35

    16

    In the Parametric analysis window select

    Setup Pick Name for Variable sweep 1

    and select temp. In the Parametric analysis window assign:

    Field Value

    Step Control Linear Steps

    From -10

    To 50

    Step Size 10

    Range Type From/To

    and select

    Analysis Start

    Fig. 13 Parametric analysis display in the waveform window (with a 1-> 0 zoom in).

    Fig. 13 shows how results of parametric analysis with expressions are displayed in thewaveform window: a new graph is displayed with the expression result evolution.

    In order to change the power supply value, in the Parametric analysis window select

    Setup Pick Name for Variable sweep 1

    and select vdd_val. In the Parametric analysis window assign:

    Field Value

    Step Control Linear Steps

    From 2

    To 4

    Step Size 1

    Range Type From/To

    and, once again, selectAnalysis Start.

  • 8/10/2019 Tutorial Icfb

    17/35

    17

    5. Creating the Layout

    Starting the layout tool

    Open the schematic view of the inverter1 cell and select

    Tools - Design Synthesis - Layout XL

    from the menu bar. Selecting this option will first open a small dialog box that will let the usercreate a new layout or open an existing one. We opt for Create New. The next dialog gives usthe possibility to change the properties of the new cellview. Check whether the View Nameisset to layoutand the Toolis set to Virtuoso. After pressing OKthe Virtuoso Layout XL Editorwill start.

    Layer Selection Window (LSW)

    Also the Layer Selection Window (LSW) is started (Fig.14). EachLSW entry is divided in three categories which are color,abbreviated name and purpose. Color shows the appearance of thelayer in the layout. The abbreviation is the official name of the layerfor Virtuoso, it can appear in messages, etc.

    The Layer Selection Window is used to select the active layer (leftmouse-button), to set whether a layer is selectable or not (rightmouse-button) and to set whether a layer is visible or not (middlemouse-button). After the visibility status of a layer has beenchanged press the key to refresh the screen.

    Each layer appears in the LSW window with purpose drw fordrawing and pin for pin, you will almost always need drw.

    Initialize the layout

    To initialize the layout according to the schematic (i/o pins, deviceinstances, ...) select

    Design - Generate From Source

    in the Virtuoso Layout XL Editor menu bar. Fill out the appearingform to set some properties of the components in the layout: set the

    boundary width to 3 m and the boundary height to 13 m.Compare the other fields of the form with Fig 15.

    Check the Pin Label Shape = Labelbox and enter the Pin LabelOptionsdialogue window. Set the Layer Nameand Layer Purposeto Same as Pin.

    Fig.14 LSW

  • 8/10/2019 Tutorial Icfb

    18/35

    18

    Fig.15 Layout generation options.

    After hitting OK the Virtuoso Layout XL Editor creates the chosen components in the layoutwindow (Fig. 16).

  • 8/10/2019 Tutorial Icfb

    19/35

    19

    Fig.16 Layout automatically generated based on the schematic.

    Settings for the Virtuoso Layout XL Editor

    Select Options - Display and, in the new opened window, assignX Snap Spacingand YSnap Spacingto 0.025, and Display Levels: From = 0, To = 2.

    Useful commands are:

    command menu bar command shortcut

    save the layout Design - Save

    zoom in Window - Zoom - In

    fit complete layout in the layout window Window - Fit All

    redraw layout window Window - Redraw

    create ruler Window - Create Ruler delete all rulers Window - Clear All Rulers

    undo last action Edit - Undo

    move object Edit - Move

    stretch object Edit - Stretch

    delete object Edit - Delete

    edit object properties Edit - Properties

    terminate any command

    Very

    useful!

  • 8/10/2019 Tutorial Icfb

    20/35

    20

    Layout creation - placing the components

    A first placement iteration can be obtained by selecting

    Edit Place as in Schematic

    The replaced cells will look like Fig. 17. At this stage, in more complex cells, the commandsConnectivity show incomplete nets / hide incomplete nets may be of interest.

    Fig. 17 Layout after Place as in schematiccommand.

    When a pin or MOS transistor is selected in the Layout Window, the corresponding device is

    also highlighted in the Schematic Window. This works also when a component is selected inthe Schematic Window.

    When the Drain or Source contacts of two similar transistors are connected directly, VirtuosoXL will chain these transistors automatically after shifting the according areas over eachother. Furthermore Virtuoso XL determines the necessity for an additional connection to thisarea.

    To rotate a transistoreither select the command Edit - Move, select the transistor you wantto rotate and press the right mouse button or bring up the object properties of the appropriatetransistor and change the entry Rotation (Fig.18).

    prBoundary =limits of the cell

    layout

  • 8/10/2019 Tutorial Icfb

    21/35

    21

    Fig. 18 Transistor properties including Rotation = 90.

    While a command is activated its detailed behavior can be customized by pressing the key (e.g. set snap mode).

    Very useful is Virtuoso XL's status barjust above the menu bar:

    X:and Y:indicate the actual mouse pointer's position.

    The letter enclosed by parenthesis indicates whether partial selection mode (P) or fullselection mode (F)is activated. Toggle between these two settings by pressing .

    The Select:entry shows how many objects are currently selected.

    When moving components, dX:, dY:and Dist:show the difference between startingpoint and end point.

    In the Cmd:field one can determine the currently active command.

    Also very useful is the mouse function indicatorat the bottom of the Layout Window. Therethe currently assigned functions to the mouse buttons according to the active command areindicated.

    Gnd and vdd rectangles

    Zoom in the bottom of the prBoundary ().

    Select the layer metal 1(MET1) of type drawing (drw), clicking in the corresponding layer in

    the LSW (see Fig.14).

    Draw a ruler () from coordinates (0, 0) to (0, 1.8).

    Starting at coordinates (0, 0), draw a rectangle () of metal 1 with the total width of the

    prBoundary (that will be the limit of the cell) and 1.8 m of height (see Fig. 19).

  • 8/10/2019 Tutorial Icfb

    22/35

    22

    Fig. 19 Gnd rectangle in metal1.

    Copy this metal 1 rectangle to the top of the prBoundary box (for vddusage).

    Place the gndpin and label over the metal 1 rectangle in the bottom of the cell. For simulationpurpose it can be placed anywhere. If the cell would be used in an automatic placement androuting process, two rectangles of metal 1 of type pin should be overlapped to the metal 1

    drw, at each access of the ground rectangle. Each metal 1 pin rectangle points to an accessto the net and therefore its properties must include the directions from where the access isallowed (Fig.20). Place the vddpin and label over the metal 1 rectangle in the top of the cell.

    The placement of the global pins gnd! and vdd! needs some additional setting. Theirproperties have to be additionally edited. After selecting them and depressing the EditInstance Propertiesdialog box opens. Here Connectivityhas to be checked. Terminal Nameis displayed(gnd! or vdd!). Net Expression Property and its Default value has to be defined asgndand gnd!as well as vddand vdd!respectively. If this property is missing then everythingwill run correctly with the only exception of the simulation of the extracted netlist. The LVS willnot be influenced, but the simulator will not be able to connect the power supply to the powerrails of the layout and, therefore, the circuit will not function at all.

  • 8/10/2019 Tutorial Icfb

    23/35

    23

    Fig. 20 Assigning access directions to a pin.

    Substrate and n-well connection

    In order to connect the ground metal 1 rectangle to the substrate a contact can beautomatically generated selecting:

    Create Contact

    and selecting PD_C. Place the bottom-left corner of the contact at coordinates (0, 0). Thiscontact includes the active area (diff), p+select (pplus), metal 1 (met1), and the contact (cont).It performs a good ohmic contact between metal 1 and the substrate.

    In order to connect the n-well to vdd, the n-well included in the pmos transistor must beextended to include the vdd line. Select the layer NTUB of type drawing and draw a rectangle

    starting from the top of the pmos n-well and ending 0.9 m above the vdd line. (see Fig. 24).

    Similarly to the gnd contact to substrate, select the ND_C and place the top-left corner of thecontact at coordinates (0, 13). This contact includes the active area (diff), n+select (nplus),metal 1 (met1), and the contact (cont). It performs a good ohmic contact between metal 1 andn-well (see Fig. 24).

    Placing the transistors

    Create a ruler (), starting from the top of the gnd rectangle, with 0.45 m of lenght.

    Rotate (see item Layout creation placing the components in this section) and move ()the nmos transistor, centring in the prBoundary box and bringing the metal 1 drain and sourceto the distance pointed by the ruler (see Fig. 21).

  • 8/10/2019 Tutorial Icfb

    24/35

    24

    Fig. 21 Gnd rectangle with pin assignment, substrate connection and nmos placement.

    Create a ruler (), starting from the top of the nplus of the nmos transistor, with 1.2 m oflenght (see Fig. 22).

    Rotate and move () the pmos transistor, centring in the prBoundary box and bringing thenwell (ntub see Fig. 22) to the distance pointed by the ruler.

  • 8/10/2019 Tutorial Icfb

    25/35

    25

    Fig. 22 pmos placement.

    Routing between the components

    The next step in layout creation is to connect the components electrically according to theschematic. Connections can be drawn in three different ways:

    type of connection menu bar command shortcut

    rectangle Create - Rectangle

    polygon Create - Polygon

    path Create - Path

    Before activating a command select the desired layer in the Layer Selection Window (LSW)!

    When the path command is activated and the path has been started at an identifiableconnection Virtuoso XL highlights the geometries and terminals of other components whichshould be connected. To change the layer while drawing a path use the path options invokedby pressing . There the Change To Layer option can be modified and Virtuoso XL

    automatically generates the contacts from one layer to another.

    Inter-layer contacts can be created explicitly through Create - Contact (shortcut ). Toestablish a connection between the metal layer 2 and the poly layer 1, two of these contacts

  • 8/10/2019 Tutorial Icfb

    26/35

    26

    have to be placed: MET2 -> MET1 (VIA1_C) and MET1 -> POLY1 (P1_C). They can beplaced right over each other.

    With the command Connectivity - Show Incomplete Nets one can highligt signal nets thathaven't been routed correctly and completely. To end the highlighting of incomplete netsselect Connectivity - Hide Incomplete Netsfrom the menu bar.

    Fig. 23 Gates and drains interconnection.

    Fig. 23 shows the gates and drains interconnections and the OUT pin placement over

    the corresponding metal 1 connection. Fig. 23 also shows a poly-metal 1 contact thatallows connectivity in metal 1 to the input of the inverter (Create Contact P1_C).

    The sources of the transistors must be connected to vdd!and gnd! (see Fig. 24). The IN pinand label must be moved to the top of the metal 1 connected to the inverter input (overlappingthe P1_C contact, not displayed in Fig. 23 for clarity).

  • 8/10/2019 Tutorial Icfb

    27/35

    27

    Fig. 24 Connection of the pmos source, n-well contact and vdd! pin assignment.

    Layout creation - miscellaneous

    While placing components and routing, periodically start the Design-Rule-Check (DRC) inorder to identify any violations of the design rules of the current process technology (min.spacing between geometries, min. width of geometries, ...). When implementing a standardcell it is also very important to consider the distances of geometries on the various layers to

    geometries in adjacent placed cells. These errors can't be found by the DRC of the single cell. The DRC will be explained in detail in the next section.

    If the schematic of the cell is changed during or after the layout of the cell has been designed,the following commands could be of interest:

    command menu bar command

    change the nets at the terminalsof an instance

    Connectivity - Propagate Nets

    update of components and netsConnectivity - Update -Components And Nets

  • 8/10/2019 Tutorial Icfb

    28/35

  • 8/10/2019 Tutorial Icfb

    29/35

    29

    After hitting OK the DRC is carried out and any violations are highlighted in the layout by

    flashing markers and the errors are reported in the CIW (see Fig. 26).

    Fig. 26 CIW DRC errors.

    Processing DRC errors

    To get a complete list of all errors select

    HIT-Kit utilities - Find DRC Markers

    Only the errors listed in Fig. 27 should be identified by the DRC of the inverter.

    Fig. 27 Expected errors in the inverter.

    They could easily be avoided when we set the switch no_coveragein the DRC options form.These errors (Minimum ... density ...) only make sense in the scope of the whole layout of the

    chip where they must be treated as severe errors. Generally, if you neglect a DRC error youshould really be able to explain why this error can be ignored.

  • 8/10/2019 Tutorial Icfb

    30/35

    30

    When we select an error in the list, Virtuoso XL focuses to the area in the layout where theerror occurs. If there is more than one error with the same name, we can switch betweenthese errors with the Error Numberslider. TheZoom Factorapplied by Virtuoso XL to focus toan error can also be set with a slider.

    To delete all markers press the button Delete all Marker in the DRC Error Search form or

    select Verify - Markers - Delete Allfrom the Virtuoso XL menu bar.

    Some c35b3 rules are:

    Minimal: Width Spacing

    NTUB 3 3

    DIFF 0,3 0,6

    POLY1 0,35 0,45

    PPLUS/NPLUS 1,6 1,6

    POLY2 0,65 0,5

    CONT 1 1,2MET1 0,5 0,45*

    VIA 1,2 1,6

    MET2 0,6 0,5**

    PAD 15 25

    * If the MET1 is wide (width>10m) then 0,8

    ** If the MET2 is wide (width >10m) then 0,8

    Minimum spacing between different layers:DIFF PPLUS 0,35

    CONT in MET1 POLY1 0,8CONT in POLY2 POLY1 1,6

    POLY1 VIA 1

    POLY2 VIA 1,2

    CONT VIA1,2

    POLY1 POLY2 1,4

    POLY1 DIFF 0,4

    POLY2 DIFF 1,2

    Overhang in transistors:

    POLY1 over DIFF 0,6DIFF over POLY1 1,4

    Spacing inside the surrounding layer (overlap)

    VIA in MET1 0,2

    VIA in MET2 0,3

    NDIFF in NTUB 0,2

    DIFF in NPLUS 0,45

    DIFF in PPLUS 0,45

    Spacing

    Width

  • 8/10/2019 Tutorial Icfb

    31/35

    31

    7. Extraction

    Circuit extraction is performed after the mask layout design of the cell is completed. It createsa detailed netlist (extracted netlist) of the cell which can be used for example in the Layout-versus-Schematic check or by a circuit simulator. The circuit extractor is capable of identifying

    the individual transistors and their interconnections as well as the parasitic resistances andcapacitances that are inevitably present in the cell. Thus, the extracted netlist provides a veryaccurate model of the cell.

    Starting extraction

    To start the extraction select

    Verify - Extract

    from the menu bar of the Virtuoso Layout XL Editor where the layout intended for extraction isopened. In the appearing form, the options for the extractor can be given. Set the following

    options:

    option set to comment

    Extract Method flatany instances of other cells found in the layout shouldalso be extracted (layout of this cells must also beavailable!)

    Switch Names capallto set additional options for the extraction process e.g.capalltells the extractor to additionally extract parasiticcapacitances

    ViewNames Extracted

    extracted

    Rules File ../divaEXT.rul extraction rules file name

    Rules Library TECH_C35B3 Disable the library that contains the extraction rules file

    After hitting OK the extraction is carried out and a new view called extractedis generated forthe cell (Library Manager).

    8. Layout-versus-Schematic Check (LVS Check)

    After the mask layout design of the cell is completed, it should be checked against theschematic of the cell created earlier. The Layout-versus-Schematic check (LVS check) will

    compare the circuit given by the schematic with that one extracted from the mask layout andtries to prove that both networks are equivalent.

    The LVS step provides an additional level of confidence for the integrity of the design andensures that the mask layout is a correct realization of the intended circuit. Note that the LVScheck only guarantees topological match: A successful LVS check will not guarantee that themask layout of the cell will actually satisfy the performance requirements.

    Any errors that may show up during the LVS check (such as unintended connections betweentransistors, missing connections/devices, ...) should be corrected in the mask layout. Notethat the extraction step must be repeated every time the layout of the cell is modified.

  • 8/10/2019 Tutorial Icfb

    32/35

    32

    Starting LVS checking

    To start the LVS check select

    Verify - LVS

    from the menu bar of the Virtuoso Layout Editor where the extracted netlist of the cellintended for LVS checking is opened. If a form called "LVS Form Contents Different" appears,select Use: Form Contentsand press OK. In the next form, the options for the LVS check canbe set: It can be specified which cell views should be compared and where to find the LVSrules file. Fill out the form as Fig. 28.

    Fig. 28 LVS options.

    After clicking Runthe LVS check is started.

    Analyzing LVS results

    When the LVS check is finished, a window appears that indicates whether the check wassuccessful or not. To view the LVS check results in detail, press the Outputbutton in the LVSWindow. The file si.out in the given working directory contains the LVS check results. For

    further information (LVS run log file, schematic/extracted netlist, ...) press the Infobutton.

  • 8/10/2019 Tutorial Icfb

    33/35

    33

    Fig. 29 LVS result.

    Parasitics probing

    The different nets in the extracted netlist can be probed to get a summary of the parasitics(resistances, capacitances) present on the nets. Since we could only extract parasiticcapacitances during the extraction of the netlist, no values for parasitic resistances areindicated.

    To set a parasitics probe press the button Parasitic Probe in the LVS Window. In the nextwindow press the button Whole Netand select a net in the layout window where the extractedview is shown. It is also possible to get a summary of parasitics between nets. Therefore, use

    the button Net To Netbefore selecting two nets in the extracted view.

  • 8/10/2019 Tutorial Icfb

    34/35

    34

    9. Post-Layout Simulation

    It is now easy to simulate the layout (more exactly the extracted netlist) with the VirtuosoAnalog Circuit Design Environment. Close the layout editor window and open the test benchfor the simulation of the cell schematic (Section 4. Schematic Simulation). The same test

    bench can be used for the extracted simulation. Open the test bench schematic and selectfrom the Composer window of the simulation schematic

    Tools - Analog Environment

    Configure the simulation conditions as described in Section 4 and choose:

    Setup - Environment

    and set Switch View Listto spectreS cmos_sch extracted schematic. As a result of this, if thesimulator now creates the netlist of the simulated circuit it uses the extracted netlist of the cellrather than the schematic.

    10. GDSII Export of the Cell Layout

    To export the mask layout of the cell in GDSII format select the following command in theCIW:

    File - Export - Stream.

    Fill out the appearing form like depicted below:

  • 8/10/2019 Tutorial Icfb

    35/35

    Fig. 30 GDSII export.

    Note that the run directory gds2Exportmust be created in the current directory cds_tutorialbefore the export can be started. The log file of the export process (PIPO.LOG), which

    explains warnings and errors during export in detail, and the GDS2-file itself will be stored inthe run directory.

    The Layer Map Table, which can be stated by pressing the button User-Defined Data, shouldbe set to

    /soft/ams/artist/HK_C35/TECH_C35B3/strmInOut.layertable

    There are two warnings given for the export process concerning the layers (changedLayer220 tool0) and (prBoundary 235 drawing). These warnings can be safely ignored.


Recommended