Sample aplmmx.config file:
# turn on Transient SignalEM mode
EMPRO_MODE dynamic
# Probe level setting: (Default is 1)
# 1: Add probe 1st, 2nd, 3rd terminal of mos, bjt, any terminal
of diode and resistor
# 2: Besides 1, Add probes for primary input if spice simulator
can handle them
# Top cell name
TOP_CELL <top level cellname>
TOP_XCELL_NAME <name of instantiation of top cell in spice test bench>
VDD_PIN_NAME <vdd_pin1> <vdd_pin2> ...
GND_PIN_NAME <gnd_pin1> <gnd_pin2> ...
VDD <vdd_value1> <vdd_value2> ...
# If simulator does not support parameterized probes,
# disable parameterize probe generation using the keyword
PROBE_NO_PAR 1
TEST_BENCH_FILE <testbench>
SPICE_NETLIST <spice netlist>
DSPF_NETLIST <layout extracted dspf>
# Define Apache tech layer to dspf layer id/name map
DSPF_MAP <dspf map file>
TEMP <temperature>
PROCESS <process corner>
SIM_OUTPUT_FILE <simulation_output_file>
# GSR file that contains baseline GSR keywords like FREQ,
INPUT_TRANSITION, TECH_FILE, SIM_TIME
GSR_IN_FILE <sigEM.gsr file pointer>
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 337
Methodology for Transistor-level Signal EM Analysis
# Define state name and capture window to use from simulation
CUSTOM_STATE_SIM_TIME {
TEST1 “” “” 0e-9 10e-9
}
DEVICE_MODEL_LIBRARY <pointer to spice model file> <corner>
SPICE_SIMULATOR <path to spice simulator>
GDS_FILE <path to gds>
GDS_MAP_FILE <path to gds layer map file>
GDS_OPTION {
# Include Contact Resistance in Extraction
CONTACT_RESISTANCE 1
# Optional: specify a snapping threshold distance for your device pins
SNAP_THRESHOLD_DISTANCE <distance_microns>
# Only use top level text for power and ground net tracing
USE_TOP_LEVEL_TEXT_ONLY 1
}
# Trace signal nets from multiple trace points specified in DSPF file
APPLY_ALL_TRACEPOINT 1
# Specifies to stop netlist tracing at the Spice subckt level,
# and not probe inside device model subckt.
PROBE_STOP_AT_MODEL_SUBCKT 1
# Specify names of blackboxed inductor cells, and metal layer to snap
pins to.
# If a specific metal layer is not known, then specify
# LM for lowest metal, or HM for highest metal
INDUCTOR_MODEL_NAME {
<names of spiral inductor cells> <metal layer to snap pin to |LM|HM>
}
# For capacitor models (xinstance) in netlist, specify the model names
CAPACITOR_MODEL_NAME <mos_cap_model_name>
a. Sample 1 GSR_IN file (baseline GSR file):
-------------------------------------------------
VDD_NETS
{
VDD 1.05
}
GND_NETS
{
VSS 0
}
DEF_TRUE_PATH_EXTENSION 0
PGNET_HONOR_DEF_TYPE 1
TEMPERATURE 125
EM_TECH_AVG ./user_data/tech/em_avg.limits
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 338
Methodology for Transistor-level Signal EM Analysis
EM_TECH_PEAK ./user_data/tech/em_peak.limits
EM_TECH_RMS ./user_data/tech/em_rms.limits
ENABLE_BLECH 1
USE_DRAWN_WIDTH_FOR_EM_LOOKUP 1
EM_REPORT_PERCENTAGE 75
EM_REPORT_LINE_NUMBER 30000
EM_REPORT_PERCENTAGE 0
IGNORE_TECH_ERROR 1
TECH_FILE ./user_data/tech/ totem_avg.tech
FREQ 1e+09
GSC_FILE ./user_data/top.gsc
DYNAMIC_SIMULATION_TIME 1ns
DYNAMIC_TIME_STEP 10ps
-------------------------------------------------
b. Sample 2 GSR (cookbook)
# Main tech file specification
TECH_FILE <main tech file>
# EM tech files for RMS/AVG/PEAK (Optional)
EM_TECH_RMS <rms tech file>
EM_TECH_AVG <avg tech file>
EM_TECH_PEAK <peak tech file>
TEMPERATURE 125
FREQ 1e+08
VDD_NETS {
VDD <vdd_value>
}
GND_NETS {
VSS 0
}
LIB_FILES {
}
# Apl file specification from aplmmx run
APL_FILES {
<pointer>/<cell_name>.spcurrent sigemcurrent
}
# EM model file from aplmmx run
MACRO_EM {
DSPF <pointer>/<cel_namel>_dspf.rh
}
# GDS2DB config creates from aplmmx run
GDSII_FILE {
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 339
Methodology for Transistor-level Signal EM Analysis
<cell_name> <pointer>/<cell_name>.gds.conf full
}
NATIVE_GDS_SUPPORT 1
# Dynamic simulation time and resolution
DYNAMIC_SIMULATION_TIME 10ns
DYNAMIC_TIME_STEP 50ps
# Use drawn width for em calculation and lookup from tech
files
USE_DRAWN_WIDTH_FOR_EM_LOOKUP 1
USE_DRAWN_WIDTH_FOR_EM 1
# Use the Delta T of 5C from tech file. Rule should be
specified correctly in tech file
DELTA_T_RMS_EM 5
EM_DUMP_PERCENTAGE 0
EM_REPORT_LINE_NUMBER -1
c. Sample APLMMX configuration file
A sample APLMMX configuration file is shown below:
EMPRO_MODE dynamic
########################################################
# Top cell name
########################################################
TOP_CELL demo
########################################################
# This should have the testbench instance name
########################################################
TOP_XCELL_NAME Xtop
GDS_FILE ./user_data/demo.gds
GDS_MAP_FILE ./user_data/gds_layer.map
GDS_OPTION {
CONTACT_RESISTANCE 1
START_POINT_TOLERANCE 0.005
}
SPICE_NETLIST ./user_data/demo.sp
DSPF_NETLIST ./user_data/demo.dspf
FINGER_DELIMITER @
PROBE_STOP_AT_MODEL_SUBCKT 1
########################################################
# Include device model libraries here
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 340
Methodology for Transistor-level Signal EM Analysis
########################################################
DEVICE_MODEL_LIBRARY ./user_data/log40.l corner
DEVICE_MODEL_LIBRARY ./user_data/log40.l fastmid
DEVICE_MODEL_LIBRARY ./user_data/hd_cell_242_ll.l ff
DSPF_MAP ./user_data/signal_em_dspf.map
INCLUDE ./user_data/options.inc
SPICE_SIMULATOR hsim
SIM_OUTPUT_FILE ./user_data/top.fsdb
MULTI_STATE_FILE ./user_data/top_timeframe.inc
IGNORE_OVERLAP_POINT 1
GSR_IN_FILE ./user_data/base.gsr
Required GSR keywords
The initial APLMMX characterization step creates a basic GSR file and is saved in
<out_dir>/<design>.gsr. You must then add the following keywords:
• VDD_PIN_NAME <vdd1> <vdd1> ... <vddN> - specifies power domain names. Same
as defined in aplmmx.
• GND_PIN_NAME <gnd1> <gnd2> ... <gndN> - specifies ground domain names.
Same as defined in aplmmx.
• VDD <vdd1_volt_level> <vdd2_volt_level> ... <vddN_volt_level> - specifies power
domain nominal voltage level. Same as defined in aplmmx.
Optional GSR keywords
Additional GSR keywords can be added as necessary. See previous sections or Appendix
C for details.
• EM_TECH_RMS/AVG/PEAK <filename> -
• DEFAULT_PULLUP <resistance>
• DEFAULT_PULLDOWN <resistance>
• PRIMARY_OUTPUT_LOAD_CAPS
• EM_SCALE_AVG <value>
• EM_SCALE_RMS <value>
• EM_SCALE_PEAK <value>
• EM_SCALE_UNI <value>
• EM_SCALE_UNI_AVG <value>
• EM_SCALE_UNI_RMS <value>
• EM_SCALE_UNI_PEAK <value>
• ENABLE_BLECH [ 0 | 1 ]
Sample dynamic GSR file
A sample <tsr>.gsr file for probe-based dynamic flow is as follows:
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 341
Methodology for Transistor-level Signal EM Analysis
EMPRO_MODE dynamic
DYNAMIC_SIMULATION_TIME 10ns
DYNAMIC_TIME_STEP 10ps
GSC_FILE top.gsc
GDS_OPTION {
CONTACT_RESISTANCE 1
}
MULTI_STATE_FILE top_state.txt
TOP_CELL top
#
VDD_PIN_NAME VDD
GND_PIN_NAME VSS
VDD 1.1
#
DSPF_NETLIST dspf.sp
DSPF_MAP dspf.map
#
GDS_FILE des.gds
GDS_MAP_FILE gds.map
#
TEST_BENCH_FILE dut.sp
#
DEVICE_MODEL_LIBRARY mos.lib TYP
DEVICE_MODEL_LIBRARY res.lib tt
#
DEFAULT_PULLUP 100
DEFAULT_PULLDOWN 100
#
TECH_FILE des.tech
#
FREQ 70e6
TEMPERATURE 25
PRIMARY_OUTPUT_LOAD_CAPS {
DEFAULT_LOAD 10f VDD
DEFAULT_LOAD 10f VSS
}
Running Transistor-level Signal EM Analysis
Estimated Waveform Method
To run signal EM, a TCL run file, such as the following sample, can be used:
setup analysis_mode -signalEM
import gsr <tsr>.gsr
setup design
perform analysis -signalEM
True SPICE Simulation-based Method
There are two ways of running EM analysis using SPICE simulation waveforms:
a. run SPICE simulation directly inside Totem (default)
ANSYS, Inc.
CHAPTER 11 — Signal EM Analysis Totem User Manual | 342
Methodology for Transistor-level Signal EM Analysis
ANSYS, Inc.
b. run SPICE simulation using a third-party simulator flow
These methods are described below.
Run SPICE Simulation Directly Inside Totem
To run SPICE simulation inside Totem signal EM analysis, after performing the setup
steps described in the previous section, execute the following command with a TCL
command file :
totem2 -f cmd_signalEM.tcl
Example command file:
setup analysis_mode signalEM
import gsr Design_ABC.gsr
setup design
#cell.gsc specifies which state to use in analysis.
import gsc <cell>.gsc
perform analysis -signalEM -transient
The last line of the command file also automatically invokes the following functions:
perform extraction -signal -r -c
perform emcheck
If the GSR keyword “ENABLE_EM_PROCESS” is set to 1, the additional two commands
are not automatically performed. Its default value is 0, which runs the added EM steps. |