Design Compiler J-2014.09 Update Training RTL Synthesis
CONFIDENTIAL INFORMATION The following material is confidential information of Synopsys and is being disclosed to you pursuant to a non-disclosure agreement between you or your employer and Synopsys. The material being disclosed may only be used as permitted under such non-disclosure agreement. 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 products may be offered and purchased only pursuant to an authorized quote and purchase order or a mutually agreed upon written contract.
Design Compiler J-2014.09 QoR Highlights • 15% smaller area compared to H-2013.03 • 20% reduction in leakage power compared to H-2013.03 • 25% runtime improvement compared to I-2013.12 on designs with long runtime (20+ hours)
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
Optimization One-Pass Retiming Improvement Checkpoint Guidance for Formality Verification Improved Area Optimization of Gate-Level Netlist Multibit Mapping Improvements Changes to Shift Register Identification Register Replication Enhancements Manual Control of MUX Mapping
One-Pass Retiming Improvement • Automatically detects the number of pipeline stages and adjusts the timing constraints before retiming • Produces better QoR • Beneficial for designs with a large number of pipeline stages create_clock period 1.0 clk set_optimize_registers true compile_ultra scan –
–
Before Retiming
After Retiming
Delay goal 4.0
clk 1.0
I-2013.12-SP4
Checkpoint Guidance For Formality Verification • Enables higher completion rate in one-pass retiming • Eliminates the manual two-pass verification process with placement-aware multibit mapping • Creates an intermediate netlist and writes the guide_checkpoint guidance command to the .svf file when – Retiming a design using the set_optimize_registers command before running the compile_ultra command – Performing placement-aware multibit mapping of replicated registers, using the create_register_bank command
• Works with Formality I-2013.12-SP4 and later
I-2013.12-SP2
Improved Area Optimization Of Gate-Level Netlist • The optimize_netlist -area command was added in Design Compiler in I-2013.12 to improve the area of new and legacy netlists • This flow enhancement improves area by 10% compared to the H-2013.03 release • Run this command after compile_ultra : compile_ultra optimize_netlist -area
• The optimize_netlist command is included in the I-2013.12-SP2 Design Compiler Reference Methodology
I-2013.12-SP2
Improved Area Optimization Of Gate-Level Netlist: Reference Methodology Flow Library setup Read RTL Apply constraints Apply power settings Tcl or DEF
Optional Floorplan
compile_ultra
scan
–
gate_clock
–
insert_dft compile_ultra
incremental -scan
–
optimize_netlist -area Write design and reports (.ddc, Milkyway, Verilog) To next reference methodology
I-2013.12-SP2
Multibit Mapping Improvements set_multibit_options -mode timing_only • Multibit register inference in compile_ultra now supports a new timing_only mode set_multibit_options [-mode non_timing_driven ;# default ;# maps to multibit register whenever possible
| timing_driven ;# maps to multibit register only when it does not ;# hurt timing or area QoR
| timing_only ] ;# maps to multibit register only when it does not ;# hurt timing QoR even if area QoR is adversely ;# affected
I-2013.12-SP1
Multibit Mapping Improvements Additional Scan Scan Register Support Support • Multibit register inference in compile_ultra now supports multibit scan registers with internal scan chains and a and a dedicated or gated scan output 1-bit register
New
(SDFF_SO)
2-bit register
2-bit register
(SDFF2_SO)
Multibit Mapping Improvements Scan Cell Library Modeling Requirements • Both single bit and multibit versions of scan registers must be present in the same .lib file • This type of multibit register is marked as “blackbox “blackbox”” – Recommended: Specify the user_function_class attribute for sizing optimization optimization • Compile the .lib using Library Compiler I-2013.12 I- 2013.12 or later versions • See Library Compiler I-2013.12 update training for more information
I-2013.12-SP2
Shift Register Identification Synchronous Shift Registers Not Identified by Default • Synchronous shift register identification is disabled by default to achieve higher multibit cell usage – Preserves multibit mapping throughout the flow
• Enable only under both conditions: – When multibit cells are not used
– When it helps to improve area for your design set_app_var compile_seqmap_identify_shift_registers_with_synchronous_logic true (default is now false)
I-2013.12-SP2
Shift Register Identification Short Shift Registers Not Identified Across Hierarchy • Shift registers are only identified across hierarchical boundaries if they have a length of 3 or more – Reduces excessive scan chain criss-crossing with registered interfaces – Helps improve congestion and scan chain wire lengths – Reduces port punching during scan insertion Shift register identified Shift register not identified (all registers scan-replaced)
I-2013.12-SP1
Manual Register Replication Across Hierarchy • Design Compiler version I-2013.12 can replicate registers and combinational logic on a timing path from or to that register – Limited to logic in the same hierarchy or across one level of hierarchy
• Starting in I-2013.12-SP1, Design Compiler can now replicate registers and combinational logic that are beyond a single level of hierarchy
I-2013.12-SP1
Manual Register Replication Across Hierarchy m1 m1/m2/m3
m1/m2 U2
Original logic U3
A_reg
U1 U4
m1/m2/m3
m1
m1/m2 U1_rep1
A_reg_rep1
A_reg
U1
U2
New logic after using the following command
U3
U4
set_register_replication
num_copies 2 m1/m2/m3/A_reg -include_fanout_logic U1
–
I-2013.12-SP2
map_to_mux Attribute Manual Control for MUX Mapping
Design Compiler Graphical
• New map_to_mux attribute to specify MUX mapping – Set on specific MUX_OP or SELECT_OP instances in GTECH – Does not restrict optimization (no size_only or dont_touch)
– Replaces hdlin_infer_mux with size_only or the //synopsys infer_mux_override directive – In some situations, MUX mapping can help improve congestion
• Use with compile_ultra spg to ensure mapping to library MUX cells –
– Use cross-probing data from the congestion map to help identify the target instances
– Set the map_to_mux attribute on these specific instances before running
compile_ultra -spg – Verify with get_attribute or report_attribute -cell
I-2013.12-SP2
map_to_mux Attribute Example
Design Compiler Graphical
read_verilog test.v link ... report_cell [get_cells block1_0/C572] ;# identify targeted SELECT_OP ... #Cell Reference Library Area Attributes #----------------------------------------------------------------------------#block1_0/C572 *SELECT_OP_32.16_32.1_16 0.000000 s, u #----------------------------------------------------------------------------#Total 1 cells 0.000000 set_attribute [get_cells block1_0/C572] "map_to_mux" true compile_ultra -spg report_reference ;# muxes now present ... #Reference Library Unit Area Count Total Area Attributes #----------------------------------------------------------------------------... #mylib_mux2_b1 mylib 1.001000 16 16.016001 #mylib_mux4_a1 mylib 2.717000 160 434.720001 ...
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
Improved Usability (1 of 2) Enhanced report_resources Multiple-Port Net Fixing Options ILM Obsolescence Multicore Enhancements Infeasible Paths Support New -physical option with report_timing Support for Flat Query Commands
Improved Usability (2 of 2) Cross-Probing from RTL to Gates RTL Browser Enhancements RTL Cross-Probing for Datapath
Enhanced report_resources • Reports datapath leakage that blocks datapath extraction after synthesis • Generates the following HDL messages from analyze_datapath_extraction in report_resources – HDL-120: Datapath leakage blocks extraction – HDL-125: Instantiated DesignWare component cannot be extracted – HDL-132: Mixed sign data types blocks extraction
• Available in text report, HTML report, and RTL crossprobing Datapath Extraction Report Information: The output of subtractor associated with resources 'sub_388 (test.v:388)' is treated as signed signal. (HDL-132)
Multiple-Port Net Fixing Options User Interface • The set_fix_multiple_port_nets command has two new options: – Use the new -exclude_clock_network option to exclude nets belonging to the clock network from multiple-port net fixing – Use the new no_rewire option to disable rewiring attempts before buffering multiple-port and constant-port nets –
– Effective when advanced multiple-port net fixing is enabled
• The compile_advanced_fix_multiple_port_nets variable still controls advanced multiple-port net fixing – Enabled by default in DC Explorer (default: true)
– Disabled by default in Design Compiler topographical and wire load modes (default: false)
H-2013.03
ILM Obsolescence In Design Compiler • Beginning in H-2013.03, log messages warned you that ILMs are in the flow • Block-level message with create_ilm : Information: Use of command 'create_ilm' is not recommended. This command will be obsolete in a future release. (INFO-103)
• Top-level message when using ILM blocks: Information: Use of ILM blocks is not recommended. The use of ILM blocks will be obsolete in a future release. (ABS-259)
ILM Obsolescence No Support for ILMs in J-2014.09 • Design Compiler no longer supports the creation or use of ILMs • IC Compiler no longer supports ILM usage • Ensure that you have successfully migrated to the use of block abstractions in your flow • Work with your AC or Synopsys support center if you face issues when trying block abstractions
J-2014.09
ILM Obsolescence In Design Compiler • Beginning in J-2014.09, error messages are issued when ILMs are used in the flow • Block-level message with create_ilm : Error: Starting with version 2014.09, the create_ilm command is no longer supported. Use the 'create_block_abstraction' command instead. (OBS-012)
• Top-level message when trying to read ILM designs: Error: Reading of ILM designs is no longer supported. Cannot read ILM.ddc. (DDC-35)
I-2013.12-SP2
Multicore Enhancements Overview
• set_host_options max_cores invokes multicore capability in Design Compiler –
– Helps improve the tool runtime
• The license requirement in Design Compiler has changed to one set of licenses for every four cores – In previous releases, one set of licenses were needed for every two cores
• If the number of available cores on the machine is less than the number of cores requested, performance can be impacted
Multicore Enhancements Enhanced set_host_options -max_cores Command • Case 1: Machine with fewer cores
I-2013.12-SP1
– Number of cores on the machine < number of user-specified cores – set_host_options resets the max cores to the maximum number of cores on the machine Warning: You requested 4 cores. However, the host hostname1 only has 2 available cores. The tool will ignore the request and use -max_cores 2. (UIO-230)
• Case 2: Machine with high load
I-2013.12-SP2
– Most of the cores on the machine are already overloaded – set_host_options limits the number of cores based on the machine load Warning: You requested 14 cores. However, load on host hostname2 is 10.150000. Tool will ignore the request and use 6 cores. (UIO-231)
I-2013.12-SP3
Multicore Enhancements Enhanced set_host_options -max_cores Command • Both checks are on by default • To disable the checks: set_app_var disable_multicore_resource_checks true – Setting to true can impact multicore performance
I-2013.12-SP2
Infeasible Paths Support Automatic Detection During Compile • Paths are infeasible when timing cannot be met due to: – Unreasonable input or output delays – Missing timing exceptions (false path and multicycle path)
• Starting in I-2013.12-SP2, Design Compiler – Detects and treats infeasible paths as false paths during synthesis – Optimizes other critical paths in presence of infeasible paths
– Removes tool-derived timing exceptions at the end of compile – The write_sdc command writes out only user-specified timing exceptions
– Supports consistent capability with DC Explorer
• Supporting infeasible paths helps improve synthesis runtime and timing QoR of feasible paths
I-2013.12-SP2
Infeasible Paths Support Impact on Design Timing Constraints and Reports • There maybe differences between the timing numbers reported in the compile log and the post-compile timing, QoR, and constraint reports – Timing numbers reported in the log take the tool-derived infeasible path exceptions into account – Post-compile reports do not account for infeasible path exceptions – Use the new ignore_infeasible_paths option with report_timing , report_qor , and report_constraints to exclude infeasible paths from the reports –
I-2013.12-SP2
Infeasible Paths Support Timing Reports • The report_timing attributes command adds a new “inf ” attribute to the startpoint and endpoint of tool-detected infeasible paths –
Attributes: d - dont_touch u - dont_use mo - map_only so - size_only i - ideal_net or ideal_network inf - infeasible path
New attribute
Point Fanout Cap Trans Incr Path Attributes ------------------------------------------------------------------------------------clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.00 0.00 input external delay 6.00 6.00 f in1 (in) 0.00 0.00 6.00 f inf in1 (net) 2 4.75 0.00 6.00 f u_in1/A_in (unit_0) 0.00 6.00 f startpoint & u_in1/A_in (net) 4.75 0.00 6.00 f endpoints u_in1/U7/INP (INVX0_LVT) 0.00 0.00 6.00 f marked as u_in1/U7/ZN (INVX0_LVT) 0.06 0.03 6.03 r infeasible u_in1/N0 (net) 1 2.12 0.00 6.03 r u_in1/A_out_reg/D (DFFX1_LVT) 0.06 0.00 6.03 r inf data arrival time 6.03
I-2013.12-SP2
Infeasible Paths Support Categorized Timing Reports • Use the new infeasible_paths option of create_qor_snapshot and query_qor_snapshot to capture the paths and add an infeasible path column in the HTML-based report: –
create_qor_snapshot -name snap1 -max_paths 30 -infeasible_paths query_qor_snapshot -name snap1 -infeasible_paths -columns \ {path_group infeasible_paths startpoint endpoint wns zero_path}
I-2013.12-SP1
Support for report_timing -physical Reports Pin Locations and Capacitive Loads • The new physical option of report_timing reports pin locations and capacitive loads for pins and nets –
– Consistent with IC Compiler – Works in Design Compiler topographical and DC Explorer physical flows
I-2013.12-SP1
Support for Flat Query Commands get_flat_cell, get_flat_net, get_flat_pin • Design Compiler supports new flat versions of query commands, similar to IC Compiler: – get_flat_cells – get_flat_nets – get_flat_pins
• The arguments for these commands are: – [-quiet] – [-regexp |-exact] – [-nocase] – [-filter expression] – [patterns | -of_objects objects] – [-all] The of_objects option is supported in Design Compiler only –
Cross-Probing from RTL to Gates Overview • Works with Verilog, VHDL, and SystemVerilog RTL • Helps you analyze inferred cells from RTL source files – Use to find and analyze the implementation and placement of timing-critical or congestion-critical portions of RTL source files
• Helps you find and analyze the placement of instantiated cells (clock gates for example) • Cross-probing from RTL to datapath resource reports can help you to better understand datapath extraction – This analysis can help you to improve the datapath coding style for better extraction
Cross-Probing from RTL to Gates User Interface 1. Choose Open RTL Files on the AnalyzeRTL menu
2. The Open RTL Files dialog box appears
The current directory
The design RTL files mentioned in the run script
Cross-Probing from RTL to Gates User Interface 3. Open the RTL file to be cross-probed
The RTL file appears in the RTL browser
The lines that can be cross-probed are highlighted in green
Cross-Probing from RTL to Gates User Interface 4. Follow these steps to cross-probe from RTL to gates: Step 1: Select a line in the RTL file, and then right-click to open the pop-up menu
Step 2: Choose Select Objects of Selected Line(s)
Step 3: The Selection List dialog box appears showing the cells inferred from the selected line Note: Multiple line cross-probing is not supported
Cross-Probing from RTL to Gates Inferred Cells Selected in Schematic and Layout Views Step 1: Select a line in the RTL file, and then right-click to open the pop-up menu
Step 2: Choose Select Objects of Selected Line(s)
Step 3: The Inferred cells are selected and colored white in any schematic and layout views in which they appear
Cross-probing from RTL to gates opens only the Selection List dialog box
Cross-Probing from RTL to Gates RTL That Can Be Cross-Probed • Only RTL lines that have netlist correspondence can be cross-probed
Select Objects of Selected Line(s) is dimmed for lines that cannot be cross-probed
RTL Browser Enhancements First Column Grouping The first column shows the file names, line numbers, and cell names
The default view has the first RTL file name in expanded format
The second column shows the number of cells inferred by the line
RTL Browser Enhancements Multi-Source Cell Support • A cell might be associated with two RTL files • The RTL browser displays the other RTL files associated with that cell A “ +” symbol in the cell name list indicates multiple sources for the corresponding cell
RTL Browser Enhancements Multi-Source Cell Support Click the “+” symbol to view the other source file names
This line shows the second RTL file associated with cell m2/O_reg
I-2013.12-SP1
RTL Cross-Probing for Datapath Generating a Datapath Extraction Report • Run analyze_datapath_extraction from GUI menu – Use either AnalyzeRTL > Analyze Datapath Extraction – or Design > Analyze Datapath Extraction
• Cross-probe from datapath extraction report to RTL – Clicking a file name in datapath extraction report opens a new RTL browser and highlights the corresponding line number
Click the RTL file Cross-probed line
I-2013.12-SP3
RTL Cross-Probing for Datapath Generating a Datapath Resource Report • To generate a design resources report from the RTL browser: – Select a cell, right-click and choose Report Resources of Selected – report_resources runs for the design that contains this cell
I-2013.12-SP2
RTL Cross-Probing for Datapath Cross-Probing from RTL to Datapath Resources Report • Find the datapath report for the operators in the selected line in the RTL browser 3
2
The line number is displayed, click the Find button
Choose Search in Resource Report
4 1
Select a line and right-click
Observe cross-probed report
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
Correlation to Layout Zroute-Based Global Buffering Zroute-Based Congestion-Driven Placement Milkyway Schema V8.1 Update Analyzing RTL Congestion Congestion Report Enhancements Faster Execution of start_icc_dp Command
Zroute-Based Global Buffering Improves Congestion in Narrow Channels
Design Compiler Graphical
• Congestion-aware global buffering reduces congestion along narrow channels across macros – Based on Zroute estimation
• Use the new -global_route true option of the set_ahfs_options command to enable – The default is false in Design Compiler
– report_ahfs_options will show status “Global Route: ON”
• Enable for macro-intensive designs with narrow channels – Enable in both Design Compiler and IC Compiler for best results
• Might impact QoR and runtime – Use only when needed to improve congestion in narrow channels
Congestion-Driven Placement Zroute-Based for Improved Correlation
Design Compiler Graphical
• Improves congestion estimation and correlation with IC Compiler on highly congested designs – Zroute-based, consistent with IC Compiler – Uses the same congestion thresholds as IC Compiler
• Set the new placer_enable_enhanced_router variable to true to enable – The default is false in Design Compiler – The default is true in IC Compiler
• Might impact QoR and runtime – Use only when needed for highly congested designs
Milkyway Schema V8.1 Update Two Release Interoperability Model • Schema version has changed to v8.1 in J-2014.09 • Two release schema interoperability model: – No schema change in I-2013.12 (default schema is v7) – Schema change in J-2014.09 (default schema is v8.1)
• Full backward compatibility across previous releases – Older schema versions can always be read by a newer release
– Implicit conversion supported, explicit conversion recommended
• Forward compatibility for one release, then on by default: – Design Compiler I-2013.12-SP4, SP5 supports Schema v8.1 – Design Compiler J-2014.09 generated Milkyway can be read by Design Compiler I-2013.12-SP4 and later, but not I-2013.12-SP3
– Design Compiler J-2014.09 has schema v8.1 on by default
Milkyway Schema V8.1 Update Details • Why the change? – Emerging node designs need more data types per layer and a routing layer index above 187
– All routes at 10nm and below need native coloring support
• Milkyway v8.1 Schema supports 2 layer modes – Default mode: Milkyway database and technology file support up to 255 layers and 4096 data types per layer – Extended mode: Milkyway database and technology file support up to 4095 layers and 4096 data types per layer – Use the extend_mw_layers command to enable
• The change is transparent in default layer mode • See IC Compiler J-2014.09 update training for further details on Schema v8.1
I-2013.12-SP2
Analyzing RTL Congestion Pre-Synthesis Congestion Analysis
Design Compiler Graphical
• Predicts RTL congestion before synthesis – Provides early feedback to influence RTL decisions for congestion – Allows you to try alternatives in RTL to alleviate congestion
• Provides a report to identify potential congestion sources in the RTL such as: – Large MUX (MUX_OP)
– Large selector (SELECT_OP) – Large data switch network – Large ROM – Parallel high-fanout nets
• Identifies RTL source files and includes line numbers
I-2013.12-SP2
Analyzing RTL Congestion User Interface
Design Compiler Graphical
• New analyze_rtl_congestion command does not require physical data • Required input – Link libraries – Target libraries (for any instantiated gates) – RTL
• Available in Design Compiler and DC Explorer • Still need post-synthesis report_congestion to identify floorplan congestion
I-2013.12-SP2
Analyzing RTL Congestion Example
Design Compiler Graphical
dc_shell> analyze_rtl_congestion **************************************** Report : RTL congestion Design : my_design Version: I-2013.12-SP2 Date : Thu Feb 27 03:54:00 2014 **************************************** ######################################## Large MUX details ######################################## -----------------------------------------------------------------------Structure Cell name Size (width) Line No RTL File ----------------------------------------------------------------------- MUX_OP C10567 16 x 1 (163) 83 /u/9000560869.v MUX_OP C10566 16 x 1 (163) 82 /u/9000560869.v ...
I-2013.12-SP1
report_congestion Now Reports Cells in Congested Regions
Design Compiler Graphical
• New option for report_congestion provides a text-based report of cells in congested regions:
-list_cells_over_grc_violation grc_violation_threshold – The grc_violation_threshold is an integer value – Cells are listed if they have a Max number at or above the threshold
• Cells are presorted to list designs with the most congested cells first • Does not require interactive GUI session • Also works in DC Explorer • Cross-probing to RTL source not supported
I-2013.12-SP1
report_congestion Report Example
Design Compiler Graphical
dc_shell-topo> report_congestion -list_cells_over_grc_violation 30 **************************************** Report : congestion Design : my_design Version: I-2013.12-SP1 Date : Wed Apr 23 15:37:28 2014 **************************************** Both Dirs: Overflow = 590305 Max = 33 (1 GRCs) GRCs = 85938 (67.13%) H routing: Overflow = 275009 Max = 29 (1 GRCs) GRCs = 43141 (33.70%) V routing: Overflow = 315296 Max = 33 (1 GRCs) GRCs = 42797 (33.43%) Cells in Congested Regions: Design Cell Reference Congestion -------------------------------------------------------------------------- my_subdesign U2359 MYLIB_AO22X1 33 my_subdesign U7117 MYLIB_AOI22X1 31 my_subdesign U12115 MYLIB_INVX4 32 my_subdesign U12002 MYLIB_BUFFX8 30
I-2013.12-SP2
Floorplan Exploration Faster Execution of start_icc_dp command
Design Compiler Graphical
• The start_icc_dp command now executes faster with a new default location for storing temporary files – Previous releases stored in current working directory – New default stores at $TMPDIR/ dcg_unique_string – The $TMPDIR is the TMPDIR UNIX environment variable – If TMPDIR UNIX environment variable is not defined, Design Compiler Graphical stores the files in the /tmp directory
• You can override the default behavior by using the -work_dir option with the set_icc_dp_options command
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
Improved Test Support Physical Scan Cell Repartitioning During Incremental Compile New SCANDEF Flow
Physical Scan Cell Repartitioning During Incremental Compile
Design Compiler Graphical
• Starting with J-2014.09: – Design Compiler now also supports physical scan cell repartitioning in the binary flow for both DFTMAX compressed and standard scan designs
• Provides improved results and QoR after incremental compile in terms of cell count, congestion, and timing • Requires: – DFT Compiler license for standard scan designs – DFTMAX license for compressed scan designs – Design Compiler Graphical license
Physical Scan Cell Repartitioning During Incremental Compile: User Interface
Design Compiler Graphical
• Starting with J-2014.09, you must specify the -scan and -spg options in the incremental compile command to perform reordering: compile_ultra
incremental
–
scan -spg
–
• Physical scan cell repartitioning is disabled by default • Use the set_optimize_dft_options command to enable and configure repartitioning set_optimize_dft_options [-repartitioning_method none | single_directional | multi_directional | adaptive ] ;# default is none [-single_dir_option vertical | horizontal ] ;# default is horizontal
Physical Scan Cell Repartitioning During Incremental Compile: Behavior
Design Compiler Graphical
• Behavior of physical optimization features under different conditions Reordering
Repartitioning
ON
OFF
set_optimize_dft_options repartitioning_method single_directional | multi_directional | adaptive
ON
ON
set test_enable_scan_reordering_in_compile_ incremental false (default: true)
OFF
OFF
Conditions
Default
–
Physical Scan Cell Repartitioning During Incremental Compile: Example 1
Design Compiler Graphical
• Running in a single session: # Perform initial compile with compile_ultra scan -spg
spg option
–
–
# Insert DFT insert_dft # Perform incremental compile with re-ordering and multi-directional # re-partitioning set_optimize_dft_options repartitioning_method multi_directional compile_ultra incremental scan -spg –
–
–
Physical Scan Cell Repartitioning During Incremental Compile: Example 2
Design Compiler Graphical
• Running in multiple sessions: ### Session 1 ### # Perform initial compile with compile_ultra scan -spg
spg option
–
–
# Insert DFT insert_dft # Write the design write_file format ddc –
hierarchy
–
output ./design.ddc
–
### Session 2 ### # Read the design read_ddc ./design.ddc …
# Perform incremental compile with re-ordering and multi-directional # re-partitioning set_optimize_dft_options repartitioning_method multi_directional compile_ultra incremental scan -spg –
–
–
New SCANDEF Flow Overview • Starting in J-2014.09: – Design Compiler uses a new SCANDEF writer – New SCANDEF writer is enabled by default in J-2014.09
• Benefits: – Solution is more solid and robust
• Requires: – DFT Compiler license (no change from previous release)
• Limitations: – Hierarchical SCANDEF still uses the old SCANDEF writer
New SCANDEF Flow Supported Features • The following DFT features are supported: – Standard scan and compressed scan – Multiple test-mode scan – Internal pins flow – Memories with test models – Multivoltage
– PLL flows – Core wrapping – Shift registers – Multibit registers
New SCANDEF Flow Single Session Example # Perform initial compile compile_ultra scan –
# Perform Insert DFT insert_dft # Write SCANDEF before writing .ddc file write_scan_def output before_inc.def # Always check the SCANDEF file check_scan_def # Write the design write_file format ddc hierarchy output ./before_inc.ddc –
–
–
–
# Perform incremental compile compile_ultra incremental scan –
–
# Write SCANDEF before writing .ddc file write_scan_def output after_inc.def # Always check the SCANDEF file check_scan_def # Write the design write_file format ddc hierarchy output ./after_inc.ddc –
–
–
–
New SCANDEF Flow Multiple Session Example ### Session 1 ### # Perform initial compile compile_ultra scan # Perform Insert DFT insert_dft # Write SCANDEF before writing .ddc file write_scan_def output before_inc.def # Always check the SCANDEF file check_scan_def # Write the design write_file format ddc hierarchy output ./before_inc.ddc –
–
–
–
–
### Session 2 ### # Read the design read_ddc ./before_inc.ddc # Perform incremental compile compile_ultra incremental scan # Write SCANDEF before writing .ddc file write_scan_def output after_inc.def # Always check the SCANDEF file check_scan_def # Write the design write_file format ddc hierarchy output ./after_inc.ddc –
–
–
–
–
–
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
Improved Timing Support Launch Clock Behavior of Transparent Latches Support for –rise_exclude and –fall_exclude options
I-2013.12-SP4
Launch Clock Behavior Of Transparent Latches • The behavior of the variable
timing_early_launch_at_borrowing_latches has been changed for consistency with PrimeTime • This variable became public in the Design Compiler I-2013.12-SP4 release • This variable is true by default and removes clock latency pessimism for paths that begin at the data pin of a transparent latch
I-2013.12-SP4
Launch Clock Behavior Of Transparent Latches: Time Borrowing Example F1 D
L1 Q
CP
Big delay
D
Q GN
CLK
F1-L1 path borrowed timing from L1-F2 Borrowing path launched from L1/D : Blue Arrow
F2 D
Q
CP
I-2013.12-SP4
Launch Clock Behavior Of Transparent Latches: Solution • The F1-L1 path needs to time borrow
F1
Big D Q delay
• The setup time for L1/GN uses the early launch clock edge
CP CLK
• The L1-F2 path needs to use the early launch clock edge to calculate timing correctly if time borrowing has occurred
CLK
*Green edge : early launch
F1-L1
*Red edge : late launch *TB : amount of time borrow
L1-F2
TB
L1
F2
D Q
D Q
GN
CP
I-2013.12-SP4
Launch Clock Behavior Of Transparent Latches: Usage Recommendation timing_early_launch_ at_borrowing_latches
CRPR
Behavior
Note
True
False
Use early skew launch
False
False
Use late skew launch (pessimistic pessimistic))
NOT recommended
True
True
Use early skew launch CRPR applied (can be optimistic optimistic))
Check for nonzero CRPR value
False
True
Use late skew launch CRPR applied
Note: CRPR = Clock Reconvergence Pessimism Removal
I-2013.12-SP4
–rise_exclude –rise_exclude and – and –fall_exclude fall_exclude New Options for report_timing and get_timing_paths • The new exclude option for the report_timing and get_timing_paths commands was added in Design Compiler I-2013.12 –
– Prevents reporting of all data paths from, through, or to the named pins, ports, nets, and cell instances
• The new rise_exclude and fall_exclude options are added in Design Compiler I-2013.12-SP4 –
–
– These options behave the same as -exclude, but only apply to rising or falling paths at the named pins, ports, nets, and cell instances
• These options do not apply to clock pins, clock paths, or time borrowing latch paths
I-2013.12-SP4
–rise_exclude –rise_exclude and – and –fall_exclude fall_exclude Usage Example report_timing -from ff3/CK -to latch3/D -rise_exclude inv6/Z
report_timing -from ff3/CK -to latch3/D -fall_exclude inv6/Z
J-2014.09 RTL Synthesis Optimization Improved Usability Correlation to Layout Improved Test Support Improved Timing Support DC Explorer
DC Explorer AnalyzeRTL Multicycle Path Histogram Support for UPF Flow in DC Explorer
I-2013.12-SP3
AnalyzeRTL Multicycle Path Histogram In DC Explorer
Multicycle Paths
• Starting in I-2013.12-SP3, you can create separate path slack and logic-level histograms for multicycle paths • A new Clock Cycles column in the data table shows the number of clock cycles for a timing path
I-2013.12-SP2
UPF Flow in DC Explorer Create Design Data and Explore Results • UPF in DC Explorer is different than UPF in Design Compiler
UPF Support UPF (incomplete)
RTL (incomplete)
• DC Explorer: – Works with minimal UPF – Automates insertion of power management cells – Allows exploration of power plan
DC Explorer High quality design data, including UPF
– Outputs a complete RTL UPF for Design Compiler
Explore the impact of low power intent
I-2013.12-SP2
UPF Flow in DC Explorer Automated Approach to Handle UPF • Inputs – Minimal UPF input needed to start the exploration – Power domain definitions – Power state table (PSTs)
– RTL: Pre-instantiated power management cells will be treated as standard cells
• Outputs – Gate-level netlist with power management cells – Full UPF with power management cell strategies
– Early floorplanning for Design Compiler topographical and IC Compiler implementation
I-2013.12-SP2
UPF Flow in DC Explorer Automated Approach to Handle UPF • Isolation insertion: on all outputs of shutdown domains – Example: Output ports of PD1 and PD2
• Level-shifter insertion: on power domain boundaries with a voltage difference in any state – Example: Between PD1 and PD2 (voltage difference in S1, S3) – Example: Between PD1 and PD3 (voltage difference in S1)
• Always-on buffers: on all feedthrough paths that cross domain boundaries – Example: on a net from PD1 to PD3 that goes through PD2
• No support for retention registers yet
Power State Table (PST) PD1
PD2
PD3
S1
1.2V
0.8V
0.8V
S2
off
off
0.8V
S3
1.2V
0.8V
1.2V
I-2013.12-SP2
UPF Flow in DC Explorer Power Exploration Summary Report Power domain
# Instances
Area
Leakage
PD1
32465
942.3
1100
PD2
5678
59.5
370
…… * Generated by report_mv_qor
• Top-level table with basic information • HTML links to get detailed information on a specific power domain • Overhead from power management cells – level shifters and isolation cells
Power-domain centric view of area and leakage
I-2013.12-SP2
UPF Flow in DC Explorer Power Exploration Detailed Report Domain: PD2
# Instances
Area
Leakage
Level shifters
70
4.5
45
Isolation cells
60
7.0
25
Always-on cells
50
3.5
20
PM cells total
180
15.0
90
Macros
0
0
0
I/O Pads
0
0
0
Standard cells
5488
15.0
280
Total
5678
59.5
370
* Generated by report_mv_qor
Power domain details provide area and leakage requirements to meet multivoltage design goals
Thank You
APPENDIX Command and Variable Changes
New, Changed, and Removed Commands and Variables in J-2014.09 Compared to I-2013.12
LEGEND Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
New Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
analyze_library analyze_rtl_congestion check_upf get_defined_commands get_shift_register_chains gui_create_task_item gui_create_tk_palette_type gui_report_task remove_scan_skew_group report_ieee_1500_configuration report_scaling_lib_group report_scan_skew_group reset_ieee_1500_configuration set_ieee_1500_configuration set_scan_skew_group set_upf_query_options
Removed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
change_macro_view change_selection_no_core change_selection_too_many_objects compare_interface_timing create_ilm get_ilm_objects get_ilms print_proc_new_vars report_ilm set_clock_skew set_delay_calculation write_interface_timing
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
all_registers: Removed -inverted_output option analyze_dw_power: Added -sort_ascending option Removed -sort_asending option change_names: Added -skip_inactive_constraints option create_command_group: Added -info option create_net_shape: Removed -quiet option create_qor_snapshot: Added -nosplit option create_qtm_delay_arc: Added -max_insertion_delay option Added -min_insertion_delay option create_qtm_drive_type: Removed -lib_cell_input_transition option create_route_guide: Removed -switch_preferred_direction option create_user_shape: Removed -quiet option
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
create_via: Removed -no_snap option define_dft_partition: Added -extest_cells option define_name_maps: Added -design_name option Removed -design option define_test_mode: Added -target option Added -transparent_mode_of option Removed -inherit option find_objects: Added -exact option Added model argument to object_type option get_cells: Added -at option Added -intersect option Added -touching option Added -within option get_timing_paths: Added -fall_exclude option Added -rise_exclude option –
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
get_tracks: Removed -nocase option Removed -regexp option gui_set_current_task: Added -task option Removed -name option read_file: Removed -ilm option read_lib: Added -imported_jcr option remove_core_area: Removed -verbose option remove_die_area: Added -verbose option remove_placement_blockage: Added -verbose option remove_route_guide: Added -verbose option remove_target_library_subset: Removed -clock_path option remove_terminal: Added -verbose option
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
report_annotated_delay: Added -min option report_clock_gating: Added -enable_conditions option report_congestion: Added -list_cells_over_grc_violation option report_constraint: Added -ignore_infeasible_paths option Added -min_period option report_datapath_gating: Added -gated option report_lib: Added -jcr option report_power_domain: Added -hierarchy option Added object_list2 argument report_qor: Added -ignore_infeasible_paths option report_resources: Added design_list argument
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
report_timing: Added -fall_exclude option Added -ignore_infeasible_paths option Added -rise_exclude option save_qtm_model: Added -format option set_ahfs_options: Added -global_route option set_always_on_strategy: Removed -bias_type option set_annotated_delay: Added -dont_touch option set_check_library_options: Added -char_integrity option Added -significant_digits option set_dft_configuration: Added -ieee_1500 option Removed -lbist option Removed -logicbist option set_fix_multiple_port_nets: Added -exclude_clock_network option Added -no_rewire option
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
set_route_zrt_common_options: Added -extra_via_off_grid_cost_multiplier_by_layer_ name option Added -ignore_var_spacing_to_blockage option Added -ignore_var_spacing_to_pg option Added -ignore_var_spacing_to_shield option Added -min_edge_offset_for_macro_pin_connection_by_ layer_name option Added -separate_tie_off_from_secondary_pg option Added -via_on_grid_by_layer_name option Added -wire_on_grid_by_layer_name option set_scan_compression_configuration: Added -shared_codec_controls option set_scan_path: Added -init_data option Added -opcode option set_scan_replacement: Removed -aux_clock_lssd option set_streaming_compression_configuration: Added -exclude_clocks option set_target_library_subset: Removed -clock_path option
Changed Commands in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
set_test_point_configuration: Removed -exclude_elements option write_test_protocol: Added -disable_codecs option
New Variables in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler
compile_seqmap_honor_sync_set_reset (Default is false) disable_multicore_resource_checks (Default is false) dont_bind_unused_pins_to_logic_constant (Default is false) hdlin_report_sequential_pruning (Default is false) link_portname_allow_period_to_match_underscore (Default is false) mv_make_primary_supply_available_for_always_on (Default is true)
DesignWare minPower placer_channel_detect_mode (Default is false) Tcl built-in
placer_enable_enhanced_router (Default is false) route_guide_naming_style (Default is %s_%d ) sh_help_shows_group_overview (Default is true) test_dedicated_clock_chain_clock (Default is false) test_fast_feedthrough_analysis (Default is false) test_sync_occ_1x_period (Default is 20)
New Variables in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
timing_consider_internal_startpoints (Default is true) timing_dont_traverse_pg_net (Default is true) timing_early_launch_at_borrowing_latches (Default is true) timing_enable_slack_distribution (Default is false) timing_use_ceff_for_drc (Default is false) upf_allow_refer_before_define (Default is false) upf_block_partition (Default is "") upf_iso_filter_elements_with_applies_to (Default is ENABLE) upf_isols_allow_instances_in_elements (Default is true) upf_suppress_etm_model_checking (Default is false)
Changed Variables in J-2014.09 Compared to I-2013.12 Design Compiler Power Compiler Timing related DFT Compiler DesignWare minPower Tcl built-in
compile_seqmap_identify_shift_registers_with_synchronous_ logic: Default changed to false from true hdlin_preserve_sequential: Default changed to none from false hdlin_while_loop_iterations: Default changed to 4096 from 1024