15.10.2012 Views

Accurate and Accurate and Efficient SSN Modeling

Accurate and Accurate and Efficient SSN Modeling

Accurate and Accurate and Efficient SSN Modeling

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Accurate</strong> <strong>and</strong><br />

<strong>Efficient</strong> <strong>SSN</strong><br />

<strong>Modeling</strong><br />

Chris Herrick


� What is <strong>SSN</strong>?<br />

� Model Types<br />

Agenda<br />

� M<strong>Modeling</strong> d li ttechniques h i<br />

� Simulation Tips <strong>and</strong> Tricks<br />

� Incorporating the latest Ansoft features<br />

� Conclusions


What is <strong>SSN</strong>?<br />

� Simultaneous Switching Noise is the<br />

deleterious effect of simultaneous<br />

switching outputs (SSO).<br />

�� Also referred to as Ground Bounce or<br />

Power Bounce<br />

� Exacerbated by poor return path <strong>and</strong> high<br />

loop inductance<br />

� Measured by fixing victim High or Low<br />

<strong>and</strong> monitoring output


Why is <strong>SSN</strong> important?<br />

� <strong>SSN</strong> Analysis gives more complete picture<br />

of both Signal Integrity <strong>and</strong> Power Integrity<br />

�� Ignoring the effects of SSO can result in a<br />

failed system design<br />

� IIncreased d challenges h ll as speeds d iincrease,<br />

voltages decrease <strong>and</strong> current increases<br />

� Helps uncover problematic crosstalk<br />

� Helps p evaluate true PDN pperformance


Ground/Power<br />

Bounce<br />

Ref: BGA Crosstalk by Howard Johnson, March 1, 2005<br />

Typical Setup<br />

Crosstalk<br />

Probe location<br />

�Setupp<br />

�Victim is held “high” or<br />

“low”<br />

�Many I/O’s driven at the<br />

same time<br />

�Worst case Data<br />

Patterns transmitted<br />

�Noise monitored on<br />

victim from PCB location


Ref: BGA Crosstalk by Howard Johnson, March 1, 2005<br />

<strong>SSN</strong> From Ground Bounce<br />

�BGA between PCB power<br />

<strong>and</strong> d ground d planes l<br />

�At time zero switches C<br />

closed <strong>and</strong> F transitions<br />

Low -> huge I/O current<br />

transient<br />

�V glitch = L gnd di/dt<br />

�Victim D is held low will<br />

transmit voltage V glitch


Model Types<br />

� Need to include all relevant effects of<br />

system; Both SI <strong>and</strong> PI<br />

�� Need models for: ICs, ICs Packages, Packages PCBs<br />

<strong>and</strong> VRMs<br />

� MModels d l may bbe extracted t t d or gathered th d ffrom<br />

vendors<br />

� Each model should be independently<br />

verified for accuracy


SIwave Extraction<br />

PCB<br />

Voltage<br />

SSource<br />

VRM<br />

Designer Environment<br />

Terminations<br />

N<br />

N<br />

SIwave Extraction SIwave Extraction<br />

N<br />

N<br />

Data<br />

Interposer Package N Drivers<br />

SIwave Extraction SIwave Extraction<br />

NNexxim i EEngine i<br />

N<br />

Interposer Package N Receivers<br />

N


Driver Models<br />

� Need to accurately model Signals<br />

<strong>and</strong> dPPower<br />

� Obtain transistor level models if at<br />

all possible<br />

� IBIS tends to be pessimistic<br />

because current scales linearly<br />

with ihiincreased ddi drivers<br />

� Verify waveforms for single<br />

driver AND during SSO<br />

˃<br />

Spice IBIS<br />

Rail Collapse<br />

During SSO<br />

Lab


Package Model<br />

� Obtain layout <strong>and</strong> extract if possible<br />

� Add Solderballs, Solderbumps,<br />

Bondwires to model<br />

� Group Power/Ground pins on die side<br />

�� Extract Bank of signals


PCB Model<br />

� Extract individual Signal<br />

Power/Ground Pins at<br />

Package if feasible<br />

� Place port at VRM<br />

� Pl Place port t on victim i ti ffar<br />

BGA<br />

Ports<br />

VRM<br />

Port<br />

end Vic.<br />

PPortt Terminations<br />

� Terminate far end of line<br />

with resistors


VRM Model<br />

