Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Application Note
Table of Contents
What is LOCV? ................................................................................................................... 3 LOCV .......................................................................................................................................... 3 Stage Count Definition....................................................................................................... 3 Distance Calculation ................................................................................................................... 4 Table look-up in LOCV library ........................................................................................... 5 Use Model ........................................................................................................................... 5 Required Inputs ........................................................................................................................... 6 LOCV Library format ................................................................................................................. 6 Commands and Globals .............................................................................................................. 7 GUI update .................................................................................................................................. 9 Timing Reports ........................................................................................................................... 9 Known Limitations ........................................................................................................... 12 Appendix ........................................................................................................................... 12 Different Bounding Box Scenarios ........................................................................................... 12 Primary Input -> FF .............................................................................................................. 13 FF -> Primary Output ........................................................................................................... 13 Self-loop paths ...................................................................................................................... 14 Primary Input -> FF, where Primary Input has input_delay with respective to generated_clock .................................................................................................................... 14 FF->Primary Output, where Primary Output has output_delay with respective to generated_clock .................................................................................................................... 15 LOCV analysis in MMMC ....................................................................................................... 15 Commands with -view option ............................................................................................... 15 Example script ...................................................................................................................... 15
What is LOCV?
LOCV stands for Location based On-Chip Variation (a.k.a. Local OCV or Location aware OCV) Smaller technology nodes are sensitive to PVT and require OCV analysis. Global OCV scaling is pessimistic and can make timing closure difficult. LOCV determines scaling factors based on the location and depth of cells in the clock and data paths.
LOCV
Computes delay scaling factor based on stage count and distance. Scaling factor look-up tables provided in the form of an LOCV library. Different scaling factor for data and clock paths. Important parameters Stage Count Distance
Provided an LOCV library, EDI System can include LOCV derating during timing analysis. LOCV is only applied during timing analysis and global OCV is used for optimization. This document provides more details, examples and flow for performing LOCV in EDI System.
Distance Calculation
Distance for a path is the diagonal length of bounding box of the path which covers output pin of clock branch point all pins of cells in clock_path and data_path after clock branch point (includes end point) Bounding box does not include net area
Use Model
Required inputs LOCV Library format Commands and Globals GUI Timing Reports
Required Inputs
Pin location and LOCV library are two main inputs required for LOCV analysis apart from other information Required for Static Timing Analysis (STA). Placement information or reading a SPEF file is a must in order to get pin locations for LOCV analysis.
Stage Count: Integer, increasing order. Row always represents Stage count Distance: Floating (in Micro Meters), increasing order. Columns always represent distance. Cell section of table can be used to specify independent LOCV derate tables for different cells. Cell section allows wildcards. In case different tables assigned to same cells (conflict due to wild card usage or other reasons), more specific cell name takes precedence over others Example; high priority order of cell names invx1, invx*, in*, * Voltage section of table helps to specify different LOCV tables for specific cell or all cells in library for different power domains.
using
If not specified, core and chip sizes will be calculated from SPEF User specified core and chip sizes will have higher priority than sizes derived from SPEF or Placement If no SPEF coordinate or Placement information is available then: If locv_chip_size is specified but locv_core_size is not, locv_core_size will be equal to the user locv_chip_size value. If locv_core_size is specified but locv_chip_size is not, then locv will be switched off with an error message. If both locv_core_size and locv_chip_size are not specified, then locv will be switched off with an error message.
locv_inter_clock_use_worst_derate [true/false] When this global set to true, chip size is used as distance and stage count is considered as zero for cross clock domain paths. By default (false), cross clock domain paths will not be treated differently.
locv_stage_count_with_IO [true/false] When this global is set to false, IO pads are not counted in the stage count By default (true), IO pads also counted in the stage count.
report_timing_format {... locv_derate} New optional column added to report_timing for reporting locv_derate. This column can be enabled through report_timing_format global
GUI update
Design Import GUI Form updated with LOCV library option This option is mapped to rda_Input(ui_locvlib) variable
Timing Reports
report_timing command has the following new options to support LOCV -retime locv -derate_summary -format {... locv_derate} report_timing retime locv enables LOCV analysis and reports LOCV derated delays. Following report_timing options are not supported currently -unique_pins -path_type end|summary -unconstrained -delay_limit
Example: report_timing -derate_summary Along with above retime locv report, -derate_summary prints following table
Known Limitations
LOCV is only supported for STA reporting. LOCV is not supported by Optimization in EDI System. report_timing is the only STA reporting command to support LOCV. saveDesign does not save all LOCV settings Following report_timing options are not supported currently with LOCV -unique_pins -path_type end| summary -unconstrained -delay_limit
LOCV does not work with other retime options i.e. report_timing -retime {locv|ssta|path_slew_propagation}
Appendix
Example Script loadConfig test.conf source floorplanned.enc setAnalysisMode -analysisType onChipVariation -checkType setup \ -asyncChecks async -clockPropagation sdcControl read_locvlib LOCV_lib.lib select_locv_table -setup max -hold min placeDesign optDesign -preCTS clockDesign optDesign -postCTS routeDesign -globalDetail report_timing -from i_2/CK -path_type full_clock -retime locv \ -derate_summary \ -format {instance cell delay arrival locv_derate} Exit
FF Primary Output, where Primary Output has output_delay with respective to generated_clock
Primary Input FF
No clock branch point. Primary Input is not counted. Stage count for Data path for cells is 5 Stage count for clock path is 3
FF Primary Output
There is no capture register nor its clock line, so bounding box cannot be defined. So chip size is used as distance for table look-up. Stage count will be considered to be 4 for data path and for clock path it will be 0
Self-loop paths
There is no separate capture clock path, so bounding box cannot be defined. So chip size is used as distance for table look-up. Data path stage count is 2 Since clock branch point is same register clock-pin, clock path stage count is 0
Primary Input FF, where Primary Input has input_delay with respective to generated_clock
clock path: branch point FF data path: (branch point CLKG) + (PI FF) Bounding box: clock path, data path, PLL, PI, FF
FF Primary Output, where Primary Output has output_delay with respective to generated_clock
clock path: branch point CLKG data path: branch point FF PO Bounding box: Chip size
Commands with -view option read_locvlib -view <view_name> select_locv_table view <view_name> set_guard_band_derate view <view_name> report_timing view <view_name> -retime locv
Example script
loadConfig test.conf source floorplanned.enc setAnalysisMode -analysisType onChipVariation -checkType setup -asyncChecks async \ -clockPropagation sdcControl create_library_set -name slow -timing slow.lib create_library_set -name fast -timing fast.lib create_delay_corner -name dc_min -library_set fast create_delay_corner -name dc_max -library_set slow create_constraint_mode -name mode1 -sdc_files temp.sdc create_analysis_view -name view1 -delay_corner dc_min -constraint_mode mode1 create_analysis_view -name view2 -delay_corner dc_max -constraint_mode mode1 set_analysis_view -setup {view1 view2} -hold { view1 view2} read_locvlib OCV_lib_MAX.locv_lib -view view1 select_locv_table -view view1 -setup max -hold max set_guard_band_derate -late 0.5 -early 0.3 -view view1 COPYRIGHT 2011, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED. PAGE 15
read_locvlib -view view2 OCV_lib_MIN.locv_lib select_locv_table -view view2 -setup min -hold min set_guard_band_derate -late 0.6 -early 0.2 -view view2 placeDesign optDesign -preCTS clockDesign optDesign -postCTS routeDesign -globalDetail report_timing -late -from i_2/CK -path_type full_clock -retime locv derate_summary \ -format {instance cell delay arrival locv_derate} -view view1 report_timing -early -from i_2/CK -path_type full_clock -retime locv derate_summary \ -format {instance cell delay arrival locv_derate} -view view2