Sie sind auf Seite 1von 15

Category Topology

Check Name appCntESDStage.tbc / cck::CntESDStage

Description
The ESD devices between any 2 pads shall be as less as possible so the excessive charge can utilize shortest
path to discharge the energy. For example, the charge from pad “I/O1” to pad “I/O2” is discharged
traversing 5 ESD devices from domain A to domain B. Likewise this check will detect 2 diodes from
VSS1 to VSS2. The check allows you to find if any power domains are isolated and missing adequate ESD
cell structures.

This check verifies overall connectivity of ESD scheme. It identifies all the ESD devices connected among
pads and find the shortest ESD paths between any 2 pads. It will also report the highest ESD cell count
between pads so designer can add ESD devices to reduce the stage number.
The check can be run at IO or block or SoC level by specifying a top level circuit name. The overall ESD
integrity is verified with the following checks:
 Verify ESD protection element between I/O and Power (VDD, VSS) Rails, including correct
diode polarities, within I/O or supply cell
 Verify power clamp between power rails (VDD, VSS), including correct device polarity, within
I/O or supply cell
 Verify inter-domain continuity with back-to-back diodes
 Verify the presence of intended ESD current path for each pin-pair combination within an I/O
bank od same power-domian.
 Verify the presence of intended ESD current paths between any pin pairs belonging to different
power-domains.
 Check the sizes of ESD devices against existing ESD sizing rules (diode area or clamp width
requirements, etc.).

Operation
The user will be required to supply the lists of I/O (-pad_io) and Power/Ground pads (-pad_pg) as the
starting point for the check’s ESD path tracing.
If the pad name list is not specified then top level sub-circuit ports are considered as pads to proceed
operation (if not any pads are detected, the check completes with empty results).

Application Note Page 1


After recognizing the pads, the check applies rules to detect possible direct clamp cells between two given
pads:
1. The clamp-subckt instances that are connected between I/O and/or power/ground pads. The
clamp-subckts are those defined by the user, they are specified by –clamp_esd option.

It’s a uni-directional discharge device, or bidirectional device, depending on the control option, -
bidir. The instances under this subckt intances will not be counted as ESD discharge device to
prevent duplicate/inconsistant result.
2. If a mosfet with both of its drain and source are directly connected between two power/ground
pads, and the source terminal and drain terminal are not connected to the same node, this mosfet is
considered as a potential mos-clamp device.

The discharge path is uni-directional, or bidirectional, depending on the control option, -bidir.
The default value of -bidir is 1, which implies the clamps act as bi-directional discharging
devices. If –bidir is set to 0, the discharge path on the mos-clamp is always from drain terminal
to source terminal. (The nets connected to mosfet terminals follow the spice terminal order,
namely, drain-gate-source-bulk.) User may further narrows down the clamp device to those mosfet
with a width larger than a threshold value by adding the option –wth. The default value for –wth
is 0.

-wth (default=0) Mosfet without w parameter Mosfet with area parameter

=0 Could be a discharge path Could be a discharge path

Application Note Page 2


>0 Cannot be a discharge path Could be a discharge path if
the width is equal or larger
than –wth.

3. If a diode with both of its cathode and anode are connected to I/O and/or power/ground pads, and
both terminals are not connected together, this diode is considered as an ESD device. It is also
supported a stack of diodes.

The discharge path is unidirectional, ie always from anode to cathnode. A stack of diodes also
form a discharge path, its discharge stage count is the number of devices in the path.
The user may further narrow down the discharge diodes to those diodes with area larger than a
threshold value by setting the option –areath. The default value for –areath is 0. When –areath is
set to 0, the script does not check whether a diode is assigned with the area value or not.

-areath (default 0) Diodes without area parameter Diodes with area parameter

=0 Could be a discharge path Could be a discharge path

>0 Cannot be a discharge path Could be a discharge path if


area is larger than –areath.

For the zener diodes, the script relies on the break-down voltage parameter, bv, to distinguish from
regular diodes. The user may change the threshold of bv to decide whether the zener acts as bi-
directional discharge path or uni-directional discharge path:

-bvth (default=10V) Diode without “bv” paramter Diode with “bv” paramter

“bv” <= bvth Uni-directional Bi-directional

“bv” > bvth Uni-directional Uni-directional

Based upon the above consiiderations, only those diodes with “bv” (break-down voltage) lower
than –bvth will be considered as zener diodes and form bi-directional discharge path.
For serial connected diodes:
 If there is one diode without bv parameter, the whole path become uni-directional.
 If all diodes are with bv parameters, the path will become bi-directional if:

Application Note Page 3


4. Associated with the valid discharge device listed about, if serial connected resistors presented and
the sum of resistances is lower than –resmax, it is also a valid discharge path and the stage count
remain the same. For example:

It is an uni-directional path or a bi-directional path depending on the rules listed above. The total
resistance must be less than –resmax otherwise it is not a discharge path. For above example,
R1+R2 must be smaller than –resmax.

After all the ESD devices (mos-clamp, clamp-subckt, diode) are identified and their connectivity is
recognized, the check ends up by applying an algorithm to find the shortest ESD/clamp path between any
combination of two pads, and completes by generating an output matrix view to better assess the protection
according to the ESD network.
The checker generates four output files with “CktCheck” as the default prefix name:
1. <CktCheck>.table – the table contains the matrix of stage numbers for shortest path between any
two pads. It also contains all the path details between pads.
2. <CktCheck>.conn – the discharge devices recognized by the script, including the subinfo, the
model name associated to the diode and clamp cells, and the subckt name of the clamp-subckt
defined by –clamp_esd.
3. <CktCheck>.clamp – the list of clamp devices recognized by the script, including the mos-clamps
and the clamp-subckts defined by –clamp_esd.
4. <CktCheck>.path – the shortest EDS stages between two pads with discharge path. There might
be multiple shortest paths between any two pads. In this case, only one path will be reported. This
file is generated in CCK Standard Output Format ready to be viewed with Customer-Explorer.

Application Note Page 4


Usage Syntax
Run Tcl-CCK application in console mode:
cck appCntESDStage.tbc –i <netlist> [-top <topname>] [-syntax <spice|spectre|eldo>]
[-pad_io “pad1 pad2 …| pad_file”] [-pad_pg “vdd1 vss1 …|pad_file”] [-pad “pad1 pad2
…| pad_file] [-clamp_esd “{-name subname1 –i <port> -o <port>; -name subname2 –i
<port> -o <port>;…}”] [-bidir [0|1]] [-wth <val>] [-areath <val>] [-inst <scope>][-
resmax <val>] [-o <output_prefix>]

Run Macro Command in Tcl CCK environment:


cck::CntESDStage [-pad_io “pad1 pad2 …| pad_file”] [-pad_pg “vdd1 vss1
…|pad_file”] [-pad “pad1 pad2 … | pad_file”] [-clamp_esd “{-name subname1 –i
<port> -o <port>; -name subname2 –i <port> -o <port>;…}”] [-bidir [0|1]] [-wth <val>]
[-areath <val>] [-inst <scope>] [-resmax <val>] [-o <output_prefix>]

Application Note Page 5


Options specifically associated to appCntESDStage.tbc
Argument Description Default value

-i Input netlist file name N/A

-top The top subcircuit of input netlist if required N/A

-syntax Netlist syntax hspice

-keep_top_inst this option is associated with –top option: 1


0: remove all non-vsrc top level elements (CustomSim)
1: keep top level elements (HSIM)

-allow_empty_subckt 0: error out on instantiated empty subckt definitions 0


1: warning only

Options associated to both appCntESDStage.tbc and cck::CntESDStage


Argument Description Default value

-o Output file name {InputNetlistFileName


}.table
{InputNetlistFileName
}.conn
{InputNetlistFileName
}.clamp

-pad_pg List of power/ground pads that being checked. N/A


power/ground pads can be discharged through any
kinds of discharge paths (mos-clamp, clamp-subckt or
diodes).

