2 PT M1612-SP3 ECO
2 PT M1612-SP3 ECO
2 PT M1612-SP3 ECO
IMPORTANT NOTICE
In the event information in this presentation reflects Synopsys’ future plans,
such plans are as of the date of this presentation and are subject to
change. Synopsys is not obligated to develop the software with the features
and functionality discussed in these materials. In any event, Synopsys’
products may be offered and purchased only pursuant to an authorized quote
and purchase order or a mutually agreed upon written contract.
Clock ECO
Clock ECO
…
Setup Violation Fixing by Useful Skew
Q
max tran
max cap violation CLK
violation
DRC violation on a clock net Buf2X Buf2X
max tran Q
max cap violation
violation fixed
fixed CLK
DRC violation fixed by upsizing Buf4X Buf2X
ECO
• Clock Net with large fanout all has max transition violations Buffer
Launch
D Q D Q
CK CK
Capture
C2 C3
C1 Clock
ECO Slower Capture Clock path allows
more time for setup path
Faster Launch on Launch Flop
Setup slack =
allows more time for setup path 110ps +1 ps
D Q D Q Launch
Upsizing for
faster launch CK CK
Capture
C2 C3
C1 Downsizing for
Buffer insertion for delayed capture
delayed capture
© 2016 Synopsys, Inc. 9
Clock ECO Hold Fixing Techniques
Hold slack =
-10 ps
10ps
D Q D Q Launch
CK CK
Capture
C2 C3
C1
Clock
ECO
Slower Launch on Launch Flop Hold slack =
+2 ps
10ps
improves hold Launch
D Q D Q
• Data path hold fixing requires 16 buffer insertions • Clock path hold fixing requires only 1 buffer insertion
Q0 D0 Q0 D0
Q1 D1 Q1 D1
Q2 D2 Q2 D2
… … ..... …..
…. ….
Q15 D15 Q15 D15
CK CK CK CK
C1 C2 C1 C2
• Two other options are available to control timing based fixing fix_eco_timing
– clock_fixes_per_change
– controls the minimum number of violations to be fixed per one change, either sizing or buffer insertion
– clock_max_level_from_reg
– specifies the highest level of a clock network tree in which timing fixes can occur
-clock_max_level_from_reg 1
-clock_max_level_from_reg 3
Fixing Summary:
--------------------------------------------------------
Total violating endpoints found 2799
Analyzing Clock Network
ECO Summary for Clock
Total violating endpoints fixed 1944 for Candidates for sizing
ECO timing based fixing
Total violating endpoints remaining 855 and buffering
Total percentage of violations fixed 69.5%
Available buffers:
Lib_cell Area
-------------------------------------------------------- -cell_type clock_network
CBUF1 4.95
…… specified to perform Clock
Information: Detected 1320 max transition violations in clock network. ECO for max transition fixing
……
Inserted buffers:
Count Lib_cell Area Total_area
--------------------------------------------------------
……… Analyzing Clock Network
417 CBUFXYZ 1.52 635.55
…… for DRC violations for fixing
--------------------------------------------------------
1466 TOTAL 2365.78
• PrimeTime ECO has the ability to control which lib cells can be used for buffering and sizing
– Buffering: User provide usable Clock buffer buffer list : –buffer_list $valid_clk_buffers
– Sizing: Use set_user_attribute & eco_alternative_cell_attribute_restrictions for clock lib cell
selection
– For Example :
Clock ECO
• PrimeTime 2016.12-SP3 supports reading IC Compiler II NDM physical data for Physically-Aware
ECO
• For Top Level and Hier NDM preparation, please refer to the IC Compiler II application note:
– https://solvnet.synopsys.com/retrieve/customer/application_notes/attached_files/2258100/ICCII_TopLeve
lSolution_L-201603-SP5.pdf
– Please reference app note for details on creating and using frame views
– For PrimeTime hierarchical ECO, the frame view for all sub-blocks are required
• Two new options have been implemented to support reading NDM physical data
• NDM data is read at the same time in flow as LEF/DEF
• check_eco and fix_eco_* commands invoke NDM reading for Physically-Aware ECO
-physical_icc2_blocks Specifies the block to use from NDM lib, this value of this option mirrors
the input you would provide open_block command in ICC2:
<name of the block to open>
*Note in PrimeTime 2016.12-SP3 labels are not supported, just the name of the block should be supplied
to this option (see next slide for example)
© 2016 Synopsys, Inc. 21
NDM Example for Opening Block
• For a using a block from NDM, nlib reference and associated block need to be supplied
• Physical data is utilized from this nlib and block for Physically-Aware ECO
NDM used
NDMfor block
used for :
BLOCK_C
block BLOCK_C
set_eco_options -physical_icc2_lib <NDM_lib_loc>/BLOCK_C.nlib -physical_icc2_blocks BLOCK_C
NDM
NDMused top :DMC_TOP_B
usedforforblock TOP_DES
* Note : NDM reading automatically determines the top and blocks as before
© 2016 Synopsys, Inc. 23
report_eco_options with NDM Provided
• New columns in report_eco_options specify NDM parameters supplied for Physically-Aware ECO
• If LEF and DEF are provided, these are also denoted as in prior releases
****************************************
Report : eco_options
Design : TOP_DES
Version: M-2016.12-SP3 NDM library and associated block to
Date : DATE
**************************************** be read in for Physically-Aware ECO
….
Cell LEF files
------------------------------
<lef_location>/library.lef
<lef_location>/BLOCK_A.lef
<lef_location>/BLOCK_B.lef
….
Physical ICC2 lib Physical ICC2 blocks
------------------------------ --------------------------
<NDM_lib_location>/BLOCK_C.nlib BLOCK_C
<NDM_lib_location>/TOP_DES.nlib TOP_DES
Clock ECO
• Useful to regenerate unfixable reasons after initial ECO without doing actual fixing
• User can select specific paths from large unfixable reasons report
– Quickly evaluate alternative solutions like new buffer list/area threshold/margins, remove don’t_touch
– Can also use pre-ECO to identify reasons early in design flow, like lack of open_site “O”, UPF “U”,
dont_touch “V”
u1
u1 u1
fix_eco_timing -type hold -buffer_list {BUFX12} fix_eco_timing -type hold -buffer_list {DELBUFX1 }
-estimate_unfixable_reasons -estimate_unfixable_reasons
Unfixable Violations: Unfixable Violations:
I: buffer_list with given lib_cells cannot fix violation Violation Reasons Prio/Slk
Violation Reasons Prio/slk
S: r1/Q I P9
E: o1 -0.1
Available buffers:
Lib_cell Area
--------------------------------------------------------
BUF_NO_D12_L 0.4
BUF_NO_D6_L 0.2
BUF_SK_D8_UL 0.3
Clock ECO
• Illustration below shows an example of a critical path going through u1 and u2 (figure a)
– Downsizing side loads u3 and u4 improves the slack of critical path by reducing the capacitive loading
seen by u1 (figure b)
3X u3 1X
3X u4 1X
• The method size_cell_side_load only works with combinational cell fixing, and generates
an error when other cell types are specified
– fix_eco_timing -type setup –methods {size_cell_side_load} -cell_type sequential
– Error: The option -cell_type must be combinational if the option -methods has size_cell_side_load.