+ All Categories
Home > Documents > Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates...

Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates...

Date post: 25-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
62
Introduction - Agenda What is PC? What is Physical Synthesis?
Transcript
Page 1: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Introduction - Agenda

What is PC?

What is Physical Synthesis?

Page 2: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

1995 1998 2001 2004

0.5u 0.25u 0.13u 0.09u

Performance

Gates

Gates (millions)

18

12

6

9

15

3

450

300

150

600

Performance (MHz)

Design Sizes are Increasing Rapidly

� Continuous increase in the number of available gates

� New silicon technologies present challenges to designers and tools

� Designers continue to create larger, faster designs that are stressing current design methodologies

Page 3: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Deep Sub-Micron Design Challenge

1.00 0.75 0.50 0.25 0.13

3.0

2.0

1.0

0.0Microns

Delay

RC Delay

Gate Delay

As the gate delay goes down, the path is swamped by the net delays

For the same length of wire, interconnect delays ar e much longer for two reasons:

• Wires are closer together• Wires are narrower

Page 4: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Synthesiswith Wire Load Models

Place and Route After 1stSynthesis

(WLM)

Num

ber

of T

imin

g E

rror

s

After 1stP&R

After 2ndSynthesis(CWLM)

After 2ndP&R

After 3rdReoptimization

(SDF)

After 3rdP&R

Design Looks Okay, But,...

…after P&R, the timing is bad

Designs Are Not Getting Done on Time

Poor estimates lead to timing closure problems

Synthesis result P&R resultS

DF

SD

F

Netlist

Netlist

Page 5: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

WLM Worst-Case Interconnect Delay

0.6 ProcessNet delay = ~1ns~10% of clock periodfor 100MHz design2-3x gate delay

0.25 ProcessNet delay = ~4.5ns~40% of clock periodfor 100MHz design20x gate delay

0.18 Process (Cupper)

Net delay = ~6.0ns~60% of clock periodfor 100MHz design40x gate delayLogical Effort Can’t tell the Story

Page 6: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Wireload vs. physical synthesis

1. Front-end timing (wireload based) is becoming unreliable

2. Placement can change timing dramatically:� After placement, it is obvious that nets with the same

fanout will not have the same interconnect delay

Physical View

Logical View

Page 7: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Placement is The Key!

Physical SynthesisDesign PhaseSynthesis Post Layout

0 %

±100 %

Timing Accuracy (% Error)

WLM

Detail Route

Interconnect ModelsPlacement

Coarse RouteTrack Assignment

� Logic Design is optimized for the current Floorplan

� With Physical Synthesis, designer “sees” more accurate physical effects

� Placement is an Important key

� “Design closure” – timing/area/congestion/power/…

� Drastically reduces iteration between logic synthesis and P&R

� Netlist handoff based on WLM timing can still cause iterations between logic synthesis and physical synthesis

Page 8: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Expectations from Physical Synthesis Results

Output design is a legal fully placed floorplan tha t is router ready:

� Design can be routed with no modifications

� Design is fully optimized for timing and routing co ngestion

PhysicalCompiler

RTL source( .v .vhd )

Placed Gates

Floorplan

Page 9: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Expectations for One Pass Timing Closure

Receiving Gates

RAM

I/O Pad Driver

� No WLM used

� Placement Based Delay

� Individual Net Load estimated

� Macro Cell Placement honored

� Layout Data considered

� Consistent Timing Model

Page 10: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Introduction- Agenda

What is PC?

What is Physical Synthesis?

Page 11: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

What is Physical Compiler ?

� Placement knowledgeable synthesis and optimization tool:

� Unifies synthesis and placement

� Concurrently produces an optimized gate-level netlist AND physical cell placement from either

� RTL description

� Existing gate-level netlist

� Net delays are based on actual placement of cells, not wire loadmodels

� Resulting netlist is “router ready”

� Built on top of logic synthesis infrastructure:

� Common database, Tcl interface, constraints, timing engine, synthesis libraries

Page 12: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

What is Physical Compiler II ?

Block-Level Designs

DesignTime

Desig

n Com

pile

r

FlexPlace PlacementSynthesis

Timing Calculation

Constraints

RTL or GATES

Logicallibrary

Physicallibrary

PhysicalConstraints

Netlist & Placement

Global Router Congestion