� Almost always modeled as an ideal<br />

voltage source<br />

�� Could also use non non-ideal ideal circuit model<br />

� Important for DC-DC switching power<br />

supplies<br />

li


<strong>Modeling</strong> Techniques<br />

� Kitchen Sink - Simulate Everything!<br />

� Generally not practical<br />

�� Nearest Neighbors<br />

� Only simulate what’s relevant<br />

� Signal grouping<br />

� Combine many pins into one <strong>and</strong> scale driver<br />

� Current Mirror<br />

� Mirror a single g driver multiple p<br />

times


Nearest Neighbors<br />

1. Identify Victim <strong>and</strong> nearest<br />

neighbors i hb bbased d on proximity i it<br />

2. Extract largest segment you can<br />

afford with available hardware<br />

3. Attached Driver models to each<br />

signal pin<br />

Well placed<br />

PWR/GND balls limit<br />

return path loop area<br />

High g Speed p<br />

Packages<br />

generally have<br />

banks-easy to<br />

segment<br />

O15 Load Load GND Load Load SPY SPY O15 Load Load Load GND Load Load O25 Load Load GND clko clko Load Load O25 GND<br />

Load GND Load Load O15 Load Load Load GND Load O25 Load Load Load GND Load Load O25 Load Load Load GND Load Load Load Load GND<br />

GND Load Load Load O15 Load Load Load GND Load Load Load Load GND Load Load O25 Load Load Load GND clko clko<br />

Load Load O25 Load Load Load Load<br />

Load Load O15 Load Load GND Load Load Load O15 Load Load Load GND Load O25 SPY Load GND Load Load Load O25<br />

Load Load Load<br />

Load Load Load Load O15 Load Load Load Load Load Load Load O25 SPY Load Load Load O25 Load Load Load GND Load GND Load GND Load<br />

Load Load Load Load AUX Load Load GND Load Load O25 clki AUX Load Load Load Load O25 Load Load Load GND Load Load<br />

GND O15 Load Load Load GND Load<br />

Load Load Load O15 Load Load GND Load Load Load Load O25 Load Load clki GND INT INT O25 Load AUX Load Load Load Load Load O25<br />

Load Load GND<br />

O15 Load Load Load GND Load Load Load O15 Load Load Load SPY GND Load Load Load Load Load Load GND Load Load VDO Load Load Load<br />

Load O25 AUX Load<br />

GND Load Load Load Load O15 AUX INT GND Load SPY INT O25 Load Load INT GND Load Load INT O25 clko Load Load GND clko<br />

Load Load O15 Load INT Load GND GND INT Load O25 Load<br />

Load<br />

GND INT GND INT Load O25 Load Load Load Load GDO Load Load SPY<br />

Load Load INT Load Load<br />

O15 Load Load Load GND Load INT GND INT GND Load Load GND Load Load INT GND INT GND AUX Load Load GND Load Load Load O25 SPY<br />

Load Load<br />

Load Load Load Load SPY Load Load AUX GND INT GND INT Load Load O25 Load INT GND INT GND Load Load Load O25 Load Load Load GND<br />

GND O15 clki Load<br />

GND Load O15 SPY AUX Load Load GND Load INT clki O25 Load Load Load Load GND Load Load INT Load O25 INT Load Load GND<br />

Load Load GND Load Load Load<br />

Load<br />

INT GND INT GND INT Load O25 Load AUX Load Load GND<br />

Load<br />

O15<br />

Load INT GND GND INT GND AUX GND O25 Load Load GND<br />

GND O15 INT Load Load<br />

AUX Load Load GND INT GND INT GND O25 GND INT GND INT GND GND<br />

GND O25 GND AUX GND VDI GDI INT<br />

GND<br />

INT GND INT GND VDA GND<br />

GND<br />

GND O25 GND<br />

GND INT GND O25 GND INT GND AUX GND GND INT INT GND Load Load<br />

Load O33 Load AUX GND INT GND INT GND INT Load O25<br />

GND<br />

GND Load Load GND<br />

AUX Load O33 Load INT GND INT GND INT O25 Load Load Load Load<br />

GND Load Load Load GND Load<br />

INT Load Load INT Load Load Load Load clki O25 GND Load Load GND Load Load AUX O25 GND Load Load O33 GND INT Load GND<br />

