( ESNUG 416 Item 5 ) -------------------------------------------- [07/30/03]

From: Trisha Toney <trisha=user  domain=cadence spot calm>
Subject: How To Run Cadence CeltIC Xtalk In A Synopsys PrimeTime Setting

Hi John,

Here is a short note on how to use CeltIC for xtalk analysis in a Synopsys
flow.  It's very simple.  There's a single PrimeTime command ("run_celtic")
to call CeltIC.  This command will calculate the impact of crosstalk on
delay and also generate ECOs to fix xtalk delay and glitch problems back
in Astro/Apollo.  The "run_celtic" command will automatically iterate
between PrimeTime and CeltIC to converge on timing windows.  This is needed
as crosstalk effects are dependent on timing windows and timing windows are
dependent on crosstalk effects.

The basic flow looks like:

       Astro/Apollo--> Star-RCXT--> PrimeTime+CeltIC--> Astro/Apollo
         |        |              |          |           |          
         V        V              V          V           V
        DEF      SPEF           SDF         ECOs    Fixed DEF

The Tcl scripts required to call CeltIC from PrimeTime are located in the
scripts directory under the CeltIC installation.  To set up, source the
[install_dir]/scripts/install.sh script which will ask the user various
questions (like how many iterations they want run).  This creates a
run_celtic.tcl file which contains the necessary commands to run CeltIC.
There is no pre-knowledge of any CeltIC commands required to install and
run this.

Then source the following file just before the report request in the
PrimeTime Tcl script.

    source run_celtic.tcl

The run_celtic.tcl file contains

    run_celtic -celtic_cmd_file <my_celtic.tcl> -top my_chip \
               -tw_iteration 3  -tw_convergence_mode 0 \
               -apollo_eco -tw_incremental_slew

where "-celtic_cmd_file my_celtic.tcl" specifies the Tcl file for running
CeltIC and "-top my_chip" is the name of the block being analyzed,
"-tw_iteration 3" specifies a maximum of 3 iterations between PrimeTime and
CeltIC to converge on timing windows, "-tw_convergence_mode 0" specifies to
ignore timing windows for the first iteration of CeltIC, "-apollo_eco"
generate ECOs for Apollo/Astro and "-tw_incremental_slew" indicates that
xtalk induced slew changes should also be considered when calculating xtalk
impact on delay.  Below is an example of a PrimeTime script top run CeltIC.

    set link_path "* sc_min.db sram_min.lib"
    read_verilog foo.v
    link_design foo
    read_parasitics foo.spef
    create_clock -period 1000 -waveform {0 500} [get_port clk]
    source foo.constraints
    source run_celtic.tcl
    report_timing 
    ...
    exit
 
The results and reports from running CeltIC are put into a directory under
the run directory called "celtic_results" (the name can be changed using
the -results_dir switch to run_celtic).

One other thing to watch out for it that you need to tell the "run_celtic"
script the time units for delays generated by PrimeTime.  The script
defaults to nanoseconds.  To change edit the "run_celtic.tcl" file and set
the "PTTOCM_UNIT" variable the call to "run_celtic" e.g.

    # Set the units to Picoseconds
    set PTTOCM_UNIT "e-12"
    run_celtic -celtic_cmd_file foo_celtic.tcl -top foo \
               -apollo_eco -tw_incremental_slew -tw_iteration 3 \
               -tw_convergence_mode 0

That's all there is to it.  If anyone on ESNUG needs help with this, feel
free to contact me.

    - Trisha Toney
      Cadence                                    San Jose, CA


 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)