Analysis & Removal

PhysicalCompiler

Page 13: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Synthesis Data (DC)

Physical Data

Familiar Synthesis Process

.db / .ddc Tcl script

DesignCompilerPhysicalCompiler

.pdb / mw(P)DEF, .db.ddc, mw

Gate-Level Netlist

Logical Library Logical Constraints

Physical ConstraintsPhysical Library

Netlist & Placement

(Floorplan)

Page 14: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

DesignTime

Physical Compiler - Timing engine

Block-Level Designs

Desig

n Com

pile

r

FlexPlace PlacementSynthesis

Timing Calculation

Constraints

RTL or GATES

Logicallibrary

Physicallibrary

PhysicalConstraints

Netlist & Placement

Global Router Congestion

Analysis & Removal

PhysicalCompiler

Page 15: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Timing Calculations

� Calculations use pin-to-pin “intelligent” Steiner Ro uting

� Each net is calculated individually

� Net Modeling is Elmore Model

� No wire load models are used

Driver

Pin-to-pin timing

Steiner Route

With On-rout flow (physopt –on_route in PCE) Astro route is considered

Page 16: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

FlexPlace

Physical Compiler Placement engine

Block-Level Designs

DesignTime

Desig

n Com

pile

r

PlacementSynthesis

Timing Calculation

Constraints

RTL or GATES

Logicallibrary

Physicallibrary

PhysicalConstraints

Netlist & Placement

Global Router Congestion

Analysis & Removal

PhysicalCompiler

Page 17: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Details of FlexPlace

� Linear Wire Length Reduction:� Reduces total Manhattan wire length� 10-15% wire length reduction compared to others� Lowers the burden on the routing resources

� Global Optimization - No Partitioning!� Optimized placement without partitioning� Avoids artificially partitioned regions and placement

constraints� Flexible placement for continuous adjustments

� Direct Quality Measures:� Measures linear versus quadratic wire length for

improvement� Timing measure incorporated in its cost/objective function

Page 18: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Compiler

Block-Level Designs

DesignTime

Desig

n Com

pile

r

PhysicalCompiler

FlexPlace PlacementSynthesis

Timing Calculation

Constraints

RTL or GATES

Logicallibrary

Physicallibrary

PhysicalConstraints

Netlist & Placement

Global Router Congestion

Analysis & Removal

Page 19: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Compiler Flow

Load design dataLoad design data

Place & optimizePlace & optimize

Placed design

Timing & congestionok?

Timing & congestionok?

Test insertionTest insertion

Power optimizationPower optimization

Incremental optimizationIncremental optimization

No

Yes

Page 20: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Compiler Placement+Optimization

Placed & Optimized Design

IP

Gate-Level Netlist

Floorplan

IP

PhysicalOptimization

Page 21: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Compiler Work Flow

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Page 22: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Logical Data

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Gate-Level Netlist(s)

create_clock –period 10 ...set_input_delay –max 1.2 ...set_output_delay –max 2.5 ...set_driving_cell .........

Logical (Timing) Constraints

Logical Libraries.db

link

check_timing

Page 23: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Reading the Gate-Level Netlist

� Physical Compiler reads all netlist formats supported by Design Compiler

� You can read one or many files

read_milkywayread_verilogread_vhdlread_ddc…

read_verilog –netlist file1.v file2.v …

gate-level netlist

Page 24: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Logical Libraries

� Provide timing and functionality information for al l standard cells (and, or, flipflop, …)

� Provide timing information for hard macros (ROM, RAM, …)

� Define drive/load design rules:� Max/Min fanout

� Max/Min capacitance

� Max/Min transition

� Specified as follows:

Logical Libraries.db

set link_library "* gates.db io.db mem.db"

Search all designs in memory

Page 25: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Where does Physical Compiler find files?

� By default, you must specify the complete unix-path for all files

� You may specify where to look for files:

� The above paths will be used by Physical Compiler for reading or accessing files

lappend search_path ./design_data ../libs

Page 26: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

*

Resolving References

� Gate-level netlist contains references to standard cells and macros, which are stored in the logical libraries, as well as other logic blocks

� The command link will ensure that all references can be resolved

link risc_core

nand nor inv ff

sdram_if

Gate-Level Netlist(s)

mem.db

gates.db

