Tempus141_TSO_slides.pdf

December 22, 2017 | Author: Pramod Kumar Reddy | Category: Program Optimization, Central Processing Unit, Copyright, All Rights Reserved, Electronic Design Automation
Share Embed Donate


Short Description

Download Tempus141_TSO_slides.pdf...

Description

Tempus 14.1 Training: Timing Signoff Optimization (TSO) June 2014

Content 1. Feature Overview 2. Use Model 3. Incremental Timing Closure 4. Hierarchical Timing Closure 5. Path-based Analysis Optimization 6. Master Clone Optimization

2

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Content .. Contd. 7. Routing Congestion-aware Optimization 8. Selected Endpoints Optimization Special Sections

What’s New in Tempus 14.1 TSO EDI 14.1 – Signoff Timing Closure using Tempus 14.1 TSO

3

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

1. Feature Overview

4

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Tempus TSO Advanced Capabilities Address the timing closure challenges introduced from the increased analysis complexities and capacities! Standard Features

Tempus

Built-in signoff delay and SI analysis



Distributed or concurrent MMMC



Physically aware optimization



Legalized / DRC clean placement directives



Hierarchical or flat ECO generation



Optimized MMMC timing graph for fast and high capacity optimization



Graph or path based optimization



Common timing engine within implementation



New Features in Tempus TSO 14.1

5

On-route buffering



Master / Clone support



Multi-threaded ECO db generation



20nm/16nm design rule compliant



Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Place and route

Physically aware ECO

2-3 Iteration

Physical view (LEF/ DEF)

Tempus TSO Distributed MMMC delay calculation and STA

Physicallyaware optimization Hold, DRV, setup, leakage

Timing closed

Timing Closure Flow In a flat design flow, Tempus Timing Signoff Optimization (TSO) is for final signoff timing closure

Timing Met?

Post CTS Setup/Hold Fixing Timing Met?

Physical Verification

Routing Post Route Setup/Hold Fixing SI Setup/Hold Fixing

SIGNOFF

Pre CTS Setup Fixing

Clock Tree Synthesis

POST ROUTE FLOW

Timing, Mode Setup

JTAG/Cell Placement

POST CTS FLOW

Load Floorplan

PRE CTS FLOW

DESIGN INITIALIZATION

Design Import

Scan Defintion

Timing Analysis Tempus TSO ECO Timing Analysis

Timing Met?

GDSII

6

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Hierarchical Timing Closure Flow

Timing Setup Partition Definition

Partition Pin Assignment

Design Initialization Pre-CTS Flow Post-CTS Flow Post-Route Flow SI Setup/Hold Fixing Timing Met?

Opt Virtual / Budgeting Partitioning

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Design Initialization Pre-CTS Flow Post-CTS Flow Post-Route + SI Flow Model Generation Timing Met?

ASSEMBLY & SIGNOFF

Clock / Latency Specification

JTAG / Cell Placement

BLOCK IMPLEMENTATION

DESIGN INITIALIZATION

7

Load Floorplan

VIRTUAL PROTOTYPING

Design Import

TOP IMPLEMENTATION

In a hierarchical design flow, Tempus TSO is for final full-chip signoff timing closure

Assemble Design Signoff Extraction Timing Analysis Tempus TSO ECO on full flat DB Signoff Extraction Timing Analysis

GDSII

Why Tempus TSO? Motivations overview In signOff environment, designers always find some remaining timing violations that must be cleaned up : - Block level vs top level timing analysis do not match. Timing model difference. - Timing budgeting is not precise or not always done (for Hold timing). - Over fixing is killing, thus counting on SignOff stage to catch/fix real violations. - Additional corners or modes added in SignOff stage. - Implementation tools cannot optimize timing with full SignOff STA precision

 Complementary solution to the timing closure at implementation stage.  Need for such feature to fix remaining violation in SignOff STA environment

Technology trend The timing environment is getting more and more complex : - Many clocks because of many functions. - Complicated timing exception because of many functions. - Large number of MMMC views ( > 100 views). - Large Hierarchical and MSV designs ( > 100M gates) .

 This is leading to runtime and memory explosion. There is a need for a more efficient data management to allow increasing tool capacity. 8

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Tempus TSO Features Highlights Feature highlights - Focus on timing convergence by being MMMC-aware, STA SignOff aware and SI-aware - By default this feature is Physical-aware. No placement legalization needed - Concurrent and distributed timing analysis. Highly scalable - Smart Bottleneck analysis algorithm to target minimal netlist change - The local density and routing congestion are considered when adding buffers - Support for MSV and Hierarchical based designs (including different row height) - Native support for replicated hierarchies (also named Master/Clone optimization) - Need only one single ECO loop to close timing - Very large capacity in netlist size (>200M gates) and number of active views timed (>100)