-pad_io List of I/O pads that being checked. Only discharge N/A
path formed by diodes and/or clamp-subckt is allowed
for I/O pads.

-pad Old syntax, identical to pad_pg N/A

-clamp_esd List of esd subckt and associated ports for discharge N/A
input/output:
EX:
-clamp_esd "{-subckt io_ne -i d -o s; -subckt io_ne3 -i
d -o s;-subckt io_pe3 -i s -o d}"

-bidir To decide whether a mosfet between 2 pads forms a 1


bidirectional discharge path or forms a uni-directional
discharge path (from drain to source). The default
value is 1, which means mosfet always consider as a
bi-directional discharge path. While setting this option
to 0 means mosfet is considered as uni-directional

Application Note Page 6


discharge path (from drain to source).

-wth Minimum width threshold for mosfet to qualify as a 0


clamp device. If a mosfet has its width less than this
value, it will not be considered as a clamp device.

-areath Minimum area threshold for diodes to qualify as a 0


discharge path. If a diode has its area less than this
value, it will not be considered as a clamp device.

-bvth Upper bound breakdown voltage for diodes to qualify 10


as a bi-directional discharge path.

-inst instance list or list of instance scope to specify N/A


instances that being considered as clamp devices.
example:
-inst "inst1* inst2* inst3* inst4*"
-inst "(,dev*,) (sub1,dev*,) (,,model1)"
-inst “inst1* inst2* inst3* (,dev*,) (sub1*,dev*,)
(,,model1*)"
-resmax
The upper bound of the total resistance value for the 0
serial connected resistors to form a valid discharge
path. The default value is 0, which means no resistor is
allowed in the discharge path. . (Note: “-resmax”
capability will be available in 2014.09-SP3 release)

Example-1
The example illustrates how to invoke directly the application in
console mode.
% cck appCntESDStage.tbc -i input_netlist_file.spice -top top_subckt
-pad_pg "VSSA VSSB VSSC"
A report matrix like following will be reported:
---------------------
A - VSSA
B - VSSB
C - VSSC
---------------------

A B C
- - -
A|- 1 1
B|2 - 1
C|1 2 -

Application Note Page 7


Figure 1 Sample ground network connected with back to back diodes

Example-2
The example illustrates how to interpret the matrix view reported by
the checker.
% cck appCntESDStage.tbc -i input.sp -top top1 –pad_pg "gnd_ana_l1
gnd_lna gnd_synth_l1 sgnd sgnd_io sgnd_rf vss"

A report matrix like following will be reported:


---------------------
A - gnd_ana_l1
B - gnd_lna
C - gnd_synth_l1
D - sgnd
E - sgnd_io
F - sgnd_rf
G - vss
---------------------

A B C D E F G
- - - - - - -
A|- 2 2 2 1 2 2
B|2 - 2 2 1 2 2
C|2 2 - 2 1 2 2
D|2 2 2 - 1 2 2
E|1 1 1 1 - 1 1
F|2 2 2 2 1 - 2
G|2 2 2 2 1 2 –

Take the highlighted red number “2” from above as example: It means it will take 2 ESD stages to go from
pad “sgnd” (The “D”) to pad “gnd_synthl1” (The “C”).

Application Note Page 8


Example-3
The example is intent to verify the presence of intended ESD current paths between any pin pairs belonging
to different power-domains. –clamp_esd is used to define “clamp”, a clamp cell subckt.

*test.sp
*Main vss
vvss vss 0 0

.subckt inv z a vdd vss


mp1 z a vdd vdd p w=1u l=1u
mn1 z a vss vss n w=1u l=1u
.ends

.subckt clamp in out


m_clamp in out out out nclamp w=10u l=10u
.ends

*Power domain (vdd1,vss1)


vvdd1 vdd1 0 3
vvss1 vss1 0 0
d11 out1 vdd1 d1 a=1u
d12 vss1 out1 d1 a=1u
xi1 out1 in1 vdd1 vss1 inv
xclampl1 vdd1 vss1 clamp

