blob: 6d63c6bd85915bb9e14f0db44bb733fb0110a682 [file] [log] [blame]
########################################################################################
# Enable onChipVariation (for MMMC flows). Options are:
# pre_postcts, pre_postroute, pre_postroute_si, pre_signoff, false
########################################################################################
set vars(enable_ocv) pre_postroute
########################################################################################
# Optionally enable cppr; options are: setup, hold, both, none
########################################################################################
set vars(enable_cppr) both
########################################################################################
# Optionally enable signalStorm delay calculation during postroute
# and postroute_si steps. When false, it gets applied only during
# the signoff step
########################################################################################
set vars(enable_ss) false
########################################################################################
# Placement Options
########################################################################################
#set vars(in_place_opt) true
set vars(clock_gate_aware) true
set vars(congestion_effort) high
########################################################################################
# Tie/Filler/Tap Cell Options
# --------------------------------------------------------------------------------------
# Tie cell information
# --------------------------------------------------------------------------------------
set vars(tie_cells) "TIEH TIEL"
# --------------------------------------------------------------------------------------
# Filler cell information
# --------------------------------------------------------------------------------------
set vars(filler_cells) "FILLER64 FILLER32 FILLER16 FILLER8 FILLER4 FILLER2 FILLER1"
# ---------------------------------------------------------------------------------------
# Welltap cell information
# ---------------------------------------------------------------------------------------
# verify_rule : maximum distance (in microns) between welltap cells and standard cells
# in microns
# max_gap : specifies the maximum distance from the right edge of one well-tap cell
# to the left edge of the following well-tap cell in the same row
# cell_interval : specifies the maximum distance from the center of one well-tap cell
# to the center of the following well-tap cell in the same row
#
# NOTE: max_gap and cell_interval parameters are mutually exclusive, user has to define
# only one of these parameters to add welltap cells
#
# ---------------------------------------------------------------------------------------
#set vars(welltaps) <welltap cells>
#set vars(welltaps,checkerboard) <true or false>
#set vars(welltaps,max_gap) <max gap>
#set vars(welltaps,cell_interval) <cell interval>
#set vars(welltaps,verify_rule) <distance interval>
# ---------------------------------------------------------------------------------------
# Endcap cell information
# ---------------------------------------------------------------------------------------
#set vars(pre_endcap) <pre endcap cell>
#set vars(post_endcap) <post endcap cell>
##########################################################################################
# LP/CPF Flow Options
##########################################################################################
set vars(cpf_file) $vars(design_root)/DATA/chip_top_1.0e_integrated_for_backend.cpf
#set vars(cpf_keep_rows) <true | false>
# ---------------------------------------------------------------------------------------
# The vars(power_domains) is optional. If not defined, the power
# power domain list will be picked up automatically
# ---------------------------------------------------------------------------------------
set vars(power_domains) "PDpll PDw PDrom PDsmc PDwakeup PD_3p3v PD_2p5v i_apb_subsystem__i_uart1__PDuart_SW PDdvfs"
# ---------------------------------------------------------------------------------------
# Additional optional low power variables can be defined in the lp_config.tcl file.
# These variables are intended to help automate some of the most common steps in the
# LP/CPF flow
# ---------------------------------------------------------------------------------------
#########################################################################################
# Clock Tree Options
# ---------------------------------------------------------------------------------------
set vars(route_clock_nets) true
#set vars(cts_cells) <list of clock buffers>
#set vars(clock_gate_cells) <list of clock gating cells>
#set vars(clock_eco) false
#########################################################################################
# Optimization Options
# ---------------------------------------------------------------------------------------
#set vars(high_timing_effort) true
set vars(clock_gate_aware) true
set vars(critical_range) 0
set vars(dynamic_power_effort) none
set vars(leakage_power_effort) none
set vars(preserve_assertions) false
set vars(useful_skew) false
set vars(fix_hold) true
set vars(fix_hold_ignore_ios) false
set vars(fix_hold_allow_tns_degradation) false
set vars(skew_buffers) "\
CKBUFFERD8 \
CKBUFFERD6 \
CKBUFFERD4 \
CKBUFFERD3 \
CKBUFFERD2 \
CKBUFFERD16 \
CKBUFFERD12 \
CKBUFFERD1 \
CKBUFFERD0 \
CKINVERTERD8 \
CKINVERTERD6 \
CKINVERTERD4 \
CKINVERTERD3 \
CKINVERTERD2 \
CKINVERTERD16 \
CKINVERTERD12 \
CKINVERTERD1 \
CKINVERTERD0 \
"
set vars(delay_cells) "DELAY0 DELAY005 DELAY01 DELAY015 DELAY02 DELAY1 DELAY2 DELAY3 DELAY4"
set vars(dont_use_list) "*CK* BUFT* ANTENNA* DCAP* DELAY* GATEARRAY* HEADER*"
#set vars(delay_cells) <list of delay cells>
#set vars(dont_use_list) ""
#set vars(use_list) ""
#set vars(activity_file) <activity file>
#set vars(activity_file_type) <TCF | SAF | VCD>
set vars(report_power) true
#set vars(power_analysis_view) <power analysis view>
set vars(power_analysis_view) AVdefault_WC
#########################################################################################
# Nanoroute Options
# ---------------------------------------------------------------------------------------
set vars(multi_cut_effort) low
set vars(litho_driven_routing) false
#########################################################################################
# Signal Integrity Options
# ---------------------------------------------------------------------------------------
set vars(delta_delay_threshold) 10
set vars(coupling_c_thresh) 0.01
set vars(relative_c_thresh) 0.01
set vars(total_c_thresh) 0
set vars(celtic_settings) "set_virtual_attacker -mode current -gtol 0.025"
#set vars(si_analysis_type) pessimistic
#########################################################################################
# Optionally define the following when applicable
# ---------------------------------------------------------------------------------------
set vars(assign_buffer) {1 -buffer BUFFD2}
set vars(buffer_tie_assign) true
#set vars(pwrnet) <list of power nets>
#set vars(gndnet) <list of ground nets>
#set vars(jtag_cells) <list of jtag cells>
#set vars(jtag_rows) <number of rows for jtag placement>
set vars(spare_cells) "*spare*"
#set vars(gds_files) <list of gds files>
set vars(gds_layer_map) "$vars(design_root)/LIBS/TECHNOLOGY/gds2.map"
set vars(qrc_layer_map) "$vars(design_root)/DATA/layermap"
#set vars(qrc_library) <qrc library directory>
#set vars(qrc_config_file) <qrc config file>
#########################################################################################
# The following plugins are supported when needed ...
# ---------------------------------------------------------------------------------------
set vars(always_source_tcl) $vars(plug_dir)/always_source.tcl
set vars(final_always_source_tcl) $vars(plug_dir)/final_always_source.tcl
set vars(pre_init_tcl) $vars(plug_dir)/pre_init.tcl
set vars(post_init_tcl) $vars(plug_dir)/post_init.tcl
set vars(pre_place_tcl) $vars(plug_dir)/pre_place.tcl
set vars(post_place_tcl) $vars(plug_dir)/post_place.tcl
set vars(pre_prects_tcl) $vars(plug_dir)/pre_prects.tcl
set vars(post_prects_tcl) $vars(plug_dir)/post_prects.tcl
set vars(pre_cts_tcl) $vars(plug_dir)/pre_cts.tcl
set vars(post_cts_tcl) $vars(plug_dir)/post_cts.tcl
set vars(pre_postcts_tcl) $vars(plug_dir)/pre_postcts.tcl
set vars(post_postcts_tcl) $vars(plug_dir)/post_postcts.tcl
set vars(pre_route_tcl) $vars(plug_dir)/pre_route.tcl
set vars(post_route_tcl) $vars(plug_dir)/post_route.tcl
set vars(pre_postcts_hold_tcl) $vars(plug_dir)/pre_postcts_hold.tcl
set vars(post_postcts_hold_tcl) $vars(plug_dir)/post_postcts_hold.tcl
set vars(pre_postroute_tcl) $vars(plug_dir)/pre_postroute.tcl
set vars(post_postroute_tcl) $vars(plug_dir)/post_postroute.tcl
set vars(pre_postroute_hold_tcl) $vars(plug_dir)/pre_postroute_hold.tcl
set vars(post_postroute_hold_tcl) $vars(plug_dir)/post_postroute_hold.tcl
set vars(pre_postroute_si_tcl) $vars(plug_dir)/pre_postroute_si.tcl
set vars(post_postroute_si_tcl) $vars(plug_dir)/post_postroute_si.tcl
set vars(pre_postroute_si_hold_tcl) $vars(plug_dir)/pre_postroute_si_hold.tcl
set vars(post_postroute_si_hold_tcl) $vars(plug_dir)/post_postroute_si_hold.tcl
set vars(pre_signoff_tcl) $vars(plug_dir)/pre_signoff.tcl
set vars(post_signoff_tcl) $vars(plug_dir)/post_signoff.tcl
#----------------------------------------------------------------------------------------
set vars(pre_partition_tcl) $vars(plug_dir)/pre_partition.tcl
set vars(post_partition_tcl) $vars(plug_dir)/post_partition.tcl
set vars(pre_assemble_tcl) $vars(plug_dir)/pre_assemble.tcl
set vars(post_assemble_tcl) $vars(plug_dir)/post_assemble.tcl
#----------------------------------------------------------------------------------------
# To insert metal fill during the flow define the following two
# variables:
# - vars(metalfill) [pre_postroute, pre_postroute_si, pre_signoff]
# - vars(metalfill_tcl) <path to metalfill plug-in file>
#----------------------------------------------------------------------------------------
#set vars(metalfill) pre_postroute
#set vars(metalfill_tcl) <path to plug-in file>
##########################################################################################
# Distribution setup ... vars(distribute) can be one of the following:
# lsf, rsh, local, or custom
# Depending on the value of vars(distribute), addition variables
# may be required. Some examples are shown below
#----------------------------------------------------------------------------------------
set vars(distribute) custom
set vars(custom,script) {/grid/sfi/farm/bin/gridsub -W 72:00 -P SOC7.1 \
-R "SFIARCH==OPT64 && OSREL==EE40" -q lnx64}
set vars(local_cpus) 2
set vars(remote_hosts) 4
set vars(pus_per_remote_host) 2