Input data • Technology data • Design data • Physical data (Can load EDI DB)

9

Tempus TSO • Buffering, Vth Swapping and Sizing • Violations fixed :  Hold timing violations  Setup timing violations  Design Rule Violations (max_cap/max_tran)  Leakage power reduction

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Output data • Detailed reporting on all ECOs being performed • Detailed diagnostic report on remaining violations not fixed • Standard format ECO file • Final timing summary reports

Front-to-back Physical Aware Timing Closure

Logical only SignOff ECO Timing Closure Why would you accept to lose accuracy/predictability when reaching SignOff stage ? 10

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Physical Aware Synthesis Routing aware Placement & Timing Optimization Physical & Routing Aware SignOff ECO Timing Closure Predictable and convergent flow !

RC-EDI-Tempus Front to Back implementation flow

Routing aware Placement & Timing Optimization

Traditional Front to Back implementation flow

Physical Aware Synthesis

Benefit of Tempus TSO Physical-awareness The goal is to improve correlation between evaluated timing during ECO and real timing after place&route loop by : -

Performing legal location checks during buffer insertion and output coordinates in the ECO file to be reused by the implementation tool.

-

Taking in account routing information when adding buffer.

Buffer insertion

Legalization

Legalization

Non-Physical Mode

Buffer insertion

Physical Mode 11

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Difficult to predict the timing impact of placement refinement !

 Buffer is already getting legal location from Tempus



No move would happen later on in place&route



Routing estimations are more precise

On Which Design Style Can It Be Used? Hierarchical flow

Block implementation

Interface CPU1 B U S

CPU2

Very large flat netlist

CPU R A M

• Fix the inter-partition timing violations, after assembling the design, on the full flat DB • Small amount but large violations to be fixed  Challenge is on capacity, TAT and TopLevel buffering

Network

• Fix the real remaining violations in SignOff STA tool to avoid adding pessimism in implementation tool • Timing violations to fix are probably small and not too many. Can recover leakage.

• Flat implementation of very large netlist where Hold fixing only done with SignOff ECO feature to avoid capacity/runtime issue

 Need precise fixing without creating any Setup violations and make usage of physical-aware techniques

 Above several 100k violations to be fixed with physical-aware techniques in reasonable runtime and Mem

Integrated solution enables Signoff Timing Closure in different design methodologies 12

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Tempus TSO Architecture Logical Design

MMMC Views

Physical Design

Physically aware for legalized placement Tempus TSO

Distributed MMMC Timing/SI Analysis

view 1

view 2

view 3

Optimization across all parameters to eliminate new violations

view n

MMMC Optimization Engine Hold

Leakage

P&R System

DRV

Distributed processing maximizes analysis performance

Setup

ECO file

 Single-pass MMMC Signoff ECOs with simultaneous optimization across all MMMC views 13

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

2. Use Model

14

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Tempus TSO ECO Flow Tempus cockpit

Distributed SignOff Timing Analysis Tempus TSO

ECO file

Convergent timing closure flow

(eco_edi.tcl)

EDI cockpit + QRC

ECO Route SignOff RC Extraction

SPEF files

Verilog

Tempus cockpit

Distributed SignOff Timing Analysis 15

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Timing reported in Tempus after optimization step will be very close to the one measured at the end of the full P&R flow

The ECO File Result From Tempus TSO

16

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

The Tempus TSO Use Model • Use model overview :  Simple command to access all the timing/power optimization capabilities  Tool will automatically switch the Physical-aware when Physical data are loaded  Reusing the distributed processing management settings already available (and used by D-MMMC)

set_multi_cpu_usage/set_distribute_host  To set the distributed MMMC environment

write_eco_opt_db  To save ECO Timing DB files, containing timing information per view

set_eco_opt_mode …  To pilot ECO timing closure with any specific options

eco_opt_design [-hold] [-drv] [-leakage] [-setup] \ [-help] [-analysis_script ]  To run either DRV or Hold or Setup and Leakage optimization

17

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Main Command For Tempus TSO eco_opt_design [-hold] [-drv] [-leakage] [setup] [-analysis_script ] [-help] • Description: This command triggers the MMMC SignOff ECO. depending on the set_eco_opt_mode settings, it will either auto generate the ECO timing db or load existing one, then proceed to the timing fixing phase and finally output an ECO file and detailed diagnostics. The –analysis_script option is mandatory (see next slide).

