Allegro PCB Si User Guide 16v6
Allegro PCB Si User Guide 16v6
Allegro PCB Si User Guide 16v6
Contents
About this Manual
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Where to Find Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Special Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How to Contact Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
15
18
18
19
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
21
22
22
22
22
24
25
26
28
30
31
32
33
34
35
36
2
The High-Speed Design Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
October 2012
37
38
39
40
41
42
43
44
45
46
47
47
48
49
49
51
51
55
57
60
62
65
69
74
3
Model and Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
77
77
77
79
80
81
84
87
October 2012
4
Transmission Line Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About the PCB and Package SI Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setup Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Initializing the Simulation Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assigning Device Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139
139
140
143
143
144
147
153
October 2012
159
159
162
164
170
5
Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Board Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cross-Section Stackup and Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Board Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Room Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Plane Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keepouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Importing Setup Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drawing Logic Scenarios at the Board Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Component Creation and Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Device Model Creation and Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Netlist Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logic Scenario Mock-up Example - A Look at Self-Coupling . . . . . . . . . . . . . . . . . .
171
172
172
176
177
178
179
180
184
184
185
186
187
189
6
Topology Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extraction Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Unrouted Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Topology Template Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Physical and Extended Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Physical Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extended Net (Xnet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Topology Template Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Probing a Net to Extract a Topology Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
207
207
208
209
210
212
212
212
213
213
October 2012
7
Determining and Defining Constraints . . . . . . . . . . . . . . . . . . . . . . . .
219
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is Solution Space Analysis? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solution Space Analysis Stage 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parametric Sweeps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Part Parameter Values for Sweeping . . . . . . . . . . . . . . . . . . . . . . . . . . .
Controlling Sweep Sampling and Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sweep Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saving and Restoring Sweep Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining High-Speed Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a Constraint? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a Constraint Set? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating ECSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Referencing ECSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Nets to Check Themselves for Crosstalk and Parallelism . . . . . . . . . . . . . . . . .
Version Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
219
220
220
221
222
224
227
227
229
230
231
232
233
234
236
236
236
236
239
240
240
8
Signal Integrity Analysis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
241
243
244
246
249
Units Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EMI Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
More on Setting Preferences and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-Route Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Critical Net Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Post-Route Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interactive Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Batch Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EMI Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-Board Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Source Synchronous Bus Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enhanced Bus Simulation Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing to Generate Text Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reflection Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulating with Custom Stimulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Delay Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ringing Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Single Net EMI Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Parasitics Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SSN Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Segment Crosstalk Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Detailed Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Signal Quality Screening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyzing to Generate Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying the Simulation Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Common Tab Areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optional Tab Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Optional Tab Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Displaying and Interpreting Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conductor Cross Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
October 2012
251
252
254
256
260
261
263
266
266
268
268
269
282
282
286
290
294
308
313
318
321
323
328
333
336
340
342
345
346
347
348
348
349
9
Analyzing for Static IR-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Static IR Drop
351
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
10
Post-Route Signal Integrity Analysis Using the 3D Field Solver
353
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is Sentinel-NPE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Whole Package Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PCB-Level Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3D Field Solver Functional Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3D Modeling and Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-Checking Your Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Important Setup Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Illegal Bonding Wire Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing 3D Signal Integrity Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-simulation Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3D Field Solution Progress and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3D Package and Interconnect Model Device Files . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Package Model Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Model Parasitics Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiport Net Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S-Parameter Model Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3D Field Solver Setup Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpreting 3D Modeling Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
....................................................................
353
354
354
359
359
359
360
363
363
363
364
364
365
367
368
368
369
376
377
381
383
11
Dynamic Analysis with the EMS2D Full Wave Field Solver
385
October 2012
Library Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dispersive Dielectric Material Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S-Parameter Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lossy Transmission Line Modeling in HSPICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enhanced Etch Factor Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Algorithm-Based Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using EMS2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A
Constraint-Driven Layout
390
391
393
394
394
398
403
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraint-Driven Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Placement Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraint-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Routing Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraints that Affect Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
405
405
406
408
408
409
B
System-Level Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
411
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a System Configuration? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a DesignLink? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What is a Cable Model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modeling Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Working with System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Configuration Editor Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Existing System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Constraints at the System Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System-Level Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
411
411
412
413
413
415
415
417
418
421
422
C
Power Delivery Analysis
Introduction
October 2012
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
10
D
Working with Crosstalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
425
Crosstalk DRCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Timing Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Database Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Timing Window Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Table Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exporting and Importing Crosstalk Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Constraints and Crosstalk-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Post-route Crosstalk Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
426
427
427
428
429
429
430
434
435
440
445
E
Working with Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
451
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timing Analysis Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Static Timing Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modern System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flight Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Synchronous Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Impact of Crosstalk on Bus TIming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SI Analysis Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Signal Integrity Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Measuring Interconnect Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimum and Maximum Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Component Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Double-Counting Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Making The Pieces Fit Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Determining the Buffer Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Measuring Flight Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
About Device Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Integrating Timing and SI Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
451
451
451
452
453
454
455
457
457
458
459
460
461
463
463
464
465
467
October 2012
11
Manual Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
General Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus-level Timing Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus Timing Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
F
Working with Multi-GigaHertz Interconnect
467
468
469
470
. . . . . . . . . . . . . . . . . . 473
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Serial Data Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inter-Symbol Interference (ISI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Advanced Solutions for Multi-GigaHertz Signal Design . . . . . . . . . . . . . . . . . . . . . .
Channel Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Serial Data Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Macro Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Building MacroModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Via Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Via Model Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Via Model Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
473
473
474
474
474
476
477
480
482
484
485
G
Modeling in the Interconnect Description Language . . . . . . . .
487
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IDL Interconnect Line Segment Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RLGC Matrix Values in Interconnect Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Line Segment Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IDL Via Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Via Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Coupled Multiple Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IDL Shape Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Example Shape Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
487
487
488
492
500
500
504
509
509
H
DML Syntax
Overview
October 2012
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
12
513
513
513
514
514
514
515
515
516
519
520
I
Computations and Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
523
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pre-Analysis Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Device Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stack Up Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modeling Unrouted Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Signal Integrity Simulations and Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The tlsim Simulator and Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reflection Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Segment-Based Crosstalk Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Crosstalk Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Timing-Driven Crosstalk Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simultaneous Switching Noise (SSN) Simulations . . . . . . . . . . . . . . . . . . . . . . . . . .
Comprehensive Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Delay Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Distortion Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simultaneous Switching Noise Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . .
523
523
523
524
524
525
525
525
526
526
527
528
528
528
532
534
J
Cadence ESpice Language Reference . . . . . . . . . . . . . . . . . . . . . . .
535
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
About the Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
October 2012
13
Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Node Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Datapoint Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Statement Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ESpice Syntax Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Learning about DC Path to Ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Parameters and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Subcircuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported Circuit Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Describing Basic Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Describing Controlled Source Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Describing IBIS Behavioral Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Multi-Conductor Transmission Line Models . . . . . . . . . . . . . . . . . . . . . . . . . .
Using Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating ESpice Models for Use with Allegro SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating an ESpice Packaged Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using SigXplorer Sources and Functions with ESpice Devices . . . . . . . . . . . . . . . .
October 2012
14
535
537
537
538
538
540
542
543
543
545
546
552
568
580
584
587
587
589
Audience
This manual is written for both Signal Integrity and Electrical Engineers who are familiar with
current methods and practices used to design and analyze high-speed printed circuit boards
and systems. It is intended for novice and intermediate users needing basic information
regarding the Allegro high-speed PCB and MGH design flows and operations within the
Allegro SI environment.
Chapter 1, Introduction, explains what Allegro PCB SI is, how it works, as well as an
overview of the PCB SI toolset.
Chapter 2, The High-Speed Design Flows, presents an overview of the Allegro highspeed PCB and MGH design flows.
Chapter 3, Model and Library Management, describes how to obtain, manage and
maintain simulation models and model libraries.
October 2012
15
Chapter 5, Floorplanning, describes common board setup tasks and how to define logic
from scratch.
Chapter 6, Topology Extraction, describes extraction prerequisites, extraction set up, and
how to extract a net topology into SigXplorer for simulation and analysis via SI or
Constraint Manager.
Chapter 7, Determining and Defining Constraints, discusses how to determine highspeed constraints through solution space analysis and how to define constraints in the
Allegro database.
Chapter 9, Analyzing for Static IR-Drop, discusses how to perform Static IR-Drop
analysis using the PDN Analysis solution.
Chapter 10, Post-Route Signal Integrity Analysis Using the 3D Field Solver, discusses
how to perform post-route signal integrity analysis using the 3D Field Solver.
Chapter 11, Dynamic Analysis with the EMS2D Full Wave Field Solver, discusses how
to perform dynamic analysis with the EMS2D Full Wave Field Solver.
Appendix D, Working with Crosstalk, describes how to set up, simulate and analyze a
design for crosstalk mitigation.
Appendix H, DML Syntax, provides a summary of the syntax and structure of Device
Model Library (DML) files and their use within package modeling.
October 2012
16
October 2012
17
Conventions
The following fonts, characters, and styles have specific meanings throughout this manual.
Courier font identifies text that you type exactly as shown, such as command names,
keywords, and other syntax elements.
For example:
(average_pair_length [on | off])
Italic type identifies menu paths or dialog box buttons in the graphic user interface (GUI),
titles of books, and may also be used to emphasize portions of text.
For example:
Choose File Quit.
Click Apply.
To learn more about generating eye diagrams, refer to the SigWave User Guide.
Italicized labels enclosed in angle brackets (<>) are placeholders for keywords, values,
filenames, or other information that you must supply.
For example:
<directory_path_name>
Special Terms
The following special terms are used in this manual.
Double-click means press and release the left mouse button twice, in rapid succession.
Drag means press and hold the left mouse button while you move the pointer.
Select means to click on (highlight) objects in the design (such as nets, or components)
or click on items in a list (such as net names) within a dialog box for exclusive processing
by a command.
Choose means to navigate the menu system to highlight and click on a menu option in
order to execute a command.
October 2012
18
October 2012
19
October 2012
20
1
Introduction
What is Allegro PCB SI?
Allegro PCB SI is an integrated design and analysis environment for electrical engineers who
create high-speed digital printed circuit boards and systems. It allows you to explore and
resolve electrical performance related issues at all stages of the design cycle.
By exploring various design scenarios and making trade-offs between timing, signal integrity,
crosstalk, power delivery and EMI, you can optimize electrical performance and reliability
before committing a design for manufacture. You can perform high-speed analysis at the
board, multi-board, or system level across multiple system design configurations.
October 2012
21
October 2012
22
October 2012
23
Floorplanning
SI
EMI Analysis
SigXplorer
EMControl
Simulation Subsystem
SigNoise
TLsim
Sigxsect
Schematic-Level Constraints
Integration
Spectre
Constraints Management
Allegro Constraint Manager
Waveform Analysis
SigWave
October 2012
24
SI
SI provides a physical view of the board and lets you simulate and edit your PCB design.
Using SI you can:
quickly and easily evaluate the effects of different placement strategies on design
behavior.
run board simulations from the PCB database without the need to translate data into
another format.
perform test routing using proposed electrical constraints to ensure that high-speed
design rules are achievable before passing them on to the layout designer.
October 2012
25
SigXplorer
SigXplorer is a graphical environment for exploring, analyzing and defining interconnect
strategies. It provides an electrical view of the physical interconnect on the board and lets you
explore different placement and routing strategies. Solution space analysis lets you quickly
develop and capture a comprehensive set of design rules.
Using SigXplorer you can perform the following tasks:
extract electrical views of nets from both placed (pre-route) and finished (post-route)
databases.
set up and run a series of related topology simulations (sweeps) where you vary topology
element characteristics such as part parameter values and driver slew rates.
extract electrical views of nets with associated (closed-form) via models from both placed
(pre-route) and finished (post-route) databases.
upgrade Closed Form via models interactively to other advanced via model formats
(such as S-Parameter or Wide Band) for multi-gigahertz exploration.
S-parameter capabilities.
graphically define or edit custom net scheduling for an electrical constraint set when no
simulation or analysis capability is available.
October 2012
26
repositioning parts.
applying net schedule and constraint changes (update) back to Constraint Manager
and your design database.
For further details on SigXplorer, refer to the Allegro SI SigXplorer User Guide.
October 2012
27
SigNoise
SigNoise is the Allegro simulation environment for signal integrity, crosstalk and optional EMI
analysis. Using SigNoise, you can quickly examine or scan one or more signals by performing
reflection simulations and crosstalk estimations on entire designs or on large groups of
signals. You can also probe individual signals or small groups of signals where you want to
delve into specific signal behaviors in detail through the generation of discrete text reports or
waveforms.
SigNoise includes the following components.
SigWave
Sigxsect
TLsim
TLsim is a Cadence proprietary SPICE-based simulation engine that combines the
advantages of traditional structural modeling with the speed of behavioral analysis. TLsim
includes an IBIS-style behavioral driver that models I/O behavior based on the V-I and V-T
data provided by behavioral modeling techniques. By combining both structural and
behavioral modeling techniques, TLsim allows you to model complex device behavior
accurately and efficiently.
For further details, see Chapter 4, About the PCB and Package SI Simulator,
Sigxsect
The Sigxsect (signal cross section) window allows you to view the geometry of interconnect
models and the equipotential field lines between the cross sections of interconnect. SigNoise
generates models for the interconnect in your design. The field solver generates the parasitic
values in the model. The Sigxsect window displays a three-dimensional view of the
interconnect and its parasitic values.
When the simulator writes a model, it includes all the trace segments that fall within the
geometry window distance specified in the simulators Analysis Preferences dialog box. If
another trace segment is sufficiently close to the trace segment you selected in the design
window, you see two trace cross sections in the geometry display. When you display the
sigxsect window, its geometry display shows a geometric cross-sectional representation of
the interconnect model that you have selected.
October 2012
28
October 2012
29
Spectre
Spectre is a general-purpose circuit simulator that uses direct methods to simulate analog
and digital circuits at the differential equation level. The Spectre simulation interface in SI (and
SigXplorer) supports Spectre transistor-level simulation models. Spectre is similar in function
and application to SPICE, but does not descend from SPICE. Spectre uses the same basic
algorithms (implicit integration methods, Newton-Raphson, direct matrix solution, and so on),
but the algorithms are implemented in new ways. These new algorithms make Spectre faster,
more accurate, more reliable, and more flexible than previous SPICE-like simulators.
Using Spectre you can:
Simulator
Allows you to choose a simulator for models. Choices are Tlsim, Hspice, and Spectre.
Important
The Spectre interface is supported only on Sun Solaris 8 and 9, HP UX 11.0 and
11.11i, and Linux RHEL 3.0. Spectre is not bundled with the PCB PDN Analysis
option. Both driver and receiver models must be Spectre models wrapped in DML.
October 2012
30
group all of your high-speed constraints for a collection of signals to create an ECSet.
display color-coded results of design analysis in real time alongside the constraint values
in the spreadsheet to indicate success or failure.
use SigXplorer with Constraint Manager to graphically create, edit and review electrical
constraint sets as graphical topologies that act as an electronic blueprint of an ideal
implementation strategy.
For further details, refer to the Allegro Constraint Manager User Guide.
October 2012
31
SigWave
SigWave is a waveform viewer. It displays waveforms based on data generated by simulation
tools - emulating the way an oscilloscope works. It is closely integrated with PCB SI and
provides board-level signal integrity analysis. SigWave supports the display of time domain,
bus, frequency, and eye diagram graphs, as well as the application of fast fourier transforms
(FFT).
Using SigWave you can:
load one or more previously saved waveform files in order to superimpose and compare
the waveforms.
October 2012
32
For further details, refer to the Allegro PCB PDN Analysis User Guide.
October 2012
33
EMControl
Systems can adversely impact each other due to electromagnetic interference (EMI), or due
to unwanted coupling of energy between conductors, components, and systems.
Electromagnetic compatibility (EMC) is the ability of electronic systems to function as
expected within their intended environment without adversely affecting other systems.
EMControl allows you to detect and resolve EMC problems early in the design cycle by
enabling you to repeatedly check your design against selected sets of rules. EMControl
includes several default rule sets. You can also write your own rules to verify specific design,
environment, and regulatory requirements. Running EMControl early in the design cycle
often helps to detect potential EMC problems before they can significantly impact product
development.
Using EMControl you can:
identify and setup critical EMC components, nets, and regions on your board.
October 2012
34
(PackagedDevice
("inductor15nH"
(PinConnections
(1 2 )
(2 1 ) )
(ESpice
".subckt inductor15nH 1 2
R1 1 2 1e-6 L=1.5e-8
.ends inductor15nH") ) )
For further details, refer to the Allegro SI Device Modeling Language User Guide.
October 2012
35
October 2012
36
2
The High-Speed Design Flows
Understanding the Flows
There are currently two different design flows used in Allegro high-speed PCB design.
The PCB MGH (Multi-GigaHertz) flow for high-speed serial data link design.
See the MGH Flow Overview on page 46 for further details.
Constraint-Driven Placement
Constraint-Driven Routing
Post-Route Verification
Note: The actual flow phases you use are largely determined by your corporate PCB design
process and the characteristics of your design.
October 2012
37
October 2012
38
those that are imperative to the design cycle and need to be verified quickly by SI
engineers.
Using this practice means that these less-critical nets are either over constrained to assure a
functional design or not managed at all, driving up the cost of the board. The risk of board
failure increases when non-critical nets are managed in this manner, forcing expensive respins that are avoidable.
Using Allegro Design Entry HDL SI during this phase enables electrical engineers to
determine optimal constraints for those not-so-critical nets at the front end. At the same time,
SI engineers are able to focus more on new chip sets and very critical nets using PCB SI,
saving time and money. Design Entry HDL SI is a separately licensed product.
For details on using DE HDL SI to perform pre-route constraints development, see Pre-route
Constraints Development on page 55.
Figure 2-1 Pre-route Constraints Development Flow
October 2012
39
October 2012
40
Manufacturing Variances
component speed
trace impedance
terminator value
Design Variances
segment lengths
For details on performing solution space analysis, see Chapter 7, Solution Space Analysis.
Figure 2-3 Signal Exploration
October 2012
41
October 2012
42
October 2012
43
44
October 2012
45
System-Level Design
The general approach is to use frequency domain analysis (FDA) as the primary design
technique, and the more computationally expensive time domain analysis (TDA) as the
verification technique. To help address the massive TDA simulations that need run in order to
predict bit error rate (BER); accelerated proprietary TDA techniques are required.
For further details on designing high-speed serial links, see Appendix F, Working with MultiGigaHertz Interconnect
October 2012
46
The package model shown in Figure 2-8 could contain detailed SPICE sub circuits, or it could
be shown as actual trace and via models.
You model the characteristics of the transmitter output and the requirements of the receiver,
place them on the SigXplorer canvas, and define a system-level loss and jitter specification.
This defines the maximum amount of overall loss (in dB) and jitter (in ps) that can be tolerated
through the channel at the receiver. From this system-level spec, a loss budget is partitioned
out to the various interconnect blocks that make up the channel. Jitter needs to be verified
later at the system level.
47
trace thickness
differential line width and spacing (and other differential pair parameters)
impedance
via geometry
A detailed topology for the proposed PCB-level interconnect is built in SigXplorer. Sparameter generation takes place and the result is displayed directly in SigWave. You can do
this multiple times and overlay several waveforms in SigWave to compare results.
If the spec is not met, then you need to go back to the original topology circuit, modify existing
circuit parameters, and repeat the process until the loss budget is met. In cases where this is
not possible, you may need to re-budget the system accordingly, allocating additional budget
to the problematic PCB and tightening in other areas.
When the block-level spec is met then the final topology is stored in the library. Topology
templates are then generated to provide wiring rules for physical layout.
Plot the frequency responses of the multiple blocks as an overlay of one another to
gauge the relative losses and pinpoint which block is the main culprit of the noncompliance.
Go back to the block-level and re-work a particular portion of the interconnect circuit
before returning to the system-level.
October 2012
48
Reports
6. If requirements are not met, you can modify items such as pre-emphasis what-ifs, data
rate, driver, receiver or topology; and then rerun the analysis.
7. When results are satisfactory for typical silicon, verify the silicon corner cases (process/
voltage/temperature).
Once the requirements are met, move on to the next phase.
49
execute simulation.
define the start time in the simulation for the eye diagram plots, allowing operating levels
to stabilize.
possibly import channel analysis results and overlay for comparison purposes.
October 2012
50
work with multiple open files for model editing efficiency (copy and paste between files).
For step-by-step procedures on performing these tasks, refer to the Model Integrity
Command Reference. For further information about Model Integrity features and its user
interface, refer to the Model Integrity User Guide.
To start Model Integrity
Managing and Maintaining Models using the Library and Model Browsers
The SI Model Browser available from within PCB SI and SigXplorer enables you to:
specify which device and interconnect libraries you want SigNoise to access, as well as
the order of library access.
create model files on the fly and add them to the working library.
October 2012
51
IBIS IOCell models that describe the behavior of an IO buffer (that is, drivers and
receivers).
October 2012
52
IOCell models represent individual drivers and receivers for specific pins on a device.
They contain behavioral information about an IO buffer, such as its voltage thresholds
and I-V curves. You can assign default IOCell models so that any pin that doesn't have a
component with a SIGNAL_MODEL property associated with it will match up with these
defaults according to its pin use. You can also determine whether or not SigNoise will use
default IOCell models.
Espice models that contain within them a SPICE description of a device. Espice device
models are used for passive devices such as resistors.
Espice models represent simple SPICE sub circuits and represent discrete components
such as resistors and capacitors. For example, a 50 ohm resistor may be represented as
follows:
.subckt resistor50 1 2
R1 1 2 50
.ends resistor50
The software can create Espice models automatically, based on device data setup for
discrete components.
Interconnect Models
During simulation, SigNoise automatically creates the interconnect models by field solving
geometries and stores them in the interconnect model library that you specify. SigNoise
writes the models for the interconnect in the Interconnect Design Language (IDL). You can
also use IDL to model passive devices as you would simple SPICE sub circuits.
You do not have to route designs prior to simulation. The unrouted interconnect modeling
information (a percent Manhattan distance between pins and user-defined assumptions for
the characteristic impedance and propagation velocity) allows you to run pre-route
October 2012
53
October 2012
54
SigXplorer
SigWave
Model Integrity
Use Model
The general sequence of events for using DE HDL SI is as follows:
1. Launch DE HDL SI and open your schematic.
2. Assign device models to certain non-critical nets and Xnets in the schematic.
3. Launch Constraint Manager from DE HDL SI to check current net constraints in
worksheet (based on assigned device models).
4. Optional: Launch Model Integrity and edit device model syntax.
5. Optional: Check Constraint Manager to verify constraint changes.
6. Launch SigXplorer from Constraint Manager to extract the net topology.
7. View, edit, and simulate the net topology in the SigXplorer canvas.
Note: You can append other canned topologies (added into the canvas as a test
harness) by wiring them to the net topology before you simulate. Simulation sweeps are
also possible to help determine optimum solution space.
8. Analyze the simulation waveforms in SigWave and the simulation data in the SigXplorer
Results spreadsheet.
9. If necessary, adjust topology constraints in SigXplorer (Set Constraints) based on
results.
10. Repeat the last three steps as required until net constraints are optimized and a desired
solution space is achieved.
October 2012
55
October 2012
56
57
Context-sensitive
menu (right-click)
Step-by-step procedures
October 2012
58
October 2012
59
Logic
You derive logic for your design by importing a netlist from either a Cadence or a third-party
source. Additionally, you can create a netlist from scratch within PCB SI. See Chapter 5,
Defining Logic for further details.
Tip
If you have received a PCB design with a netlist already resident in the database,
skip this task and proceed directly to Setting up the Design on page 63
Importing Logic
To import a netlist into your design, choose File Import Logic. The Import Logic dialog
box appears as shown in the following figure.
Figure 2-10 Import Logic Dialog Box
3rd Party Logic
Identifies source
directory of your
pst*.dat files.
October 2012
60
October 2012
61
Right-click the canvas and choose SI Design Audit from the pop-up menu, provided the
Signal Integrity application mode is on.
October 2012
62
In this wizard you can perform an audit on selected nets and Xnets and check for any missing
models. A report is displayed for that net indicating the current status. The SI Design Audit
wizard walks you through the steps to:
For information on auditing nets, see Allegro PCB and Physical Layout Command
Reference: S Commands.
Setting up the Design
The existing Setup Advisor utility is replaced with the new SI Design Setup command. This
command launches the Setup Category Selection wizard, which helps you set up the design
to perform SI simulations. The SI Design Setup command assists you in making your
October 2012
63
The Setup Category Selection wizard is displayed. You can perform the following design
setup tasks using the wizard:
Working Libraries
Setup SI Simulations
Setup Complete
For information on design setup, see Allegro PCB and Physical Layout Command
Reference: S Commands.
October 2012
64
Resistor
Capacitor
Inductor
Capacitor
Resistor
===================================================
For all other reference designators.
Resistor
October 2012
65
When you finish edits to model assignments, a report is displayed indicating the changes.
Devices Tab
Use the Devices tab to assign device models to components; automatically or manually. You
can access the Model Browser to find device models, modify existing models before
October 2012
66
October 2012
67
Unless you choose to simulate using the default device models, you must have your device
model libraries loaded in the SI Model Browser so the simulator can access the models.
Device and interconnect libraries can be located anywhere on the system as long as an
absolute pathname is specified. SigNoise searches the libraries in the order they appear in
the browser library lists (top to bottom).
Setting the Working Library
SigNoise stores new models in the current working libraries. To set a library as a working
library:
1. Click Library Mgmt in the SI Model Browser dialog box.
DML Library Management dialog box displays. The name of the working library for device
models and interconnect models is displayed in the Working Library column in the DML
October 2012
68
Managing Models
You can browse and manage models in SI Model Browser, by applying the appropriate library
or model type filter. All the models are displayed in SI Model Browser as shown in Figure 213 on page 70.
October 2012
69
List of model
types you can
filter on.
Use SI Model Browser to add, delete, edit, and list models in the device library.
Device models contain:
IOCell models
October 2012
70
the package parasitics (R, L, G, C values) associated with the device pins
the power and ground pins that each signal pin references (used for simultaneous
switching noise).
Model Type
Design Link
Cable
ESpiceDevice
IbisDevice
PackageModel
AnyIOCell
IbisInput
IbisTerminator
IbisOutput
October 2012
71
Model Type
IbisIO_OpenPull
Up
IbisIO_OpenPull
Down
AnalogOutput
BoardModel
Connector
Trace
Coupled Traces
Any CPW
Single CPW
Any Via
Any Single Via
October 2012
72
Model Type
Signal/Signal
Coupled Via
Signal/Ground
Coupled Via
Signal/Power
Coupled Via
Stacked Coupled
Via
need Info
Shape
Pin
Note: All the model types supported in the highest tier of Allegro PCB SI are displayed in
Model Browser of every version of the product. However, access to model types depends on
the version of SI for which you are licensed. For example, if an .iml library contains a SParameter Via model type, it is available in Model Browser for Allegro PCB SI Multi-Gigabit
Option.
October 2012
73
October 2012
74
Use this dialog box to perform verification and source management operations on the device
models in a selected design or library. Upon displaying the dialog box, models resident in the
current design are checked against their original source. Once the check is completed, the
October 2012
75
October 2012
76
3
Model and Library Management
Managing Model Libraries
Introduction to Model Libraries
When analyzing a design, PCB SI builds simulation circuits using the device models that have
been stored in your design (.brd file). These resident device models are associated with
devices in your design. During simulation, SigNoise automatically constructs the required
interconnect models. The actual source files for these device and interconnect models are
stored and organized in either device model libraries (DMLs) or interconnect model libraries
(IMLs) that are external from the design database.
October 2012
77
The SI Model Browsers tabbed interface accommodates the model type that you want to
translate, be it IBIS, Spectre, Spice, IML, DML, or HSPICE. You need to select the appropriate
tab, click the model, and click the Translate button to translate it. From these tabs, you can
also edit a model directly in its native format. Once translated, these models also appear
under the DML tab.
Each tab contains a field for filtering the listed models, as well as a button to set the models
library search path and to set its associated file extensions.
Note: You can access the SI Model Browser in PCB SI from Analyze Model Browser.
October 2012
78
The DML Library Management dialog box provides controls to set the working library, ignore
libraries, and create indices.
Using the DML Library Management dialog box, you can:
October 2012
79
October 2012
80
Function
-d
-o
index_filename
Names the device model library index for the IBIS input file
you want to translate.
library_filename
October 2012
81
Function
library_filename
-o
October 2012
&<qpBi#48tk]OzP):^"7)[C ...
82
October 2012
83
Library Structure
The Cadence Libraries are located in:
<install>/cds/share/pcb/signal/SignalPartLib
The directory contains the following sub-directories corresponding to the three categories:
DIG_LIB
Contains subdirectories corresponding to four digital logic families. Each digital logic
family subdirectory contains files for IBIS Device models and IOCell models (.dml files).
There is one device model in each file. The corresponding IBIS files (.ibs files) also
exist. There is one DIGlib_assump.txt file giving the test setups used to validate
each family.
DEFAULT_LIB
Contains signoise .dml files and their corresponding .ibs files. The corresponding
assumption.txt file lists the assumptions, approximations and validation test setup
used.
PACKAGES
Note: In the directory above the SignalPartLib directory, SigNoise uses the device
model index file cds_partlib.ndx to quickly load groups of models.
October 2012
84
Description
ABT
Advanced BiCMOS Technology for bus interfaces with high drive, lower
power consumption, and fast propagation.
ALS
ALVC
FTTL
Technology
Number of
Description
IOCell Models
GTL
01
PCI
04
ASIC
22
October 2012
85
20dip
14soic
16soic
20soic
16ssop
20ssop
28plcc
44plcc
October 2012
86
Managing Models
Introduction to Simulation Models
There are two basic categories of models used to build circuits for simulation.
Device models
Interconnect models
Device models must be obtained in advance of simulation. You use them to characterize
manufactured components such as ICs, discrete components, and connectors. They are
stored in files with a .dml extension. A device model library consists of a .dml file that
contains one or more device models.
Interconnect models are extracted directly from the physical design database and
synthesized on demand. Interconnect models cover such items as traces and vias, and are
stored in files with a .iml extension.
October 2012
87
(signal "RAS0#")
(signal_model "CDSDefaultOutput")
(ground_bus gndbus)
(ground_clamp_bus gndbus)
; ground_bus value.
(power_bus pwrbus)
(power_clamp_bus pwrbus)
; power_bus value.
(R 200m)
(L 5n)
(C 2p)
(WireNumber 13)
Available Models
The following tables describe the available device and interconnect models, their contents,
and how they are used.
October 2012
88
IbisDevice
IbisIOCell
PackageModel
ESpiceDevice
System
Configuration
Cable
BoardModel
October 2012
89
Model Type
Trace
MultiTrace
Shape
Via
Use the Model Browser to create, display, manage, and edit the models in your libraries. The
Model Browser dialog box functions and basic model development tasks are discussed in the
following section. See Advanced Model Development on page 97 for information on using the
model editors and on performing more complex model development tasks.
October 2012
90
October 2012
91
Using the Model Browsers you can perform the following basic model development tasks.
Create a device or interconnect model with default values or clone an existing device
model and add the newly created model to the working library.
October 2012
92
Click Add Model in the Library area of the Model Browser dialog box.
A pop-up menu of options is displayed for the currently selected model library type as
shown in the following figure.
October 2012
93
The following table describes the Add Model menu options for device model libraries.
Option
Description
Clone Selection
Copies the selected model from the Model Browser list box and
adds the clone to the working library. You specify the name the
clone.
EspiceDevice
IBISDevice
PackageModel thru
Connector
Opens a dialog box that prompts you to specify a name for the new
model type.
Clicking OK then adds a template file for the model to the working
library that you must edit to complete.
October 2012
94
Description
Clone Selection
Copies the selected model from the Model Browser list box and
adds the clone to the working library. You specify the name the
clone.
Opens a dialog box that prompts you to specify a name for the new
model.
Clicking OK then adds a template file for the model to the working
library that you must edit to complete.
Opens the Via Model Generator that lets you create a new model or
modify an existing one. For detailed information, view the online
Help for the dialog box.
Opens a dialog box that prompts you to specify a name for the new
model.
Clicking OK then adds a template file for the model to the working
library that you must edit to complete.
Note: When a new device model is added to the working library, the library check program
(dmlcheck) verifies the validity of the entry.
Deleting a Model
Click the Delete button to remove the previously selected model from the model list box.
For further details on this dialog box or for additional procedures regarding model
management, refer to the signal_library command in the Allegro PCB and Package
Physical Layout Command Reference.
October 2012
95
October 2012
96
October 2012
97
The IBIS Device Model Editor dialog box contains three tabs that you can use to:
edit information for the pins associated with the IBIS device model.
group power and ground pins and assign them to power and ground buses.
October 2012
98
group signal pins and assign IOCell models and IOCell supply buses.
specify estimated pin parasitics for the device in terms of minimum, typical, and
maximum values for resistance, capacitance, and inductance for the package.
These values are used for pins that have no individual pin parasitics (when the IBIS
Device model has no assigned PackageModel). See Guidelines for Specifying Parasitic
Values on page 107 for further details.
update the IO cell models and diff pair data in the IBIS device model you are editing to
match the pin uses defined in a selected component.
add or modify pin data including individual pin parasitics and buffer delays.
October 2012
99
From here you can select a component, the pins of which will be updated in the following
manner:
Pins not found in the IBIS device model and whose use is anything other thanNC or
UNSPEC are added to the model with a unique wire number and an IO cell model
name based on the pin use of the component pin. The mapping convention is:
Pin Use
Model Name
IN
<IBISDeviceModelName>IN
OUT
<IBISDeviceModelName>OUT
BI
<IBISDeviceModelName>IO
October 2012
100
TRI
<IBISDeviceModelName>OUT
OCA
<IBISDeviceModelName>OUT
OCL
<IBISDeviceModelName>OUT
POWER
POWER
GROUND
GND
A search is conducted for IO cell models referenced by pins found in the IBIS device
model. If the models are not found, a warning is generated and the pin is not updated
in the model. If the models are found, pin updates will be governed by the type of IC
cell model referenced by the pin, as described below:
IO Cell Type
Update
Input
IN
Not updated
POWER
GROUND
NC
Not updated
IN, BI
POWER
GROUND
NC
Output
October 2012
101
IO
BI
Not updated
IN
POWER
GROUND
NC
When the IO cell model/component pin use combination is IO/IN, an IO cell model
of type Input is created, named <IOCellModelName>_IN (where
<IOCellModelName> is the name of the model of type IO), and added to the working
DML library.
When the IO cell model/component pin use combination is IO/OUT, TRI, OCA, or
OCL, an IO cell model of type output is created, named <IOCellModelName>_OUT
(where <IOCellModelName> is the name of the model of type IO), and added to the
working DML library.
Pins found in the IBIS device model but do not exist in the selected component are
removed from the model.
Pairs of diff pair nets connected to the selected component are updated in the
following manner:
Where the IBIS device model defines two pins as a diff pair, the pins are not
updated.
Where the IBIS device model does not define two pins as a diff pair, the
information is added to the model. An attempt is made to determine which are
the inverting and non-inverting pins from the names of the nets assigned to the
pins. The naming formats searched for is:
October 2012
POS
NEG
102
<name>
<name>_
<name>
<name>_N
For example, if two diff pair pins are connected to nets ABC_POS and
ABC_NEG, ABC_POS is identified as the non-inverting net and ABC_NEG the
inverting net. Additionally, if two nets exist named ABC and ABC_, ABC
identifies the non-inverting pin and ABC_ identifies the inverting pin.
Where a polarity of the diff pair pins cannot be established from their net names,
a polarity is assigned randomly.
Where either of the two pins have been defined as part of a different diff pair in
the model, the diff pair is deleted.
When pin updating is completed, a pinUpdate.log file is created describing all the actions
taken during the update process. the information is displayed automatically in the manner
shown below.
*****Updating pins of model 7404 from component U1 device type 7404
*NOTE: Pin 1 exists in both the component and the model. The component pin
is of type input. The model references buffer model CDSDefaultIO which
is of type IO. A new buffer model named CDSDefaultIO_IN of type input
will be created from the IO buffer model.
*WARNING: Pin 2 exists in the component but not in the model.
It will be added to the model with a buffer model of 7404_IO
*NOTE: Pin 3 exists in both the component and the model. The component pin
is of type input. The model references buffer model CDSDefaultIO which
is of type IO. A new buffer model named CDSDefaultIO_IN of type input
will be created from the IO buffer model.
*WARNING: Pin 4 exists in both the component and the model. The component pin
is of an unspecified type so no changes will be made to the model pin.
*WARNING: Pin 5 exists in the component but not in the model.
It will be added to the model with a buffer model of 7404_IN
*WARNING: Pin 6 exists in both the component and the model but no buffer model
is defined. A reference to buffer model 7404_IO will be added.
*NOTE: Pin 7 exists in both the component and the model. This pin is correctly
October 2012
103
October 2012
104
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command in the Allegro PCB and Package Physical Layout
Command Reference.
Assign Signal Pins Tab
Use this tab to group the signal pins of a device and assign a power or ground bus name or
an IOCell model to the group.
October 2012
105
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command in the Allegro PCB and Package Physical Layout
Command Reference.
October 2012
106
Specifying Parasitics
To specify parasitics for an IBIS device, first select the Edit Pins tab of the IBIS Device Model
Editor dialog box.
Specifying Estimated Pin Parasitics
Use the Estimated Pin Parasitics area of the Edit Pins tab to enter minimum, typical, and
maximum values for resistance, capacitance, and inductance. Delete any listed package
model from the Package Model field in the Model Info section of the Edit Pins tab.
Specifying Package Model Parasitics
Use the Package Model area of the Edit Pins tab to specify a package model for the IBIS
device model. Select a package model name in the Model Browser or click the Package
Model field and type the package model name.
October 2012
107
October 2012
108
add or edit data (including individual pin parasitics) for the pins in the IBIS device model.
add or edit buffer delay information for the pins in the IBIS device model. See Adding or
Editing Buffer Delay Data for a Pin on page 111.
October 2012
109
Click to select the pin in the IBIS Pin Data list box in the IBIS Device Model Editor.
The IBIS Device Pin Data dialog box appears as shown in Figure 3-9 on page 109.
Click to select another pin in the IBIS Pin Data list box.
The IBIS Device Pin Data dialog box changes to display data for that pin.
To display the IBIS Device Pin Data dialog box and add data for a new pin.
Click Add Pin Data on the Edit Pins tabbed page and specify the pin name.
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command in the Allegro PCB and Package Physical Layout
Command Reference.
October 2012
110
Click Buffer Delays on the IBIS Device Pin Data dialog box.
The Buffer Delays dialog box appears as shown in Figure 3-10 on page 112.
October 2012
111
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command in the Allegro PCB and Package Physical Layout
Command Reference.
October 2012
112
Use Measure Delays Unmeasured Drivers to calculate all six measured delay
values: slow, typical, and fast buffer delays for all rising and falling drivers that currently
have no buffer delay values. In unmeasured drivers mode, SigNoise will reuse existing
simulation results, even from other devices, in order to maximize performance.
Use Measure Delays All Drivers to calculate all six measured delay values: slow,
typical, and fast buffer delays for every rising or falling driver. These new values override
any previous buffer delay values that exist in the model. The new values are saved in the
buffer delay section for each driver. In all drivers mode, all delay values are re-measured.
Existing simulation results are not used. Use all drivers mode to regenerate buffer delay
values for a device whenever any changes are made to the IOCell models for that device.
Use Measure Delays Clear All Delays to reset to 0 all buffer delay values.
These new (or deleted) values override any previous buffer delay values that exist in the
model. The new values are saved for each driver.
These new values override any previous buffer delay values that exist in the model. The new
values are saved for each driver.
Using Buffer Delay Compensation
There are several ways to use buffer delay compensation.
October 2012
113
Generate Reflection or Delay reports which have buffer delay compensated switch and
settle time values.
Examine switch and settle delay values using the SigXplorer results spreadsheet.
Create and examine compensated delay values for a driver using the IBIS Device Model
Editor.
If buffer delay values exist for a pin on an IBIS device, the delay values are extracted from the
library data for the pins IOCell model and subtracted from the simulated times of threshold
crossing delays to produce compensated first switch and final settle delays.
When buffer delay values do not exist for an IOCell model, no buffer delay is subtracted and
buffer delay appears in reports as 0.0.
Measuring Compensated Buffer Delay Values from the IBIS Device Model Editor
You can use the IBIS Device Model Editor to simulate, measure, and edit buffer delay values
and associated data for drivers associated with a selected IBIS Device model.
rise and fall times and high and low logic thresholds for an output buffer.
October 2012
114
October 2012
115
General Tab
Use the General tab of the IOCell Editor to perform the following tasks.
List the name, model type, and technology family of the IOCell model you are editing.
List various minimum, typical, and maximum die capacitance values as well as reference
temperature values for the IOCell model you are editing.
You can verify the minimum, typical, and maximum values for the die capacitance in the
IBIS data file; the die capacitance values are listed under c_comp.
October 2012
116
October 2012
117
Use the Rise Slew dV and dT fields and the Fall Slew dV and dT fields to specify
minimum, typical, and maximum values for ramp rates associated with the IOCell model.
By IBIS convention, the ramp rate values (the dV/dT values or slew rates) are required
to be 20%/80% values. This implies that the rise time and the fall time are defined as the
time it takes the output buffer to go from 20% of its final value to 80% of its final value.
The dV value represents the difference between 20% and 80% of the actual voltage
swing. The dT value is the actual time taken for the 20%/80% voltage swing.
You must also correctly categorized ramp rate values as minimum, typical, and maximum
slew rates. The minimum value is the slowest slew rate and the maximum value is the
fastest.
Use PullUp and PullDown to start a VI Curve Editor and enter high and low output
voltage and current data point values
October 2012
118
Pullup
Pulldown
PowerClamp
GroundClamp
The Pullup and PowerClamp curves are offset on the voltage scale by the respective
Reference Voltage. For a 3.3V part, for example, 1.0V on the Pullup curve is
summed at 3.3V - 1.0V = 2.3V on the curve display. The composite sum curves
are initially hidden in SigWave.
Use Rise Wave and Fall Wave to start a VT Curve Editor and enter high and low output
voltage and time data point values
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command in the Allegro PCB and Package Physical Layout
Command Reference.
October 2012
119
Defining Diff Pair and Single-Ended IO Buffer Test Fixture Information for Delay
Measurement
You must typically compute buffer delays for single-ended and diff pair outputs in a DML
IbisDevice model. You do this by defining a test fixture for each output. The procedures used
for defining information for diff pair and single-ended test fixtures is similar but not identical.
Additionally, the methods for doing so vary according to whether a test fixture is defined in the
selected output model of your library. Your Allegro platform tool searches for test fixture data
in the following sequence:
October 2012
120
Rterm
Vout
Cterm
October 2012
121
From the Output Section tab of the IOCell Model Editor, click:
A V/I Curve Editor is displayed for the specified behavior. Figure 3-17 on page 123 shows the
Power Clamp V/I Curve Editor dialog box.
October 2012
122
For further details on these dialog boxes, or for procedures regarding editing V/I curve data,
refer to the signal_library command in the Allegro PCB and Package Physical
Layout Command Reference.
October 2012
123
From the Output Section tab of the IOCell Model Editor, click:
A V/T curve editor is displayed for the specified VT curve. Figure 3-18 on page 124 shows the
RisingWaveform V/T Curve Editor dialog box.
Figure 3-18 V/T Curve Editor dialog box
Use the V/T Curve Test Fixture fields to modify the test fixture for the V/T curve. Select
a test fixture and edit the values.
Use View to open the SigWave window and display the waveform for a selected test
fixture.
The SigWave window is displayed with the waveform for the test fixture. See the
SigWave User Guide for further details.
Use Import to add a V/T curve from an AWB file to the IOCell model.
October 2012
124
Editing PackageModels
You can edit any existing PackageModel that has been created and added to a Library. If you
created the model by cloning (or copying) an existing model, you need to edit the cloned
model so that it characterizes the device you are modeling. If you created the model from
scratch, it will contain default values that you may want to edit. See Introduction to Simulation
Models on page 87 for information on creating device models and adding them to a library.
Use Edit in the Model Browser to modify a selected PackageModel. Your default text editor
is opened with the contents of the PackageModel.
October 2012
125
Double-click on an analog output model name in the Dml Model Browser list box.
- or Click to select an analog output model from the Model Browser list box, then click Edit.
If necessary, see To access the SI Model Browser from the PCB SI on page 91.
October 2012
126
Using the Analog Output Model Editor you can perform the following tasks.
Use the Rise, Fall, Pulse, and Inv Pulse buttons and fields to specify the paths to one
or more AWB files and import the files. (Use the button with an empty field to display a
file browser.) SigWave displays the selected Analog Workbench file.
October 2012
127
October 2012
128
generate a new DML to enable the portability of the device models (independent of the
design database) that are resident in the current design.
October 2012
129
For further details on this dialog box, or for procedures regarding dumping or refreshing
models in your design, refer to the signal_model_refresh command in the Allegro PCB
and Package Physical Layout Command Reference.
October 2012
130
Meaning
Same
<integer> differences
Reports
Model Refresh Summary
Through the use of the Refresh and Apply buttons in the dialog box, you can refresh the
models in the current design individually and apply changes without having to close (OK) the
form. When the Apply button is selected, a Model Refresh report displays providing
verification on the models refreshed thus far. The following figure shows a sample report.
October 2012
131
View Differences
When the status of a device model is listed as an integer, there are differences between the
model code in the current design and its source. You can check these differences by first
selecting the model and then clicking View Differences on the Model Dump/Refresh dialog
box. The following figure shows a sample report.
October 2012
132
The report shows a line by line comparison of the differences between the selected models
data within the current design and its source. If no differences are detected, a message is
displayed.
October 2012
133
October 2012
134
At the operating system prompt, enter the dmlcheck command with the following
arguments:
dmlcheck [options] <library_filename>...
Function
-bufferdelay
Calculate the buffer delay for each IBIS Device pin. You
must also specify the -o option with this option.
-curvedir
<directory>
-o <extension>
library_filename
October 2012
135
The following example checks all library files in the current directory.
dmlcheck *.dml
The following example checks all library files in the current directory, and writes
converted data into files with the.new extension.
dmlcheck -o new *.dml
The following examples creates a "curves" directory into which is placed a .sim
waveform file for each V/I and V/T curve.
dmlcheck -curvedir curves *.dml
The files are named with the IOCell name and curve name, separated by an underscore.
For example, CDSDefaultIO_Pullup.sim. Use SigWave to view the curves.
October 2012
136
Model Translation
Translating Third-party Models to DML
You can use translation utilities to translate models from third-party formats to DML files used
by SigNoise. The following table shows which translator to use for each third-party model
format supported by Cadence.
Translator to use
IBIS
ibis2signoise
QUAD
quad2signoise
Touchstone
ts2dml
Refer to the Allegro SI Device Modeling Language User Guide for further details on
translating third-party models and for information regarding error and warning messages.
Translating Espice Models to Generic SPICE Formats
You can use the spc2spc utility to read a named SigNoise netlist and generate SPICE or
Spectre formatted output files. This utility has options that allow flattening, node renaming,
and ladder network generation. An option to allow the generation of Hspice elements is also
available. Enabling this option also causes the creation of Hspice RLGC specification files for
each different coupled transmission line topology.
Refer to the Allegro SI Device Modeling Language User Guide for further details on
translating Espice files and for information regarding error and warning messages.
-or
For further details, refer to the Allegro Signal Explorer User Guide.
October 2012
137
October 2012
138
4
Transmission Line Simulation
Overview
Transmission line simulation helps you resolve high-speed interconnect problems that often
accompany higher density designs, shorter cycle times, higher clock frequencies, shorter rise
and fall times, and decreasing ratios of rise time to propagation delay. You can analyze a
design for delay, distortion, parasitic, crosstalk effects, and design rule violations. You can
review analysis results in both waveform and text report formats.
Net 1
Net 2
Extended Net
October 2012
139
Simulations
Once the interconnect parasitics are derived and the appropriate device models are retrieved
and plugged in, SigNoise builds the simulation circuit based on the type of simulation you
require. You can distinguish the different simulation types by what is included in the circuit,
and how stimulus is applied.
The following types of simulation are available.
Reflection
Comprehensive
Crosstalk
SSN
Batch Simulation
In addition to performing signal integrity analysis interactively from the user interface, you can
also use SigNoise in batch mode. See Chapter 8, Analyzing to Generate Text Reports for
more information.
Analysis Results
SigNoise provides its analysis results in the form of:
October 2012
140
Description
Reflection Summary
Delay
Ringing
Parasitics
SSN report
Segment Crosstalk
Crosstalk Summary
Crosstalk Detailed
October 2012
141
October 2012
142
Simulation Setup
Setup Options
To set up for simulation
Select any of the menu options shown in the following figure from the main menu of your
PCB or Package editor.
The following table describes the Analyze menu options relevant for simulation.
.
Table 4-2 SI/EMI Simulation Menu Option Descriptions
Option
Description
Initialize
Model Browser
Model Assignment
October 2012
143
Description
Preferences
Probe
Xtalk Table
Uses or creates the signoise.run directory structure. See Figure 4-9 on page 166.
Runs the most recently used case and clears simulation data.
Each case runs in its own sub-directory (within the signoise.run directory). On the first
run SigNoise creates the case1 sub-directory containing the current (active) case.
Subsequently, new (consecutively numbered) case sub-directories are created as needed.
October 2012
144
Choose Analyze Initialize from the main menu of either your PCB or Package editor.
The Signal Analysis Initialization dialog box appears as shown in the following figure.
October 2012
145
For further details on this dialog box or for procedures regarding simulation initialization, refer
to the signal_init command in the Allegro PCB and Package Physical Layout
Command Reference.
Single Board and Multi-Board Setup
By default, when you perform a simulation operation, SigNoise runs in single board mode on
the current design. From the Initialization dialog box you can select to operate SigNoise in
multi-board mode. Multi-board mode enables you to analyze a system of more than one
printed circuit board using a System Configuration model.
Case Management
Setup and analysis data are partitioned into cases with one case being operated on at a time.
You can use the initialization dialog box to manually create and delete cases, and to switch
from the current case to another existing case. When you change to a different case using
the initialization dialog box, upon confirmation (OK), all other dialog boxes are updated to
reflect the case data file (case.cfg) for the new current case.
Tip
By default, Always ask me about case updates when the project changes is
unchecked, and the Keep the current case, clearing simulation data executes
in the background. To change this behavior, choose Analyze Initialize and check
Always ask me about case updates when the project changes. Subsequent
parameter changes and simulations will then invoke the Case Update dialog box
(see Figure 4-2 on page 145), where you can change the case management
settings.
Note: You can also access the Case Update dialog box by choosing Analyze Probe
and clicking Reports or Waveforms.
When you initiate an operation which would change the case data file, case.cfg, in a way that
could invalidate simulation data in the current case directory, you are notified of the change
by the display of the Update Case dialog box, shown in Figure 4-2 on page 145.
You can choose to:
October 2012
146
create and name a new case based on a copy of the configuration information in the
existing case.cfg file, plus the proposed change.
Make the new case the current case and begin working there. The new case includes no
existing simulation data.
add the proposed change to the current case, clear all existing simulation data from the
case, and continue your work there. This is the default behavior.
add the proposed change to the configuration of the current case, and continue your
work there.
All existing simulation details are retained. Do this only when you are certain that new
simulation data, based on the modified configuration information, will be compatible with
existing simulation data.
Choose Analyze SI/EMI Sim Model from the main menu of your PCB or Package
editor.
The Signal Model Assignment dialog box is displayed as shown in the following figure.
October 2012
147
Using this dialog box you can perform the following tasks.
Devices Tab
Using the Devices tab of the Signal Model Assignment dialog box, you can assign device
models to components in the design either manually or automatically. Note the Auto Setup
button in Figure 4-3 on page 148.
October 2012
148
Use Preferences at anytime while using the Signal Model Assignment dialog box to
display the SigNoise Preferences dialog box. Through this dialog box, you can change
the characteristics of the default device and interconnect models.
Use Auto Setup to automatically assign device models to simple components such as
capacitors and resistors using the device type prefix as a reference. In order for
automatic model assignment to succeed, components must have reasonable value
property data in the design database.
For manual model assignments, either assign a single device model to all components
having the same device file or assign individual device models to individual components
specified by reference designator. When you specify a model you can enter a model
name in the Signal Model field or select a model in the Model Browser.
Use Find Model to display a set of models appropriate for the selected DevType or
RefDes.
You can also use Create Model to invoke a model editor and create a model from
scratch. Depending on the value property data associated with the component, either the
Create Espice Device Model dialog box or the Create IBIS Device Model dialog box is
invoked.
For further details on this tab, refer to the signal_model command in the Allegro PCB and
Package Physical Layout Command Reference.
BondWires Tab
Bond wires are connect lines (clines) on wire bond layers. Use the BondWires tab to assign
trace models or Espice models to individual bond wire connections in the design or to modify
these models. When the Model Browser is open along with the Signal Model Assignment
dialog box, the name of a trace model or Espice model selected in the Model Browser also
displays in the Signal Model field.
Note: Espice models assigned to the bond wires are not used in parasitic reports and DRC.
Important
When assigning an Espice model, map the first Espice subvariety node to the die
pin and the second node to the bond finger.
October 2012
149
To manually assign trace and Espice models, use Find Model to view and select existing
models in the selected interconnect library.
For further details on this tab, refer to the signal_model command in the Allegro PCB and
Package Physical Layout Command Reference.
RefDesPins Tab
Use the RefDesPins tab to assign IOCell models and programmable buffer models to
individual pins identified by reference designator. You can also modify existing models during
assignment. When the model Browser is open along with the Signal Model Assignment dialog
box, the name of the model selected in the Model Browser also displays in the Signal Model
field.
October 2012
150
To assign an existing IBIS Device model, you can enter a model name in the Signal
Model field, or select a model in the Model Browser. Use the Find Model button to
display models appropriate for the selected reference designator.
To activate the Prog. Buffers command button, first select a Programmable Buffer
model from the working library.
Connectors Tab
Use the Connectors tab to assign coupled connector models to components such as male/
female connectors, PCI slots, and other components that connect one design to another.
October 2012
151
Use the Connector Model field to type in an existing connector model name for
specified components. Connector model names previously entered in the field appear as
selection entries in the drop-down. You can clear individual model assignments by
choosing the No Model entry.
To manually assign connector models, use Find Model to view and select existing
models in the selected device library.
If necessary, you can modify the chosen model with Edit Model.
To quickly clear all connector models assigned to components in the design, use Clear
All Connector Model Assignments.
For further details on this tab, refer to the signal_model command in the Allegro PCB and
Package Physical Layout Command Reference.
October 2012
152
Purpose
Command Line
EDITOR
PRINTER
Note: If the EDITOR variable is not set, SigNoise will run xterm vi when you text edit a file.
You may omit the xterm for editors that open a new window of their own.
October 2012
153
Purpose
Value
EDITOR
editor_application_name
PRINTER
October 2012
154
3. Take a look in your local ENVPATH directory to see if an env file already exists there.
If it does not exist, you may want create one. See To create a local env file on page 155.
To create a local env file
1. Make a pcbenv directory under your home directory if one does not currently exist.
2. Copy the <install>/share/pcb/text/env_local.txt file to your pcbenv
directory and name it env. This local environment file is read first when PCB SI starts up.
3. Edit this env file to add your environment variable settings, aliases, and so on to the end
of the file. See To edit your local env file on page 157 for further details.
October 2012
155
Function
TOPOLOGY_
TEMPLATE_PATH
SIGNOISEPATH
DISPLAY_
NOHILITEFONT
LOG_NET_XTALK
SIGSUPPRESS
October 2012
156
Function
SIGNAL_RUN_
DIRECTORY
set SIG_MAPFILE_ORGPATH 1
Note: The SIGNAL_DEVLIBS and SIGNAL_ICNLIBS variables do not apply to SigNoise run
directories created before the variables were set. Also, if you specify a directory, rather than
a file, SigNoise will include all libraries (*.dml*) in that directory within the library search list.
To edit your local env file
You can set environment variables simply by editing your local <home>/pcbenv/env file
using a text editor and then sourcing the file from your command console window.
Note: Do not edit the standard header information in this file.
1. Add environment variable statements to the bottom of your env file, preceded by the
command set, as shown in the Local env File Example on page 158. Refer to Table 45 on page 156 for exact syntax.
Tip
A # sign is used to precede comment lines and to comment out (turn off)
environment variables without removing them from the file.
October 2012
157
October 2012
158
Choose Setup SI Design Audit from the main menu of your PCB or Package editor.
October 2012
159
October 2012
160
For information on design audit, see Allegro PCB and Physical Layout Command
Reference: S Commands.
October 2012
161
unplaced components.
C-lines with a SIGNAL_MODEL reference that do not exist in any open interconnect
library
an active system configuration reference that is not loaded or where a DesignLink model
does not exist in any open device library.
components with a SIGNAL_MODEL reference that do not exist in any open device
library.
referenced device models that do not pass dmlcheck (Audit Report will list problem
models, but actual errors will appear in SigNoise log window).
pin signal_model parameters in IBISDevice pin map do not match Allegro pin use.
Allegro component pins not found in IBISDevice pin map (other than NC pins).
nets with improper differential pair connections like a non-inverting driver that is driving
an inverting receiver.
October 2012
162
nets with the DIFFERENTIAL_PAIR property and no differential pair signal models on
pins, or vice versa.
To find setup problems that may hinder accuracy (Warnings), SigNoise checks for:
wire bond layers that do not have the SIGNAL_MODEL property attached to clines.
October 2012
163
October 2012
164
Working Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
signoise.log
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
devices.dml
interconn.iml
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
allegro.jrl
signoise.run Directory
Figure 4-9 on page 166 depicts the files and sub-directories that are contained within the
signoise.run directory.
October 2012
165
signoise.run Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
signoise.cfg
cases.cfg
case# Directories
case# Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
case.cfg
waveforms
projstate.dat
sim# Directories
signoise.cfg - Contains the configuration information that is general and common to all
simulations. For example, information on whether a System Configuration model is active
and the name of the current device model library is included here.
cases.cfg - Contains a listing of the case directories and the descriptive text string
associated with each case.
October 2012
166
case.cfg - Contains the configuration information that is specific to that particular case.
This information includes, for example, the text string describing the case and the stimuli
to apply when a simulation for this case is run.
projstat.dat - Lists timestamp data for each .brd file in the system as well as each .dml
loaded. Use this information to determine when these files have been modified.
sim# Directories - These sub-directories (sim1, sim2, and so on) are created only
when Save Circuit Files is on. They contain all input and output files for a specific
simulation, except for the .sim waveform files that get saved to the waveforms directory.
waveforms - If you elect to save circuit files (in either the Report Generator or the
WaveForm Simulation dialog boxes), SigNoise saves SPICE files in the simulation
directories. If you elect to save waveforms (in the Report Generator), SigNoise saves the
waveform files corresponding to SigNoise runs (sim1.sim, sim2.sim, and so on) in the
waveforms directory.
When you perform an EMI emissions simulation, SigNoise saves both the time voltage
waveform files corresponding to SigNoise runs (sim4.sim, sim5.sim, and so on) and the
files containing the emission spectrum in the frequency domain (sim4_emi_db.sim,
sim5_emi_db.sim, and so on) in the waveforms directory.
October 2012
167
sim# Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
comp_rlgc.inc
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
comps.spc
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
cycle.msm
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
delay.dl
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
interconn.spc
main.spc
ntl_rlgc.inc
stimulus.spc
tlsim.log
distortion.dst
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
dlink_rlgc.inc
ibis_models.inc
comps.spc - Describes component sub circuits, and power and ground values of the
simulation. It also contains package parasitics when the package model contains spice
sub circuits.
cycle.msm - Lists the simulation results for each node to measure. It contains delay and
distortion data.
October 2012
168
main.spc - This is the main SPICE file calling the other SPICE sub circuits.
tlsim.log - The log file for the Cadence proprietary SPICE simulator.
October 2012
169
October 2012
170
5
Floorplanning
Introduction
Floorplanning in PCB SI allows you to bring layout decisions to the forefront of the design
cycle. SI provides a physical view of your design and allows you to do
system-level topology and floorplanning exploration. It functions as both a pre-route editor
and post-route analysis tool that enables you to quickly develop and verify net topologies and
constraints for the high-speed circuits in your design.
Using SI you can:
perform database setup requirements for high-speed circuit simulation. See Setting up
the Design on page 63
identify rooms for critical component placement. For example, you may want to separate
analog components from digital components by confining the analog components to a
specific room area on the board. See Room Outlines on page 177.
mock-up, simulate, and analyze logic at the board-level. See the example Drawing Logic
Scenarios at the Board Level on page 184.
develop logic and constraints for high-speed circuits from scratch without a netlist.
ensure quality by implementing re-use of design elements and critical components. You
can do this easily by importing technology files, board geometry, and setup data from
other designs. For further details, see Importing Setup Data on page 180.
perform test routing using proposed electrical constraints to ensure high-speed design
rules are achievable before passing them on to the Layout Designer.
October 2012
171
Board Setup
Logic
Board Setup
Board setup involves defining or editing one or more of the following.
Board Outline
Room Outlines
Plane Outline
Keepouts
October 2012
172
October 2012
173
You can modify most attributes by entering a new value in the appropriate cell. Exceptions to
this include the extreme outer layers, which have a fixed name called SURFACE and no
definable attributes, and the extreme outer CONDUCTOR layers, which have a fixed name of
TOP and BOTTOM. You cannot change the name TOP and BOTTOM but you can change the
attribute values on those layers.
When you change the value of an attribute, other attributes may be re-calculated. For
example, if you change the value of the Line Width, the Impedance changes as well.
To add or remove layers from your stackup, refer to the procedures for the define
lyrstack command in the Allegro PCB and Package Physical Layout Command
Reference.
The Materials Editor
The Materials Editor presents materials that are currently defined in your Materials file.
Each row represents a single material with columns representing the various attributes of the
material. You can resize the dialog box to fully display an extended range of materials
October 2012
174
The Materials Editor automatically displays default values that are in either the
materials.dat file (PCB SI) or the mmcmmat.dat file (IC Packaging Design).
These are read-only files provided by Allegro that contain the most common industry
fabrication materials. By default, they are located in the following directory within your
installation hierarchy.
$ALLEGRO_INSTALL_DIRECTORY/share/pcb/text
October 2012
175
Board Outline
Use the Board Outline dialog box to create a new board outline or modify, move, or delete an
existing one. Creating a board outline automatically generates package and route keepins.
Modifying or moving a board outline automatically regenerates those keepins.
Figure 5-4 The Board Outline Dialog Box
October 2012
176
Room Outlines
Use the Room Outline dialog box to create rooms, specify room names, specify the board
layer on which a room is situated, and control DRC errors. Assignment of a physical area to
a grouping provides instant feedback during critical placement to assure compliance with
grouping constraints.
Figure 5-5 Room Outline Dialog Box
October 2012
177
Plane Outlines
Use the Plane Outline dialog box for creating new plane outlines or modifying, moving, or
deleting an existing outline.
Figure 5-6 Plane Outline Dialog Box
October 2012
178
Keepouts
Use the Keepout dialog box, for defining keepout areas to isolate sections within the board
outline where component placement is not allowed. You can create, modify, or delete keepout
areas. This allows you to define areas of the board without having to use one of the add
shape commands.
Figure 5-7 Keepout Dialog Box
October 2012
179
Data
Board Outline
Cross-section
Keepouts
Rooms
Placed Components
Electrical Rules
User units
Drawing parameters
Layout cross section parameters
DRC modes for constraints
Spacing constraint sets
Physical constraint sets
Electrical constraint sets
Design constraints
Constraint assignment tables
User property definitions
October 2012
180
To import a technology file into your design, refer to the procedures for the techfile in
command in the Allegro PCB and Package Physical Layout Command Reference.
For further details, see Chapter 6, Creating and Using Technology Files in Allegro PCB
and Package User Guide: Defining and Developing Libraries.
October 2012
181
October 2012
182
To import a board file into your design, refer to the procedures for the boardoutline
import command in the Allegro PCB and Package Physical Layout Command
Reference.
October 2012
183
Defining Logic
Defining logic involves one or more of the following tasks.
Netlist Creation
October 2012
184
To edit the parts list in your design or create / modify temporary components, refer to the
procedures for the edit parts command in the Allegro PCB and Package Physical
Layout Command Reference.
After creating components, use the Placement dialog box to interactively place the
components into your design. In addition to components, the tabbed interface allows you to
choose placement symbol types and modules.
To access the Placement dialog box
October 2012
185
To place components in your design, refer to the procedures for the place manual
command in the Allegro PCB and Package Physical Layout Command Reference.
186
To create and assign device models, refer to the procedures for the signal model
command in the Allegro PCB and Package Physical Layout Command Reference.
Netlist Creation
SI lets you create a netlist without having to draw a schematic. This unique feature enables
you to explore various layout geometries at the board level. Once components are placed and
device models are assigned, you can use the Edit Nets dialog box to create a netlist that
defines the interconnect between the components.
Using the ratsnest of the net, you can perform certain signal integrity simulations on the
layout. However, If your simulations require etch (for example, self-coupling analysis), you can
use the add connect command to route the connections interactively before you simulate.
To access the Edit Nets dialog box
October 2012
187
To create a netlist from scratch or to modify an existing netlist in your design, refer to the
procedures for the edit nets command in the Allegro PCB and Package Physical Layout
Command Reference.
October 2012
188
Create a simple rectangular board outline on an empty canvas as shown in Figure 5-15.
See Board Outline on page 176 for details.
October 2012
189
Edit the default stackup and add a ground layer to provide an impedance for the trace as
shown in Figure 5-16 on page 191. Refer to the procedure The Materials Editor on
page 174 for complete details.
October 2012
190
October 2012
191
Place the temporary components on the board as shown in Figure 5-19 on page 193.
Refer to the procedures for the place manual command in the Allegro PCB and
Package Physical Layout Command Reference for complete details.
Note: Due to the fact that the component package (FAKE) specified in the Parts List
dialog box does not exist yet, you are prompted to first create a temporary package for
the components. Proceed with temporary package creation by clicking OK in the Create
Temporary Package dialog box that appears as shown in Figure 5-18.
October 2012
192
Create an IBIS device model and assign it to the temporary components as shown in
Figure 5-21 on page 195, Figure 5-22 on page 195, Figure 5-23 on page 195, and
Figure 5-24 on page 196.
Note:
Click Yes when prompted to add ground and power pins to the model.
Clicking OK in the Signal Analysis dialog box after creating the model automatically
assigns it to the DUD components.
Refer to the procedures for the signal model command in the Allegro PCB and Package
Physical Layout Command Reference for complete details.
October 2012
193
October 2012
194
October 2012
195
October 2012
196
October 2012
197
Create a netlist comprised of two nets (SERPENTINE and NEIGHBOR) that connect the
pins of the temporary components as shown in Figure 5-26.
Note:
Do you want the pins in this sides pin list added to the
new net?
Once the netlist is created, you are able to perform certain simulations on the layout
using the ratsnest. However, in order to perform a self-coupling simulation, you must
first route the SERPENTINE net back onto itself. This is addressed in
Step 6 - Routing on page 199.
Refer to the procedures for the edit nets command in the Allegro PCB and Package
Physical Layout Command Reference for complete details.
Figure 5-26 Creating a Netlist from Scratch
October 2012
198
Route the net named SERPENTINE back onto itself for a 3 inch run as shown in
Figure 5-27. This step is required for the self-coupling simulation.
Refer to the procedures for the add connect command in the Allegro PCB and Package
Physical Layout Command Reference for complete details.
Figure 5-27 Routing a Net to Simulate
October 2012
199
Air Gap
October 2012
200
e. Generate and view the resulting waveforms in SigWave as shown in Figure 5-30 on
page 202.
October 2012
201
f. Repeat the simulation using the Comprehensive tab of the Analysis Waveform
Generator (to specify coupling) setting the Aggressor Switch Mode to Even as
shown in Figure 5-31 on page 203.
October 2012
202
g. Click Preferences.
The Analysis Preferences dialog box appears.
h. Display the InterconnectModels tab and set the geometry window to 30 mils (10
mils larger than the air gap) as shown in Figure 5-32 on page 204.
October 2012
203
October 2012
204
Coupled Waveform
Reflection Waveform
As you can see (zoomed in on the top-left corner of the waveforms) in Figure 5-33,
the impedance is skewed a little higher and the edge is moving slightly faster on the
coupled waveform.
October 2012
205
The coupled, lossy and frequency-dependent line of code highlighted in this figure
represents the three inch long section of parallel trace that was routed on the mockup PCB. See Figure 5-27 on page 199.
October 2012
206
6
Topology Extraction
Overview
You can create a circuit topology for analysis in one of two ways. You can either build it from
scratch in SigXplorer, or you can select a net in the design and extract its topology into
SigXplorer for exploration. Once extracted, you are ready to begin solution space analysis on
the topology as default signal models are already assigned.
During solution space analysis, you simulate, examine, compare and refine the net topology
to provide the best solution for the design. The result of these analysis is a topology template
that represents a set of electrical and physical constraints that are used to control the final
placement and routing of the circuit on the board. In other words, the topology template
implements your design intent.
Extraction Prerequisites
Before you can extract a net topology, you must:
complete the database setup requirements. See Setting up the Design on page 63.
complete the extraction setup requirements. See Extraction Setup on page 208.
October 2012
207
Extraction Setup
Perform your pre-route extraction setup by choosing Analyze Preferences from the PCB
SI menu. The Analysis Preferences dialog box appears as shown in the following figure.
Figure 6-1 PCB SI Analysis Preferences Dialog Box InterconnectModels Tab
October 2012
208
Unrouted Interconnect
Use the InterconnectModels tab to establish default values that determine how interconnect
is modeled during simulation both before and after routing and how crosstalk and SSN
analysis is performed. The simulator cannot calculate length or impedance of a ratsnest, even
if you have defined a board stack-up. This tab specifies what impedance and what portion of
the manhattan distance to use for ideal Tlines produced during net extraction. The Default
Prop Velocity value is used in conjunction with the manhattan distance to calculate delay in
time.
Unrouted Interconnect Models
For pre-route signal integrity analysis, SigNoise models hypothetical traces using a percent
Manhattan value, a default impedance value, and a default propagation velocity.
Routed Interconnect Models
For post-route signal integrity analysis, you can specify a field solver cutoff frequency and the
way that vias are modeled. The field solver cutoff frequency establishes a bandwidth within
which interconnect parasitics are solved. This prompts the SigNoise field solver to generate
frequency-dependent transmission line models in the interconnect library. The default cutoff
frequency of 0GHZ directs the field solver to disregard signal frequencies. This saves
computation time, but may not be as accurate as frequency-dependent interconnect
modeling.
To define how vias are modeled during simulation, first select whether each single via should
have a closed form model, or use the preferred Analytical Solution as configured in the Via
Model Extraction Setup dialog box shown in Figure 6-2. You can set up coupled vias using
only the Analytical Solution; however, in cases such as incorrect stack-ups or field solver
limitations that make the Analytical Solution unfeasible for coupled vias, the operation
defaults to a single via. This single via may create a closed form, narrow or wide band, or SParam solution. Coupled vias are detected by way of the settings in the Diffpair/Via
Coupling Window field of the Interconnect Models tab as well as the settings in the Via
Model Extraction Setup dialog.
October 2012
209
October 2012
210
Unrouted Format
October 2012
211
Net SDR2A
Xnet SDR2
PCB SI and Allegro Editor use the same design database (.brd file). They both understand
physical nets. However, PCB SI also understands Xnets and multi-board connectivity.
In other words, it understands the connections between Xnets (from one board to another).
This requires the ability to trace through connectors with detailed mapping information for
connector pins.
October 2012
212
October 2012
213
1. Probe net
Selected net
displays here
October 2012
214
October 2012
215
October 2012
216
extracting the topology template using Constraint Manager with the Include routed
interconnect option enabled (see the topology template extraction options in Figure 66 on page 216).
Figure 6-7 Viewing a Routed Net vs. Viewing Routed Net Topology
Highlighted in
SI
Stub
October 2012
217
Topology Simulation
Once you extract a net topology into SigXplorer, you are ready to begin exploring (simulating)
the topology to determine and define an appropriate set of electrical constraints. This process
is known as Solution Space Analysis. For further details on this process, refer to Chapter 7,
Solution Space Analysis,.
For information on setting simulation preferences and simulating a net topology using
SigXplorer, refer to the Allegro SI SigXplorer User Guide.
October 2012
218
7
Determining and Defining Constraints
Overview
Using SigXplorer you define, examine, modify, and compare net topologies to determine the
best solution for a design. You create topology templates that represent physical wiring
strategies and component selection based upon the rules and constraints of your design.
You create constraint sets to define both electrical and physical constraints that drive printed
circuit board routing.
As the signal integrity engineer, your job is to simulate topologies and analyze circuits for
propagation delays, switch/settle times, minimum and maximum flight times, overshoot and
undershoot times, and signal monotonicity. You can run a single simulation or a set of
parametric sweeps to cover a variety of conditions.
Constraint sets are assigned to a net or groups of nets to quickly provide a foundation for
correct-by-design floorplanning and implementation. You can make modifications to
constraint sets for an entire group of nets.
October 2012
219
October 2012
220
pin ordering
termination strategies
identifying and entering nominal values for all parameters such as:
board impedance
trace velocity
terminator value
segment lengths
Solution Space Analysis is based on the premise that all of the signals on a bus have the
same timing and signal quality constraints. As such, finding an electrical and physical solution
for one bit of the bus constitutes finding a solution for the whole bus. At this point in the design
process, you can enter any electrical constraints (such as flight time, overshoot, undershoot)
for the bus being analyzed. Any solution space simulations that violate the specified
constraints should be flagged as errors.
You can extract the net from a partially or fully placed board design, or create it from scratch
using SigXplorer. The initial step is to define discrete devices, intended pin ordering
(connectivity), as well as the nominal (ideal) values for all topology properties.
Figure 7-2 Solution Space Analysis Pin Ordering
Point-to-point device connection
Terminators at end of
October 2012
221
identifying manufacturing variances that you want to include in the analysis such as:
trace impedance
trace velocity
identifying initial ranges for design rule parameters such as min/max lengths.
During stage 2, you begin to make some educated guesses about the target topology and the
minimum/maximum conditions of length, impedance, driver speed, and so forth, under which
the circuit operates. You then run min/max simulations, or small simulation sweeps, to see the
circuits behavior under a range of conditions. The swept variables usually fall into the
following two categories:
Manufacturing Variances
Driver speeds, TLine impedances, resistor tolerances, and so on must be accounted for, and
the circuit must work under all possible combinations of conditions. The designers may have
some control over these variances (for instance, specifying that board impedance must be 65
ohms +/- 5%), but the variances must still be accounted for. The effect of the manufacturing
variances are simulated, but are usually not passed into the layout process via a topology
template.
Design Variances
Once the manufacturing variances are accounted for, the designers task is to find the widest
possible range of design variances (such as routing lengths) within which the design will
function. The resulting constraints (pin ordering, min/max routing lengths, length matching
requirements) are passed downstream to the physical design process as design constraints.
These are usually contained in a topology template (.top) file and applied to the design
database through PCB SI or Allegro Editor.
October 2012
222
October 2012
223
composing a master list of all variables including their ranges for analysis. See Figure 74.
The following figure shows an example of a master variable list that you could compose from
scratch.
Figure 7-4 Master Variable List Example
The assumption is that board impedances are 65 ohms +/- 5 ohms and the traces are routed
on a surface layer where velocities are expected to vary between 5400 mil/ns and 6600 mil/
ns. The terminators used are 68 ohms +/- 1 ohm, and the termination voltage supply is
specified to 1.5V +/- 5% (1.425 - 1.575V). The processor and the chipset are either fast or
slow (the information for fast/slow buffer behavior and min/ max package parasitics is
contained in the IBIS signal models provided by the semiconductor manufacturers). For this
October 2012
224
October 2012
225
For further details on simulation sweeping, see Parametric Sweeps on page 230.
October 2012
226
evaluating results and identifying cases (combinations of variables) that cause topology
to fail (not meet design goals).
simulating individual cases, analyzing, correcting the design if needed, and iterating.
You then open up the design range and repeat the process until you have determined the
maximum allowable range of routing lengths has been determined.
The solution thus far meets the parameters for minimum and maximum flight time.
The timing budget for high-speed buses typically includes a maximum timing shift budget due
to crosstalk between the bus bits. You can use Signal Explorer Expert to model the realistic
worst-case scenario (longest coupled length, fastest drivers, and so forth) to measure the
crosstalk-induced timing shifts for a given spacing rule.
October 2012
227
October 2012
228
Parallelism rules
Note: Do not include all variances in the final topology template. Trace min/max impedances
are often not included in the routers rules.
Once Solution Space Analysis is complete, you can create the topology template (electrical
and physical constraint set) to be driven into placement and routing. This is typically a subset
of the information used for simulation.
For example, if the target impedance of the board is 65 ohms, and +/- 10% impedance
simulation is performed, you would not want the 58- and 62-ohm values driven into the router.
You should design the board for 65 ohms, with the understanding that 10% impedance control
will result in 58- to 62-ohm impedance.
Figure 7-7 Solution Space Analysis - Final Topology Template
October 2012
229
Parametric Sweeps
Simulation sweeping is based on varying combinations of the following criteria.
Sweeping by part parameter values entails traversing a set or range of values (sweep count
points) that you specify for eligible sweep parameters through a set of simulations. SigXplorer
calculates the total number of simulations based on the number of sweep count points
required for each sweep parameter.
Sweeping by driver slew rate is accomplished by selecting a set of FTS Mode target rates
from the Simulation Mode section of the Simulate tab in the Analysis Preferences dialog box.
Sweeping by sequencing active drivers is accomplished by selecting All Drivers sweep
mode to sequence through eligible IOCells with each one, in turn, driving a simulation.
When you specify multiple sweep criteria, SigXplorer employs a hierarchical ordering when
performing the simulations. For example, if you select multiple FTS Modes as well as several
part parameter values for sweeping, then all part parameter sweeps are executed for each
selected FTS Mode. Additionally, if you also select All Drivers, then part parameter sweeps
for each selected FTS Mode will execute as each driver activates in sequence.
October 2012
230
a linear range of number values specified as start and stop values and a step size for
iterating from start (the minimum value) to stop (the maximum value).
When you use an expression to define a parameter attribute value that references a second
parameter attribute value that is defined as a range or list, the first parameter tracks the
October 2012
231
Using an Expression
Expression listed, as well as parameters
referenced in the expression determine
the number of sweep count points.
October 2012
232
Partial sweep coverage is obtained by randomly sampling the full solution space using Monte
Carlo methods. To vary sample point sets, SigXplorer selects sweep count points based on
the specified random number seed.
Figure 7-9 The Sweep Sampling Dialog Box
Specifies full or partial
sweep coverage.
Sweep Results
When parametric sweeping is invoked, SigXplorer initializes SigNoise which sweeps through
the required series of simulations. Sweep results display the Results tab of the SigXplorer
spreadsheet.
The sweep report contains information on topology, swept elements, driver and load names,
impedance and delay variables. You can choose File Export Spreadsheet to save
simulation sweep results in a tab-delimited text file. The contents of this file are suitable for
import into an external spreadsheet program.
Waveforms
The parametric sweep function does not produce waveforms directly. However, when viewing
the sweep results, you can click to select a row in the spreadsheet which re-runs that single
simulation and opens SigWave to display the resulting waveforms.
October 2012
233
Waveforms
Topology file
SigNoise preferences
October 2012
234
For further details on parametric sweeps, refer to the SigXplorer User Guide.
October 2012
235
MIN_LINE_WIDTH
MAX_VIA_COUNT
PROPAGATION_DELAY
Creating ECSets
Create and assign ECSets to net objects using Constraint Manager. Within the PCB SI
environment, you can start Constraint Manger by:
Clicking
- or -
October 2012
236
Choosing Setup Electrical Constraint Spreadsheet from the PCB SI menu bar.
The Constraint Manager graphic user interface appears as shown in the following figure.
Figure 7-11 Constraint Manager ECSet Folder Object Hierarchy
ECSets reside in the
Electrical Constraint Set
object folder
Within Constraint Manager, you can capture any or all electrical constraints, including
topology-related information, in an ECSet. When you access an ECSet worksheet, objects
are presented hierarchically. The System is the top-most object with lowest precedence and
pin-pairs is at the bottom of the hierarchy with the highest precedence.
The Signal Integrity worksheet at the Electrical Constraint Set-level depicted in Figure 7-11
shows the following objects and ECSets:
System
BOARD_2_BCKPLN
Designs
Electrical
CSets
You define ECSets under the Electrical Constraint Set object folder. You can apply
constraints subsequently to net-related objects.
As design requirements change, you can:
edit the ECSet constraints. All net-related objects that reference the ECSet will
automatically inherit these changes.
October 2012
237
assign a different ECSet, one that reflects a different rule-set, to the net-related object.
define override properties on individual net-related objects. Cells with overrides are
colored blue.
You can also define an ECSet based on the characteristics of a net or Xnet. Defining netderived rules lets you create (or clone) rules based on the electrical characteristics of the
physical net in your design.
Note: An ECSet also acts as a container for custom constraints, custom measurements, and
custom stimulus. See Custom Constraints, Custom Measurements, and Custom Stimulus in
the Constraint Manager User Guide for more information on these unique constraint types.
For further details on creating ECSets, see Objects Create Electrical CSet in the
Allegro Constraint Manager Reference.
The following tables show electrical constraints listed in the ECSet worksheets within
Constraint Manager and the electrical behavior that they control.
Table 7-1 Electrical Constraints Affecting Automatic Routing
This constraint . . .
controls
Propagation Delay
Stub Length
Max Parallel
Coupled
Length
Gap
October 2012
238
controls
Overshoot
Max Xtalk
Max SSN
Referencing ECSets
When an ECSet is referenced from a net-related object, certain constraints are inherited while
others are actually applied to the objects. For example, you must apply topology information
since objects cannot simply inherit it due to the mapping that occurs between the ECSet and
the net objects.
Tip
When you click in a worksheet cell, the source of the information, the ECSet name
if inherited, appears in the status bar.
When an ECSet is updated from importing a topology template, the characteristics of the netrelated objects must match those of the topology template. Otherwise, Constraint Manager
will not refresh the ECSet with this new constraint information.
Choose Audit Constraints from the Constraint Manager menu bar to view a report of
constraints that have net-related overrides.
Choose Audit Electrical CSets from the Constraint Manager menu bar to view a
report of all objects referenced by each ECSet and to learn about inconsistencies
between the ECSet and the Nets or Xnets that reference the ECSet.
October 2012
239
All ECSets are presented under the appropriate Design or System and are referenced
only by objects within the same Design or System.
ECSets are referenced by any number of net-related objects (bus, differential pair, Xnet,
or net) but an object may reference only one ECSet.
Version Compatibility
Enabling this command creates same net crosstalk records in your design database.
Because such data is not supported in releases prior to 15.5.1, you must perform a database
down rev in later releases to remove these objects. For releases earlier than 15.5.1, attempts
to open designs containing same net DRC data will produce an error message and the design
will not open.
October 2012
240
8
Signal Integrity Analysis
Setting Simulation Preferences
Before analyzing a design for signal integrity and EMI, you should set up SigNoise to perform
simulation analysis according to your preferences.
To set simulation preferences
October 2012
241
October 2012
242
DeviceModels Tab
Using the DeviceModels tab in the Analysis Preferences dialog box, you can choose whether
or not SigNoise will use a default IOCell model when it encounters a driver or receiver pin
without an associated IOCell model for six specific pin use types: IN, OUT, BI, TRI, OCL, and
OCA. Your Cadence Signal Integrity product is shipped with the following IO cell models:
CDSDefaultOutput
CDSDefaultInput
CDSDefaultIO
CDSDefaultTristate
Each of the IO cell models listed above is available in four voltages: 5V, 3.3V, 2.5V, and 1.8V.
The voltage amount is appended to each model name; for example, the default output IO cell
model with 2.5V is CDSDefaultOutput_2p5v.
CDSDefaultOpenDrain
CDSDefaultOpenSource
The open drain and open source IO cell models are available only in 5V, therefore no voltage
indicator is indicated.
When you choose the Use Defaults option for missing component models in the Analysis
Preferences dialog box, you are setting up your simulation to use the 2.5V version of the
default IO cell models. (These defaults are located in the index file cds_models.ndx at
share/pcb/signal in your installation directory and accessed by way of the Signal Analysis
Library Browsers Add existing library > Standard Cadence Library option.)
You do not have to modify design databases created with pre-16.0 versions of Cadences
default IO cell models (CDSDefaultOutput, CDSDefaultInput, CDSDefaultIO, and
CDSDefaultTristate), all of which were 5V versions. These models are still supported.
For further details on this tab, refer to the signal_prefs command in the Allegro PCB and
Package Physical Layout Command Reference.
October 2012
243
InterconnectModels Tab
From the InterconnectModels tab on the Analysis Preferences dialog box, you can establish
default values to determine how interconnect is modeled during simulation both before and
after routing and how crosstalk and SSN analysis is performed.
Tip
You can increase simulation performance by limiting the number of .iml files saved
during simulation (defaults to 50). Choose Setup User Preferences, and click
the Signal_analysis folder. Then specify a value for
NUM_NEW_IML_MODELS_BEFORE_SAVE.
For further details on this tab, refer to the signal_prefs command in the Allegro PCB and
Package Physical Layout Command Reference.
October 2012
244
October 2012
245
Simulation Tab
From the Simulation tab on the Analysis Preferences dialog box, you can determine how
simulations are performed by default, and define glitch settings and fast, typical, and slow
simulation modes. You can also set driver and receiver pin measurement locations.
Figure 8-3 Analysis Preferences Dialog Box - Simulation Tab
October 2012
246
Tip
You can increase simulation performance by limiting the number of .iml files saved
during simulation (defaults to 50). Choose Setup User Preferences, and click
the Signal_analysis folder. Then specify a value for
NUM_NEW_IML_MODELS_BEFORE_SAVE.
Advanced Measurement Settings
Click the Advanced Measurements Settings button to display the Set Advanced
Measurement Parameters dialog box shown in Figure 8-4.
Figure 8-4 Set Advanced Measurement Parameters Dialog Box
From here you can set measurement parameters that govern glitch controls that can assist
you in finding correct cycles in your waveform. The glitch tolerance setting is a relative
percentage of the faster of the rising and falling edges of each IO cell buffer model you need
to measure. When a glitch occurs between the starting and ending points of a cycle, a glitch
violation is reported if the value of the glitch exceeds the tolerance percentage entered in the
Glitch Tolerance field. The glitch is not reported as a cycle. For information on how glitch
settings are established in SigXplorer, see the SigXplorer Command Reference.
Fast/Typical/Slow Definitions
Click the Fast / Typical / Slow Definitions button to display the Fast/Typical/Slow dialog box
shown in Figure 8-5.
For further details on this tab, refer to the signal_prefs command in the Allegro PCB and
Package Physical Layout Command Reference.
October 2012
247
You can represent device operating conditions by simulating in Fast, Typical, and Slow
modes. The device model data is given as minimum, typical, and maximum values. The Fast/
Typical/Slow dialog box shown in Figure 8-5 controls the selection of model values for each
simulation mode. For example, minimum Die Capacitance usually results in the fastest
operating mode.
Each tab on this dialog box lets you define fast, typical, and slow mode for a list of related
properties. Properties are listed in a column on the left. Each property is followed by an array
of pulldown menus, one each for slow, typical, and fast mode. These choices refer to the
minimum, typical, and maximum values given in the IOCell model.
In most cases the menu choices are minimum, typical, and maximum. On the General tab,
Ramp Rate choices are FastSlew, TypSlew, and SlowSlew. On the V/I Currents tab, all
the choices are TempCntl, Typ-Z, Low-Z, and High-Z.
If the simulation type is Temperature Controlled, the options in the Typical column of the form
are used, except for the V/I currents. In this case, the V/I curve used is interpolated between
the three given curves based on temperatures for each IOCell and the
VIReferenceTemperature parameter.
For further details on this dialog box, refer to the signal_prefs command in the Allegro
PCB and Package Physical Layout Command Reference.
October 2012
248
S-Parameters Tab
From the S-Parameters tab on the Analysis Preferences dialog box, you can
perform extrapolation of low frequency points down to the DC level of the S-Parameter,
and
This functionality is available in higher tiers of Allegro PCB SI and in SigXplorer PCB SI. In
post-layout designs, the functionality is dependent on ESpice models containing SParameters. For details on configuring the controls in this dialog box, refer to the
signal_prefs topic in the Allegro PCB and Package Physical Layout Command
Reference (for Allegro PCB SI) or the Analyze Preferences topic in the SigXplorer
Command Reference.
Info required on Fast Convolution Tolerance and Enforce Impulse Response Casualty.
October 2012
249
October 2012
250
Units Tab
From the Units tab on the Analysis Preferences dialog box, you can determine the units in
which certain parameters are presented in dialog boxes and reports.
For further details on this tab, refer to the signal_prefs command in the Allegro PCB and
Package Physical Layout Command Reference.
Figure 8-7 Analysis Preferences Dialog Box - Units Tab
October 2012
251
EMI Tab
From the EMI tab on the Analysis Preferences dialog box, you can establish basic setup
information for EMI single net simulation. Use the Standard Preferences to establish an
environment appropriate for EMI simulation during design.
Use the information in the Advanced Preferences area to view whether advanced EMI
simulations are selected and to establish advanced preferences for EMI single net simulation.
The advanced EMI preferences specify general control settings for EMI computations,
establish an OATS test environment appropriate for evaluation of an experimental setup, and
define values for computation of near field EMI effects.
For further details on this tab, refer to the signal_prefs command in the Allegro PCB and
Package Physical Layout Command Reference.
Figure 8-8 Analysis Preferences Dialog Box - EMI Tab
October 2012
252
October 2012
253
254
October 2012
255
Pre-Route Analysis
Pre-route signal integrity analysis comes after preliminary placement and before routing.
It is very beneficial to perform this analysis from a time-to-market standpoint. Many signal
integrity and timing problems can be quickly identified and corrected before any time and
effort is invested in routing the design. It can be increasingly costly and time-consuming to
address these issues later on in the design cycle.
Unrouted interconnect is modeled based on your assumptions for percent Manhattan
distance, characteristic impedance, and propagation velocity. You can quickly simulate the
entire layout and compare it against the electrical constraints to identify the signals that are
marginal or failing. This determination should include signals that span multiple layouts. An
example of this is a signal running from a connector on one board through a cable to a
connector on another board. Rapid simulation is a key time saver when a layout has
thousands of nets. This allows you to focus attention on problem nets first and avoid wasting
time on signals that are initially within constraints.
In pre-route signal integrity analysis you look for the following.
October 2012
256
257
Specify Simulations
Simulate
Check Reports
Add Terminators
Display Waveforms
Procedure:
1. Select signals for simulation by:
clicking to select a ratsnest line or a pin in the design window.
or
specifying a net by name in the Signal Analysis dialog box.
or
specifying a netlist file by name in the Signal Analysis dialog box or selecting the nets
through the Net Browser dialog box.
2. Select the type of analysis results to create.
Click Reports in the Signal Analysis dialog box to present the analysis results as text
reports. This opens the Report Generator.
or
Click Waveforms in the Signal Analysis dialog box to present the analysis results as
waveform files.
October 2012
258
October 2012
259
Edit Route
Check Reports
Display Waveforms
During pre-route analysis, SigNoise built a simulation circuit model. It used the device models
that you specified and the hypothetical interconnect models that it approximated from the
percent Manhattan distance, the default impedance, and the default propagation velocity that
you specified. Now that the critical nets are routed, you can analyze them more precisely, this
time using the actual etch instead of the Manhattan-based estimates.
Procedure:
1. You can begin critical net analysis with interconnect library setup to specify where you
want SigNoise to save the interconnect models it creates. You might also create a
Parasitics report for a critical net.
2. You can also scan the design for problem areas using the same steps you followed in
pre-route analysis.
October 2012
260
Post-Route Verification
During post-route verification, you generate your final simulations and create reports using
PCB SI. These reports enable you to verify and confirm that your design is performing as
originally intended.
Rather than being the primary vehicle for identifying SI issues, post-route verification is
intended to serve as a signal integrity sign-off. Due to constraint-driven design, problems
uncovered during this design phase tend to be isolated and correctable. You simply extract
the problem nets individually into SigXplorer, analyze them in-depth, then make the
necessary adjustments to the design.
You use the SigNoise simulator to perform post-route analysis for reflection, crosstalk, and
SSN (simultaneous switching noise). SigNoise is the simulation engine used by PCB SI.
You can also perform all of these analysis across multiple printed circuit boards using a
special library model called a DesignLink. As you perform these simulations, you save the
waveforms in the current simulation directory along with any reports that you create. This lets
you organize your results for archival and future reference.
During post-route signal integrity analysis, you look for:
the effect of neighboring interconnects that you have added since critical nets were
routed.
The following figure and instructions describe a typical procedure for post-route analysis.
October 2012
261
Edit Route
Check Reports
Display Waveforms
Procedure:
1. Begin with the parasitic analysis.
2. After parasitic analysis you can scan the design for problem areas or proceed to detailed
analysis of individual nets.
You can run single or multi-line simulations depending on whether you want to take
neighboring nets into account.
3. After signal integrity simulation you can perform one or more of the following tasks.
Run source synchronous reflection and comprehensive bus analysis for all Xnets of
a selected bus and their strobe/clock Xnets. See Source Synchronous Bus Analysis
on page 269 for details.
Look at the Delay, Ringing, Crosstalk, SSN, and EMI Single Net reports. See
Analyzing to Generate Text Reports on page 286 for details.
Use the Conductor Cross Section window (sigxsect) to look at geometric displays of
the models SigNoise writes for interconnect segments. See Conductor Cross
Sections on page 349 for further details.
Use Power Integrity to analyze the design for power delivery performance. See
Appendix C, Power Delivery Analysis for further details.
October 2012
262
Use Signal Quality Screening to determine signal quality of a system and perform
focused analysis resulting in improved designs in a shorter time.
Use EMControl to analyze the design for EMI performance. For details on using
EMControl, refer to the EMControl User Guide.
Note: Because of the high volume of simulations often performed for post-route analysis, you
have the option to run post-route analysis in batch mode rather than from the UI. See Batch
Simulation on page 266 for further details.
Interactive Simulation
Using SigNoise interactively, you can quickly examine or scan one or more signals by
performing Reflection simulations and Crosstalk estimations on the entire design or on large
groups of signals. You can also probe individual signals, or small groups of signals, where you
want to delve into specific signal behaviors in detail through the generation of discrete text
reports or waveforms.
Text Reports
There are several pre-formatted text reports available to choose from or you can generate
your own custom reports based on specific criteria.
Waveforms
SigWave displays waveform data for all pins in a simulation circuit. The waveform data shows
the waveform of a signal on a driver-receiver pair with both the package pin and the internal
die location (denoted by the suffix i after the pin number) being displayed. This allows you to
view the effects of the package parasitics. If the parts on the SIgXplorer canvas do not have
package parasitics (indicated by a box surrounding the element), then only the waveforms at
the pins are displayed.
Conductor Cross Sections
SigNoise generates models for the interconnect in your design. The SigNoise field solvers
generate the parasitic values in the model. The Conductor Cross Section window shows you
a three-dimensional view of the interconnect and its parasitic values.
If two interconnect segments are within the distance specified in the geometry window
parameter and if you are running multi-line simulations, SigNoise writes a model that includes
both interconnect segments. You can see both segments in the Conductor Cross Section
October 2012
263
Perm highlight
October 2012
264
Use the Signal Analysis dialog box as the starting point for performing signal integrity and EMI
emissions simulations. The Signal Analysis dialog box enables you to select nets and driverreceiver combinations for analysis.
You can also display the Signal Analysis Waveform and Report Generator dialog boxes from
the Signal Analysis dialog box. In these dialog boxes, you specify which waveforms or reports
to generate. SigNoise performs the necessary simulations accordingly.
You can also run the Signal Quality Screening process from this dialog box.
The SigXplorer topology editor and the sigxsect interconnect cross-section viewer are also
launched from the Signal Analysis dialog box. Use SigXplorer to perform what-if studies on
different driver and receiver combinations and transmission line scenarios. Use sigXsect to
display cross-sections of routed interconnect segments.
For details on specific options and buttons in the Signal Analysis dialog box or for procedures
regarding interactive analysis, refer to the signal_probe command in the Allegro PCB
and Package Physical Layout Command Reference.
Selecting Nets and Pins for Simulation
In the Signal Analysis dialog box, you can select nets for analysis in several different ways:
Click on single ratsnest lines, routed etch, etch, or pins in the design window.
- or -
October 2012
265
Click Net Browser in the Signal Analysis dialog box to select groups of nets by browsing
for netlist files.
- or Create a netlist file with a text editor.
Upon selection of a net or a pin pair, the names of the nets and driver, and receiver pins
appear in the Nets, Driver Pins, and Load Pins list boxes in the Signal Analysis dialog box.
Also, the PCB Editor message line or the PCB SI message log window display messages that
tell you SigNoise is gathering extended net information for the nets that you have selected.
Batch Simulation
In addition to performing signal integrity analysis interactively from the UI, you can also use
SigNoise in batch mode. See the information on Batch Generation in each of the text report
sections within Analyzing to Generate Text Reports on page 286 for more information.
Crosstalk Analysis
You can choose between two modes of crosstalk analysis: estimated and simulated.
Estimated crosstalk lets you quickly scan your design to identify problem areas for
further, detailed, crosstalk simulations. Estimated crosstalk constructs a table of
crosstalk data based on a series of crosstalk simulations performed on the specified
traces at various trace spacings.
Detailed crosstalk analysis uses multiline simulations for more detailed and accurate
analysis.
Both crosstalk estimation and detailed crosstalk simulation can be timing-driven. Performing
timing-driven crosstalk analysis using crosstalk timing windows greatly increases real-world
accuracy.
Timing-Driven Crosstalk Analysis
SigNoise lets you perform timing-driven crosstalk analysis using crosstalk timing windows.
Timing-driven crosstalk analysis can both minimize crosstalk false alarms and reduce the
October 2012
266
XTALK_ACTIVE_TIME
XTALK_SENSITIVE_TIME
XTALK_IGNORE_NETS
You can assign the XTALK_ACTIVE_TIME property to a net to specify the times during which
that net can generate crosstalk on a neighbor net. If a net has no attached
XTALK_ACTIVE_TIME property, SigNoise assumes that the net can generate crosstalk at all
times.
You can assign the XTALK_SENSITIVE_TIME property to specific nets for even greater
accuracy to indicate times when that net is susceptible to crosstalk and when it is not.
You can use the XTALK_IGNORE_NETS property to tell a net or a net group to disregard
other nets or net groups as a source of crosstalk. For example, use this property when you
want to disregard crosstalk between bits on a synchronous bus.
A Simple Example
In Crosstalk simulations, the XTALK_ACTIVE_TIME, XTALK_SENSITIVE_TIME, and
XTALK_IGNORE_NETS crosstalk properties can be used to determine how to stimulate
multi-line circuits for crosstalk analysis.
For example, assume a victim net being analyzed for crosstalk had 2 aggressor nets, and the
following properties.
neighbor #1 - XTALK_ACTIVE_TIME = 7 - 15
Neighbor #2 is not stimulated in the circuit since its active time does not overlap with the victim
net's sensitive time. In this case, stimulating both aggressor nets together would be overly
pessimistic and not indicative of real-world behavior.
October 2012
267
EMI Analysis
Simulation
SigNoise provides EMI single net simulations which allow you to compute differential mode
radiated electric field emissions from traces. Simulation results include a graphical display of
the emission spectrum and a text report summarizing emission details and compliance
results.
Using EMControl with SigNoise
You can use SigNoise in conjunction with EMControl to perform EMI analysis. Some of the
signal routing and signal quality rules provided with EMControl employ SigNoise simulations
and SigNoise device models during analysis for EMI. Using EMControl enables design
engineers to begin evaluating their designs for EMI early in the design process with increased
accuracy throughout design development.
For further information on using EMControl to perform EMI analysis, refer to the EMControl
User Guide.
Multi-Board Analysis
SigNoise lets you perform multi-board (or system level) simulation for a design that is made
up of more than one printed circuit board (PCB). When a net extends to more than one PCB,
SigNoise can analyze and report the behavior of a signal as it propagates from a driver on
one PCB to a receiver on another.
Nets that span multiple PCBs are analyzed using a multi-board system configuration. A multiboard system configuration contains a pin map to hook up connector pins on one PCB to
connector pins on another. When a circuit is built for a system extended net (SXnet) that
spans multiple PCBs, SigNoise traces out the interconnect to the connector pin, then finds
the system connection in the device library and jumps to the next PCB to continue tracing out
the circuit. A system configuration can contain a model to represent the mated connector or
cable that physically connects the two PCBs. One circuit, spanning the multiple PCBs, is
generated for the entire Xnet, allowing full system-level simulations to be done.
See Appendix B, System-Level Analysis for further details.
October 2012
268
assign Xnets to multiple buses that are used only for bus simulations
set different on-die termination (ODT) settings for different dual in-line memory modules
(DIMMs)
create derating values for all input signals to your calculated setup and hold times
October 2012
269
Because source synchronous bus performance depends on relative delays, which tend to be
much smaller than the absolute delays associated with common clock buses, a much higher
performance can be achieved using source synchronous buses. This enhanced performance
becomes critical to high-bandwidth memory systems using upwards of 800MHz, because
common clock buses can typically accommodate only 150 MHz.
Note: Simulations that you perform in the context of a source synchronous flow do not
support Odd/Even/Static aggressor modes. Rather, custom stimuli that you have assigned to
the victim and aggressor Xnets are referenced.
Support for Address Bus Topology
Address topologies are as important to timing simulation as data topologies. The bus analysis
setup helps you associate a strobe or clock net with each bit of the bus being simulated. As
the address Xnet connects to all the devices (DRAMs) in the memory banks (DIMMs),
multiple clocks need to be associated with each address signal. The source synchronous bus
analysis functionality supports assignment of multiple clocks to one address signal. When a
specific clock/strobe is selected, the clock Xnets assigned to another address signal are
available in the Unassigned Bus Xnets list. As a result, these clocks can be assigned to
multiple signals.
Note: The bus analysis solution is applicable to all source synchronous buses and not limited
to memory interfaces.
Derating Tables for Input Signals
To maximize the reliability of your simulations, you can create derating tables to establish
maximum values for your calculated input setup and input hold times for all input signals. You
can also create separate derating tables for address signals. Your derating values will depend
on the respective signals nominal or tangential slew rate, as well as the slew rates of your
clocks/strobes.
October 2012
270
October 2012
271
Note: You can find a sample derating file, derating_table_file.dat, at the following
location:
<your_install_dir>\share\pcb\examples
A derating file consists of the following four sections: CLOCK_SLEW, DATA_SLEW,
SETUP_DERATING_TABLE, and HOLD_DERATING_TABLE. Each section must exist in every
derating file and must be presented in the order shown in the sample file.
Descriptions of the various elements of the derating table are:
October 2012
272
CLOCK_SLEW
DATA_SLEW
0.4,
0.5,
0.6,
0.7,
0.8,
0.9,
1.0,
1.5,
2.0
October 2012
273
SETUP_DERATING_ The next non-comment, non-blank line begins the Setup Data
TABLE
Matrix. This entry must contain the keyword
SETUP_DERATING_TABLE. Each line contains a sequence of
numeric values representing the derating numbers as defined in
the vendor table for setup.
The number of entries in each row must be equal to the number of
entries in the CLOCK_SLEW. Similarly, the number of rows must be
equal to the number entries in the DATA_SLEW list.
The values are comma separated and white space tolerant and
are expressed in Picoseconds (ps). For each 0 value defined in
the vendor table, a 0 must be specified in the matrix. A NULL
value or white spaces are not acceptable. The matrix must be fully
populated.
Example:
October 2012
274
HOLD_DERATING_T The next non-comment, non-blank line begins the Hold Data
ABLE
Matrix. This entry must contain the keyword
HOLD_DERATING_TABLE. Each line contains a sequence of
numeric values representing the derating numbers as defined in
the vendor table for hold.
The number of entries in each row must be equal to the number of
entries in the CLOCK_SLEW list. Similarly, the number of rows must
be equal to the number entries in the DATA_SLEW list.
The values are comma separated and white space tolerant and
are expressed in Picoseconds (ps). For each 0 value defined in
the vendor table, a 0 must be specified in the matrix. A NULL
value or white spaces are not acceptable. The matrix must be fully
populated.
Example:
SETUP DERATING
TABLE tS
Hold Derating Table is a Hold Derating Values matrix of size M x N where M is the
tH
number of rows corresponding to the DATA_SLEW list values and N
is the number of columns corresponding to the CLOCK_SLEW list
values.
To complement the pre-layout source synchronous bus analysis functionality in SigXplorer,
PCB SI offers post-layout GUI-based analysis tools.
October 2012
275
Analyze Bus Setup lets you identify the source synchronous buses in your layout,
create buses for simulation purposes only, and provide data required for you to perform
the analysis. You enter this data by way of the Signal Bus Setup and the Stimulus Setup
dialog boxes.
Analyze Bus Simulate lets you perform the actual simulation of the source
synchronous bus
You perform each step in this setup-and-simulate flow using the dialog boxes illustrated in
Figures 8-19 and 8-20.
Figure 8-19 Signal Bus Setup Dialog Boxes
October 2012
276
The Signal Bus and Stimulus Setup dialog boxes also support Import/Export functionality that
allows you to import bus values from a .csv file in spreadsheet format into the dialog boxes
and to export values set up in the dialog boxes to a .csv file. You can view the results of
source synchronous bus analysis in the form of standard reflection summary reports,
waveforms, and circuit files.
Information generated in the reports include
worst case values for setup/hold, noise margin, and overshoot within a cycle
For complete information on the controls in all these dialog boxes as well as the
recommended procedure for performing setup and simulation of source synchronous buses,
see signal bus setup and signal bus sim in the Allegro PCB and Package
Physical Layout Command Reference.
Calculating Time Margins
The bus analysis report contains all the raw data needed to determine timing closure for a
source synchronous interface. The required calculations are performed to arrive at a pass/fail
timing test and to report the time margin information in the bus analysis report file. The report
October 2012
277
Since:
(Equations 3
and 4
where:
Tsetup_margin
Thold_margin
Tsetup_simulated/
Thold_simulated
Tsetup_req
Thold_req
Tsetup_derated/
Thold_derated
October 2012
278
Toffset
Tvb
Tva
UI
October 2012
279
You specify the Tvb and Tva values for each driver to perform source synchronous timing
calculation in the Specify Component Parameters tab of the Signal Bus Setup dialog.
Additionally, you can assign the Setup and Hold requirements for each active receiver in this
dialog box. By default, the Setup Requirement and Hold Requirement values are set to zero.
October 2012
280
Option
Description
Filters
Assign
Export/Import
October 2012
Analysis Results
SigNoise provides analysis results in the following forms.
October 2012
282
Description
Xnet
StrobeXNet
Drvr
Rcvr
StrobePin
October 2012
283
Description
DataBitState
The state of the data bit. The values are High and Low.
SetupMargin
HoldMargin
SetupTime
The simulated time which you get by subtracting the time when
data signal reaches the high threshold voltage value (before the
sampling edge of the strobe) from the time when strobe reaches
reference voltage level.
SetupCycle
SetupDataSlew
The rate of change of data signal that is voltage w.r.t time and it is
denoted by V/ns.
SetupClkSlew
The rate of change of clock signal that is voltage w.r.t time and it
is denoted by V/ns.
SetupDerVal
October 2012
284
Description
SetupRequirement
Tvb
HoldTime
HoldCycle
HoldDataSlew
The rate of change of data signal that is voltage w.r.t time and it is
denoted by V/ns.
HoldClkSlew
The rate of change of clock signal that is voltage w.r.t time and it
is denoted by V/ns.
HoldDerVal
HoldRequirement
October 2012
285
Description
Tva
Description
Reflection Summary
Delay
Ringing
Gives overshoot and noise margin values for selected nets. See
Ringing Report on page 313.
Parasitics
October 2012
286
Description
SSN
Segment-based
Crosstalk Estimation
Crosstalk Summary
Crosstalk Detailed
Click Reports in the Signal Analysis dialog box. See Figure 8-15 on page 265.
The Analysis Report Generator dialog box displays as shown in Figure 8-23 on
page 288.
October 2012
287
October 2012
288
October 2012
289
select whether or not to use timing windows and save circuit files and waveform files.
display the Stimulus Setup dialog box to assign custom stimulus parameters.
For details on specific options and buttons in the Analysis Report Generator dialog box or for
a list of procedures regarding simulation text report generation, refer to the signal probe
command in the Allegro PCB and Package Physical Layout Command Reference.
October 2012
290
Description
-b
-f
A list-of-nets file
-r
-s
-o
Interactive Generation
Selection of the Reflection Summary option in the Analysis Report Generator dialog box
specifies a Reflection summary report for selected nets. See Figure 8-23 on page 288.
Sample Reflection Summary Report
Note: Some report sections are split to fit the page.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Reflection Summary Sorted By Worst Settle Delay
#
Wed Feb
9 14:13:48 2004
################################################################################
********************************************************************************
Delays (ns), Distortion (mV), (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
XNet
Drvr
Rcvr
NMHigh
NMLow
OShootHigh
------------
------------
------------
------------
------------
------------
1 memory A4
memory J47 35
memory U18 29
678.7
-84.46
4001
1 memory A4
memory J47 35
memory U3 29
991
819.1
3991
1 memory -CAS
-30.5
769.2
3984
1 memory A0
memory J47 33
643.1
-39.78
3994
1 memory -CAS
-24.21
777.6
3976
1 memory BA0
624.8
-29.29
3979
October 2012
memory U14 23
291
....
Sample Report (continued)
********************************************************************************
********************************************************************************
OShootLow
SwitchRise
SwitchFall
SettleRise
SettleFall
Monotonic
------------
------------
------------
------------
------------
------------
334.6
4.667
2.01
8.236 *
3.169 *
FAIL
313.4
4.689
2.027
8.183 *
3.155 *
FAIL
253.1
4.828
2.037
8.17 *
3.145 *
FAIL
250.6
4.769
1.98
8.159 *
3.115 *
FAIL
248.4
4.843
2.04
8.135 *
3.136 *
FAIL
273.8
4.687
1.923
8.133 *
3.151 *
FAIL
....
*******************************************************************************
Pulse Data Per Xnet
*******************************************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
------------
------------
------------
------------
1 memory WP
50MHz
0.5
1 memory
UN4CAP226PA0
50MHz
0.5
1 memory
UN4CAP225PA0
50MHz
0.5
1 memory SDA
50MHz
0.5
1 memory SCL
50MHz
0.5
1 memory SA2
50MHz
0.5
....
*****************************************
Description of column abbreviations
October 2012
292
Column
Description
------------
------------------------
XNet
Extended net
Drvr
Driver Pin
Rcvr
Receiver Pin
NMHigh
NMLow
OShootHigh
Maximum Overshoot
OShootLow
Minimum Overshoot
Measurement Location
Pin and/or die measurement location for driver and receiver can be determined from the DML
model defined in your setup, from the external pin node, or from the internal die node, if
present. (Die pad measurements are relevant only to Reflection, Delay and Ringing reports
as well as related Custom and Comprehensive reports.) You can set these choices in the
signoise batch command or by way of the Analysis Preferences dialog box.
Note: Editing measurement locations by way of the defined DML model entails manually
changing the DML file by adding or deleting the appropriate keywords using the correct
syntax in the proper section. Pin and die measurement locations are made at the external pin
node and internal die node, respectively.
To distinguish in the report whether the measurement is being made at the pin pad or the die
pad, the following convention is used:
If taken at the pin pad, the pin pad measurement name is identical to the pin name (for
example, PIN5).
If taken at the die pad location, the pin name is displayed with an i appended to it (for
example, Pin5i).
The following figure illustrates a reflection summary report displaying die pad location results.
October 2012
293
The Reflection Data Simulation section of the Analysis Report Generator for Standard
reports (Figure 8-26)
October 2012
294
The Stimulus selections section of the Analysis Waveform Generator for Reflection
waveforms (Figure 8-27)
October 2012
295
The Stimulus Setup dialog box (Figure 8-28) allows you to assign predefined custom stimuli
to all drivers in your current simulation through. From there, pre-loaded nets and extended
nets that you have selected from your board can be assigned frequency, cycle count, offset,
jitter, and bit pattern values. You can save these settings to a .csv-formatted spreadsheet file.
Modifications that you make in the spreadsheet for existing nets can then be imported back
into SI.
Note: This functionality supersedes the .inc custom stimulus files which continue to be
supported, but will be overridden with the values you set in the Stimulus Setup dialog.
October 2012
296
Report Computations
Delay Criteria
Propagation Delay
Propagation delay is the summation of all calculated transmission line delays along the
shortest path between two points. Although propagation delay is a calculated value, TLsim
(the simulator) performs the calculation since it is the only tool that has a system level view
of the transmission line paths.
October 2012
297
October 2012
298
For a falling edge, the simulation measurement is from time zero to when the receiver first
crosses Vih, the high voltage switching threshold. The associated falling buffer delay of the
driving IOCell is subtracted from this measurement value to produce the reported first switch
delay.
For a falling edge: First Switch = time to reach Vih - buffer delay
Figure 8-31 Falling Edge Switch Delay Measurement Points
October 2012
299
For a falling edge, the simulation measurement is from time zero to when the receiver first
crosses Vih, the high voltage switching threshold. The associated falling buffer delay of the
driving IOCell is subtracted from this measurement value to produce the reported first switch
delay as shown in Figure 8-33 on page 301.
October 2012
300
October 2012
301
Falling Edge
Rising Edge
October 2012
302
For a falling edge, low state noise margin measures how close the low state signal comes to
the low switching threshold. This measurement is taken after crossing the low switching
threshold, and before the onset of a rising transition that crosses both thresholds (rising side
of the pulse).
October 2012
303
October 2012
304
Overshoot Simulation
SigNoise performs either a Reflection or a Comprehensive simulation to collect overshoot
measurements which are used for the MAX_OVERSHOOT constraint. Note that for rising
edges, the high state overshoot is greater than MAX_OVERSHOOT and for falling edges, the
low state overshoot is less than MAX_OVERSHOOT.
Non-Monotonic Edge
Non-monotonic edge is a PASS or FAIL status value indicating whether an edge is monotonic
or not. A rising edge is monotonic if each next point in time has a greater voltage value than
the previous point until it crosses Vih. A falling edge is monotonic if each next point in time
has a smaller voltage value than the previous point until it crosses Vil.
A non-monotonic edge is considered significant for clock signals. The presence of a nonmonotonic edge is regarded as non-monotonic switching.
For a rising edge, a non-monotonic edge is a signal reversal that occurs after crossing the low
voltage threshold, Vil, but before the signal reaches the high voltage threshold, Vih.
October 2012
305
For a falling edge, a non-monotonic edge is a signal reversal that occurs after crossing the
high voltage threshold, Vih, but before the signal reaches the low voltage threshold, Vil.
Figure 8-39 Falling Non-Monotonic Edge Measurement Points
October 2012
306
Definition
Format
MAX_OVERSHOOT
MAX_FINAL_SETTLE Limits the time to reach and stay maximum value:minimum value
above/below the high/low
switching threshold voltage.
EDGE_SENS
rising:falling:both
Item
MIN_FIRST_SWITCH
October 2012
307
Delay Report
The delay report presents simulation results for propagation delays, switch delays (rising and
falling edge), and settle delays (rising and falling edge). It also reports a pass or fail status for
first incident rise and fall and monotonic rise and fall for selected nets.This report is good for
checking clock nets, particularly to detect non-monotonic rise or fall.
Important
You can use the delay values and First Incident Switch heuristic to check data nets,
but they are not a substitute for full-path-based timing analysis which is
recommended. It is possible that adjusting interconnect lengths or terminating to
achieve first incidence switching will solve problems found by the delay report.
You can generate the delay report in either batch mode or from the Analysis Report Generator
dialog box.
Batch Generation
Following is an example of a batch command which would generate a delay report on a list
of nets with comprehensive odd simulations using typical FTS mode:
signoise -f my_nets.txt -r Delay -n Odd -s Comprehensive -o delay_rpt1.txt my.brd
Description
-b
-f
A list-of-nets file
-r
-n
-s
-o
Interactive Generation
Selecting the Delay option in the Analysis Report Generator dialog box specifies a delay
report for selected nets. See Figure 8-23 on page 288.
October 2012
308
################################################################################
#
#
#
Report:
################################################################################
********************************************************************************
Delays (ns) (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
XNet
Drvr
Rcvr
PropDly
SwitchRise
------------
------------
------------
------------
------------
1 memory A4
memory J47 35
memory U20 29
0.7089
5.188
1 memory -CAS
memory U9 17
0.6992
5.376
1 memory A3
memory U12 26
0.6884
5.192
1 memory CLKE1
memory R4 2
memory U12 37
0.6876
3.189
1 memory CLKE1
memory R4 2
memory U20 37
0.6875
3.197
1 memory A2
memory J47 34
memory U12 25
0.6869
5.225
....
************************************************
************************************************
SwitchFall
SettleRise
SettleFall
------------
------------
------------
2.415
7.847 *
2.749 *
2.404
7.89 *
2.8 *
2.353
7.786 *
2.681 *
2.293
5.881 *
2.649 *
2.308
5.88 *
2.641 *
2.379
7.86 *
2.716 *
October 2012
309
....
(Typ FTSMode)
********************************************************************************
XNet
Rcvr
FirstIncRise
FirstIncFall
MonotonicRise
------------
------------
------------
------------
------------
1 memory WP
memory U11 7
PASS
PASS
PASS
1 memory WP
memory U10 7
PASS
PASS
PASS
1 memory CLKE1
memory U20 37
PASS
PASS
PASS
1 memory CLKE1
memory U19 37
PASS
PASS
PASS
1 memory CLKE1
memory U12 37
PASS
PASS
PASS
1 memory CLKE1
memory U14 37
PASS
PASS
PASS
....
****************
****************
MonotonicFall
-----------PASS
PASS
PASS
PASS
PASS
PASS
....
*********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
*********************************************************************************
Drvr
October 2012
IOModel
Volmax
310
Vohmin
RiseSlew
FallSlew
------------
------------
------------
------------
------------
------------
memory R6 1
CDSDefaultOutput
100 mV
4500 mV
3333
3333
memory C23 1
CDSDefaultOutput
100 mV
4500 mV
3333
3333
memory R3 1
CDSDefaultOutput
100 mV
4500 mV
3333
3333
memory RP5 2
CDSDefaultOutput
100 mV
4500 mV
3333
3333
memory U5 11
CDSDefaultOutput
100 mV
4500 mV
3333
3333
memory U5 47
CDSDefaultOutput
100 mV
4500 mV
3333
3333
....
Rcvr
IOModel
Vilmax
Vihmin
------------
------------
------------
------------
memory U11 7
CDSDefaultInput
2000 mV
3000 mV
memory U10 7
CDSDefaultInput
2000 mV
3000 mV
memory U20 37
CDSDefaultInput
2000 mV
3000 mV
memory U19 37
CDSDefaultInput
2000 mV
3000 mV
memory U12 37
CDSDefaultInput
2000 mV
3000 mV
memory U14 37
CDSDefaultInput
2000 mV
3000 mV
....
*************************************************************************
Pulse Data Per Xnet
*************************************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
------------
------------
------------
------------
1 memory WP
50MHz
0.5
1 memory UN4CAP226PA0
50MHz
0.5
1 memory UN4CAP225PA0
50MHz
0.5
1 memory SDA
50MHz
0.5
October 2012
311
1 memory SCL
50MHz
0.5
1 memory SA2
50MHz
0.5
....
****************************************************
Description of column abbreviations
****************************************************
Column
Description
------------
------------
DefImp
Default Impedence
DefPropVel
DiffPairMate
Drvr
Driver Pin
FTSMode
Fast/Typical/Slow Mode
FallDly
FallSlew
FirstIncFall
FirstIncRise
GeomWin
Geometry Window
IOModel
JTemp
MhtPercent
PropDly
Propagation Delay
Rcvr
Receiver Pin
RiseDly
RiseSlew
SettleFall
SettleRise
SwitchFall
SwitchRise
Vihmin
Vilmax
October 2012
312
Vohmin
Volmax
XNet
Extended Net
Report Computations
The Delay report computations are the same as those for the Reflection Summary Report on
page 290. For further information, see Report Computations on page 297.
Ringing Report
The ringing report shows noise margin as well as overshoot high and low values for all
selected nets. It also identifies IOCell characteristics that you have applied. This report
requires either a Reflection or a Comprehensive simulation for each driver pin.
Use this report to detect impedance discontinuities that are significant due to the high slew
rates of the drivers. Usually these problems are corrected by changing terminations, topology,
or driver characteristics.
The ringing report also includes the Extended Net Distortion section containing the following:
A subsection for each driver on the extended net and the noise margin and overshoot
information for the driver-receiver pair.
Pins on the extended net and buffer model information about the pins.
You can generate the ringing report either in batch mode or interactively from the Analysis
Report Generator dialog box.
Batch Generation
Following is an example of a batch command which would generate a ringing report on a list
of nets with Fast/Slow FTS mode:
signoise -f my_nets.txt -r Ringing -m Fast/Slow -o ring_rpt1.txt my.brd
Description
-b
-f
A list-of-nets file
October 2012
313
Description
-r
-m
-o
Interactive Generation
Selecting the Ringing option in the Analysis Report Generator dialog box specifies a ringing
report for selected nets. See Figure 8-23 on page 288.
Sample Report
Note: Some report sections are split to fit the page.
################################################################################
#
#
#
Report:
################################################################################
********************************************************************************
Distortion (mV) (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
XNet
Drvr
Rcvr
NMHigh
NMLow
OShootHigh
------------
------------
------------
------------
------------
------------
1 memory SDA
memory U10 5
memory U11 5
1960
1943
5007
1 memory DQM1
memory J47 29
memory U5 39
1936
1936
5012
1 memory -CS1
1954
5003
1 memory -CS3
1936
5013
1 memory SCL
memory J47 83
memory U10 6
1930
1931
5013
1 memory DQM1
memory J47 29
memory U3 39
1964
1928
5002
....
October 2012
314
***********
***********
OShootLow
------------471
-595.8
-682
-695.6
-138.7
-626.7
....
********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
********************************************************************************
Drvr
Device
IOModel
Volmax
------------
------------
------------
------------
memory R6 1
RES_603-0,1A,603,E-603
CDSDefaultOutput
100 mV
memory C23 1
CAP_603-10PF,5%,50V,603,E-603
CDSDefaultOutput
100 mV
memory R3 1
RES_603-10,5%,603,E-603
CDSDefaultOutput
100 mV
memory RP5 2
RPAK4C-4R_SM-10,5%,A1206-SM
CDSDefaultOutput
100 mV
memory U5 11
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultOutput
100 mV
memory U5 47
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultOutput
100 mV
....
**************************************************************
**************************************************************
Vohmin
RiseSlew
FallSlew
JTemp
DiffPairMate
-----------
------------
------------
------------
------------
October 2012
315
4500 mV
3333
3333
NA
NA
4500 mV
3333
3333
NA
NA
4500 mV
3333
3333
NA
NA
4500 mV
3333
3333
NA
NA
4500 mV
3333
3333
NA
NA
4500 mV
3333
3333
NA
NA
....
********************************************************************************
Load I/O Characteristics
********************************************************************************
Rcvr
Device
IOModel
Vilmax
------------
------------
------------
------------
memory U11 7
NM24C03_SSOP-UNKNOWN,E-SSOP
CDSDefaultInput
2000 mV
memory U10 7
EPROMSERIAL_SOI8-624664-301-SOA
CDSDefaultInput
2000 mV
memory U20 37
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultInput
2000 mV
memory U19 37
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultInput
2000 mV
memory U12 37
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultInput
2000 mV
memory U14 37
SDRAM2MX4BX8_SSOP-SDRAM2MX4BX8A
CDSDefaultInput
2000 mV
....
************************
************************
Vihmin
DiffPairMate
3000 mV
NA
3000 mV
NA
3000 mV
NA
3000 mV
NA
3000 mV
NA
3000 mV
NA
October 2012
316
....
************************************************************************
Pulse Data Per Xnet
************************************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
------------
------------
------------
------------
1 memory WP
50MHz
0.5
1 memory UN4CAP226PA0
50MHz
0.5
1 memory UN4CAP225PA0
50MHz
0.5
1 memory SDA
50MHz
0.5
1 memory SCL
50MHz
0.5
1 memory SA2
50MHz
0.5
....
***********************************************
Description of column abbreviations
***********************************************
Column
Description
------------
------------
DefImp
Default Impedence
DefPropVel
DiffPairMate
Drvr
Driver Pin
FTSMode
Fast/Typical/Slow Mode
FallSlew
GeomWin
Geometry Window
IOModel
JTemp
MhtPercent
NMHigh
NMLow
October 2012
317
OShootHigh
Maximum Overshoot
OShootLow
Minimum Overshoot
Rcvr
Receiver Pin
RiseSlew
Vihmin
Vilmax
Vohmin
Volmax
XNet
Extended Net
Report Computations
The Ringing report computations are the same as those for the Reflection Summary Report
on page 290. For further information, see Report Computations on page 297.
October 2012
318
Description
-f
A list-of-nets file
-r
-o
Interactive Generation
Selecting the Single Net EMI option in the Analysis Report Generator dialog box specifies
a single net EMI report for selected nets. See Figure 8-23 on page 288.
Sample Report
Note: Some report sections are split to fit the page.
################################################################################
#
#
#
Report:
################################################################################
********************************************************************************
Voltage (V), Time (ns), Emission (dBuV/m), (Typ FTSMode)
********************************************************************************
October 2012
319
XNet
Drvr
PulseFreq
VoltageSwing
RiseTime
------------
------------
------------
------------
------------
1 memory WP
memory R6 1
50MHz
4.4
0.9
1 memory UN4CAP226PA0
memory C23 1
50MHz
4.4
0.9
1 memory UN4CAP225PA0
memory R3 1
50MHz
4.4
0.9
1 memory SDA
memory U10 5
50MHz
4.4
0.6
1 memory SCL
memory J47 83
50MHz
4.4
0.9
1 memory SA2
50MHz
4.4
0.9
....
*********************************************
*********************************************
PeakEmission
PeakFrequency
EMIStatus
------------
------------
------------
28.86
850Mhz
Pass
NA
NA
NA
NA
NA
NA
36.05
1250Mhz
Pass
34.19
950Mhz
Pass
32.69
950Mhz
Pass
....
*************************************************
Pulse Data Per Xnet
*************************************************
XNet
PulseFreq
PulseDutyCycle
------------
------------
------------
1 memory WP
50MHz
0.5
1 memory UN4CAP226PA0
50MHz
0.5
1 memory UN4CAP225PA0
50MHz
0.5
October 2012
320
1 memory SDA
50MHz
0.5
1 memory SCL
50MHz
0.5
1 memory SA2
50MHz
0.5
....
Parasitics Report
The parasitics report shows total self capacitance, impedance range, and transmission line
propagation delays for selected nets. The total net self capacitance includes capacitance
from the transmission lines, via padstacks, pin padstacks, and IOCell die. Delay values are
compared against delay constraints, if any exist. Information about the pins of the selected
nets is included.
You can use the parasitics report to identify nets that are either overloaded or have excessive
impedance discontinuities. The net parasitics report is a good choice for analyzing analog
nets. This report does not use crosstalk estimations.
You can generate the parasitics report either in batch mode or interactively from the Analysis
Report Generator dialog box.
Batch Generation
Following is an example of a batch command which would generate a Parasitics report.
signoise -f my_nets.txt -r Parasitics -o parasitics_rpt1.txt my.brd
Table 8-10 Batch Command Switches - Parasitics Report
Switch
Description
-f
A list-of-nets file
-r
-o
Interactive Generation
Selecting the Parasitics option in the Analysis Report Generator dialog box specifies a
parasitics report for selected nets. See Figure 8-23 on page 288.
October 2012
321
#
#
Report:
################################################################################
********************************************************************************
XNet Parasitics
********************************************************************************
XNet
MinImpedance
MaxImpedance
Capacitance
Inductance
------------
------------
------------
------------
------------
1 memory WP
70.72
70.72
2.035e-12
NA
1 memory UN4CAP226PA0
70.72
70.72
4.607e-13
2.525e-09
1 memory UN4CAP226PA0
70.72
70.72
5.447e-13
2.946e-09
1 memory SDA
70.72
70.72
1.639e-1
NA
1 memory SCL
70.72
70.72
1.45e-12
NA
1 memory SA2
70.72
70.72
1.426e-12
NA
....
**************
**************
Resistance
-----------NA
0.005502
0.008619
NA
NA
NA
October 2012
322
....
SSN Report
The SSN report shows noise levels induced on the power and ground busses of a component
when all drivers deriving power from that bus switch simultaneously. These noise levels are
used as an approximation of the distortion effects that will be seen at the signal pins. The
power bus noise is used as the basis for Rise distortion and ground bus noise is used for Fall
distortion. The power and ground busses are identified in this report.
You are required to route power and ground nets to yield accurate results for the SSN report,
although package parasitics are accounted for even without power and ground routing.
Component placement adjustment, decoupling, power and ground net reassignment, and
power/ground plane rearrangement are techniques used for solving SSN noise problems. It
may be useful to use this report during both placement and routing phases, taking care to
update the SimulSwitch simulations.
The SSN report also includes the Extended Net SSN section containing:
A subsection for each driver pin on the extended net and the Rise SSN and Fall SSN
information for the driver.
You can generate the SSN report either in batch mode or interactively from the Analysis
Report Generator dialog box.
Batch Generation
Following is an example of a batch command which would generate an SSN report.
signoise -f my_nets.txt -r SSN -o ssn_rpt1.txt my.brd
Description
-f
A list-of-nets file
-r
-o
October 2012
323
#
#
Report:
################################################################################
*********************************************************************************
Simultaneous Switching Noise (mV) for XNet `2 ssn NET1` (Typ FTSMode)
*********************************************************************************
Drvr
Net
PowerBus
SSNRise
GroundBus
SSNFall
------------
------------
------------
------------
------------ ------------
ssn U1 2
ssn NET1
pwrbus
505.5
gndbus
------------
------------
------------
------------
------------ ------------
944.2
*********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
*********************************************************************************
Drvr
IOModel
Volmax
Vohmin
RiseSlew
------------
------------
------------
------------
------------ ------------
ssn U1 2
CDSDefaultIO 100 mV
4500 mV
5000
------------
------------
------------
------------ ------------
------------
FallSlew
5000
*****************************
Load I/O Characteristics
*****************************
Rcvr
October 2012
IOModel
Vilmax
Vihmin
324
------------
------------
------------
------------
------------
------------
------------
------------
******************************************************
Pulse Data Per Xnet
******************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
------------
------------
------------
------------
2 ssn NET1
50MHz
0.5
------------
------------
------------
------------
*************************************************
Simulation Preferences
*************************************************
Variable
Value
------------
------------
Percent Manhattan
100
Default Impedance
60ohm
1.4142e+08M/s
Geometry Window
10mil
0.1pF
Cutoff Frequency
0GHz
50MHz
0.5
0ns
*************************************************
Description of abbreviations
*************************************************
Abbr
Abbreviations
----------
----------------
DefImp
Default Impedence
October 2012
325
DefPropVel
Drvr
Driver Pin
FTSMode
Fast/Typical/Slow Mode
FallSlew
GeomWin
Geometry Window
IOModel
MhtPercent
Rcvr
Receiver Pin
RiseSlew
SSNFall
SSNRise
Vihmin
Vilmax
Vohmin
Volmax
XNet
Extended Net
----------------------------------------------------
******************************************************
----------------------------------------------------------------Net:
----------------------------------------------------------------*********************************************************************************
Pulse Data Per Xnet
*********************************************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
------------
------------
------------
------------
October 2012
326
1 memory WP
50MHz
0.5
1 memory UN4CAP226PA0
50MHz
0.5
1 memory UN4CAP225PA0
50MHz
0.5
1 memory SDA
50MHz
0.5
1 memory SCL
50MHz
0.5
1 memory SA2
50MHz
0.5
....
Report Computations
For the high state, the magnitude of the largest negative excursion of the power bus voltage
is measured. All driver pins are simultaneously switched for the rising edge and waveforms
are generated at the die for the driver devices power bus. The rising edge simultaneous
switching noise is taken as the magnitude of difference between the steady state voltage of
the power bus minus the lowest excursion of the power bus waveform.
For the low state, the magnitude of the largest positive excursion of the ground bus voltage is
measured. All driver pins are simultaneously switched for the falling edge and waveforms are
generated at the die for the driver devices ground bus. The falling edge simultaneous
switching noise is taken as the magnitude of difference between the highest excursion of the
ground bus waveform minus the steady state voltage of the ground bus.
Figure 8-40 Simultaneous Switching Noise Measurement Points
October 2012
327
Definition
Format
MAX_SSN
October 2012
328
Description
-f
A list-of-nets file
-g
-l
-r
-a
-o
Interactive Generation
Selecting the Segment Crosstalk option in the Analysis Report Generator dialog box
specifies a Segment Crosstalk report for selected nets. See Figure 8-23 on page 288.
Note: To generate an appropriate report, be sure to select the Each Neighbor option (for Net
Selection) in the Aggressor section of the dialog box.
Important
To obtain segment-based crosstalk results, crosstalk tables must be available in
your board file. If not, the dialog box shown below will appear after clicking the
Create Report button asking if you would like to have them generated. If you select
No, your report will include parallelism data only with all crosstalk values set to NA.
October 2012
329
Sample Report
################################################################################
#
#
#
Report:
################################################################################
*********************************************************************************
Segment Crosstalk (mV)
*********************************************************************************
Victim
Aggressor
Layer:Layer
XYCoord
----------
------------
------------
2 dimm128 DQ47
all_neighbor_xnets NA
NA
NA
NA
18.1
2 dimm128 DQ47
dimm128 DQR45
NA
NA
NA
729
12.69
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1672:243
10
233
7.823
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1842:290
10
116
3.895
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1544:232
13
32
0.8844
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
2006:473
50
267
0.8566
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1895:353
18
19
0.3371
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1903:370
23
23
0.2855
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1532:207
25
18
0.207
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1889:337
38
17
0.09458
2 dimm128 DQ47
dimm128 DQR45
BOTTOM:BOTTOM
1532:218
16
0.0868
2 dimm128 DQ47
dimm128 DQR43
NA
NA
NA
448
11.27
2 dimm128 DQ47
dimm128 DQR43
BOTTOM:BOTTOM
1663:275
10
237
7.958
2 dimm128 DQ47
dimm128 DQR43
BOTTOM:BOTTOM
1813:307
10
88
2.955
October 2012
330
Gap
Length SegXtalk
2 dimm128 DQ47
dimm128 DQR43
BOTTOM:BOTTOM
1844:380
21
76
1.013
2 dimm128 DQ47
dimm128 DQR43
BOTTOM:BOTTOM
1523:275
32
43
0.357
2 dimm128 DQ47
dimm128 DQR43
BOTTOM:BOTTOM
1844:340
36
0.02591
2 dimm128 DQ47
dimm128 DQR42
NA
NA
NA
421
3.919
2 dimm128 DQ47
dimm128 DQR42
BOTTOM:BOTTOM
1659:291
26
230
2.54
2 dimm128 DQ47
dimm128 DQR42
BOTTOM:BOTTOM
1801:318
26
74
0.8171
2 dimm128 DQ47
dimm128 DQR42
BOTTOM:BOTTOM
1827:381
38
74
0.4117
2 dimm128 DQ47
dimm128 DQR42
BOTTOM:BOTTOM
1523:291
48
43
0.1504
2 dimm128 DQ47
dimm128 DQR46
NA
NA
NA
367
3.876
....
October 2012
331
Data Description
Victim
Aggressor
Layer:Layer
Specifies for this coupled segment, the layer the victim and aggressor nets
are routed on respectively. For example, if the coupled segments of both
nets are routed on the TOP layer, it would read TOP:TOP. If the coupled
segment had the victim net on INT1 and the neighbor net on INT2, then
this column would read INT1:INT2. Layer to layer information is only
applicable to coupled segments.
XYCoord
Gap
Specifies the distance between the segments on the victim and neighbor
nets. For cases where the coupling occurs on the same layer, this is simply
the spacing between the traces. For layer-to-layer coupling cases, this gap
represents a combination of the dielectric spacing between the layers and
the offset between the victim and neighbor (Pythagorean Theorem). The
gap only applicable to coupled segments.
Length
The length of the coupled segment. Note that the table gives a segmentby-segment breakdown, and also an overall net-to-net value, and an overall
all-neighbors-to-victim-net value.
SegXtalk
Amount of voltage coupled over from the aggressor to the victim in that
particular coupled segment.
Note: The initial value in this column represents the total crosstalk received
from all neighbors. The next set of values consists of a single neighbor
crosstalk total followed by a segment-by-segment crosstalk breakdown for
the same neighbor. This pattern is then repeated for each neighbor listed in
the report.
Report Computations
The all-neighbors-to-victim-net value is calculated based on the root-sum-squared (RSS)
October 2012
332
October 2012
333
Description
-f
A list-of-nets file
-a
-n
-r
-m
-o
Interactive Generation
Selecting the Crosstalk Summary option in the Analysis Report Generator dialog box
specifies a Crosstalk Summary report for selected nets. See Figure 8-23 on page 288.
Sample Report
Note: This report has been split to fit the page.
################################################################################
#
#
#
Report:
################################################################################
********************************************************************************
October 2012
334
Victim XNet
Victim Drvr
HSOddXtalk
HSEvenXtalk
LSOddXtalk
----------
------------
------------
------------
------------
1 memory A7
401.5
NA
214.6
1 memory A0
memory J47 33
387.9
NA
229.8
1 memory A3
384.2
NA
207.3
1 memory A4
memory J47 35
351.4
NA
200.5
1 memory A9
306.4
NA
168.7
1 memory A9
memory J47 39
297.8
NA
159.5
....
*************
*************
LSEvenXtalk
---------NA
NA
NA
NA
NA
NA
....
Report Computations
Crosstalk is the magnitude of the voltage change seen at a pin on a victim net where the
voltage change is induced by signals on coupled neighboring aggressor Xnets when drivers
on aggressor nets are switching simultaneously.
The crosstalk measurement for a victim net held in the high state is taken as the magnitude
of the difference between the lowest excursion of the receiver waveform minus the victim nets
October 2012
335
October 2012
336
Description
-f
-a
-D
Use either the fastest driver or the all drivers on the neighboring
aggressor nets. Choices are: Fastest or All.
-n
-r
-m
-o
Interactive Generation
Selection of the Crosstalk Detailed option in the Analysis Report Generator dialog box
specifies a Crosstalk Detailed report for selected nets. See Figure 8-23 on page 288.
Sample Report
Note: Some sections of this report have been split to fit the page.
################################################################################
#
#
#
Report:
################################################################################
********************************************************************************
All Neighbors Crosstalk at Receivers (mV) (Typ FTSMode)
********************************************************************************
Victim XNet
October 2012
Victim Drvr
Victim Rcvr
337
HSOddXtalk
HSEvenXtalk
----------
------------
------------
------------
------------
1 memory A7
memory U17 32
401.5
NA
1 memory A7
memory U4 32
391
NA
1 memory A0
memory J47 33
memory U12 23
387.9
NA
1 memory A3
memory U12 26
384.2
NA
1 memory A0
memory J47 33
memory U17 23
380.2
NA
1 memory A3
memory U9 26
376.4
NA
....
*****************************
*****************************
LSOddXtalk
LSEvenXtalk
----------
------------
214.6
NA
209.3
NA
229.8
NA
207.3
NA
210.1
NA
202
NA
....
*********************************************************************************
Pulse Data Per Xnet
*********************************************************************************
XNet
PulseFreq
PulseDutyCycle
PulseCycleCount
----------
------------
------------
------------
1 memory WP
50MHz
0.5
1 memory UN4CAP226PA0
50MHz
0.5
1 memory UN4CAP225PA0
50MHz
0.5
1 memory SDA
50MHz
0.5
1 memory SCL
50MHz
0.5
October 2012
338
1 memory SA2
50MHz
0.5
....
*********************************************************************************
Description of abbreviations
*********************************************************************************
Column
Description
------------
-----------------------------------------------------------------------
HSEvenXtalk
HSOddXtalk
LSEvenXtalk
LSOddXtalk
Victim Drvr
Victim Rcvr
Victim XNet
-----------------------------------------------------------------------------------------
Report Computations
Crosstalk is the magnitude of the voltage change seen at a pin on a victim net where the
voltage change is induced by signals on coupled neighboring aggressor Xnets when drivers
on aggressor nets are switching.
The crosstalk measurement for a victim net held in the high state is taken as the magnitude
of the difference between the lowest excursion of the receiver waveform minus the victim nets
steady state voltage. The crosstalk measurement for a victim net held in the high state is
taken as the magnitude of the difference between the victim net's steady state voltage minus
the lowest excursion of the receiver waveform.
Crosstalk measurements for victim nets in both the high and low states are shown in the
following figure.
October 2012
339
Electrical Constraints
You can set he following constraints on a net or Xnet for evaluation during crosstalk analysis.
Table 8-16 Measures Delay Value Comparisons
Constraint
Definition
Format
MAX_XTALK
October 2012
340
The energy in the signal portion and the noise portions is then quantified by the areas under
the waveform curve. The energy is calculated by root-square summations of the difference
between the signal voltages and the reference voltage at every sampling point, or time step.
October 2012
341
For detailed information on the signal quality screening procedure, see Performing Signal
Quality Screening.
Click Waveforms in the Signal Analysis dialog box. See Figure 8-15 on page 265.
The Analysis Waveform Generator dialog box is displayed, as shown in Figure 8-46 on
page 343.
October 2012
342
October 2012
343
select the Aggressor net switching mode (for Crosstalk and Comprehensive
simulations) and Aggressor nets and drivers (for Crosstalk simulations).
select whether or not to save circuit files or use timing windows (for Crosstalk
simulations).
open the Analysis Preferences dialog box to modify simulation preferences after
reviewing waveforms to further refine the waveforms resulting from subsequent
simulations.
October 2012
344
Reflection Simulations
Reflection simulations simulate only the victim net and none of the neighboring aggressor
nets. Reflection simulation does not take the parasitics of power and ground pins into
account.
Comprehensive Simulations
Comprehensive simulations simulate the specified victim net and its neighboring aggressor
nets at the same time. In Comprehensive simulation, SigNoise applies the stimulus type you
select to the victim net and either the same or the opposite stimulus to the neighboring
aggressor nets depending on the switch mode you specify. Comprehensive simulation takes
power and ground parasitics into account. It also shows glitches in the victim net that are
produced by activity on the aggressor nets.
Crosstalk Simulations
Crosstalk simulations simulate one or more specified victim nets and one or more
neighboring aggressor nets at the same time.
Specifying All/Group Neighbors for aggressor nets shows how activity on the specified
aggressor nets can cause crosstalk on the victim nets. With a stimulus type of Rise or Pulse,
SigNoise holds the victim nets high and applies a Fall or Inverted Pulse stimulus to the
neighboring aggressor nets. With a stimulus type of Fall or Inverted Pulse, SigNoise holds
the victim nets low and applies a Rise or Pulse stimulus to the neighboring aggressor nets.
Specifying Each Neighbor isolates crosstalk contributions from individual neighboring
aggressor nets. In each neighbor crosstalk analysis, SigNoise runs multiple simulations
where in each simulation, a single aggressor net is active while the other neighboring nets
October 2012
345
Function
Current Case
Stimulus
Fast/Typical/Slow
Mode
Primary Net
October 2012
346
Function
Create Waveforms
View Waveform
Opens the SigWave window and loads the waveform file selected
from the list box.
Preferences
Function
Aggressor
Pull down menus for selecting switch mode, net selection, and
driver selection.
A check box to specify that SigNoise use timing window properties
to refine the crosstalk simulations to account for received crosstalk
that is insignificant due to the timing of signals.
October 2012
347
Function
Stimulus
October 2012
348
Menus
Icon Bar
Bars
Waveform
Display
Spreadsheet
Waveform Manager
Refer to the SigWave User Guide for further details on displaying and interpreting
waveforms.
October 2012
349
October 2012
350
9
Analyzing for Static IR-Drop
Increasingly complex circuit designs call for greater power consumption while requiring evergreater reductions of overall power supply voltages. Resulting voltage fluctuations can
translate to significant timing inaccuracies and circuit failure if reliable analysis of power
distribution networks cannot be accomplished early in the design process. A critical
component of such analysis is determining IR (resistive voltage) drop for nets. You can
perform IR-Drop analysis on both DC and signal nets, though you would typically use it on
power/ground nets.
The IR-Drop analysis functionality obtains voltage drop data by analyzing the nets to calculate
the resistance of each meshed cell, via, and cline on one or more selected nets. With a simple
mouse click you can then view accurate voltage drops across power planes; on the clines,
vias, and pins of the simulated net. You can also view current on clines vias, and shapes as
well as temperatures rises on clines and shapes. As an additional aid to setting up your
design for analysis, you can select specific material types for padstack plating.
October 2012
351
Static IR Drop
Static IR-drop describes the DC voltage that develops across a conductor as a result of its
electrical resistance. This voltage is proportional to the current that flows though the
conductor (V=I.R) and results in a drop in voltage available at the load devices (Vload =
Vsupply Vdrop).
Allegro PCB PDN highlights potential problems in power delivery paths, providing visibility for
both IR-drop and hot-spotting issues. The tools helps accurately design high-current power
connections by quantifying the amount of voltage drop and temperature rise that are to be
expected.
The Static IRDrop analysis helps you assess the following:
Voltage drop - When maximum current is drawn, is the voltage at the load within
specification?
Temperature rise is the power path capable of delivering the maximum supply current
without excessive temperature rise? The analysis reveals local pockets of high currentdensity, where a risk of excessive heating exists. The temperature analysis helps you
ensure that a sufficient number of parallel vias have been used in power paths.
The IR-Drop analysis functionality obtains voltage drop data by analyzing the nets to calculate
the resistance of each meshed cell, via, and cline on one or more selected nets. With a simple
mouse click you can then view accurate voltage drops across power planes; on the clines,
vias, and pins of the simulated net. You can also view current on clines vias, and shapes as
well as temperatures rises on clines and shapes. As an additional aid to setting up your
design for analysis, you can select specific material types for padstack plating.
Note: You need to specify source and sink current information on a per-device or per-pin
basis before you run the analysis on the selected power nets.
You perform IR-Drop analysis from the PDN Analysis solution. See Static IR Drop Analysis
in the Allegro PCB PDN Analysis User Guide.
October 2012
352
10
Post-Route Signal Integrity Analysis
Using the 3D Field Solver
Important
The 3D Field Solvers described in this chapter are supplied and supported by thirdparty vendors. You must ensure that you have the required field solver installed on
your operating system to convert package design data to full 3D finite element
(RLGC) models.
Introduction
With designs running at multi-GHz frequencies, it is crucial to understand and accurately
model three-dimensional structures when you perform package-level signal integrity analysis.
Note: Allegro platform products recognize different geometry window settings in multiple
designs in a system configuration or design link, resulting in a detailed crosstalk report that
considers the different geometry window settings in each of the .mcm files. However, these
multiple geometry windows apply only to 2D modeling; coupling algorithms in the 3D Field
Solver which are nearest neighbor- based supersede any multiple geometry window
settings.
October 2012
353
What is Sentinel-NPE?
Sentinel-NPE (referred to as the 3D Field Solver from this point forward) is a high-capacity,
high performance, quasi-static electromagnetic modeling tool for IC Packaging and Systemin-Package (SiP) designs. With its easy-to-use graphical user interface and direct import of
package design database, package designers, and Signal Integrity (SI) engineers can
efficiently build a physically intuitive RLGC model for the entire package. This tool lets you
aggressively design packages while reducing or eliminating the risk of design conflicts with
electrical performance specifications.
DML format
RLGC
October 2012
354
Subcircuit wrapped
These model types are displayed in the Package Model Type drop-down menu in the 3-D
Interconnect Modeling dialog box. The dialog appears when you select Analyze 3-D
Modeling from Package SI L.
Figure 10-2 Model Types
October 2012
355
The 3D Field Solver puts a skip attribute on the partially routed net and does not
generate an RLGC model for that net.
The 3D Field Solver puts a skip attribute on the partially routed net. However, the
section that is routed is treated as metal and influences the results of the nearby
nets. There is no coupling to the net that is partially routed given the skip tag.
October 2012
356
Three connection types are supported. Types 2 and 3 engender specific responses by 3D
Field Solver:
A wirebond cline and a die pin on the same interposer layer with a design via connecting
the cline to the interposer layer, as shown in Figure 10-4.
A wirebond cline and a die pin on the same interposer layer. For this connection type, 3D
Field Solver detects the condition and inserts a default via that connects the end of the
cline to the interposer layer, as shown in Figure 10-4.
October 2012
357
A wirebond cline and a die pin are on different layers. Two design vias connect the each
end of the cline to the die pin layer, as shown in Figure 10-6. For this connection type,
3D Field Solver inserts a default via that completes the connection to the interposer layer.
October 2012
358
PCB-Level Simulation
You can also use the 3D Field Solver to generate package model device files that can be
automatically loaded into the SigNoise device model library and used for PCB-level
simulation. For further details, see 3D Package and Interconnect Model Device Files on
page 367.
Supported Technologies
The 3D Field Solver supports the following configurations
Lead Frame
MCM
SiP
Stacked Die
October 2012
359
Allegro Package SI L
October 2012
360
October 2012
361
October 2012
362
October 2012
363
Adhere to the 3D Field Solver Setup Guidelines on page 377 and make adjustments
to your design accordingly.
Elect 3D package modeling and simulation. For details, see To select 3D package
and interconnect modeling: on page 360.
October 2012
364
Click the Stop button in the lower right corner of your design window (see Figure 10-9
on page 366).
- or -
October 2012
365
The following table describes the field solution calculations reported in the Progress panel.
Calculation
Description
done
October 2012
366
Calculation
Description
Equation solver
FE post processing
RL/CG calculation
Compute R, L, C, G values.
Result Processing
paksi.log
corestatus.txt
Selecting the method for creating your interconnect models (Package SI L only).
October 2012
367
Specifying whether you want DML models to load automatically into the SigNoise library.
For details on how to create 3D package and interconnect model files, refer to the Allegro
PCB and Physical Layout Command Reference: S Commands.
DML format
RLGC
Subcircuit wrapped
For further details on translating and loading IBIS models, refer to Appendix D of this user
guide.
For further details on the DML formats along with DML package model examples, refer to
Appendix B of this user guide.
Netj Rij(mOhm)Lij(nH)Cij(pF)Gij(uMho)Td(ns)TD(rs)
368
October 2012
369
October 2012
370
Important
The multiport option is intended to model signal nets with 3 ports. While you can use
this feature to help in the extraction of models of power or ground nets, it requires
significant computing time and resources due to the typically large number of pin
ports in power/ground nets. We recommend you exercise caution in using this
feature when modeling power/ground nets.
If your designs contain multiple T-points, 3-D Field Solver will contain correct
extraction results. However, be aware that the field solver does not recognize more
than one T-point. It processes only the first T-point it encounters; subsequent ones
are ignored. Information concerning data to and from other Ts are not reported.
Subcircuits for multiport nets use H and V sources, as shown in this sample subcircuit file.
.subckt paksi_interconn I1 I2 I3 O1
R1 NIH1_3 M1 0.282668
L1 M1 O1 5.67408e-009
V1 I1 NI1 0
H1_2 NI1 NIH1_2 V=V2*0.000451862
H1_3 NIH1_2 NIH1_3 V=V3*0.000409859
R2 NIH2_3 M2 0.207849
L2 M2 O1 5.07899e-009
V2 I2 NI2 0
H2_1 NI2 NIH2_1 V=V1*0.000451862
H2_3 NIH2_1 NIH2_3 V=V3*0.0766999
V3 I3 NI3 0
H3_1 NI3 NIH3_1 V=V1*0.000409859
H3_2 NIH3_1 NIH3_2 V=V2*0.0766999
R3 NIH3_2 M3 0.348358
L3 M3 O1 7.02795e-009
CI1 I1 0 9.79101e-014
RGI1 I1 0 3.83793e+006
CI2 I2 0 9.79101e-014
RGI2 I2 0 3.83793e+006
CI3 I3 0 9.79101e-014
RGI3 I3 0 3.83793e+006
CO1 O1 0 9.79101e-014
RGO1 O1 0 3.83793e+006
K1_2 L1 L2 0.00225405
K1_3 L1 L3 0.00222227
K2_3 L2 L3 0.13538
.ends paksi_interconn
You can control the number of distributed subcircuits generated for a narrowband model
transmission line by entering a value in the Number of subcircuit segments fields. Be
aware that higher numbers of segments will yield more accurate models, but may increase
computation time.
October 2012
371
October 2012
372
For purposes of simulation, you must assign at least one source pin and one sink pin to each
net. You must also designate one group as the reference group to avoid generating an error
message. Otherwise, you can designate any pin (port) as either source or sink. You can also
include source and sink pins in a single group. In every instance, float pins are ignored during
simulation.
When you group ports in a net, the group numbers will be appended to the port name of its
associated DML model, as shown in this example:
(net_B_3port.dml
(PackagedDevice
(net_B_3port
(ESpice .subckt net_B_3port
net_B_3port
October 2012
373
When a net contains port groups for its pins, the port names will be shown when you display
the model in SigXplorer, as shown in Figure 10-13.
Figure 10-13 Port Group in SigXplorer Canvas
October 2012
374
Use this dialog box to group source pins and sink pins in a multiport net. Port grouping gives
you the capability of setting up a partition-based extraction by enclosing ports of source and
sink pins in a specified portion of your design. This eliminates the limitation of having to
extract the entire design with each pin identified.
Creating package terminal map files
You can generate a text file that maps the nodes in the 3D field solver subcircuit file to the
bump pad names on the die by selecting the Create Package Terminal Map File option in
the 3-D Interconnect Modeling dialog box. This allows IC power analysis tools to link the
power/ground model in the package to the power grid circuit of the silicon in order to perform
post-route simulation with package effects.
October 2012
375
376
377
October 2012
378
October 2012
379
380
Cause
DC-reduction for
Eisenstat algorithm can
not apply!
October 2012
381
Message
Cause
Cause
Incorrect Constraint
Equation number!
Incorrect element ID
number in FEA model
file!
Incorrect number of DOFs Number of DOFs per node was <= 0 or > 32.
per node!
No net is selected for
analysis.
October 2012
382
Message
Cause
Zero DOF remaining after Zero DOF remaining after finite element matrix
elimination!
elimination.
October 2012
383
October 2012
384
11
Dynamic Analysis with the EMS2D Full
Wave Field Solver
High density interconnect on PCB and packaging designs with signal switch rates over 5
Gpbs require model characterizations that can support frequency ranges from DC up to
THz.Within this wide spectrum, electrical resonance, oscillation, signal dispersion and EM
radiation are all likely and must be accounted for. Static or Quasi-static characterization such
as Bem2d is not able to address these high frequency issues. Skin effect and dielectric loss
are analyzed by simple formulation or empirical equations.Therefore, a full-wave solution is
needed to handle these electromagnetic interaction effects.
The Electromagnetic Solution 2D Full Wave field solverEMS2Dprovides the full-frequency
range analysis from DC, through the middle frequency range which covers the skin effect, to
the THz range of the electromagnetic interactions which address resonances, radiations and
EM signal integrity issues.
EMS2D is implemented using the finite element method (FEM), which complements Allegros
moment-based BEM2D field solver. EMS2D combines multiple EM computation modules,
static, quasi-TEM, and full-wave analysis. Additionally, EMS2D is able to analyze arbitrary
transmission line-type and waveguide structures over PCB cross-sections and provide
characterized models in table format.
October 2012
385
Coupled CPW
Single CPW
In Allegro PCB SI, you can extract CPWs for model generation by enabling the CPW
extraction option in the InterconnectModels tab of the Analysis Preferences form, shown in
Figure 11-2.
October 2012
386
With CPW extraction enabled, EMS2D determines whether a single net should be handled
as a CPW based on the presence of two shapes adjacent to the cline (shown in the following
illustration). Each shape is searched using a window equal to the geometry window setting.
The presence of adjacent nets between the net you are extracting and adjacent shapes is not
considered.
To set and detect coplanar waveguides
1. Choose Analyze Preferences.
The Analysis Preferences dialog box appears.
October 2012
387
CLINE SEGMENT
SHAPE
SHAPE
SHAPE WINDOW
SHAPE WINDOW
For each segment of the cline, Ems2d will use the dimensions set in the Geometry
Window to check for shapes on either side of the cline.
6. Click the Preferences button to open the EMS2D Preferences dialog box.
October 2012
388
October 2012
389
Library Enhancements
Interconnect libraries in Allegro products that support EMS2D contain a number of
enhancements. They include:
October 2012
390
parameter
CEr
valuetype
material_type
Complex
material_name version
Anisotropic
ML3
0.1
er(2,3)
er(3,1)
3.5 0.1
0 0
3.5 0.1
0 0
0 0
0 0
3.5 0.1
0 0
3.4 0.2
0 0
0 0
0 0
3.4 0.2
0.1601
0 0
3.4 0.3
0 0
0 0
0 0
3.4 0.3
0.0001
er(1,1)
er(1,2) er(1,3)
3.4 0.3
er(2,1)
er(2,2)
er(3,2)
er(3,3)
! omh*meter
# DcConductivity=1.e-6
# GHz
LossTangent
October 2012
Real
Anisotropic
391
ML3
0.1
0.1
0.1
0.1
0.0800998
0.2
0.2
0.2
0.1601
0.3
0.3
0.3
Frequency-dependent material files for specific materials and/or layers are defined
graphically in the Material Properties and Layout Cross Section forms in your Allegro tools. In
either form, you can select a frequency-dependent file from the files residing in your
MATERIALPATH directory, //<install_directory/share/pcb/test/materials, as
illustrated in Figure 11-5. All Allegro products that support EMS2D will include a set of default
material files in that location.
Figure 11-5 Material File Selectors in Material Properties Form
In addition, you can edit (in a text file) or display (in SigWave) the frequency-dependent file
associated with a material or layer by way of the right-button pop-up menu, as shown in Figure
11-6.
October 2012
392
S-Parameter Extraction
EMS2D extracts S-Parameters when the segment length of interconnect is specified. In such
cases, the S-Parameter is output in Touchstone file format (.snp) that you can view in
SigWave. The associated frequency points will be specified in the frequency point
(.frequency) file. The command line option for this feature is
-sparam <filename.snp> length <a_number_in_meters> frequencypointfile
<filename.frequency>
These parameters can also be set in the EMS2D Preferences form, accessed from the
Analysis Preferences dialog boxes in PCB SI and SigXplorer.
October 2012
393
October 2012
394
Allows you to set the degree of angle for either the top or the bottom of the cline
If you select BEM2D, it uses the average of all etch factors (for all layers) in the cross section
when determining trace models.
If you select EMS2D, it uses the etch factor for each layer of the cross section when
determining trace models.
Note: SigXplorer writes these trace models to the interconnect library.
Layer Specification
You can set a different degree of angle for every cline on a specific conductor/plane layer. You
do this in the Layer Cross Section form (Setup Cross-section). As shown in Figure 11-7,
the Etch Factor column displays the default setting (90 degrees), for each conductor and
plane layer in your design. To change the default, you simply enter a new value in the field on
the appropriate row. To maintain viable angles, values are restricted to within 45 degrees of
vertical, thus between 45 to135 degrees or between 225 to 315 degrees.
Figure 11-7 Layer Cross Section
395
October 2012
396
0.01280 in.
0.00490 in.
0.01190 in.
0.00130 in.
0.01075 in.
0.00795 in.
0.00630 in.
To help you better determine the proper etch factor settings, you can display a graphical
representation of the cline by clicking the right mouse button on the Etch Factor field of
interest and selecting Display Etch Factor from the pop-up menu, as shown in Figure 11-10.
October 2012
397
Based on the visual feedback, you can then adjust your values as required.
Algorithm-Based Modeling
Algorithm-based interconnect models (ABIML) are designed to greatly enhance simulation
times when interconnect models that match simulation criteria cannot be found in existing
traditional models. Algorithm model generation lets you create accurate interconnect models
off-line that exactly match not only shield, dielectric, trace and physical geometry layer
information but also entire frequency spectrums. These models are then integrated into
libraries for reuse in multiple simulations.
Algorithm-based modeling is optional. You can enable/disable it from the InterconnectModels
tab of the Analysis Preferences dialog box in Allegro PCB SI or the Simulation Parameters
tab in SigXplorer.
October 2012
398
In both products, the default condition is On. If you turn off algorithm modeling, your Allegro
tools will not search for algorithm-based models. Instead, it will directly engage the field solver
to create the required model. This process is illustrated in the flow chart below.
October 2012
399
MATCHING
MODEL
FOUND?
YES
NO
NO
ALGORITHM
MODELING
ENABLED?
YES
INITIATE
ALGORITHMBASED IML
SEARCH
MATCHING
MODEL
FOUND?
NEW ABIML
ADDED TO LIBRARY
NO
GENERATE
NEW MODEL
WITH FIELD
SOLVER
October 2012
YES
400
PROCESS ENDS
Model information such as parameter range, interpolation type, and sweep step type
[Num_of_DielectricLayer] 1
[Num_of_ShieldLayer] 1
[Parameter Info]
[LayerStack]
[Layer] 1
*
min
max
[Thickness]
1.0
1.0
[Constant]
1.0
1.0
[Losstangent]
0.0
0.0
[IsShield]
YES
step
step_type
interp_type
ID
step
[Layer] 2
*
min
max
step_type
interp_type
ID
[Thickness]
1.0
2.0
linear
linear
[Constant]
4.4
4.6
log
2_order_poly
[Losstangent]
0.0
0.0
[IsShield]
NO
ID
[End LayerStack]
[CrossSection]
[conductor] 1
*
min
max
step_type
interp_type
[Thickness]
1.0
1.5
step
5
linear
linear
[Width]
1.0
10.0
20
linear
2_order_poly
[Losstangent]
0.0
0.0
[end CrossSection]
[End Model Info]
[Model Data]
[Data] 1
[R]
1.459500e+01
[L]
6.088700e-07
[G]
0.000000e+00
[C]
5.162900e-11
[Data Condition]
*
October 2012
ID
value
401
1.0
4.4
1.0
1.0
.....
[Data] 4725
[R]
3.630000e+00
[L]
4.567500e-07
[G]
0.000000e+00
[C]
7.440100e-11
[Data Condition]
*
ID
value
2.0
4.6
1.5
10.0
October 2012
402
Using EMS2D
You run EMS2D from the Analysis Preferences forms in Allegro PCB SI and SigXplorer.
Figure 11-13 EMS2D Access in PCB SI and SigXplorer
PCB SI
SigXplorer
For specific information on how to run EMS2D from these tools, see the online documentation
accessed from the Help buttons on the forms.
October 2012
403
October 2012
404
A
Constraint-Driven Layout
Introduction
The Allegro system interconnect platform stores a common set of constraints directly in the
design database. Once constraints are assigned or inherited by design elements, they are
adhered to by all tools across the entire design flow.
SI analysis and constraint-driven layout helps you create more robust designs by optimizing
your design with respect to timing and noise. This method reduces place-route-verify
iterations and ultimately accelerates your time to market.
Constraint-Driven Placement
Once you have electrical constraints (ECSets) applied to your nets, you can begin the task of
constraint-driven placement of your components. The SI engineer and the PCB layout
designer both can perform component placement. In each case, delay (length) constraints
must be met, or DRC (design rule check) errors are produced and displayed in the SI design
window. DRCs are identified by a bow tie marker.
You can use Constraint Manager in conjunction with SI (see Figure A-1 on page 406) to help
identify components in violation and to assist in guiding their relocation.
For further details on relocating components, see the move command in the Allegro PCB
and Package Physical Layout Command Reference.
October 2012
405
Placement Stages
Constraint-driven placement is typically comprised of three stages.
Preliminary Placement
Routability Analysis
90% Placement
Preliminary Placement
In the preliminary placement stage, all devices must be placed within the PCB outline, staying
clear of keepouts and mounting holes, to validate that the PCB size and shape is sufficient.
Critical component placement is driven by constraints and must be handled accordingly.
If all devices do not fit on top and bottom, you need to revise the mechanical assumptions.
Routability Analysis
With the netlist loaded and the ratsnest on, the placement (positions and orientations) is
adjusted to simplify the route process by studying the basic flow and crossing of signals.
Powerplanes and copper areas need to be studied along with decoupling capacitors and their
placement.
October 2012
406
October 2012
407
Constraint-Driven Routing
Constraint-driven routing does not suggest that an SI engineer route an entire board using
PCB SI. However, it may be important for you to route critical nets for analysis of actual routed
traces. These routes use the actual board stackup and include vias; items that were not
available when you created the topology file.
For further details on manually routing critical nets, see the add connect command in the
Allegro PCB and Package Physical Layout Command Reference.
Once routed, analyze a critical net by extracting its topology into SigXplorer. The topology
includes the actual routed trace models and via models from the board. You can then execute
a series of simulations based upon the extracted parameters and, if necessary, modify the
topology file that contains the constraints (thereby modifying the Electrical CSet). You can
then re-apply the Electrical CSet to the net and embed the constraint changes in all related
nets.
For further details on extracting a routed trace into SigXplorer, see the signal probe
command in the Allegro PCB and Package Physical Layout Command Reference.
Routing Stages
Constraint-driven routing is typically comprised of three stages.
October 2012
408
PROPAGATION_DELAY_RULE
RELATIVE_PROPAGATION_DELAY
Parallelism
Differential Pair
Route Priority
October 2012
409
October 2012
410
B
System-Level Analysis
Introduction
A design is a board (.brd) or MCM (.mcm) file in PCB SI and the PCB Editor. A system
consists of all participating designs, along with the interconnecting cables and connectors.
For example, a system may consist of a motherboard, a power supply, a cooling fan, and
several plug-in cards such as a video controller, a sound card, and RAM modules.
With system-level simulation, you analyze an extended net (system-level Xnet) that spans
more than one design. The simulation takes into account the path through all the separate
designs in the system and the connectors and cables that connect these designs. Separate
designs of various types that constitute a system are called a design link and may include
board (.brd), package (.mcm) and system-in-package (.sip) designs. Design links as
described above should not be confused with DesignLink, a type of signal model keyword
within a DML file that specifies both a set of connections and the other designs to which you
make connections.
October 2012
411
use a single system configuration database for multiple participating design databases.
preserve system-level constraints, system pin-pairs, and system Xnets from one project
session to the next.
What is a DesignLink?
To simulate a system of designs, you must specify the designs that comprise the system (the
design links) as well as information regarding how to connect the designs together. To do this,
you use a DesignLink. A DesignLink is a type of signal model within a DML file that specifies
both a set of connections and the other designs to which you make connections. Each system
configuration file is established (seeded) from a DesignLink.
Once the system configuration is established (or activated), it is saved to a system
configuration database file (.scf) which then maintains the system connectivity in the
database format. At this point, the DesignLink is stored in the .scf file and no longer used.
October 2012
412
Modeling Strategies
A typical system configuration might consist of two printed circuit boards, PCB1 and PCB2,
two mated connectors and a cable. A connector is typically made up of a plug and a
receptacle. In this scenario, one receptacle is mounted on PCB1, the other receptacle is
mounted on PCB2, and the two plugs are mounted on the ends of the cable.
The following approach was taken to model this multi-board system:
An RLGC model is used to represent the parasitics of the cable running between the two
boards.
October 2012
413
Do this . . .
October 2012
414
October 2012
415
October 2012
416
Add File
Add BoardModel
Remove
Add
Remove
Copy
Set Length
October 2012
417
Add
Remove
Presents a dialog box for you to select the starting pin at one end
of the cable connection
Set to Pins
Presents a dialog box for you to edit the starting pin at the other
end of cable connection
TextEdit PinMap
Opens the entire pin connection map in a text editor for further
manipulation.
Connect by Component Opens a dialog box that enables you to select two components
on specific designs to quickly form the pin to pin connections.
A pin to pin connection is established between each pin on one
component to a pin on the other component with the same pin
number.
Note: The system configuration name is saved as a property (SYS_CONFIG_NAME)within
the board database. If the board is opened again in PCB SI, the system configuration is autostarted in single-board mode.
October 2012
418
2. Click the System Configuration down-arrow to display a menu that shows all available
system configuration (.scf) files as well as all available DesignLink models that use the
current board (.brd) file.
Note: Of the available system configurations there is the Single Board System. This
is the default system configuration. Single board system uses a single design or board
file (without other participating designs). A system configuration database file is not
produced when choosing Single Board System.
3. Choose a system configuration and click OK.
The system configuration is checked. If there are any errors with the chosen system
configuration, the previous system configuration is restored.
When a DesignLink model is chosen (and activated by clicking OK), with only one
participating design, the DesignLink is ignored and the previous system configuration is
restored. If the DesignLink model contains multiple participating designs, a new system
October 2012
419
October 2012
420
Each non pin-pair based constraint is copied to every net and design Xnet in the system
Xnet as a property override unless the net or design Xnet already has a defined
constraint value. In this case, the worst-case constraints from the net or Xnet and system
Xnet is chosen.
For pin-pair based constraints (Min First Switch, Max Final Settle,
Propagation Delay, Relative Propagation Delay, Impedance), all autogenerated pin-pair rules are copied to each net and design Xnet within the system Xnet.
Any user-defined pin-pair rules on a single design are copied and flattened to the design
that it references. Those pin pairs that reference pins on different designs are saved as
system pin-pairs.
Most of the constraints that are set on system Xnets are copied to the member nets and
design Xnets, and are shown in a Constraint Manager worksheet on both system and design
Xnets. The actual values displayed by the worksheet correspond to the object. For example,
the net level Max Vias constraint show an actual value that is the total number of vias in the
net. The actual value displayed for a System Xnet is the total number of vias in the system
Xnet.
Note: For any design Xnet that is part of a bus or a differential pair object, its system Xnet is
also be part of that bus or differential pair. You do not have to define same bus or differential
pair objects in all designs.
October 2012
421
System-Level Simulation
After you have created your system configuration, you can proceed to simulate nets that span
multiple designs. When you model for multi-board analysis, consider these basic concepts:
The simulator automatically models the parasitics for interconnect structures produced
during routing (for example, traces and vias).
Interconnect structures that are not created during routing (for example, packages,
connectors, and cables), are represented by RLGC matrices or circuit models, either
directly in an RLGC model (as in a DesignLink model) or in a PackageModel (as in a IBIS
device model).
October 2012
422
C
Power Delivery Analysis
Introduction
Todays high speed circuits are challenging in almost every design aspect. One of these
challenges is to provide clean power signals to devices inside of packages that are mounted
on a printed circuit board.
For detailed information on Power Delivery Network (PDN) Analysis, refer to Allegro PCB
PDN Analysis User Guide.
October 2012
423
October 2012
424
D
Working with Crosstalk
Your Allegro tools support two types of crosstalk (xtalk) checking: estimated and simulated.
Simulated crosstalk is similar to estimated crosstalk but is more accurate, thus taking a
longer time to generate. This type of crosstalk is used in SI Crosstalk Summary and
Crosstalk Detailed reports.
Crosstalk values are calculated from tables of crosstalk data that are stored in the database
of your design. These tables are built by capturing the time domain simulation data produced
by sweeping multiple crosstalk scenarios derived from the Allegro database. Data is captured
for each driver model in the design, multiple impedance values, line-to-line spacing, layer-tolayer combinations, and simulation mode (Fast, Typical, or Slow). If one of these tables is
exported to a file, it is formatted as shown below.
.data
CDSDefaultOutput 0.000127 5 5 Typical 1.50904 0.127278 0.0960336
CDSDefaultOutput 0.000127 2 2 Typical 1.57598 0.127278 0.100294
CDSDefaultOutput 0.000127 2 3 Typical 1.26156 0.127278 0.0802844
CDSDefaultOutput 0.000127 3 2 Typical 1.26156 0.127278 0.0802844
CDSDefaultOutput 0.000127 3 3 Typical 1.57598 0.127278 0.100294
CDSDefaultOutput 0.000127 0 0 Typical 1.50904 0.127278 0.0960336
CDSDefaultOutput 0.000254 5 5 Typical 0.71302 0.127278 0.0453759
CDSDefaultOutput 0.000254 2 2 Typical 0.553263 0.127278 0.0352091
CDSDefaultOutput 0.000254 2 3 Typical 0.510822 0.127278 0.0325082
CDSDefaultOutput 0.000254 3 2 Typical 0.510822 0.127278 0.0325082
CDSDefaultOutput 0.000254 3 3 Typical 0.553263 0.127278 0.0352091
CDSDefaultOutput 0.000254 0 0 Typical 0.71302 0.127278 0.0453759
CDSDefaultOutput 0.000508 5 5 Typical 0.270644 0.127278 0.0172235
CDSDefaultOutput 0.000508 2 2 Typical 0.0768282 0.127278 0.00488927
CDSDefaultOutput 0.000508 2 3 Typical 0.0759594 0.127278 0.00483398
CDSDefaultOutput 0.000508 3 2 Typical 0.0759594 0.127278 0.00483398
CDSDefaultOutput 0.000508 3 3 Typical 0.0768282 0.127278 0.00488927
CDSDefaultOutput 0.000508 0 0 Typical 0.270644 0.127278 0.0172235
CDSDefaultOutput 0.000762 5 5 Typical 0.143255 0.127278 0.0091166
CDSDefaultOutput 0.000762 2 2 Typical 0.0109948 0.127278 0.000699696
October 2012
425
IOCell
Line-to-Line Gap
Aggressor Layer
Victim Layer
Simulation Mode
Line Impedance
XtalkPerUnitLength
Saturation Length
The noise units are in Volts and the length units are in meters.
Crosstalk DRCs
Crosstalk DRCs use the table-driven approach to quickly calculate the amount of coupled
noise that you can transmit onto a victim signal. This functionality is leveraged through:
For a specific coupling scenario on the board, crosstalk DRC looks up relevant entries in the
table, interpolates if necessary, and calculates the amount of noise coupled from the
aggressor onto the victim net. Crosstalk is calculated by estimating the distance between the
aggressor net and the victim net within the dimensions of the geometry window. It checks the
value against the constraint and produces a DRC error if the constraint is violated. You can
also output actual values in signal integrity reports or in Constraint Manager.
October 2012
426
MAX_XTALK limits the total (as defined by RSS summation of individual aggressor
contributions) amount of noise in millivolts that can be coupled to a victim net from all
aggressors.
Crosstalk Simulations
Crosstalk simulations extract full coupled-line circuits from the layout, walking the victim net
and searching within the geometry window for aggressors. Two simulations are then run with
specific stimuli applied. The default configuration is as follows.
a driver on the victim is held low, fastest driver on each aggressor is stimulated with a
rising edge, and the receiver pins on the victim are monitored for maximum voltage
excursion from the low state.
a driver on the victim is held high, the fastest driver on each aggressor is stimulated with
a falling edge, and the receiver pins on the victim are monitored for maximum negative
voltage excursion from the high state.
You can modify these defaults to stimulate each individual neighbor at a time, each driver on
the aggressor, even mode rather than odd mode switching, and so forth. The defaults are
typically a good choice for most applications.
October 2012
427
XTALK_ACTIVE_TIME time slots in which aggressor Xnets can switch, and cause
crosstalk (for example 1-5).
Crosstalk Methodology
The following methodology is recommended to mitigate crosstalk and is broken down into the
following sections.
Database setup
October 2012
428
Crosstalk troubleshooting
Database Setup
To predict crosstalk accurately, the board database needs to be set up properly, as it is
essentially an input to the analysis. There are a number of things to set up, all of which you
can drive from the Database Setup Advisor.
For complete details on setting up a design, Setting up the Design on page 63.
October 2012
429
In this example, there are 4 buses defined, XTW_A, B, C, and D. Each of these have been
set up to ignore crosstalk from bits within their own bus.
October 2012
430
When crosstalk sweeps are run to generate the crosstalk tables, spacing is swept from the
smallest line-to-line spacing value in the design to the geometry window value. A good value
to use for the geometry window is about three times the dielectric thickness from the
October 2012
431
October 2012
432
The smallest value of all the line-to-line spacing values defined in all of the spacing
constraint sets
Note: If the difference between the above two values is very large, intermediate values
are automatically created. If a line separation value is larger than the geometry window,
the program generates an error message.
The following limitations apply when you are setting up separation values:
You cannot enter a value greater than that of the geometry window.
6. Select Include Plane Layers to add rows to the table that define crosstalk between
lines on power and ground planes and other lines on either the same layer or on adjacent
conductor layers.
7. Click Create Table to run the simulation, generate the table, and store it in the design
database.
A generated message displays how many simulations will be run and provides you the
opportunity to cancel the simulations.
Generating the crosstalk table enables you to use crosstalk DRCs as well as automatically
seed the PCB Router rules.do file with the appropriate crosstalk data, enabling it to
mitigate crosstalk during autorouting.
October 2012
433
434
435
October 2012
436
October 2012
437
To enable crosstalk-driven autorouting with PCB Router, you must turn on the Max_xtalk
DRC. Do this by choosing Analyze Analysis Modes in Constraint Manager. The Analysis
Models dialog box appears as shown in Figure D-8 on page 439.
October 2012
438
Note that you can set both max_xtalk and max_peak_xtalk. The max_xtalk DRC mode
must be turned On for the crosstalk information to be written by SPIF into the rules.do file.
Max_peak_xtalk has no effect in PCB Router, but is a useful DRC in Allegro post-route. This
is discussed later in the appendix.
Setting the max_xtalk constraint and turning on the DRC in PCB SI makes the following
appear in the resulting .dsn and rules.do files for PCB Router:
(noise_accumulation RSS)
(noise_calculation linear_interpolation)
(crosstalk_model CCT1A)
max_noise
parallel_noise
October 2012
439
tandem_noise
layer_noise_weight
saturation_length
switch_window
sample_window
With these parameters in place, PCB Router works to minimize coupling and avoid violating
crosstalk constraints during routing. Note that since PCB Router routes to max_xtalk
constraints, but has no concept of max_peak_xtalk (max from any single aggressor), you
may see some max_peak_xtalk DRCs appear after autorouting, and possibly some
max_xtalk DRCs as well, depending on the routing density.
For threshold, the PCB SI default MinCoupledLength of 300 mils is used as the default
value for PCB Router. In PCB SI release 14.2, you can control this with the environment
variable SPIF_XTALK_THRESHOLD.
For example, typing:
set SPIF_XTALK_THRESHOLD 700
on the PCB Editor or PCB SI command line causes the threshold value in the rules.do file
to be set at 700 mils. You can also set this in the pcbenv\env file.
Whether the design is fully autorouted or interactively routed, on-line crosstalk DRCs enforce
the crosstalk constraints. Calculations are run real-time during etch editing to help identify
potential crosstalk problems. If the crosstalk constraints are set intelligently, you should treat
these like any other type of DRC and work to eliminate them.
October 2012
440
October 2012
441
October 2012
442
October 2012
443
As mentioned before, we are now looking at simulated crosstalk results, which include the
effects of reflections, so the values are higher than what is seen with crosstalk DRCs (which
only account for initial coupled noise).
Revisiting the crosstalk budget, we had calculated an initial max_xtalk constraint value (for
our 3.3V supply with a +/-5% ripple tolerance) of: (0.8 (.05*3.3))/2 = 317.5 mV
Since we are now looking at simulated results, this constraint can now actually be relaxed now
to 2*317.5 = 635mV.
You can build in some margin and round down to an even 600mV to keep things simple.
Based on the report shown in Figure D-11 on page 444, you are left with 5 signals that violate
the budget and which you need to address.
October 2012
444
Crosstalk Troubleshooting
Based on the Simulated Crosstalk report, create a file containing a list of the signals that you
need to address for crosstalk.
To create a list of nets
1. Choose Logic Create List of Nets.
The Create List of Nets dialog box appears as shown in the following figure.
2. In the List file name text box, enter a filename for the net list.
3. Based on the Crosstalk report, select the nets to be in the list, then click Save.
4. Click Close to dismiss the dialog box.
Figure D-12 Creating a List of Nets
October 2012
445
October 2012
446
This report shows the main aggressors for these problem nets and what the initial coupled
noise values look like.
Now you need to take a look at these cases in the layout and see if you can address them.
One way to do this is to tighten up the max_peak_xtalk constraints for these individual
signals in Constraint Manager, and use the on-line DRCs to find the areas of coupling.
Figure D-15 Grabbing the Signals in the Crosstalk List
October 2012
447
If you look in Constraint Manager, you can see that the 90mV constraint value shows up as
an override on these signals, in blue. At the board level, new DRCs show up, that you can now
address.
To Highlight the Problem Nets
Choose Display Element, select DRC errors in the Find Filter, then click on the DRC
marker.
The problem nets are highlighted and are ready to move.
October 2012
448
In the case above, traces are on top of each other, creating some significant layer-to-layer
coupling. You can slide traces and move them around until the DRCs disappear, then you can
re-run the simulations. Constraint Manager is used to modify override values for individual
signals using the Nets Estimated Crosstalk worksheet. Once again, these show up in
blue, as seen in the following figure.
October 2012
449
You can repeat this process of updating constraints, addressing DRCs, and time domain
simulation until verification results for all signals meet the desired crosstalk levels.
October 2012
450
E
Working with Timing
Introduction
Both timing and signal integrity analysis are critical aspects of ensuring that a design will work
at speed. You must integrate the results of both analysis to get the complete picture of system
timing behavior. Each type of analysis assumes certain conventions about how delays are
computed. As a high-speed PCB designer, you must understand these conventions and have
the ability to check and validate the design data for conformity.
PCB SI provides a bus timing model capability for integrating signal integrity and timing
analysis. See Bus Timing Model on page 470 for further details.
logic hazards.
timing errors.
October 2012
451
October 2012
452
Flight Time
Flight time accounts for the electrical delay of interconnect (PCB etch) between the driving
device and receivers. You can estimate for slow speed circuits but must simulate (signal
integrity) for high speed designs.
Figure E-3 Flight TIme
October 2012
453
October 2012
454
October 2012
455
October 2012
456
SI Analysis Basics
Signal integrity analysis is analog analysis of digital switching behavior. It uses special analog
models to represent device inputs and outputs.
Figure E-7 Signal Integrity Analysis
October 2012
457
October 2012
458
October 2012
459
Component Timing
Figure E-11 A closer look at Tco
October 2012
460
October 2012
461
However, if you simply add the Tco from the databook to the simulated delay, the external
buffer delay portion of the Tco gets counted twice as illustrated in Figure E-14.
Figure E-14 Double-Counting Problem
What you really want to do is add the internal delay and the simulated delay as shown in
Figure E-15 on page 463.
October 2012
462
adjusting the value of Tco used for timing analysis by subtracting out the time attributed
to Tco buffer delay.
subtracting the time attributed to the Tco buffer delay from the input receiver switching
times predicted by simulation.
October 2012
463
October 2012
464
Tip
You cannot directly measure output-to-input delay to determine flight time. The
loading condition used to compute buffer delay and the conditions under which Tco
is measured must be identical.
October 2012
465
October 2012
466
Manual Approach
General Approach
Manual Approach
You can determine allowable min/max flight times using component timing data and a
spreadsheet. You then use signal integrity analysis to verify that the design meets the
computed flight time requirements.
For common-clock buses, you can compute allowable min/max flight times from bus speeds,
system budgets, and component timing data as shown in Figure E-19 on page 468. Timing
equations are programmed into a spreadsheet and allowable flight times computed.
While not elegant, this method is fast, flexible, and reliable when you need to determine the
timing for a small number of buses.
October 2012
467
General Approach
You can use static timing analysis to evaluate system timing and signal integrity analysis to
compute flight times. You then feed flight time data back into the static timing tool.
Timing analysis, layout, and SI analysis are run as separate processes as shown in Figure E20 on page 469. Flight time data from signal integrity analysis is fed back into timing analysis
to complete the loop and integrate the two sets of data. Changing the design requires rerunning the complete loop.
October 2012
468
October 2012
469
Bus- level timing and signal integrity analysis is integrated in a single tool.
You can run analysis interactively as parts are moved or nets are routed.
Figure E-22 on page 471 illustrates the bus timing model. Figure E-23 on page 472 illustrates
the timing flow that you should use within PCB SI.
October 2012
470
Note: The ClockSkewMin column remains on the worksheet but is not used.
October 2012
471
SigNoise Analysis
PCB SI
Constraint Manager
October 2012
472
F
Working with Multi-GigaHertz
Interconnect
Introduction
Serial Data Links
A common design approach to meet today's bandwidth requirements in the telecom and
datacom markets is to use serial data links. You can scramble multiple parallel data streams
of lower frequency buses together to form a single higher frequency serial data stream,
transmit it from one place to another, then subsequently unscramble it back down into the
lower frequency parallel data streams again. This allows you to move mass quantities of data
around with lower physical density.
In the following figure, four parallel 622MHz LVDS buses run to a serializer chip (or serializer
block embedded in a large ASIC), mux'd up to a serial 2.5GHz CML differential pair, and sent
over a backplane, where it is then received and demux'd on another PCB.
Figure F-1 Parallel and Serial Data
Multi-gigahertz (MGH) serial data links have unique design challenges. As opposed to subGHz source synchronous buses, where the end game is setup and hold margins, the ultimate
October 2012
473
Channel Analysis
For differential signals that are used in serial link designs, you must ensure that timing and
voltage margins are met. This is also referred to as acceptable eye opening.
October 2012
474
October 2012
475
DRVR_IC - transistor level or behavioral differential driver, with configurable preemphasis settings
PKG1 and PKG2 - detailed package parasitics, including die-to-C4 bump path and balls
for BGAs
PCB1 and PCB2 - pin escape traces, vias, and coupled traces on the PCBs
Backplane - coupled connectors, large PTHs, coupled traces on the backplane (possibly
pre-existing design)
October 2012
476
Macro Modeling
Macro modeling has been a feature of Allegro PCB SI for many years. It offers nodal,
behavioral and spice-like (Espice) syntax that includes special elements unique to highspeed PCB design.
The advantages to using MacroModels for MGH applications are fairly clear. They ease the
task of what-if analysis considerably. Verification of board level traces is practically impossible
with transistor-level models, due to performance and convergence issues. Yet verification is
feasible with MacroModels. The challenge is building or obtaining them.
The easiest way to develop MacroModels is to start with a well-documented working example
of the type of model you need. It is much easier to edit an existing working model than create
one from scratch. A library of MacroModel templates such as those available in Allegro PCB
SI eases this task considerably. Well constructed and qualified MacroModel templates are
essential to the success of the MacroModeling technology.
MacroModels provide a powerful behavioral device modeling capability. MacroModels can be
used to model various elements in a serial link such as:
receiver amplification.
October 2012
477
The model elements are composed of the behavioral controlled current sources, inverter,
delay line, pad capacitance and the built-in die termination. The total current at the output is
the combined current from the main current source and the delayed current source.
The simplest of these models will have just two classes of parameters; scaling factors S for
the behavioral current sources and Cpad, for the pad capacitance. Variants of this model
can include other transistor level effects like Miller capacitance. The more knowledge you
have about the part, the more likely you will be able to develop simpler behavior models with
fewer parameters.
An important part of the model development process is tuning these parameters to match the
response observed for the vendor-supplied transistor level models. Model accuracy is
certainly enhanced by employing parameter optimization techniques.
It should be noted that you can tune behavioral models equally well to measurements made
on real silicon, circumventing the transistor level matching. Measurement-based techniques
have the potential to yield both increased accuracy and efficiency in your models.
Correlation to Transistor-Level Models
Do not expect to replace transistor-level models with MacroModels. Detailed transistor-level
models are useful for characterization and final verifications, using pre-defined worst-case bit
patterns. However, MacroModels provide enormous productivity benefits in terms of
simulation time, usability, and use model. They are also extremely useful when concurrent IC
and PCB development is going on, especially when final silicon layout is not yet been frozen.
Obviously, correlation is very important for any model used to generate data for design
decisions. You must correlate a MacroModel well to its associated transistor-level model to
October 2012
478
October 2012
479
MacroModels also simulate up to 400 times faster than their transistor-level counterparts,
enabling large bit streams to be easily run. As an added bonus, behavioral MacroModels are
adjusted easily to match the behaviors of the actual silicon measured in the lab.
Building MacroModels
To build a MacroModel, you must collect the following data. Refer to Figure F-6 on page 481
and Table F-1 on page 481.
Normal IBIS data
Vtt
Rt
Pulldown VI Curve
C_comp
Additional data
Pre-emphasis dB, or
October 2012
480
Vtt
(Pullup (ReferenceVoltage
Rt
rt
Pulldown Vi Curve
(Pulldown (VICurve
Ramp rate
(Ramp
C_comp
(C_comp
Unit interval
bitp
Pre-emphasis dB
eqdb
(dt
and/or
padcap
cf1
Technical Notes
October 2012
481
Some Tx designs exhibit miller capacitance effects and may cause slight miscorrelation
when pulldown is on.
Note: You can use the models in both the Allegro PCB SI and Package SI analysis
environments.
It is important to verify your serial link channel design using simulation. In non-ideal channels,
simulations need to comprehend tens and even hundreds of thousands of bit variations. You
can build faster models to perform this kind of simulation by downloading MacroModel
templates and modifying them as required, leveraging the various resources and examples
mentioned previously.
For further information on creating MacroModels, refer to the Allegro SI Device Modeling
Language User Guide.
Via Modeling
Modeling via structures accurately over a very high frequency range is critical in MGH
applications. Vias often represent some of the most significant discontinuities that you can
find on PCB, package, and IC structures. Given their inherent 3D nature, they can cause
severe signal integrity and EMI issues. In addition to signal degradation on the host net, via
excitation of waveguide modes can propagate and radiate energy to neighbor nets and into
space as well.
The via modeling capability is accurate well into the GHz frequency range. Since the
modeling is analytical in nature, the computational cost is minimal compared with generalpurpose 3D full-wave solvers. The electrical via model formats include narrowband,
wideband, and scattering parameters (S parameters). You can easily create via models in
PCB SI, add them as parts to a layout, perform what-if simulations, and perform channel
analysis using SigWave. A distinct advantage to using via models is the ability to remove the
vias from the topology quickly and easily (unlike with hardware prototypes) to see the impact
the vias have on the channel.
You can modify an existing via model or create one from scratch using the Via Model
Generator dialog box shown in Figure F-7.
Note: Before you create a new via model, be sure that the library you want to add it to is
designated as the working library.
October 2012
482
October 2012
483
This is the most accurate via format. It should accurately capture the via behavior over
the entire frequency range.
No. of Freq Points should be 128 points for most via models (this is the default value)
Note: If you include S-Parameter via models in larger S-Parameter circuits, their accuracy
must be similar to that of the final circuit.
S-Parameter Settings Example
Edge Rate
Start Freq.
End Freq.
Bandwidth
No. of Freq.
Points
100 ps
10 MHz
20GHz
20 GHz
128
Convergence issues are possible if the frequency range is stretched too far.
October 2012
484
Use a target frequency that is near the middle of the energy content.
A good rule of thumb is 1/(1000*risetime). For a driver with 100ps rise times, a
target frequency of 10MHz is recommended.
If the Target Frequency is too high, then low frequency (DC losses) are
dramatically overestimated.
If the Target Frequency is too low, then high frequency effects (skin effect and
dielectric loss) are underestimated. However, these are small effects in a via.
This is the least accurate of the via model formats. However, it is very stable and
simulates very quickly.
October 2012
485
Signal-and-signal Via
October 2012
Ground-and-signal Via
486
Power-and-signal Via
G
Modeling in the Interconnect Description
Language
Overview
The Interconnect Description Language (IDL) is the language used by both SigNoise and
device model developers. The language is an extension of SPICE and consists of control
characters, keywords, and values. SigNoise uses IDL to write models for the connect line
segments, vias, shapes, and pins in designs. You can modify these models. Device model
developers use IDL to write models for
Packages. Package models describe the parasitics between a components pads and the
die of the device within.
This appendix describes IDL interconnect models for connect line segments, shapes, pins,
and vias, and shows how you might modify such models.
Connect lines
October 2012
487
The model on the left describes the left section of the middle connect line.
The model in the middle describes both the left section of the connect line segment on
top and the central section of the middle connect line.
The model on the right describes the right section of the connect line segment on top,
the right section of the middle connect line, and the connect line segment on the bottom.
Three
interconnect
models
October 2012
488
The .rlgc declaration is a type of subcircuit inside a subcircuit that is written into the model
by the field solvers.
The declaration includes matrices that specify the self and mutual parasitic values for the
connect lines, segments, and parts in the model and between the connect lines, segments,
and parts.
A self value is the parasitic value of an individual connect line, segment, or part with
respect to some reference, such as a ground plane.
A mutual value is the parasitic values between connect lines, segments, and parts.
The capacitance matrix is a Maxwell Capacitance Matrix. In this form, the c11 and c22
values are not the self capacitance, but the loaded capacitance. The C12 and C21 values
are the negative mutual capacitance values.
The more connect lines, segments, and parts in a model the larger the size of the matrices in
the .rlgc declaration. A model for a single connect line, segment, or part contains matrices
that specify only the self value of that connect line, segment, or part. A model for two connect
lines, segments, or parts has matrices of two self values and two mutual values. A model for
three connect lines, segments, or parts, such as that in the figure below, has matrices of three
self values and six mutual values.
October 2012
489
C
B
A
The model illustrated in the previous figure describes connect line segments or parts A, B,
and C. The self values in the matrices have the following arrangement in the matrix:
A
B
C
A matrix with the self and mutual values has the following arrangement:
A
A-B
A-C
B-A
B-C
C-A
C-B
In this matrix A-B is the mutual value between A and B, C-A is the mutual value between C
and A. Mutual values between the same lines, segments, or parts are identical, so the B-C
mutual value equals the C-B mutual value.
October 2012
490
neg.mutual_value
+ neg.mutual_value
loaded_value
.L frequency_value
+ self_value
mutual_value
+ mutual_value
self_value
.G frequency_value
+ self_value
mutual_value
+ mutual_value
self_value
.R frequency_value
+ self_value
mutual_value
+ mutual_value
self_value
.endrlgc subcircuit_name
The following table shows the keywords and values used in the .rlgc declaration syntax
.
Table G-1 Keywords and Values
.rlgc
subcircuit_name
Length=value
N=value
.C
.L
.G
.R
October 2012
491
self_value
mutual_value
loaded_value
neg. mutual_value
dielectric=4.5 losstangent=0.001
.material sml5
conductivity=5.959e+07 losstangent=0
.material sml4
dielectric=4.5 losstangent=0.001
.material sml3
conductivity=5.959e+07 losstangent=0
.material sml2
dielectric=4.5 losstangent=0.001
.material ml7
conductivity=3.43e+07
.material ml6
dielectric=4.5
.material ml5
conductivity=5.959e+07
.material ml4
dielectric=4.5
.material ml3
conductivity=5.959e+07
.material ml2
dielectric=4.5
.material ml1
conductivity=3.43e+07
.layerstack Layerstack3
+shield( 3.048e-05 1 0 )
+dielectric( 0.0003048 4.5 0.001 )
.crosssection
+rectangle ( 3.43e+07 0 0.0003048 0.0001524 0.00035814 )
+rectangle ( 3.43e+07 0.0005588 0.0003048 0.0008636 0.00035814 )
+Length=length
October 2012
492
*Impedance Matrix.
*Z 0 (n=2)
* 8.559500e+01 1.045800e+01
* 1.045800e+01 8.762400e+01
.ends T_1S_2R_291
The following sections describe IDL control characters, keywords, and values as you
encounter them from beginning to end in the model:
.subckt
.material
.layerstack
.crosssection
.rlgc
October 2012
493
This declaration specifies that the model is a subcircuit of a circuit that SigNoise simulates. It
specifies the following:
The plus sign (+) is a continuation control character that specifies that a line is a
continuation of a declaration in the previous line.
The zeroes in this list of external nodes indicate a reference to a ground plane and
separate the input external nodes from the output external nodes.
To name the subcircuit, SigNoise used
The 1S component indicating one shield layer found in the trace model
The 2R component indicating two rectangular conductors found in the trace model
The 2914 component as an arbitrary number to differentiate this model from other trace
models
The following figure shows how SigNoise can write models for a part of a connect line
segment.
October 2012
494
Part
P1
Part
P2
Part
P3
Part P1 of the middle connect line segment and part of the top connect line segment
Part P2 of the middle connect line segment as well as part of the top and bottom connect
line segments
The external nodes of a model show where the model connects to other parts of the circuit.
The following figure shows the external nodes in the model for Part P1.
Figure G-4
External
nodes
External
nodes
Part
P1
Figure A-5 shows how the model appears in the Sigxsect Cross-Section window, and labels
the external nodes.
October 2012
495
X960Y2440L1
X960Y2460L1
X980Y2460L1
X980Y2440L1
.layerstack Declaration
The next part of the sample model is the .layerstack declaration.
.layerstack Layerstack3
+shield( 3.048e-05 1 0 )
+dielectric( 0.0003048 4.5 0.001 )
A layerstack is a stack of layers in the design bounded by the surface of the board, a power
plane, or a ground plane. A board can have more than one layerstack. The first layerstack,
Layerstack1, is the stack of layers that begins with the bottom surface of the board and ends
at a power plane, ground plane, or the top surface of the board. The .layerstack
declaration in this model specifies a model of connect lines in the third layerstack from the
bottom, Layerstack3.
This layerstack consists of one shield layer and one dielectric layer because the declaration
contains only one instance of the keywords shield and dielectric. If, for example, the
layerstack contained more than one dielectric layer, the model would have more than one line
beginning with the plus continuation control character (+) and the keyword dielectric.
The values in parentheses that follow the keywords shield and dielectric specify in
the following order:
October 2012
496
Note: All layers need these three values. SigNoise applies a dielectric constant value of 1 to
a shield layer as a placeholder even though a shield layer has no dielectric constant.
.crosssection Declaration
After the .layerstack section, the next part of the sample model is the .crosssection
declaration.
.crosssection
+rectangle ( 3.43e+07 0 0.0003048 0.0001524 0.00035814 )
+rectangle ( 3.43e+07 0.0005588 0.0003048 0.0008636 0.00035814 )
The .crosssection declaration specifies the geometry of a cross section of the parts on
connect line segments in the model. For each part of a segment in the model there is a line
beginning with +rectangle and, in parentheses, values for
The four coordinates of the lower left and upper right corners of cross sections of these
parts of segments
These coordinates are for the X and Z axes in models for vertical segments and the Y
and Z axes in horizontal segments, as shown in the following figure.
Z
Y
Axes
X
October 2012
497
The .rlgc declaration begins with a name for the subcircuit. This name is provided by the
field solver. The field solver replaces the STL or MTL prefix for the model subcircuit name
with the RLGC prefix. In this model, the name of the .rlgc subcircuit is
RLGCMTL_1S_2R_2914.
After the name of the .rlgc subcircuit there is, in parentheses, a reiteration of the
Length=length statement from the .crosssection declaration and the size statement
N=2. The N=2 statement specifies that the .rlgc subcircuit provides parasitic values for
two connect lines, segments, or parts and that the matrices that specify these values in the
.rlgc subcircuit have a dimension of 2 by 2 values.
The remainder of the .rlgc subcircuit contains .C, .L, .G, and .R declarations of
capacitance, inductance, conductance, and resistance value matrices.
All of these matrices have the same format for specifying self and mutual parasitic values. The
matrix lists self values diagonally from the top left to the bottom right of the matrix. The self
value on the top of the matrix is the value of the left-most part of a connect line segment in a
October 2012
498
In this matrix, the part of a segment that appears to the left in a cross section has a self
capacitance of 6.625200e-11. The capacitance between the left segment part and the right
segment part is -4.567200e-12. The right part has a self capacitance of 5.729800e-11 and
the capacitance between the right and left segment parts is once again -4.567500e-12.
In this capacitance value matrix, the value to the right of the .C keyword is the frequency
value. In this model, it specifies that SigNoise apply the matrix values for all frequencies
greater than zero.
Characteristic Modal Delay, Admittance, and Impedance Matrices
The last part of the example line segment model is the Characteristic Modal Delay,
Admittance, and Impedance section declaration.
**The Characteristic Modal Delay, Admittance and
**Impedance Matrices of these Transmission Lines:
*Delay Matrix.
*Td 0 (n=2)
* 5.706200e-09 0.000000e+00
* 0.000000e+00 4.889800e-09
*Admittance Matrix.
*Y 0 (n=2)
* 1.185600e-02 -1.415100e-03
* -1.415100e-03 1.158100e-02
*Impedance Matrix.
*Z 0 (n=2)
* 8.559500e+01 1.045800e+01
* 1.045800e+01 8.762400e+0
*Odd Mode Impedances, 2*(z11-z12).
* Z(odd)
= 1.073500e+002
0 (n=2)
5.612800e-001 4.355700e-002
October 2012
499
4.355700e-002 5.612800e-001
.ends MTL_1S_2R_4413
")
("KSPICE"
"DATAPOINTS RLGC MTL_1S_2R_4413
FREQUENCY=0
CMATRIX
8.922200e-011 -1.048100e-011
-1.048100e-011 8.922200e-011
LMATRIX
3.742200e-007 8.696900e-008
8.696900e-008 3.742200e-007
GMATRIX
0.000000e+000 0.000000e+000
0.000000e+000 0.000000e+000
RMATRIX
4.335200e+000 0.000000e+000
0.000000e+000 4.335200e+000
END RLGC
")
("Frequency" "0")
)
conductivity=5.959e+07 losstangent=0
.material sml8
dielectric=4.5 losstangent=0.001
.material sml6
dielectric=4.5 losstangent=0.001
.material sml4
dielectric=4.5 losstangent=0.001
.material sml3
conductivity=5.959e+07 losstangent=0
.material sml2
dielectric=4.5 losstangent=0.001
.material sml10
dielectric=4.5 losstangent=0.001
.material ml9
conductivity=5.959e+07
.material ml8
dielectric=4.5
.material ml7
conductivity=5.959e+07
.material ml6
dielectric=4.5
October 2012
500
conductivity=5.959e+07
.material ml4
dielectric=4.5
.material ml3
conductivity=5.959e+07
.material ml2
dielectric=4.5
.material ml11
.material ml10
.material ml1
conductivity=3.43e+07
dielectric=4.5
conductivity=3.43e+07
.layerstack LayerStackAll
+dielectric( sml10 0.00019304 )
+shield( SL9
sml9 3.048e-05 )
sml3 3.048e-05 )
0.0014224 0.0014224))
0.0014224 0.0014224) )
0.0014224 0.0014224))
0.0014224 0.0014224))
0.0014224 0.0014224) )
0.0014224 0.0014224))
.subckt Declaration
The via model begins with a .subckt declaration:
.subckt VIA_POAR_VIA_L1A0W600L7A135W600
+L1A0W600 L7A135W600 SL3 SL9
October 2012
501
VIA_POAR_VIA_L1A0W600L7A135W600
Specifies a
via model
Width of this
interconnect line
in design units
Design name
Padstack name
Start layer
Angle that an
interconnect line enters
the bottom pad of the
via
End layer
.layerstack Declaration
Via models use a special type of layer stack called LayerStackAll that includes all the layers
in the design. In the following .layerstack declaration, each line is for a layer of the
design.
.layerstack LayerStackAll
+dielectric( sml10 0.00019304 )
+shield( SL9
sml9 3.048e-05 )
October 2012
502
sml3 3.048e-05 )
+shield( SL9
sml9 3.048e-05 )
Thickness of the
layer
Material layer placeholder from
the .material declaration
.via Declaration
The .Via declaration specifies geometry information about via elements such as pads,
voids, drill holes, and the interconnect lines that connect to the via. In the following .Via
declaration, each line is for a pad or void in the via or for the drill hole or the interconnect lines
that connect to the via.
.Via L1A0W600 L7A135W600 SL3 SL9
+ pad( 0.00152146 0.0015748 ellipse(ml1 0.0 0.0
+ void( 0.00135128 0.00138176 ellipse(ml3 0.0 0.0
0.0014224 0.0014224))
0.0014224 0.0014224) )
0.0014224 0.0014224))
0.0014224 0.0014224))
0.0014224 0.0014224) )
0.0014224 0.0014224))
October 2012
503
Specifies that
the geometry
information is for
a pad
0.0014224 0.0014224))
Specifies the
material layer
from the
Specifies that
the pad is an
ellipse
.material
declaration
The Z axis
coordinates for the
pad
Closed-Form Solution
At the end of the via model is a SPICE circuit description that represents the behavior of the
via. SigNoise first uses a closed-form method to generate values for this circuit description.
The following is an example of a closed-form solution:
* Closed-form formula solution
C0 L7A135W600 0 3.04105e-14
C1 L1A0W600 0 3.04105e-14
R01 L7A135W600 L1A0W600 1e-7 L= 1.37277e-09
In this example, two capacitors and an inductor are used to represent the behavior of the via.
You can change these values when you edit a via model.
The capacitance and inductance values in this solution automatically come from a closedform solution. You might want to use the more accurate values that come from the SigNoise
three-dimensional field solver.
October 2012
504
.layerstack Declaration
In the layerstack declaration section of a coupled via model, connections to ground and/or
power planes are identified through the mapping of via nodes to plane terminals, as shown
below.
+shield ( Plane_1_terminal_name Plane_1_conductivity Plane_1_thickness )
+shield ( Plane_2_terminal_name Plane_2_conductivity Plane_2_thickness )
Additional Differentiators
In addition to the declarations addressed above, the following conditions apply to coupled via
modeling:
Vias are connected to planes when their antipad diameters are less than the via drill
diameters
Via terminals are allowed inside the antipad regions as long as the terminal is identified
on the subcircuit node list
Antipads in individual vias may duplicate one another in instances where multi-drills go
through the same antipad
October 2012
505
October 2012
506
October 2012
507
repeat ...
October 2012
508
dielectric=5.2 losstangent=0.001
.material sml5
conductivity=5.959e+07 losstangent=0
.material sml4
dielectric=5.2 losstangent=0.001
.material sml3
conductivity=5.959e+07 losstangent=0
.material sml2
dielectric=5.2 losstangent=0.001
.material ml7
conductivity=5.959e+07
.material ml6
dielectric=5.2
.material ml5
conductivity=5.959e+07
.material ml4
dielectric=5.2
.material ml3
conductivity=5.959e+07
.material ml2
dielectric=5.2
.material ml1
conductivity=5.959e+07
C1 0 1 5.92089e-12
R1 1 X1260Y2620L1 1e-6 L=1e-13
R2 1 X1040Y2580L1 1e-6 L=1e-13
.ends SHAPE_BLM_X980Y2660L1
.sbckt Declaration
The shape model begins with a .subckt declaration:
.subckt SHAPE_BLM_X980Y2660L1
+X1260Y2620L1 X1040Y2580L1
October 2012
509
SHAPE_BLM_X980Y2660L1
Specifies a
shape model
The design
name
The X and Y
coordinates of the
first corner of the
shape
The first corner of a shape is the location of the first point you selected when you drew the
shape.
The following information follows the subcircuit name:
+X1260Y2620L1 X1040Y2580L1
.material Declaration
The shape model contains a .material declaration for each layer in the design. These
declarations contain dielectric coefficients, conductivity, and loss tangent data from the
technology file.
October 2012
510
Closed-Form Solution
At the end of the shape model is a SPICE circuit description that represents the behavior of
the shape. SigNoise first uses a closed-form method to generate values for this circuit
description.
The following is an example of a closed-form solution:
C1 0 1 5.92089e-12
R1 1 X1260Y2620L1 1e-6 L=1e-13
R2 1 X1040Y2580L1 1e-6 L=1e-13
In this example a capacitor and two inductors are used to represent the behavior of the shape.
As with via models, you can change these values when you edit a shape model.
October 2012
511
October 2012
512
H
DML Syntax
Overview
This appendix is a summary of the syntax and structure of Device Model Library (DML) files
and their use within package modeling. Most of the examples here are extracted from existing
library files.
Look at the files for additional details of the structure of a Device Model Library file, as well
as for examples of the different types of devices.
You can use the Model Browser to list the models in the library, and to edit, add, and delete
models. For details on using the Model Browser to work with the models in a library, see Basic
Library Management on page 80.
File Structure
The top 3 levels of a DML file are organized according to the following structure:
October 2012
513
DML Syntax
A DML file contains lists and sub-lists of tokens enclosed within pairs of parentheses.
Comments are also included in the file for documentation purposes.
Comments
A comment consists of all characters on a code line that follow a semi-colon.
Examples:
; This is a comment line.
; End of the package model
ModelTypeCategory Keywords
The following table contains keywords that are used to specify the model type.
Table H-1 ModelTypeCategory Keywords
Keyword
Usage
PackageDevice
PackageModel
IbisIOCell
AnalogOutput
DesignLink
Cable
October 2012
514
Tokens
A token is a string of characters enclosed in double-quotes( ").
Example:
"Dip14Pin"
"LogicThresholds"
"Ramp"
Note: If the token contains only alphabetic, numeric, and underscore characters; the doublequotes may be omitted. However, within double-quotes, a token may span multiple lines, with
the line endings retained as part of the token. Semi-colons within double-quotes are semicolons, not the beginning of a comment.
The first token after each left parenthesis is the name of a piece of data.
The first token of a DML file is always the name of the library file.
Example:
("filename.dml" ...
Parameters
The tokens following the first one, up to the balancing right parenthesis, represent the value
of the data. This collection is called a parameter.
Example:
(example
(type example_type)
(name "this is a name with spaces and even a newline,
which must be quoted")
(timing
(setup "1.1")
(hold "0.6")
)
)
October 2012
515
Sub-parameters of PackageModel
Sub-parameters of PackageModel include:
PinNameToNumber
R, G, L, C
frequency
format
data
PinNameToNumber
The PinNameToNumber parameter maps pin-names to corresponding wire-numbers, thus
associating each pin with an index in the RLGC matrix.
Note: PinNameToNumber parameter is not necessary if the pin-names are numeric. This
information essentially duplicates the WireNumber (if specified) in the PackagedDevice
models. If both are present in a given circumstance then the WireNumber from the
PackagedDevice overrides the information here. This allows special cases and pin-renaming.
R G L C Matrices
These represent the parasitics matrices at different frequencies.
Note: RLGC data in a PackageModel will be used only if CircuitModels do not exist.
Frequency Value
The frequency point (in Hertz) at which RGLC are extracted.
Format
BandedSymmetricMatrix
BandedSymmetricMatrix is used to describe the coupling relationship between pins. Two
values are associated with this format:
B_NUMBER must always be odd. It indicates that each pin has mutuals with
B_NUMBER - 1 neighbors.
October 2012
516
dimension is defined as the number of pins. It is also the matrix dimension of RLGC
parasitics.
SymmetricMatrix
SymmetricMatrix format is the same as
BandedSymmetricMatrix with band = 2 * dimension - 1.
SparseSymmetricMatrix
SparseSymmetricMatrix format describes a R/G/L/C matrix in SPARSE matrix format.
CircuitModels
The CircuitModels format describe a package model using SPICE subcircuit syntax. The
RLGC section does not exist when CircuitModels is defined.
Note: CircuitModels is used for large package model description. It can also embed
arbitrary SPICE models for packages.
CircuitModels may contain the following two parameters:
SingleLineCircuits
(SingleLineCircuits (pin_number (SubCircuitName name_of_subckt)
October 2012
517
Example:
(CircuitModels
(SingleLineCircuits
(1-5 (SubCircuitName (typical longsinglewire))))...
SubCircuits"
.subckt longsinglewire 1 2
r13 1 3 0.002 l=3n
t32 3 0 2 0 z0=70 td=0.1n
.ends longsinglewire"
)))
CoupledLineCircuits
Example:
(BandedSymmetricMatrix (band 27) (dimension 14)
...
It has K = (1 + (27 - 1)/2) = 14, therefore, the total number of data in the data section is
equal to 14 + 13 + 12 + ... + 1 = 105
Example:
(BandedSymmetricMatrix (band 1) (dimension 14)
October 2012
518
643.0f
-55.6f
...
)
Example of PackageModel
(PackageModel
("Ex_14Pin"
(PinNameToNumber ; Maps pin names to numbers
("A1" 1)
("A2" 2)
("A3" 3)
("A4" 4)
("A5" 5)
("A6" 6)
("A7" 7)
("A8" 8)
("A9" 9)
("A10" 10)
("A11" 11)
("A12" 12)
("A13" 13)
("A14" 14)
) ; End of PinNameToNumber
October 2012
519
(0
(R
) ; End of R description
(L
) ; End of L description
) ; End of RLGC at frequency = 0
...
) ; End of RLGC description
) ; End of Dip14Pin
) ; End of PackageModel
Sub-parameters of Cable
Sub-parameters of Cable include PinNameToNumber, RLGC matrix, and CircuitModels.
PinNameToNumber
Same as defined in PackageModel.
RLGC
RLGC indicates the start of the R/L/G/C matrix section.
There are R, L, G, C sub-parameters under this section. They are defined as those in
PackageModel.
Example:
(Cable
("FourWireCable"
(RLGC ; RLGC here is the sub-parameter of Cable to describe matrices.
(0
(R
...
)
(L
October 2012
520
CircuitModels
Same as defined in PackageModel.
October 2012
521
October 2012
522
I
Computations and Measurements
Overview
This appendix presents an overview of the analytical approach used in signal integrity
simulation. The intent is to provide a condensed explanation of how analysis results are
derived.
Using SigNoise, you can quickly examine, or scan, one or more signals by performing
reflection simulations and crosstalk estimations on entire designs or on large groups of
signals. You can also probe individual signals, or small groups of signals, where you want to
delve into specific signal behaviors in detail, to generate and view waveforms and text reports.
When generating text reports, you can sort the results by specific criteria (for example,
undershoot, noise margin, or crosstalk) in order to rapidly identify signals that violate
electrical constraints.
Pre-Analysis Requirements
Before running SigNoise, the design needs to be properly prepared with regards to
properties, constraints, stack-up definition, and device models. For details, see Simulation
Setup on page 143. Assuming the board is set up correctly, it should pass the Design Audit
procedure in a satisfactory manner. Following is a brief summary of some of the more
important items.
Device Models
The libraries containing the required device models must be available in the Library Browser.
There are several different types of models that can be present:
October 2012
523
Stack Up Definition
The stack up definition is very important. This provides the geometries SigNoise needs to
derive interconnect parasitics. The conductor/dielectric thicknesses and dielectric constants
give the Z-axis information, and the X- and Y-axis information are obtained from the routed
conductors in the design. This allows SigNoise to have a 2.5 D database for characterizing
interconnect during signal analysis.
524
Reflection Simulations
For a reflection simulation, SigNoise traces out the extended net (xnet), characterizes the
trace geometries, obtains the relevant device models, builds a single-line circuit (disregards
neighbor nets), and runs a transmission line simulation. The stimulus is applied to the driver
pin on the xnet. In the case of multiple drivers on a net, multiple simulations are run, with one
active driver stimulated in each simulation. Other drivers on the xnet are inactive during the
simulation.
The output of these transient simulations are waveforms and delay and distortion report data.
Waveforms are produced for all driver and receiver pins on the xnet. The waveform is a plot
of voltage vs. time, so the values for noise margin, overshoot, first switch delay, and final settle
delay are taken directly from the waveform data. The receiver waveforms are checked for
October 2012
525
Crosstalk Simulations
In Crosstalk simulations, a multi-line circuit is built that includes the victim net, neighboring
aggressor nets and mutual coupling. The victim net is held at either the high or low state and
the aggressor nets are stimulated. Crosstalk is simulated in the time domain, producing
waveforms and report data.
October 2012
526
Neighbor #2 would not be stimulated in the circuit, since its active time does not overlap with
the victim net's sensitive time. In this case, stimulating both aggressor nets together would be
overly pessimistic, and not indicative of real-world behavior.
October 2012
527
The device model containing the five driver pins, the power and ground pins on the buses
involved, and their package parasitics
Voltage sources are applied in the circuit corresponding to the nodes at which the pin escape
vias contact the power or ground plane. A simulation will then be run in which the outputs at
the driving package are switched simultaneously. This produces waveforms at the internal
power and ground buses, (at the die itself) for the driving package.
Plane modeling can optionally be included for SSN simulations to account for power and
ground planes and decoupling capacitors. In this case, the power and ground planes in the
stackup are characterized in an LC mesh. Decoupling capacitors are extracted from the
design and attached to the appropriate locations in the mesh. Voltage sources in the circuit
are inserted into the circuit based on explicit VOLTAGE_SOURCE_PIN properties attached
to connector pins in the design. This detailed analysis not only increases accuracy, but
enables the user to view 3D animation of the electromagnetic wave propagation through the
design and explore what if scenarios with stackup and decoupling.
Comprehensive Simulations
In a Comprehensive simulation, a multi-line circuit is built similar to that used for crosstalk
analysis. Power and ground parasitics are taken into account similar to basic SSN analysis.
The victim net and the aggressor nets are all switched simultaneously. The user can control
whether odd or even mode switching between the victim and aggressors is used.
Delay Computations
During delay analysis, SigNoise performs the calculations and checks described in this
section. These include timing rule checks and pass/fail waveform checks.
October 2012
528
To derive the contributed IOCell delay, SigNoise hooks up the IOCell to its corresponding test
load circuit and runs simulations to capture the slow, typical, and fast IOCell delay values,
measured at a predefined measurement voltage threshold (Vmeasure) for rising and falling
edges.
These values are stored with the model in the device library. When a SigNoise simulation is
run on the design, the appropriate IOCell (or buffer) delay is backed out to properly
compensate first switch and final settle delays to represent interconnect contribution only.
SigNoise determines the delays described in the following table.
Delay
Description
Propagation Delay
Transmission line delay, the time required for wave propagation from
driver to receiver.
October 2012
529
Delay
Description
The following diagram illustrates buffer delay, propagation delay, first switch delay, and final
settle delay for a rising signal.
Figure I-2 Buffer Delay, Propagation Delay, First Switch Delay, and Final Settle Delay
for a Rising Signal
Receiver
Driver
Vih
Input
Switching
Thresholds
Vmeasure
Vil
Propagation Delay
First Switch
Final Settle
Rising Buffer Delay
October 2012
530
Item
DELAY_RULE
MIN_FIRST_SWITCH
MAX_FINAL_SETTLE
Monotonic Rule
Checks for a smooth transition through the mid-range. This check is especially important
for nets which drive edge-triggered devices which could otherwise double clock due to
a nonmonotonic edge. Ringing that occurs exclusively outside of the mid-range, that is,
above the high logic threshold or below the low, is not a violation of this monotonic rule.
The following illustration shows non-monotonic and non-first Incident rules violations.
October 2012
531
Driver
Receiver
Input
Switching
Thresholds
Non-monotonic edge
reversal in midrange
Propagation
Delay
3x, 5x, ... Propagation Delay
for NOT First incident
Distortion Computations
SigNoise analysis is controlled by user-defined criteria that establish the thresholds for delay
and distortion analysis. SigNoise includes both timing-oriented rules and the following checks
for voltage-related signal noise. You can limit each source of signal noise to a maximum
voltage level to detect high levels of a particular source of noise. Distortion criteria measured
by SigNoise include:
Overshoot
Noise Margin
Crosstalk
October 2012
532
where t r is the rise/fall time and t d the one-way propagation delay through the etch. When
this is the case, the driver does not see the load. Consequently the proportion between
electric and magnetic energy (between voltage and current) is primarily determined by the
impedance of the transmission line connected to the driver. As the signal encounters a load
or another transmission line with different impedance, the proportion between voltage and
current is readjusted. This readjustment is the type of signal distortion called reflection.
Reflection Measurements on page 533 illustrates waveform reflection measurements.
Figure I-4 Reflection Measurements
Vil
Low State
Noise Margin
533
High State
Crosstalk
Low State
Crosstalk
Use the waveforms generated at the die for the driver devices ground node and measure
the low state SSN value in the same manner as described for low state crosstalk in
Crosstalk Measurements on page 534.
Use the waveforms generated at the die for the driver device's power node and measure
the high state SSN value in the same manner as described for high state crosstalk in
Crosstalk Measurements on page 534.
October 2012
534
J
Cadence ESpice Language Reference
Overview
This appendix describes the native language of the simulator tlsim and its input file format,
ESpice. As a time domain circuit simulator, tlsim uses algorithms similar to generic SPICE.
For greater flexibility than available using standard DML syntax, describe the behavior of a
special device by embedding ESpice models in the DML model used by your PCB- and
package-editor, and SigXplorer.
ESpice (formerly Kspice) syntax resembles the generic SPICE syntax. Unlike generic SPICE,
ESpice does not yet support transistor level models. ESpice supports model types for devices
described by IBIS behavioral data. ESpice also supports novel types of controlled sources
and latches. Using ESpice, you can easily, accurately, and efficiently model timing, signal
integrity, and electro-magnetic incompatibility (EMI) circuits entirely in the analog domain.
The first sections of this appendix introduce ESpice and tlsim, and describe the syntax for
basic elements (resistors, capacitors, sources), as well as advanced elements specific to
ESpice (IBIS behavioral models). The last section describes how to embed ESpice models in
a DML model. ESpice is Cadence proprietary SPICE. IBIS is Avantis SPICE and is the
industry standard.
Statements
A set of statements composes an ESpice netlist. An ESpice netlist consists of a set of
statements, each starting on a separate logical line. A logical line comprises a physical line
and continuation lines that follow.
October 2012
535
The following example uses a continuation line to show the same statement:
R1 2 3
+ 4.7k
Statements consist of text elements separated by space and tab characters. ESpice is not
case-sensitive. For example, the following are equivalent:
GND, Gnd, and gnd
Using ESpice, you can indent text in statements with one or more spaces to improve
readability, unlike using Standard SPICE which requires you begin statements at the first
position on the physical line.
You can insert blank lines and comment statements for readability, but may not insert them
before continuation lines.
The following example shows a continuation line and a blank line used correctly:
R1 2 3
+
4.7k
R2
+
6.8k
The following example shows a blank line incorrectly used before a continuation line:
R1 2 3
4.7k
October 2012
536
Node Names
Statements may contain node names. ESpice uses alphanumeric node names.
The following example uses alphanumeric node names:
R1 first_node second_node 4.7k
The special node names 0 and gnd are interchangeable as the absolute reference node.
Note: Leading zeros and trailing letters on node numbers are recognized by ESpice.
Each of the following is a distinct node name:
0, 00, 000, 0a
Using Numbers
ESpice recognizes numbers in integer, floating point, scientific or engineering format as
shown in the following table.
Table J-1 ESpice Numeric Formats
Format Type
Examples
Integer
1, 99
Floating Point
3.14, 0.998
Scientific
1.23e-12, 5e12
Engineering
1.23m, 1.0G
ESpice recognizes the engineering scale factors shown in the following table.
Table J-2 Engineering Scale Factors
Scale Factor
Value
1e12
1e9
Meg
1e6
1e3
1e-3
October 2012
537
Value
1e-6
1e-9
1e-12
1e-15
Important
Engineering scale factors are not case-sensitive. The standard S.I. notation
conventions are not followed. In particular, M is interpreted as mili (i.e. 1e-3, not Meg
= 1e6).
Datapoint Sections
Datapoint sections are tables of values used for controlled sources, IBIS models and lossy
transmission lines.
Datapoint sections start with a DATAPOINT statement and end with an END statement.
ESpice syntax rules do not apply within a datapoint section. Continuation characters (+) are
not allowed.
See Datapoints Statements on page 559 for more detail on datapoint sections.
Statement Types
The first significant letter of a statement is generally used to determine the statement type.
Table G-3 describes the recognized statement types.
Table J-3 ESpice Statement Types
Statement Type
Description
Capacitor instance.
Datapoints
October 2012
538
Description
Inductor instance.
Subcircuit instance.
*|
Note: ESpice does not support the standard SPICE transistor elements.
ESpice supports the control statements described in the following table.
Table J-4 ESpice Control Statements
Control Statement
Description
.END
.ENDS
.INCLUDE
October 2012
539
Description
.MODEL
.PARAM
.NODE_PARAM
.REF_NODE
.SUBCKT
Nodes
Elements
Elements represent the electrical components. Nodes represent how the electrical
components are connected as shown in the example.
October 2012
540
V1
node_2
C1
* Simple circuit
* 5 Volt DC voltage source with negative terminal grounded
V1 node_1 gnd 5
* 10uF capacitor with one terminal grounded
C1 gnd node_2 10u
* 50 Ohm resistor between the non-grounded terminals on
* the capacitor and voltage source
R 1
node_1 node_2 50
You can learn the full syntax for the simple resistor, capacitor and voltage source in later
chapters. This example shows one syntax for these two terminal devices:
<element identifier (type given by first character)>
<first node name>
<second node name >
<element value>
Where two or more elements have matching node names, assume the nodes are connected.
ESpice partitions circuit functions into modules called subcircuits to represent a complex
electrical circuit as a flat netlist. The following example shows a subcircuit within a main
circuit:
October 2012
541
my_rc_subcircuit
node_c
nodeb 50
October 2012
542
Example
* Simple circuit
.param Rval=50
.param Cval=10u
V1 node_1 gnd 5
R1 node_1 node_2 Rval
C1 gnd node_2 Cval
.end
Note: The preferred syntax for the .param statement is .param key=value. Although
the = is optional, use it in all new models.
You can use expressions in ESpice. Expressions must be enclosed in single quotation
marks.
Example
*Simple resistor
.param Rbase=50
.param Rscale=1.25
R1 node_1 node_2 Rbase*Rscale
The next section shows how to create parameters within subcircuit calls and definitions.
Using Subcircuits
Using subcircuits, you can name and easily reuse portions of circuit. ESpice, unlike standard
SPICE, includes syntax for parameterized subcircuits. There are no limits on the size and
complexity of subcircuits. Subcircuits can be global (beyond the circuits.end statement) or
they can be nested (hierarchical).
October 2012
543
The key letter X identifies the element as a subcircuit with an arbitrary number of external
terminals, for example, n1, n2 ...nk. The X statement and the .subckt statement must have
the same number of nodes, matched by position.
You can best use parameters by defining them in the calling X statement. ESpice uses the
following rules to determine parameter value:
1. If the parameter is defined in the calling X statement (or in a .param statement), ESpice
assigns that value.
A simple example:
.subckt top 1 2
x1 node1 nested param1=60
.subckt nested 1
r1 1 0 param1
.ends nested
.ends top
October 2012
544
Here param1 is defined in subckt top and is not defined in the nested subcircuit
nested. Therefore, the value of the resistor r1 is 50 ohms. ESpice assigns the
parameter value from the parent subcircuit top.
3. If the parameter is not defined in the calling X statement, a .param statement, or in the
calling sequence, ESpice assigns the default value defined in the .subckt statement.
For example:
subckt top 1 2
x1 node1 nested
.subckt nested 1 param1=70
r1 1 0 param1
.ends nested
.ends top
You can also pass text strings as parameters as shown in the following example.
.subckt macromodel out pw gnd pc gc input enable ibis_file=ibis_models.inc +ibis_model=default_IO
. . . .
bmydrives out pw gnd pc gc input enable model=ibis_model file=ibis_file
. . . .
.ends
October 2012
545
Basic elements
Voltage sources: DC voltage sources, pulse voltage sources, PWL voltage sources,
sinusoidal voltage sources, and exponential voltage sources
Diodes
Latches: time controlled and voltage controlled latches and hysteresis type latches
October 2012
546
The key letters R, C, L, and K signify resistor, capacitor, inductor and mutual inductor,
respectively. The node numbers are n1 and n2. <...> indicates optional parameters
Examples
5 ohm resistor connected between nodes 1 and 2:
RS 1 2 5
Mutual Inductor driven by inductors LA and LB. The coupling coefficient should be 0<=k<=1.
K LA LB 0.8
October 2012
547
The key letter V signifies a DC voltage source. In this case, the DC voltage source is
connected between the positive node n1 and the negative node n2.
Example
A -2 volt DC source connected between nodes 5 and 0.
VDC 5 0 -2
October 2012
548
The keyword PULSE signifies a pulsed AC voltage source with the following parameters:
V1 - Initial Value
V2 - Final Value
TR - Rise Time
TF - Fall Time
PW - Pulse Width
PER - Period
Example
VIN 4 0 PULSE(0 3.5 0 1.7NS 1NS 10NS 30NS)
A 3.33 MHz 3.5 volt pulsed source connected between positive terminal 4 and negative
terminal 0, with a rise time of 1.7ns and a fall time of 1ns. See the following figure.
Figure J-2 Pulsed AC Voltage Source
0
1.7n
1n
10 n
30
Examples
vclk 7 5 PWL (0 -7 10n -7 11n -3 17n -3 18n -7 50n -7)
Vperiodic 7 5 PWL (0 -7 10n -7 11n -3 17n -3 18n -7 50n -7 ..)
October 2012
549
10 11
50
17 18
0V
Example
VSIG 10 5 SIN (0 .01V 100KHz 1mS 1E4)
VO (offset) Volts
VA (amplitude) Volts
TD (delay) seconds
Example
VRAMP 10 5 EXP (0V .2V 2uS 20us 40uS 20uS)
October 2012
550
October 2012
551
The key letter D signifies the diode element statement. It specifies the nodes marking the start
and end points of the diode in the circuit and identifies the associated diode model.
You need both an element statement and a model statement to specify a diode. The model
control statement starts with the keyword MODEL and identifies a diode model. You can
define IS, the saturation current parameter of the diode.
Examples
A diode connected between positive node 3 and negative node 4 with a saturation current of
1e-14 amperes.
D6 3 4 CUTOFF0V7
...
...
.MODEL CUTOFF0V7 D IS=1e-14
October 2012
552
In this case the key letter can be G, E, H or F. The key letter i or v in i=<expression>
determines the type of the source.
Be sure to wrap the expression in single quotes.
This example examines a simple harmonic oscillator.
Harmonic Oscillator - the Expression Implementation
Using the expression format, you can directly describe the second-order differential equation:
e 2 0 v=v(2) - L * C * ddt_2(v(2)) - R * C * ddt_1 (v(2))
ddt_i (<expr>) is the ith derivative of the expression <expr>.
Following is a list of syntactical elements allowed in expressions.
Special Function ddt
You can calculate derivatives of expressions with tlsim using the special function ddt. The
syntax is:
ddt_n (<expr>)
The index n stands for the nth derivative.
General Form:
ddt_n ((<expr>) (ddtval_n, ddtval_n-1, ... ddtval_1))
October 2012
553
You can implement latches using special function prev as shown in the following example:
vclk clk 0 pulse (0 1 0 1n 1n 4n 10n)
eout out 0 volt=if (v(clk) > 0.1 && v(clk) < 0.9) (v(in)) else
+(prev (v(out)))
October 2012
554
Function
Sum
Difference
Divide
Multiply
Exponent
Percent
Function
&
And
Equal
!=
Not equal
Or
>
Greater than
<
Less than
>=
<=
October 2012
555
* This is general subcircuit for bhvr model which implements charge storage
* effect defined by transit time parameters TTpwr and TTgnd
.subckt chargestoragebuff 1 2 3 4 5 6 7 ibis_file=ibis_models.inc
BUFF=myibisbuff TTpwr=0 TTgnd=0
* introduce current probes at the pwrclamp and gndclamp terminals
vpwrcl 60 6 0
vgndcl 7 70 0
* now attach the bhvr drvr - notice it is attached to nodes 60 and 70
bdrvr 1 2 3 4 5 60 70 Model=BUFF File=ibis_file
* now introduce charge storage capacitor effect
gpwrcl 2 6 i='TTpwr * ddt(vpwrcl)'
ggndcl 7 2 i='TTgnd * ddt(vgndcl)'
.ends chargestoragebuff
Functions
Expressions can contain any of the following functions:
abs
acos
acosh
asin
asinh
atan
atanh
cos
cosh
exp
ln
log
sin
sinh
sqrt
tan
tanh
Special Variables
The variables TIME and PrevTime return the current time and the previous time, respectively.
The variable TimeStep, which returns the difference between Time and PrevTime, is a
short form for the expression (Time - PrevTime).
The following example produces a sinusoidal source:
e pos neg v=sin (2 * PI * Frequency * TIME)
Conditional Expressions
General Form
IF (<expr1>) (<expr2>) ELSEIF (<expr3>) (<expr4>) ELSE (<expr5>)
October 2012
556
Numerical Integrator
.subckt integ3 in out starttime=0 endtime=10e-9 out 0
+v=if (time <= starttime) (0)
+elseif ((endtime > 0) && (time > endtime)) (v(out))
+else (prev(v(out)) + (((prev(v(in)) + v(in))/2.0) * timestep)).
ends integ3
October 2012
557
Note: When PWLSUM is used instead of PWL in an equation, the multiplication in that
equation is replaced by summation.
The key letters G, E, F, and H identify VCCS, VCVS, CCCS and CCVS respectively. These
sources are connected between a positive terminal (pos) and a negative terminal (neg). The
keyword PWL identifies a piecewise linear source.
For the voltage controlled sources (VCCS and VCVS, key letters G and E respectively), the
node pairs following the PWL keyword provide the controlling voltages.
For the current controlled sources, (CCVS and CCCS, key letters H and F respectively), the
voltage sources V1 and V2 provide the controlling currents.
For the PWL keyword, the value of the voltage or current is given by:
I/V = f1(v(c1,c2)) * f2(v(c3,c4)) * . . for G and E elements
or
I/V = f1 (I(v1)) * f2 (I(v2)) *
Non-linear Capacitors
General Form
Gxxxx pos neg PWLSUM c1 c2...capacitor=1
Fxxxx pos neg PWL V1 V2...capacitor=1
October 2012
558
You can model non-linear inductors by adding the parameter, inductor=1 to the E or H
statement.
Datapoints Statements
Many circuit elements use tabular data. You use datapoints statements to embed the tabular
data in the circuit file as shown in the examples.
One Dimensional Voltage Controlled Impedance
GVI1 1 2 PWL 1 2
DATAPOINTS IMPED
-0.5 36
0 36
1.5 36
2.0 60
END DATAPOINTS IMPED
R
60
36
V
-0.5
October 2012
1.5
2.0
559
General Form
DATAPOINTS datapoints_type param1=val1 param2=val2 ..
...
END [DATAPOINTS datapoints_type]
Note: The number of datapoints must equal the number of controlling voltages or
currents.
Non-embedded Datapoints
You can keep a very large number of datapoints in a separate file rather than in the main
circuit description.
e 5 0 pwl 1 0 2 0
datapoints vv VV file=dtapts.inc
datapoints coeff Cf file=dtapts.inc
The VCVS uses datapoints stored by the names VV and Cf in the file dtapts.inc.
datapoints vv VV
....
end vv
datapoints coeff Cf
..
..
October 2012
560
Description
IMPED
impedance data
COND
admittance = 1.0/IMPED
VI
Voltage-current data
COEFF
coefficient table
VV
TIMECOEFF
Building Dynamic Latches and Effects Using Timecoeff and Threshold Controlled
Sources
tlsim supports new time controlled coefficients which you can use to build any kind of
dynamic latch. Implement latches and other dynamic effects using these time controlled
coefficients.
Timecoeff
DATAPOINTS timecoeff vlohi=0.5 vhilo=3
rising
0 1
2n 2
falling
0 2
4n 1
end timecoeff
October 2012
561
2ns
October 2012
4n
562
Example 2
* voltage controlled voltage source
* exhibiting hysteresis
vcntrl cntrl 0 pulse (0 1 0 2n 2n 3n 10n)
e 2 0 pwl cntrl 0
datapoints vv vlohi=0.2 vhilo=0.8
rising
0 -1
0.5 0
1 3
falling
1 2
0.5 -1
0 -1
end vv
October 2012
563
This datapoint statement describes a latch which comes on when the controlling voltage
drops below 0.7 volt and which has a width of 1 nanosecond. SWITCHONTIME,
SWITCHOFFTIME, and DURATION are optional parameters.
If a duration is specified, then the time value in the second column of the data is ignored. If
the flag TRANSITIONINDEPENDENTLATCH is set, the latch does not turn off when the slope
changes to its opposite value.
Time Controlled Latch
The time controlled latch is a special class of latch which turns on or off during falling and
rising transitions. A time controlled latch is sensitive only to the digital slope (that is rising or
falling) of the controlling voltage. For example:
datapoints coeff_on_latch_timecontrolled
rising
0 5n
end coeff_on_latch_timecontrolled
Both values following the rising statement specify time. The relative time is reset to zero once
the controlling voltage starts falling.
October 2012
564
The simple flag parameter specifies a simple voltage controlled hysteresis. The datapoints
have both rising and falling sections. When the control value reaches the maximum in the
rising section, the controlling curve becomes a falling curve. When the control value reaches
the minimum in the falling section, the controlling curve becomes a rising curve.
Analog Hysteresis Latch
In this example, during the rising section, the transition from 0 to 2V is triggered at 0 volts.
During falling, the transition is triggered at -0.5v.
ESS 2 0 PWL 3 0
DATAPOINTS VV HYSTERESIS=1
Rising
-2 0
-1 0
0 0
0.499 2
0.5 2
Falling
2 2
0 2
-0.499 0
-2 0.5 0
END DATAPOINTS VV
* controlling voltage
vd 3 0 pwl(0 1 50n 1 60n 1m 80n 1m 90n 1 100n 1 120n -1 140n -1 150n -0.4 160n -1 180n 0 200n 0.4 230n 1)
October 2012
565
Vo
Vo(s)
sL
1/sC
The syntax for RATIONAL is very similar to PWLSUM with the keyword RATIONAL replacing
PWLSUM. The implementation of the oscillator is:
e2 2 0 rational 1 0
datapoints rational
numerator
1
denominator
1 R*C L*C
end datapoints rational
ai si
/ bi
si
In this equation, ai and bi are real coefficients. The time domain simulator uses the rational
function in its current form.
General Form
Gxxxx pos neg RATIONAL c1 c2 c3 c4 ..
Exxxx pos neg RATIONAL c1 c2 c3 c4 ..
Hxxxx pos neg RATIONAL v1 v2 ..
Fxxxx pos neg RATIONAL v1 v2 ..
October 2012
566
In this equation Hki is the transfer function in the kth row and ith column of the H matrix. [V1
V2...] is the voltage vector. Ik can be directly implemented with a G element. Just like the pwl/
pwlsum, each controlling quantity must have a datapoints statement.
DATAPOINTS RATIONAL
NUMERATOR
a0 a1 ...
DENOMINATOR
b0 b1 b2 ...
END DATAPOINTS RATIONAL
October 2012
567
Four DC I-V tables, one each for pulldown, pullup, power clamp and ground clamp.
Note: In DML files and in Allegro PCB SI, V-t and I-V tables are referred to as TV and VI
tables respectively.
The basic behavioral model has 7 external terminals. You can use a more advanced 11
terminal model in conjunction with macromodels. This black box behavioral model is internally
implemented using the controlled sources. The following figure shows a schematic of the 7
terminal model
Figure J-8 The 7 Terminal IBIS Buffer Model
Device
powerclamp
pullup
Bdrvr
input
enable
V
V
pulldown
groundclamp
The pullup and pulldown sources are switched and turned on or off, depending on the control
voltages at the input and enable terminals. The power clamp and ground clamp are always
on. You model switches from pullup to pulldown or from pulldown to pullup, using a switching
function.
Without voltage-time data, the shape of the switching function is fixed. Otherwise, the model
derives the shape of the function from the voltage-time data. See Learning About TV Curves
and Switching on page 578 for more information about using TV curves.
October 2012
568
The VI tables are not required. Without VI tables, the device is a simple capacitor or an
open circuit.
Any number of TV tables are allowed. You should generate TV curves for resistive
fixtures only and not for reactive elements.
ESpice allows you a maximum of 1000 datapoints for both VI and TV tables.
General Form
BDRVR (terminals) Model=model_name
File=file_name
Note that when Allegro PCB SI generates file_name from the library data, the file is
called ibis_models.inc. Run any simulation, open the circuit file, and you can see an
example of the files format and structure.
October 2012
569
n4
n2
n5
cn
n7
n3
Optionally, you can store the behavioral driver data under the Model_Name in a data-file
using the following syntax:
* start the driver data
DATAPOINTS BDRVR MODEL_NAME
* the device statement has to be followed by data section
* Required version number MODEL_VERSION=2.0
* Required AC parameters
DATAPOINTS AC_PARAM
VHI_REF=value
VLO_REF=value
RISE_TIME=value
FALL_TIME=value
ENABLE_ON_VOLT=value
ENABLE_OFF_VOLT=value
DVGATEOPEN=value
DVGATECLOSE=value
* optional threshold switching parameters
VIN_LO_THRESHOLD=value
VIN_HI_THRESHOLD=value
END AC_PARAM
October 2012
570
The following example also demonstrates storing behavioral driver data under the
Model_Name in a data-file:
* Optional data which specifies the reference voltages for the DC VI curves PullUpReference=5.0
PullDownReference=0.0
PowerClampReference=5.0
GroundClampReference=0.0
* Required pullup data
* the syntax is
*DATAPOINTS data_points_type ibis-data-keyword
DATAPOINTS VI PULL_UP
-10
-0.142
-2
-0.098
-0.5
- 0.038
0.064
0.137
...
END VI PULL_UP
*optional power clamp data
DATAPOINTS VI POWER_CLAMP
...
...
END VI POWER_CLAMP
*optional pull_up switching function
DATAPOINTS COEFF PULL_UP
*optional rising statement
RISING
...
...
*optional falling statement
FALLING
...
...
END COEFF PULL_UP
* Required pulldown data since PullUpReference is used earlier
DATAPOINTS VI PULL_DOWN
-1
-0.07
0.5
0.07
0.127
...
END VI PULL_DOWN
October 2012
571
Adding Terminators
You can add shunt terminators as described in IBIS 3.2.
datapoints bdrvr mybuffer
..
Rpower=100000
Rgnd=100000
October 2012
572
101 102 103 104 105 106 107 Model=JB_IO_Fast thresholdswitch=1 vlohi=2.8 vhilo=2.0
October 2012
573
October 2012
574
October 2012
575
Change the threshold parameters vlohi and vhilo on an instance by instance basis using the
thresholdswitch parameter.
bdrvr 1 2 3 4 5 6 7 Model=buff file=ibis_file
thresholdswitch=1 vlohi=0.5 vhilo=0.5
You can scale the internal C_comp using the switch C_compX
October 2012
576
The prefix VIScale requires the underscore after it. The VI curve scaling keywords are:
VIScale_pullup
VIScale_pulldown
VIScale_powerclamp
VIScale_groundclamp
October 2012
577
October 2012
578
A TV table load should be near the tline impedance you are trying to drive. This is usually in
the 50-75 ohm range.
Table J-8 Number of TV Tables Required for Correct Switching
Pullup
Pulldown
Required number of TV
tables for correct switching
X
X X
2 2 4
The following tlsim command line options control switching for TV curves:
Table J-9 Command Line Options Controlling Switching for TV Curves
Switch
Default Description
BhvrTvOn(Off)
on
BhvrTvincludec_compOn(Off)
on
BhvrTvPreferDomtimedepcoeffOn(Off) on
October 2012
579
Default Description
BhvrTvUseT_dVXTableOn(Off)
on
BhvrTvUseT_IXTableOn(Off)
off
BhvrTvUseModifiedTvCoeffOn(Off)
off
In devices with fewer than 4 TV curves and containing both pullup and pulldown, the switching
coefficient provides continuous and smooth transitions between pullup and pulldown.
Note: Add the instance specific parameter pullUpOnRisepulldownOnFall to change to
switching without continuous transitions between pullup and pulldown.
Adding more than 4 TV tables does not increase switching accuracy and adds simulation
overhead.The switching coefficient in these models depends not on load, but on relative rise
and fall times. In other words, changes in the gate to source voltage determine the transient
behavior.
October 2012
580
Y G
The optional parentheses separate the input and output terminals. The words nri and nro
denote the reference nodes. Normally these are node 0. The field L= specifies the length
of the coupled transmission line system in meters. If L=0, then the RLGC matrix is treated
as a lumped model.
Use the parameters skin_cutoff_freq and dielectric_cutoff_freq when only one RLGC
matrix (freq=0) is available but you need to model skin effect, or dielectric loss, or both.
Examples of Multi-Conductor Elements
NTL_2CONDUCTOR (1 2 0) (3 4 0) L=0.0005 [rlgc_name=Data-name-tag
+file=RLGC_2COND_FILE ]
RLGC_2COND_FILE Entries
*Specify frequency in Hertz
* Note: If the frequency statement is left out, it will be assumed that the
* rlgc data is *frequency independent. In this case there SHOULD be only ONE
* set of rlgc data
FREQUENCY=100HZ
* Now specify the matrix entries row by row
* Specify values per unit length
* for Rmatrix the value is in ohm/meter
October 2012
581
October 2012
582
The mathematical form for the skin_cutoff_freq keyword is the same as that in the skin effect
resistor as shown:
R = Rdc, where f <= fc
R = Rdc sqrt(f/fc), where f > fc
For the conductance, use the following form:
G = Gdc, where f <= fc
G = Gdc * f/fc, where f > fc
October 2012
583
Nodeid is the original node id. The allowed parameter keywords are NAME, VHI_MIN,
VHI_MAX, VLO_MIN, VLO_MAX, CYCLE, VMEAS.
Note: VHI_MIN and VLO_MAX are important, reserved keywords. Using these values, tlsim
can define cycle measurements. For nodes which are the output of an IBIS buffer, the
VHI_MIN and VLO_MAX are defined in the buffer data. The values defined in the buffer data
override the values defined in the node_param statement.
The value of NAME is a string. The other values are floating point values.
Two boolean parameters are supported: PRINT and REFNODE. PRINT specifies the node
values must be printed. REFNODE identifies the reference node from which simple flight
propagation delay measurements are made. The boolean parameters need not be followed
by the equal (=) sign.
Cycle Measurements
You can insert special cycle measurement controls in a node_param statement.
The following statement prints cycle measurements for the 3rd cycle:
.node_param 2 cyclecount=3 print
The following statement prints cycle measurements for the 2nd and the 5th cycles:
.node_param 2 cycles=(2 5) print
October 2012
584
Fall
Vhi_MIN
Vlo_Max
1 cycle
Time Window Measurements
You can measure minimum and maximum voltage in named time windows. The following
example outputs the maximum and minimum voltages in window a (9.04 n to 10.72 n) and
window b (16.32 n to 17.52 n):
.node_param 2 timewindowpairs=(a 9.04n 10.72n b 16.32n 17.52n)
October 2012
585
Print both nodes by using derived names in node_param statements. In the next example,
two names are created: mynode1_derived and mynode2_derived. The statement name()
acts like a function; name(1) substitutes the name of node 1. You can append or prepend
an additional string, for example, derived.
The name function requires the format: name =(name(yournode))
x1 1 sckt
x2 2 sckt
.node_param 1 name=mynode1
.node_param 2 name=mynode2
.subckt sckt 4
.ends sckt
NODE_PARAM_DIFFERENTIAL Statement
This statement is similar to .NODE_PARAM. It measures the differential voltage between a
primary node and a secondary node.
.node_param_differential node1 node2 param1=value1 param2=value2
October 2012
586
Use the standard SPICE print statement to print currents through zero voltage sources, as
shown in the following example:
V_probe 1 2 0
.print I(V_probe)
October 2012
587
22
.ends MyESpiceResistor
"
)
(PinConnections
(1 2)
(2 1)
)
)
)
The PinConnections section, which includes pin pairs, designates this part as a series
element that can electrically connect two PCB nets to create an extended net (Xnet). Entries
are directional from the first pin to the second, so a bi-directional connection has two entries
for each pin pair. To eliminate the creation of Xnets from the nets connected to pins defined
by the model, you must attach the NO_XNET_CONNECTION to the component you are
attaching the ESpice model to.
Note: The external node names in the ESpice subcircuit are used as the pin names in the
library component and must match those in the PCB symbol. Also, the entire ESpice
description must be within double quotation marks. Write comments inside the double
quotations by starting the comment with an asterisk (*).
Use any name for the ESpice subcircuit since Allegro SI uses the packaged device name
to locate the correct library entry. The subcircuit name is set to be the same as the packaged
device name.
Example 3 - A Thevenin Terminator Package
(PackagedDevice
(MyEspiceTerminator
(ESpice
".subckt MyEspiceTerminator G1 S1 S2 G2
R1
S1 G1 220
R1a S1 G2 330
R2
S2 G1 220
R2a S2 G2 330
.ends MyEspiceTerminator"
)
(PinConnections
(S1 G1)
(S1 G2)
(S2 G1)
October 2012
588
S1 G1 G2 MyResistors
X2
S2 G1 G2 MyResistors
.ends MyEspiceTerminator
.subckt MyResistors 1 C1 C2
R1 1 C1 220
R2 1 C2 330
.ends MyResistors"
)
(PinConnections
(S1 G1)
(S2 G2)
(S2 G1)
(S2 G2)
...
...
)
)
)
Ensure that the first SPICE element in the netlist is an R, L, or C. Your netlist will not run
without one of these valid initial elements.
Ensure your syntax is correct and all SPICE elements begin in column 1 since there is
no post-checking format on your circuit.
Ensure that the beginning column for .subckt and .ends is column 1.
October 2012
589
October 2012
590
)
(thevenin_source
(ESpice
.subckt thevenin_source 1 2
R1 1 3 50
V1 3 2 PWL (0 1 2e-008 1.0 2.1e-008 0 4e-008 0 4.1e-008 1.0 6e-008 1.0 6.1e-008 0 1e-007 0)
.ends thevenin_source
(PinConnections
(1,2)
(2,1)
)
0.6
0.65
3e-3
0.7
6e-3
1.0
15e-3
2.3
300e-3
end datapoints vi
.ends table_diode)
)
October 2012
591
October 2012
592