0% found this document useful (0 votes)
38 views

Analyze - PG - Resistance - Simple Procedure To Get Resistance Value Between Two Instances

voltus document

Uploaded by

thsim85
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

Analyze - PG - Resistance - Simple Procedure To Get Resistance Value Between Two Instances

voltus document

Uploaded by

thsim85
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

analyze_pg_resistance: Simple procedure to get resistance value between two instances

Explanation of Script
During design implementation, you need to know the resistance value of the dedicated power/ground nets within Innovus.

Tcl procedure in this article takes the net and view name as the input and reports the resistance between all instance pairs connected on the net. If there is more than one
path between each instance pair, the path with the maximum resistance will be reported. In the background, this Tcl uses the Voltus engine for power extraction and
requires Voltus L/XL and Voltus AA licenses.

Usage
Usage: analyze_pg_resistance <PGNET> <view name>

Example: Innovus > analyze_pg_resistance VDD_1 VIEW_1

Results: res_cal_VDD_1/effr_VDD_1.rpt

+++++++++++++++++++++

# Instance pairs that failed to report the effective resistance

# INSTANCE1 INSTANCE2 PIN1 PIN2

INST4 INST5 - -

# Effective resistance for the instance pair sorted from high to low

# PASS/FAIL REFF INSTANCE1 INSTANCE2 PIN1 PIN2

- 615 INST1 INST2 - -

- 574 INST1 INST3 -

+++++++++++++++++++++

Code
#*******************************************************************************

# DISCLAIMER: The following code is provided for Cadence customers to use at *

# their own risk. The code may require modification to satisfy the *

# requirements of any user. The code and any modifications to the code may *

# not be compatible with current or future versions of Cadence products. *

# THE CODE IS PROVIDED "AS IS" AND WITH NO WARRANTIES, INCLUDING WITHOUT *

# LIMITATION ANY EXPRESS WARRANTIES OR IMPLIED WARRANTIES OF MERCHANTABILITY *

# OR FITNESS FOR A PARTICULAR USE. *

#******************************************************************************/

# Note: Do not use this Tcl to calculate the resistance for the global power/ground net.

# Usage: analyze_pg_resistance PG_NET1 VIEW1

proc analyze_pg_resistance {net view} {

set p_id [pid]

set dir /tmp

set insts [dbGet top.insts.pgInstTerms.net.name $net -p2 ]

set cells [dbGet $insts.inst.cell.name -u]

set pgTerm [dbGet $insts.term.name -u ]

set inst_name [dbGet $insts.inst.name -u]

set fp [open ${dir}/cell_list_${p_id} w]

foreach cell $cells {

puts $fp $cell

close $fp

set fp [open ${dir}/inst_list_${p_id} w]

for {set x 0} {$x < [expr [llength $inst_name] - 1]} {incr x} {

set j [expr $x+1]

for { $j } { $j < [llength $inst_name] } { incr j } {

puts $fp "[lindex $inst_name $x] [lindex $inst_name $j]"

} ; # to prepare inst pair list

#foreach inst $insts {


#puts $fp [dbGet $inst.inst.name]

#}

close $fp

set dly_cor [get_analysis_view $view -delay_corner ]

set rc_cor [get_delay_corner $dly_cor -rc_corner ]

set qrc_tech [get_rc_corner $rc_cor -qx_tech_file ]

Puts $pgTerm

Puts $cells

Puts $qrc_tech

set_pg_library_mode -celltype techonly \

-ground_pins $pgTerm \

-extraction_tech_file $qrc_tech \

-cell_list_file ${dir}/cell_list_${p_id}

generate_pg_library -output ${dir}/TECHONLY_${p_id}

set pgvs " ${dir}/TECHONLY_${p_id}/techonly.cl "

set_pg_nets \

-net $net \

-voltage 0\

-threshold 0.05 \

-force

setvar enable_pin_inst_geo_conn_check true

set_rail_analysis_mode \

-method static \

-vsrc_search_distance 50 \

-temperature 125 \

-accuracy hd \

-power_grid_library $pgvs \

-ignore_shorts true \

-ignore_fillers false \

-enable_manufacturing_effects true \

-enable_rlrp_analysis true \

-extractor_include ../TCL/extraction_include \

-extraction_tech_file $qrc_tech\

-temp_directory_name ./TEMP_XP_${p_id} \

-work_directory_name work_${p_id}

set_power_pads \

-net $net \

-format padcell \

-file /tmp/cell_list_${p_id}

# -file ../TCL/pad_file

analyze_resistance \

-instance_pair_list_file ${dir}/inst_list_${p_id} \

-net $net -output_dir res_cal_${net} -output effr_${net}

Usage: analyze_pg_resistance <PGNET> <view name>

Internal Notes
None
Return to the top of the page

You might also like