• Output: This command will generate the eco_edi.tcl file which should be used in EDI to perform place&route. It also generates eco_tempus.tcl file which can be sourced in Tempus to do timing analysis after ECOs

• Example:

eco_opt_design -hold –analysis_script sta.tcl This will perform Hold fixing while not degrading Setup timing.

• Notes:  It is important to correctly set up the timing environment and multiCPU settings before running this command. 18

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Main Command Mandatory Option (1/2) eco_opt_design –analysis_script • Description: This mandatory option allows to provide a file containing instructions to load the SPEF files for every active RC corner. This file may also contain information to enable SI analysis, when needed.

• Example of file to be passed to –analysis_script option: read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz

This will instruct the tool on how to load the SPEF files.

• Notes:  When no SI analysis instruction are provided, the tool will perform non-SI signOff timing analysis.  The file provided through -analysis_script option should be similar to the file one would use for D-MMMC (and provided through -script option for command distribute_views ) 19

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Main Command Mandatory Option (2/2) eco_opt_design –analysis_script

• Example of file to be passed to –analysis_script option for SPEF loading + SI analysis settings: read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz set_delay_cal_mode -SIAware true

This will instruct the tool on how to load the SPEF files and what are the settings that should be used for SI analysis. • Notes: To perform SI analysis/fixing, SPEF must contain the coupling capacitance data.

20

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Fixing DRV Timing Violations eco_opt_design -drv -analysis_script • Description: When specifying the -drv option, eco_opt_design will fix the max_cap and max_tran violations by ensuring minimal Setup timing impact. The fixing is done through buffering by default, but also through resizing as an optional technique.

• Fixing method: Buffering (default) and resizing.

• Examples:

set_eco_opt_mode –resize_inst true eco_opt_design –drv –analysis_script spef.tcl

This will perform DRV fixing by using buffering and resizing techniques. set_eco_opt_mode –drv_margin -0.1 eco_opt_design –drv –analysis_script spef.tcl This will perform DRV fixing on all the max_cap/max_tran violations that are violating by more than 10% of the target.

21

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Fixing Hold Timing Violations eco_opt_design -hold -analysis_script • Description: When specifying the –hold option, eco_opt_design will fix the Hold timing violations by ensuring no Setup or DRV timing degradation. The following Hold fixing capabilities are worth to mention : 

Perform Vth swapping (sizing between cells of the same physical footprint)



Taking advantage of “Hold Friendly” and de-skewed sequential elements



Ability to resize existing buffers in to delay cells

• Fixing method: Buffering (default), Vth swapping and resizing. • Examples:

set_eco_opt_mode –swap_inst true eco_opt_design –hold –analysis_script spef.tcl

This will perform Hold fixing by using Vth swapping and buffering techniques. set_eco_opt_mode –swap_inst true –resize_inst true eco_opt_design –hold –analysis_script spef.tcl This will perform Hold fixing by using Vth swapping, buffering and resizing techniques on combinational cells. 22

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Fixing Setup Timing Violations eco_opt_design -setup -analysis_script • Description: When specifying the -setup option, eco_opt_design will fix the Setup timing violations by ensuring no impact on Hold timing and DRV. The fixing is done through Vth swapping by default, but also through resizing and buffering as optional technique.

• Fixing method: Vth swapping (default), buffering and resizing. • Example:

set_eco_opt_mode –resize_inst true –add_inst true eco_opt_design –setup –analysis_script spef.tcl

This will perform Setup fixing by using Vth swapping , buffering and resizing techniques.

• Notes: −

23

When resizing instances, tool will look for legal locations so that the ECO file generated would not lead to any overlapping instances.

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Reducing Leakage Power eco_opt_design -leakage -analysis_script • Description: When specifying the -leakage option, eco_opt_design will reduce leakage power by ensuring no impact timing and DRV. The power reduction is done through Vth swapping on combinational cells by default, but also on sequential elements as an optional technique.

• Examples:

eco_opt_design –leakage –analysis_script spef.tcl

This will perform Leakage power reduction by performing Vth swapping on combinational cells. set_eco_opt_mode -optimize_sequential_cells true eco_opt_design –leakage –analysis_script spef.tcl This will perform Leakage power reduction by performing Vth swapping on all standard cells

• Notes: −



24

Instances marked as Fixed can be Vth swapped. To avoid that, one can apply don’t_touch attribute on those instances. The command set_power_analysis_mode -view allows to choose in which corner must be used to collect the leakage power numbers (can be a non-active view).

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Two supported use model flows Fixing timing with embedded Distributed TA •

