Difference between revisions of "Cadence Encounter"

From Vlsiwiki
Jump to: navigation, search
Line 28: Line 28:
 
with X11 exported to your local machine. If this completes successfully, you can hit "f" to center the layout.  
 
with X11 exported to your local machine. If this completes successfully, you can hit "f" to center the layout.  
  
 +
 +
== Typical Design Flow ==
 +
 +
=== Floorplanning ===
 +
 +
=== Placement ===
 +
 +
=== Timing Analysis ===
 +
=== Clock Tree Synthesis ===
 +
 +
=== Optimization ===
 +
 +
=== Routing ===
  
  

Revision as of 00:10, 17 February 2011

Overview

To use the Cadence tools, you must change this environment variable:

export OSUcells=/mada/software/techfiles/osu_soc_v2.7/cadence 

The OSU scripts for Cadence can be copied from here:

cp -rf /mada/software/techfiles/osu_soc_v2.7/cadence/flow/ami035

but they are for an old version of Encounter. Quite a few things have changed, so I am posting a description of the working script I made by modifying the old OSU scripts.


You will need to specify the correct top-level name and gate-level netlist name in encounter.conf. This keeps variables and constants used in the placement and routing scripts.

Running Scripts

To run encounter, you simply can run:

 encounter

at the Linux shell prompt.

In this tutorial, I may not explicitly mention the GUI menu commands, because it is more convenient to use the shell interface. However, most of these commands are available (with forms for options) under the appropriate menus (e.g. Timing, Place, Floorplan, etc.). I suggest that you use the GUI for the first time along with the "-cmd foo.log" argument to save your actions/commands to a file called foo.log. You can then create a script from the saved file.

To run a script, type:

encounter -init encounter.tcl

with X11 exported to your local machine. If this completes successfully, you can hit "f" to center the layout.


Typical Design Flow

Floorplanning

Placement

Timing Analysis

Clock Tree Synthesis

Optimization

Routing

Notes on 45nm

If you want to synthesize a design using the Nangate FreePDK45 cell library, you need to make a few changes:

1) You need to compile the Nangate .lib into a .db and use that. To do this, run:

dc_shell-t

Then execute these commands:

read_lib /mada/software/techfiles/NangateOpenCellLibrary_PDKv1_3_v2009_07/liberty/NangateOpenCellLibrary_typical_conditional_ccs.lib  
write_lib NangateOpenCellLibrary

which will create a file NangateOpenCellLibrary.db. Move that to your project directory.

2) Then, these lines change to the compile_dc.tcl:

set search_path [concat  $search_path . ]
set link_library [set target_library [concat  [list NangateOpenCellLibrary.db ] [list dw_foundation.sldb]]]


3) In the encounter.conf, you need to reference the .lib file instead of the .tlf file. You also need to point to the .lef file. Specifically, these lines change:

set OSUcells /mada/software/techfiles/NangateOpenCellLibrary_PDKv1_3_v2009_07
set rda_Input(ui_timelib) "$OSUcells/liberty/NangateOpenCellLibrary_typical_conditional_ccs.lib"
set rda_Input(ui_leffile) "$OSUcells/lef/NangateOpenCellLibrary.lef"