blob: cf733c17eb95d0a2b0868331788c4e13ebe65d30 [file] [log] [blame]
# SPDX-FileCopyrightText: 2020 Efabless Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# SPDX-License-Identifier: Apache-2.0
set script_dir [file dirname [file normalize [info script]]]
source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/fixed_wrapper_cfgs.tcl
source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/default_wrapper_cfgs.tcl
set ::env(DESIGN_NAME) user_project_wrapper
set ::env(FP_PDN_CHECK_NODES) 0
set ::env(FP_PDN_ENABLE_RAILS) 1
set ::env(GLB_RT_OBS) "met1 0 0 $::env(DIE_AREA),\
met2 0 0 $::env(DIE_AREA),\
met3 0 0 $::env(DIE_AREA),\
met4 0 0 $::env(DIE_AREA),\
met5 0 0 $::env(DIE_AREA)"
set ::env(CLOCK_PORT) "user_clock2"
set ::env(CLOCK_NET) "inst_eFPGA_top.user_clock2"
set ::env(CLOCK_PERIOD) "40"
set ::env(PL_OPENPHYSYN_OPTIMIZATIONS) 0
set ::env(DIODE_INSERTION_STRATEGY) 5
set ::env(MAGIC_WRITE_FULL_LEF) 0
set ::env(SYNTH_FLAT_TOP) 1
set ::env(CLOCK_TREE_SYNTH) 1
set ::env(DESIGN_IS_CORE) 1
#set ::env(FP_PDN_CORE_RING) 1
set ::env(STA_REPORT_POWER) 0
set ::env(SYNTH_USE_PG_PINS_DEFINES) "USE_POWER_PINS"
set ::env(VDD_NETS) {vccd1 vdda1 vdda2 vccd2}
set ::env(GND_NETS) {vssd1 vssa1 vssa2 vssd2}
set ::env(VDD_PIN) "vccd1"
set ::env(GND_PIN) "vssd1"
set ::env(PL_TARGET_DENSITY) 0.45
set ::env(PL_SKIP_INITIAL_PLACEMENT) 1
set ::env(CTS_TARGET_SKEW) 200
set ::env(CTS_SINK_CLUSTERING_SIZE) 100
set ::env(CTS_SINK_CLUSTERING_MAX_DIAMETER) 1000
set ::env(ROUTING_CORES) 12
set ::env(GLB_RT_MAXLAYER) 5
set ::env(FP_PDN_CHECK_NODES) 0
set ::env(RUN_KLAYOUT_XOR) 0
set ::env(KLAYOUT_XOR_GDS) 0
set ::env(KLAYOUT_XOR_XML) 0
set ::env(FP_PDN_IRDROP) 0
#set ::env(PL_MAX_DISPLACEMENT_X) 800
#set ::env(PL_MAX_DISPLACEMENT_Y) 600
set ::env(FP_TAP_HORIZONTAL_HALO) 20
set ::env(FP_TAP_VERTICAL_HALO) 20
set ::env(FP_PDN_HORIZONTAL_HALO) 30
set ::env(FP_PDN_VERTICAL_HALO) 30
#set ::env(FP_PDN_VOFFSET) 5
#set ::env(FP_PDN_HOFFSET) 235
set ::env(FP_PDN_VWIDTH) 1.6
#set ::env(FP_PDN_HSPACING) 15.5
#set ::env(FP_PDN_HSPACING) 3
set ::env(FP_PDN_VPITCH) 2800
#set ::env(FP_PDN_HPITCH) {2800}
#set ::env(PL_MACRO_CHANNEL) {5 30}
#set ::env(PL_MACRO_HALO) {5 30}
#set ::env(FP_PDN_HPITCH) {180}
#set ::env(FP_PDN_VPITCH) {2800}
set ::env(SYNTH_READ_BLACKBOX_LIB) 1
set ::env(VERILOG_FILES) [glob $script_dir/../../verilog/rtl/defines.v $script_dir/../../../verilog/rtl/*.v ]
## Internal Macros
### Macro Placement
set ::env(MACRO_PLACEMENT_CFG) "$script_dir/../../../openlane/user_project_wrapper/macros/placements/macro_placement.cfg"
### Black-box verilog and views
set ::env(VERILOG_FILES_BLACKBOX) [glob $script_dir/../../../verilog/rtl/BB/*.v]
set ::env(EXTRA_LEFS) [glob $script_dir/../../../openlane/user_project_wrapper/macros/lef/*.lef]
set ::env(EXTRA_GDS_FILES) [glob $script_dir/../../../openlane/user_project_wrapper/macros/gds/*.gds]
### Macro PDN Connections
set ::env(FP_PDN_MACRO_HOOKS) "\
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y1_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y2_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y3_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y4_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y5_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y6_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y7_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y8_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y9_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y10_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y11_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X0Y12_W_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X1Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X2Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y0_N_term_single2 vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y1_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y2_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y3_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y4_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y5_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y6_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y7_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y8_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y9_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y10_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y11_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y12_RegFile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X3Y13_S_term_single2 vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X4Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X5Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y0_N_term_DSP vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y1_X6Y2_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y3_X6Y4_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y5_X6Y6_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y7_X6Y8_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y9_X6Y10_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y11_X6Y12_DSP_tile vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X6Y13_S_term_DSP vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X7Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y0_N_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y1_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y2_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y3_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y4_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y5_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y6_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y7_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y8_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y9_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y10_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y11_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y12_LUT4AB vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X8Y13_S_term_single vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y0_N_term_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y1_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y2_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y3_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y4_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y5_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y6_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y7_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y8_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y9_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y10_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y11_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y12_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_eFPGA.Tile_X9Y13_S_term_RAM_IO vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_5 vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_4 vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_3 vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_2 vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_1 vccd1 vssd1 \
inst_eFPGA_top.Inst_BlockRAM_0 vccd1 vssd1 "