View Library Table of Contents Previous Next Open PDF to print book Email Comments Help Using Documentation Shut Down Cadence Documentation Server


Virtuoso® UltraSim Simulator User Guide
Product Version 18.1 January 2019


6 

Power Network Solver

This chapter describes how to detect and analyze power networks using the Virtuoso® UltraSim power network solver (UPS).

Detecting and Analyzing Power Networks

The Virtuoso UltraSim simulator can be set to detect power networks. A power network is a RC network that is driven by a power supply or internal generator, and it sends voltage through channel connections into a large number of active devices (for example, a MOSFET device). In most cases, the power network is used to model the IR drop in power supplies, yet power networks can also appear in signal nets.

The methods of detection include:

ParagraphBullet
Automatic - simulator automatically detects the power network according to its connectivity. Use the pn_level and pn_max_res methods to get finer grid control for automatic detection.
ParagraphBullet
Manual - you can manually specify a substring for a power net name (known as string or name mapping). Only the elements, primarily resistors and capacitors with terminal names that contain the specified substring, are kept in the power networks. Use the usim_pn command to specify the pattern and pn_max_res to further control partitioning.

usim_pn

Spectre Syntax

usim_pn node=name <pattern=[pattern1, pattern2, ...]> <method=short|keep|ups>
usim_pn auto=yes|no <method=short|keep|ups>

SPICE Syntax

.usim_pn node=name <pattern=[pattern1, pattern2, ...]> <method=short|keep|ups>
.usim_pn auto=yes|no <method=short|keep|ups>

Note: A period (.) is required when using SPICE language syntax (for example, .usim_pn).

Description

The usim_pn command is used to specify how power network nodes are detected and handled by the Virtuoso UltraSim simulator.

Arguments

 

node

Name of the power network node (wildcards are not supported).

pattern1, pattern2

Strings for pattern matching. Only nodes with names containing pattern1 or pattern2 are partitioned into power networks.

method

Method applied to the nodes previously specified - determines how parser networks are handled.

ParagraphBullet
method=short removes the power network (default for mx, ms, da, and df modes)
ParagraphBullet
method=keep keeps the power network and simulates it with the circuit
ParagraphBullet
method=ups keeps the power network and analyzes it with the UPS solver (rest of the circuit is simulated by the simulator)

auto

Auto-detection mode for the power network nodes.

ParagraphBullet
auto=yes enables auto-detection (default for mx, ms, da, and df modes)
ParagraphBullet
auto=no disables auto-detection (default for s and a modes)

Note: You need to specify nodes manually.

Example

Spectre Syntax:

usim_pn node=vdd method=keep

usim_pn node=gnd method=short

usim_pn auto=yes method=ups

SPICE Syntax:

.usim_pn node=vdd method=keep

.usim_pn node=gnd method=short

.usim_pn auto=yes method=ups

tells the Virtuoso UltraSim simulator to keep the vdd power network, simulates the network, removes the gnd power network, and uses auto-detection to find all of the other power networks to which the simulator applies UPS.

pn_level

usim_opt pn_level=0|1|2|3|4

Description

The Virtuoso UltraSim simulator uses a detection algorithm to automatically detect power networks. The pn_level method is used to control the aggressiveness of the power network detection algorithm. The higher pn_level is set (range of 0 to 4), the more aggressive the detection algorithm, which results in more nets being classified as power nets. The default is pn_level=0.

Note: This method only applies to automatic detection of power networks.

Example

usim_opt pn_level=4

tells the simulator to use the most aggressive simulation setting (pn_level=4) to automatically detect power networks.

pn_max_res

usim_opt pn_max_res=value

Description

Controls partitioning between signal and power nets via resistor values. Use pn_max_res to specify the resistor values. Resistors with a value less than the specified value are considered part of the power network, whereas resistors with a value equal to or larger than the specified value are part of the signal net.

Example

usim_opt pn_max_res=1000

tells the Virtuoso UltraSim simulator to partition resistors with a value less than 1000 ohms that are part of a specific power net.

pn

usim_opt pn=0 inst=[res1 res2 cap1 cap2...] model=[model1 model2..] pn_file=["filename1" "filename2"...]

Description

The pn=0 command is used to exclude resistors and capacitors from power network detection.

 

Table 6-1  pn=0 Options

Option

Description

res1, res2

Specifies the resistors to be excluded from power network detection (must use full hierarchical name).

cap1, cap2

Specifies the capacitors to be excluded from power network detection (must use full hierarchical name).

filename1, filename2...

The name of the files which contain the resistors and capacitors to be excluded (full hierarchical name for resistors and capacitors needs to be included in files).

model1, model2