ip.dbpci_core

Page 27: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Timing Constraints

� Timing Constraints are required to communicate the design’s timing intentions to Physical Compiler

� They should be the same used for synthesis with Design Compiler (preferably SDC compatible)

create_clock –period 10 [get_ports clk]set_input_delay 4 –clock clk \

[get_ports sd_DQ[*]]set_output_delay 5 –clock clk

[get_ports sd_LD]set_load 0.2 [get_ports pdevsel_n]set_driving_cell –lib_cell buf5 \

[get_ports pdevsel_n]...

source timing_constraints.sdc

Page 28: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Timing Check

� Before proceeding, you need to ensure that the design is completely constrained

� Physical Compiler will not optimize paths that are not constrained for timing

� No checking for missing external loads or drive characteristics will be performed!

Completeness does not imply correctness!

check_timing

!

Page 29: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

If check_timing reports problems

� check_timing reports all unconstrained paths

� False paths are also considered unconstrained!

� To verify that unconstrained paths are OK:

report_timing_requirements

� Reports false paths set on design

� Compare these paths to the ones reportedby check_timing

Page 30: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Required Physical Data

check_physical_constraints

Constrained andlinked design Physical Libraries

.pdb

Floorplan

IP

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Page 31: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Libraries

� Contain physical information on standard and macro cells necessary for placement

� Contain metal layer technology parameters: � Names

� Capacitance and resistance

� Minimum wire widths and wire-to-wire spacing

� Define placement unit tile

Physical Libraries.pdb

reference point(typically 0,0)

Dimension“bounding box”

Pins(direction, layer

and shape)

VDD

GND

A B

Y

NAND_1

Blockage

Symmetry(X, Y, or 90º) F

Abstract View

FFBUF

INV

NOR

unit tile(site)

Page 32: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Specifying Physical and Target Libraries

� Include only required libraries:

� Along with physical_library , you need to specify the logical library that is used for optimization:

set target_library "gates.db"

set physical_library "tech.pdb gates.pdb"

Usually same as link_library setting

without *

Technology PDB listed first

Page 33: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Floorplan

RAM

Site ArraysArray of placement sites

ClusterHard Boundary

Keepouts &PG nets

Port LocationsSignal I/O

Fixed CellsExample: RAM placement

read_def my_floorplan.def

Page 34: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Check Physical Constraints

� Checks libraries and floorplan:� Physical � Logical library inconsistencies

� Insufficient core placement area

� Warns about narrow placement regions (Chimneys)

� Reports on number of physical_only_cells, available sites and overall utilization

check_physical_constraints

Page 35: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Test for Understanding

1. List the 4 variables that need to be set up to successfully read all design files!

2. Which of the above variables is optional?

3. What is the difference between the link_libraryand the target_library ?

4. Physical Compiler requires a chip-level floorplan including IO PADs. True / False

Page 36: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Summary

Gate-Level Netlist

Logical Library.db

Logical Constraints.sdcsource

read_def

check_timingcheck_physical_constraints

read_verilog/vhdl/ddcset link_library "* sc.db"set target_library sc.db

set physical_libray sc.pdbPhysicalCompiler

Physical ConstraintsDEF

Ready for Placement

Physical Library.pdb

Page 37: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Recommended Setup

lappend search_path ./pdb ./db

set link_library "* sc.db io.db"

set target_library "sc.db"

set physical_library "tech.pdb sc.pdb io.pdb"

read_verilog design.v

...

All setup done first and stored in

.synopsys_dc.setup

Reads all logical and physical

libraries as well

Page 38: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Optimization

Before starting optimization:

� Do not over-constrain the design� Constraints should match design

specification

� Report timing before optimization� Design should meet timing or be close –

check for unrealistic constraints

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Page 39: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Placement and Optimization

� Places the design and optimizes if necessary

� Placement is performed in two steps:

physopt

1. Coarse Placement 2. Legalization

Page 40: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

PhysOpt ‘good to knows’: Channels

� Placement can spend a lot of time placing cells close to or between macros causing problems later

RAM1 RAM2 RAM3

RAM4

RAM5

Narrow areas to the core boundary

Narrow channels between macros

Be proactive and prevent placement in such areas

Page 41: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Set Variables to Avoid Cells in the Channels

� Automatic keepout regions prevent placement in critical areas

