design flow se

download design flow se

of 119

Transcript of design flow se

  • 8/14/2019 design flow se

    1/119

    7/31/2001 WLT

    VHDL to Place-and-RouteDesign Flow Tutorial

    By: Wei Lii TanAdvisor: Dr. Robert Reese

    This revision: October 28, 2001

    Mississippi State University

    Dallas Semiconductor

  • 8/14/2019 design flow se

    2/119

    7/31/2001 WLT

    Major Changes in This Revision

    Deleted all references to Design Planner. Edited design flow to use Silicon Ensemble for

    floorplanning, Qplace and Wroute.

    Added explanation forDisplay Options and Find

    forms.

    Added section on checking for shorts between

    VDD and GND in the ICFB section.

  • 8/14/2019 design flow se

    3/119

    7/31/2001 WLT

    Introduction

    This tutorial will guide you through the synthesis

    of a fully placed-and-routed design from a VHDL

    entity.

    The tutorial will use the following CAD tools:

    - Synopsys Design Compiler

    - Cadence Silicon Ensemble

    - Cadence ICFB- Modelsim QHDL

  • 8/14/2019 design flow se

    4/119

    7/31/2001 WLT

    Introduction

    The following conventions will be used in

    this tutorial:

    - File names will be in italics, e.g./ccs/issl/micro/users/tan/myfile.vhd

    - User input (e.g. what you need to type)

    will be in boldface, e.g. type swsetup

    cadence-ncsu

  • 8/14/2019 design flow se

    5/119

    7/31/2001 WLT

    The Example Design

    The design we will be using as an example for thistutorial is a VHDL model of a Dallas

    Semiconductor DS1620k temperature sensing kit.

    The interface reads the temperature from the

    DS1620k, then outputs the data to a seven-segment digit display.

    The design also includes some simple gates for

    debugging, such as a NAND gate, NOR gate,inverter, and a DFF.

    A simple counter is included in the design too.

  • 8/14/2019 design flow se

    6/119

    7/31/2001 WLT

    The Example Design

    The main top-level signals in the design are: inv_in, inv_out: input and output for simple

    inverter

    nand2in_a, nand2in_b, nand2_out: inputs andoutput for simple NAND gate.

    nor2in_a, nor2in_b, nor2_out: inputs and outputfor simple NOR gate.

    _csb_6_ to _csb_0_: Signals for MSB of theseven-segment digit display.

    _lsb_6_ to _lsb_0_: Signals for LSB of the seven-segment digit display.

  • 8/14/2019 design flow se

    7/119

    7/31/2001 WLT

    Copying Example Files

    Copy the entire directory

    /ccs/issl/micro/users/tan/tutorials/design_flow into

    your work directory *important*All directories will start with

    your_work_directory/design_flow, unless

    specified otherwise.

  • 8/14/2019 design flow se

    8/119

    7/31/2001 WLT

    Design Flow

    Synopsys Design Compiler

    Modelsim

    Cadence Silicon Ensemble

    Cadence ICFB

    Modelsim

    VHDL Model

    Verilog Model

    Verilog Model

    DEF File

    Verilog Model

    VHDL -> Verilog

    Conversion

    Verilog Verification

    Place-and-Route

    Export to Other Formats,

    SPICE Verification

    Verilog Verification

  • 8/14/2019 design flow se

    9/119

    7/31/2001 WLT

    Synopsys Design Compiler

    This tool will convert a VHDL model to a Verilogmodel. It requires the use of the following user-

    provided files:

    - Library file, in .db format.

    - Script file (file extension .script)

    - The VHDL file to be converted to Verilog.

    At this stage, we will be using Design Compiler to

    generate a Verilog model, without pads, of aVHDL file called topchip_gold_nopads.

  • 8/14/2019 design flow se

    10/119

    7/31/2001 WLT

    Synopsys Design Compiler

    The VHDL file that we will be using istopchip_nopads.vhd.

    Using a script file with Design Compiler,

    we will convert this VHDL model toverilog.

    The next page shows the script file used to

    compile topchip_nopads.vhd. The script file

    is called topchip_nopads.script

  • 8/14/2019 design flow se

    11/119

    7/31/2001 WLT

    Synopsys Design Compiler Script File

    link_library=target_library={jennings_pads_noqn.db}

    define_design_lib tempsense -path

    /ccs/issl/micro/users/tan/dallas1/sc_tests/myfiles/vhdl2/rtl/tempsense

    analyze -work tempsense -f vhdl{ ../rtl/tempsense/topchip_final_components.vhd../rtl/tempsense/bin2bcd_mod.vhd ../rtl/tempsense/pulse.vhd../rtl/tempsense/twoscomp.vhd ../rtl/tempsense/sev_seg_display.vhd../rtl/tempsense/ds1620_i.vhd ../rtl/tempsense/simple_gate.vhd../rtl/tempsense/topchip_count4.vhd}

    read -f vhdl ../rtl/tempsense/topchip_gold_nopads.vhdset_flatten true

    max_area 0.0

    current_design topchip_gold_nopads

    compile -ungroup_all -map_effort medium

    dont_touch_network CLK

    dont_touch_network clk

    dont_touch_network find(pin, */r)

    set_max_fanout 8.0 find(design, topchip_gold_nopads)

    compile -incremental_mapping -map_effort medium

    check_design

    verilogout_single_bit = true

    write -f verilog -output ../gate/topchip_gold_nopads_noqn.v

    quit

  • 8/14/2019 design flow se

    12/119

    7/31/2001 WLT

    Why use a script file?

    Using a script file with dc_shell is

    equivalent to typing the exact commands in

    dc_shell interactively.

    A script file automates the process of typing

    in all the commands manually.

  • 8/14/2019 design flow se

    13/119

    7/31/2001 WLT

    What is the .db file for?

    The database (.db) file holds information

    about the standard cell library used to

    implement the VHDL design.

    It provides information about the standard

    cells: the names of the standard cells,

    input/output ports, as well as timing

    characteristics and functionality.

  • 8/14/2019 design flow se

    14/119

    7/31/2001 WLT

    Design Compiler

    Change to the directorysynopsys/run_syn

    Type swsetup synopsys

    Type dc_shell f topchip_nopads.script

    The -f option tells design compiler to use ascript file, and not run in interactive mode.

    5. After design compiler finishes (it should take

    about 5 minutes to finish the compilation), a

    verilog netlist file called topchip_nopads.v

    should be created in the directorysynopsis/gate.

  • 8/14/2019 design flow se

    15/119

    7/31/2001 WLT

    Design Compiler

    Note: If a verilog netlist file with the samename exists in the target directory, design

    compiler will overwrite it.

    Now that we have a verilog file, our nextstep would be to simulate the verilog netlist

    to check for errors.

  • 8/14/2019 design flow se

    16/119

    7/31/2001 WLT

    Modelsim The next step in the design flow is simulating

    the verilog netlist that was generated usingSynopsys Design Compiler.

    Change to the qhsim directory, and type swsetupmodelsim.

    If the qhsim/workdirectory does not exist, createone by typing qhlib work.

    - The qhlib work command creates a

    directory called work, and also storesModelsim information in the work directory.This directory will be the object directory forstandard cells and top-level designs that are

    compiled using Modelsim.

  • 8/14/2019 design flow se

    17/119

    7/31/2001 WLT

    Modelsim Before we compile our top-level design

    (topchip_nopads.v), we need to compile thestandard cells that make up topchip_nopads.v. Inthe qhsim directory, type:

    qvlcom ../synopsys/gate/libcells.v.

    4. Type:qvlcom ../synopsys/gate/topchip_nopads.v.This will compile our top-level design file.

    5. Now, type:

    qvlcom ../synopsys/gate/tb_topchip_nopads.v.This will compile the testbench for our design.The testbench supplies input vectors needed totest the functionality of our design.

  • 8/14/2019 design flow se

    18/119

    7/31/2001 WLT

    Modelsim To enter Qhsim and simulate our design, type:

    qhsim tb_topchip_nopads. Note that the

    argument after the qhsim command refers to

    the Verilog module name of our design, not the

    file name. After you do step 6, you should see a screen that

    looks like Figure 1. In the command window,

    type view signals and view wave

    . These commands bring up the signalsand waves windows respectively.

  • 8/14/2019 design flow se

    19/119

    7/31/2001 WLT

    Figure 1: Modelsim Command Window

  • 8/14/2019 design flow se

    20/119

  • 8/14/2019 design flow se

    21/119

    7/31/2001 WLTFigure 2: Simulation Results Waveform

  • 8/14/2019 design flow se

    22/119

    7/31/2001 WLT

    Silicon Ensemble

    We will now move on to using SiliconEnsemble.

    1.Make sure that you are in thecadence/dp_se/run directory.

    2.In the terminal window, type:

    swsetup cadence-sesedsm &

    This will start Silicon Ensemble.

  • 8/14/2019 design flow se

    23/119

    7/31/2001 WLT

    Importing the LEF File (Silicon

    Ensemble)1.In Silicon Ensemble, click onFile ->

    Import -> LEF.

    2.In the Import LEF form, select the file../tech/jennings_ami06_pads_noqn.lef, then

    click on OK.

  • 8/14/2019 design flow se

    24/119

    7/31/2001 WLT

    Importing a Verilog netlist into

    Silicon Ensemble In the main window, click onFile ->

    Import -> Verilog

    Click on Browse to choose the verilogsource file.

    Add the file synopsys/gate/libcells.v by

    double-clicking on that file, and thenclicking on OK in the File form.

  • 8/14/2019 design flow se

    25/119

    7/31/2001 WLT

    Figure 3: The File Form

  • 8/14/2019 design flow se

    26/119

    7/31/2001 WLT

    Importing a Verilog netlist into

    Silicon Ensemble Back in the Import Verilog form, fill in

    the information according to Figure 4.

    Then, click on OK. This will import the standard cell

    information into Silicon Ensemble.

  • 8/14/2019 design flow se

    27/119

    7/31/2001 WLT

    Figure 4:

    The Input

    Verilog

    Form

  • 8/14/2019 design flow se

    28/119

    7/31/2001 WLT

    Importing a Verilog netlist into

    Silicon Ensemble Now, click onFile -> Import -> Verilogagain.

    Click on Browse. In the File form, delete (by

    pressing the DEL button) the libcells.v fromthe selected files list, and add

    cadence/dp_se/netlist/topchip_nopads.v into

    the selected files list.

    Click on OK.

  • 8/14/2019 design flow se

    29/119

    7/31/2001 WLT

    Importing a Verilog netlist into

    Silicon Ensemble In the Import Verilog form, type

    topchip_nopads for the Verilog Top Module,and add jennings_ami06_pads_noqn to theCompiled Verilog Reference Libraries. The restof the information stays the same. (Refer Figure5, next slide).

    Click on Yes when Silicon Ensemble asks if itis okay to overwrite the original content of thereference library we will not be destroyingdata, just adding to it.

  • 8/14/2019 design flow se

    30/119

    7/31/2001 WLT

    Figure 5:

    The Input

    Verilog

    Form

  • 8/14/2019 design flow se

    31/119

    7/31/2001 WLT

    Floorplanning

    In the main window, click onFlooplan ->Initialize Floorplan.

    In the Initialize Floorplan window, click on the

    Variables button. Another window, theEnvironment Variables form, will pop up.

    In the Environment Variables form, change thevariablePLAN.LOWERLEFT.ORIGINto

    TRUE. Click on OK in the Environmental Variablesform.

  • 8/14/2019 design flow se

    32/119

    7/31/2001 WLT

    Figure 6: The

    Environment

    Variables

    Form

  • 8/14/2019 design flow se

    33/119

    7/31/2001 WLT

    Floorplanning

    In the Init Floorplan form, set IO to CoreDistance to 40.00 microns for both Left/Rightand Top/Bottom.

    Make sure the Flip every other row and Abut

    Rows boxes are checked. Also, make sure all the other information isentered according to Figure 7 on the next slide.

    If you press the Help button, you will get a

    detailed explanation on what all the optionsmean.

    Finally, hit the OKbutton.

  • 8/14/2019 design flow se

    34/119

    7/31/2001 WLT

    Figure 7: The Init Floorplan Form

  • 8/14/2019 design flow se

    35/119

    7/31/2001 WLT

    Figure 8: After Floorplan Initialization

  • 8/14/2019 design flow se

    36/119

    7/31/2001 WLT

    Floorplanning

    We still need to add rows for the double-heightcells. In the main window, click onEdit -> Add-> Row

    In the Add Row window, select dbl_core as theSite Type, and check the Flip and Abut EveryOther Row boxes.

    Click on the Area button. Then, click and drag,in the main window, an area that approximately

    covers all of the original row area. After you dothis the X-Y values should be filled inautomatically.

    Click on the OKbutton.

  • 8/14/2019 design flow se

    37/119

    7/31/2001 WLT

    Figure 9: The Add Row Form

  • 8/14/2019 design flow se

    38/119

    7/31/2001 WLT

    Figure 10: After Adding Rows for Double-

    Height Cells.

  • 8/14/2019 design flow se

    39/119

    7/31/2001 WLT

    Floorplanning

    Finally, in the main window, click onFile

    -> Save as

    Save the design asfplan.

  • 8/14/2019 design flow se

    40/119

    7/31/2001 WLT

    Adding Supply Rings

    In the main window, click onRoute -> Plan Power. In the Plan Power window, click on the Add Rings

    button.

    In the PP Add Rings window, change both the

    horizontal and vertical Core Ring Width to 4.50. CoreRing Width refers to the width of the supply rings that

    are between the I/O and Core sections.

    Click on Help to get detailed explanations on all the

    fields.

    Click on OKin the PP Add Rings form, and click on

    Close in the Plan Power form.

  • 8/14/2019 design flow se

    41/119

    7/31/2001 WLT

    Figure 11: After Adding Supply Rings.

  • 8/14/2019 design flow se

    42/119

    7/31/2001 WLT

    Adding Pins

    To add top-level pins to the layout, clickonPlace -> Ios in the main window.

    Choose random placing mode, and space

    evenly (refer Figure 12, next slide). Thenclick on OK. This will place top-level

    pins evenly around the perimeter of the

    layout area.

    Save your design as pins.

  • 8/14/2019 design flow se

    43/119

    7/31/2001 WLT

    Figure 12: The Place IO form

  • 8/14/2019 design flow se

    44/119

    7/31/2001 WLT

    Placing Cells (Qplace)

    We are now ready to place cells onto our layout.Click onPlace -> Cells in the main window.

    In the Place Cells window, uncheck all the

    boxes, then click on OK. You may use timing or

    power-driven placement in the future, but for

    this tutorial we will use neither.

    Qplace will take a few minutes to complete.

  • 8/14/2019 design flow se

    45/119

    7/31/2001 WLT

    Figure 13: After Cell Placement

  • 8/14/2019 design flow se

    46/119

    7/31/2001 WLT

    Viewing Layers (Silicon

    Ensemble) To view nets, special

    wires, pins, cell

    boundaries etc. whileyou are working on

    your design, make sure

    all the appropriate Vs(visible) fields are

    checked.

  • 8/14/2019 design flow se

    47/119

    7/31/2001 WLT

    Adding Filler Cells (Silicon

    Ensemble)1. Click onPlace -> Filler Cells -> Add Cells.

    2. In the SROUTE Add Filler Cells form, type in

    FILL forModel, and fill forprefix.3. Make sure ONLY the North and Flip South

    boxes are checked.

    4. In the special pins section, add one entry forvdd

    and one entry forgnd (refer to Figure 16 on the

    next slide)

  • 8/14/2019 design flow se

    48/119

    7/31/2001 WLT

    Figure

    16:

    Add FillerCells

    Form

  • 8/14/2019 design flow se

    49/119

    7/31/2001 WLT

    Adding Filler Cells (Silicon

    Ensemble)5.Click on OK.

    6.This will add filler cells to your design.

    Filler cells provide n-well continuity foryour standard cells.

  • 8/14/2019 design flow se

    50/119

    7/31/2001 WLTFigure 17: After Adding Filler Cells

  • 8/14/2019 design flow se

    51/119

  • 8/14/2019 design flow se

    52/119

    7/31/2001 WLT

    Figure 18:

    Sroute

    FollowPins Form

  • 8/14/2019 design flow se

    53/119

    7/31/2001 WLTFigure 19: After SRoute Follow Pins

    W t (Sili E bl )

  • 8/14/2019 design flow se

    54/119

    7/31/2001 WLT

    Wroute (Silicon Ensemble)

    1. Click onRoute -> Wroute.

    2. In the Wroute form, click on OK.

    Wroute will run. This will take a few minutes tocomplete.

    After this point, all the interconnect routing of thedesign has been done.

  • 8/14/2019 design flow se

    55/119

    7/31/2001 WLT

    Figure 20: After WRoute

  • 8/14/2019 design flow se

    56/119

    7/31/2001 WLT

    Viewing Different Layers in

    Silicon Ensemble You wont be able to see the interconnect

    metal layers in Figure 20 unless you enable

    the layer to be viewable. Click on View -> Layers.

    In the Layer Visibility form, click on All

    Objects, then check all the layer checkboxes.

  • 8/14/2019 design flow se

    57/119

    7/31/2001 WLT

    Display Options

    Silicon Ensemble allows you to customizethe view window to display/not display

    certain parts of your design.

    In the main window, click on View ->Display Options

    Display Options

  • 8/14/2019 design flow se

    58/119

    7/31/2001 WLT

    Display Options Notice the top part of the Display Option form

    allows you to select On, Here, Big, Small etc forthe Level. By choosing a level here and clickingon the checkboxes, the selection for that particularcheckbox will rotate between OFF and the levelyou chose.

    For example, select Small for the level. Now,click once on the Cells checkbox in the Objectssection.

    If the checkbox was originally set to On, it willswitch to Offafter the first time you click it. Clickon it again to set it to Small.

    Click on Apply.

  • 8/14/2019 design flow se

    59/119

    7/31/2001 WLT

    Display Options

    Your cell boundaries will now only bevisible when you are zooming into a smaller

    portion of the design.

    If you click on the Fitbutton in the main

    window, you will not see the cell

    boundaries any more.

    Try zooming into a small area of the design.

    The cell boundaries will be visible again.

  • 8/14/2019 design flow se

    60/119

    7/31/2001 WLT

    Display Options

    The following explains the different levels:

    - On: visible at any level.

    - Here: visible at level that is currently

    displayed in the main window.

    - Big, medium, small: visible at big,

    medium or small levels respectively.

    - Off: not visible at any level.

  • 8/14/2019 design flow se

    61/119

    7/31/2001 WLT

    Checking Pin Names

    You can easily check to see the names of the routed pins inthe standard cells using the Display Options form.

    In the Names section of the Display Options form, set

    Pins to On, orSmall.

    Click on the Applybutton. The pin names will now bevisible.

  • 8/14/2019 design flow se

    62/119

    7/31/2001 WLT

    The Find Form

    You can find cells, nets and pins etc. with theFind form. Click onEdit -> Find to access the

    Find form.

    On the Find form, set Type to Net.

    Type msb_dp for the Name.

    Set the background dimmer to 70, then click on

    the Hilight button.

    The display will be dimmed, while the msb_dpnet will be highlighted in the color selected in the

    Find form.

  • 8/14/2019 design flow se

    63/119

    7/31/2001 WLT

  • 8/14/2019 design flow se

    64/119

    7/31/2001 WLT

    The Find Form

    You can also give partialnames, e.g. msb* instead

    ofmsb_dp. If you click

    on the Show List

    checkbox, you will see a

    list of matching names.

    Type_csb* for the net

    name, click on Show

    List, then click on Find.

    You should see a list of

    net names starting with

    _csb.

  • 8/14/2019 design flow se

    65/119

    7/31/2001 WLT

    The Find Form

    You can now click on each individual entryin the list, and highlight the particular net,

    or select it.

    The Find form, together with the DisplayOptions form, provide a convenient way of

    debugging your overall routed design.

  • 8/14/2019 design flow se

    66/119

    7/31/2001 WLT

    Checking for Violations

    Violations will appear as X marks on your

    design. Be sure that there are no violations created

    during the routing.

    Silicon Ensemble will tell you the number of

    violations created during Wroute (Refer to Figure

    21, on the next slide). If there are any violations,

    be sure to fix them before moving on. You shouldnot get any violations for this exercise.

  • 8/14/2019 design flow se

    67/119

    7/31/2001 WLT

    Figure 21: Total Number of Violations

    Reported by Silicon Ensemble

  • 8/14/2019 design flow se

    68/119

    7/31/2001 WLT

    Export to DEF Format (Silicon

    Ensemble)1. Click onFile -> Export -> DEF.

    2. Type ../def_files/topchip_nopads_wrouted.def

    for the DEF file name.3. Make sure the Allcheckbox is checked.

    4. Click on OK.

    This will create the DEF file

    cadence/dp_se/def_files/topchip_nopads_wrouted.

    def.

  • 8/14/2019 design flow se

    69/119

    7/31/2001 WLT

    Running SEDSM in Script Mode

    When using SEDSM in interactive mode (like wejust did), SEDSM will echo back your commandsin the command-line window.

    If you enter these commands into a text file, youcan run SEDSM inscript mode. To run SEDSM in

    script mode, type the following in the

    cadence/dp_se/run directory:sedsm b gd=ansi EXECUTE script.mac; &

    wherescript.mac is the name of your script file.

  • 8/14/2019 design flow se

    70/119

    7/31/2001 WLT

    Running SEDSM in Script Mode

    The cadence/dp_se/run directory has a script file

    called topchip_nopads_se.mac which will

    essentially perform all the procedures we did in

    interactive mode, from importing the LEF file toexporting the topchip_nopads_wrouted.deffile.

    To execute the script file, go the the

    cadence/dp_se/run directory, and type:

    sedsm b gd=ansi EXECUTEtopchip_nopads_se.mac; &

  • 8/14/2019 design flow se

    71/119

    7/31/2001 WLT

    Re-running SEDSM after a Crash

    If Silicon Ensemble crashes while you are

    running it, you need to delete all the .dtp

    files in the cadence/dp_se/run directorybefore you run it again. The .dtp files are

    the lock files for Silicon Ensemble

  • 8/14/2019 design flow se

    72/119

    7/31/2001 WLT

    Cadence ICFB

    Cadence ICFB is the last CAD tool in this

    design flow. In ICFB, our design can be

    exported into a HSpice netlist, a Verilog

    netlist, or GDSII / CIF formats, amongothers.

    Cadence ICFB is potentially the most

    powerful CAD tool among the tools in thisdesign flow, but it is also the most complex.

  • 8/14/2019 design flow se

    73/119

    7/31/2001 WLT

    Starting ICFB

    If youve previously used Silicon Ensemble inyour currentxterm window, launch a newxtermwindow.

    Change to the cadence/dfIIdirectory.

    Type swsetup cadence-ncsu.

    Type icfb & to launch ICFB.

    You should see three windows pop up: the ICFB

    Command Interpreter Window (CIW), theLibrary Manager window, and another windowstelling you about the changes for the latestversion of ICFB. Close the third window.

    Importing DEF into ICFB

  • 8/14/2019 design flow se

    74/119

    7/31/2001 WLT

    Importing DEF into ICFB In the CIW, click onFile -> Import -> DEF.

    Enter tutorial for Library Name,topchip_nopads for Cell Name, andautoRouted for View Name.

    Enter../dp_se/def_files/topchip_nopads_wrouted.def for DEF File Name.

    Make sure Silicon Ensemble is checked.

    Refer to Figure 22 (next slide) for all other

    options in the form. Click on OK. You will see some warning

    messages (about not being able to findsite Coreand site Double core). Ignore these messages.

  • 8/14/2019 design flow se

    75/119

  • 8/14/2019 design flow se

    76/119

    7/31/2001 WLTFigure 23: topchip_nopads autoRouted view

  • 8/14/2019 design flow se

    77/119

    7/31/2001 WLT

    Importing DEF into ICFB

    Open the autoRouted view of topchip_nopads.

    In the autoRouted view, before you do anything,

    click onDesign -> Save. This ensures that if

    anything goes wrong, you can always come backto the autoRouted view.

    Click on Tools -> Layout. This changes the tool

    from abstract-editing mode to layout-editing

    mode.

    Importing DEF into ICFB

  • 8/14/2019 design flow se

    78/119

    7/31/2001 WLT

    p g Click onEdit -> Search

    In the Search form, search forinst in current cellview,

    with view name = abstract. Replace with view name ->layout. (Refer to Figure 24, next slide, click on addcriteria then choose view name criteria)

    Click on Apply, then Replace All.

    Close the search form, then click onDesign -> Saveas

    Save the design in the same library and cell, but changethe view to layout.

    When you close the editing window, you will be asked if

    you want to save changes for the autoRouted view. Donot save any changes here or the autoRouted view will

    be over-written.

  • 8/14/2019 design flow se

    79/119

  • 8/14/2019 design flow se

    80/119

    7/31/2001 WLT

    Viewing Layers in ICFB

    Whenever in ICFBs layout editor, you can press

    shift-fto increase the number of layers viewed, or

    ctrl-fto decrease the number of layers viewed.

    For example, if you press shift-fwhile viewingthe topchip_nopads layout, you will be able to see

    the metal, poly, active etc. layers of the individual

    standard cells. If you press ctrl-f, you will only be

    able to see the boundaries of the individualstandard cells.

  • 8/14/2019 design flow se

    81/119

    7/31/2001 WLT

    Figure 25: topchip_nopads layout view

    Extracting a Verilog Netlist

  • 8/14/2019 design flow se

    82/119

    7/31/2001 WLT

    Extracting a Verilog Netlist We need to extract a Verilog netlist out of

    our placed-and-routed design to verifythat the place-and-route tools did their

    jobs without errors.

    This Verilog netlist will be simulatedusing Modelsim to verify for correct

    functionality.

  • 8/14/2019 design flow se

    83/119

    7/31/2001 WLT

    Extracting a Verilog Netlist

    Before starting this section, change to thedirectory/ccs/issl/micro/users/tan/tutorials/design_flow/cadence/dfII.

    Then, type:

    rm rf topchip_nopads.verilog

    This will clear the Verilog netlister workdirectory.

  • 8/14/2019 design flow se

    84/119

  • 8/14/2019 design flow se

    85/119

    7/31/2001 WLTFigure 26: The Extractor Form

  • 8/14/2019 design flow se

    86/119

  • 8/14/2019 design flow se

    87/119

    7/31/2001 WLT

    Figure 27: Setup Environment Form

  • 8/14/2019 design flow se

    88/119

    7/31/2001 WLT

    Extracting a Verilog Netlist

    You will see a warning message as shown below.Ignore this warning message, since we are notgoing to simulate our design using Cadence. Weare only going to use ICFB to extract a Verilog

    netlist.

    Extracting a Verilog Netlist

  • 8/14/2019 design flow se

    89/119

    7/31/2001 WLT

    Extracting a Verilog Netlist

    The Verilog-XL Integration window will now pop up.

    Click on Setup -> Netlist The Verilog Netlisting Options form will pop up. Click

    on the More >>button. This will enable you to see allthe options for this form.

    For the Netlist These Views field, enter: behavioralfunctional symbol verilog.

    For the Stop Netlisting at Views field, enter:behavioral functional symbol.

    Enter vdd and gnd forGlobal Power Nets and

    Global Ground Nets, respectively. Make sure the netlist explicitly box is checked. Then,

    Click on OK.

  • 8/14/2019 design flow se

    90/119

    7/31/2001 WLT

    Figure 28: Verilog Netlisting Options Form

    Extracting a Verilog Netlist

  • 8/14/2019 design flow se

    91/119

    7/31/2001 WLT

    Extracting a Verilog Netlist Back in the Verilog-XL Integration window, click on

    Simulation -> Start Interactive.

    The first time you run the verilog netlist extraction, you will

    get two errors regarding inherited nets for every instance you

    have in your design (on the order of a few thousand errors for

    our design). Ignore these errors - they are internal errors and

    should be fixed in the latest version of ICFB. Click on

    Simulation -> Start Interactive again; you will not get these

    errors the second time.

  • 8/14/2019 design flow se

    92/119

    7/31/2001 WLT

    Extracting a Verilog Netlist

    20. Ignore the warning shown below (click on

    OK). We can ignore this warning because

    we are not going to run Verilog simulationin ICFB.

    Extracting a Verilog Netlist

  • 8/14/2019 design flow se

    93/119

    7/31/2001 WLT

    Extracting a Verilog Netlist

    21. A text file called verilog.inpfiles, located in thenetlister work directory(cadence/icfb/topchip_nopads.verilog) iscreated. This file tells of the location of the

    Verilog netlists generated.22. Using a text editor (pico, VI etc.), view the file

    verilog.inpfiles.

    23. The text file will tell you the location of the top-

    level Verilog netlist it is going to be inihnl/cds?/netlist, where ? will be a number.

    Extracting a Verilog Netlist

  • 8/14/2019 design flow se

    94/119

    7/31/2001 WLT

    Extracting a Verilog Netlist24. Copy the netlistfile from

    cadence/dfII/topchip_nopads.verilog/ihnl/cds?,to cadence/dfII/gate.

    In the directory/cadence/dfII/gate, rename thenetlistfile to topchip_nopads_se.v.

    Use a text editor to view your verilog netlist. Ifthe top-level module oftopchip_nopads_se.v isnot topchip_nopads, edit it to that name.

    27. The next section of this tutorial will demonstratehow to simulate this Verilog netlist usingModelsim. However, before we go into that,lets discuss some other issues regarding ICFB.

    Extracting a Hspice Netlist

  • 8/14/2019 design flow se

    95/119

    7/31/2001 WLT

    The procedure for extracting a Hspice netlist is

    similar to that of extracting a Verilog netlist, up

    to the Extractor form. There is only one

    difference for the Extractor form:

    In the Extractor form, select Flat forExtract

    Method instead ofMacro Cell.

    Extracting a Hspice Netlist

  • 8/14/2019 design flow se

    96/119

    7/31/2001 WLT

    Extracting a Hspice NetlistAfter running the Extractor form, follow the

    instructions below to generate a HSPICE netlist: Click on Tools -> Simulation -> Other. You

    should see a new menu item - Simulationappear on your menu bar.

    2. Click on Simulation -> Initialize.

    3. Enter topchip_nopads.hspice for thesimulation run directory.

    4. Click on OK.

    5. Another Initialize Environment form shouldpop-up. This one has the full set of options tochoose from.

  • 8/14/2019 design flow se

    97/119

    7/31/2001 WLT

    Extracting a Hspice Netlist

    In the Initialize Environment form,

    choose hspice for the simulator name.

    Enter Tutorial forLibrary Name,topchip_nopads forCell Name, and

    extracted forView Name.

  • 8/14/2019 design flow se

    98/119

    7/31/2001 WLT

    Figure 29: Initialize Environment Form

    Extracting a Hspice Netlist

  • 8/14/2019 design flow se

    99/119

    7/31/2001 WLT

    Extracting a Hspice Netlist Go back to the Layout editing window, and click

    on Simulation -> Options Make sure the Use Hierarchical Netlister and

    Re-netlist Entire Designboxes are checked,

    and the others are left unchecked.

    Extracting a Hspice Netlist

  • 8/14/2019 design flow se

    100/119

    7/31/2001 WLT

    Extracting a Hspice Netlist

    Go back to the Layout editing window, and clickon Simulation -> Netlist/Simulate

    Make sure that the netlist box is checked, and

    the simulate box is not. Also, check the Run in

    background box.

    The remaining information should be already

    filled in correctly for you. Make sure they match

    up to that shown in Figure 30. (next slide)

  • 8/14/2019 design flow se

    101/119

    7/31/2001 WLT

    Figure 30: Netlist and Simulate Form

    Extracting a Hspice Netlist

  • 8/14/2019 design flow se

    102/119

    7/31/2001 WLT

    Extracting a Hspice Netlist

    Click on OK. Wait for a minute or so as ICFBworks in the background to generate the Verilognetlist.

    A message telling you that the netlister has

    succeeded should pop up after a minute or so. The HSPICE netlist will be located in the

    directory that you specified as the run directory(for our case,

    cadence/dfII/topchip_nopads.hspice), with thefilename netlist.

    Verilog or Hspice?

  • 8/14/2019 design flow se

    103/119

    7/31/2001 WLT

    Verilog or Hspice? Forourcase, Verilog is a more practical choice.

    Verilog is a switch-level language, which means it

    does not model any parasitics of the design. This

    makes simulation much faster than Hspice, which

    models the parasitics of the system. Since we started out with a VHDL file, we can

    assume that most of our designs will be relatively

    complex (e.g. having more than a few thousand

    transistors). Hspice simulation for designs of thisscale is too time consuming.

    Verilog or Hspice?

  • 8/14/2019 design flow se

    104/119

    7/31/2001 WLT

    For example, if we were to simulate our

    topchip_nopads design using Hspice for 150 us, itwould take more than 24 hours to simulate.Verilog simulation using Modelsim takes less than1 second.

    Conclusion: Hspice is great for detailedsimulations (especially for analog systems), butfor complex, purely digital systems, Verilogsimulation is much more practical.

    Other simulators such as IRSim fall somewhere inbetween Verilog and Hspice simulators.

    DRC Verification (ICFB)

  • 8/14/2019 design flow se

    105/119

    7/31/2001 WLT

    DRC Verification (ICFB)

    DRC (Design Rule Check) verificationchecks for design rule violations. The

    NCSU Cadence Design Kit comes with a

    decent (but by no means perfect) DRC

    checker.

    The NCSU kit DRC checker will flag

    certain metal constructs that should not be

    flagged as errors. Refer to the next slide for

    a more detailed explanation.

    DRC V ifi ti (ICFB)

  • 8/14/2019 design flow se

    106/119

    7/31/2001 WLT

    DRC Verification (ICFB)

    The NCSU kit DRC checker will flag these as errors

    if the spacing is less than the minimum spacing forthat metal layer, even though it should not matter

    because they all belong to the same net.

    Metal1

    shapes

    DRC V ifi ti (ICFB)

  • 8/14/2019 design flow se

    107/119

    7/31/2001 WLT

    DRC Verification (ICFB)

    Open the topchip_nopads layoutusing thelayout editor.

    Click on Verify -> DRC

    CheckFlat for checking method, and Fullfor checking limit.

    ClickOK.

    DRC will run (this will take a fewminutes), and subsequently return arounda thousand false metal spacing errors.

  • 8/14/2019 design flow se

    108/119

    7/31/2001 WLT

    Figure 31: DRC Form

  • 8/14/2019 design flow se

    109/119

    Checking for Short Circuits

  • 8/14/2019 design flow se

    110/119

    7/31/2001 WLT

    between VDD and GND

    A simple way to perform this check is to open theextractedview of the layout. In the LibraryManager window, open with extracted view oftopchip_nopads.

    Now, click on the VDD (or GND) ring. If youclicked on the VDD ring, you should see the VDDring, and the VDD rails highlighted. The samegoes for the GND ring.

    If you see both rings highlighted when you clickon either ring, then a there is a short from VDD toGND in your layout that must be fixed.

    Exporting to CIF

  • 8/14/2019 design flow se

    111/119

    7/31/2001 WLT

    Exporting to CIF

    Most industrial foundries use a standarddesign transfer file format to send orreceive design files. CIF is one suchformat.

    To export to CIF, click onFile -> Export-> CIF

    Enter . for the run directory, tutorial

    for the library name, topchip_nopadsfor the cell name, and layout for theview name.

    Exporting to CIF

  • 8/14/2019 design flow se

    112/119

    7/31/2001 WLT

    p g

    Enter cif_files/topchip_nopads.cif forthe output file.

    Check the CIF DBbox.

    Click on OK. This will generate a CIF file

    called topchip_nopads.cifin thecadence/dfII/cif_files directory.

    You will get some warnings (view the

    PIPO.LOG file) because not all layers inICFB are translated into the CIF file. Thisis OK.

  • 8/14/2019 design flow se

    113/119

    7/31/2001 WLT

    Figure 32: CIF Out Form

    Modelsim

  • 8/14/2019 design flow se

    114/119

    7/31/2001 WLT

    Modelsim

    The final step in our design flow is tosimulate our ICFB-generated Verilog netlist

    using Modelsim.

    If the place-and-route procedures weresuccessful, we should get the same results

    for this simulation as the simulation we ran

    with our Synopsys-generated Verilog

    netlist.

    Modelsim

  • 8/14/2019 design flow se

    115/119

    7/31/2001 WLT

    Modelsim

    There should be the following Verilogfiles in the cadence/dfII/gate directory:

    topchip_nopads_se.v, which we just

    created,

    tb_topchip_nopads_se.v, the testbench file

    for the file above.

    Modelsim

  • 8/14/2019 design flow se

    116/119

    7/31/2001 WLT

    Modelsim

    Change to the qhsim directory. Type swsetup modelsim.

    3. Type qvlcom

    ../cadence/dfII/gate/libcells_icfb.v

    4. Type qvlcom

    ../cadence/dfII/gate/topchip_nopads_se.v

    5. Type qvlcom

    ../cadence/dfII/gate/tb_topchip_nopads_se.v

    Modelsim

  • 8/14/2019 design flow se

    117/119

    7/31/2001 WLT

    Type qhsim tb_topchip_nopads&. This will

    invoke Qhsim to simulate the testbench. There is a .do file in the qhsim directory that

    displays the signals and wave windows, adds allthe top level signals into the wave window, and

    runs the simulation for 150 us. Activate thescript by typing do tb_topchip_nopads.do inthe command window. If you open up that .dofile you will find that it contains the same

    commands that you would type in the commandwindow to achieve the same results.

  • 8/14/2019 design flow se

    118/119

    7/31/2001 WLT

    Modelsim

    Verify that the results for this simulation

    match that of the first Verilog simulation

    in this tutorial, by looking at the wavewindow.

  • 8/14/2019 design flow se

    119/119