blob: 9563ae40be4aa1f3067f9e530df00ef921864524 [file] [log] [blame]
set script_dir [file dirname [file normalize [info script]]]
########################################################################################
# Setup
########################################################################################
set ::env(PDK) "sky130A"
set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd"
# User config
set ::env(DESIGN_NAME) user_proj_example
set ::env(VERILOG_FILES) "\
$::env(CARAVEL_ROOT)/verilog/rtl/defines.v \
$script_dir/../../verilog/rtl/user_proj_example.v "
#$script_dir/../../verilog/rtl/dpram_gen.v
# set ::env(VERILOG_FILES_BLACKBOX) "\
# $script_dir/../../verilog/rtl/sky130_sram_1kbyte_1rw1r_32x256_8/sky130_sram_1kbyte_1rw1r_32x256_8.v"
# #$script_dir/../../verilog/rtl/openram_testchip.v
# set ::env(EXTRA_LEFS) "\
# $script_dir/../../lef/sky130_sram_1kbyte_1rw1r_32x256_8.lef"
# # $script_dir/../../lef/openram_testchip.lef
# set ::env(EXTRA_GDS_FILES) "\
# $script_dir/../../gds/sky130_sram_1kbyte_1rw1r_32x256_8.gds"
# # $script_dir/../../gds/openram_testchip.gds
set ::env(RESET_PORT) {wb_rst_i}
########################################################################################
# Timing
########################################################################################
set ::env(CLOCK_PORT) "wb_clk_i"
set ::env(CLOCK_NET) "clk"
set ::env(CLOCK_PERIOD) "20"
########################################################################################
# Synthesis
########################################################################################
#set ::env(BASE_SDC_FILE) "$script_dir/user_proj_example.sdc"
# set ::env(SYNTH_CAP_LOAD) "33.5"
# set ::env(SYNTH_MAX_FANOUT) "4"
# set ::env(SYNTH_MAX_TRAN) 1
########################################################################################
# Floorplanning
########################################################################################
set ::env(DESIGN_IS_CORE) 0
set ::env(FP_SIZING) absolute
set ::env(DIE_AREA) "0 0 250 250"
set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
#set ::env(MACRO_PLACEMENT_CFG) $::env(DESIGN_DIR)/macro.cfg
set ::env(FP_PDN_IRDROP) 0
# set ::env(FP_PDN_MACROS) "\
# SRAM0 vccd1 vssd1
# "
########################################################################################
# Placement
########################################################################################
#set ::env(PL_BASIC_PLACEMENT) 1
set ::env(PL_TARGET_DENSITY) 0.3
########################################################################################
# Routing
########################################################################################
set ::env(GLB_RT_MAXLAYER) 5
set ::env(ROUTING_CORES) 24
########################################################################################
# CHECK ME
########################################################################################
# You can draw more power domains if you need to
set ::env(VDD_NETS) [list {vccd1}]
set ::env(GND_NETS) [list {vssd1}]
set ::env(SYNTH_USE_PG_PINS_DEFINES) "USE_POWER_PINS"
set ::env(DIODE_INSERTION_STRATEGY) 4
# set ::env(GLB_RT_MAX_DIODE_INS_ITERS) 50
# set ::env(GLB_RT_ANT_ITERS) 50
#set ::env(PL_RANDOM_GLB_PLACEMENT) 1
set ::env(USE_ARC_ANTENNA_CHECK) 0
########################################################################################
# Timing
########################################################################################
########################################################################################
# Timing
########################################################################################
########################################################################################
# EOF
########################################################################################
set filename $::env(DESIGN_DIR)/$::env(PDK)_$::env(STD_CELL_LIBRARY)_config.tcl
if { [file exists $filename] == 1} {
source $filename
}