User Guide
User Guide
User Guide
Contents
About this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Where to Find Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Special Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
How to Contact Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
What is Allegro PCB SI? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Why Use PCB SI? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
How PCB SI Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
In the Front End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
In the Back End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
The PCB SI Toolset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
SigXplorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SigNoise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Spectre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Allegro Constraint Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
SigWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Allegro PCB PDN Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
EMControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Device Modeling Language (DML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Allegro Design Entry HDL High Speed Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2
The High-Speed Design Flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Understanding the Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3
Model and Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Managing Model Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Introduction to Model Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Working with SI Model Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Performing Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Basic Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Advanced Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Signal Integrity Model Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Managing Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4
Transmission Line Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
About the PCB and Package SI Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Setup Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Initializing the Simulation Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Assigning Device Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Setting Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5
Floorplanning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Board Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Cross-Section Stackup and Materials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Board Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Room Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Plane Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Keepouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Importing Setup Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Defining Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Drawing Logic Scenarios at the Board Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Component Creation and Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Device Model Creation and Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Netlist Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Logic Scenario Mock-up Example - A Look at Self-Coupling . . . . . . . . . . . . . . . . . . 189
6
Topology Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Extraction Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Unrouted Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Topology Template Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Physical and Extended Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Physical Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Extended Net (Xnet) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Topology Template Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Probing a Net to Extract a Topology Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
7
Determining and Defining Constraints . . . . . . . . . . . . . . . . . . . . . . . . 219
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Solution Space Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
What is Solution Space Analysis? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Solution Space Analysis Stage 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Solution Space Analysis Stage 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Solution Space Analysis Stage 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Solution Space Analysis Stage 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Solution Space Analysis Stage 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Solution Space Analysis Stage 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Parametric Sweeps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Specifying Part Parameter Values for Sweeping . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Controlling Sweep Sampling and Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Sweep Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Saving and Restoring Sweep Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Defining High-Speed Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
What is a Constraint? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
What is a Constraint Set? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Creating ECSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Referencing ECSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Setting Nets to Check Themselves for Crosstalk and Parallelism . . . . . . . . . . . . . . . . . 240
Version Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
8
Signal Integrity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Setting Simulation Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
DeviceModels Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
InterconnectModels Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Simulation Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
S-Parameters Tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
9
Analyzing for Static IR-Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Static IR Drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
10
Post-Route Signal Integrity Analysis Using the 3D Field Solver
353
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
What is Sentinel-NPE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Whole Package Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
PCB-Level Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Supported Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
3D Field Solver Functional Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
3D Modeling and Simulation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Pre-Checking Your Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Important Setup Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Illegal Bonding Wire Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Performing 3D Signal Integrity Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
Pre-simulation Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
3D Field Solution Progress and Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
3D Package and Interconnect Model Device Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Package Model Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Model Parasitics Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Multiport Net Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
S-Parameter Model Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
3D Field Solver Setup Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Interpreting 3D Modeling Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
.................................................................... 383
11
Dynamic Analysis with the EMS2D Full Wave Field Solver 385
EMS2D Operating Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Coplanar Waveguide Characterization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
A
Constraint-Driven Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Constraint-Driven Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Placement Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Constraint-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Routing Stages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Constraints that Affect Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
B
System-Level Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
What is a System Configuration? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
What is a DesignLink? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
What is a Cable Model? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Modeling Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Working with System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
New System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
System Configuration Editor Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Existing System Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Setting Constraints at the System Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
System-Level Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
C
Power Delivery Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
D
Working with Crosstalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Crosstalk DRCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Crosstalk Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Crosstalk Timing Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Crosstalk Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Database Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Crosstalk Timing Window Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Crosstalk Table Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Exporting and Importing Crosstalk Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Constraints and Crosstalk-Driven Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Post-route Crosstalk Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Crosstalk Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
E
Working with Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Timing Analysis Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Static Timing Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Modern System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Flight Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Synchronous Design Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Impact of Crosstalk on Bus TIming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
SI Analysis Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
The Signal Integrity Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Measuring Interconnect Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Minimum and Maximum Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Component Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
The Double-Counting Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Making The Pieces Fit Together . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Determining the Buffer Delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Measuring Flight Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
About Device Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Integrating Timing and SI Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
F
Working with Multi-GigaHertz Interconnect . . . . . . . . . . . . . . . . . . 473
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Serial Data Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Inter-Symbol Interference (ISI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Advanced Solutions for Multi-GigaHertz Signal Design . . . . . . . . . . . . . . . . . . . . . . 474
Channel Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
The Serial Data Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Macro Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Building MacroModels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
Via Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Via Model Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Via Model Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
G
Modeling in the Interconnect Description Language . . . . . . . . 487
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
IDL Interconnect Line Segment Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
RLGC Matrix Values in Interconnect Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Example Line Segment Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
IDL Via Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Example Via Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
Coupled Multiple Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
IDL Shape Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
Example Shape Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
H
DML Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
I
Computations and Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Pre-Analysis Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Device Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Stack Up Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Modeling Unrouted Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
Signal Integrity Simulations and Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
The tlsim Simulator and Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Reflection Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Segment-Based Crosstalk Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Crosstalk Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Timing-Driven Crosstalk Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Simultaneous Switching Noise (SSN) Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Comprehensive Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Delay Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Distortion Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Simultaneous Switching Noise Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
J
Cadence ESpice Language Reference . . . . . . . . . . . . . . . . . . . . . . . 535
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
About the Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Node Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Using Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
Datapoint Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Statement Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
ESpice Syntax Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Learning about DC Path to Ground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Using Parameters and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Using Subcircuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Supported Circuit Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Describing Basic Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Describing Controlled Source Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Describing IBIS Behavioral Model Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
Using Multi-Conductor Transmission Line Models . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Using Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Creating ESpice Models for Use with Allegro SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Creating an ESpice Packaged Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Using SigXplorer Sources and Functions with ESpice Devices . . . . . . . . . . . . . . . . 589
Intent
The intent of this User Guide is to provide conceptual as well as high-level procedural
information regarding the design and analysis of high-speed printed circuit boards and
systems using Allegro PCB SI.
Note: Although PCB SI and PCB Editor share the same database and graphic user interface
with many commands in common, this manual focuses on functionality unique to the PCB SI
environment.
For details on using the board layout functionality available in both PCB SI and PCB Editor,
refer to the Allegro PCB and Package User Guide.
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 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 high-
speed constraints through solution space analysis and how to define constraints in the
Allegro database.
Chapter 8, Signal Integrity Analysis, discusses how to set simulation preferences,
perform pre-route analysis, post-route verification, and describes the various types of
analysis results that can be generated.
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 A, Constraint-Driven Layout, provides an overview of the constraint-driven
placement and constraint-driven routing processes.
Appendix B, System-Level Analysis, describes how to work with PCB system
configurations (DesignLinks) and perform system-level simulation.
Appendix C, Power Delivery Analysis, provides an overview of power delivery analysis
phases and an example of analyzing a power delivery system.
Appendix D, Working with Crosstalk, describes how to set up, simulate and analyze a
design for crosstalk mitigation.
Appendix E, Working with Timing, discusses timing analysis basics.
Appendix F, Working with Multi-GigaHertz Interconnect, provides an overview on MGH
signal design and also discusses macro and via modeling.
Appendix G, Modeling in the Interconnect Description Language, provides an overview
on modeling in the Interconnect Description Language.
Appendix H, DML Syntax, provides a summary of the syntax and structure of Device
Model Library (DML) files and their use within package modeling.
Appendix I, Computations and Measurements, provides an overview of the analytical
approach used in signal integrity simulation.
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.
Click means press and release the left mouse button.
Click-right means press and release the right mouse button.
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.
http://support.cadence.com/wps/myportal/cos/psa/contacts
1
Introduction
A design process that optimizes any high-speed design characteristic without assessing its
impact on other high-speed issues can only prolong the design cycle and increase the chance
of error. However, by enabling engineers to analyze and address all high speed design issues
concurrently, PCB SI reduces both the time and risk required to bring a new high-speed
system to market.
Allegro Constraint Manager lets you associate the topology templates you create in
SigXplorer with critical nets at the schematic level in Allegro Design Entry HDL. This ensures
that electrical constraints are implemented automatically once the netlist is read into either
PCB SI or PCB Editor.
Electrical engineers can use Design Entry HDL SI to determine optimal constraints for non-
critical nets in the front end. This frees up SI engineers to focus on new chip sets and very
critical nets, saving time and money.
PCB SIs ability to directly read and write the PCB Editor database and its unique ability to
create constraints that drive the placement and routing processes ensures that high-speed
design rules are quickly and accurately implemented throughout the design.
The following tools comprise the PCB SI environment. For further details on a tool, click on
its name.
TLsim
Sigxsect Schematic-Level Constraints
Integration
Spectre Allegro Design Entry HDL High
Speed Option
Constraints Management
Allegro Constraint Manager
Waveform Analysis
SigWave
SI
SI provides a physical view of the board and lets you simulate and edit your PCB design.
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.
The Topology Editor is included with PCB SI and Design Entry HDL. It is particularly useful
for the Allegro layout designer looking to modify the implementation of custom net scheduling
that presumably came from an external source (such as a text document from a design
engineer or a vendor design guide). You invoke the Topology Editor from the Constraint
Manager nets worksheet. It is also presented by default in cases where you attempt to invoke
SI SigXplorer and an appropriate Allegro SI license is unavailable. Otherwise, you are
presented with a dialog box that allows you to select the SI SigXplorer tool to use.
repositioning parts.
viewing circuit parameters.
printing the contents of the topology canvas.
rescheduling the topology.
redefining constraint rules.
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.
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.
TLsim
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.
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.
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.
For further details, refer to the Allegro Constraint Manager User Guide.
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, PCB PI presents a family of curves that describe impedance as a function of
frequency at each cell on the PCB. These curves are plotted along with the power delivery
system's target impedance. You can correct those areas on the board where the power
delivery system impedance exceeds the target impedance by placing de-coupling capacitors
whose resonant frequencies effectively lower the system impedance to within the allowable
target impedance or by decreasing the inter-plane dielectric thickness for frequencies too
high for de-coupling capacitors to be effective.
For further details, refer to the Allegro PCB PDN Analysis User Guide.
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.
The following is a simple example of DML syntax a bi-directional S model for a single
inductor with a value of 15 nH:
(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.
The design methodology supported by Allegro Design Entry HDL High Speed option
improves design team productivity and minimizes the impact on overloaded SI engineering
resources. It controls added costs by enabling electrical engineers to develop and manage
constraints on their designs without having to depend on SI engineers to analyze all of the
constrained nets.
Today, engineering teams must identify constrained nets and divide them in to two groups:
those that are imperative to the design cycle and need to be verified quickly by SI engineers,
and those that are not critical, and are not verified. This practice has often meant that these
less-critical nets were 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 critical nets
are managed in this manner, forcing potentially avoidable and expensive re-spins. Design
Entry HDL High Speed option enables electrical engineers to determine optimal constraints
for those not-so-critical nets at the front end, while SI engineers are able to focus on new chip
sets and very critical nets, saving time and money.
2
The High-Speed Design Flows
Note: The actual flow phases you use are largely determined by your corporate PCB design
process and the characteristics of your design.
A DML model refers to a single specific entity. That entity can be a package model, an
interconnect model, an Espice model, or a translated IBIS model. It should be noted that an
IBIS model can contain a package model within one translated file.
A DML file contains one or more models written in the DML language and is identified by
its.dml extension. These model files are used in circuit simulation by analysis tools such as
PCB SI and SigXplorer. Models are procured or developed in advance of simulation and used
to characterize manufactured components such as ICs, discrete components, and
connectors. The Allegro SI simulator requires that simulation models be in DML format for
successful simulation. For further details on DML, refer to the Allegro SI Device Modeling
Language User Guide.
You can use Model Integrity to streamline the model development process. Model Integrity
offers extended functionality and a unique environment that lets you create, edit, and test
DML model files. You can also translate 3rd party model files to DML format.
For further details on model development, see Model Development and Management on
page 51.
Often times, engineering teams identify constrained nets by dividing them into two groups:
those that are imperative to the design cycle and need to be verified quickly by SI
engineers.
those that are not critical, and are not verified.
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 re-
spins 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.
Pre-placement data is a useful starting point for solution space analysis because high-speed
signals often involve these components. Once these components are pre-placed and your
board properly set up, you can extract topologies for critical signals into SigXplorer to begin
the next phase of the high-speed design flow.
For details on performing critical component pre-placement, see Getting Started with the
PCB SI Flow on page 51.
You use SigXplorer to perform solution space analysis by sweeping all possible combinations
of conditions under which your design must operate. These conditions may include:
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.
Constraint Manager plays a key role in guiding and evaluating component placement. Note
in the following figure how the Margin column shows length over and above the manhattan
connection distance available for routing. This provides fast feedback on routability. Zero or
negative margin (in red) is undesirable.
Once you define a set of conditions under which the nets are known to work in the solution
space analysis phase, chance of first-pass routing success is high. You can rip up and re-
route nets, as long as they still adhere to the design rules.
For further details on performing post-route design rule checking, refer to the Allegro PCB
and Package User Guide.
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 Multi-
GigaHertz Interconnect
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.
4dB over a certain frequency range. The design engineer (DE) or SI Engineer would be
tasked with designing the physical geometries for the serial data differential pair such that it
would meet the block-level loss spec. Some of the parameters involved here are:
PCB material and stack-up
trace thickness
differential line width and spacing (and other differential pair parameters)
impedance
via geometry
selection of routing layers
spacing to other traces
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.
If the budget is not met, there are a number of things that you may want to do:
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 non-
compliance.
Go back to the block-level and re-work a particular portion of the interconnect circuit
before returning to the system-level.
When the system-level loss budget is eventually met, move on to the next phase.
For post-route verification, if an actual routed PCB is available, you can extract directly from
SI into SigXplorer, rather than using the system-level S-parameter model generated
previously.
Model Integrity streamlines the model development process by enabling you to:
work with multiple open files for model editing efficiency (copy and paste between files).
translate third-party model files to DML format.
parse IBIS or DML files to check for syntax errors.
view data curves associated with buffer models in SigWave.
simulate buffer models to pre-check their behavior against I/O characteristics.
qualify DML files for use in TLsim.
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.
Managing and Maintaining Models using the Library and Model Browsers
The SI Model Browser available from within PCB SI and SigXplorer enables you to:
create and manage libraries of device and interconnect models.
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.
edit and maintain model files.
For step-by-step procedures on performing these tasks, see Chapter 3, Model and Library
Management..
During analysis, SigNoise develops simulation circuits using models of the devices and
interconnect in your design. Prior to analysis, you must associate device models with the
components in your design and point SigNoise to the device model libraries (where the device
models are stored).
The simulation circuits are created on an as-needed basis by SigNoise in the Interconnect
Description Language (IDL) and stored in the Interconnect Model Library that you specify.
The stored models are used later to avoid repeating the field solution of the same physical
interconnect configuration. You may examine the interconnect models and modify them. See
Modeling in the Interconnect Description Language on page 487 for more information on
IDL.
Device Models
The different types of device models let you choose between varying levels of detail to more
accurately model and simulate your design. The following device models are available:
IBIS device models that behaviorally model active devices.
These models list all the pins on a device, associate individual pins with IOCell models,
and define power and ground pins. They also list the package parasitics associated with
each pin and which power or ground bus each signal pin references. This information is
used for Simultaneous Switching Noise (SSN) analysis. Additionally, IBIS device models
can also define differential pair pairing.
IBIS IOCell models that describe the behavior of an IO buffer (that is, drivers and
receivers).
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.
Package models that are matrices of resistance, inductance, conductance, and
capacitance values for each conductor and between conductors in a package.
Package models can optionally contain within them SPICE sub circuits for more detailed
package modeling.
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.
System Configurations that describe a connection between multiple printed circuit
boards (PCBs).
System Configuration models are used in system-level simulation.
Cable models that describe the parasitics between multiple PCBs.
You use Cable models in multi-board systems where the Cable models typically
represent cables and connectors.
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
simulations from the rats nest information. Using the results of these simulations, you can
evaluate items such as reflections, termination, and delays.
For routed connections, you can simulate using actual routed interconnect models. In these
cases, the unrouted interconnect modeling information is ignored.
DE HDL SI integrates the following Allegro tools, bringing PCB SI technology to the Electrical
Engineers desktop.
Allegro Design Entry HDL
SigXplorer
SigWave
Allegro Constraint Manager
Model Integrity
Use Model
11. Update Constraint Manager (File Update Constraint Manager) with the final
constraints for the net.
Tip
If you have a PCB design with critical components already pre-placed, skip this task
and proceed with setting your board up for solution space analysis. Proceed to
Setting up the Design on page 63.
a. Place the component at the desired location, then click to place it in the design.
Step-by-step procedures
The Rotate option in the context-sensitive menu enables you to rotate the component
attached to the cursor until the correct rotation is shown before you position it in the design.
You can rotate the component by any angle increment, in either a clockwise or a counter-
clockwise direction.
The Mirror option in the context-sensitive menu enables you to mirror the component
attached to the cursor until the correct orientation is shown before you position it in the design.
Note: If the Mirror option is selected on the Options tab, placement automatically uses a
component in its mirrored state.
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.
Identifies source
directory of your
pst*.dat files.
Use this dialog box to load the logic for your design into the design's database and establish
the operating characteristics for the netrev utility. Logic is derived natively (that is, from a
Cadence source) or from a third-party netlist. Choose the appropriate tab to set the
parameters for loading logic into your design.
The SI Design Audit and SI Design Setup commands provide wizards that walk you
through the steps required to set up the tool and perform audit on the designs.
Auditing a Design
The SI Design Audit command runs an audit on all or selected nets in a design. The wizard
helps you audit specific nets in the layout to verify that they are set up properly for extraction
and simulation.
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:
Control which tests are to be performed
Select the Xnets and nets to be audited
Detect and resolve the errors encountered
For information on auditing nets, see Allegro PCB and Physical Layout Command
Reference: S Commands.
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
board ready to run high-speed analysis. It simplifies the setup by guiding you through the
required steps.
The Setup Category Selection wizard is displayed. You can perform the following design
setup tasks using the wizard:
Selecting Setup Categories
Selecting Xnets and Nets to Setup
Setting Up Search Directories and File Extensions
Library Search Directories
Library File Extensions
Working Libraries
Setup Power and Ground Nets
Setup Design Cross-Section
Setup Component Classes
Assign Models to Components
Setup Diff Pairs
Setup SI Simulations
Setup Complete
For information on design setup, see Allegro PCB and Physical Layout Command
Reference: S Commands.
Assigning Models
The simulator uses device models to create circuit simulation models for the nets in your
design. This means that you must assign a device model to each component that you
simulate.
Use the Signal Model Assignment dialog box to assign signal models to design components.
You can use the Auto Setup option in the Signal Model Assignment dialog box for all 2-pin
components with a VALUE property and no previous model assignment.
The simulator looks first in open libraries for existing model names, using the device type
prefix as a reference. If no model is found, the simulator creates a new model in the working
device library and names the model after the device type (with an underscore replacing each
non-alphanumeric character).
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
assigning them, and create new models. You can also load and save the Assignment
Mapping file for the design.
During automatic model assignment, the simulator attempts to assign models to all two-pin
components having VALUE property and no previous model assignment.
The simulator looks first in open libraries for existing model names, using the device type
prefix as a reference. If no model is found, the simulator creates a new model in the working
device library and names the model after the device type (using underscores to replace each
non-alphanumeric character). Models are created using the signal model creation schema.
See Table 2-1 on page 65 for details.
BondWires Tab
Use the BondWires tab to locate and assign trace models to bondwire connections. You can
also modify trace models using the Model Browser.
RefDesPins Tab
Use the RefDesPins tab to assign IOCell models to specific pins. You can also assign
models to pins that have a selection of programmable buffer models.
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.
You manage device and interconnect model libraries by choosing Analyze Model
Browser from the PCB SI menu bar. The SI Model Browser appears as shown in the
following figure.
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).
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
Libraries or IML Libraries section, respectively. The default working library for device
models is devices.dml while the default working library for interconnect models is
interconn.iml.
2. Click the Working Library option in the DML Libraries or IML Libraries section.
3. Click OK to close the Device Library Management dialog box.
You can translate HSPICE, SPECTRE, IBIS, and SPICE models to the PCB SI device model
library (DML) format in the SI Model Browser dialog box.
To translate a model:
1. Select the model in SI Model Browser.
As soon as you select a model, its complete path appears SI Model Browser.
2. Click Translate.
PCB SI reads the original file and creates a .dml file using a name you assign. The new file
is then filtered through a syntax checker, (dmlcheck) to check the syntax and integrity of
library files. If no errors are detected, the output file is created and added to the list of DML
files in the DML Models tabbed page.
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 2-
13 on page 70.
List of model
types you can
clone or create.
List of model
types you can
filter on.
Use SI Model Browser to add, delete, edit, and list models in the device library.
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).
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 S-
Parameter Via model type, it is available in Model Browser for Allegro PCB SI Multi-Gigabit
Option.
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
dialog box displays a list of all models in the design and shows related source and status
information for each model.
3
Model and Library Management
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.
The DML Library Management dialog box provides controls to set the working library, ignore
libraries, and create indices.
You cannot access device and interconnect models unless their libraries are first added to the
library search list. Conversely, if a library is no longer in use, you can remove it from the
search list thereby improving overall library access performance.
Libraries are searched starting at the top of the list. In cases where a model is included in two
or more libraries, you can use the search order to determine which library SigNoise searches
first. SigNoise uses the first model found.
SigNoise only adds models to the working libraries. If you want to add a model to a library
that is not the working library, you must first make it the working library before you start the
process. You can have one working device model library and one working interconnect model
library active at one time.
Important
The name of the working library for device or interconnect models appears in the
Working: field above the library search list.
To improve access performance with large device model libraries, you can add a library index
(in place of the library file) to the Device Library search list. An index is a .ndx file that
contains pointers to the device models in the DML. The index requires fewer resources
because only models required for analysis are loaded from the index into memory, as
opposed to loading the entire library. This utility performs the same checks as dmlcheck, to
ensure that the indexed models are syntactically correct. Only models that pass dmlcheck
will be indexed.
Note: Index files are read-only. For this reason, you cannot index any library currently
designated as the working library to which SigNoise automatically writes any edits.
Use the mkdeviceindex utility to create a library index for one or more device model library
files. You can access the mkdeviceindex utility from the Library Browser (Make Index
button) or the command line.
To access the mkdeviceindex utility from the command line, enter the following
command:
mkdeviceindex [-d] [-o <index_filename>] <library_filename>...
Argument Function
-d Checks model dependencies. For example, an IBIS Device
model is indexed only when all required IOCell and
PackageModel models are present and pass the checks.
-o Names the device model library index.
index_filename Names the device model library index for the IBIS input file
you want to translate.
library_filename Names one or more device model libraries.
Note: You can also specify directories which are
hierarchically searched for *.dml files.
The mergedml utility enables you to combine one or more model libraries into a single library.
You can access the mergedml utility from the Library Browser (Merge DML button) or the
command line.
To access the mergedml utility from the command line, enter the following command:
mergedml <library_filename>... -o name
Argument Function
library_filename Names one or more device model libraries to combine.
-o Names the merged output library.
Use the dmlcrypt program to produce encrypted versions of DML files to protect model data.
You can use encrypted files for simulation, but you cannot view them in plain text. The
program requires the name of an existing DML file and the name of a new encrypted DML file
to write. For example:
dmlcrypt devices.dml devices_e.dml
Caution
Once a file is encrypted there is no way to convert it back to plain text. Be
careful to retain a copy of the original plain text DML file.
Doing so will remove these files at simulation ensuring that no plain text copy of your data
remains.
You can recognize an encrypted DML file by the characters at the beginning:
FILE_FMT=SYENCRYPT2 &<qpBi#48tk]OzP):^"7)[C ...
You can use the dmlcheck utility to check the syntax of one or more library files. For further
details, see Auditing Models and Libraries on page 134.
Library Structure
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.
The digital device model library supports models for parts from four types of digital logic
families (or technologies). A parts digital logic family refers to the different processes and
implementations used in the manufacture of the parts used in integrated circuits. For
example, you can use bipolar transistor-transistor-logic, CMOS, bipolar emitter coupled logic,
or a combination of several technologies. Each technology has different input and output
parameters. The library includes the digital logic families described in the following table.
Technology Description
ABT Advanced BiCMOS Technology for bus interfaces with high drive, lower
power consumption, and fast propagation.
ALS Advanced Low Power Schottky for low power consumption in non-speed
critical circuits.
ALVC Advanced Low Voltage CMOS for low power consumption.
FTTL Fast Transistor-Transistor Logic for speed critical circuits.
Number of
Technology Description
IOCell Models
GTL 01 IOCell models derived from Texas gtl spice files.
PCI 04 Compatible IOCell models for both 3v and 5v derived
from Intel pci spice files.
ASIC 22 IOCell models for different current capability both for 3v
and 5v, with and without slew made from suitable
approximations for the ASIC CMOS technology.
Managing 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.
Tip
You can examine these files for important details regarding the format and syntax of
device models as well as the structure of the device model library. The libraries
contain examples of different types of device models and are well commented as
shown in the following example.
Example
(IbisPinMap
(13 ; Pin 13 of this device.
(signal "RAS0#") ; Signal name, not used.
(signal_model "CDSDefaultOutput") ; The IOCell model for this pin.
(ground_bus gndbus) ; Attach IOCell ground pin to this bus.
(ground_clamp_bus gndbus) ; If not present this defaults to the
; ground_bus value.
(power_bus pwrbus) ; Attach IOCell power pin to this bus.
(power_clamp_bus pwrbus) ; If not present this defaults to the
; power_bus value.
(R 200m) ; Resistance, Inductance, and
(L 5n) ; Capacitance for the pin-lead.
(C 2p) ; These are ignored if PackageModel is
; used, and defaulted to the
; EstimatedPinParasitics if not specified
; and no PackageModel is set.
(WireNumber 13) ; The WireNumber is only needed if a
; PackageModel is set and the pin-names
; are not numeric. The WireNumber maps
; a pin to an index in the PackageModel
; matrix. If the pin names are numeric
; and the WireNumber is absent then the
; pin-name is also assumed to be the
; WireNumber. In this example the
; WireNumbers are not needed, but
; included to show the proper syntax.
Available Models
The following tables describe the available device and interconnect models, their contents,
and how they are used.
Device Models
Interconnect Models
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.
Using the Model Browsers you can perform the following basic model development tasks.
List the models in a library.
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.
Delete a model from the working library.
Select a Model Field Solver (for Interconnect Models only).
Filter fields at the top of the Model Browser control which models are displayed in the Model
Browser list box. You can specify which models are listed in the model search list by library,
by model type, or by characters in the model name.
You can add a device or interconnect model to the working device or interconnect model
library by copying (or cloning) an existing model or by creating a new model with default
values. You must first create a device model before you can edit it to characterize a particular
device.
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 Displays the Create Espice Device Model dialog box.
IBISDevice Displays the Create IBIS Device Model dialog box.
PackageModel thru Opens a dialog box that prompts you to specify a name for the new
Connector model type.
Clicking OK then adds a template file for the model to the working
library that you must edit to complete.
The following table describes the Add Model menu options for interconnect 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.
Trace thru Diff Pair Opens a dialog box that prompts you to specify a name for the new
CPW model.
Clicking OK then adds a template file for the model to the working
library that you must edit to complete.
Closed Form Via Opens the Via Model Generator that lets you create a new model or
thru Stacked modify an existing one. For detailed information, view the online
Coupled Vias Help for the dialog box.
Shape and Pin 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.
The SIGNAL_MODEL property assigned to components using the Signal Model Assignment
dialog box (instances) overrides those in the device definition, if they exist.
SigNoise uses the following precedence to determine which model gets assigned to a device.
1. An instance-specific SIGNAL_MODEL assignment made in the Signal Model
Assignment dialog box (stored in the .brd file).
2. A SIGNAL_MODEL property on the component definition (Design Entry HDL PPT file).
3. A VOLT_TEMP_MODEL property on the component definition (Design Entry HDL PPT
file).
4. A DEFAULT_SIGNAL_MODEL property on the component definition (Design Entry HDL
PPT file).
You can use a default model name pattern as a placeholder for a to-be-procured library of
models or for implementing model names based on your internal model naming conventions.
You can edit any existing IBIS device model (except Cadence default models) that has been
created and added to a library. If you create the model by cloning (copying) an existing model,
you need to edit the cloned model so that it characterizes the device you are modeling. If you
create the model from scratch, it contains default values that you may want to edit.
IBIS device models are modified using the IBIS Device Model Editor.
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.
group signal pins and assign IOCell models and IOCell supply buses.
Use this tabbed page of the IBIS Device Model Editor to:
specify package model parasitics for the device.
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.
measure buffer delays.
add, edit, or display buffer delay information.
set wire numbers.
Use the IBIS Pin Data area to view and edit the data, including buffer delays, for each pin
associated with the IBIS device model. Pins are listed by wire number order. Pins with no wire
number are listed in alphanumeric order.
When you select a pin in the list box, the IBIS Device Pin Data dialog box appears displaying
data for that pin. For further details, see Adding or Editing Data for a Pin on page 110.
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.
Update process for component pins in the IBIS device model being edited
You can dramatically expedite the process of updating IO cell models and diff pair data in IBIS
device models to match the pin uses of a specified component in your design. You will find
this procedure particularly useful for devices that contain very large pin counts.
Note: This functionality assumes that the pin uses of components in your design are correct.
Also, this feature does not replace or affect the model assignment functionality addressed by
the signal model command (Analyze Model Browser) that updates the pins of a
component based on the buffer model of the IBIS device model assigned to the component.
When you select Update Pins From Component in the IBIS Device Model Editor, the Select
Component dialog box appears, as shown in Figure 3-6.
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:
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 BI Not updated
IN Create IC cell model of type
Input
OUT, TRI, OCA, OCL Create IC cell model of type
Output
POWER Sets signal_model to POWER
GROUND Set signal_model to GND
NC No signal model; set signal to
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:
T R
Non-Inverting Net Name Inverting Net Name Format
Format
<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.
*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 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
*WARNING: Pin 8 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.
*NOTE: Pin 9 exists in both the component and the model. The component pin
is of type output. The model references buffer model CDSDefaultIO which
is of type IO. A new buffer model named CDSDefaultIO_OUT of type output
will be created from the IO buffer model.
*NOTE: Pin 10 exists in both the component and the model. The component pin
has a pin use of GROUND and the model pin references buffer model
CDSDefaultIO. This buffer model will be changed to GND.
*NOTE: Pin 11 exists in both the component and the model. The component pin
has a pin use of NC and the model pin references buffer model
CDSDefaultIO. This buffer model will be changed to NC.
*NOTE: Pin 12 exists in both the component and the model. The component pin
has a pin use of POWER and the model pin references buffer model
CDSDefaultIO. This buffer model will be changed to POWER.
*NOTE: Pin 13 exists in both the component and the model. The component pin
is of type output. The model references buffer model CDSDefaultIO which
is of type IO. A new buffer model named CDSDefaultIO_OUT of type output
will be created from the IO buffer model.
*NOTE: Pin 14 exists in both the component and the model. This pin is correctly
defined as a POWER in the model so no changes are required.
*WARNING: Pin 15 exists in the model but not in the component. It will be
removed from the model.
*NOTE: A diff pair between pins 6 and 8 exists in both the model
and the component so it will be saved.
*WARNING: A diff pair between pins 5 and 2 exists in the model but not in the
component. It will be removed from the model..
Use this tab to group the power and ground pins of a device into named power and ground
buses.
Figure 3-7 IBIS Device Model Editor - Assign Power/Ground Pins Tab
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.
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.
Figure 3-8 IBIS Device Model Editor - Assign Signal Pins Tab
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.
Specifying Parasitics
To specify parasitics for an IBIS device, first select the Edit Pins tab of the IBIS Device Model
Editor dialog box.
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.
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.
Note: SigNoise uses this specified package model in the simulation circuit model of the
layout and ignores any values in the Estimated Pin Parasitics fields. Also, ensure that you
re-measure buffer delays after changing parasitics.
To access the IBIS Device Pin Data dialog box with data for a specified pin.
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.
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.
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.
When measuring buffer delay values for a device, SigNoise performs only one simulation set
for each group of pins having the same IOCell model, pin parasitics, and test fixture. Because
of the complex nature of package models, SigNoise always simulates all pins for any device
having an assigned package model.
Click on Measure Delays to display the delay measurement options: Unmeasured Drivers,
All Drivers, and Clear All Delays.
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.
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.
IBIS IOCell models are modified using the IBIS IOCell Editor. Using the IOCell Editor you can
modify:
general information about the model.
high and low logic thresholds for an input buffer.
rise and fall times and high and low logic thresholds for an output buffer.
delay measurement test fixture data for the model.
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.
Access the V/I curve editors.
List various minimum, typical, and maximum die capacitance values as well as reference
temperature values for the IOCell model you are editing.
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.
Use this tab to enter high and low thresholds for voltage-in.
Use this tab to enter minimum, typical, and maximum voltage and time delta values for rise
and fall slew rate. You can also access the VI and VT curve editors from this tab.
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.
This tab contains the test fixture data SigNoise uses when measuring buffer delays for rising
and falling drivers (output buffers) and to optionally define an ESpice model as the test fixture.
The test fixture values specify the loading conditions under which SigNoise measures buffer
delays. Note that the test fixture circuit illustrated in Figure 3-16 on page 121 includes the
package parasitics for the specific pin being measured.
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:
If you are defining information for single-ended test fixtures but your output model does not
contain that information, you need to populate the Resistor, Capacitor, and Termination
Voltage, and V Measure fields. If your output model does specify a test fixture, use the
ESpice Model field to select a specific model from a loaded DML library as the test fixture.
If you are defining information for diff pair test fixtures but your output model does not contain
that information, you cannot use the model for the test fixture. Instead, you must enter the
necessary buffer delay information in the IBIS Device Pin Data > Buffer Delay dialog box.
For further details on this tab, or for procedures regarding its usage, refer to the
signal_library command.
Vterm
Rterm
Vout
Cterm
From the Output Section tab of the IOCell Model Editor, click:
PullUp to edit the high state V/I curve
PullDown to edit the low state V/I curve
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.
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.
You can access the V/T curve editor from the Output Section tab of the IOCell editor. To
display a V/T curve editor:
From the Output Section tab of the IOCell Model Editor, click:
Rise Wave to edit the rising V/T curve
Fall Wave to edit the falling V/T curve
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.
If the IOCell model you are editing does not have falling_waveform or rising_waveform
sections, you can import the waveform from a carefully designed AWB simulation.
Specify the path to the AWB wave file that contains the measured waveform and a name
for the text fixture.
For further details on this dialog box, or for procedures regarding the modification of V/T curve
data, refer to the signal_library command in the Allegro PCB and Package Physical
Layout Command Reference.
Use Edit in the Model Browser to modify a selected ESpiceDevice model. Your default text
editor is opened with the contents of the Espice model.
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.
An analog output model represents a driver pin on an analog device. In analog output models,
you specify Cadence Analog Workbench (AWB) wave files for rising and falling edges, pulses,
and inverted pulses to describe the behavior of the driver pin.
Analog Output models are modified using the Analog Output Model editor.
The Analog Output Model Editor dialog box appears as shown in Figure 3-20 .
Using the Analog Output Model Editor you can perform the following tasks.
Use the Series Resistance field to specify a resistance value.
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.
Once you have modified the geometry portion of an interconnect model using TextEdit, you
can regenerate the models electrical data using the Solve button on the Model Browser as
explained in the following procedure.
Models are refreshed by searching DML files based on their pre-defined order in the SigNoise
library list. The first model of the same name and type that is found is used for the refresh.
This scheme allows you to move libraries or add new ones as desired.
When a model in the database is re-loaded from a Device Model Library, any Xnets that are
affected by the model are updated. Additionally, pin-use codes of all components affected by
the refresh are re-checked. If they are inconsistent with the new model, they are updated and
a text window is displayed with a report listing the pins whose pin-use codes were updated.
When required, you can also dump device models in the current design to a new signal
integrity model library.
The Model Dump/Refresh dialog box contains functions that let you perform verification and
source management operations on the device models in your current design. Once this dialog
box is accessed, models are checked against their source while a meter is displayed showing
the progress of the task. Upon completion of the check, a list box displays all models resident
in the current design.
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.
There are two possible status messages that can appear against a device model in the Signal
Model window. They are described in the following table.
Message Meaning
Same The code of the model resident in the current design is
identical to the source code of the model in the library.
Note: For all models from Cadence standard libraries and
Zeelan libraries (which users cannot change), the Status
field value will always be Same.
<integer> differences There are <integer> differences between the code of the
model resident in the board and its source code within the
library shown in the Refresh Source field.
Reports
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.
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.
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.
Use the dmlcheck utility to check the syntax of one or more library files or models. There are
actually several ways to invoke dmlcheck. As you recall, the IBIS model editors have DML
Check buttons which enable you to check the syntax of new models as they are created. You
can check a group of libraries (.dml files) using a command line entry. Also, in some cases,
the dmlcheck utility is invoked automatically.
Still another way to invoke dmlcheck is to use one of the following Library Audit options.
Options Function
-bufferdelay Calculate the buffer delay for each IBIS Device pin. You
must also specify the -o option with this option.
-curvedir Creates the specified directory into which each VI and VT
<directory> curve creates a SigWave waveform file.
-o <extension> Appends the specified extension to the output file created by
dmlcheck.
library_filename One or more device model libraries to be checked.
The dmlcheck utility checks the syntax of each file in turn. It prints errors and warning
messages as necessary to standard text output and also reports when a file checks out okay.
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
Model Translation
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.
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.
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-
Choose Analyze Model Browser in SigXplorer.
For further details, refer to the Allegro Signal Explorer User Guide.
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
There are two different ways in which you can use transmission line simulation. You can
screen entire designs or large groups of nets for problem areas. Based on the results of these
initial analysis, you can then analyze specific individual signals or small groups of signals in
order to troubleshoot signal integrity issues.
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.
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:
ten types of standard analysis text reports.
Descriptions for the different types of standard analysis text reports generated by SigNoise
are provided in the following table.
Custom Reports
You can define and then generate text reports with a specific format that you define using the
Custom Report tab in the Report Generator dialog box.
The waveform data shows the waveform of a signal on a driver-receiver pair. SigWave can
display waveforms for all pins in a simulation circuit as well as the VI curves for IOCell models.
SigNoise generates models for the interconnect in your design. The field solvers generate the
parasitic values in the model. The Sigxsect window shows you a three-dimensional view of
the interconnect and its parasitic values.
Simulation Setup
Setup Options
The following table describes the Analyze menu options relevant for simulation.
.
Table 4-2 SI/EMI Simulation Menu Option Descriptions
Option Description
Initialize Displays the Signal Analysis Initialization dialog box. See
User Directed Initialization on page 145.
Model Browser Displays the SI Model Browser dialog for working with libraries
and models. See Chapter 3, Working with SI Model Browser.
Model Assignment Displays the Signal Model Assignment dialog box for
assigning models to components. See Auditing Simulation
Setup on page 159.
Option Description
Model Dump / Refresh Displays the Model Dump/Refresh dialog box for dumping
signal integrity models (stored) in the current design to a
library or refreshing models in the current design with changes
made to their source files in the library. See Chapter 3,
Managing Models Resident in a Design.
Preferences Displays the SigNoise Preferences dialog box for specifying
the analysis parameters. For details, see Chapter 8, Setting
Simulation Preferences.
Probe Displays the Signal Analysis dialog box for detailed analysis.
For details, see Chapter 8, Interactive Simulation.
Xtalk Table Displays the Signal Analysis Crosstalk Table dialog box from
which you can specify a crosstalk table or create one. See
Appendix D, Crosstalk Timing Windows, for more
information.
Automatic Initialization
You do not have to perform any manual initialization tasks before you simulate. When you
initiate a signal integrity or EMI simulation from your PCB or Package editor, SigNoise
automatically takes the following initialization actions.
Assumes single board analysis mode.
Opens or writes the signoise.log file in the start directory.
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.
Uses the system configuration last used in the current case.
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.
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.
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.
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.
Important
Before performing simulations, choose Setup SI Design Audit to verify that each
component has a model assigned to it. For further details, see Auditing Simulation
Setup on page 159. When necessary, you are required to manually assign device
models.
The Signal Model Assignment dialog box is displayed as shown in the following figure.
Using this dialog box you can perform the following tasks.
Choose to have SigNoise automatically assign models to capacitors, resistors, and
inductors.
Manually assign models to components and bond wires.
Disassociate models from design objects.
Save model assignments to a Model Assignment mapping file or load an existing
mapping file.
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.
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.
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.
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.
For further details on this tab, refer to the signal_model command in the Allegro PCB and
Package Physical Layout Command Reference.
General system variables can be set in either your local .cshrc file (UNIX platforms) or in
the System Properties dialog box (Windows platform).
The variables in the following table can be set by adding its command line as an entry in your
local .cshrc file.
Variable
Purpose Command Line
Name
EDITOR Sets the default text setenv EDITOR xterm -e /usr/ucb/vi
editor.
PRINTER Sets the default setenv PRINTER printer_name
printer to use when a
print command is
given.
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.
You can set the variables that are described in the following table by adding an entry within
the User Variables section of the System Properties dialog box.
Variable
Purpose Value
Name
EDITOR Sets the default text editor_application_name
editor.
PRINTER Sets the default printer_name
printer to use when a
print command is
given.
The PCB SI environment variables for both the UNIX and Windows platforms are set in your
local env file (<home>/pcbenv/env).They apply to the Transmission Line Simulator, and
other analysis tools which reference them.
Tip
You are not required to set these environment variables unless you choose to
customize your simulation environment. Setting these environment variables is
optional.
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.
You can set the variables in the following table by adding its command line syntax as an entry
in your local env file.
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.
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 4-
5 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.
2. Save the file, then type the following line in your PCB SI or SigXplorer command console
window to have the env file read.
source <home>/pcbenv/env.txt
The new environment variables are now set in your Allegro PCB SI session.
#
# ALLEGRO local user's environment file
# # - this indicates a comment
#
# read global environment file source $ALLEGRO_INSTALL_DIR/text/env
#
# Do not edit the default header above this line.
#
# Custom user preferences below
#
# enforce lossy Welement algorithms for MGH sims
set Enforce_Welement_Simulation 1
#
# holes in the shield layers are included in delay calculations.
set USE_ACCURATE_DELAY_CALCULATION
#
# system Xnet names can come from any design.
set SXNET_NAME_FROM_DESIGN = Any
#
# define a trapezoidal trace cross-section.
# value is the acute angle of the sides of the trapezoid.
# set TrapeZoidal_Angle_in_Degree = 60
#
# for very fine geometric shapes below 1 mil
# set BEM2D_BOUNDARY_ELEMENT_SIZE = 5
#
# suppress SigWave display of internal i waveforms
# set SW_HIDE_ALL_I_WAVEFORMS
#
# set the default display of T-line delay to be in length.
set SIGXP_LENGTH_MODE
As your design and its libraries are checked, audit errors are listed in the Audit Errors
page of the SI Design Audit wizard. This page displays a list of errors encountered,
ignored, or resolved during the audit process.
You can click the Report button to generate a report of the errors encountered during audit.
The following figure shows the SI Audit Errors Report window with a sample report. Use this
window to view and save your setup report as needed.
For information on design audit, see Allegro PCB and Physical Layout Command
Reference: S Commands.
nets with the DIFFERENTIAL_PAIR property and no differential pair signal models on
pins, or vice versa.
DISCRETE components with the wrong PINUSE property.
To find setup problems that may hinder accuracy (Warnings), SigNoise checks for:
default settings in the layer stack.
wire bond layers that do not have the SIGNAL_MODEL property attached to clines.
components that have no SIGNAL_MODEL property.
nets with a DC VOLTAGE property.
default IOCELL models that are not set.
PLANE layers that have no name assigned.
Creation Scheme
SigNoise is the Allegro SI simulation engine. It creates the run directory structure required
for simulation when it is needed. In most cases, the parent directory of the SigNoise run
directory structure is the directory from where you start your design software. Your start
directory contains a log file (signoise.log) which contains information about libraries
which are currently loaded as well as a run directory (signoise.run).
Your current working directory is always tracked by SigNoise. If you open a design in a
different directory, SigNoise switches focus to the new directory, adjusts settings accordingly,
and uses the local signoise.run directory (if one exists). Otherwise, a new run directory
structure is created there and a message is issued announcing the action.
Note: You can use the SIGNAL_RUN_DIRECTORY environment variable to establish a
default run directory. See the Simulation Run Directory Structure figure on page 166 for more
information.
Figure 4-8 on page 165 depicts the files and sub-directories that are contained within a typical
working directory.
Working Directory
signoise.run Directory
Figure 4-9 on page 166 depicts the files and sub-directories that are contained within the
signoise.run directory.
signoise.run Directory
werwebthetyjtyktujyuj werwebthetyjtyktujyuj
setgergwergergetyrtry setgergwergergetyrtry
signoise.cfg cases.cfg
agaergwethwryjtukyu agaergwethwryjtukyu
case# Directories
case# Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry
waveforms
agaergwethwryjtukyu
case.cfg
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
SigNoise creates a new case directory whenever one is required. You also have the option to
create case directories manually and to determine the characteristics of the cases that
SigNoise creates. See Case Management on page 146 for more information.
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.
sim# Directory
werwebthetyjtyktujyuj
setgergwergergetyrtry werwebthetyjtyktujyuj
setgergwergergetyrtry
comp_rlgc.inc interconn.spc
agaergwethwryjtukyu
agaergwethwryjtukyu
werwebthetyjtyktujyuj
main.spc
werwebthetyjtyktujyuj setgergwergergetyrtry
comps.spc
setgergwergergetyrtry agaergwethwryjtukyu
agaergwethwryjtukyu
werwebthetyjtyktujyuj
ntl_rlgc.inc
setgergwergergetyrtry
werwebthetyjtyktujyuj agaergwethwryjtukyu
setgergwergergetyrtry
cycle.msm
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
stimulus.spc
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
delay.dl
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
tlsim.log
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
distortion.dst
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
werwebthetyjtyktujyuj
setgergwergergetyrtry
agaergwethwryjtukyu
ibis_models.inc dlink_rlgc.inc
The SigNoise Errors/Warnings window displays warnings below error messages. As the
simulator generates new messages, they are added to the top of each list. Duplicate
messages are filtered out of the list. The associated signoise.log file logs all informational
messages, warnings, and errors.
Note: You can suppress the display of SigNoise Errors/Warnings window by setting the
SIGSUPPRESS environment variable. See Simulation Run Directory Structure on
page 164 for more information.
The SigNoise Errors/Warnings window with a sample list of warnings is shown in Figure 4-11
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.
Board Setup
Board setup involves defining or editing one or more of the following.
Cross-section Stackup and Materials
Board Outline
Room Outlines
Plane Outline
Keepouts
When you simulate, the etch in the design is processed through a field solver to generate
models. Therefore, a proper cross-section is necessary for accurate post-route analysis and
for providing information for interconnect in topologies extracted into SigXplorer. The cross-
section also determines the propagation velocity of a signal as well. This propagation velocity
determines the value of delay when it is expressed as a constraint value in terms of time
rather than length. The use of percentage in propagation delay rules is also based on the
propagation velocity of the signal.
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 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
available in the Materials file (the default size displays twenty materials). It is also possible to
reduce the size of the dialog box. However, the scale worksheet itself remains fixed.
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
You can modify material names and most other attribute values by entering a new value in
the appropriate cell. Two exceptions are In Use and Type which cannot be changed.
To add or modify materials in your design, refer to the procedures for the define
materials command in the Allegro PCB and Package Physical Layout Command
Reference.
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.
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.
Plane Outlines
Use the Plane Outline dialog box for creating new plane outlines or modifying, moving, or
deleting an existing outline.
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.
The following table lists the setup data that can be imported into your design along with its
corresponding source.
Source Data
Board File (.brd) Board Outline
Cross-section
Keepouts
Rooms
Placed Components
Electrical Rules
Use the Tech file In dialog box, for importing a technology file into your design. A tech file is
in ASCII format. Results of the import appear in the tf_read.log file within the current
directory. Any errors, warnings, and conflicts are categorized according to their severity.
Important
When you read the tech file in, all values in the design are overwritten. If a constraint
in the tech file does not exist in the design, it is added. If an error occurs in the tech
file, it continues to be read with warning and error messages written to the log file.
Your design is not updated if an error occurs.
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.
Use the Import Board dialog box, for selectively importing board design data from another
board into your current design. The directory path and file name of the source board appear
at the top of the dialog box.
Important
If conflicts are detected between existing data and source data while importing a
board into your design, a Conflicts dialog box appears. This dialog box gives you the
opportunity to either overwrite existing data with the source data or reject the source
data in its entirety. You can also choose to do this on an item-by-item basis.
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.
Defining Logic
Defining logic involves one or more of the following tasks.
Component Creation and Placement
Device Model Creation and Assignment
Netlist Creation
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 place components in your design, refer to the procedures for the place manual
command in the Allegro PCB and Package Physical Layout Command Reference.
When you simulate a net, TLsim develops circuit models using the device models and
interconnect in your design. This means that you must assign a device model to each
component in the design and point TLsim to the device model libraries (where device model
files are stored). Model assignments are made to individual components or to all components
having the same device file.
During device model assignment, you can select models from the default model library, the
standard digital device model library, or from other device model libraries that you have
developed and made available through the Library Browser. You can also create Espice and
IBIS device models from scratch directly from the Signal Model Assignment dialog box.
IBIS device models are created from IO Buffer Information Sheet (IBIS) standard data, or by
editing existing models to accurately characterize devices.
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 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.
Tip
You can use the same steps outlined in this example to invent, mock-up and simulate
many other logic scenarios at the board level.
In order to perform self-coupling simulations at the board level, you need to perform the
following setup tasks.
Create a simple rectangular board outline on an empty canvas as shown in Figure 5-15.
See Board Outline on page 176 for details.
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.
Refer to the procedures for the signal model command in the Allegro PCB and Package
Physical Layout Command Reference for complete details.
Figure 5-20 Launching the Create Device Model Dialog Box for the DUD Components
Refer to the procedures for the edit nets command in the Allegro PCB and Package
Physical Layout Command Reference for complete details.
Step 6 - Routing
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.
a. Zoom in on an area where the trace runs parallel and measure the air gap as shown
in Figure 5-28. This value is used later to set the size of the geometry window
around the net where the coupling is checked.
Refer to the procedures for the show measure command in the Allegro PCB and
Package Physical Layout Command Reference for complete details.
Air Gap
c. Click Waveforms.
The Waveform Analysis Generator dialog box appears.
d. Set up a Reflection simulation (no coupling) as shown in Figure 5-29 on page 201.
e. Generate and view the resulting waveforms in SigWave as shown in Figure 5-30 on
page 202.
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.
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.
j. Turn on (superimpose) the original waveforms (no coupling) still resident in Sigwave
and compare them against the new waveforms (coupling simulated) to analyze the
effect of self-coupling on the signal as shown in Figure 5-33 on page 205.
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.
Check the interconn.spc file generated by SigNoise.
In addition to viewing waveforms, you can extend your self-coupling analysis by checking
the Spice file interconn.spc in your .../signoise.run>case<#> directory.
Refer to Figure 5-34 on page 206.
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 mock-
up PCB. See Figure 5-27 on page 199.
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.
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.
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.
For pre-route signal integrity analysis, SigNoise models hypothetical traces using a percent
Manhattan value, a default impedance value, and a default propagation velocity.
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 S-
Param 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.
A routed net can be extracted with either a routed or an unrouted topology format. However,
unrouted nets are always extracted with an unrouted topology format created using an ideal
transmission line to represent the connections (in either manhattan or actual length). Both
formats are as shown in Figure 6-3.
Note: The process of getting the proper topology extracted into SigXplorer is very much
dependant on the etch and component information for the net in the database.
Routed Format
Unrouted Format
Physical Net
A physical net is a connection between two or more components.
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.
You can extract a topology template for simulation and analysis within SigXplorer by:
probing a net at the board level within SI.
using Constraint Manager.
1. Probe net
Selected net
displays here
Topology
Template
Extraction
Options
Figure 6-7 compares the view of a routed net in the design window to that of its routed net
topology on the SigXplorer canvas.
Figure 6-7 Viewing a Routed Net vs. Viewing Routed Net Topology
Stub
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.
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.
The ultimate goal of Solution Space Analysis is to find a routing solution for high-speed nets
that is robust - one that allows you to work under all conditions of fast and slow devices, high
and low impedance, etc. Once that goal is achieved, use the results data is used to drive the
routing rules (minimum and maximum lengths, and so forth) for the layout designer.
By performing a thorough analysis to define rules before routing, you minimize the chance of
re-routing the design and maximize the chance of first-pass success.
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.
Terminators at end of
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.
The following figure shows an example of a master variable list that you could compose from
scratch.
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
small example, we have 2**11 (2048) permutations of worst-case conditions alone, and this
is a simple case!
If you know that all of the segments of a trace will be routed on the same layer, then varying
the impedance and velocity of TL1, TL2, and TL3 independently is pessimisticthe values of
impedance and velocity for all three segments should be swept in lock step. Doing this would
reduce the 6 variables for velocity and impedance down to 2a savings of 2**4 (16) in edge
case sweeps.
Sensitivity analysis is useful to determine if any of the remaining variables have a small
enough effect on circuit behavior to ignore thus reducing the total number of sweep
simulations that you need to run. For the moment, assume that you can ignore the tolerance
on the termination resistors and voltages. Minimizing the number of variable sweeps leaves
you with 2**9(512) simulations.
For simpler topologies, it may be possible to perform worst-case condition analysis by directly
modeling the cases that will cause the best- and worst-case switching behavior. This is
traditionally how worst-case analysis has been performed, with swept parameter analysis
reserved for complex topologies.
Even when you are to perform swept parameter analysis, directly modeling and analyzing
select cases allows you to identify and resolve problems before running large amounts of
simulations.
For further details on simulation sweeping, see Parametric Sweeps on page 230.
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.
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.
Parametric Sweeps
Simulation sweeping is based on varying combinations of the following criteria.
Varying part parameter values
Varying driver slew rates
Sequencing active drivers
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.
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.
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
When you delete a part, any references to that parts parameter values are invalidated and
display in red within the spreadsheet.
Note: You can save a topology that contains invalid references, but you cannot simulate it.
Figure 7-8 Setting Sweep Parameters using the Set Parameters Dialog Box
Using an Expression
Expression listed, as well as parameters
referenced in the expression determine
the number of sweep count points.
You can specify full or partial sweep coverage in this dialog box by:
defining sweep samples as a percentage of full coverage.
specifying an explicit number of simulations.
specifying a seed number for random sampling.
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.
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.
For further details on parametric sweeps, refer to the SigXplorer User Guide.
What is a Constraint?
A constraint is a user-defined restriction applied to an element in a design. When you define
a constraint and apply a value, PCB SI adheres to that constraint in both automatic and
interactive processing of the design element. When constraint violations are detected, they
are flagged graphically in the design with DRC (Design Rule Checking) markers as well as in
the Constraint Manager worksheet cells using the color red.
You define high-speed constraints using the results from Solution Space Analysis (see
Solution Space Analysis Stage 6 on page 229) to prepare your design for layout and
routing.
Although an ECSet is applied to an individual net, other nets may contribute to the
measurement of a constraint (for example, crosstalk). The ECSet applies to all parts of the
net, regardless of subclass or layout area.
Certain electrical constraints are actually properties that can be assigned in Design Entry
HDL and are sent directly from the schematic to the board file. Some examples are:
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 on the toolbar in either PCB SI or SigXplorer.
- or -
Choosing Setup Electrical Constraint Spreadsheet from the PCB SI menu bar.
The Constraint Manager graphic user interface appears as shown in the following figure.
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 B_1, B_2, B_3
Electrical MEM_CNTRL_CSET, PCI_CSET, TTL_CSET,
CSets VIDEO_DATA_CSET
You define ECSets under the Electrical Constraint Set object folder. You can apply
constraints subsequently to net-related objects.
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 net-
derived 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.
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 net-
related 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.
For further details on how Constraint Manger maps ECSets to candidate nets, see Objects
Electrical CSet References in the Allegro Constraint Manager Reference.
Same net modifies the Segment Crosstalk report to include estimated crosstalk values of
each net to itself (self crosstalk). The value of the control is printed in the simulations
preferences section of the report, which you can create through the Probe commands
(Analyze Probe) Signal Analysis > Reports interface, or by way of the signoise batch
command (signoise) from your system command prompt.
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.
8
Signal Integrity Analysis
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.
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.
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.
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.
Click the Advanced Measurements Settings button to display the Set Advanced
Measurement Parameters dialog box shown in Figure 8-4.
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.
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.
S-Parameters Tab
From the S-Parameters tab on the Analysis Preferences dialog box, you can
set various S-Parameter transient simulation options
perform extrapolation of low frequency points down to the DC level of the S-Parameter,
and
enforce impulse response causality for physical systems
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 S-
Parameters. 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.
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.
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.
For pre-route signal integrity analysis, SigNoise models hypothetical traces using a percent
Manhattan value, a default impedance value, and a default propagation velocity.
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 vias are to be ignored
or whether each via should have a closed-form model. If you specified that closed-form
models are to be used, you can further specify whether SigNoise should save via models in
the interconnect library and search the interconnect library for via models.
Crosstalk
For crosstalk analysis, you can specify the size of the area that SigNoise will search for
neighbor nets and the minimum mutual capacitance value for a net to be considered a
neighbor net. The geometry window specifies the axial distance from the edge of the trace
that SigNoise will search for neighbor nets. The minimum coupled length is the minimum
distance that two traces must run parallel to each other within the geometry window distance
for SigNoise to consider the adjacent trace to be a neighbor net. The minimum mutual
capacitance value is the minimum amount of capacitive coupling between traces for SigNoise
to look for crosstalk. The capacitance value is read from the RLGC matrix inside the package
model.
Traces falling within the geometry window distance of the interconnect, traveling parallel to it
for more than the minimum coupled length, and having more than the minimum amount of
capacitive coupling will be regarded as neighbor net for the purpose of crosstalk calculations.
Note: This will take the z-axis into account until it hits a plane shield.
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.
The following figure and instructions describe the procedure for setting up SigNoise for pre-
route signal integrity analysis.
After you set up your device models and device model libraries and make IOCell model
assignments, you can perform simulations and generate analysis data.
The following figure and instructions describe the procedure for performing pre-route signal
integrity analysis.
Select Signals
Select Results
Specify Simulations
Simulate
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.
Select Results
Specify Simulation
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.
3. You then select a net for simulation and look at the results as waveform displays and text
reports.
4. After you examine your results you can edit the routing for that critical net and perform
another analysis. The process of analyzing and editing the traces is an iterative process
that you can continue until you see satisfactory simulation results.
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.
The following figure and instructions describe a typical procedure for post-route analysis.
Select Nets
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.
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.
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
Window. You can also display equipotential field lines between interconnects in the Conductor
Cross Section window. Slide interconnect segments to see how they change both the field
lines and the RLGC matrix of the model.
Simulation Process
SigNoise can locate problem areas in your design. Use the following steps to diagnose and
resolve signal integrity problems:
1. First quickly examine, or scan, large groups of nets, or the entire design, for problem
areas.
2. Based on the waveforms and text reports resulting from these initial analysis, analyze
small groups of signals, or extract and analyze specific individual signals using SigXplorer
in order to troubleshoot signal integrity or EMI issues.
SigNoise will highlight pins and connect line segments on nets when you analyze a design.
When SigNoise analyzes the pin-to-pin connections in a design, it highlights the objects
shown in the following table.
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 driver-
receiver 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.
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 -
Drag a window around groups of ratsnest lines, routed etch, etch, or pins in the design
window.
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.
At the PCB SI or PCB Editor command line, type:
net <name>
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.
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
overall pessimism of crosstalk results, thus helping you to increase the density of your
designs.
Crosstalk timing windows use crosstalk timing properties to determine when nets are active
and sensitive. Only aggressor nets that have an active time overlap with the victim nets are
sensitive.
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
For example, assume a victim net being analyzed for crosstalk had 2 aggressor nets, and the
following properties.
victim net - XTALK_SENSITIVE_TIME = 5-10
neighbor #1 - XTALK_ACTIVE_TIME = 7 - 15
neighbor #2 - XTALK_ACTIVE_TIME = 20-25
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.
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.
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 multi-
board 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.
Current high-speed designs often incorporate source synchronous bus interfaces instead of
common clock buses (though a single design can incorporate both types). In source
synchronous schemes, the driving chip sends both the clock (strobe) signal and the data
signal to the receiver chip, rather than having both chips share a common external clock. This
is illustrated in Figures 8-16 and 8-17.
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.
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.
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.
You must create your derating tables in a format recognizable by your Cadence tool. This is
a text-based CSV (comma-separated values) format, a sample of which is shown in Figure 8-
18.
Earlier in the bus simulation model, both clock and data slew values were required in
descending order in the derating tables. The majority of the memory vendors publish this data
with the values ascending on both axes. As a result you needed to reorder the data about
both the axes before arranging it in the derating table. This time-consuming and error-prone
practice to specify values in the derating table is discontinued from the current release.
Release 16.5 onwards, SI provides support for sorting of data in the derating tables in both
ascending and descending orders. The sorting order is decided automatically based on the
content of the derating file.
A derating file must be created as a plain text file with no special formatting characters and
must adhere to a pre-defined format. If the file is not formatted correctly, the simulation
continues without warning and ignores the derating capabilities. Similarly, no checking or
reporting occurs if the file is not found. To be accessible via the browser, the name must end
with a .dat file extension. The format must be strictly adhered to but may contain comment
lines and blank lines for clarity. All comment lines must contain the "#" character as the first
non-white space character. Blank lines and comments can exist throughout the file for better
readability.
When specifying numbers, leading "+" signs are optional for positive numbers. Additionally a
leading "0" may be omitted for decimal values greater than -1 but less than 1.
Example:
+7 is equivalent to 7
0.7 is equivalent to .7
Note: You can find a sample derating file, derating_table_file.dat, at the following
location:
<your_install_dir>\share\pcb\examples
CLOCK_SLEW The first non-comment, non-blank line must contain the Data
Header CLOCK_SLEW followed by a line representing the
delineated values in the vendor supplied derating table.
CLOCK_SLEW is clock or strobe slew rates in Volts per
Nanosecond (V/ns). The CLOCK_SLEW values represent the
column headings in the setup and hold tables. The values are
comma separated and white space tolerant.
The order of the setup and hold derating table columns is the
same as the order of the CLOCK_SLEW data.
Example
CLOCK_SLEW 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.5, 2.0
DATA_SLEW The next non-comment, non-blank line must contain the Data
Header DATA_SLEW followed by a line representing the delineated
values in the vendor supplied derating table. DATA_SLEW is
address or data slew rates in V/ns. The DATA_SLEW values
represent the row headings in the setup and hold tables. The
values are comma separated and white space tolerant.
The order of the setup and hold derating table ROWS is the same
as the order of the CLOCK_SLEW data.
Example
DATA_SLEW 0.4 , 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.5, 2.0
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:
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:
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.
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.
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.
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
file includes the adjustment for derating and a total simulated (data) setup and hold time
margins.
To calculate data setup and hold time margin, the following equations are used by the tool:
Equations 1 and 2
Since:
(Equations 3 and 4
where:
The universal formula for source synchronous timing calculation (equations 1 and 2) depend
on Tva/Tvb , setup/hold requirements, and offsets that are all specified in the GUI. You can
derive Tva and Tvb from the vendor datasheet.
By default, Tskew_max = 0, Tskew_min = 0, so default Tvb and Tva are set to:
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.
Option Description
Filters Use filters to speed up the process of setting values by filtering
out target driver and receiver pins. In the filter field above the
Driver and the Active Receiver columns, you can select or
specify the component names to filter out targeted pins.
Assign Use the drop-down fields to specify a single unique Tvb, Tva,
Setup and Hold requirements value for all the target pins,
and click the corresponding Assign button.
You can also assign unique values in the grid cell for each pin.
If a cell value is updated, the back color of the changed cell
turns to yellow to notify that the value has changed.
Export/Import Export or import parameter settings in a comma separated file
(CSV).
Analysis Results
SigNoise provides analysis results in the following forms.
Ten different types of standard analysis text reports.
Custom designed text reports.
Waveforms and accompanying data.
VI curves and accompanying data.
Conductor Cross Section diagrams.
In the new comprehensive report for source synchronous bus, signals are grouped by strobe
and then subdivided by direction (read/write). Both setup and hold are reported on the same
line. Rising edge and falling edge data is reported on sequential lines.
The report is organized for easier reading and indicates whether timing margin values pass
or fail based on new user input for setup and hold requirements.
Figure 8-22 A sample Standard Comprehensive Report for Source Synchronous Bus
StrobeXNet The Xnets identified as strobe Xnets during the bus analysis
setup.
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.
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 The setup derate value that needs to be compensated from the
base SetupRequirement as per the slew rate. If the slew rate is
slow, the SetupRequirement reduces. If the slew rate is fast, the
SetupRequirement increases.
Tvb The signal valid time at the driving components before the
sampling edge of the strobe.
HoldTime The simulated time obtained by subtracting the time when strobe
reaches reference voltage level from the time when data signal
reaches the DC threshold voltage value after the sampling edge
of the strobe.
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 The hold derate value that needs to be compensated from the
base hold requirement as per the slew rate. If the slew-rate is
slow, the hold requirement reduces. If the slew rate is fast, hold
time requirement increases.
Having both dialog boxes open together, you can switch back and forth between them,
selecting nets and pins for analysis from the Signal Analysis dialog box, and specifying report
and simulation details from the Analysis Report Generator dialog box.
After examining the report data, you can then refine your net / pin selection and simulation
details, change simulation preferences (if necessary), and perform more specific analysis to
pinpoint problem signals.
The following table describes the different text reports that are available.
.
Table 8-3 Standard Analysis Reports
Type Description
Reflection Summary Gives delay and distortion data in a concise, summary format.
See Reflection Summary Report on page 290.
Delay Gives propagation delays, switch delays (rising and falling edge),
settle delays (rising and falling edge), and reports a pass or fail
status for first incident rise and fall and monotonic rise and fall
heuristics for selected nets. See Delay Report on page 308.
Ringing Gives overshoot and noise margin values for selected nets. See
Ringing Report on page 313.
Single Net EMI Gives essential EMI data for the net in a concise, single-line
format. See Single Net EMI Report on page 318.
Parasitics Gives total self capacitance, impedance range, and transmission
line propagation delays for selected nets. See Parasitics Report
on page 321.
Type Description
SSN Gives noise levels induced on a components power and ground
busses when drivers on that bus switch simultaneously. See
SSN Report on page 323.
Segment-based Presents detailed segment-based coupling information derived
Crosstalk Estimation from xtalk tables. See Segment Crosstalk Report on page 328.
Crosstalk Summary Gives peak and total crosstalk for selected nets in a concise,
summary format. Crosstalk values are derived from multi-line
simulations. See Crosstalk Summary Report on page 333.
Crosstalk Detailed Gives total crosstalk on selected nets. For all cases simulated,
crosstalk values are derived from multi-line simulations. See
Crosstalk Detailed Report on page 336.
Figure 8-23 The Analysis Report Generator Dialog Box - Standard Report Tab
Figure 8-24 The Analysis Report Generator Dialog Box - Custom Report Tab
select whether or not to use timing windows and save circuit files and waveform files.
display the Analysis Preferences dialog box to modify simulation preferences.
display the Stimulus Setup dialog box to assign custom stimulus parameters.
run simulations and generate reports based on the selection criteria.
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.
In the case of multiple receivers on a net, the Reflection summary report shows only the worst
case. While the delay report shows data for all receivers, the Reflection summary is generally
a good first cut when you analyze the entire board (simulating all nets) as it limits the data to
one line per receiver net.
The Reflection report can be generated either in batch mode, or interactively from the
Analysis Report Generator dialog box.
Batch Generation
Switch Description
-b Location from which to measure results (model/pin/die)
-f A list-of-nets file
-r Report type to generate
-s Simulation type to perform (Reflection or Comprehensive)
-o Name of the output file to create
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.
********************************************************************************
Delays (ns), Distortion (mV), (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
....
********************************************************************************
********************************************************************************
....
*******************************************************************************
Pulse Data Per Xnet
*******************************************************************************
....
*****************************************
Description of column abbreviations
*****************************************
Column Description
------------ ------------------------
XNet Extended net
Drvr Driver Pin
Rcvr Receiver Pin
NMHigh Noise Margin High
NMLow Noise Margin Low
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.
The Stimulus selections section of the Analysis Waveform Generator for Reflection
waveforms (Figure 8-27)
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.
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.
Propagation delay is measured from any simulation available. SigNoise performs a Reflection
simulation with pulse stimulus if no simulation results are available. Propagation delay is used
for the DELAY_RULE and MATCHED_DELAY constraints.
For a rising edge, the simulation measurement is from time zero to when the receiver first
crosses Vil, the low voltage switching threshold. The associated rising buffer delay for the
driving IOCell is subtracted from this measurement value to produce the reported first switch
delay.
For a rising edge: First switch delay = time to reach Vil - buffer delay
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
Final settle delay is the time to reach the second threshold voltage encountered and stay
above or below it, minus the Buffer Delay for the driver.
For a rising edge, the simulation measurement is from time zero to when the receiver crosses
Vih, the high threshold voltage, the final time and settles into the high logic state. The
associated rising buffer delay for the driving IOCell is subtracted from this measurement value
to product the reported final settle delay as shown in Figure 8-32.
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.
Buffer Delay
Buffer delay is the time it takes the voltage of a driver to reach a predefined measurement
voltage, Vmeas, when driving a standard test load. Buffer delay is subtracted from the
absolute time for a receiver waveform to reach a logic threshold. The difference between
these two measurements represents the portion of the delay attributable to interconnect
effects. Buffer delay is measured for both rising and falling edges.
When measuring waveforms at a receiver against time zero in a simulation, the buffer delay,
or driving IOCell delay, is included as well as the delay contributed by the interconnect. For
the purpose of timing analysis, the buffer delay is already accounted for in the overall
component delay. In order that the buffer delay is not counted twice, the assumed buffer delay
is subtracted from the simulation results when reporting first switch and final settle delays.
Since the actual topology to which each pin is attached is not available for up-front timing
analysis, a test load (or test fixture) is assumed to be attached to the buffer in order to derive
the component delay. SigNoise hooks up the IOCell to its corresponding test load circuit and
runs simulations to capture the slow, typical, and fast buffer delay values, measured at Vmeas
for rising and falling edges.
When a simulation is run for a design, the appropriate buffer delay is subtracted to properly
compensate switch and settle delays so that these delay measurements represent
interconnect contribution only.
The buffer delay selection information you enter in the PCB SI, Allegro Editor, or SigXplorer
Analysis Preferences dialog box allows you to specify how SigNoise should obtain the
buffer delay values to use during the simulation. You can instruct SigNoise to retrieve stored
buffer delay values from the device model or to measure buffer delay at the start of the
simulation.
Note: Use the Buffer Delay Selection options on the Device Models tab to set From Library
or On-the-Fly, or to No Buffer Delay.
Once measured, buffer delay is stored with the pin data for the individual pins of an IBIS
Device Model (unless you selected No Buffer Delay, which assumes 0ns buffer delays).
Buffer delay values for a pin are found on the Buffer Delays dialog box which is accessible
from the IBIS Device Pin Data dialog box of the IBIS Device Model Editor. When buffer delay
values are not available in the IBIS device model, buffer delays are not subtracted from the
reported first switch and final settle delay values. You may use the On-the-Fly buffer delay
method to compute the buffer delays along with other simulation results in that case.
Distortion Criteria
Noise Margin
For a rising edge, high state noise margin measures how close the high state receiver
waveform comes to the high state switching threshold, Vih. This measurement, Vmin, is taken
after the waveform crosses Vih and before the onset of a falling transition that crosses both
thresholds (falling side of the pulse).
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).
Overshoot
Overshoot is the maximum voltage excursion of a signal measured in absolute voltage units.
Note that the overshoot voltages are measured relative to the zero volt ideal ground, not the
steady state value of the signal, Vss.
For a rising edge, high state overshoot is the highest voltage seen. For a falling edge, low
state overshoot is the lowest voltage seen.
Overshoot Simulation
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 non-
monotonic 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.
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.
Electrical Constraints
The following tables show constraints that you can set on a net or on a pin-to-pin connection
for evaluation during delay analysis.
Note: These constraints are only checked by SigNoise.
Constraint Item
MIN_FIRST_SWITCH Minimum first switch delay
MAX_FINAL_SETTLE Maximum final settle delay
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
Switch Description
-b Location from which to measure results (model/pin/die)
-f A list-of-nets file
-r Report type to generate
-n Neighbor switching mode for Comprehensive simulation
-s Simulation type to perform (Reflection or Comprehensive)
-o Name of output file to create
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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Delay Report
# Thu Feb 10 14:39:17 2004
################################################################################
********************************************************************************
Delays (ns) (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
....
************************************************
************************************************
....
....
****************
****************
MonotonicFall
------------
PASS
PASS
PASS
PASS
PASS
PASS
....
*********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
*********************************************************************************
....
....
*************************************************************************
Pulse Data Per Xnet
*************************************************************************
....
****************************************************
Description of column abbreviations
****************************************************
Column Description
------------ ------------
DefImp Default Impedence
DefPropVel Default Propagation Velocity
DiffPairMate Differential Pair Mate
Drvr Driver Pin
FTSMode Fast/Typical/Slow Mode
FallDly Fall Buffer Delay
FallSlew Fall Slew : 20%/80% dV/dT
FirstIncFall First Incident Switch Fall
FirstIncRise First Incident Switch Rise
GeomWin Geometry Window
IOModel I/O Cell Model Name
JTemp Pin Junction Temperature
MhtPercent Percent Manhattan Distance
PropDly Propagation Delay
Rcvr Receiver Pin
RiseDly Rise Buffer Delay
RiseSlew Rise Slew : 20%/80% dV/dT
SettleFall Settle Fall Delay
SettleRise Settle Rise Delay
SwitchFall Switch Fall Delay
SwitchRise Switch Rise Delay
Vihmin High State Logic Input Threshold
Vilmax Low State Logic Input Threshold
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
Switch Description
-b Location from which to measure results (model/pin/die)
-f A list-of-nets file
Switch Description
-r Report type to generate
-m Mode to use while simulating for reports or waveforms
-o Name of output file to create
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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Ringing Report Sorted By Worst Noise Margin
# Mon Feb 14 16:59:38 2004
################################################################################
********************************************************************************
Distortion (mV) (Typ FTSMode) Preferred Measurement Location: Pin
********************************************************************************
....
***********
***********
OShootLow
------------
-471
-595.8
-682
-695.6
-138.7
-626.7
....
********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
********************************************************************************
....
**************************************************************
**************************************************************
....
********************************************************************************
Load I/O Characteristics
********************************************************************************
....
************************
************************
Vihmin DiffPairMate
3000 mV NA
3000 mV NA
3000 mV NA
3000 mV NA
3000 mV NA
3000 mV NA
....
************************************************************************
Pulse Data Per Xnet
************************************************************************
....
***********************************************
Description of column abbreviations
***********************************************
Column Description
------------ ------------
DefImp Default Impedence
DefPropVel Default Propagation Velocity
DiffPairMate Differential Pair Mate
Drvr Driver Pin
FTSMode Fast/Typical/Slow Mode
FallSlew Fall Slew : 20%/80% dV/dT
GeomWin Geometry Window
IOModel I/O Cell Model Name
JTemp Pin Junction Temperature
MhtPercent Percent Manhattan Distance
NMHigh Noise Margin High
NMLow Noise Margin Low
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.
The pulse 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 transient simulation output is time domain voltage and current waveforms at a set of
predetermined nodes. As a minimum, all driver and receiver pins on the Xnet are treated as
nodes. You can include additional nodes at transmission line branch points for increased
accuracy.
You can generate the single net EMI 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 single net EMI report.
signoise -f nets.txt -r SingleNetEMISummary -o emi.txt my.brd
Switch Description
-f A list-of-nets file
-r Report type to generate
-o Name of output file to create
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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Single Net Emissions Report
# Tue Feb 15 14:16:08 2004
################################################################################
********************************************************************************
Voltage (V), Time (ns), Emission (dBuV/m), (Typ FTSMode)
********************************************************************************
....
*********************************************
*********************************************
....
*************************************************
Pulse Data Per Xnet
*************************************************
....
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
Switch Description
-f A list-of-nets file
-r Report type to generate
-o Name of output file to create
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.
Sample Report
Note: This report has been split to fit the page.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Parasitics Report
# Thu Feb 17 10:08:16 2004
################################################################################
********************************************************************************
XNet Parasitics
********************************************************************************
....
**************
**************
Resistance
------------
NA
0.005502
0.008619
NA
NA
NA
....
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.
Pins on the extended net and information about the pins.
You can generate the SSN report either in batch mode or interactively from the Analysis
Report Generator dialog box.
Batch Generation
Switch Description
-f A list-of-nets file
-r Report type to generate
-o Name of the output file to create
Interactive Generation
Selection of the SSN option in the Analysis Report Generator dialog box specifies a
simultaneous switching noise 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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard SSN Report
# Mon Mar 27 17:57:23 2004
################################################################################
*********************************************************************************
Simultaneous Switching Noise (mV) for XNet `2 ssn NET1` (Typ FTSMode)
*********************************************************************************
*********************************************************************************
Driver I/O Characteristics (Typ FTSMode) RiseSlew/FallSlew in (mV/ns)
*********************************************************************************
*****************************
Load I/O Characteristics
*****************************
******************************************************
Pulse Data Per Xnet
******************************************************
*************************************************
Simulation Preferences
*************************************************
Variable Value
------------ ------------
Percent Manhattan 100
Default Impedance 60ohm
Default Prop Velocity 1.4142e+08M/s
Geometry Window 10mil
Min Neighbor Capacitance 0.1pF
Cutoff Frequency 0GHz
Pulse Clock Frequency 50MHz
Pulse Duty Cycle 0.5
Pulse Step Offset 0ns
*************************************************
Description of abbreviations
*************************************************
Abbr Abbreviations
---------- ----------------
DefImp Default Impedence
******************************************************
-----------------------------------------------------------------
Net: <design name> <net name>
XNet: <number of nets> <design name> <first net name>
-----------------------------------------------------------------
*********************************************************************************
Pulse Data Per Xnet
*********************************************************************************
....
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.
Electrical Constraints
You can set the following constraints on a net or on a pin-to-pin connection for evaluation
during delay analysis.
.
Table 8-12 Measured Delay Value Comparisons
This report is actually a super set of both crosstalk and parallelism reports. This means that
segments within the geometry window that are parallel, but have no crosstalk effects on each
other, will still appear in the table with crosstalk values set to zero. Also, when there are no
crosstalk values available, only the parallelism data is shown in the report with crosstalk
values set to NA. The report data is supplied in a delimited text format suitable for
spreadsheet applications.
Important
Segment-based crosstalk estimation does not take into account detailed topological
effects like reflections, wave cancellation, or the plethora of unique stimulus
combinations that can occur in actual designs. To analyze these effects, you should
utilize full time domain crosstalk simulation.
You can the segment crosstalk report either in batch mode or interactively from the Analysis
Report Generator dialog box.
Batch Generation
Switch Description
-f A list-of-nets file
-g Geometry window size
-l Minimum coupled length to consider
-r Report type to generate
-a Which aggressors to include in the crosstalk estimations (You
should specify each to generate a segment report)
-o Name of the output file to create
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.
Sample Report
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Segment Crosstalk Report
# Thu Feb 03 14:07:53 2004
################################################################################
*********************************************************************************
Segment Crosstalk (mV)
*********************************************************************************
....
Report Format
Column Data Description
Victim The net receiving the coupling from the neighbor nets.
Aggressor The net contributing the coupling to the victim net.
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 Specifies the xy coordinate for the middle of the aggressor segment
coupling, enabling crossprobing, troubleshooting and debugging. The xy
coordinate is available only for segment-to-segment couplings. It is not
applicable to net-to-net coupling in the table.
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 segment-
by-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
summation method.
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
steady state voltage. The crosstalk measurement for a victim net held in the low state is
measured as the magnitude of the difference between the highest excursion of the receiver
waveform minus the victim nets steady state voltage.
Crosstalk measurements for victim nets in both the high and low states are shown in the
following figure.
You can generate the crosstalk summary report either in batch mode or interactively from the
Analysis Report Generator dialog box.
Batch Generation
Switch Description
-f A list-of-nets file
-a Aggressors specified for crosstalk simulations
Choices are: Each, All, Inter, or Intra
-n Neighbor switching mode specified for crosstalk and
comprehensive simulations. Choices are: Even, Odd or Odd,
Even
-r Report type to generate
-m Mode to use while simulating for reports or waveforms
-o Name of output file to create
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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Crosstalk Summary Report Sorted By Worst Case Crosstalk
# Thu Feb 17 12:02:03 2004
################################################################################
********************************************************************************
....
*************
*************
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
steady state voltage. The crosstalk measurement for a victim net held in the low state is
measured as the magnitude of the difference between the highest excursion of the receiver
waveform minus the victim nets steady state voltage.
Crosstalk measurements for victim nets in both the high and low states are shown in the
following figure.
The crosstalk detailed report can be generated either in batch mode or interactively from the
Analysis Report Generator dialog box.
Batch Generation
Switch Description
-f A list of nets file.
-a Aggressors specified for crosstalk simulations. Choices are:
Each, All, Inter, or Intra.
-D Use either the fastest driver or the all drivers on the neighboring
aggressor nets. Choices are: Fastest or All.
-n Neighbor switching mode specified for crosstalk and
comprehensive simulations. Choices are: Even, Odd or Odd,
Even.
-r Report type to be generated.
-m Mode to be used while simulating for reports or waveforms.
-o Name of output file to be created.
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.
################################################################################
# Allegro PCB SI 15.5
# (c) Copyright 2004 Cadence Design Systems, Inc.
#
# Report: Standard Crosstalk Report Sorted By Worst Case Crosstalk
# Thu Feb 17 16:42:21 2004
################################################################################
********************************************************************************
All Neighbors Crosstalk at Receivers (mV) (Typ FTSMode)
********************************************************************************
....
*****************************
*****************************
LSOddXtalk LSEvenXtalk
---------- ------------
214.6 NA
209.3 NA
229.8 NA
207.3 NA
210.1 NA
202 NA
....
*********************************************************************************
Pulse Data Per Xnet
*********************************************************************************
....
*********************************************************************************
Description of abbreviations
*********************************************************************************
Column Description
------------ -----------------------------------------------------------------------
HSEvenXtalk Crosstalk, Rise Stimulus to Neighbors and Victim held High
HSOddXtalk Crosstalk, Fall Stimulus to Neighbors and Victim held High
LSEvenXtalk Crosstalk, Fall Stimulus to Neighbors and Victim held Low
LSOddXtalk Rise Stimulus to Neighbors and Victim held Low
Victim Drvr Victim Driver Pin
Victim Rcvr Victim Receiver Pin
Victim XNet Victim Extended Net
-----------------------------------------------------------------------------------------
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.
Electrical Constraints
You can set he following constraints on a net or Xnet for evaluation during crosstalk analysis.
Signal Quality Screening is used to determine signal quality of a system. It determines the
signal and background noise intervals introduced by the system or channel. Extensive
simulation is most beneficial when applied to the noisiest channel(s) in a given group. Signal
quality screening determines the noisiest channel that needs further investigation. This
focused analysis results in improved designs in a shorter time.
You can perform signal quality screening on a set of nets which could either be single-ended
or part of a differential pair.
The signal quality screening engine uses the frequency domain simulation capability of
TLSim. A clean bit is sent to a channel to be analyzed. Its response is measured at the end
of the channel, or input of a receiver. The response spreads in a much wider time interval than
the original bit period. In Figure 8-45, a window is placed on the time interval, in which the
white portion represents signal while the gray portion represents noise.
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.
The reference voltage is taken to be the final value at the end of the simulation when the
signal is finally settled.
The Signal-to-Noise Ratio (SNR) value, which determines signal quality of a system, is
calculated by taking the ratio of the energy of the signal and the rest of the waveform. Signal
energy is derived by taking the sum of the square of voltage differences between the voltage
instance and the reference voltage.
For detailed information on the signal quality screening procedure, see Performing Signal
Quality Screening.
When you perform analysis for signal integrity or EMI emissions by creating and viewing
waveforms, SigNoise performs the necessary simulations based on specifications you make
in the Signal Analysis and Analysis Waveform Generator dialog boxes.
Having both dialog boxes open together, you can move back and forth between them,
selecting nets and pins for analysis in the Signal Analysis dialog box and specifying
simulation details in the Analysis Waveform Generator dialog box.
After examining the resulting waveforms in the SigWave window, you can refine your net and
pin selections and simulation details, change simulation preferences (if necessary), and
perform more specific analysis to pinpoint problem signals for a more refined analysis.
The Analysis Waveform Generator dialog box is displayed, as shown in Figure 8-46 on
page 343.
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.
are passive (held in the same state as the victim net). With a stimulus type of Rise or Pulse,
SigNoise holds the victim net high and applies a Fall or Inverted Pulse stimulus to the
neighboring aggressor net. With a stimulus type of Fall or Inverted Pulse, SigNoise holds
the victim net low and applies a Rise or Pulse stimulus to the neighboring aggressor nets.
SSN Simulations
SSN simulations examine what happens when all of the drivers on a device that use the same
power and ground bus as the driver in the selected victim nets trigger simultaneously, causing
power and ground bounce. SigNoise monitors the ripple at the internal power and ground
buses and takes them into account in the analysis of the extended net (or Xnet).
EMI single simulations perform a reflection simulation for a single net to evaluate the
differential mode radiated emissions for the net.
Section Function
Current Case The name of the current case including a pulldown menu of
available cases from which you can select to report on.
Stimulus The current stimulus type including a pulldown menu of available
stimulus choices. Choices are Pulse, Rise, Fall, Rise/Fall,
InvertedPulse.
Fast/Typical/Slow Check boxes to specify one or more speeds at which SigNoise will
Mode run simulations. Fast/Slow and Slow/Fast refers to speeds of
driver/receiver combinations.
Primary Net Pull down menus for selecting the victim nets to monitor during
simulation and selecting victim net driver to stimulate when victim
nets are held in the high state.
Save Circuit Files A check box to indicate if SigNoise will save resulting TLsim and
SPICE circuit files in the case directory for each simulation
performed.
Button Function
Create Waveforms Starts waveform generation using the selections you specified in
both the Signal Analysis and Analysis Waveform Generator
dialog boxes.
View Waveform Opens the SigWave window and loads the waveform file selected
from the list box.
Preferences Displays the Analysis Preferences dialog box enabling you to
modify simulation preferences as you specify simulations and
generate waveforms.
Section Function
Aggressor Pull down menus for selecting switch mode, net selection, and
driver selection.
Use Timing Windows 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.
Section Function
Stimulus The current stimulus type includes Custom, to apply and/or edit
custom stimui to nets and xnets. Selection of Custom activates
the Assign button which opens the Stimulus Setup dialog box.
From there, you can set custom stimulus parameters for nets/
xnets. This functionality is described at length in the signal
probe Help topic in the Allegro PCB and Package Physical
Layout Command Reference.
Menus
Icon Bar
Bars
Waveform
Display
Spreadsheet
Waveform Manager
Refer to the SigWave User Guide for further details on displaying and interpreting
waveforms.
Increasingly complex circuit designs call for greater power consumption while requiring ever-
greater 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.
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 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.
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 third-
party 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.
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 System-
in-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.
Subcircuit wrapped
S-Parameter in Touchstone format
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.
Once you select 3D package modeling in Package SI L and select nets to simulate, the 3D
Field Solver runs to generate the required models and uses them to analyze the signal
integrity of the package.
Note: The 3D Field Solver outputs RLGC matrices at a single frequency point producing a
narrowband circuit model. This is the default model.
You cannot run simulations on unrouted signal nets. However, you can run simulations with
partially routed nets in the design with the following limitations.
Single Model Case
The 3D Field Solver puts a skip attribute on the partially routed net and does not
generate an RLGC model for that net.
Coupled Model Case
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.
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.
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.
3D Field Solver also supports direct wirebond cline connections between single-layer
bondpads on different layers. The conditions of this connection type are that the wirebond is
of subclass ETCH_WIRE and that its two endpoints are on different etch layers.
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
Complex plane shapes with perforations
Shielding traces/coplanar shapes
Interposer (subclass BONDING_WIRE) layers between dies
Note: DIE2DIE wire bonding configurations are not currently supported.
Allegro Package Designer L Generate 3D package model device files suitable for
signal integrity analysis.
Allegro Package Designer L
(using SiP Layout XL)
Allegro Package Designer XL
Cadence SiP Digital Layout GXL
Cadence SiP RF Layout GXL
3. Select Sentinel-NPE from the Trace Solver drop-down list and click OK.
For a complete description of the parameter options in the 3-D Modeling Parameters dialog
box, see the signal prefs command.
Causes:
1. Small alpha and/or beta
2. Big h
Pre-simulation Checklist
To perform 3D signal integrity simulation on your package successfully, you must:
Be licensed for Allegro Package SI L.
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.
Upon completion of the checklist above, you can commence with signal integrity simulation.
For complete details on initiating a signal integrity simulation, refer to chapter 8 of this user
guide.
The following table describes the field solution calculations reported in the Progress panel.
Calculation Description
Extract design data: done
Launch 3D Solver and
initialize
Cad data parsing
CAD to mesh
Calculation Description
3-D RL/CG Meshing
Current sweep step
Matrix formulation Form, populate Finite Element Model (FEM) Matrix.
Equation solver Solve the actual FEM matrix.
FE post processing After solving, prepare files for RL, CG computation.
RL/CG calculation Compute R, L, C, G values.
Result Processing Prepare results for viewing (text files and update UI).
It is not necessary to look at the intermediate files generated by the 3D Field Solver.
However, there are several files that have good information regarding the 3D Field Solver
engine. They are located in your paksi.run directory.
For details on how to create 3D package and interconnect model files, refer to the Allegro
PCB and Physical Layout Command Reference: S Commands.
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.
The head record line is in the following format with units specified within parentheses.
Net i,Net j,Rij (mOhm),Lij (nH),Cij (pF),Gij (uMho), TD(rs)
Note: If <net_name_1> and <net_name_2> are identical, the RLGC are self-coupling
parasitic values. Otherwise, they are mutual-coupling parasitic values.
Sample Report
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.
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. A distributed circuit with three segments is shown in Figure 10-11.
Port grouping lets you 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.
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 BGA_A5_gp1 DIE_A3_gp3 DIE_C1_gp2
Xnet_B_3port_wrap BGA_A5_gp1 DIE_A3_gp3 DIE_C1_gp2 net_B_3port
.subckt net_B_3port BGA_A5 DIE_A3 DIE_C1
* -------------------------------
* O1 = BGA-A5
* I1 = DIE-A3
* I2 = DIE-C1
(PinConnections
(BGA_A5_1 DIE_A3_gp3 )( BGA_A5_gp1 DIE_C1_gp2)
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.
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.
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.
The main focus of the Package Designer and Package SI physical design environment is
placement, routing, and generating layer-based artwork for manufacturing. The database is
flexible and allows you to do things that are not physically possible (from a manufacturing
standpoint). Given that, be aware of the potential gap that can exist between a typical MCM
design and real 3D geometry.
Important
Following these guidelines is strongly recommended by Cadence. Failure to do so
may result in increased processing time, inaccurate results, or 3D modeling errors.
1. Identify DC nets
This is part of the standard high-speed setup. Failing to identify the DC nets in your design
results in very long processing time to generate a field solution. The Cadence 3D Field Solver
performs multiport analysis on your design which is essential for net-based simulation. It is
different from Apaches standalone Field Solver in this regard. The latter performs two-port
source/sink analysis by default, and performs multiport analysis only when you specifically
ask for it.
Generally, a DC net is a complicated network with many pins. Multiport analysis on such a
net is extremely slow and thus impractical. Therefore, you need to identify your DC nets by
attaching a DC voltage property to them. By doing so, DC nets are eliminated from net-based
modeling and serve as return paths for signal nets.
For details on how to identify DC nets in your design, see the procedures for the identify nets
command.
Make sure the BOND_PAD property of all nets is set to YES before performing 3D model
extraction.
This is also part of the standard high-speed setup. Currently, a component with a class of IC
is a die, and a component with a class of IO is a BGA ball. As you create die or BGA balls
using APD or SiP SI, this convention is followed. However, if you are using PCB Editor to
design your .mcm, you must double-check your component classes in advance to ensure that
they are set properly.
For details on how to check component classes in your design using a Bill of Material report,
see the procedures for the reports command in the Allegro Package Physical Layout
Command Reference.
Both Package Designer and Package SI provide an Auto-detect feature that analyzes the
layer stackup in your design and sets package position parameter for you. However, in rare
cases, Auto-detect may not be able to derive this information from the design. When this
situation occurs, you are presented with a warning message and prompted to specify the Top
or Bottom condition directly. Failure to do so produces inaccurate results or unexpected
modeling errors.
Tip
If the die and ball pins are on the same side of the package substrate, it is a Bottom
package position.
For details on how to set package position, refer to the General Tab Options for the 3-D
Modeling Parameters dialog box in the Allegro Package Physical Layout Command
Reference.
If your design is a stack bondwire or one with multiple wire tiers, you need to classify the wires
into different groups with different loop height (h) values. Wires in a group have the same
profile parameters (alpha, beta, and loop height). For a stack die, die on different layers
should have different die elevation (h1) values.
Tip
You need to make sure there is no contact between wires. Currently, the 3D Field
Solver has limited checking for this geometry violation.
For details on how to set bondwire profile parameters for 3D modeling, refer to the Wire Bond
Editor in the Ball Tab of the 3-D Modeling Parameters dialog box.
Before setting ball or bump parameters (Die Component, Dmax, D1, D2, and HT), check
the pad size as well as the spacing between balls or bumps. Set these parameters using
reasonable values to ensure that they do not contact each other. Specifically, Dmax should
not be set so large that adjacent balls or bumps touch or overlap each other.
For details on how to set ball / bump parameters for 3D modeling, refer to the Ball Tab Options
and the Bump Tab Options for the 3-D Modeling Parameters dialog box in the Allegro
Package Physical Layout Command Reference.
Both Package Designer or Package SI allow conductive layers for masking purposes.
You can place etch and shapes on these layers as long as they have subclass names. These
fictitious layers can cause problems for the 3D Field Solver because they introduce illegal
metal contact that short the nets together.
To avoid this situation, you must mark these layers to be ignored by the 3D Field Solver. The
dielectric layers directly above and below them may also need to be marked. Failing to do so
may cause inaccurate 3D modeling and faulty SI analysis results.
For details on how to set layers to be ignored by the 3D Field Solver, see the procedures for
the signal prefs command.
9. Make sure that the ball pad is on the most external metal layer
In certain cases, although the ball pad is on an external conductor layer, the 3D Field Solver
may display an error. This is because bondwire layers are not classified as metal layers.
Tip
This error is usually fixed by checking for fictitious layers in the stackup and making
sure they are set to be ignored by the 3D Field Solver. See guideline 3. Set
component class properly on page 377 for further details.
Tip
The simplest way to prepare designs that contain routed plating bars for 3D SI
analysis is to back up the original design and delete the plating bar.
11. Make sure that there are no vias or through-hole pins at the same location
Some package designs may have two or more vias / through-hole pins placed at the same
x-y location with padstacks overlapped. Most likely, they are on the same net. The 3D Field
Solver considers this a geometry violation. Unless you relocate overlapping vias or
through-hole pins, unexpected modeling errors may occur.
Tip
To check for this condition, invoke a via-to-via spacing DRC with the Same Net
Checking option turned on.
For details on how to invoke a via-to-via spacing DRC on your package design, see the
procedures for the cns space values command.
We recommend a minimum 10-micron spacing between separate etch objects. In the early
design stage, when there are no basic spacing DRC rules set, you may use 1 database unit
(minimum spacing) for clearance between a via and a positive shape. With such a small gap,
the 3D Field Solver may generate overlapped meshing cells due to numerical error
accumulation, and erroneously connects the etch.
Tip
To check this, invoke basic spacing DRCs such as line-to-line, line-to-shape, and
via-to-shape with reasonable rules. Use of the Same Net checking option is not
necessary.
For details on how to invoke basic spacing DRC on your package design, see the procedures
for the cns space values command.
Make sure that the drill hole size is smaller than the minimum pad diameter. Otherwise, the
following error appears when you initiate 3D modeling.
ERROR in design
The drill hole size is equal or larger than the smallest pad size in padstack <name>.
15. Do not route four or more bondwires onto the same point of a bond pad
Message Cause
Could not open file Error when opening a file that is not critical for program
<filename>. continuation.
No neighbor nets found. There were no neighbor nets to the reference net.
Couldn't remove temp Could not remove a temporary FEA model file (.HD0).
file.
DC-reduction for Warning during equation solving.
Eisenstat algorithm can
not apply!
File jobname.ELE may Some data conflicts occurred during equation solving.
have data integrity
problems.
Message Cause
Warning: Cannot C-reduce Warning during equation solving.
non-sorted matrix!
Warning: Cannot DC- Warning during equation solving.
reduce non-sorted
matrix!
Warning: Cannot D-reduce Warning during equation solving.
non-sorted matrix!
Warning: Cannot Warning during equation solving.
factorize non-sorted
matrix!
Warning: DRIC can only Warning during equation solving.
apply to Column Index
Sorted Matrix!
Message Cause
Error: Temporary file Could not rewind a temporary file (.TP1 or .TP2).
rewind error!
Incorrect Constraint Incorrect constraint equation number.
Equation number!
Incorrect coupled DOF Incorrect coupled DOF set number.
set number!
Incorrect element ID Incorrect element ID number in FEA model file (.HDR).
number in FEA model
file!
Incorrect FEA model file FEA model file (.HDR) is incorrect.
towards end!
Incorrect file version Version number of an FEA model file (.HDR) is incorrect.
of FEA model file!
Incorrect number of DOFs Number of DOFs per node was <= 0 or > 32.
per node!
No net is selected for No net has been selected for analysis.
analysis.
Message Cause
The iFE solver log file A finite element solver log file iFESolver.log could
can not be open! not be opened.
Zero DOF remaining after Zero DOF remaining after finite element matrix
elimination! elimination.
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.
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.
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.
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.
a. Right-click on the net you want to apply the CPW_DISABLED property to.
c. Select Cpw_Disabled from the Available Properties list and click Apply.
The selected net will now be handled during analysis as a non-CPW net. If you have
selected only the Ems2dFW option (without Enable CPW Extraction), non-CPW
nets will be generated with Bem2d.
5. Set the Geometry Window parameter to accommodate the configuration of DC shapes
surrounding the cline segment, as shown in the graphic.
CLINE SEGMENT
SHAPE SHAPE
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.
7. Choose the frequency settings and other options appropriate for your analysis. These
settings are explained in the EMS2D Preferences Dialog Box section.
8. Click OK.
Library Enhancements
Interconnect libraries in Allegro products that support EMS2D contain a number of
enhancements. They include:
CPW structures (as described in the previous section)
CPW structures are represented by interconnect models in IML libraries. You can filter
model displays in the Iml Model Browser, as shown in Figure 11-3. You can also create
new or cloned models for single and/or differential pair CPWs.
! omh*meter
# DcConductivity=1.e-6
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.
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.
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.
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.
Etch factoring lets you set line width for either the top edge or the bottom edge of the cline.
You do this by selecting a value within one of the two valid ranges of values mentioned in the
last section, 45-135 or 225-315.
When you set a value, angles less than 180 degrees indicate that the bottom edge of the cline
is defined as the line width. Angles more than 180 degrees indicate that the top edge of the
cline is defined as the line width. This is depicted in Figure 11-8 where the etch factor value
for the cline in the top illustration is set at 260.5 degrees and the etch factor value for the
bottom illustration is set at 279.5 degrees.
If you specify an etch angle factor for a cline within a CPW structure, EMS2D automatically
applies the specified angle value to the bottom edges of the surrounding ground shapes when
the angle is something other than 90 degrees. Figure11-9 illustrates how the spacing
between the cline and ground shapes are defined.
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.
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.
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.
INITIATE
INTERCONNECT
MODEL SEARCH
MATCHING YES
MODEL
FOUND?
NO
ALGORITHM
NO MODELING
ENABLED?
YES
INITIATE
ALGORITHM-
BASED IML
SEARCH
MATCHING YES
MODEL
FOUND?
NEW ABIML
ADDED TO LIBRARY NO
GENERATE
NEW MODEL
PROCESS ENDS
WITH FIELD
SOLVER
Algorithm-based models can be cloned and/or edited in the same fashion as other
interconnect models. The syntax of the model contains two sections:
Model information such as parameter range, interpolation type, and sweep step type
Multiple RLGC data used in model generation
[Model] abiml_test
[Model Info]
[Field_Solver_Used] ems2d
[ABIML_Version] 1.0
[Model_Type] sinlgetrace
[Num_of_Port] 2
[Num_of_DielectricLayer] 1
[Num_of_ShieldLayer] 1
[Parameter Info]
[LayerStack]
[Layer] 1
* min max step step_type interp_type ID
[Thickness] 1.0 1.0
[Constant] 1.0 1.0
[Losstangent] 0.0 0.0
[IsShield] YES
[Layer] 2
* min max step step_type interp_type ID
[Thickness] 1.0 2.0 5 linear linear 1
[Constant] 4.4 4.6 3 log 2_order_poly 2
[Losstangent] 0.0 0.0
[IsShield] NO
[End LayerStack]
[CrossSection]
[conductor] 1
* min max step step_type interp_type ID
[Thickness] 1.0 1.5 5 linear linear 3
[Width] 1.0 10.0 20 linear 2_order_poly 4
[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]
* ID value
1 1.0
2 4.4
3 1.0
4 1.0
.....
[Data] 4725
[R] 3.630000e+00
[L] 4.567500e-07
[G] 0.000000e+00
[C] 7.440100e-11
[Data Condition]
* ID value
1 2.0
2 4.6
3 1.5
4 10.0
[End Model Data]
[End Model]
Using EMS2D
You run EMS2D from the Analysis Preferences forms in Allegro 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.
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.
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.
90% Placement
Constraint-driven placement is complete and nearly all placements are locked in. However,
some freedom to nudge components is desirable during this stage to solve congestion
problems that were not anticipated during the previous stage.
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.
Route Critical Nets
Route Sensitive Nets
Route Remaining Nets
Regardless of the PCB being interactively or automatically routed, there are usually some
nets that need more attention than others. These nets may have certain restrictions defined
by the design team. You must document these restriction in some way to provide clarity. Nets
in this class may even require special widths or gaps between them and adjacent traces.
Nets in this category are not critical but may be susceptible to certain electrical effects such
as coupling. Once all critical nets are routed, you should then route sensitive nets.
This stage involves finishing all routes, testpoints, powerplanes, and any other special
requirements. Design rule checks (DRCs) are normally flagged throughout this stage for
physical and electrical constraint violations.
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.
As another example, if only the first memory slot is populated, moving the memory module to
the fourth slot is considered a change in the system configuration because the trace to the
fourth slot is further from the signal source than the trace to the first slot.
Eventually the design or board file (.brd) is constrained such that any system configuration
meets the system level constraint requirements.
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.
Tip
Rather than attempting to build a cable from scratch, Cadence recommends that you
create a new cable model by cloning (and then editing) an existing cable model from
the sample library to characterize the cable that you need to model.
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.
Use the guidelines in the following table when employing a modeling strategy.
To model . . . Do this . . .
PCBs connected through a cable, with a Represent the connectors on the PCBs as a
connector on the PCBs at each end of the PackageModel within an IBIS device model.
cable Represent the cable as an RLGC model
within a DesignLink model.
daughter boards with gold fingers plugged Represent the connector as an IBIS device
into a card-edge connector on a backplane with package parasitic information.
an MCM in a Pin-Grid-Array (PGA) package Model the pins of the PGA in an IBIS device
plugged into a PCB with package parasitic information.
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
configuration is created (with the same name as the DesignLink model). You can still clone
DesignLink model or use it to seed a different system configuration.
Important
The only way to create a new system configuration is to create a new DesignLink
model (either from scratch or by cloning an existing DesignLink model), and then
choosing the DesignLink model, as a system configuration, from the pull-down
menu in the Signal Analysis Initialization dialog box (see Multiple System
Configurations on page 419).
The system configuration path is determined by the environment variable SCFPATH which is,
by default, set to the current working directory.
When a board is removed from a system configuration and accessed as a single board, it is
desirable to maintain the constraints that were set at the system-level. Therefore, when a
constraint is set on a system Xnet, the relevant system constraints are copied to each net and
design Xnet within the system Xnet. The source of these design-level constraints are marked
as system-level for the purpose of deleting them when the board is included in a different
system configuration. When the board is opened as a single board, the constraints that were
copied from the system-level constraints remain in the design.
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.
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).
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.
D
Working with Crosstalk
Your Allegro tools support two types of crosstalk (xtalk) checking: estimated and simulated.
Estimated crosstalk is based on pre-computed tables of crosstalk data. This type of
crosstalk data is used for crosstalk design rule checks (DRCs) and in SI Segment
Crosstalk reports.
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-to-
layer 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
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:
crosstalk avoidance during interactive etch editing with PCB Editor.
crosstalk avoidance during autorouting with PCB Router.
crosstalk troubleshooting post-route.
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.
There are 2 different types of crosstalk DRCs that you can use.
MAX_PEAK_XTALK limits the maximum amount of noise in millivolts that can be
coupled over from any single aggressor.
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.
When you perform a crosstalk DRC in a design that does not contain a crosstalk table, an out-
of-date state is set for the net you are checking. The check will be performed when you add
a table later. If you update an existing table, existing DRCs are set to out-of-date and
automatically recomputed.
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.
This can be overly pessimistic in many cases, and can cause a very conservative layout,
sacrificing density. You can define the following crosstalk timing window parameters to control
which neighbors are to be considered as aggressors for crosstalk analysis.
XTALK_ACTIVE_TIME time slots in which aggressor Xnets can switch, and cause
crosstalk (for example 1-5).
XTALK_SENSITIVE_TIME time slots in which victim Xnets are sensitive to crosstalk
from aggressors (for example 3-7, 9-10).
XTALK_IGNORE_NETS nets for a victim to ignore as sources of crosstalk (can specify
nets or Electrical Constraint Sets).
When crosstalk analysis is run for the victim DATA1, its sensitive time (6-10) is compared with
the active times for aggressors DATA2 (1-5) and FSB_A5 (4-8). Since DATA2s active time
does not overlap with the victims sensitive time, its crosstalk contributions are not considered
during analysis. Since FSB_A5s active time does overlap with the victims sensitive time (4-
8 overlaps with 6-10), its crosstalk contributions are considered during analysis.
Therefore, crosstalk timing windows provide a simple means for controlling whether or not a
signal (or a group of signals) is a valid source of crosstalk for another signal (or group of
signals). Using this control wisely significantly decreases the amount of analysis required,
eliminate false crosstalk DRCs, and improving routing density on the PCB.
Crosstalk Methodology
The following methodology is recommended to mitigate crosstalk and is broken down into the
following sections.
Database setup
Crosstalk timing windows definition
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.
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.
Figure D-2 Setting the Geometry Window in the Analysis Preferences Dialog Box
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
conductor to its reference plane. For example, if 5 mil dielectrics are used in the stack-up,
setting the geometry window for 16 mils would take into account aggressor nets up to three
times away. This should encompass the majority of significant coupling. Once these
parameters are set, you are ready to generate crosstalk tables.
2. In the Create Table section of the dialog, enter the name of the new crosstalk table.
3. Enter up to four transmission line impedances to use for generating the table.
Note: If your design contains impedance rules, four of the impedance values specified
in the rules will be displayed as the default values in these fields.If no impedance rules
are defined in the design, the impedance value that has been set in the Default
Impedance field of the Analysis Preferences dialog box is the default selection.
4. Set the Simulation Create modes (Fast/Typical/Slow) to select the driver speeds you
wish to use. You can set any or all of them.
5. Define up to eight line-to-line separation values for simulation. Default values for these
fields are:
The smallest value of all the line-to-line spacing values defined in all of the spacing
constraint sets
The geometry window
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 must define at least two values.
One of the values must be the geometry window.
You cannot enter a value greater than that of the geometry window.
You cannot enter a value less than or equal to zero.
Duplicate values will be deleted.
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.
The Buffer Delays dialog box appears as shown (top portion) in the following figure.
In this example, we have thresholds of 2V and 0.8V (typical TTL levels) for a 3.3V part. That
gives us inherent noise immunities of 3.3 2 = 1.3V in the high state and 0.8 0 = 800mV
for the low state.
Crosstalk DRCs calculate only the amount of noise that initially gets coupled over from
aggressors, and doesnt account for what happens afterwards. Coupled noise propagates
around the victim net and reflect at impedance discontinuities (just like regular signals), and
voltage doubling can occur. The actual simulated crosstalk results can often be significantly
higher than DRC predictions. Because of this, it is good practice to always initially set
max_xtalk constraints for < half the noise immunity. This can be relaxed later on when routing
is completed and simulated results are available.
One way to derive an initial crosstalk budget (and a value for the max_xtalk constraint), is to
take the inherent noise immunity, subtract the potential voltage ripple the IOCell could see,
then divide the remaining noise margin in half. In our case of a 3.3V supply with a +/-5% ripple
tolerance, this would be (0.8 (.05*3.3))/2 = 317.5 mV. So setting max_xtalk for 250 or
300mV would be pretty realistic.
Setting max_peak_xtalk is a bit more subjective. One general rule of thumb is that you
dont want any single aggressor to eat up more than half of your overall crosstalk budget.
In this case, if we conservatively set max_xtalk = 250mV, we can set max_peak_xtalk
= 125mV. These are just recommendations, and can be adjusted for your individual design
and desired noise budget. These constraint values are set in Constraint Manager by right
clicking in the field and selecting Change from the context-sensitive menu. An example is
shown in the following figure.
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.
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:
in the <brdname>.dsn file
(noise_accumulation RSS)
(noise_calculation linear_interpolation)
(crosstalk_model CCT1A)
in the <brdname>_rules.do file
max_noise
parallel_noise
tandem_noise
layer_noise_weight
threshold (min coupled length)
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.
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.
If DesignLinks are not set up to define system-level connectivity, backplane connector pins
should be set with a pinuse of IN, so that a driver-to-receiver connection is found on the
signal, ensuring that it is stimulated as an aggressor during crosstalk simulation.
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.
Crosstalk Troubleshooting
Based on the Simulated Crosstalk report, create a file containing a list of the signals that you
need to address for crosstalk.
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.
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.
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.
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.
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.
A clocked timing path consists of all of the logic between two clocked elements that operate
off the same clock signal. The path is analyzed to ensure that setup and hold requirements
are met at the input of each clocked element. You can also use the slack (delay margin) in the
path to derive SI flight time constraints. See Figure E-1 on page 452.
clock signal
timing path
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.
SI Analysis Basics
Signal integrity analysis is analog analysis of digital switching behavior. It uses special analog
models to represent device inputs and outputs.
Component Timing
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.
What you really want to do is add the internal delay and the simulated delay as shown in
Figure E-15 on page 463.
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.
IBIS provides specific keywords to define the conditions under which you should simulate and
measure buffer delays. The measurement and loading conditions in the IBIS file should be
the same as the conditions under which Tco is specified in the devices datasheet.
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.
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 E-
20 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 re-
running the complete loop.
Component timing, bus speeds and clock jitter /skew budgets are captured as part of the PCB
database. Signal integrity analysis is run from the PCB database, then a spreadsheet
containing bus- level timing equations is used to compute the design margins based on
simulation results as shown in Figure E-21 on page 470.
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.
Note: The ClockSkewMin column remains on the worksheet but is not used.
SigNoise Analysis
PCB SI
Constraint Manager
F
Working with Multi-GigaHertz
Interconnect
Introduction
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.
Multi-gigahertz (MGH) serial data links have unique design challenges. As opposed to sub-
GHz source synchronous buses, where the end game is setup and hold margins, the ultimate
requirement for serial data links is to meet a specific bit error rate (BER). This is derived
through analysis of the data's eye pattern, which is heavily influenced by the loss and ISR
generated along the total signal path or channel (due primarily to skin effect, dielectric loss,
and impedance discontinuities). This causes the Eye pattern to close and jitter to increase.
This is difficult to handle at today's data rates. As the market moves to higher frequencies,
traditional lab validation techniques using oscilloscopes becomes difficult or impossible. The
bit error rate tester (BERT) becomes the final validation metric for these types of interfaces.
Allegro PCB SI Multi-Gigabit Option provides an integrated, complete environment for loss
budget trade-offs using industry-standard format S-parameters. With Allegro PCB SI,
generating an S-parameter from an extracted topology (pre-route or post-route) to view
losses on an interconnect takes seconds compared to hours with standalone tools. This
ability to do quick iterative loss-budget trade-offs shortens the design time for MGH signals
and more importantly, allows system designers to optimize the performance of such signals.
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.
Traditional circuit simulators are limited to about 1024 bits of custom stimulus pattern length.
This means that the effect of Inter-Symbol Interference (ISI) is not adequately modeled by
traditional simulation solutions. To accurately predict the eye opening, you need simulation
tools that can simulate stimulus patterns of 10,000 bits or more, and in some cases over 1
million bits.
The channel analysis technology within Allegro PCB SI Multi-Gigabit Option can simulate
10,000 bits in seconds on a typical Windows desktop platform. Such capability saves system
designers the need to build multiple fully configured physical prototypes of the system to
verify performance of the MGH interconnect in the lab.
For further details on how to setup and run Channel Analysis on serial link designs, refer to
the Allegro SI SigXplorer User Guide.
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 high-
speed 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.
The guiding principle when developing a MacroModel is to keep the model as simple as
possible. Simple models have much fewer adjustable parameters. These adjustable
parameters are the key to success with MacroModels.
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.
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
use it reliably. And just like with transistor-level models, it is important to correlate measured
lab results with the MacroModel to verify that the simulation it is producing is indicative of real-
world behavior (although these measurements become increasingly challenging at Gbps
rates).
Developing MacroModels for your serial drivers provides significant productivity gains. The
MacroModel templates provided by Cadence are parameterized so that you can optimize the
parameters for your particular application and technology.
You can achieve very close correlation with the behavioral MacroModels matching eye
openings predicted by the transistor-level models within 1.5%. Sample comparisons are
shown below. The transistor-level results are in red, and the MacroModel results with PCB SI
are in blue.
Figure F-5 Comparison of transistor-level Hspice eye pattern (red) and Allegro PCB
SI MacroModel results (blue)
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.
Additional data
Unit interval (UI dly)
Pre-emphasis dB, or
Scale factor (x)
Technical Notes
Use [Ramp] data instead of VT curves.
Works fine for these CML (non-push/pull) drivers.
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 general-
purpose 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.
No. of Freq.
Edge Rate Start Freq. End Freq. Bandwidth
Points
100 ps 10 MHz 20GHz 20 GHz 128
Coupled via symbols are distinguished from single signal via symbols, as shown below.
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.
RLGC matrices. RLGC models (matrices of resistance, inductance, conductance, and
capacitance values) specify the parasitics in the connections used in system design
links.
Passive components. For example, resistors and capacitors.
This appendix describes IDL interconnect models for connect line segments, shapes, pins,
and vias, and shows how you might modify such models.
When you route connect lines within the distance of the geometry window, the resulting
interconnect models describe more than one connect line, connect segment, or part of a
connect segment.
The following figure shows the three interconnect models that SigNoise writes for the
horizontal connect lines and horizontal connect line segments in the illustration.
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
You might want to edit the RLGC values in line segment models to change how SigNoise
simulates the corresponding connect line segments. To do this, edit the RLGC matrix values
in the .rlgc declaration in the line segment model.
The .rlgc declaration is located toward the end of the model, and contains parasitic value
matrices. The following is an example of an .rlgc declaration.
.rlgc RLGCMTL_1S_2R_2914 ( Length=length N=2 )
.C 0
+ 6.625200e-11 -4.567200e-12
+ -4.567500e-12 5.729800e-11
.L 0
+ 4.834800e-07 7.706100e-08
+ 7.705900e-08 4.388100e-07
.G 0
+ 0.000000e+00 -0.000000e+00
+ -0.000000e+00 0.000000e+00
.R 0
+ 3.586500e+00 0.000000e+00
+ 0.000000e+00 1.793200e+00
.endrlgc RLGCMTL_1S_2R_2914
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.
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 matrix with the self and mutual values has the following arrangement:
A A-B A-C
B-A B B-C
C-A C-B C
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.
The syntax of the .rlgc declaration for a model with two lines, segments, or parts is:
.rlgc subcircuit_name (Length=value N=value)
.C frequency_value
+ loaded_value 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 A keyword that specifies the beginning of the declaration that
contains the matrices of parasitic values.
subcircuit_name The SigNoise field solvers generate the matrix values as a
special kind of subcircuit of the model and names this
subcircuit. The name is a derivative of the model name.
Length=value A keyword and value statement that specifies the length of the
connect lines, segments, or parts. The field solvers can enter
the keyword length for this value to tell SigNoise to take the
length value from the layout instead of from the model.
N=value A keyword and value statement that specifies both the
number of lines, segments, or parts modeled and the size of
the matrix. A value of 2, for example, specifies two lines,
segments, or parts, a 2x2 matrix value specifies two self
values and two mutual values.
.C Specifies a matrix of capacitance values.
.L Specifies a matrix of inductance values.
.G Specifies a matrix of conductance values.
.R Specifies a matrix of resistance values.
.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
*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+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
Delay, Admittance, and Impedance
.subckt Declaration
This declaration specifies that the model is a subcircuit of a circuit that SigNoise simulates. It
specifies the following:
Name of the subcircuit, MTL_1S_2R_2914
External nodes of the circuit
+X1250Y800L1
+X1225Y800L1
+0
+X1250Y2650L1
+X1225Y2650L1
+0
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.
The following figure shows how SigNoise can write models for a part of a connect line
segment.
Figure G-3
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 External
nodes nodes
Part
P1
Figure A-5 shows how the model appears in the Sigxsect Cross-Section window, and labels
the external nodes.
Figure G-5
X960Y2440L1 X960Y2460L1
X980Y2440L1 X980Y2460L1
.layerstack Declaration
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:
The thickness of the layer
.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 conductivity of the part of the segment
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.
Axes
X
These coordinates show the positions of the parts of the segments relative to each other.
One X or Y coordinate value is always 0 and the other coordinate values specify the
relative distances of the other lower left or upper right corners to that 0 value.
The line +Length=length specifies that SigNoise takes the lengths of the parts of the
segments from the layout instead of from the model. Specifying a value instead of length is
valid syntax for an IDL model.
.rlgc Declaration
After the.crosssection section, the next part of the sample model is the .rlgc
declaration.
.rlgc RLGCMTL_1S_2R_2914 ( Length=length N=2 )
.C 0
+ 6.625200e-11 -4.567200e-12
+ -4.567500e-12 5.729800e-11
.L 0
+ 4.834800e-07 7.706100e-08
+ 7.705900e-08 4.388100e-07
.G 0
+ 0.000000e+00 -0.000000e+00
+ -0.000000e+00 0.000000e+00
.R 0
+ 3.586500e+00 0.000000e+00
+ 0.000000e+00 1.793200e+00
.endrlgc RLGCMTL_1S_2R_2914
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
cross sectional view of the design. The matrix lists mutual values to the left or right of the self
values.
For example, the following section of code is the capacitance value matrix:
.C 0
+ 6.625200e-11 -4.567200e-12
+ -4.567500e-12 5.729800e-11
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.
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
*Even Mode Impedances, (z11+z12)/2.
* Z(even) = 3.826600e+001
**The Near-End Crosstalk Coefficent of these Transmission
**Lines based on Near-End Resistance=50 ohm assumption:
*Near-End Crosstalk Coefficent Matrix, Z0*Inv(R+Z0).
* 0 (n=2)
* 5.612800e-001 4.355700e-002
* 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")
)
.subckt Declaration
VIA_POAR_VIA_L1A0W600L7A135W600
Specifies a
via model
Width of this
interconnect line
Design name in design units
Repeats information
from the subcircuit Specifies shield layers on layer
name three and layer nine
.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 )
+dielectric( sml8 0.0001524 )
+dielectric( sml6 0.00079248 )
.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 0.0014224 0.0014224))
+ void( 0.00135128 0.00138176 ellipse(ml3 0.0 0.0 0.0014224 0.0014224) )
+ pad( 0.0011684 0.00119888 ellipse(ml5 0.0 0.0 0.0014224 0.0014224))
+ pad( 0.00037592 0.0004064 ellipse(ml7 0.0 0.0 0.0014224 0.0014224))
+ void( 0.00019304 0.00022352 ellipse(ml9 0.0 0.0 0.0014224 0.0014224) )
+ pad( 0 5.334e-05 ellipse(ml11 0.0 0.0 0.0014224 0.0014224))
+ drill(5.334e-05 0.00152146 ellipse(ml1 0.0 0.0 0.0003429 0.0003429))
+ trace( L1A0W600 0 rectangle(sml1 0.0 0.00152146 0.0001524 0.0015748))
+ trace( L7A135W600 135 rectangle(sml7 0.0 0.00037592 0.0001524
0.0004064))
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.
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 closed-
form solution. You might want to use the more accurate values that come from the SigNoise
three-dimensional field solver.
.subckt Declaration
Vias are recognized as coupled if they are located in the same subcircuit, as shown below.
.subckt subcircuit_name node_1 node_2
.via via_node_list
.via via_node_list
.
.
.
.end subcircuit_name
.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
repeat ...
You can create your own shape model using the field solver. If so, you need to understand the
structure of these models.
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
SHAPE_BLM_X980Y2660L1
The first corner of a shape is the location of the first point you selected when you drew the
shape.
+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.
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.
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.
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:
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:
ModelTypeCategory Keywords
The following table contains keywords that are used to specify the model type.
Keyword Usage
PackageDevice Defines part models.
PackageModel Describes package parasitics which may apply to many
parts.
IbisIOCell Describes I/O buffer model information, also known as a
buffer.
AnalogOutput Define a buffer simply by a waveform.
DesignLink Describes connectivity between modules.
Cable Defines RLGC parasitics matrices and also used by System
Configurations to represent cables.
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 double-
quotes 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 semi-
colons, 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")
)
)
The order of sub-parameters does not matter. It can be in any order as long as it is present.
Sub-parameters of PackageModel
Sub-parameters of PackageModel include:
PinNameToNumber
R, G, L, C
frequency
format
data
PinNameToNumber
R G L C Matrices
Frequency Value
Format
BandedSymmetricMatrix
BandedSymmetricMatrix is used to describe the coupling relationship between pins. Two
values are associated with this format:
band (band B_NUMBER)
B_NUMBER must always be odd. It indicates that each pin has mutuals with
B_NUMBER - 1 neighbors.
Example:
(band 3) means that pin 5 has neighbor pins 4 and 6; pin 9 has neighbor pins 8
and 10, etc.
dimension (dimension D_NUMBER)
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.
dimension (dimension D_NUMBER)
dimension is defined same as the one in BandedSymmetricMatrix 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)
SingleLineCircuits describes a corresponding single line subcircuit (without coupling to
adjacent lines) for each pin in the package.
pin_number maps the subcircuit to corresponding pins.
name_of_subckt gives the name of a SPICE subcircuit in the format:
subckt name_of_subckt input output
where input and output are the subcircuit port nodes; input is to the buffer side for a
package model; and output is to the package side.
Note: The port order cannot be altered.
Example:
(SingleLineCircuits
(1 (SubCircuitName longsingle_dc_wire))
(2 (SubCircuitName longsingle_dc_wire))
(4-14 (SubCircuitName longsinglewire)))
...
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"
)))
Data
(data "data_section")
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)
...
r_num and c_num are the row and column numbers of a non-zero entry.
Example:
(C
(SparseSymmetricMatrix
(dimension 14)
(data " 1 1 643.0f
2 3 -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
Sub-parameters of Cable
Sub-parameters of Cable include PinNameToNumber, RLGC matrix, and CircuitModels.
PinNameToNumber
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
...
)
) ; End of frequency 0
)
); End of FourWireCable
) ; End of Cable
CircuitModels
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:
IBIS device models - Assigned to ICs and connectors.
ESpice models - Assigned to discrete passive components such as resistors and
capacitors.
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.
Field Solutions
When you select a net for simulation, a detailed geometry extraction is performed, including
the primary net, its neighbor nets (per the user-defined geometry search window), and the
mutual coupling between them. This generates a coupled network of multiple conductors.
The interconnect geometry comprising the network is broken up into its unique individual
cross sections. For example, if the primary net had 6 mil spacing to a neighbor net at one
point, and 12 mil spacing to a neighbor net at another point, these would be broken up into 2
different unique cross sections. Then SigNoise looks in the specified interconnect libraries for
the required trace models, based on geometry. If it finds the ones it needs, it plugs them into
the circuit. The various trace models are spliced together to build the complete simulation
circuit.
If a required trace geometry hasnt been characterized, it is sent to the field solver. The field
solver uses 2-dimensional boundary-element techniques to break up the cross section into a
fine mesh. Charge distribution over the mesh is then solved to derive a capacitance matrix for
the conductors in the cross section. The capacitance matrix is then used to derive the
inductance matrix. Resistance and conductance matrices are also generated to take into
account conductor loss such as skin effect, and as dielectric losses.
The output of the field solver is frequency-dependent RLGC matrixes (resistance, inductance,
conductance, and capacitance) per unit length, which get stored along with the geometry as
a trace model in the interconnect library. Therefore, these results can be re-used across
multiple designs, so the number of field solutions required to characterize a particular layout
are minimized. When a trace model is called from the interconnect library, its matrices are
then multiplied by the length associated with that particular cross section to generate a unique
interconnect model for that specific instance.
Vias are automatically modeled through closed-form algorithms, based on their padstack
geometry in the layout database. Vias can optionally be modeled in greater detail utilizing the
3D field solver in SigNoise (if available).
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
monotonicity during the low-to-high and high-to-low transition period. Non-monotonic edges
are flagged as violations.
To obtain segment-based crosstalk results, the crosstalk tables need to be available. These
tables are automatically generated based on the IOCells, stackup, and spacing rules in the
design. Based on this information, crosstalk circuits are built and swept through all relevant
combinations using full-time domain simulation. Crosstalk magnitudes and saturation lengths
are recorded and crosstalk lookup tables generated for use during estimation. When a
crosstalk estimate is requested for a given signal, an Xnet walk is performed where each
coupled segment on the Xnet is identified along with the aggressor. Based on the geometry
for each of these unique coupled segments, and the fastest IOCell on the aggressor, the
magnitude of the crosstalk imposed on the victim for that specific coupled segment is rapidly
predicted. In addition to the individual coupled segment contributions, overall aggressor Xnet
contributions and total victim crosstalk data are algorithmically derived and presented in
report format.
Important
Segment-based crosstalk estimation does not take into account detailed topological
effects like reflections, wave cancellation or the plethora of unique stimulus
combinations that can occur in actual designs. To analyze these sorts of effects, full-
time crosstalk simulation should be utilized.
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.
The user can choose to stimulate the aggressor nets in groups, or one aggressor net at a time
to isolate the contributions from individual nets, identifying worst offenders. Crosstalk timing
properties can also be used to set up neighbor stimuli, as discussed in the following section,
Timing-Driven Crosstalk Analysis.
Note: Crosstalk simulation is intended to support a post-route verification use model.
The following crosstalk timing properties can be applied to nets in your PCB- or package-
editor:
XTALK_ACTIVE_TIME
XTALK_SENSITIVE_TIME
XTALK_IGNORE_NETS
For Crosstalk simulations, the crosstalk properties above are 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 they had the following properties:
victim net - XTALK_SENSITIVE_TIME = 5-10
neighbor #1 - XTALK_ACTIVE_TIME = 7 - 15
neighbor #2 - XTALK_ACTIVE_TIME = 20-25
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.
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.
When measuring waveforms at a receiver against time zero in a SigNoise simulation, you
include the driving IOCell delay as well as the delay contributed by the interconnect. For the
purpose of timing analysis, the IOCell delay is already accounted for in the overall component
delay. In order that the IOCell delay is not counted twice when reporting first switch and final
settle delays, the assumed IOCell delay must be backed out of SigNoise simulation results.
Since the actual topology to which each pin is attached is not available for up-front timing
analysis, a test load (or test fixture) is assumed to be attached to the IOCell in order to derive
the component delay. This test load appears as follows:
Figure I-1
Vterm
Rref
Out
Cref
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.
Delay Description
Propagation Delay Transmission line delay, the time required for wave propagation from
driver to receiver.
Delay Description
First Switch Delay This is determined by subtracting the associated buffer delay from a
simulation measurement. For example, on a rising (falling) edge,
the simulation measurement is from time zero to when the receiver
first crosses its Vil (Vih) switching threshold. The associated rising
(falling) buffer delay of the driving IOCell is subtracted from this
measurement value to produce the reported first switch delay.
Final Settle Delay This is determined by subtracting the associated buffer delay from a
simulation measurement. For example, on a rising (falling) edge,
the simulation measurement is from time zero to when the receiver
crosses its Vih (Vil) switching threshold the final time and settles
into the high (low) logic state. The associated rising (falling) buffer
delay of the driving IOCell is subtracted from this measurement
value to produce the reported final settle delay.
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
Driver Receiver
Vih
Input
Switching
Thresholds Vmeasure
Vil
Propagation Delay
First Switch
Final Settle
Note: First switch and final settle delays can be optionally measured to the associated
IOCells Vmeasure thresholds, as opposed to the receivers logic thresholds.
SigNoise checks the measured delay values against the following constraints:
Constraint Item
DELAY_RULE minimum propagation delay
maximum propagation delay
MIN_FIRST_SWITCH minimum first switch delay
MAX_FINAL_SETTLE maximum final settle delay
Pass/Fail Checks
The following illustration shows non-monotonic and non-first Incident rules violations.
Driver Receiver
Input
Switching
Thresholds
Non-monotonic edge
reversal in midrange
Propagation
Delay
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
Simultaneous switching noise (SSN)
Differential mode electromagnetic interference (EMI) in near and far field.
Reflection Measurements
Reflections become prevalent when the signal rise or fall time is relatively small compared to
the propagation delay of the signal through the interconnecting etch or when
tr < 2td
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.
Vih
Vil
Low State
Noise Margin
Reflection analysis in SigNoise produces overshoot and noise margin values. For reflection
analysis, a transient simulation is performed, and the voltage waveform at each receiver pin
is analyzed producing overshoot and noise margin data as shown in the previous figure.
Overshoot values (OV) are reported in reference to ground.
Crosstalk Measurements
When crosstalk simulations are run, multi-line circuits are built. The field solver extracts self
and mutual parasitics for routed interconnect, allowing coupled networks to be simulated in
the time domain. Waveforms for receiver pins on the victim net are analyzed to produce
crosstalk report data. Measurements are taken as follows based on the logic state of the
victim. Crosstalk for the victim held in the low (high) state is taken as the magnitude of the
delta between the highest (lowest) excursion of the receiver waveform minus the victims
steady state voltage. This is shown in the figure below.
Low State
Crosstalk
Steady State Low
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.
ESpice interprets a + in the first position of a line as a continuation character, and in any other
position as the addition operator. Similarly, ESpice interprets an * in the first position of a line
as the beginning of a comment statement, and in any other position, as the multiplication
operator.
R1 2 3 4.7k
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:
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 4 5
+ 6.8k
The following example shows a blank line incorrectly used before a continuation line:
R1 2 3
+ 4.7k
Node Names
Statements may contain node names. ESpice uses alphanumeric node names.
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.
0, 00, 000, 0a
Using Numbers
ESpice recognizes numbers in integer, floating point, scientific or engineering format as
shown in the following table.
ESpice recognizes the engineering scale factors shown in the following table.
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.
Note: ESpice does not support the standard SPICE transistor elements.
Elements represent the electrical components. Nodes represent how the electrical
components are connected as shown in the example.
R1
node_1 node_2
V1 C1
* Simple circuit
* 5 Volt DC voltage source with negative terminal grounded
V1 node_1 gnd 5
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 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:
V1 node_1 gnd 5
.subckt
<name of subcircuit>
Note that nodes in the subcircuit instance are connected to those in the subcircuit definition
by order, rather than by name. You can learn the complete syntax for subcircuit instances and
definitions in later chapters.
Include elements in a subcircuit instance in a DC path to ground. The DC path cannot pass
through a capacitor or a controlled current source.
Note: tlsim checks connectivity to confirm there is a current path flow to ground.
Consequently, the circuit cannot contain a loop of voltage sources and/or inductors.
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).
You can partition complex circuits and can use subcircuits in various levels of hierarchy.
General Form
Xyyyyyyy n1 n2 ... nk Subckt_Name param1=val1 param2=val2 ...
.....
.....
.END /* main or subckt definition ends here */
.SUBCKT Subckt_Name n1 n2 ... nk param1=default_val1 param2=default_val2
subckt description
.ENDS Subckt_Name
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
.ends top
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
Parameterization of Subcircuits
You can pass parameters through subcircuits using tlsim as shown in the following example
of a macromodel. You choose the parameter name. Then you assign a value. In the example,
the parameter name chosen is ibis_file and the value assigned to it is ibis_models.inc, a DML
file translated from an IBIS file. The DML model file contains parameterized model
characteristics such as Typ, Min, and Max.
Note: Within a subcircuit, use the absolute path to reference a file.
.subckt macromodel 1 2 3 4 5 6 7 ibis_file=ibis_models.inc +ibis_model=default_IO
. . . .
bmydrives 1 2 3 4 5 6 7 model=ibis_model file=ibis_file
. . . .
.ends
You can also pass text strings as parameters as shown in the following example.
Following are the major classes of devices described in ESpice and supported in tlsim:
Basic elements
Passive elements: resistors, capacitors, inductors and mutual inductors
Single lossless transmission lines
Voltage sources: DC voltage sources, pulse voltage sources, PWL voltage sources,
sinusoidal voltage sources, and exponential voltage sources
Diodes
Controlled source elements
Voltage controlled current source (VCCS)
Voltage controlled voltage source (VCVS)
Current controlled voltage source (CCVS)
Current controlled current source (CCCS)
Voltage and current controlled non-linear capacitors and inductors
Behavioral active devices defined by IBIS data
Frequency-dependent multi-conductor transmission lines
Latches: time controlled and voltage controlled latches and hysteresis type latches
Linear controlled sources driven by rational transfer functions
Controlled sources defined by expressions
General Forms
Rxxxxxxx n1 n2 value <L=value>
Cxxxxxxx n1 n2 value
Lxxxxxxx n1 n2 value
Kxxxxxxx Lxxx1 Lxxx2 value
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
Mutual Inductor driven by inductors LA and LB. The coupling coefficient should be 0<=k<=1.
K LA LB 0.8
General Form
Txxxxxxx n1 n2 n3 n4 Z0=value TD=value
n1 and n2 are the nodes at port 1 and n3 and n4 are the nodes at port 2. The reference nodes,
n2 and n4, must be the same for both ends. In signal applications, the reference nodes are
usually set to 0, the absolute ground.
Example
A 50 ohm, 0.5 nano second delay transmission line connected between 2 and 3 referenced
to same ground.
T1 2 0 3 0 Z0=50 TD=0.5NS
Voltage Sources
ESpice supports DC, pulse, PWL, sinusoidal, and exponential voltage sources.
DC Voltage Source
General Form
Vxxxxxxx n1 n2 value
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
General Form
Vxxxxxxx n1 n2 PULSE(V1 V2 TD TR TF PW PER)
The keyword PULSE signifies a pulsed AC voltage source with the following parameters:
V1 - Initial Value
V2 - Final Value
TD - Delay Time to Pulse Start
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.
10 n
0 30
General Form
Vxxx n1 n2 PWL (T1 V1 <T2 V2 T3 V3...>)
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 ..)
The second statement shows that adding two periods (..) at the end makes the PWL
statement periodic. See the following figure. Also see Describing Controlled Source
Elements on page 552 for a discussion of PWL (Piecewise Linear Tables).
General Form
Vin n1 n2 SIN(VO VA FREQ TD THETA)
Example
VSIG 10 5 SIN (0 .01V 100KHz 1mS 1E4)
VO (offset) Volts
VA (amplitude) Volts
FREQ (frequency) Hertz
TD (delay) seconds
THETA (damping factor) 1/seconds
General Form
VIN n1 n2 EXP (V1 V2 TD1 TAU1 TD2 TAU2)
Example
VRAMP 10 5 EXP (0V .2V 2uS 20us 40uS 20uS)
Diodes
General Form
Dxxxxxxx n1 n2 Model_Name
...
...
.MODEL Model_Name Dyyyyyyy IS=value
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
ESpice has three major classes of controlled sources. Almost any engineering system can
be modeled using classes:
Controlled sources based on expressions
Controlled sources based on expression piecewise linear tables (PWL)
Controlled sources based on rational functions with real coefficients
You can use expression driven controlled sources with tlsim for added flexibility. The
expressions can include arbitrary terminal voltages, element currents, and symbolic
parameters which can be passed through subcircuits. In addition, expressions can include
derivatives of any order with respect to time. Expressions can also contain special variables
like TIME, PrevTime, and TimeStep.
You can also include complex equations within expressions using IF ELSEIF ELSE
conditional statements.
General Form
Gxxx pos neg i=<expression>
Gxxx pos neg v=<expression>
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.
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>.
You can calculate derivatives of expressions with tlsim using the special function ddt. The
syntax is:
ddt_n (<expr>)
General Form:
Examples
ddt(v(pos3,neg))
ddt_2(v(2))
ddt(i(vp))
prev_n gives the nth previous value. Omitting the index -n gives the value of prev_1.
General Form
Examples
prev(v(out))
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)))
Operators
Operator Function
+ Sum
- Difference
/ Divide
* Multiply
^ Exponent
% Percent
Operator Function
& And
= Equal
!= Not equal
| Or
> Greater than
< Less than
>= Greater than or equal
<= Less than or equal
IBIS 3.2 includes a charge storage transit time parameter. You can use a macromodel
subcircuit to retrofit the parameter to the existing IBIS models. The following example shows
a generic implementation using the transit time parameters TTpwr and TTgnd.
* This is general subcircuit for bhvr model which implements charge storage
* effect defined by transit time parameters TTpwr and TTgnd
vpwrcl 60 6 0
vgndcl 7 70 0
.ends chargestoragebuff
Functions
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).
Conditional Expressions
General Form
IF (<expr1>) (<expr2>) ELSEIF (<expr3>) (<expr4>) ELSE (<expr5>)
If expr1 evaluates to greater or equal to 1, then expr2 is evaluated and so on. Expr1 and expr3
are logic expressions and C-like logic statements (i.e. IF, ELSE, ELSEIF) are allowed.
Examples
The following examples give a flavor of expressions. You can use expressions to solve
general circuit problems and to solve engineering and mathematical problems. For example,
you can use expressions to solve nonlinear equations.
You can instruct the simulator to start the circuit partitioning algorithm by using the current
variable i(v).
eVT tvt 0 v='if (GAMMA <= 0) (VT0) else (VT0 + GAMMA * (sqrt (abs(v(sr,bu)-
PHI)) - sqrt(PHI)))'
.ends mos_1
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
You can use table driven controlled sources with tlsim. These sources use Piecewise Linear
Tables (PWL) that capture arbitrary non-linearities.
The type of PWL data is captured in the DATAPOINTS statement. Using the datapoints
statement you can represent data points such as V-I (voltage-current), general v-v (voltage-
voltage, current-voltage, and current-current), voltage-coefficient, and voltage-impedance
tables.
General Form
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)) * . . for F and H elements
Non-linear Capacitors
General Form
Gxxxx pos neg PWLSUM c1 c2...capacitor=1
Fxxxx pos neg PWL V1 V2...capacitor=1
You can model non-linear capacitors by appending the parameter, capacitor=1, to the G or
F statement. The PWL table, in this case, describes the capacitance value.
Non-linear Inductors
General Form
Exxxx pos neg PWL c1 c2...inductor=1
Hxxxx pos neg PWL V1 V2...inductor=1
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.
1 R
60
36
2 V
-0.5 1.5 2.0
The variable source is controlled by the voltage across its terminals. The datapoints
statement specifies the V-I behavior of the source.
GVI 1 2 PWL 1 2
DATAPOINTS VI
-5 142ma
0 -132ma
2.5 -110ma
5 0
6 64ma
8 118ma
END DATAPOINTS VI
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
..
..
end Cf
datapoints_type Description
IMPED impedance data
COND admittance = 1.0/IMPED
VI Voltage-current data
COEFF coefficient table
VV General voltage-voltage, current-voltage,
current-current tables
TIMECOEFF New dynamic time dependent
coefficients which can be specified for
rising and falling states. Determine the
rise and fall states using voltage
threshold parameters vlohi and vhilo.
Use this instead of the following obsolete
latches.
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
Timecoeff is the key word identifying the time controlled coefficient. You must use at least one
of the two supported parameters, vlohi or vhilo, with this keyword.
Note: The vlohi and vhilo parameters are not defined in the IBIS standard.
If either vlohi or vhilo is not present, timecoeff does not transition in the missing direction.
The controlling voltage, crossing vhilo with a positive slope, marks the beginning of the rising
edge. The controlling voltage, crossing vlohi with a negative slope, marks the beginning of
the falling edge. Glitches (for example, crossing of vlohi followed by yet another crossing of
vlohi) cause the time to be reset. The following figure shows the timecoeff at node 2
controlled by the input voltage at node 1.
4n 2
2ns
Use the threshold modifiers vlohi and vhilo in datapoints statements to model hysteresis
effects. The controlled source has two sets of tables: one for rising and another for falling.
See the following examples for use of vlohi and vhilo in datapoints statements.
Example 1
datapoints coeff vlohi=0.5 vhilo=0.5
rising
0 0
0.5 0
1 1
falling
1 1
0.5 0.5
0 0
end coeff
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
Threshold controlled sources supersede latches, which are an older style of datapoints.
Latches are documented only for backward compatibility. In a voltage (current) controlled
latch, the latch turn-on (off) points are controlled by both the instantaneous value and the
slope. Additional parameters further control the shape of the latch.
DATAPOINTS COEFF_ON(OFF)_LATCH <SWITCHONTIME=val> <SWITCHOFFTIME=val2>
<TRANSITIONINDEPENDENTLATCH=1 or 0> <DURATION=val3>
[Falling OR Rising]
* The first column specifies the controlling value at which the latch comes on. The second on
specifies the width of the on time
col1 col2
END COEFF_ON_LATCH
e_latch 1 2 pwl 3 4
DATAPOINTS COEFF_ON_LATCH SWITHCONTIME=0.1n SWITCHOFFTIME=0.2n
* This latch comes on only during falling transition
falling
* The first column specifies the controlling value at which the latch comes on. The second on
specifies the width of the on time
0.7 1n
end coeff_on_latch
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.
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.
Hysteresis Latch
The hysteresis latch is a VCVS (a voltage controlled voltage source). See General Form
on page 558 for more information.
In this example, the hysteresis latch comes on when the controlling voltage crosses 0.2 volts
and is rising. The VCVS reaches its maximum value of 1 volt after 2ns. It starts falling when
the controlling voltage goes below 0.8 volt during the falling transition and eventually reaches
its minimum voltage of 0 after 0.5ns.
Ehyst 2 0 PWL 1 0
DATAPOINTS COEFF_HYSTLATCH RISETIME=2n FALLTIME=0.5n RISEVAL=1.0 FALLVAL=0.0
0.2 0.8
END DATAPOINTS COEFF_HYSTLATCH
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.
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)
You can represent filters and other solutions of linear circuit problems in the frequency
domain. With tlsim, you can model rational functions of the following form:
I(s) = H(s) * V(s)
For example, Figure J-7 on page 566 shows the modelling of rational functions using a
harmonic oscillator.
Harmonic Oscillator
The following example illustrates a second order harmonic oscillator that contains resistor R,
inductor L, and capacitor C connected in series. A second order differential equation (in
Laplace algebraic form) describes the transfer function between the input voltage and the
output voltage at the capacitor.
R
1 L 2 R sL
Vo(s) 1/sC
Vo C
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
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 ..
The controlled value is a sum. For example, look at the kth element of the current vector in
our general equation.
Ik = Hk1 V1 + Hk2 V2 + ......
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
a0 = 1
a1 = 0 (not shown)
b0 = 1
b1 = R*C
b2= L*C
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
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.
This section describes the operation of 7-terminal behavioral driver (receiver) models. You
can follow these model statements with data which describes the switching behavior: DC VI
data, rise/fall time data, logic low and high reference voltages, logic low and high state
thresholds (the crossing of these thresholds is tracked by the simulator) and TV data. Rather
than embed this much data in the main circuit file, store the model data in a separate file.
Specify the file name directly in the Bdrvr statement. This differs from standard SPICE
practice where you insert the parameters for a model in a separate Model statement.
Note:
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.
Both the driver and receiver models start with the keyword Bdrvr. Model receivers with enable
off which disables the pullup and pulldown sources.
BDRVRxxxxxxxx n1 n2 n3 n4 n5 n6 n7 [Model=Model_Name File=data_file]
* n1 - Vcc terminal
* n2 - device output
* n3 - Vgnd terminal
* n4 - device input
* n5 - device enable
* n6 - power clamp reference
* n7 - Ground clamp reference
n6
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
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 0
1 0.064
5 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 0
0.5 0.07
1 0.127
...
END VI PULL_DOWN
Adding Terminators
Rac=1000000
Cac=2
...
Example
"e:\more_es_bdrvrs\es_bdrivers.dml"
(LibraryVersion 136.2 )
(PackagedDevice
(JB_ES_FAST
(ESpice ".subckt JB_ES_FAST 1 2 3 4 5 6 7
.node_param 1 print
.node_param 2 print
.node_param 3 print
.node_param 4 print
.node_param 5 print
.node_param 6 print
.node_param 7 print
*****************************************************
* driver
bdrvr2 101 102 103 104 105 106 107 Model=JB_IO_Fast thresholdswitch=1 vlohi=2.8 vhilo=2.0
.model JB_IO_Fast bdrvr
DATAPOINTS BDRVR JB_IO_Fast
MODEL_VERSION=2.0
PullUpReference=5
PullDownReference=0
PowerClampReference=5
GroundClampReference=0
DATAPOINTS AC_PARAM
dVGateOpen=1
dVGateClose=0
ENABLE_ON_VOLT=1
ENABLE_OFF_VOLT=0
RISE_TIME=8e-10
FALL_TIME=8e-10
dVdtr=6.25e+09
dVdtf=6.25e+09
END AC_PARAM
DATAPOINTS LOGIC_PARAM
VHI_MIN=3.1
VLO_MAX=2.1
OUTPUT_VHI_MIN=4.5
OUTPUT_VLO_MAX=0.1
END LOGIC_PARAM
DATAPOINTS VI POWER_CLAMP
0 0
0.1 0
0.4 0.0001
0.5 0.0006
0.6 0.0012
0.7 0.0024
0.8 0.006
0.9 0.013
1 0.025
5 0.293
END VI POWER_CLAMP
DATAPOINTS VI ground_clamp
0 0
-0.1 0
-0.4 -0.0001
-0.5 -0.0005
-0.6 -0.0012
-0.7 -0.0024
-0.8 -0.006
-0.9 -0.013
-1 -0.025
-5 -0.293
END VI ground_clamp
DATAPOINTS VI PULL_UP
-10 -0.147
-5 -0.142
-4.5 -0.138
-4 -0.133
-3.5 -0.128
-3 -0.123
-2.5 -0.115
-2 -0.103
-1.5 -0.088
-1 -0.069
-0.5 -0.043
0 0
1 0.069
2 0.103
3 0.123
4 0.131
5 0.142
END VI PULL_UP
DATAPOINTS VI pull_down
-5 -0.225
-4 -0.217
-3 -0.212
-2 -0.193
-1 -0.075
0 0
0.5 0.075
1 0.132
1.5 0.169
2 0.193
2.5 0.208
3 0.212
3.5 0.215
4 0.217
4.5 0.219
5 0.22
10 0.225
END VI pull_down
DATAPOINTS PARASITICS
C_COMP=3e-12
END PARASITICS
END BDRVR JB_IO_Fast
*****************************************************
.ends JB_ES_FAST
" ) ) ) )
You can specify 11 terminals for behavioral bdrvr models. The voltages at the extra 4
terminals directly multiply the pullup, pulldown, power clamp and ground clamp V-I tables,
respectively, so you can dynamically control and scale these current sources.
For example, you can boost pullup by 20% and pulldown by 30% as shown:
Bdrvr 1 2 3 4 5 6 7 8 9 10 11 Model=buff File=ibis_file
v_pullupx 8 0 1.2
v_pulldownx 9 0 1.3
v_powerclamp 10 0 1
v_groundclamp 11 0 1
One important aspect of a behavior model is its switching behavior, for example, how it
switches from pullup to pulldown and from pulldown to pullup. The basic model, with default
switching and no TV curves, is implemented as a VCCS with the input voltage value
controlling the switching function. During switching, the coefficient monotonically increases
from 0 to1 for the duration of rise time for the pullup. Similarly, during switching, the coefficient
monotonically decreases from 1 to 0 for the duration of the fall time for the pulldown. In this
case, the input voltage zero means the pullup is completely shut off, and the input voltage 1
means the pulldown is completely shut off.
With TV curves, the switching function is based on timecoeff rather than input voltage value.
A positive slope at voltage 0 and a negative slope at input voltage 1 denote the start of rising.
Unfortunately, numerical instability and false switching arise if the input node voltage is not a
simple source or is floating, as during simultaneous switching. You can make switching use a
truly threshold driven timecoeff by basing the bdrvr switching on the input voltage thresholds
vlohi and vhilo, which are defined in the IBIS data.
Note: The parameters vlohi and vhilo are not defined in the IBIS standard.
In this case, the input voltage has to swing from vgnd to Vcc or the full logic swing, rather than
0 to 1, as in the default case. Specify the thresholdswitch parameter in bdrvr statements to
enable threshold switching.
bdrvr 1 2 3 4 5 6 7 Model=buff file=ibis_file
thresholdswitch=1
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
You learned how to dynamically scale VI curves. Dynamic scaling is important in applications
like simultaneous switching where VI degradation takes place. In applications like buffer
design you need to prescale an existing buffer. You can scale the VI and TV curves in Bdrvr
statements on an instance by instance basis.
bdrvr 1 2 3 4 5 6 7 Model=buff file=ibis_file VIScale_pullup=1.2 TVScale_rise1=0.8
The prefix VIScale requires the underscore after it. The VI curve scaling keywords are:
VIScale_pullup
VIScale_pulldown
VIScale_powerclamp
VIScale_groundclamp
TVScale scales or stretches the time in a TV table. Unlike scaling VI curves, you can
individually scale any number of TV curves. The curves are identified by a name.
In this example the modifier stretches the time in the TV table by a factor of 0.8 curve identified
as rise1.
TVScale_rise1=0.8
Modifying the Bdrvr statement affects the VI and TV curves of the model buffer only for that
particular instance. The original model is unaltered. If you need scaling on a more global
model level, you can include scaling sections in the Datapoints Bdrvr buff model statement.
DATAPOINTS BDRVR buff
..
datapoints vi_scalingfactors
pullup=0.5
pulldown=0.5
end vi_scalingfactors
datapoints tv_scalingfactors
rise_1=0.5
rise_2=0.5
fall_1=0.2
fall_2=0.2
end tv_scalingfactors
..
end bdrvr buff
TV curves are not required by tlsim. If you have no TV curves, tlsim uses ramp data to
determine rise and fall time.
Note: Although the IBIS specification allows up to 100 tables, Allegro PCB SI uses all
available TV tables.
While you may use TV curves with full-swing CMOS drivers, you are less likely to use them
with less linear driver circuits, such as low voltage differential drivers.
For I/O (pullup and pulldown), if you use TV tables, you need to use 4 to obtain correct
switching. For a buffer that has only pullup, or only pulldown, if you use TV tables, you need
only use 2. Table J-8 on page 579 shows the number of TV tables you need in relation to the
presence of pullup, pulldown or both. You can accurately determine the number of TV tables
you need without regard to whether the buffers have a timing offset between pullup and
pulldown.
A TV table load should be near the tline impedance you are trying to drive. This is usually in
the 50-75 ohm range.
Required number of TV 2 2 4
tables for correct switching
The following tlsim command line options control switching for TV curves:
Table J-9 Command Line Options Controlling Switching for TV Curves, continued
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.
Wa
Wb
G Y Y G
The circuit parameters are derived from frequency-dependent RLGC parameters. These
parameters are specified in separate input files. Alternatively, you can embed the RLGC
parameters in the ESpice file.
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.
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
* L = henries/meter
* c = farads/meter
* G in siemens (1/ohm)/meter
RMATRIX
1.2 0
0 1.2
LMATRIX
...
...
CMATRIX
...
...
GMATRIX
...
...
FREQUENCY=1000
....
....
Enter the RLGC data by embedding it in the ESpice file. The embedded data must come after
the n-conductor NTL statement.
Note: You omit the file name from the NTL statement.
NTL_2CONDUCTOR (1 2 0) (3 4 0) L=0.0005
DATAPOINTS RLGC
FREQUENCY=1000
RMATRIX
1.2 0
0 1.2
LMATRIX
...
...
CMATRIX
...
...
GMATRIX
...
...
FREQUENCY=100000
....
....
END RLGC
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
The lumped RLGC matrix is a special case of a multi-conductor line with the length of the
multi-conductor set to 0. The syntax is the same as that of a multi-conductor line with L=0.0
Nxxxxxxxx (ni1 ni2 ....nri) (no1 no2 ..... nro)
L=0.0 file=LC_input_file_name
NODE_PARAM Statement
Use the .NODE_PARAM statement to (re)assign name and logic values to circuit nodes. The
syntax is:
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
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
With the previous statement, the simulator tries to simulate until node 2 completes its last
cycle. It also saves cycle parameter information in the cycle file, cycle.msm. The cycle
measurement is shown in Figure J-11 on page 585:
Rise Fall
Vhi_MIN
Vlo_Max
1 cycle
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)
You can measure crossing points of arbitrary voltage. These crossings must not have
reserved names like vlo_hi.
The following statement measures the time crossing points of 1.1 volt. The measurements
appear under the label v1.1.
.node_param 2 v1.1=1.1
You can use node param statements inside a subcircuit. Using the standard syntax, you can
specify only one name. When the subcircuit is used multiple times, printed output only
includes information for the last node listed.
In the following example, the printed output contains value for only node 2 in the main circuit.
x1 1 sckt
x2 2 sckt
.subckt sckt 1
.node_param 1 name=sckt_name print
.ends sckt
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.
You can also inherit parameters of another node, rather than repeat the same parameters. In
this example the inherit function pulls in all the cycle values, and voltage values. Note that
nodes 1 and 5 should have been defined first.
.node_param 2 inherit=(1)
.node_param_diff 2 3 inherit=(1 5)
NODE_PARAM_DIFFERENTIAL Statement
PRINT Statement
.PRINT statement
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)
You can learn to create models using standard DML features described in DML Syntax on
page 514. To create a simulation model that has some atypical behavior, describe that
behavior using ESpice.
You can include ESpice simulation models in DML libraries as described next.
(PackagedDevice
(MyEspiceRcFilter
(ESpice
". MyEspiceRcFilter 2 1
R1 1 2 22
C1 0 2 20p
.ends MyEspiceRcFilter
)
(PinConnections
(...
)
)
)
(PackagedDevice
(MyESpiceResistor
(ESpice
".subckt MyESpiceResistor 2 1
R1 2 1 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.
(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)
(S2 G2)
...
...
)
)
)
(PackagedDevice
(MyEspiceTerminator
(ESpice
".subckt MyEspiceTerminator G1 S1 S2 G2
X1 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)
...
...
)
)
)
Voltage Source
Use a simple voltage source to drive the system, when studying the behavior of an
interconnect. Use an ESpice device and custom stimulus to do this.
Heres how:
1. Build the desired source.
2. Add a disabled driver to the circuit.
You add a disabled driver because the simulation is aborted with no eligible drivers in the
topology, and because SigXplorer does not recognize an active Vsource taking the place of
a driver. To circumvent this problem, perform these tasks:
1. Add an IO (tri-statable) driver.
2. Using Custom Stimulus, hold the ENABLE line to a zero level until just before the end of
the simulation.
Examples of two Vsources you can use implemented as PULSE and PWL follow:
(ideal_source
(ESpice
.subckt ideal_source 1 2
Rdud 1 3 0.00001
V1 3 2 PULSE (0 2.5 0n 1n 1n 8n 20n)
.ends ideal_source
)
)
(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)
)
)
)
Allegro SI supports Generic Element Diodes that are mostly ideal and hard-coded. You can
use a table-driven diode that embeds series resistance and junction capacitance as shown in
the following example:
(table_diode
(ESpice
.subckt table_diode 1 2
Rseries 1 3 0.2
Cjunction 3 0 1.2p
G1 anode 2 PWL 1 2
datapoints vi
0 0
0.6 0
0.65 3e-3
0.7 6e-3
1.0 15e-3
2.3 300e-3
end datapoints vi
.ends table_diode)
)