( 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
|
|