Specifies the model names. The model names need to use the resistor or capacitor model names. All instances for the specified model are excluded from power network detection.

Example

usim_opt pn=0 inst=[x1.r1 x1.c2]

tells the simulator to exclude the x1.r1 and x1.c2 resistors from any power networks, even if the resistors share connectivity.

UltraSim Power Network Solver

The UPS is an optimized solver designed to analyze linear power networks. The solver is integrated into the Virtuoso UltraSim simulator, and together with the Virtuoso UltraSim engine, lets you calculate the IR drop in power networks and analyze its effect on circuit behavior. Figure 6-1 shows an overview of the power network simulation methodology recommended by Cadence.

Figure 6-1  Overview of Power Network Simulation Methodology


The method=ups argument in the usim_pn command is used to enable UPS. Additional power network solver options can be set using the usim_ups keyword (see the table of "Arguments" for a list of usim_ups arguments).

usim_ups

Spectre Syntax

usim_ups <iteration=integer> <speed=number> <ir_avg_threshold=double> <ir_peak_threshold=double> <ir_rms_threshold=double>
<ir_report=filename> <waveform_file=filename> <all_waveform=true|false>|<output_node_file=filename>> <step=number>

SPICE Syntax

.usim_ups <iteration=integer> <speed=number> <ir_avg_threshold=double> <ir_peak_threshold=double> <ir_rms_threshold=double>
<ir_report=filename> <waveform_file=filename> <all_waveform=true|false>|<output_node_file=filename>> <step=number>

Arguments

 

iteration

Number of iterations between UPS and the Virtuoso UltraSim engine. The higher the iteration number, the greater the accuracy (default is iteration=1). The iteration argument only provides IR drop and does not calculate its influence on circuit behavior. To achieve higher accuracy for a large IR drop, Cadence recommends using iteration=2 or greater.

speed

Designates the speed and accuracy trade-off for UPS, with speed levels ranging from 1 to 8. The speed settings are as follows (default is speed=3):

ParagraphBullet
speed=1 lowest speed, highest accuracy
ParagraphBullet
speed=2 through speed=7 moderate speed and accuracy
ParagraphBullet
speed=8 highest speed, lowest accuracy

ir_avg_threshold

Threshold average for IR drop reporting (default print out is 20 nodes with highest average IR drop).

ir_peak_threshold

Threshold peak for IR drop reporting (default print out is 20 nodes with highest peak IR drop).

ir_rms_threshold

Threshold RMS for IR drop reporting (default print out is 20 nodes with highest average RMS drop).

ir_report

Filename to which IR report is printed (default is none).

waveform_file

Filename of waveform file containing voltages for selected nodes, power networks, and tap points (default is none).

all_waveform

Prints out all power network node voltages (true) or the tap point connected to active devices (false). Default is false.

Note: You first need to define waveform_file before all_waveform is enabled.

output_node_file

Filename that contains the nodes from the waveform file. Allows you to choose the nodes of interest.

step

Specifies the time step used for UPS solver.

Note: The UltraSim simulator only accepts one usim_ups statement at a time. If multiple usim_ups statements are specified in the netlist file, the simulator uses the last statement and ignores the rest.

Example

Spectre Syntax:

usim_pn node=VSS_D pattern=[VSS_D] method=ups

usim_pn node=VSS_A pattern=[vss_a] method=ups

usim_ups iteration=1 speed=2 waveform_file=wave all_waveform=true

usim_opt pn_max_res=50

SPICE Syntax:

.usim_pn node=VSS_D pattern=[VSS_D] method=ups

.usim_pn node=VSS_A pattern=[vss_a] method=ups

.usim_ups iteration=1 speed=2 waveform_file=wave all_waveform=true

.usim_opt pn_max_res=50

tells the Virtuoso UltraSim simulator:

ParagraphBullet
To partition power nets according to the name mapping mechanism.
For nodes associated with power net VSS_D, the simulator only partitions elements with terminal names containing VSS_D to be solved by UPS. For nodes associated with VSS_A, the simulator only partitions elements with terminal names containing vss_a to be solved by UPS. For nodes associated with VSS_D, the simulator only partitions elements with terminal names containing VSS_D to be solved by UPS.
ParagraphBullet
The iteration number between the simulator engine and UPS is 1 (default), and speed is 2 (moderate speed and accuracy).
ParagraphBullet
All waveform files start with wave and they contain all of the power network nodes.
ParagraphBullet
To limit the maximum resistance in the power nets to 50 ohms.

 


Return to top of page

View Library Table of Contents Previous Next Open PDF to print book Email Comments Help Using Documentation Shut Down Cadence Documentation Server

For support, see Cadence Online Support service.

Copyright © 2019, Cadence Design Systems, Inc.
All rights reserved.