In this mode the tool will load the design/libraries data, run Distributed TA to collect the timing information per view, then optimize timing and finally re-time the design based on the ECO change committed



This is the simplest use model since all is automated.



It requires that the number of CPUs available is superior or equal to the amount of Setup + Hold unique active views.

Fixing on existing ECO timing DB

25



In this mode the tool will load the design/libraries data, then read the previously generated ECO timing db, then optimize timing and report the final timing based on the evaluated timing.



This allows the user to run fixing on many more views, since there is no limit in the amount of active views.



This approach leads to a smaller memory footprint than above one.

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Script Example of Embedded TA Mode TSO Timing fixing with embedded Distributed TA using Physical-aware mode: Read_view_definition $viewdef_file read_lib –lef $lef read_verilog $netlist set_top_module read_def $def_file set_distribute_host -local set_multi_cpu_usage -localCpu 8

When both LEF and DEF files are provided or initial data loaded with read_design –physical_data, the tool will automatically run in Physical-aware mode

set_eco_opt_mode –buffer_cell_list “BUFX1 BUFX2 BUFX4 BUFX6 BUFX8 DLYX1 DLYX2 DLYX4" eco_opt_design –hold –analysis_script sta.tcl

Note : The “sta.tcl” must contain read_spef command for every active rc_corner, and SI analysis settings in case SI timing is requested for SignOff 26

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Script Example of 2-pass flow Session 2

Session 1 ECO timing DB generation using D-MMMC : set_distribute_host –local set_multi_cpu_usage -localCpu 8

Same script can be used

distribute_read_design \ -design_script loadDesign.tcl -outdir . distribute_views -views $setup_and_hold_views \ -script sta.tcl

Timing fixing using previously generated ECO timing DB : source loadDesign.tcl set_analysis_view –setup [list $setup_views] \ –hold [list $hold_views] set_distribute_host –local set_multi_cpu_usage -localCpu 8 set_eco_opt_mode –load_eco_opt_db mySignOffTGDir

Content example for sta.tcl :

Same script can be used

read_spef -rc_corner rc_max max.spef.gz read_spef -rc_corner rc_min1 min1.spef.gz read_spef -rc_corner rc_min2 min2.spef.gz set_eco_opt_mode –save_eco_opt_db mySignOffTGDir write_eco_opt_db

eco_opt_design –hold –analysis_script sta.tcl OR eco_opt_design –drv –analysis_script sta.tcl OR eco_opt_design –leakage –analysis_script sta.tcl

Note :  The eco_opt_design command will automatically skip the set_eco_opt_mode and write_eco_opt_db commands from sta.tcl file since ECO timing DB information is already provided.  The loadDesign.tcl must contain Physical data to ensure fixing is done in Physical-Aware mode 27

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

3. Incremental Timing Closure

28

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Incremental ECO Functionality Example 1 Scenario: Customer wants to fix Hold first at Top level and then at Block level

Tempus

Example 2 Scenario: Customer wants to fix DRV, then Hold and then Setup in one session

Tempus

Example 3 Scenario: Customer wants to fix Hold with specific buffers and then fix Setup with Vth Swapping only Tempus

set_dont_touch PTN* true

DRV fixing ECO1

Buffer cell list with DLY*

Hold fixing ECO1

Hold fixing ECO2

Hold fixing ECO1

set_dont_touch PTN* false

Setup fixing ECO3

Allow only Vth swapping

Hold fixing ECO2

Setup fixing ECO2

Very flexible use model which allows any combination of DRV, Hold and Setup optimization in one single Tempus session 29

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Incremental ECO Functionality (2) set_eco_opt_mode -allow_multiple_incremental true • Description: This option allows the user to run several eco_opt_design commands in a row using the same initial ECO Timing DB. In the same session, the user can fix Setup, Hold and DRV violations. An ECO file is generated per eco_opt_design call.

• Default: false • Example:

set_eco_opt_mode –load_eco_opt_db ECOdb set_eco_opt_mode –allow_multiple_incremental true set_eco_opt_mode -eco_file_prefix DRV_FIX eco_opt_design –drv –analysis_script spef.tcl set_eco_opt_mode -eco_file_prefix HOLD_FIX eco_opt_design –hold –analysis_script spef.tcl

This will perform DRV fixing followed by Hold fixing, while giving a different prefix for the ECO files.

• Notes: − −

30

The –leakage option is not supported in incremental mode and no intermediate timing reports can be done in betweens eco_opt_design commands. The ECO files must then be later sourced in the same order as they were generated.

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

4. Hierarchical Timing Closure

