1. Copy Necessary Files Into a Working Directory

Copy the following files into your working directory by right-clicking the link, using "Save Link As...", and making sure to not change the filename from what is shown (even makefile or Makefile.txt instead of Makefile).

  1. Makefile: contains all the commands needed for simulation and synthesis.

  2. dc-template.tcl: template used to generate a customized command file Design Compiler

  3. .synopsys_dc.setup: make sure the file begins with a period (the filename should begin with '.')

  4. circ.v: example design with 2-bit and 32-bit multipliers and registers

  5. def.v: submodule of circ.v with 2 FFs

  6. circ.vfv: file that contains all source verilog files for simulation

  7. circ.vfs: file that contains all source verilog files for synthesis

2. Compile Verilog Into a Gate-Level Netlist

Type the following commands to run synthesis in default mode. The synthesis tool will generate the gate netlist circ.vg, which contains the gates to be placed and routed in Cadence Innovus.

3. Run the Place & Route Tool--Cadence Innovus

  1. Start Cadence Innovus by typing   /software/Cadence/INNOVUS211/tools/bin/innovus  . Do not run in the background (by following the command with an "&"). If the terminal window shows "command not found", try again on a different ECE machine.

  2. Import the Design
    1. Select File → Import Design from the menu bar.

    2. In the Netlist > Verilog > Files section, click …, click the open button in “Netlist Files” window, expand the window by clicking “>>”, add your netlist file (circ.vg) by double-clicking, and close the “Netlist Files” window.

    3. Check “LEF Files” radio button, click …, expand the window by clicking “>>” , add the LEF file /software/classtools/EEC116/nangate_45_2011_v2010.12/NangateOpenCellLibrary_PDKv1_3_v2010_12/Back_End/lef/NangateOpenCellLibrary.lef by double clicking, and close the “LEF Files” window.

      Library Exchange Format (LEF) gives the abstract information such as the PR boundary, pin positions and metal layers of a cell.

    4. Enter Power > Power Nets: VDD
      Ground Nets: VSS.

    5. Click OK.

  3. Set the Floorplan
    1. Before placing the standard cells, specify the design dimensions.

      Select Floorplan → Specify Floorplane...   from the menu bar.

    2. To distribute power around the chip, the core must be surrounded by power rings. To leave room for the power rings, set the core to IO boundary distance to 10 microns for all directions.

      Set 10.0 for Core to Left, Core to Right, Core to Top and Core to Bottom.

    3. Click OK.

  4. Plan the Power Grids
    1. Place the power rings (VDD and VSS) within the core to IO boundary space that was made available in Section 2.

      Click Power → Power Planning → Add Ring

    2. Enter Net(s):   VDD VSS

    3. Use horizontal metal layers for top and bottom and use vertical metal layers for left and right to ensure metal rings run parallel to the core.

      In Ring Configuration, select metal9(9)H in the pull-down menu next to Top and Bottom, and select metal8(8)V in the pull-down menu next to Left and Right.

      Click OK.

    4. Place the vertical and horizontal power stripes so that power from the rings can reach the standard cells.

      Click Power → Power Planning → Add Stripe

      Enter Set Configuration > Net(s):   VDD VSS

      In Set Configuration > Layer, select metal4(4), and choose Width and Spacing using the values in the table below next to the last few digits from your SIS ID.

      Enter Set Pattern > Set-to-set distance:   10

      Click OK.

    5. Click Power → Connect Global Nets...

      Click Connect > Pin radio button if not already selected.

      Enter Pin Name(s):   VDD

      Enter To Global Net:   VDD

      Click:   Add to List

      Enter Pin Name(s):   GND

      Enter To Global Net:   VSS

      Click:   Add to List

      Click:   Apply

      Click:   Cancel

    6. Select: Route → Special Route from the menu bar.

      Enter Net(s):   VDD VSS

      Click OK.

  5. Place Standard Cells
    1. After power planning is finished, place the standard cells that you synthesized (circ.vg).

      Select: Place → Place Standard Cell...

      Click: Mode...

    2. Uncheck:   Run Timing Driven Placement

      Uncheck:   Enable Clock Gating Awareness

      Check:   Place IO Pins

      Click:   OK.

    3. Click:   OK   to close the "Place" window.

      You should see placed standard cells. If you do not, press "f" to refresh the display to zoom the chip to fill the window.

  6. Route the Standard Cells
    1. Select:   Route → NanoRoute → Route...

    2. Leave everything default and click OK to run routing.

  7. Verify the Design

    Select:   Verify → Verify Connectivity

    Click:   OK

    Check the results displayed in the terminal window to verify there are "0 Viols" (violations) and "0 Wrngs" (warnings)

  8. Admire Your Layout

    Click "z" to zoom into an area, "Z" to zoom out, and "f" to fill the screen.

4. Submit Your Work

Submit the following to canvas all pasted into a single pdf file:
  1. Screenshot of your final layout

  2. Screenshot of your final layout zoomed into a section that shows the key dimensions of your power grid by using the ruler

  3. Screenshot of your terminal window showing no violations and no warnings

  4. Your innovus.cmd* files that are automatically generated by Innovus



EEC 116 | B. Baas | ECE Dept. | UC Davis
2023/11/30  Posted
2023/12/02  Added some clarifications