Color Slides SOCE 3 3
Color Slides SOCE 3 3
Color Slides SOCE 3 3
Version 3.3
March 3, 2004
engine and have some basic knowledge of the features of the Encounter platform.
In this course, you will execute all the major steps required to
complete the design flow from gate level through place and route.
You will fix signal integrity and timing problems using parasitic data
3/3/04
SoC Encounter
Course Objectives
In this course, you will
Explore high-level and hierarchical design planning and virtual
prototyping.
Run Amoeba and block placement. Route the design with Trial Route. Estimate parasitics and run delay calculation. Create clock trees. Run delay calculation. Optimize timing. Run final route. Extract parasitics. Run crosstalk analysis. Run power analysis.
3/3/04 SoC Encounter 3
Course Agenda
Day 1
Introduction to the SoC
Day 2
Top-Level Implementation Chip Assembly and Sign-Off Chip Finishing Timing and Signal Integrity
Encounter Environment
Logical Synthesis and Scan
Insertion
Silicon Virtual Prototyping Hierarchical Floorplan
Closure
IPO and Physical Optimization
Generation
Detailed Block Implementation
3/3/04
SoC Encounter
Customer Support
Service Request
If you dont find a solution on the SourceLink site, you can send email or call customer support.
If your problem requires more than customer support, then a product change request (PCR) is initiated.
E-mail E-mail
[email protected] [email protected]
You You can can send send a a service service request request by by e-mail. Include details and e-mail. Include details and data data or or pointers pointers to to the the data data to to illustrate illustrate the the problem. problem. If your request does not require that you send data for someone to analyze, then call the hotline.
PCR
R&D
3/3/04
SoC Encounter
3/3/04
SoC Encounter
Module 1
March 3, 2004
SoC
Encounter
Nano
Encounter
WRoute Route Accelerator NanoRoute Signal Integrity Sign-off Analysis Sign-off Extraction and Power Analysis
NanoRoute Ultra
Celtic Analyzer
3/3/04
SoC Encounter
Floorplanning Icons
Satellite Window
Design Entry Logic Synthesis and Scan Insertion (BuildGates) Hierarchical Virtual Prototyping and Physical Implementation Environment
(SoC Encounter) Final Netlist Routed Database RTL Design Data Initial Constraints
Chip Finishing
(VCE)
3/3/04
SoC Encounter
10
Design Entry Logic Synthesis/Scan Insertion Silicon Virtual Prototyping Hierarchical Floorplan Generation Detailed Block Implementation Top-Level Implementation
BuildGates
3/3/04
SoC Encounter
11
3/3/04
SoC Encounter
12
Module 2
March 3, 2004
Technology Libraries
Constraints If you use PKS for preplacement optimization, then provide the floorplan.
Optimize/Map Netlist Design-For-Test Configuration Scan Insertion Custom WLM Preplacement Optimization Scan DEF Generation JTAG/BIST Generation Custom WLMs can be generated by the Encounter engine. Netlist Generation Constraint Generation
Floorplan
3/3/04
SoC Encounter
14
Steps
Optimize and Map the Design
An RTL description of a design can contain a mixture of high-level statements, gate-level netlists, and custom blocks. Use RTL Compiler (RC) tool to optimize and map the RTL. RTL Compiler is the next generation synthesis tool for multimillion-gate designs.
DFT Configuration
The tool which inserts the scan components into the design will also output a scan order file. This file contains the order in which scan components need to be connected.
3/3/04 SoC Encounter 15
JTAG/BIST Generation
JTAG (boundary scan) and BIST (built-in-self-test) components are used to isolate manufacturing defects in chips. JTAG/BIST generation is performed with third party tools.
3/3/04
SoC Encounter
16
3/3/04
SoC Encounter
17
3/3/04
SoC Encounter
18
Module 3
March 3, 2004
IO Placement
Silicon Virtual Prototyping Hierarchical Floorplan Generation Detailed Block Implementation Top-Level Implementation Chip Assembly and Sign-off
Vendor Floorplan
Module guides Fences (shaping/sizing) Blockages (place/routing) Assign block locations Power plan
* Check constraints. ** Place top-level modules and blackboxes. (Used in an all-block design) Timing/Routing Issues ***Depending on design size, you can use floorplanning mode or ClusteringPlace for increased capacity.
Amoeba Placement***
hardmacros and cells
Scan Chain Reordering Power Planning (rings/stripes) Trial Routing/Extraction/CTE Clock Issues
No
SoC Encounter
20
design methodology.
You can use the Encounter block placer or manually place blocks.
3/3/04
SoC Encounter
21
(continued)
Power plan.
Optionally, define Multiple Supply Voltages (MSV), and define the power rings and power stripes. You can save the power plan to a file after achieving a satisfactory initial structure. Typically, you do this step only if you use a predefined power structure in the design.
3/3/04
SoC Encounter
23
3/3/04
SoC Encounter
24
Extract RCs.
Extract parasitic resistance and capacitance (RC) values to calculate delays based on the wire lengths determined by trial routing.
3/3/04
SoC Encounter
25
3/3/04
SoC Encounter
26
Analyze power.
Perform power analysis. Note that the power plan will be refined in the next procedure.
3/3/04
SoC Encounter
27
3/3/04
SoC Encounter
28
command. Instead of the placeInstance command, use the Move icon to move blocks and instances to the core area.
Use the addRing and addStripe commands to create the power rings
and stripes around the core area and power rings around the blocks.
Use the amoebaPlace command to place the cells and the blocks
which have not been preplaced. The -timingdriven option places the cells in timing-driven mode and requires a constraints file. Otherwise, the cells will be placed in congestion mode.
Next, you create floorplan guides, which you might later convert to
trialRoute and extractRC commands. View the congestion map to determine if there are any hot spots in your design that might lead to routing problems downstream.
3/3/04 SoC Encounter 29
clock tree synthesis file, and run clock tree synthesis using the ckSynthesis command.
After checking setup and hold time with the actual clock (instead of the
ideal clock) you can run power analysis to analyze the power consumption and IR drops in the design, using the updatePower and displayRailAnalysisResults commands.
Finish the virtual prototyping stage by saving the design and the
3/3/04
SoC Encounter
30
Lab Exercises
Lab 1-1 Virtual Prototyping
3/3/04
SoC Encounter
31
3/3/04
SoC Encounter
32
Module 4
March 3, 2004
SVP
Silicon Virtual Prototyping Hierarchical Floorplan Generation Detailed Block Implementation Top-Level Implementation
Timing Problems
Pin Optimization Time Budget Push Down Power Parasitic Extraction/TA Power Routing Power Analysis
Power Problems
Top-Level Implementation
Top-Level Netlist Block LEF(s) Floorplan Placement Block TLF(s)
SoC Encounter
3/3/04
SoC Encounter
34
3/3/04
SoC Encounter
35
place the remaining cells at the top level of the design. Run trial routing, extract parasitics, analyze timing.
Route signals based on partitions, and examine the congestion map. If
congestion is acceptable, proceed to extract parasitics. If congestion is unacceptable, refine the floorplan by beginning with detailed block placement.
Extract parasitic RC values to calculate delays based on the wire lengths
the partitions you chose, meets timing constraints. If timing constraints are met and congestion is acceptable, commit the partitions. If they are not met, go back and refine the floorplan.
3/3/04 SoC Encounter 36
optimize the timing. The IPO option -neverAddPort will run IPO without creating any additional module ports. Use this option to avoid changes to the block port lists at this stage. Run trial routing, extract parasiitics, analyze timing.
The design is routed, extracted and timed again.
Route power.
Power is routed to the blocks and the components.
Analyze power.
Power analysis must be done prior to partitioning so that power budgets
3/3/04
SoC Encounter
37
Committing partitions creates fences, which constrain the module to a specific location without making a final commitment to the location. Committing partitions automatically does the following:
Optimizes pins.
For each block, the pin optimization places pins along the edges of the block.
The pin optimizer uses trial routing to determine the optimal pin placements.
Distributes timing delays: latch-to-pin within modules and pin-to-pin between Pushes stripes and rings down into the blocks. The blocks inherit the power
structure from the top-level floorplan.
3/3/04
SoC Encounter
38
netlist, floorplan, and budgeted constraints are saved in the directory. The cell placements within the partitions can optionally be saved as well.
A directory is also created for the partitioned top level. The top-level
netlist, floorplan, and updated constraints are saved into it. In addition, a simple timing model (STAMP) and LEF model is generated to represent each block that is instantiated in the netlist.
3/3/04
SoC Encounter
39
handle the partition flow to assign pins more accurately and reduce the routing congestion.
After committing the partitions, save the partitions using the
savePartition command. Saving the partitions saves the timing and LEF models in the partition directory.
3/3/04
SoC Encounter
40
Lab Exercises
Lab 2-1 Implementing the Hierarchical Floorplan
3/3/04
SoC Encounter
42
Module 5
March 3, 2004
High Effort IPO Congestion Optimization Slew Balancing IPO Clock Tree Synthesis
Trial Route/Parasitic Extract/CTE
Difficult Timing
Celtic Encounter
NanoRoute Sign-off extractor Sign-off Power Grid Analysis Equivalence Checker Optional Step
TD Route with SI awareness Extraction* Timing/SI Closure Flow Power Grid Analysis Noise Model Generation Output DEF, GDS or OA, Netlist and Spef Timing Model Creation Equiv. Check
To Top-Level Implementation
Timing Model Noise Model Power Model LEF
SI Closure
Netlist GDSII
3/3/04
SoC Encounter
44
3/3/04
SoC Encounter
45
3/3/04
SoC Encounter
46
Balance slews.
Balancing slews is a part of the flow that prevents SI problems by upsizing or downsizing components that are close to each other. This process minimizes the effect of aggressor on the victim due to differences in their slew rates.
Run high effort IPO again. Synthesize the clock trees in the block.
Select the option to generate a Macro model for the block when synthesizing the clock tree. The information in the Macro model file contains the insertion delay for the block that will be used later when implementing the top level.
3/3/04
SoC Encounter
47
Run trial routing, extract parasitics, and run timing analysis. Run routing with signal integrity options.
The NanoRoute tool will use soft spacing as a method to prevent long wire from running next to each other, thus reducing the possibility of crosstalk effects.
3/3/04
SoC Encounter
48
3/3/04
SoC Encounter
49
3/3/04
SoC Encounter
50
and optLeakagePower.
Optimize the clock tree for the block and save the clock tree macro
model using the ckSynthesis command and the -macromodel option. The saved macro model will be used later in top-level clock tree synthesis.
Add filler cells using the addFiller command. Use NanoRoute to route the critical nets first, and then route the
3/3/04
SoC Encounter
51
connectivity and antenna to make sure that the addition of filler cells and metal fill did not violate any design rules. The verification commands are verifyConnectivity, verifyGeometry and verifyProcessAntenna.
Fix block-level crosstalk violations using fixCrosstalk. Extract the block by using the Fire & Ice runQX command. Generate the .lib or TLF timing model and the OpenAccess database
3/3/04
SoC Encounter
52
Lab Exercises
Lab 3-1 Detailed Block Implementation
3/3/04
SoC Encounter
54
Top-Level Implementation
Module 6
March 3, 2004
3/3/04
SoC Encounter
56
Top-Level Implementation
Import Block Model Data
Timing-Driven Placement Scan Chain Reordering Trial Route/Parasitic Extract/CTE High effort IPO Repeater Insertion Congestion Optimization Slew Balancing IPO Useful Skew pre-CTS CTS Trial Route/Parasitic Extract/TA High effort IPO Skew clock post-CTS Trial Route/Parasitic Extract/TA TD Route with SI awareness Extraction* Hier Timing/SI Closure Flow Hier Power Grid Analysis Output top-level DEF, GDS or OpenAccess, Netlist and Spef Equivalence Check Difficult Timing
Celtic Encounter NanoRoute Sign-off extractor Sign-off Power Grid Analysis
Physical Synthesis
OA
3/3/04
SoC Encounter
57
Run Useful Skew Pre-CTS. Run clock tree synthesis. Do trial routing, extract parasitics, and analyze timing.
The design is trial routed, extracted, and timing is again analyzed this time with propagated clocks.
Run trial routing, extraction and timing analysis Run routing with signal integrity.
The NanoRoute tool runs signal integrity and timing-aware detailed routing. This tool is integrated natively into the Encounter executable and runs from the same in-memory data structures.
3/3/04 SoC Encounter 59
Run the timing optimization and signal integrity subflow. Run a hierarchical power grid analysis.
Run power and an IR drop analysis using the Encounter or VoltageStorm tools. The VoltageStorm tool requires an additional license.
SPEF.
At this point, the top level is essentially complete. An OpenAccess (OA) database and GDSII file can be created for the top level. The database can be read by DFII during chip assembly instead of the GDSII.
3/3/04
SoC Encounter
60
3/3/04
SoC Encounter
62
Lab Exercises
Lab 4-1 Top-Level Implementation
3/3/04
SoC Encounter
63
3/3/04
SoC Encounter
64
Module 7
March 3, 2004
From Block Implementation Flatten (unpartition) Full-Chip Power Grid Analysis Full-Chip Parasitic Extraction
Block DEFs Block Netlists
Silicon Virtual Prototyping Hierarchical Floorplan Generation Detailed Block Implementation Top-Level Implementation Chip Assembly and Sign-off
Stitch
Block SPEFs
Full-Chip SI Analysis
Full-Chip SDF
Timing Constraints
To Chip Finishing
Use SignalStorm for delay calculation. Top-Level OA
3/3/04
SoC Encounter
66
3/3/04
SoC Encounter
67
Extract full-chip parasitics (optional). Use the Fire & Ice QX extractor to run a flat extraction to derive all parasitics, including potentially undetected coupling between routing at the top-level and in the blocks. Either a 64-bit full-chip parasitic extraction can be performed on the flattened design, or the SPEFs from the top level and the blocks can be stitched together for 64-bit timing and SI analysis.
3/3/04
SoC Encounter
68
flatten the database. To flatten the database, you need to unpartition the design using the flattenPartition command.
You can then run extraction, delay calculation, SI analysis, and power
3/3/04
SoC Encounter
70
3/3/04
SoC Encounter
71
3/3/04
SoC Encounter
72
Chip Finishing
Module 8
March 3, 2004
Chip Finishing
Top-Level OA Block OAs
Top-Level GDSII
Block GDSII
* Modified OA DB
Errors?
Yes
Encounter
RTM GDS
VCE
Assura
Optional Step
3/3/04
SoC Encounter
74
database
Full-Chip OpenAccess database
3/3/04
SoC Encounter
75
3/3/04
SoC Encounter
76
SoC Encounter
techfile information and abstract cellviews for VCE. Complete your design in SoC Encounter. Save the floorplan file.
Needed when restoring design in SoC Encounter.
Output an OpenAccess database from the Encounter environment. Open the OpenAccess database in VCE. Edit the database in VCE.
3/3/04
SoC Encounter
77
SoC Encounter
Save the OpenAccess database in VCE. Import a design in SoC Encounter. Restore floorplan from the previous Encounter session. Clear floorplan to remove any special routing (power, ground, signal). Load the OpenAccess database from VCE into SoC Encounter to
other tasks.
Repeat loop as required. You can produce a GDSII stream from either VCE or SoC Encounter.
Usually VCE is used, because the GDSII stream file needs to include
scribe info and other data that typically does not exist in the Encounter database.
3/3/04 SoC Encounter 78
Lab Exercises
Lab 5-1 Chip Assembly and Sign-Off
3/3/04
SoC Encounter
79
3/3/04
SoC Encounter
80
Module 9
March 3, 2004
Timing Analysis Setup/Hold IPO fixSetupViolations IPO fixHoldViolations SI-Aware ECO Route SI Analysis Fix Crosstalk Add Filler Cells (postroute) Wire Editing Add Metal Fill Fill Notch Verify Metal Density Verify Geom./Conn./Ant. Detailed Extraction SI Analysis Timing Analysis Setup/Hold
Celtic Encounter NanoRoute Sign-off extractor
3/3/04
SoC Encounter
82
Adding filler cells after routing will not cause DRC violations in the design because the tool will analyze potential violations before selecting the appropriate filler cells from the physical library. Use the addfiller command to add filler cells to your design.
Fill notches.
Filling notches at this stage is necessary to prevent errors downstream in tools which check masks for notches and gaps.
The verifyConnectivity, verifyGeometry and verifyProcessAntenna commands generate markers and error logs of the DRCs in the design.
3/3/04
SoC Encounter
84
the extraction.
Run a signal integrity-aware ECO route using the NanoRoute tool. Run a timing analysis and fix setup/hold times.
3/3/04
SoC Encounter
85
analysis, repair, and RC extraction based on the options that you specify.
The fixGlitchViolation command creates a violation file for SoC
Encounter to fix.
The fixNoiseDelay command fixes the delta delay caused by noise.
3/3/04
SoC Encounter
86
Module 10
March 3, 2004
Create Path Groups Pre-Clock Optimization Clock Tree Synthesis Useful Skew Optimization TD Global Route IPO TD Global Route IPO Setup/Hold Fixing
PKS Encounter
Standalone PKS
3/3/04
SoC Encounter
88
Create Path Groups Pre-Clock Optimization Clock Tree Synthesis Useful Skew Optimization TD Global Route IPO TD Global Route IPO Setup/Hold Fixing
PKS Encounter
Standalone PKS
3/3/04
SoC Encounter
89
Optimization Transforms
Full set of logical synthesis transforms are available in conventional synthesis, including:
Restructuring Cloning Buffering Resizing
Parsing, Structuring, Mapping Initial Placement Optimization Transforms
restructure, clone, resize, buffer, etc.
Timing Constraints
DEF/ PDEF
PKS
106
3/3/04
SoC Encounter
90
Group Paths
By default, PKS optimization works on one path at a time. The path
worked on is the one with worst slack. Hence if a path is over constrained, the remaining paths are not optimized.
Group path command distributes paths into different groups, and the
command to the BuildGates equivalent Tcl command. Example set_path_group name IO from [find input]
3/3/04
SoC Encounter
91
helps to assist in uncovering areas that are prone to closure issues and allows the optimizer to close timing on the rest of the design. Run preclock optimization. Run pre-CTS useful skew. Run clock tree synthesis.
Synthesize the clock tree. Analyze the clock tree reports to determine if
3/3/04
SoC Encounter
92
and timing analysis at this stage will provide you with an accurate picture of what to expect after detail routing. Do in-place optimization (IPO) if there are timing errors.
Run the design through IPO to optimize the timing.
3/3/04
SoC Encounter
93
IPO Strategies
IPO has two major phases:
Global optimization phase (also known as weed-whacking)
Transforms are applied to all violating nets/instances in a global pass.
nets/instances
IPO refines placement, runs trial route, runs extraction, and updates timing at the end of each major step.
Uses incremental trial route for better run times.
Only nets touched by IPO are rerouted.
3/3/04
SoC Encounter
94
Medium effort
This level triggers more optimization process than -lowEffort does, and further optimizes the most critical paths. Its target is to get an accurate estimation of the design performance or to close timing on less challenging designs.
High effort
You need to use this level to reach timing closure for challenging designs. It turns on all the physical synthesis optimization transforms.
3/3/04
SoC Encounter
95
After each individual optimization step, fixSetupViolation performs placement legalization, routing, extraction, and timing updates.
3/3/04
SoC Encounter
96
Resize
After each optimization step, placement legalization, routing, extraction, and timing update are performed.
Buffer insertion
optCritPath
Critical Paths Optimization using Physical Synthesis transforms setIPOMode -usefulSkew Useful Skew reclaimArea
Use Model
Use fixSetupViolation after placement. Use optCritPath for re-optimization.
setIPOMode -reclaimArea
Reclaim Area
SoC Encounter
* = Not by default
97
3/3/04
Downsizing/Resizing
Initial global pass downsizes gates without worsening violations. For medium and high effort, initial resizing does the following:
What-if analysis for all candidates to be resized without committing the
resizes
Order resize moves in decreasing order of gain Commit resize moves in above order, invalidating neighboring moves for
maximum # of pass (10) is reached Combinational and sequential resizing are done separately. A global sizing pass is run to improve DRVs. In high effort, second global sizing does a greedy input-to-output pass
3/3/04
SoC Encounter
98
Buffering
For each violating net, from input to output,
The tool chooses a wire topology
TrialRoute topology Topology based on physical clustering (similar to CTS)
3/3/04
SoC Encounter
99
setIPOMode -highEffort
topoMap
optimizes the critical paths and stops when target slack is met or when timing cannot be optimized further.
It tries to improve the worst
remapGate remapCone
mergeInverter moveInstances
negative slack and you must use it each time you want to reoptimize a netlist.
3/3/04 SoC Encounter
100
3/3/04
SoC Encounter
101
Optimization Guidelines
Creating a clean footprint file is important. No or bad footprint definitions leads to less than optimal IPO results. Use the checkFootPrint command after making a footprint file. Steps to making a footprint file:
Generate a footprint file. Modify this file to specify the buffer, inverter, and delay cell footprints to
3/3/04
SoC Encounter
102
3/3/04
SoC Encounter
103
3/3/04
SoC Encounter
104
Module 11
March 3, 2004
logic errors. At the same time, you need to preserve the poly and diffusion layers that are already taped out. To fix the errors, you need to
Route to pre-existing spare-cells. Change only metal and via layer masks by rerouting to spare cells.
or
A new ECO file
3/3/04
SoC Encounter
106
specifySpareGate inst mySpareInst Spare cells are added using a previous spare.eco file:
ADDHIERINST mySpareInst mySpareCellName ADDINST mySpareInst/mySpareAnd_1 AND2 ATTACHTERM mySpareInst/mySpareAnd_1 IN1 VSS ATTACHTERM mySpareInst/mySpareAnd_1 IN2 VSS followed by loadECO spare.eco
3/3/04
SoC Encounter
107
new netlist.
Load the ECO file to update the current netlist to match the new netlist. loadECO -useSpareCells -suffix _SPARE oldchip.eco
Instances that only appear in the old Verilog netlist are implicitly deleted by
leaving them in place and changing the name (i1/i2/i3 to i1/i2/i3_SPARE). The dangling inputs are attached to GND. same cell.
New instances are placed by using the nearest matching sparecell with the New ports are created on Verilog modules as needed. Routing on deleted nets is removed. Error messages are output for any unplaced cells.
3/3/04 SoC Encounter 108
any nets that are incomplete or have violations. The old Verilog netlist after ECO might be slightly different from the
3/3/04
SoC Encounter
109
loadConfig oldchip.conf
# Read old floorplan, special routes, placements and routing
defIn oldchip.def
# Compare the current old netlist to the new Verilog netlist
saveNetlist oldchip_after_eco.v
# Incremental route
3/3/04
SoC Encounter
110
Comparing Netlists
The following command compares the currently loaded netlist with a
different netlist file: ecoCompareNetlist {-verilog <file.v> | -def <file.def>} -outFile <file.eco>
The ecoCompareNetlist command uses instance names and net names
3/3/04
SoC Encounter
111
-useSpareCells
For a newly added instance, spare cells are chosen by looking for a spare cell that matches the new cell type and is closest to the pins connected to the new instance. When an instance is deleted, it is really renamed as a spare cell i1/i2/i3 becomes i1/i2/i3_SPARE If a net is deleted, any routing attached is deleted If a net is modified, any routing attached is not affected
Suffix to append to new spare cells, default _SPARE
-suffix <suffix>
-useGACells <GACoreSite>
Same as useSpareCells except for GACoreSite type cells. New GACoreSite type cells are left unplaced. Deleted GACoreSite cells are really deleted.
SoC Encounter 112
3/3/04
Appendix A
March 3, 2004
You can use What-If commands for a powerful and interactive budgeting at the top level of the design.
3/3/04
SoC Encounter
114
1 5 4 6
2 7
# 1
Data Type
Command
Combinational delay from an input port to an output port, setBlackBoxCombDelay including the driver delay Timing check, delay from the clock input port to the data input setBlackBoxTimingCheck port Sequential delay from the clock input port to the data output port, including driver delay Driver type Driver input slew Total driver output net capacitance (optional) Clock insertion delay to internal registers
SoC Encounter
2 3 4 5 6 7
setBlackBoxSeqDelay setBlackBoxDriveType
setBlackBoxClockLatency
115
3/3/04
3/3/04
SoC Encounter
116
Application Examples
Top-Down Flow
You can define a preliminary timing model and the constraints of a
account a new top-level design environment. Starting Block Implementation Before Top STA
After importing the netlist of a blackbox, you can refine its timing
budget.
Run a top-level STA using a timing model from block synthesis. Then,
check the model and generate a new set of SDC constraints if needed.
3/3/04
SoC Encounter
117
3/3/04
SoC Encounter
118
Appendix B
March 3, 2004
Postplacement stage
First Encounter: slew balance and congestion removal
Routing stage
NanoRoute: global routing, track assignment, and detail routing with
3/3/04
SoC Encounter
120
Most crosstalk glitches and timing violations are fixed in 3 iterations. Manual script is used to fix remaining violations.
High-strength victim nets
Wire spacing Buffer insertion
3/3/04
SoC Encounter
121
3/3/04
SoC Encounter
122
(f)
(d)
(a)
(b)
0.05 0.05
0.005 0.005
(a)
0.08
(b)
(c)
(c)
0.05 0.08 0.005 0.005 0.005 0.05
(d)
(e)
(f)
3/3/04
SoC Encounter
123
3/3/04
SoC Encounter
124
Partitioning
Appendix C
March 3, 2004
Partition Menu
Design Partition FloorPlan Place Clock Route
Specify Partition... Specify Black Box Create Feedthroughs Assign Black Box Pins Show Wire Crossing Estimate Routing Channel Partition Unpartition Check Pin Assignment Change Partition View
Creates the partitions. Displays Trial Route feedthrough wires that are crossing over a selected partition. Flattens the partition. Changes design view between chip level and partitions.
3/3/04
SoC Encounter
126
Blackbox Options
A blackbox is a special application of the partition.
Create a LEF file for the hierarchical instance (module, submodule, or block)
blocks.
Complete floorplanning with the blackbox. Use the command, specifyBlackBox <partitionName> <hierInstanceName>. Use the Specify Partition form for blackboxes as well as for partitions. You can resize the blackbox. Apply the resizeBlackBox command. Run placement and Trial Route. Generate blackbox pins by applying the blackBoxPinAssign command. The Save Partition form will also create a blackbox subdirectory.
3/3/04
SoC Encounter
127
3/3/04
SoC Encounter
128
Specifying a Blackbox
Partition Specify Black Box
The following text commands provide equivalent or additional functionality: resizeBlackBox specifyBlackBox unspecifyBlackBox
3/3/04 SoC Encounter 129
Partitioning a Design
Divides the design task into manageable partitions so that work can
information.
Optimize pin assignment based on full-chip placed and routed (in-context)
results.
Push down the top-level floorplan objects (power plan, blockages) into
Timing constraints, clock exceptions, and path exceptions are pushed down to all partitions. Stamp models are generated for the partitions.
3/3/04
SoC Encounter
130
Results of Partitioning
Results of partitioning are two levels of partition hierarchy the top-level infrastructure and the partition level.
Partitioning generates top-level partitions and pushes down floorplan
engine and other backend tools. You create partitions that exist:
Logically
3/3/04
SoC Encounter
131
Layer names are determined from the technology file. The LEF file for the partition will contain obstructions for the unselected layers.
3/3/04
SoC Encounter
132
Core of Partition
3/3/04
SoC Encounter
133
3/3/04
SoC Encounter
134
3/3/04
SoC Encounter
135
3/3/04
SoC Encounter
136
are unique.
The hierarchical instance entered in the Specify Partition form is the
floorplanning.
3/3/04
SoC Encounter
137
3/3/04
SoC Encounter
138
The Trial IPO Estimates option produces proper timing constraints between partitions.
3/3/04
SoC Encounter
139
Timing Budgeting
Each block requires:
Block 1
L L
Block 3
Files for FEU
Partition Files
3/3/04
SoC Encounter
number of computations and shortening the time taken to perform timing analysis.
A B Y B
3/3/04
SoC Encounter
142
3/3/04
SoC Encounter
143
(continued)
Design Import with partition ILM files Load top -level floorplan
Load partition SPEF files by:
With ILM files from Step 2, the First Encounter tool is now in an ILM mode.
Extract RC Timing Analysis and Optimization Un-Flatten ILMs Top-Level CTS and Detail Route Save Design
SoC Encounter
3/3/04
144
3/3/04
SoC Encounter
145
Partition feedthrough affects only the physical aspect of the partition not the logical aspect. The two types of partition feedthrough are:
Channel For top-level routing Placement island For top-level buffer insertion
3/3/04
SoC Encounter
146
Feedthrough icon to create the feedthrough buffer on the partition. Double-click the buffer to open the Object Attribute form, specify the metal layer, and click OK. This creates the channel for the routing on the specified layers at the top level and pushes down appropriate routing blockages at the block level.
Method 2: To specify narrow
feedthroughs or several of them on a given partition, choose Partition Create Feedthrough to open the Create Feedthrough form.
3/3/04
SoC Encounter
147
Placement Obstruction
Committed Partition
3/3/04
SoC Encounter
148
Use ptnName to generate a file that lists the nets that cross a
specific partition. Use the output file as a starting point to generate a list of nets for feedthrough insertion.
Not all nets in the generated partition-crossing net file will become
3/3/04
SoC Encounter
149
The -chanLess option specifies that the design is pure channelless, having no channel available for routing, and therefore all nets must be selected for feedthrough insertion.
3/3/04
SoC Encounter
150
outgoing pin.
Without this option, the buffer is inserted near the incoming pin.
Technique
Create new feedthrough pins. Insert buffers and modify netlist. Run ecoPlace to place inserted buffers.
3/3/04
SoC Encounter
151
FE_FEEDX_new_in_port
FE_FEEDX_new_out_port
assign FE_FEEDX_new_in_port
FE_FEEDX_new_out_port
Note: A dummy buffer with FE_DUMMYCELL cell type is inserted inside the data base to represent an assign statement.
3/3/04 SoC Encounter 152
Partition2
3/3/04
SoC Encounter
153
partition pin guides Name to a net name, bus name (bus_name[#,#]), or net group name.
For a net group, use these
commands: createNetGroup and addNetToNetGroup. Assign port names by changing the partition pin guides name to a port name or pin group name.
For a pin group, use these
3/3/04
SoC Encounter
155
can estimate the required spacing between partitions, blackboxes, and hard macros, and update the floorplan based on the required spacing information. To estimate the routing channel, use this form:
This will output an estimate of the
required spacing surrounding each partition based on its pins, the relative distance between partition blocks required for toplevel routing. This output also includes the estimated distance between blocks and core boundaries (top, bottom, left, right).
3/3/04 SoC Encounter 156
Spacing in micron
Current Required 28.8 46.9 31.2 45.5 37.8 33.5 39.4 55.7 10.9 69.1 51.7 50.5
HB1
BB1
INST4
INST1 24.6 INST2 54.3 HB2 25.0 INST1 38.2 INST3 43.2 HB1 46.8 INST3 64.8 INST2 72.1 top-boundary 57.2 BB1 44.5 top-boundary 59.5 rht-boundary 53.0
Partition
Hard macro
Blackbox
3/3/04
SoC Encounter
157
constraint (setBlockAspectRatio).
3/3/04
SoC Encounter
158
Applies to all pins of a partition that do not have their own pin widths/depths. Use the setPtnPinWidth and setPtnPinDepth Tcl commands to set global pin width and depth, respectively. setPtnPinWidth <partitionName> <layerId> <width> setPtnPinDepth <partitionName> <layerId> <depth>
Width (in micron) Depth Width Depth
3/3/04 SoC Encounter 159
Channelless Partitions
Different types of hierarchical design methodology:
Channel-based (All top-level routing use channels.) Channelless (All top-level routing use feedthroughs.) Mixed (Some top-level routing use channels; some use feedthroughs.)
Channel-based methodology
Channelless methodology
Mixed methodology
3/3/04
SoC Encounter
160
3/3/04
SoC Encounter
161
(continued)
showPtnWireX generates an output file that lists all nets routed over partitions. You have a choice of inserting feedthroughs for all nets or only for selected nets. insertPtnFeedthrough can read a file that lists all the top-level nets for feedthrough insertion. This command does the following:
Inserts buffer or buffers for the feedthrough nets. Modifies the netlist. Places buffers in the appropriate locations. Generates a partition boundary. Creates a timing budget with feedthroughs.
3/3/04
SoC Encounter
163
3/3/04
SoC Encounter
164
Flip-Chip
Appendix D
March 3, 2004
Flip-Chip Functions
Supports full flip-chip flow. Creates bump MATRIX. Creates rows for I/O placement. Runs automatic I/O placement. Runs signal routing from bumps to I/O. Runs power routing from bumps to stripes. Supports flat and hierarchical flows. Chip bumps Contact pads
3/3/04
SoC Encounter
166
3/3/04
SoC Encounter
167
Floorplan
Bump Flow
Edit Bumps Route Feasibility Interface Add Stripes Place AIO Assign Bumps Route Bumps CIOP Route Feasibility
3/3/04
SoC Encounter
168
and routing.
3/3/04
SoC Encounter
169
3/3/04
SoC Encounter
170
3/3/04
SoC Encounter
171
CLK
DI[0]
3/3/04
SoC Encounter
172
Signal Bumps
Blue = signal
Signal
Power
Ground
Signal
3/3/04
SoC Encounter
173
I/O Row
3/3/04
SoC Encounter
174
# Lef/cml pointer
Outputs
route_feasibility.cio route_feasibility.rpt
# binary # report
3/3/04
SoC Encounter
175
Place: PlaceAIO
placeAIO places I/O driver in rows. LEF OBS LAYER OVERLAP
Restricts standard cell
placement.
Overlap
IO Driver
Bump
3/3/04
SoC Encounter
176
3/3/04
SoC Encounter
177
Partition Commands
Move module inside floorplan view Double click on partition (attribute editor) change size placeAIO and trialRoute Specify partition handlePtnAreaIo <buffer> commitPartition checkPinAssignment Change partition view
3/3/04
SoC Encounter
178
IO Cell
Bump input IO output (internal pin) Inserted buffer Boundary Pin Partition Standard cell IO Driver output Buffer
3/3/04
SoC Encounter
179
Partition Commit
Partition
Placement Island
3/3/04
SoC Encounter
180
P&R Blockages
3/3/04
SoC Encounter
181
routing.
fcroute is the new command that supports
this feature. Routes signal bump cells to the I/O cell. Routes power bump cells to the nearby
stripes.
Routes bump pins in the cover macro to the
3/3/04
SoC Encounter
183
control.
An option to use the user-defined
Routing. An RDL is a routing layer of conductive metal within an IC that connects the diepad or solder bump to a connection point on an I/O driver. The Encounter router supports routing to this special layer.
3/3/04
SoC Encounter
184