31

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Hierarchical Design Chip Finishing  Top Level and block level Verilog/DEF/SPEF are loaded in Tempus to perform full flat timing analysis in MMMC  Tempus TSO can perform timing optimization in any of the following way: 

Fix timing at Top Level only



Fix timing at Top Level and in any, or all, partitions

Interface Top Level

M E M

CPU

.v .def .spef

.v .def .spef

B U S

.v .def .spef

.v .def .spef

Top Level fixing only

.v .def .spef

Tempus Interface CPU1

Native support for replicated hierarchies

CPU2

B U S

M E M

Buffering is logical and physical hierarchy aware

Tempus TSO

Partition interface is unchanged ECO Top Level 32

ECO Interface

ECO CPU

ECO MEM

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

ECO BUS

Can output an ECO file per partitions/topLevel

Generating a Per-Partition ECO File set_eco_opt_mode -partition_list_file • Description: The -partition_list_file option allows the user to select the modules that should be treated as partitions. The file provided to this option must contain a list of cells name of such modules. The eco_opt_design would then generate an ECO file per top and partitions (with relative locations).

• Default: empty • Examples:

set_eco_opt_mode –partition_list_file partition.txt eco_opt_design –hold –analysis_script spef.tcl

This will perform Hold fixing and treat every cell listed in the partition.txt file as partition.

• Notes: − − −

33

It is mandatory that the modules that must be treated as partitions are of type FENCE. To avoid doing any ECO in a given partition, one need to apply don’t_touch on that module. To perform top level only buffering, one need to apply don’t_touch on every partitions.

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Assembling a Design in Tempus merge_hierarchical_def

• Description: This command allows the user to load DEF files for the modules that is currently treated as a black box (represented by LEF/LIB). This command is needed for Hierarchical designs in order to assemble the top level database with all the block level databases. The tool will automatically create a FENCE for every partition loaded.

• Default: empty • Examples:

merge_hierachical_def {top.def ptn1.def}

This will assemble the ptn1 block level database to the top level database already in memory.

34

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Hierarchical Chip Finishing Example Example for a design with two partitions (ptn1 and ptn2) : read_lib $liberty read_lib –lef “$cell_lef ptn1.lef ptn2.lef” read_verilog “my_top.v ptn1.v ptn2.v” set_top_module my_top merge_hierarchical_def {my_top.def ptn1.def ptn2.def source viewDefinition_and_derating.tcl

set_eco_opt_mode –load_eco_opt_db myECODB set_eco_opt_mode –partition_list_file partition.txt eco_opt_design –hold –analysis_script spef.tcl

Content example for partition.txt : tdsp_core test_control

Content example for spef.tcl : read_spef -rc_corner rc_max “my_top_max.spef ptn1_max.spef ptn2_max.spef” read_spef -rc_corner rc_min1 “my_top_min1.spef ptn1_min1.spef ptn2_min1.spef” read_spef -rc_corner rc_min2 “my_top_min2.spef ptn1_min2.spef ptn2_min2.spef”

Notes : 1) Must provide pointer to ECO DB since D-MMMC cannot be used with merge_hierarchical_def’s based flow. 2) When loading one full flat DEF/Verilog, the partition LEFs must not be provided, but the full flat DEF has to contain FENCEs definition for the modules that should be treated as partitions. 35

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

5. Path-based Analysis Optimization

36

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Path-based Analysis Mode Support Tempus TSO supports timing optimization in Path Based Analysis including SI mode The different types of Path Based Analysis supported are :  aocv : Re-timing the timing critical paths using the AOCV derating factors  path_slew_propagation : Re-timing the timing critical paths using the actual slews for the path  aocv_path_slew_propagation : Combination of re-timing with aocv + path_slew_propagation  waveform_propagation : Re-timing with waveform effect taken into consideration during delayCal Hold fixing in PBA (path_slew_propagation) vs GBA Gain in added area

Gain in number of inserted buffers

Design 1

4.7%

4.3%

Design 2

0.4%

0.45%

Design 3

2.3%

2.8%

Design 4

5.7%

6.6%

Applying Path Based Analysis allows to remove some timing pessimism and leads the tool to fix only the real timing violations 37

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Path-based Analysis leakage power results

High Speed Core design, 32nm technology Analysis Mode

Total Leakage

Graph Based Analysis

300mW

Path Based Analysis

264mW

Sequential cells

Combinational cells

25mW

191mW

18mW

164mW

12% Improvement

Block Level • 1.2M instances, 45nm technology, 95% of initial low VT cells • 7 Hold views and 7 Setup views Analysis Mode

Number of Cells swapped

% of Low VT to HVT conversion

