Introduction - Agenda What is Physical Synthesis? What is PC? - - PowerPoint PPT Presentation

introduction agenda
SMART_READER_LITE
LIVE PREVIEW

Introduction - Agenda What is Physical Synthesis? What is PC? - - PowerPoint PPT Presentation

Introduction - Agenda What is Physical Synthesis? What is PC? Design Sizes are Increasing Rapidly Continuous increase in the Performance (MHz) Gates (millions) number of available gates 600 18 New silicon technologies present


slide-1
SLIDE 1

Introduction - Agenda

What is PC? What is Physical Synthesis?

slide-2
SLIDE 2

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

slide-3
SLIDE 3

Deep Sub-Micron Design Challenge

1.00 0.75 0.50 0.25 0.13 3.0 2.0 1.0 0.0 Microns 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 are much longer for two reasons:

  • Wires are closer together
  • Wires are narrower
slide-4
SLIDE 4

Synthesis

with Wire Load Models

Place and Route

After 1st Synthesis (WLM)

Number of Timing Errors

After 1st P&R After 2nd Synthesis (CWLM) After 2nd P&R After 3rd Reoptimization (SDF) After 3rd P&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 result

SDF SDF Netlist Netlist

slide-5
SLIDE 5

WLMWorst-Case Interconnect Delay

0.6 Process Net delay = ~1ns ~10% of clock period for 100MHz design 2-3x gate delay 0.25 Process Net delay = ~4.5ns ~40% of clock period for 100MHz design 20x gate delay 0.18 Process (Cupper) Net delay = ~6.0ns ~60% of clock period for 100MHz design 40x gate delay

Logical Effort Can’t tell the Story

slide-6
SLIDE 6

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

slide-7
SLIDE 7

Placement is The Key!

Physical Synthesis Design Phase Synthesis Post Layout 0 % ±100 % Timing Accuracy (% Error) WLM Detail Route Interconnect Models Placement Coarse Route Track 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

slide-8
SLIDE 8

Expectations from Physical Synthesis Results

Output design is a legal fully placed floorplan that is router ready:

Design can be routed with no modifications Design is fully optimized for timing and routing congestion

Physical Compiler RTL source ( .v .vhd ) Placed Gates Floorplan

slide-9
SLIDE 9

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

slide-10
SLIDE 10

Introduction- Agenda

What is PC? What is Physical Synthesis?

slide-11
SLIDE 11

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 load

models

  • Resulting netlist is “router ready”

Built on top of logic synthesis infrastructure:

  • Common database, Tcl interface, constraints, timing engine,

synthesis libraries

slide-12
SLIDE 12

What is Physical Compiler II ?

Block-Level Designs

DesignTime D e s i g n C

  • m

p i l e r F l e x P l a c e

Placement Synthesis Timing Calculation

Constraints RTL or GATES Logical library Physical library Physical Constraints Netlist & Placement Global Router Congestion Analysis & Removal Physical Compiler

slide-13
SLIDE 13

Synthesis Data (DC) Physical Data

Familiar Synthesis Process

.db / .ddc Tcl script Design Compiler

Physical Compiler

.pdb / mw (P)DEF, .db .ddc, mw Gate-Level Netlist Logical Library Logical Constraints Physical Constraints Physical Library

Netlist & Placement (Floorplan)

slide-14
SLIDE 14

DesignTime

Physical Compiler - Timing engine

Block-Level Designs

D e s i g n C

  • m

p i l e r F l e x P l a c e

Placement Synthesis Timing Calculation

Constraints RTL or GATES Logical library Physical library Physical Constraints Netlist & Placement Global Router Congestion Analysis & Removal Physical Compiler

slide-15
SLIDE 15

Timing Calculations

Calculations use pin-to-pin “intelligent” Steiner Routing 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

slide-16
SLIDE 16

F l e x P l a c e

Physical Compiler Placement engine

Block-Level Designs

DesignTime D e s i g n C

  • m

p i l e r

Placement Synthesis Timing Calculation

Constraints RTL or GATES Logical library Physical library Physical Constraints Netlist & Placement Global Router Congestion Analysis & Removal Physical Compiler

slide-17
SLIDE 17

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

slide-18
SLIDE 18

Physical Compiler

Block-Level Designs

DesignTime D e s i g n C

  • m

p i l e r Physical Compiler F l e x P l a c e

Placement Synthesis Timing Calculation

Constraints RTL or GATES Logical library Physical library Physical Constraints Netlist & Placement Global Router Congestion Analysis & Removal

slide-19
SLIDE 19

Physical Compiler Flow

Load design data Load design data Place & optimize Place & optimize

Placed design

Timing & congestion

  • k?

Timing & congestion

  • k?

Test insertion Test insertion Power optimization Power optimization Incremental

  • ptimization

Incremental

  • ptimization

No Yes

slide-20
SLIDE 20

Physical Compiler Placement+Optimization

Placed & Optimized Design IP Gate-Level Netlist Floorplan IP

Physical Optimization

slide-21
SLIDE 21

Physical Compiler Work Flow

Logical Data Physical Data Physical Optimization Analysis Output

slide-22
SLIDE 22

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

slide-23
SLIDE 23

Reading the Gate-Level Netlist

Physical Compiler reads all netlist

formats supported by Design Compiler

You can read one or many files

read_milkyway read_verilog read_vhdl read_ddc … read_verilog –netlist file1.v file2.v …

gate-level netlist

slide-24
SLIDE 24

