Fusion Compiler App Options ← Home
Educational Reference Only. This content is an independent study reference. App option names, descriptions and examples are provided for learning purposes. Always verify against official Cadence / Synopsys documentation. This site is not affiliated with or endorsed by Cadence Design Systems or Synopsys Inc.
13
FUSION COMPILER APP OPTIONS

Logic Restructuring and Hierarchical Cells

S.NoApp OptionDescriptionExample
1opt.common.advanced_logic_res tructuring_modeControls the advanced logic restructuring mode used during optimization. Shown being changed to timing between compile_fusion stages to influence optimization behaviorset_app_option -name opt.common.advanced_logic_restructuring_mode -value timing
2shell.common.check_error_listSets the message IDs to query when using the check_error command. After setting The option, the check_error command can report whether any of the specified message IDs were issued during the previous command stepfc_shell> set_app_options -name shell.common.check_error_list -value {DES-001 CMD-005}
3compile.optimization.enable_hier archical_inverterControls whether boundary optimization can move inverters across hierarchical boundaries (phase inversion). Set to false to prevent boundary optimization from moving inverters across hierarchical boundaries. Only effective when boundary optimization is enabledset_app_options -name compile.optimization.enable_hierarchical_inverter -value true
4time.snapshot_storage_locationSets the directory where QoR snapshots created by create_qor_snapshot are stored. Used by remove_qor_snapshot to locate snapshots
5seqmap.bind_scan_pinsUsed to hold the scan enable pin inactive when the tool maps sequential cells directly to scan registers in the library, where scan pins such as scan enable and scan out are unconnectedset_app_options -name seqmap.bind_scan_pins -value true
6ccd.enable_top_wns_optimizatio nEnables optimization of the worst 300 timing paths during targeted CCD optimizationfc_shell> set_app_options -name ccd.enable_top_wns_optimization -value true
7hdlin.elaborate.ff_infer_sync_set _resetEnables the tool to infer synchronous reset or preset flip-flops, or preserve the synchronous reset or preset logic close to the flip-flop, when the RTL does not contain the //synopsys sync_set_reset directive. Set to true to enable inferenceset_app_options -name hdlin.elaborate.ff_infer_sync_set_reset -value true
8ccd.targeted_ccd_end_points_fil eSpecifies a file containing the timing endpoints to target for targeted concurrent clock and data (CCD) optimization. Only the specified endpoints are optimizedfc_shell> set_app_options -name ccd.targeted_ccd_end_points_file -value endpoint_targets.tcl
9compile.seqmap.identify_shift_re gistersControls whether the tool automatically identifies shift registers in the design during compile. When enabled, compile_fusion -to initial_opto maps the first register to a scan cell and the other cells to nonscan cells, improving sequential design area and reducing congestion. Set to false to disable this capabilityset_app_options -name compile.seqmap.identify_shift_registers -value true
10ccd.targeted_ccd_path_groupsSpecifies path groups for which higher priority WNS optimization is applied during concurrent clock and data optimizationfc_shell> set_app_options -name ccd.targeted_ccd_path_groups -value {PG1 PG2}
11compile.seqmap.enable_register _mergingControls whether the tool performs register merging during optimization. By default the tool performs register merging. Set to false to disable register mergingset_app_options -name compile.seqmap.enable_register_merging -value true
12ccd.dps.use_caseCustomizes the power analysis performed during dynamic power shaping optimization
13opt.common.enable_multibit_co mbinational_cellsEnables combinational multibit mapping during the initial_opto and final_opto stages. Combinational multibit cells are library cells where a single cell implements multiple logic functions; the tool banks single-bit combinational cells to multibit combinational cells and debanks multibit combinational cells as needed to improve QoRset_app_options -name opt.common.enable_multibit_combinational_cells -value true
14compile.flow.enable_dpsEnables dynamic power shaping optimization to reduce dynamic voltage drop across a block during compile_fusion. Performed during the final_opto stagefc_shell> set_app_options -name compile.flow.enable_dps -value true
15compile.flow.enable_ccdControls whether the tool performs concurrent clock and data optimization during the compile_fusion command. Set to false to disable it. During CCD, the tool uses an ideal clock tree, updates clock latencies and balance points for all active scenarios, and adjusts register latencies within delayed and advanced latency settings for the most critical sequential elementsset_app_options -name compile.flow.enable_ccd -value true
16ccd.optimize_boundary_timingEnables or disables concurrent clock and data optimization for boundary timing paths (I/O paths and latencies for boundary registers)fc_shell> set_app_options ccd.optimize_boundary_timing true
17ccd.max_postponeSpecifies a maximum delayed latency for useful skew computationset_app_options ccd.max_postpone 50
18ccd.skip_path_groupsSpecifies one or more path groups for which useful skew computation is omitted during concurrent clock and data optimizationfc_shell> set_app_options ccd.skip_path_groups path_group_list
19compile.flow.high_effort_timingEnables high-effort timing mode for compile to achieve better timing QoR. The tool performs multiple passes of placement and optimization to obtain optimal timing resultsset_app_options -name compile.flow.high_effort_timing -value 1
20ccd.max_preponeSets the maximum advanced latency (in ps) for useful skew computation in concurrent clock and data optimizationfc_shell> set_app_options ccd.max_prepone 100
21compile.flow.enhanced_delay_op to_for_pgEnables enhanced delay optimization techniques that improve total negative slack. Has better runtime and better area and power QoR compared to the extensive use of path groups to improve total negative slackset_app_options -name compile.flow.enhanced_delay_opto_for_pg -value 1
22compile.flow.enable_multibitEnables multibit component mapping during compile. Required to view multibit components in the WordView GUIfc_shell> set_app_options -name compile.flow.enable_multibit -value true
23compile.flow.high_effort_areaEnables high-effort area mode for designs that need further reduction of area. The tool performs multiple passes of placement and optimization to obtain optimal area resultsset_app_options -name compile.flow.high_effort_area -value true
24compile.seqmap.prefer_registers _with_multibit_equivalentDuring the initial_mapping stage, prioritizes use of sequential library cells that have functionally equivalent multibit library cells, to improve the banking ratio when many cells are not banked due to lack of multibit cells
25shell.synthesis.logic_level_report _summary_formatSets the fields displayed in the summary section of the logic-level report generated by report_logic_levels. You can specify up to eight fieldsset_app_options -name shell.synthesis.logic_level_report_summary_format -value "group num_paths max_level min_level avg_level"
26multibit.naming.element_separat or_styleControls the separator character used between bit indices for noncontiguous bits of a bused register in multibit optimization
27shell.synthesis.logic_level_report _group_formatSets the fields displayed in the path group section of the logic-level report generated by report_logic_levels. You can specify up to ten fieldsset_app_options -name shell.synthesis.logic_level_report_group_format -value "slack ll ll_buf_inv clockcycles startclk endclk"
28multibit.naming.range_separator _styleControls the separator character used between bit indices when naming contiguous bits of a bused register in multibit optimization
29place.coarse.handle_early_dataAllows placement to continue when a region is overutilized due to being too small or covered by blockages. Issues warning messages when utilization exceeds thresholdsset_app_options -name place.coarse.handle_early_data -value true
30multibit.naming.compact_hierarc hical_nameWhen set to true, suppresses repetition of common hierarchical prefixes when forming multibit register names from hierarchical single-bit register names
31place.coarse.utilization_warning_ thresholdChanges the utilization warning threshold used when place.coarse.handle_early_data is enabled. The tool prints a warning message if utilization exceeds this threshold
32multibit.naming.name_prefixSpecifies a prefix string for multibit register names created during multibit optimization
33place.coarse.icg_auto_boundEnables automatic generation of group bounds for integrated clock gating (ICG) cells and the sequential cells they drive. Bounds are created at the beginning of placement and removed at the endfc_shell> set_app_options -name place.coarse.icg_auto_bound -value true
34multibit.naming.multiple_name_s eparator_styleControls the separator character used when concatenating single-bit register names to form a multibit register name
35place.coarse.icg_auto_bound_fa nout_limitLimits the maximum number of fanouts that can be included in an automatic ICG group boundfc_shell> set_app_options -name place.coarse.icg_auto_bound_fanout_limit -value 30
36compile.flow.enable_multibit_rew iringEnables multibit register rewiring for the compile_fusion commandset_app_options -name compile.flow.enable_multibit_rewiring -value true
37place.coarse.auto_density_contr olControls automatic density scheduling during placement. When enabled (default -enhanced), the tool follows a preset schedule during the flow. Disabling it or manually setting place.coarse.max_density to 0 causes uniform spreading of cells in the core area
38multibit.common.exclude_size_o nly_cellsIncludes cells with user-specified size_only settings during physical banking and debanking when set to falseset_app_options -name multibit.common.exclude_size_only_cells -value true
39place.coarse.max_densitySpecifies a maximum density that controls how densely the tool can place cells during non-congestion-driven placement. Choose a value between 1 and the overall utilization of the blockfc_shell> set_app_options -name place.coarse.max_density -value 0.6
40mv.cells.enable_multibit_pm_cell sEnables timing-driven banking of power management cells; skips fixed cells and cells with dont_touch, legalize_only, or size_only attributesset_app_options -name mv.cells.enable_multibit_pm_cells -value true
41place.coarse.congestion_driven_ max_utilSpecifies a maximum utilization that controls how densely the tool can place cells in less congested areas surrounding highly congested areas, so cells in congested areas can spread out to reduce congestionfc_shell> set_app_options -name place.coarse.congestion_driven_max_util -value 0.8
42multibit.banking.across_equivale nt_icgEnables banking of registers driven by equivalent integrated-clock-gating (ICG) cellsset_app_options -name multibit.banking.across_equivalent_icg -value true
43place.coarse.cong_restruct_effor tSets the effort level for congestion-driven restructuring during placement. The tool restructures nets to reduce congestion during create_placement (except with -timing_driven) and the initial_place stage of compile_fusion
44multibit.banking.lcs_consider_mu lti_si_cellsConsiders multibit register library cells with multiple scan-in pins and internal scan-in pins during bankingset_app_options -name multibit.banking.lcs_consider_multi_si_cells -value true
45place.coarse.cong_restruct_dept h_awarePrevents the tool from increasing the path depth by more than three levels of logic during congestion-driven restructuring
46multibit.banking.enable_strict_sc an_checkIgnores scan flip-flops not included in SCANDEF information during bankingset_app_options -name multibit.banking.enable_strict_scan_check -value true
47place.coarse.congestion_layer_a wareEnables the tool to consider the congestion of each layer separately to improve accuracy of congestion reduction in coarse placement. Helps identify and fix areas with high pin densities with insufficient resources on lower layers
48compile.flow.enable_multibit_deb ankingEnables splitting of multibit register banks when it improves total negative slack (TNS), during initial_opto and final_opto stagesfc_shell> set_app_options -name compile.flow.enable_multibit_debanking -value true
49place.coarse.increased_cell_exp ansionExpands the virtual area of cells during placement based on local routing resource needs. Minimizes cell density and congestion in areas with shortage of routing resources
50compile.flow.enable_second_pas s_multibit_bankingEnables placement-based multibit banking during the final_place stage instead of initial_opto stagefc_shell> set_app_options -name compile.flow.enable_second_pass_multibit_banking -value true
51place.coarse.congestion_expansi on_directionControls the direction in which the tool expands cell virtual areas during placement. For designs with congestion mainly in horizontal routing layers, set to both
52compile.flow.enable_physical_m ultibit_bankingEnables placement-based multibit register banking during the initial_opto stage of compile_fusionfc_shell> set_app_options -name compile.flow.enable_physical_multibit_banking -value true
53route.global.export_soft_congesti on_mapsEnables the tool to consider the congestion effects of soft routing rules when using the global route congestion map to identify highly congested areas for cell expansion during placement
54compile.flow.enable_rtl_multibit_ debankingEnables splitting of RTL-level multibit register banks when registers are on critical timing paths during the logic_opto stagefc_shell> set_app_options -name compile.flow.enable_rtl_multibit_debanking -value true
55place.coarse.wide_cell_use_mod elEnables wide-cell modeling during placement for advanced technology nodes. Minimizes density of wide cells (wider than half the pitch of power straps) to ensure they can be placed and legalized without large displacements
56compile.flow.enable_rtl_multibit_ bankingEnables combining single registers or smaller register banks at the RTL level into larger banks during the initial_map stagefc_shell> set_app_options -name compile.flow.enable_rtl_multibit_banking -value true
57place.coarse.pin_cost_awareSpecifies that the tool uses a technology-specific pin-cost model during placement to improve pin accessibility. During placement, the tool tries to improve pin accessibility using a technology-specific model to predict routing resources required to access each pin
58compile.flow.enable_multibitEnables integrated multibit register optimization during the compile_fusion commandfc_shell> set_app_options -name compile.flow.enable_multibit -value true
59place.coarse.pin_density_awareControls the maximum local pin density during placement for all technology nodes other than 7, 7+, 5, s5, or s4
60compile.initial_drc.global_route_ basedEnables the use of globally routed nets to determine the topology for buffers inserted during high-fanout synthesis, during the initial_drc stage of the compile_fusion command. Benefits designs with high congestion in routing channels. Increases compile_fusion runtimefc_shell> set_app_options -name compile.initial_drc.global_route_based -value true
61place.coarse.ndr_area_awareEnables the tool to consider the effects of nondefault routing rules of clock nets during placement. Nondefault routing rules require additional space and can increase congestion after clock routing
62compile.seqmap.print_cross_pro bing_info_for_removed_registersWhen set to true, prints the RTL file name and line number of registers optimized (removed/merged) during compile_fusion in the log file and in report_transformed_registers outputfc_shell> set_app_options -name compile.seqmap.pr int_cross_probing_info_for_removed_registers -value true
63place.coarse.seq_array_icg_awa reEnables the tool to consider the clock-gating cells of sequential arrays during placement. A sequential array is a group of registers arranged as a 2D array; their clock pins are driven by a single clock-gating cell. Enabling reduces congestion caused by clock nets
64compile.seqmap.remove_unload ed_registersControls global removal of unloaded registers during compile. When set to false, disables unloaded register removal for the entire block. Can be overridden per-module using set_unloaded_register_removalfc_shell> set_app_option -name compile.seqmap.remove_unloaded_registers -value true
65place.coarse.enhanced_legalizer _driven_placementEnables the tool to be aware of legalization limits and restrictions during coarse placement, minimizing cells displaced during legalization. For example, prevents placing a wide cell where power straps restrict legalization
66compile.seqmap.disable_qn_usa gePrevents the tool from using the QN pin of registers during sequential mapping. By default, the tool may map registers to library cells with both Q and QN pins if doing so improves QoR
67place.coarse.enable_dft_modelin gImproves DFT logic placement by enhancing the tool's awareness of DFT connectivity while still optimizing for functional placement
68compile.seqmap.enable_output_i nversionControls sequential output inversion for the entire block. When enabled, the compile_fusion command allows mapping of sequential elements to library cells whose output phase is inverted. An instance-specific setting via set_register_output_inversion overrides this block-level setting
69place.coarse.enhanced_low_pow er_effortEnables dynamic-power-driven placement for the create_placement, refine_placement, compile_fusion, or clock_opt command. During dynamic-power-driven placement, the tool tries to improve both timing and power of timing-critical nets and power of other nets
70compile.seqmap.exact_mapSpecifies that the tool maps sequential elements exactly as described in the RTL. Disables mapping to sequential library cells with inverted outputs or unused portsset_app_options -name compile.seqmap.exact_map -value true
71place.coarse.ir_drop_awareEnables IR-drop-aware placement. The tool uses voltage (IR) drop values of cells to identify areas of high power density and spreads cells with high voltage drop values, reducing power density
72compile.datapath.ungroupControls whether DesignWare cells and datapath blocks are ungrouped during timing optimization. By default all such cells are ungrouped; setting to false disables ungroupingfc_shell> set_app_options -name compile.datapath.ungroup -value true
73place.coarse.ir_drop_awareWhen set to true, enables IR-drop-aware placement. The tool creates three categories of cells based on total number of cells: upper (top 1% highest voltage drop - spread most), middle (next 5% - spread less), lower (rest - not spread)
74compile.flow.constant_and_unloa ded_propagation_with_no_boun dary_optControls whether constant and unloaded propagation occurs across hierarchies when boundary optimization is disabled. Setting to false disables both constant and unloaded propagation globallyfc_shell> set_app_options -name compile.flow.const ant_and_unloaded_propagation_with_no_boundary_ opt -value true
75opt.common.advanced_logic_res tructuring_wirelength_costingControls whether the tool accepts logic restructuring results that increase wire length. For designs without congestion or routing issues, setting to medium or none allows the tool to accept restructuring even if it increases wire length
76compile.flow.boundary_optimizati onControls boundary optimization globally during compile. When set to false, disables propagation of equal-opposite logic and phase inversion; constants and unloaded ports continue to propagatefc_shell> set_app_options -name compile.flow.boundary_optimization -value true
77power.use_generated_clock_sca ling_factorEnables scaling of switching activity when the clock frequency used in the SAIF file differs from the clock frequency used in Fusion Compiler. Must be enabled before using set_power_clock_scaling command
78compile.flow.autoungroupControls whether the compile_fusion command automatically ungroups logical hierarchies that do not have a dont_touch attribute. Ungrouping removes hierarchical boundaries to improve timing by reducing logic levels and improve area by sharing logic

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Replying to