Load O33 Load Load Load GND GND INT Load O25 Load INT clki INT GND INT GND AUX O25 Load Load Load Load<br />

GND Load Load INT Load GND Load Load<br />

SPY Load O33 Load Load Load Load AUX GND INT GND INT Load Load GND Load Load GND INT GND Load GND Load Load Load Load O25<br />

Load GND INT<br />

SPY Load Load Load GND Load Load Load O33 Load INT GND INT GND Load Load Load O25 Load INT GND INT GND Load INT Load O25 Load clko Load clko<br />

Load GND Load Load Load O33 INT Load GND INT Load Load SPY O25 Load Load Load GND INT Load AUX O25 Load Load GND Load<br />

Load Load Load GND<br />

INT<br />

Load AUX Load O25 Load SPY Load Load GND SPY Load Load Load O25 Load Load Load Load Load O25<br />

O33 Load Load Load GND Load Load<br />

Load Load Load AUX O33 Load INT Load INT GND clki Load Load SPY O25 Load Load GND Load Load Load Load O25 Load Load Load<br />

O33 Load GND<br />

Load Load Load Load Load O33 Load Load GND Load Load AUX clki O25 Load Load Load Load AUX Load O25 Load Load Load GND<br />

GND Load Load GND Load<br />

Load Load Load O33 Load Load Load GND Load Load Load O25 Load Load Load GND Load Load Load O25 Load Load Load Load GND Load<br />

O33 Load Load Load GND Load Load O33 Load Load Load Load GND Load Load O25 Load Load Load Load Load Load Load Load<br />

Load Load Load Load Load GND Load O25<br />

Load Load GND Load Load O33 Load Load Load GND Load Load Load O25 Load Load Load Load GND Load Load Load Load Load Load Load GND<br />

Load O25<br />

GND Load Load Load Load Load GND Load O25 GND GND GND Load Load Load Load O25 Load Load Load Load GND GND<br />

O33 Load Load Load Load<br />

O33 Load Load Load GND Load Load O33 Load GND clko clko O25 SPY SPY Load Load GND Load Load O25<br />

GND Load Load Load Load


Nearest Neighbor Tradeoffs<br />

� Most accurate <strong>and</strong> flexible method<br />

� Simulates Skew/Delay between lines<br />

� All Allows diff different t ddata t patterns tt<br />

� Long transient simulation<br />

� Potential for convergence trouble


1. Apply pin grouping to signals<br />

at Die side<br />

2. Attach single port for<br />

Aggressor group<br />

3. Extract PCB ports as before<br />

4. Create subcircuit for driver<br />

model<br />

5. Multiply subcircuit M times <strong>and</strong><br />

connect to aggressor port<br />

Signal Grouping<br />

x25<br />

X1 CK1 CK2 Input Output Power driver M=25


Signal Grouping Tradeoffs<br />

� Much quicker q analysis y<br />

� Greatly reduces port count<br />

� Eliminates convergence issues with multiple drivers<br />

� Not simulating XTLK induced skew<br />

� Same data pattern used on all aggressors<br />

� Assumes all lines are similar in impedance <strong>and</strong> delay<br />

� Lose information on individual lines<br />

�� One bad signal line will affect net results


1. Use same extracted model<br />

as “Nearest Neighbors”<br />

2. Place driver on one<br />

aggressor<br />

3. Monitor current at signal <strong>and</strong><br />

die connections using series<br />

Current Mirroring<br />

0V source Aggressors<br />

0v Voltage sources CCCS<br />

4. Attach CCCS to all other<br />

signal lines mirroring same<br />

current as driver<br />

5. Attach CCCS to die scaling<br />

current x M-1 drivers<br />

Ref: Digital Signal Integrity, Young<br />

Die Current<br />

Scaled xM-1


Current Mirroring Tradeoffs<br />

� Much quicker analysis<br />

� Eliminates convergence issues with<br />

multiple drivers<br />

� Still can inspect individual s-parameters<br />

� Not simulating XTLK induced skew<br />

� Same data pattern p used on all aggressors gg<br />

� Assumes all lines are similar in impedance<br />

<strong>and</strong> delay


Simulation Tips <strong>and</strong> Tricks<br />

� Convolution versus state-space<br />

state space<br />

� Frequency sweep setup<br />

� Mi Mixed d port t iimpedances d<br />

� Achieving Convergence


