b3 Heloue User Pres
b3 Heloue User Pres
b3 Heloue User Pres
SNUG 2015 1
Agenda
SNUG 2015 2
Motivation
Speeding up design closure!
SNUG 2015 3
AMD Design Challenges
Obstacles to Closure
• AMD is a developer of CPU, GPU and APU designs with interesting
challenges
– Performance, with CPUs over 3GHz GPUs over 1GHz
– Design size, with the largest designs in production having over 250 million
standard cells and larger designs in flight
– Power, with an increasing focus on ultra low power designs
– Time to market, with hard deadlines for tapeout and production
• We are constantly looking for improved methodologies to make our
design flow more efficient
• PrimeTime Physically-Aware ECO is an interesting technology that
help us improve our schedules by making the ECO stage more
efficient and predictable
– Will share data from our evaluation of this feature for timing, transition, and
noise fixing on a large set of design blocks on a leading FinFet technology
node
SNUG 2015 4
Background
Physically-Aware PrimeTime ECO
SNUG 2015 5
PrimeTime ECO
Automated ECO Guidance
• PrimeTime can provide automated guidance to fix timing,
DRC, and noise violations
– Writes ECO change list file to address violations
• ECO guidance can be logical-only (i.e. netlist based) or
physically-aware
• Obvious benefits of physically-aware ECO:
– Considers physical placement and routing
– Improves ECO predictability and fix rate
– Adds placement locations to changed cells
– Avoids large displacements when resizing cells
– Considers available space, placement density, placement
blockages, and wire delay when inserting buffers
– Results in faster ECO convergence
SNUG 2015 6
Physically-Aware ECO
Inputs
• Requires the following
inputs:
1. Verilog netlist and physical
design information (DEF)
2. Library timing data and
physical cell information
(LEF)
3. Parasitics (SPEF or SBPF)
generated with location
information
SNUG 2015 7
Physically-aware ECO (1/2)
Mechanics
• Process is relatively straightforward
– Enable parasitics with location data
set_app_var read_parasitics_load_locations true
– Treat filler cells as open sites
set_app_var eco_allow_filler_cells_as_open_sites true
– Specify physical library/design info, filler cells names, output log
set_eco_options \
-physical_lib_path lef_files \
-physical_design_path def_files \
-filler_cell_names cell_names \
-log_file my_log \
– Use fix_eco_drc with –type max_transition or noise or
max_fanout or max_capacitance, and fix_eco_timing with
–type setup or hold, and specify physical mode as either
open_site or occupied_site
SNUG 2015 8
Physically-aware ECO (2/2)
Mechanics
– Setup fixing supports either size_cell or insert_buffer
– Hold fixing supports any (and all) of size_cell or
insert_buffer or insert_buffer_at_load_pins
– Max transition and noise fixing support both size_cell and
insert_buffer
– After issuing the fixing commands, generate ECO change list by
using write_changes
size_cell U1 AND2X
insert_buffer U2/Z BUF1X -location {212.3 753.2}
add_buffer_on_route net1 BUF2X -location {215.0 853.2} -
no_legalize
SNUG 2015 9
Evaluation Flow & Experiments
SNUG 2015 10
Evaluation Flow
Apply ECO, Route/Extract, Generate ECO, repeat…
Baseline
Routed Design
Empty ECO
SNUG 2015 11
PT ECO Job Features
SNUG 2015 12
Experiments
Scenarios and Design Blocks
• 8 different PT scenarios (4 • 16 design blocks on a
setup, 4 hold) leading FinFet tech node
– Typical, slow, fast process ranging from 250K-1.5M
– Low, mid, high voltage instances
– Low, High temperature Block Number
block_01
Instance Count
1051375
– Typical, worst, best RC block_02
block_03
1360179
834841
• PT versions: block_11
block_12
340999
799888
block_13 687778
– 2014.12-SP3 block_14 631185
block_15 824368
– 2015.06 BETA (noise fixing) block_16 565659
SNUG 2015 13
Results
Physically-Aware PrimeTime ECO
SNUG 2015 14
Setup Timing Results
SNUG 2015 16
Hold Timing Results
SNUG 2015 17
Hold Violations Count Reduction
SNUG 2015 18
Max Transition Fixing
SNUG 2015 19
Transition Violations Reduction
SNUG 2015 20
Noise Fixing
SNUG 2015 22
Noise Fixing (open_site)
SNUG 2015 23
Runtime and Memory
Memory Runtime
Block Number Memory (in MB)
block_01 7271
block_02 9695
block_03 6804
block_04 9715
block_05 4927
block_06 8676
block_07 5556
block_08 5181
block_09 3490
block_10 3728
block_11 4168
block_12 5630
block_13 5885
block_14
block_15
5182
6735
• On average:
block_16 6056
– Setup: ~ 2 hrs
– Hold: ~1 hr
– Typically correlated with – Transition: ~1 hr
block sizes
– Noise: ~1.5 hrs
SNUG 2015 24
Final Words
SNUG 2015 25
Conclusions
And Future Work
• Covered PrimeTime physically-aware ECO results on
AMD designs in FinFet tech node
• Overall, very satisfied with the technology and achieved fix
rates
– Improved setup fixing, very good hold fixing, and excellent
transition and noise fixing
• Recommending physically-aware ECO internally for
current and upcoming products
• Working with Synopsys on improved buffering for setup
fixing
– Already showing promising results (doubling insert_buffer fix rate)
• Would like to see ECO capabilities expanded to SI double
switching, and standalone delta delay reduction
SNUG 2015 26
Thank You
SNUG 2015 27