Setup degradation

MSV or Placement violations

GBA-SI

0.8M

75%

None

None

PBA-SI

1M

93%

None

None

38

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

18% Improvement

Path-based Analysis Mode Support • PBA related options: set_eco_opt_mode \ -retime # Default = -check_type early | late # Default = -max_slack # Default = -max_paths # Default = -nworst # Default =

“” early 0 500000 50

Notes : Those options are only honored when set_eco_opt_mode –retime is being activated.

• Examples: set_eco_opt_mode -retime path_slew_propagation -check_type late write_eco_opt_db This will generate ECO DB with Setup timing being done in PBA path_slew_propagation mode set_eco_opt_mode -retime aocv write_eco_opt_db This will generate ECO DB with Hold timing being done in PBA aocv mode

39

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

6. Routing Congestion-aware Optimization

40

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Routing aware buffering for Hold fixing set_eco_opt_mode –routing_congestion_aware true • Description: The –routing_congestion_aware option allows to force the buffering to avoid inserting buffers in areas where routing congestion is already very high. The goal is to not cause new routing DRC due to ECO buffering as well as avoiding routing detour for new ECO nets.

• Default: false • Examples:

set_eco_opt_mode –routing_congestion_aware true eco_opt_design –hold –analysis_script spef.tcl

This will perform Hold fixing in routing congestion aware mode.

• Notes: − −

41

This option may lead to worse Hold timing closure when design has routing congestion but it will limit potential Setup timing degradation and routing DRC increase after full place&route loop. This option applies only for Hold fixing since this is where buffer count inserted is usually high.

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Routing-aware Buffering For Hold Fixing (2) Customer example

Default mode

Initial DB • New routing DRC hotspot created • Setup timing degradation

Congestion map

SETUP : WNS = -0.8ns, TNS = -10ns HOLD : WNS = -0.6ns, TNS = -2.3ns Routing DRC = 324

Routing DRC markers

Congestion aware mode • No new routing DRC • Very limited Setup timing impact

SETUP : WNS = -0.8ns, TNS = -4ns HOLD : WNS = -0.9ns, TNS = -96ns Routing DRC = 40

42

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

SETUP : WNS = -0.8ns, TNS = -5.6ns HOLD : WNS = -0.8ns, TNS = -26ns Routing DRC = 25

7. Master Clone Optimization

43

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clone timing optimization Overview • Hierarchical implementation with Master/Clones • Common blocks/duplicated functionality built and verified once (master) and instantiated multiple times (clones) in design • Keeping a non-uniquified netlist makes easier the scope and breadth of late logic changes, reducing the critical path turn-around time and re-verification required to achieve final signoff • Reduces work load and data storage

• A cloned block is implemented such that it can operate in the worst-case corner scenario in any of its instantiation but once assembled in its top level, the full flat STA might reveal new timing violations. • Master/Clones timing optimization is needed because each clone can have: • Different physical environments ( like different IO loads ) • Different timing environments (like change in clock slew/skew/OCV between blocks and flat) • Different Signal Integrity environments 44

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Why does Master/Clone support help ? No Master/Clone support • Only top level is optimized • All CPU modules will be dont_touch

Cpu1 Cpu2 (cellA)

(cellA)

Top Cpu3 Cpu4 (cellA)

(cellA)

Uniquified netlist Cpu1 Cpu2 (cellA1) (cellA2)

Top Cpu3 Cpu4 (cellA3) (cellA4)

With Master/Clone support Cpu1 Cpu2 (cellA)

(cellA)

Top Cpu3 Cpu4 (cellA)

45

(cellA)

 Timing optimization with sub-optimal QOR • Top and CPUs are optimized • Each CPU will get a unique ECO file • ECOs from one CPU may degrade timing when applied on the other CPUS  Which CPU ECO file for implementation ? • Top and CPUs are optimized • One ECO file for all CPUs • ECOs generated are valid for each CPUs timing context  Optimal timing closure for full flat timing !

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clone timing optimization Definitions - Tool is able to fix DRV/Hold/Setup/leakage with buffering/resizing/VthSwapping. - Only one unique DEF/Verilog for a Master/Clone, even after timing optimization. There is only one ECO file per Master/Clone. - Timing closure happens outside master/clone as much as possible. - Timing closure can happen inside master/clone but also on boundary paths. - Any netlist change done in a Clone is checked in every other Clone to ensure no timing degradation and no placement violation in their respective physical context . - Performance and capacity are maintained :

 QOR of eco_opt_design with clones should be as close as possible to what would be obtained on the uniquified netlist or with customer’s manual flow which consist in optimizing only one clones (others are dont_touch) and then replicate the ECO in all clones identically.

 TAT of eco_opt_design with clones should be similar to same design with uniquified netlist. 46

 No impact on memory usage

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Basic example of Master/Clones implementation Z1

