# 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

# section begin
set script_dir [file dirname [file normalize [info script]]]

set ::env(DESIGN_NAME) sar_adc
#section end
set ::env(RUN_KLAYOUT) 0
set ::env(DESIGN_IS_CORE) 0
set ::env(FP_PDN_CORE_RING) 0 

# User Configurations
set ::env(SYNTH_READ_BLACKBOX_LIB) 1

## Source Verilog Files
set ::env(VERILOG_FILES) "\
	$script_dir/../../caravel/verilog/rtl/defines.v \
	$script_dir/../../verilog/rtl/sar_adc/SAR.sv \
	$script_dir/../../verilog/rtl/sar_adc/ACMP.sv \
	$script_dir/../../verilog/rtl/sar_adc/sar_adc.sv \
	$script_dir/../../verilog/rtl/sar_adc/adc_reg.sv \
        $script_dir/../../verilog/rtl/lib/registers.v"

## Clock configurations
set ::env(CLOCK_PORT) "clk"
set ::env(CLOCK_NET)  "clk"

set ::env(CLOCK_PERIOD) "100"

set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
set ::env(PDN_CFG) $script_dir/pdn.tcl

set ::env(FP_SIZING) "absolute"
set ::env(DIE_AREA) "0 0 500 300"

#set ::env(FP_HORIZONTAL_HALO) 15
#set ::env(FP_VERTICAL_HALO)   15

#set ::env(GLB_RT_OBS) "met2 109.85000 19.89500 171.54500 69.22000"
set ::env(CLOCK_TREE_SYNTH) 0

set ::env(PL_TARGET_DENSITY) "0.01"
set ::env(GLB_RT_MAXLAYER) 5
set ::env(GLB_RT_ADJUSTMENT) 0.15

set ::env(FP_PDN_CHECK_NODES) 0
set ::env(FP_PDN_VPITCH) "45"
set ::env(FP_PDN_VWIDTH) "3.5"
#
set ::env(FP_PDN_HPITCH) "40"
set ::env(FP_PDN_HWIDTH) "6.5"

set ::env(PL_RESIZER_DESIGN_OPTIMIZATIONS) 1
set ::env(PL_RESIZER_TIMING_OPTIMIZATIONS) 1

set ::env(DIODE_INSERTION_STRATEGY) 4

#set ::env(FP_VERTICAL_HALO) "35"
#set ::env(FP_HERTICAL_HALO) "35"


## Internal Macros
### Macro Placement
#set ::env(MACRO_PLACEMENT_CFG) $script_dir/macro.cfg

### Black-box verilog and views

set ::env(VDD_NETS) [list {vccd1} {vccd2}]
set ::env(GND_NETS) [list {vssd1} {vssd2}]
set ::env(SYNTH_USE_PG_PINS_DEFINES) "USE_POWER_PINS"

## LVS mismatch is to be solved manually by shorting VDD and VSS pins to the core ring 
set ::env(QUIT_ON_LVS_ERROR) "0"