� Soft and hard keepouts can be specified

RAM1 RAM2 RAM3

RAM4

RAM5

Soft keepout

Hard keepout

Page 42: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

PhysOpt ‘good to knows’: Hierarchy

� Design hierarchy is irrelevant for placement, but affects logic optimization

� Placement ���� flat – hierarchy ignored

� Optimization ���� hierarchy applies� May impact timing optimization negatively

� Consider ungrouping design hierarchies to improve optimization

?

Page 43: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

PhysOpt ‘good to knows’: High Fanout Nets

� By default, Physical Compiler will� not optimize clock networks (done later by CTS)

� automatically buffer all other high-fanout nets� Reset

� Enable nets

� No need to change the defaults in 90% of cases

Page 44: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Analysis

� Examine the last screen-output of physopt for a design summary:� Utilization

� WNS – Worst Negative Slack

� TNS – Total Negative Slack

� Legality of cell placement

� Timing of every path group (clock group)

� Cell count and area

� Design rule violations

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Page 45: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Analysis

� Generate more detailed reports� Show all violating path end points

� report_constraint –all_violators

� Show details of the worst violating paths� report_timing –delay max (ignore hold time)

� Analyze the routing congestion� report_congestion

� Congestion map (GUI)

Page 46: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Output

� Apply consistent naming

� Save as Verilog

� Save the floorplan only (cell placement)

write_def –output placed.def

write –format verilog \-hierarchy –output placed.v

change_names –hierarchy –rules verilog

Logical Data

Physical Data

Physical Optimization

Analysis

Output

Page 47: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Example “run” Script

lappend search_path ./design_data ../libsset link_library "* gates.db mem.db"set target_library "gates.db"set physical_library "tech.pdb gates.pdb mem.pdb"

read_verilog my_design.vcurrent_design MYDESIGNlinksource my_design.sdccheck_timingread_def my_design.defcheck_physical_constraints

physopt

report_timing –delay max > my_design.timing

set mw_design_library my_design_libset mw_cel_without_fram_tech truewrite_milkyway –o placed

UNIX$ psyn_shell –xg –f run.tcl | tee myrun.log

run.tcl

Usually part of the setup

above

Page 48: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Basic FlowBasic Flow

Physical Compiler Methodology

Good Result?Good Result? Additional Physical Constraints

Additional Physical Constraints

Coarse PlacementCoarse Placement

CongestionOK?

CongestionOK?

Physical SynthesisPhysical Synthesis

Refine Switchesand/or FloorplanRefine Switchesand/or Floorplan

No

Yes

Good Result?Good Result?

DoneDone

No

Yes

Incremental OptimizationIncremental Optimization

No

Yes

Page 49: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Power Net Placement Constraint

Complete Blockagesmetal 2

met

al 1

metal 2

met

al 1

Partial Blockages

set_pnet_options –complete {metal1 metal2}set_pnet_options -partial {metal1 metal2}

Page 50: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Related Cells Placement Constraints

� Constrain the placement of selected cells� Move bound: location-based

� Group bound: floating-based (default)

create_bounds –coordinate {765 400 793 551} \–name SD_IF –type soft [get_cells I_SDRAM_IF/sd_mux_dq_out*]

create_bounds –name bound_name-coordinate {……}-dimension {width height}-effort low|medium|high|ultra-type soft|hardcell_list

Page 51: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

create_placement

- effort low|medium|high

- timing_driven

- congestion

- congestion_effort low|medium|high

- num_cpus #

No optimization done

Coarse Placement

To perform a coarse placement:

!

Page 52: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Understanding the Congestion Calculation

Detailed routing tracks

Global routing grid

Signal routing in/out of global

routing grid

Routing crossing the grid edge produces a ‘congestion color’

Page 53: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Textual Congestion Report

X Y

Congestion threshold: 0.8000 0.8000

Violations (usage > threshold)

Number of edges: 13449/68354 0/68354

Maximum violation: 0.4694 0.0000

Average violation: 0.1994 0.0000

Track Usage

Maximum usage: 1.2694 0.7327

Average usage: 0.2352 0.1926

Standard deviation: 0.3903 0.2286

Histo graph for congestion on X

< 0.80: **************************************** (54905)

0.80 - 1.00: ********** (13250)

1.00 - 1.20: * (191)