Top Block1 (cellA)

(CellA) Block2 (cellA) FF2

FF2

O1

FF1

FF1

In1

O1

In1 Z2

T1

I0

I1

• Physical/timing context is different for every Clones boundary • Timing optimization must work on any kind of paths :  from FF1 to FF2 on all clones or inter-clones paths too (if any)  from Top/T1 to Block1/FF1 and from Top/T1 to Block2/FF1  from Block1/FF2 to Top/Z1 and from Block2/FF2 to Top/Z2  Paths crossing multiple clones like Block1/FF2 to Block2/FF1

• Buffering can happen on any nets, even nets crossing clones boundary.

47

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

How to enable Master/Clone support ? set_eco_opt_mode –optimize_replicated_modules true • Description: By enabling the –optimize_replicated_modules option, the tool will be able to optimize timing in the replicated modules. Any netlist change will be checked against each clone’s timing and physical context to ensure that no violations are created. In this mode only one ECO file is generated per group of clones. It is mandatory to list the cell name of the clones inside the file provided to –partition_list_file option.

• Default: false • Examples:

set_eco_opt_mode –optimize_replicated_modules true set_eco_opt_mode –partition_list_file partitions.txt eco_opt_design –hold –analysis_script spef.tcl

This will perform Hold fixing and the replicated modules of the cell listed in the partition list file will be treated as clones.

• Notes: −

48

The design must be assembled in EDI (through assembleDesign command) or in Tempus (through the read_partition command).

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Mechanism to load Master/Clone design Two possible flows EDI restoreDesign

Tempus assembleDesign

Load top level data read_partition

Encounter DB

Tempus read_design

ECO fixing running in Master/Clone aware mode

set_eco_opt_mode eco_opt_design

set_eco_opt_mode eco_opt_design

Run first EDI to assemble the design, block by block, and then run Tempus to load the full DB to perform ECO fixing.

Run Tempus to assemble the design, block by block, and then run ECO fixing

The read_def command in Tempus should not be used to assemble a hierarchical design 49

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clones flow use model Example for a design with two clones (Block1 and Block2) : read_lib $liberty read_lib –lef “$all_lef” read_verilog “my_top.v cellA.v” set_top_module my_top

Design example: Or

Top

read_design top.enc \ –physical_data

Block1 (cellA) Block2 (cellA)

merge_hierachical_def {my_top.def cellA.def} source viewDefinition_and_derating.tcl set_eco_opt_mode –load_eco_opt_db myECODB set_eco_opt_mode –partition_list_file partition.txt set_eco_opt_mode -optimize_replicated_modules true

Content of partition.txt : eco_opt_design –hold –analysis_script spef.tcl

cellA

Content example for spef.tcl : read_spef -rc_corner rc_max “my_top_max.spef cellA_max.spef” read_spef -rc_corner rc_min1 “my_top_min1.spef cellA_min1.spef” read_spef -rc_corner rc_min2 “my_top_min2.spef cellA_min2.spef”

Notes : 1) 2) 3) 50

Must provide pointer to ECO DB since embedded D-MMMC ECO flow cannot be used with merge_hierarchical based flow. Mandatory to provide the partition LEF when loading the top level design. A basic LEF for a block can be easily generated using lefOut in EDI When replicated instances have different orientation, the design must be assembled in EDI or in Tempus, because loading one full flat DEF/Verilog will not work. Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Full ECO loop flow for Master/Clones Tempus cockpit

Distributed SignOff Timing Analysis MMMC SignOff ECO (with Master/Clones) ECO file Top_edi.tcl

ECO file cellA_edi.tcl

Design example: Top Block1 (cellA) Block2 (cellA)

EDI + QRC

EDI + QRC ECO Route

ECO Route

SignOff RC Extraction

SignOff RC Extraction

SPEF files

Verilog

SPEF files

Verilog

Tempus cockpit

Distributed SignOff Timing Analysis 51

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clones implementation with rotation Top

Block1 (cellA)

Block2 (cellA)

Block3 (cellA)

Block4 (cellA)

• Clones can be mirrored on the X or Y direction : R0 , R180 , MX and MY • No support for R90 /R270 rotation (which is anyway not recommended by foundries)

52

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clones at multi-levels Top T/B1/A0 (cellC)

T/B1/A1 (cellC)

T/B1/A3 (cellC)