*Power domain (vdd2,vss2)

Application Note Page 9


vvdd2 vdd2 0 1.8
vvss2 vss2 0 0
d21 out2 vdd2 d1 a=1u
d22 vss2 out2 d1 a=1u
xi2 out2 in2 vdd2 vss2 inv
xclamp2 vdd2 vss2 clamp

ds11 vss vss1 d1 a=1u


ds12 vss1 vss d1 a=1u

ds21 vss vss2 d1 a=1u


ds22 vss2 vss d1 a=1u

.model nclamp nmos


.model n nmos
.model p pmos
.model d1 d
.tran 1n 10n

#test.tcl script
netlist test.sp -preserve gnds
cck::CntESDStage –pad_pg "vdd1 vss1 vdd2 vss2 vss" -o out –clamp_esd "{-name
clamp -i in -o out}"
quit

Executing test.tcl script, you will observe a transcript display showing the final matrix:

Application Note Page 10


The largest path contains 5 stages, the matrix is complete confirming the overall ESD
integrity. You can observe xclamp1 and xclamp2 are detected as “CLAMP-SUB” defined
by –clamp_esd option.
out.conn reports all direct ESD devices connections

Application Note Page 11


out.path reports each paths between two pads in a format ready to view with Custom-
Explorer:

Application Note Page 12


Example-4
The example illustrates a verification between I/O and power/ground pads. It shows how
the tool can handle stack diodes and resistor along the path.

*Main vss
vvss vss 0 0

.subckt clamp in out


mggnmos in out out 0 n w=1u l=1u
.ends

.subckt inv z a vdd vss


mp1 z a vdd vdd p w=1u l=1u
mn1 z a vss vss n w=1u l=1u
.ends

*Power domain (vdd1,vss1)


vvdd1 vdd1 0 3
vvss1 vss1 0 0

do1_21 out1 vdd1 d1 area=1u


do1_22 vss1 out1 d1 area=1u
xi1 out1 in1 vdd1 vss1 inv
x_ggnmos1 in1 vss1 clamp
mclamp1 vdd1 vss1 vss1 vss1 n w=1u l=1u

*Power domain (vdd2,vss2)


vvdd2 vdd2 0 1.8
vvss2 vss2 0 0
do2_21 out2 vdd2 d1 area=1u

Application Note Page 13


do2_22 vss2 out2 d1 area=1u
xi2 out2 in2 vdd2 vss2 inv
x_ggnmos2 in2 vss2 clamp
mclamp2 vdd2 vss2 vss2 vss2 n w=1u l=1u

R1 vss1 vss1_1 0.1


ds11 vss1_1 vss1_2 d1 area=1u
ds12 vss1_2 vss2 d1 area=1u

ds21 vss2 vss2_1 d1 area=0.9u


ds22 vss2_1 vss2_2 d1 area=1u
ds23 vss2_2 vss1_1 d1 area=1u

.model nclamp nmos


.model n nmos
.model p pmos
.model d1 d
.tran 1n 10n

#script
netlist test.sp -preserve gnds
cck::CntESDStage -pad_io "in1 in2" -pad_pg "vdd1 vss1 vdd2 vss2" -o out2 -resmax
0.01 -clamp_esd "{-name clamp -i in -o out}"
quit

It will show missing paths

Increasing –resmax to 1, the esd path can be formed.

Application Note Page 14


cck::CntESDStage -pad_io "in1 in2" -pad_pg "vdd1 vss1 vdd2 vss2" -o out2 -resmax 1 -
clamp_esd "{-name clamp -i in -o out}"

Notification
Most of the latest enhancements of appCntESDStage are available starting with 2014.09-
SP2.
2014.09-SP3 will support :
-The distinction of I/O and P/G pads (-pad_io, -pad_pg)
-The additional geometric threshold to identify ESD cells (-wth, -areath, -bvth).
-The upper bound resistor value to consider a resistor for being part of a ESD discharge
path (-resmax)

Application Note Page 15

Das könnte Ihnen auch gefallen