1.20 - 1.40: * (8)

Histo graph for congestion on Y

< 0.80: **************************************** (68354)

The smaller the better!

report_congestion > placement_congestion.rpt

Page 54: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Methods to Fix Congestion

� Activate congestion-driven placement

� Lower the threshold at which the congestion optimization occurs

� Adjust cell density in congested areas

Page 55: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Congestion-Driven Placement Options

� Some Congestion: use medium effort congestion-driven

� Max routing congestion > 90%

� Large hot spots

� Bad Congestion: use high effort congestion-driven� Max routing congestion >> 90%

� Very large hot spots

� Congestion-driven might affect timing negatively bu t:� Postrouting numbers will not create surprises!

� Lower congestion will speed up the detailed router

Do not use congestion-driven mode on designs with no or low congestion

Do not use congestion-driven mode on designs with no or low congestion!

Page 56: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

If Congestion Still Exists!

Consider modifying the floorplan:

� Top-level ports� Change to a different metal layer

� Spread them out or move to other sides of the block

� Macros� Add placement keepouts around your RAMs to reduce

the local congestion around RAM pins

� Move or rotate

� Block shape and size� Make it tall to add more horizontal routing resource

� Increase the block size to reduce overall congestion

Page 57: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Changing the Floorplan within PC

create_site_rowCreates SITEs for detailed placement

create_boundsSets X/Y_BOUNDS of CLUSTER or CELL

set_port_locationUpdates port’s XY coordinates

set_placement_areaCreates core areafor rough placement

RAM

create_wiring_keepoutcreate_placement_keepoutCreates a routing or placement keepouts

set_cell_locationSets XY location of CELL

Page 58: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Physical Compiler Methodology

Additional Physical Constraints

Additional Physical Constraints

Coarse PlacementCoarse Placement

CongestionOK?

CongestionOK?

Physical SynthesisPhysical Synthesis

Refine Switchesand/or FloorplanRefine Switchesand/or Floorplan

No

Yes

Good Result?Good Result?

DoneDone

No

Yes

Incremental OptimizationIncremental Optimization

Page 59: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Items to Check in PC Logs

Check for final legal placement summary******************************************** Check_legality: Final Statistics Information: Use -verbose option to find more about the legality violations. (PSYN-054)******************************************** Number of Cells Not on Row : 0Number of Cell Overlaps : 0Number of Cells overlapping blockages : 0Number of Orientation Violations : 0Number of Site Violations : 0Number of Power Strap Violations : 0*********************************************

Make sure all these values are Zero!

Page 60: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

Partial Power Net Blockages

metal 2

Legalization considersall layer SPACING

rules and can also takeinto account the need

to insert VIAs.

Legalization considersall layer SPACING

rules and can also takeinto account the need

to insert VIAs.

Placement Grid

Metal2 routingconnects to Metal1pin by using M1/M2

VIA.

Metal2 routingconnects to Metal1pin by using M1/M2

VIA.

Placement is legal ifpins have enough

space to connect torouter (even if part ofthe pin is covered).

Placement is legal ifpins have enough

space to connect torouter (even if part ofthe pin is covered).

Routing Tracks

Page 61: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

SPACING Rules

metal 2

SPACING rule applied

Placement is illegal thepin can not connect toavailable routing track.

Placement is illegal thepin can not connect toavailable routing track.

Pin placement is OKas it can connect to anavailable routing track.

Pin placement is OKas it can connect to anavailable routing track.

Placement is illegalafter considering effect

of M2 VIA insertion.

Placement is illegalafter considering effect

of M2 VIA insertion.

A B

Placement Grid

Routing Tracks

Page 62: Introduction - Agenda...1995 1998 2001 2004 0.5u 0.25u 0.13u 0.09u Performance Gates Gates (millions) 18 12 6 9 15 3 450 300 150 600 Performance (MHz) Design Sizes are Increasing Rapidly

� Creates a placement keepout associated with a speci fic instance:set_keepout_margin

-type hard | soft

-outer {lx by rx ty }

{object_list}

Example: set_keepout_margin -type hard \-outer {20 5 5 15} RAM1

� List keepout areas by type and/or instance:report_keepout_margin

� Remove keepout areas by type and/or instance:remove_keepout_margin

Using Keepout Margins


Recommended