Logical Libraries

Provide timing and functionality information for all

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

*

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.db

pci_core

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

!

slide-29
SLIDE 29

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 reported

by check_timing

slide-30
SLIDE 30

Required Physical Data

check_physical_constraints Constrained and linked design

Physical Libraries .pdb Floorplan IP Logical Data Physical Data Physical Optimization Analysis Output

slide-31
SLIDE 31

Physical Libraries

Contain physical information

  • n 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

FF BUF INV NOR

unit tile (site)

slide-32
SLIDE 32

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

slide-33
SLIDE 33

Floorplan

RAM

Site Arrays

Array of placement sites

Cluster

Hard Boundary

Keepouts & PG nets Port Locations

Signal I/O

Fixed Cells

Example: RAM placement

read_def my_floorplan.def

slide-34
SLIDE 34

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

slide-35
SLIDE 35

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_library

and the target_library?

  • 4. Physical Compiler requires a chip-level floorplan

including IO PADs. True / False

slide-36
SLIDE 36

Summary

Gate-Level Netlist Logical Library .db Logical Constraints .sdc

source read_def check_timing check_physical_constraints read_verilog/vhdl/ddc set link_library "* sc.db" set target_library sc.db set physical_libray sc.pdb

Physical Compiler

Physical Constraints DEF

Ready for Placement

Physical Library .pdb

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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

slide-39
SLIDE 39

Placement and Optimization

Places the design and optimizes if necessary Placement is performed in two steps:

physopt

  • 1. Coarse Placement
  • 2. Legalization
slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

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

  • ptimization

?

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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)

slide-46
SLIDE 46

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

slide-47
SLIDE 47

Example “run” Script

lappend search_path ./design_data ../libs set link_library "* gates.db mem.db" set target_library "gates.db" set physical_library "tech.pdb gates.pdb mem.pdb" read_verilog my_design.v current_design MYDESIGN link source my_design.sdc check_timing read_def my_design.def check_physical_constraints physopt report_timing –delay max > my_design.timing set mw_design_library my_design_lib set mw_cel_without_fram_tech true write_milkyway –o placed UNIX$ psyn_shell –xg –f run.tcl | tee myrun.log

run.tcl

Usually part

  • f the setup

above

slide-48
SLIDE 48

Basic Flow Basic Flow

Physical Compiler Methodology

Good Result? Good Result? Additional Physical Constraints Additional Physical Constraints Coarse Placement Coarse Placement Congestion OK? Congestion OK? Physical Synthesis Physical Synthesis Refine Switches and/or Floorplan Refine Switches and/or Floorplan No Yes Good Result? Good Result? Done Done No Yes Incremental Optimization Incremental Optimization No Yes

slide-49
SLIDE 49

Power Net Placement Constraint

Complete Blockages

metal 2 metal 1 metal 2 metal 1

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

slide-50
SLIDE 50

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|hard

cell_list

slide-51
SLIDE 51

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:

!

slide-52
SLIDE 52

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’

slide-53
SLIDE 53

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

slide-54
SLIDE 54

Methods to Fix Congestion

Activate congestion-driven placement Lower the threshold at which the congestion

  • ptimization occurs

Adjust cell density in congested areas

slide-55
SLIDE 55

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 but:

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

!

slide-56
SLIDE 56

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

slide-57
SLIDE 57

Changing the Floorplan within PC

create_site_row

Creates SITEs for detailed placement

create_bounds

Sets X/Y_BOUNDS

  • f CLUSTER or CELL

set_port_location

Updates port’s XY coordinates

set_placement_area

Creates core area for rough placement

RAM

create_wiring_keepout create_placement_keepout

Creates a routing or placement keepouts

set_cell_location

Sets XY location of CELL

slide-58
SLIDE 58

Physical Compiler Methodology

Additional Physical Constraints Additional Physical Constraints Coarse Placement Coarse Placement Congestion OK? Congestion OK? Physical Synthesis Physical Synthesis Refine Switches and/or Floorplan Refine Switches and/or Floorplan No Yes Good Result? Good Result? Done Done No Yes Incremental Optimization Incremental Optimization

slide-59
SLIDE 59

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 : 0 Number of Cell Overlaps : 0 Number of Cells overlapping blockages : 0 Number of Orientation Violations : 0 Number of Site Violations : 0 Number of Power Strap Violations : 0 *********************************************

Make sure all these values are Zero!

slide-60
SLIDE 60

Partial Power Net Blockages

metal 2

Legalization considers all layer SPACING rules and can also take into account the need to insert VIAs. Legalization considers all layer SPACING rules and can also take into account the need to insert VIAs. Placement Grid Metal2 routing connects to Metal1 pin by using M1/M2 VIA. Metal2 routing connects to Metal1 pin by using M1/M2 VIA. Placement is legal if pins have enough space to connect to router (even if part of the pin is covered). Placement is legal if pins have enough space to connect to router (even if part of the pin is covered). Routing Tracks

slide-61
SLIDE 61

SPACING Rules

metal 2

SPACING rule applied Placement is illegal the pin can not connect to available routing track. Placement is illegal the pin can not connect to available routing track. Pin placement is OK as it can connect to an available routing track. Pin placement is OK as it can connect to an available routing track. Placement is illegal after considering effect

  • f M2 VIA insertion.

Placement is illegal after considering effect

  • f M2 VIA insertion.

A B Placement Grid Routing Tracks

slide-62
SLIDE 62

Creates a placement keepout associated with a specific

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