S-parameter S parameter H<strong>and</strong>ling<br />

State State-Space Space (Default)<br />

Convolution<br />

� Much faster for long transients<br />

� Passivity enforcement<br />

� Causality enforcement<br />

� Up front cost building model<br />

� Does not extrapolate<br />

� May not achieve fit on noisy<br />

data<br />

�� Cannot model long delays, delays ~22<br />

λ<br />

� More options for convergence<br />

� Can h<strong>and</strong>le long delays<br />

� Data filtering options<br />

� Extrapolates well<br />

� Sim time increases<br />

quadratically with tran time<br />

� Requires linearly spaced data


DC point i t required i d<br />

Coarser Coa se ssweep eep<br />

used at Higher<br />

frequencies<br />

Sweep Setup<br />

Log g sweep p helps p<br />

capture low<br />

frequencies<br />

important to PDN<br />

Set max even<br />

higher than knee<br />

Discrete Sweep<br />

frequency: State<br />

ensures causality<br />

space doesn’t<br />

<strong>and</strong> passivity<br />

extrapolate! t l t !<br />

enforcement


Choose port<br />

impedances p that<br />

are relatively<br />

close to structure<br />

impedance<br />

Use 1 or .1 ohms<br />

for power, 50<br />

ohms for signal<br />

lines<br />

This helps model<br />

accuracy <strong>and</strong><br />

avoids 0dB values<br />

in touchstone file<br />

Port Impedances<br />

Designer dynamic link to SIwave will preserve port impedances


Achieving Convergence<br />

� Inspect individual models (Divide <strong>and</strong> Conquer)<br />

� RRealistic li ti ddata, t passive, i causal l<br />

� Sufficient b<strong>and</strong>width, resolution<br />

� Frequency dependent materials<br />

� Bypass/Deactivate components to find root cause<br />

� Check state-space fit; tighten s_element.reltol<br />

� Increase ss_element.max_states element.max states<br />

� Slow risetimes/Soften Edges<br />

� Try generic sources, i.e. Gaussian PRBS<br />

� RReduce d .tran t step t<br />

� Decrease reltol <strong>and</strong> abstol<br />

� Try convolutions 1-3<br />

� Reduce s-parameter port count


Schematic Setup<br />

� Schematic setup can be tedious <strong>and</strong> error prone<br />

when working with large number of components<br />

� Modular/hierarchical blocks can aid with design g<br />

management <strong>and</strong> debugging<br />

� Four methods for automatic setup: p<br />

� Dynamic Linking<br />

� APDS<br />

� Designer I/O Wizard<br />

� SIwave SIwizard


Dynamic Links<br />

Add additional model<br />

choices by dragging<br />

models onto symbol y<br />

Add symbols for each<br />

block in the channel


St<strong>and</strong> St<strong>and</strong>-alone alone GUI to<br />

setup transient analysis<br />

Specifically tailored to<br />

<strong>SSN</strong> of DDR interfaces<br />

APDS


Designer I/O Wizard<br />

� Launch GUI from Designer 4.1<br />

� Rapid setup of drivers for high pin<br />

counts<br />

� Easily link generic model types for<br />

y g yp<br />

all blocks in the channel


SIwizard in v4.0 SIwave<br />

11. Select signal nets to<br />

simulate<br />

2. Assign IBIS TX/RX models<br />

to pins p on nets<br />

3. Identify component<br />

power/ground nets<br />

4. (Optional) Set VRM<br />

parameters<br />

5. Set Transient Simulation<br />

parameters<br />

Pin info preserved from layout


Conclusions<br />

� <strong>SSN</strong> is a powerful simulation offering<br />

insight to both Signal <strong>and</strong> Power behavior<br />

�� <strong>Accurate</strong> device models are critical<br />

� Set realistic goals <strong>and</strong> choose the best<br />

method th d tto obtain bt i th them<br />

� Ansoft has the capabilities <strong>and</strong> the<br />

automation to perform accurate <strong>and</strong><br />

efficient <strong>SSN</strong> simulations


Current Mirroring<br />

� Place drivers for a single aggressor <strong>and</strong> the<br />

victim. Mirror the current to all other<br />

aggressors using CCCS. CCCS<br />

Original<br />

Ref: Digital Signal Integrity, Young<br />

Original g<br />

w/ Detectors<br />

Mirrored

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!