Contents
Unit i: Introduction&Overview
Unit 1: Data Setup&Basic Flow
Unit 2: Design Planning
Unit 3: Placement
Unit 4: Clock Tree Synthesis
Unit 5: Multi Scenario Optimization
Unit 6: Routing and Crosstalk
Unit 7: Chip Finishing and DFM
Unit CS: Customer Support
Unit i: Introduction&Overview
Facilities
Workshop Goal
Target Audience
Workshop Prerequisites
Introductions
Curriculum Flow
Agenda
High-Level IC Compiler Flow
Lab 0: IC Compiler GUI-MainWindow
Lab 0: IC Compiler GUI-LayoutWindow
Lab 0A: IC Compiler GUI
Unit 1: Date Setup&Basic Flow
Unit Objectives
A Word of Caution About Scripts and Flows
General IC Compiler Flow
Data Setup
Logical Libraries
Physical Reference Libraries
Milkyway Structure of Physical Libraries
1.Specify the Logical Libraries
2.Define 'logic0' and 'logic1'
IC Compiler Initialization Files
3.Create a "Container": The Design Library
Initial Structure of a Milkyway Design Library
The Technology File(.tf file)
Example of a Technology File
The check_library Command
4.Specify TLU+ Parasitic RC Model Files
Timing is Based on Cell and Net Delays
TLU+ Models
Mapping file
5a.Read the Netlist and Create a Design CEL
Must Uniquify Multiply Instantiated Designs
Linking: Resolving References
Milkyway Design Library with Design Cell
5b.Shortcut:Import the Netlist
6.Verify Logical Libraries Are Loaded
7.Define Logical Power/Ground Connections
8.Apply and Check Timing Constraints
Timing Constraints
9.Ensure Proper Modeling of Clock Tree
Test for Understanding
10.Apply Timing and Optimization Controls
Available Timing and Optimization Controls
Timing and Optimization Setup Example
Enable Multiple Clocks per Register
Enable Constant Propagation
Enable Multiple Port Net Buffering
Enable Constant Net Buffering, if Needed
Apply Timing Derating for On-Chip Variation
Define "Don‘t Use" or "Preferred" Cells
Keep Spare or Unloaded Cells
Apply Area Constraint for Area Recovery
Apply a Power and Area Critical Range
IC Compiler Organizes Paths into Groups
General Problem:Sub-Critical Paths Ingored
Serious Problem:Reg-to-Reg Paths Ignored
Solution:User-Defined Path Groups
Define Path Groups for I/O Paths,if needed
Prevent Buffering of Clock-as-Data Networks
Modify Optimization Priority if Needed
Enable Recovery and Removal Timing Arcs
11.Perform a 'Timing Sanity Check'
12.Remove Unwanted "Ideal Net/Networks"
13.Save the Design
Design Library with New Design Cell
UNIX Manipulation of a Milkyway Database
Restoring Variables
Restoring Logical Library and TLU+ Settings
Loading an Existing Cell After Exiting ICC
Data Setup Summary
Data Setup Example(1 of 3)
Data Setup Example(2 of 3)
Data Setup Example(3 of 3)
Test for Understanding(1 of 2)
Test for Understanding(2 of 2
General IC Compiler Flow
Design Planning
Load an Existing Floorplan
Placement and Related Optimizations
Clock Tree Synthesis
Routing
Chip Finishing
Analyzing the Results(1/2)
Analyzing the Results(2/2)
Example “run” Script
Basic Flow Summary
Lab 1: Design Setup and Basic Flow
Unit 2: Design Planning
Unit Objectives
General IC Compiler Flow
Terminology
ICC Design Planning and Re-Synthesis Flow
Select the Design Planning Task GUI
Create the Starting Floorplan
Create Physical-only Pad Cells
Specify Pad Cell Locations
Initialize the Floorplan
Core Area Parameters
Floorplan After Initialization
Insert Pad Filler Cells
Create P/G Pad Rings
Prior to Virtual Flat Placement
Ignore Extra Routing Layers
Constraining Macros
Manual Macro Placement
Macro Constraints: Arrays
Macro Constraints: Legal Orientation Option
Macro Constraints: Anchor Bound Option
Macro Constraints: Side Channel Option
Macro Constraints: Relative Location
Congestion Potential Around Macro Cells
Apply Global Placement Blockages
Apply Specific Placement Blockages
Summary: Create the Starting Floorplan
Test For Understanding
Perform Virtual Flat Placement
Set Placement Strategy Parameters
VF Placement with Virtual IPO(VIPO)
Perform Virtual Flat Placement
Hierarchy Aware Placement or Gravity
Summary: Virtual Flat Placement
Reduce Congestion
Is the Design Congested?
Understanding the Congestion Calculation
Congestion Guidelines
Modify Macro Placement Constraints
Apply Standard Cell Placement Constraints
Is High Cell Density Causing Congestion?
Reducing Cell Density Hotspots
Coordinate-based Placement Blockages
Modify "FP Placement Strategy" Options
Placement Strategy Options and Defaults
Macro Placement Strategy Examples
Perform Congestion-driven Placement
Invoke the High Effort Congestion Strategy
Modify the Floorplan
"Fix" All Macro Cell Placement
Summary; Reduce Congestion
Test For Understanding(1 of 2)
Test For Understanding(2 of 2)
Synthesize the Power Network(PNS)
Power Network Synthesis(PNS)
Define Logical Power/Ground Connections
Apply Power Network Constraints
Synthesize and Analyze the Power Network
Modify Constraints and Re-synthesize
Create Virtual Power/Ground Pads if Needed
Add Additional P/G Pads to TDF and Re-load
Commit the Power Network
Connect P/G Pins and Create Power Rails
Analyze the Power Network
Apply Power Net Placement Blockages
Perform Incremental Virtual Flat Placement
Summary: Synthesize the Power Network
Reduce Delay
Global Route and Analyze Congestion
Modify Power Net Placement Blockages
Return to "Reduce Congestion", if Needed
Extract Net Parasitics and Analyze Timing
Perform In-Place Optimization
Modify Floorplan or Re-Synthesize, if Needed
Summary: Reduce Delay
Write Out the Floorplan and DEF Files
Write Out Floorplan and DEF Files
Re-Synthesize Before Placement
Re-Synthesize Before Placement
Test For Understanding(1 of 2)
Test For Understanding(2 of 2)
Summary
Lab2: Design Planning
Appendix A
Floorplan Exploration and Re-Synthesis Flow
Floorplan Exploration Objectives
Overview: Floorplan Exploration
Load the Floorplan Definition (DEF) Files
Pre-exploration Settings and Checks
Check Placement Readiness
Perform Low-effort Placement Optimization
Check and Fix Congestion
Modify the Floorplan
Analyze and Fix Timing
Write Out the Floorplan Files
Summary: Floorplan Exploration
Summary: 3rd Party Design Planning Flow
Unit 3: Placement
Unit Objectives
General IC Compiler Flow
Design Status Prior to Placement
IC Compiler Placement Flow
Placement Setup and Checks
"Fix" all Macro Cell Placements
Verify pnet Options and Ignored Layers
Verify Keepout Variable Settings (if used)
Non-Default Clock Routing
Specify Non-Default Routing Rules
Check Placement Readiness
Summary: Placement Setup and Checks
Design-for-Test(DFT) Setup
Pre-Existing Scan Chains
The Issue with Existing Scan Chains
SCANDEF-Based Chain Reordering
Re-ordering Chains within Same "Partition"
Example SCANDEF from Synthesis with DFT
Example: Placement with Existing Ordering
Example: Reordering Within Scan-Chains
Example: Reordering Within Partitions
Placement-Based Scan Chain Re-Ordering
Consider Extreme Block Aspect Ratios
Summary: DFT Setup
Power Setup
Where Does Power Dissipation Occur?
Leakage Power Optimization
Report Multi-Vth Cells
Reducing Dynamic Power Dissipation
Switching Activity Terminology
SAIF File Provides Switching Activity
What if SAIF is Not Available?
Dynamic Power Optimization: LPP
Dynamic Power Optimization: GLPO
Summary: Power Optimization Flow
Test For Understanding
Placement and Optimization
Overview: Placement and Optimization
The Initial Placement and Optimization
Placement and Logic Optimization
Considerations for Using -congestion
No Hold Time Fixing
Post-Placement Analysis
Incremental Optimization
Apply Placement Constraints As Needed
Recall Problem: Sub-Critical Paths Ignored
Solution #1: User-defined Path Groups
Solution #2: Apply a Critical Range
Solution #3: Prioritizing Path Groups
Example: -weight
Complete Example
Incremental Logic Optimization: psynopt
Summary: Incremental Optimization
If the Design is Still Seriously Congested ...
Enable Global Router During Optimization
Summary:Placement and Optimization
Improving Congestion and Setup Timing
Overview: Improve Congestion/Timing
refine_placement
psynopt
Summary: Improve Congestion/Setup Timing
Test For Understanding(1 of 2)
Test For Understanding(2 of 2)
Techniques with More User Control
Build User-Controlled Balanced Buffer Trees
Build Skew-Optimized Buffer Trees
Relative Placement
What's Special about Data Path Logic?
The Ideal Layout for Data Path
Data Path Layout using Traditional P&R Tool
Traditional Solution: Custom/Manual Layout
IC Compiler's Solution: Relative Placement
Fetures and Benefits of Relative Placement
Candidates for Relative Placement
More Information on Relative Placement
Summary
Lab 3: Placement
Unit 4: Clock Tree Synthesis
Unit Objectives
IC Compiler Flow
Design Status, Start of CTS Phase
Is the Design Ready for CTS?
Starting Point before CTS
Clock Tree Synthesis
CTS Goals
Clock Tree Synthesis(CTS)(1/2)
Clock Tree Synthesis(CTS)(2/2)
Where does the Clock Tree Begin and End?
Define Clock Root Attributes(1/2)
Define Clock Root Attributes(2/2)
Stop, Float and Exclude Pins
Generated and Gated Clocks
Skew Balancing not Required?
User-defined or Explicit Stop Pins
Defining an Explicit Stop Pin
Defining an Explicit Float Pin
Preserving Pre-Existing Clock Trees
Impact of Preexisting Clock Cells
Test for Understanding
Specifying Skew/Insertion Delay Targets
Clock by Clock Settings
Set Buffer/Inverter Selection Lists
When Clock Tree DRCs are Used
Non-Default Clock Routing
Specifying Non-Default Rules
Nondefault Rule Options
NDR Recommendations
Invoke CTS: Core Command
clock_opt use recommendation
Effects of Clock Tree Synthesis
Incremental Placement/Optimization
Minimize Hold Time Violations in Scan Paths
Recommended Flow
Analysis using the CTS GUI
Analysis CTS Results
What about CTS Operating Conditions?
Clock Tree Optimization
(Embedded) Clock Tree Optimization
Balancing Multiple Synchronous Clocks
Inter-Clock Delay Balancing
Inter-Clock Delay Balancing with Offset
SDC Latencies
Core vs. Atomic Commands
Flow Using Atomic Commands
Test for Understanding
Unit Objectives Summary
Lab4: Clock Tree Synthesis
Appendix A: Automatic IO Latency Calculation
IO Latency Auto Update
Auto Update with Virtual Clocks
Appendix B: CTS with Logical Hierarchy
CTS with Logical Hierarchy
Clock Tree Cells Added in Top Hier
Appendix C: Clock tree configuration control
Clock Tree Configuration Control
Clock Tree Configuration Syntax
Appendix D: CTS Naming Convention
CTS Naming Convention
Unit 5: Multi Scenario Optimization
Unit 6: Routing and Crosstalk
Unit Objectives
IC Compiler Flow
Design Status, Start of Routing Phase
Pre-Route Checks
Routing Fundamentals: Goal
Grid-Based Routing System
Routing over Macros
Change the Preferred Routing Direction
Routing Operations
Route Operations: Global Route
Route Operations: Global Route Summary
Route Operations: Track Assignment
Route Operations: Detail Routing
Route Operations: Search&Repair
Test for Understanding
General Flow for Routing
Set Routing Options Prior to Routing Steps
Route Clock Nets First
Core Routing: route_opt
First route_opt Example
Perform Initial Redundant Via
Post Route Optimization Examples
Core Routing Strategy
Analysis of the Routing DRC Errors
Fix DRC Violations
PostRoute Delay Calculation Algorithms
Test for Understanding
Galaxy Crosstalk
What is Crosstalk?
Crosstalk-Induced Noise(aka Glitches)
Crosstalk-Induced Delay
Crosstalk Prevention in IC Compiler
Crosstalk Correction in IC Compiler
Example Full Crosstalk Flow
Xtalk-Reduction at Work
Wire Sizing(Aka Applying NDRs)
Wire Sizing at Work
ECOs: Making Changes Late in the Flow
The Two Types of ECO Flows
Functional ECO Flows
Non-Freeze Silicon ECO
Hierarchical ECO Change File Example
Inserting Spare Cells for Freeze Silicon ECO
Protecting Spare Cell Placement
Freeze Silicon ECO: Metal Change Only
ECO Routing Example
Zroute: Synopsys' New Routing Technology
1.State of the Art Routing Technology
2.Concurrent DFM Optimizations
3.Multi-threaded Throughout
10X Speed-Up On Mainstream Hardware
Zroute Is GA in IC Compiler 2008.09!
Zroute Users Tell The Story...
Routing&Crosstalk Summary
Lab 6a: Routing&Crosstalk, Lab 6b: ECO
Unit 7: Chip Fishing and DFM
Unit Objectives
IC Compiler Flow
Design Status, Completion of Routing Phase
Chip Finishing Flow
Problem: Gate Oxide Integrity
Antenna Rules
Solution 1:Splitting Metal or Layer Jumping
Solution 2:Inserting Diodes
Antenna Fixing Flow
Antenna: Misc
Random Particle Defects
Reporting the Critical Area
Solution: Wire Spreading+Widening
Controlling Minimum Jog Length
Proactive: Density-Driven During GR and TA
Voids in Vias during Manufacturing
Via Control Through Tcl Variables
Insert Redundant Vias
Reporting Redundant Via Count
Redundant Via Methodologies
Why Filler Cell Insertion?
Insert Cells to Fill Unused Placement Sites
Problem: Metal Over-Eaching
Solution: Metal Fill insert_metal_filler
Timing-Driven Rule-Based Metal Fill
Problem: Metal Erosion
Problem: Metal Liftoff
Solution: Metal Slotting
DFM Issues and Solutions Summary
Final Validation
Final Validation: Parasitics (SPEF or SBPF)
Final Validation: Netlist Output
Final Validation: GDS2 Output
Hercules VUE Integration
Accessing VUE in IC Compiler
Running VUE
Test for Understanding
Summary
Lab 7: Chip Finishing
Appendix A: Critical Area Calculations
Critical Area Definition
Discrete Defect Size Distribution
Appendix B: FAQ
Wire Spreading
Redundant Via Insertion 1/2
Redundant Via Insertion 2/2
Filler Cell Insertion
Metal Fill Insertion
Customer Support
Synopsys Support Resources
SolvNet Online Support Offers
SolvNet Registration is Easy
Suport Center: AE-based Support
Other Technical Sources
Summary: Getting Support