T/B1/A2 (cellC)

T/B1 (cellA)

T/B2 (cellB)

T/B2/A0 (cellC) T/A0 (cellC)

• Master/Clones can be inside any level of hierarchy and part of different modules (size/shape) • Timing optimization gives priority to netlist change at higher hierarchy levels, to limit impact on clones. • A net can drive multiple clones in multiple hierarchies

Top T/B1/A0 (cellC)

T/B1/A1 (cellC)

T/B1/A3 (cellC)

T/B1/A2 (cellC)

T/B2/A0 (cellC)

T/B2/A1 (cellC)

T/B2/A3 (cellC)

T/B2/A2 (cellC)

T/B1 (cellA)

T/B2 (cellA)

53

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

• Multiple levels of Master/Clones can be assembled • Timing optimization and placement supports such scenario • Timing optimization gives priority to netlist change at higher hierarchy levels, to limit impact on clones.

Master/Clones with Channel-less floorplan T/B1/A0 (cellC)

T/B1/C0 (cellD)

T/B1 (cellA)

T/B1/A1 (cellC) T/B1/A2 (cellC)

T/B1/C1 (cellD) T/B1/A3 (cellC) T/B2/A0 (cellC)

T/B2/C0 (cellD)

T/B0 (cellB)

T/B2 (cellA)

T/B2/A1 (cellC) T/B2/A2 (cellC)

T/B2/C1 (cellD)

T/B2/A3 (cellC) T/B3/A0 (cellC)

T/B3/C0 (cellD)

T/B3 (cellA)

T/B3/A1 (cellC) T/B3/A2 (cellC)

T/B3/C1(cellD)

T/B3/A3 (cellC)

• No netlist change possible at Top. ECO allowed only in sub-blocks • Timing optimization gives priority to netlist change at higher hierarchy levels • By construction, ECO buffering does maintain Logical/Physical Hierarchy

54

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clone impact on log verbosity • Reporting information on how many clones were detected for the cells listed in the –partition_list_file option.

• Current log : *info: reading partition list file partitions.txt **WARN: Ignoring multi-instantiated partition seq_logic *info: 1 clock net

excluded from eco_opt_design operation.

**WARN: (ENCECO-560): Netlist is not unique. Cell "seq_logic" is a multiinstantiated cell. Uniquify your netlist to avoid the problem. *info: 4 ununiquified hinsts

• New log : *info: reading partition list file partitions.txt *info: 1 clock net

excluded from eco_opt_design operation.

*info: following replicated instances will be optimized in Master-Clone mode *info: module seq_logic (4 replicated instances)

55

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Master/Clone impact on failure diagnostic • In the diagnostic report, each failure category will now also report how many nets are in replicated hierarchies. • Without Master/Clone support : *info: *info: *info:

4000 net(s): Could not be fixed because they would "degrade design setup WNS". 32 net(s): Could not be fixed because hold improving moves not found. 662 net(s): Could not be fixed because they are in or around non-unique modules.

• With Master/Clone support : *info: 4615 net(s) ( 615 master clone net(s) ): Could not be fixed because they would "degrade design setup WNS". *info: 47 net(s) ( 47 master clone net(s) ): Could not be fixed because they would "Degrade DRV violations". *info:

32 net(s): Could not be fixed because hold improving moves not found.

• For each remaining violated cloned net, the clone causing the reason for not fixing the violation is printed . CPU1/N122 (In context CPU3) CPU2/N23143 (In context CPU3)

• Note : Failure report on nets inside clones is printed only one time and not as many times as there are clones. 56

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

8. Selected Endpoints Optimization

57

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Selected endpoints optimization & Margins specification • Supported for hold/setup optimization • Endpoint based inclusion/exclusion per view • Endpoint based slack adjustment per view (both +ve and -ve adjustments ) •Option to fix only register to register paths • Specification of endpoints can be done by: o list of space separated endpoints : E1 E2 E3 o E* for all endpoints o slack range : (specified in nanosecond) • View specification can be done by: o View name o V* for all views ( may not be applicable in some scenarios )

58

Copyright © 2014 Cadence Design Systems, Inc. All Rights Reserved.

Endpoint based inclusion/exclusion per view Use model: set_eco_opt_mode -select_hold_endpoints set_eco_opt_mode -select_setup_endpoints Format : include/exclude create a file ( for inclusion/exclusion for hold ) where lines starting with # are comments and would be skipped # Exclude endpoints inst1/SE and inst2/SE from view VIEW1 VIEW1 exclude inst1/SE inst2/SE # Include only the endpoints that have slacks >= -0.5 ns and
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF