Delete deps/timing-scripts directory
diff --git a/deps/timing-scripts/Dockerfile b/deps/timing-scripts/Dockerfile
deleted file mode 100644
index 4696aff..0000000
--- a/deps/timing-scripts/Dockerfile
+++ /dev/null
@@ -1,6 +0,0 @@
-from fedora:36
-
-RUN yum install -y yosys python3-pip && \
- pip3 install click pyverilog && \
- yum clean all && \
- rm -rf /var/cache/yum
diff --git a/deps/timing-scripts/README.md b/deps/timing-scripts/README.md
deleted file mode 100644
index 2b39888..0000000
--- a/deps/timing-scripts/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Timing scripts
-
-A set of scripts for rcx and sta for caravel top level
-
-## Dependencies
-- Docker
-
-In case of not using the docker image:
-- `yosys`
-- Python modules:
- - `click`
-
-
-## Prerequisites
-
-A set of exports are needed:
-```bash
-export CARAVEL_ROOT=${HOME}/caravel/
-export MCW_ROOT=${HOME}/caravel_mgmt_soc_litex/
-export CUP_ROOT=${HOME}/caravel_user_project/
-export TIMING_ROOT=${HOME}/timing-scripts/
-export PDK_ROOT=${HOME}/pdk/
-export PDK=sky130A
-export OPENLANE_IMAGE_NAME=efabless/openlane:4476a58407d670d251aa0be6a55e5391bb181c4e-amd64
-```
-
-## Usage
-
-### caravel_user_project
-
-1. After exporting the prerequisites, run:
-
- ```
- make -f timing.mk list-rcx
- ```
- You should get `rcx-user_project_wrapper` amongst others such as:
-
- ```
- rcx-buff_flash_clkrst
- rcx-caravel
- rcx-caravel_clocking
- rcx-constant_block
- rcx-digital_pll
- rcx-gpio_control_block
- rcx-gpio_defaults_block
- rcx-gpio_logic_high
- rcx-gpio_signal_buffering
- rcx-gpio_signal_buffering_alt
- rcx-housekeeping
- rcx-mgmt_protect
- rcx-mprj2_logic_high
- rcx-mprj_logic_high
- rcx-spare_logic_block
- rcx-RAM256
- rcx-mgmt_core_wrapper
- rcx-user_proj_example
- rcx-user_project_wrapper
- ```
-
-2. extract multicorner spefs for `user_project_wrapper` and any other blocks inside:
-
- ```
- make -f timing.mk rcx-user_project_wrapper
- make -f timing.mk rcx-user_proj_example
- ```
-3. generate spef mapping file for caravel_user_project:
-
- ```
- python3 ./scripts/generate_spef_mapping -i ${CUP_ROOT}/verilog/gl/user_project_wrapper.v -o ${CUP_ROOT}/env/spef-mapping.tcl --project-root '$::env(CUP_ROOT)' --pdk-root ${PDK_ROOT} --pdk ${PDK}
- ```
-
-4. run sta:
-
- ```
- make -f timing.mk caravel-timing-typ
- make -f timing.mk caravel-timing-slow
- make -f timing.mk caravel-timing-fast
- ```
-
-## Limitations
-
-- Makefile
-- Makefile
-- Assumes a fixed folder structure for the exported directories
-- Probably a lot of corner cases that weren't considered
diff --git a/deps/timing-scripts/env/caravel_spef_mapping-mpw2-calibre.tcl b/deps/timing-scripts/env/caravel_spef_mapping-mpw2-calibre.tcl
deleted file mode 100644
index 87eeb62..0000000
--- a/deps/timing-scripts/env/caravel_spef_mapping-mpw2-calibre.tcl
+++ /dev/null
@@ -1,101 +0,0 @@
-set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf.spef
-set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv.spef
-set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io.spef
-set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high.spef
-set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high.spef
-
-#set spef_mapping(por) $::env(CARAVEL_ROOT)/spef/simple_por.spef
-
-# error in rcx extraction for the section/paragraph below
-# [ERROR ODB-0299] Via via3_320_320 has only 2 shapes and must have at least three.
-
-set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-
-set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_34) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping.spef
-set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect.spef
-set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll.spef
-set spef_mapping(spare_logic[0]) $::env(CARAVEL_ROOT)/spef/spare_logic_block.spef
-set spef_mapping(spare_logic[1]) $::env(CARAVEL_ROOT)/spef/spare_logic_block.spef
-set spef_mapping(spare_logic[2]) $::env(CARAVEL_ROOT)/spef/spare_logic_block.spef
-set spef_mapping(spare_logic[3]) $::env(CARAVEL_ROOT)/spef/spare_logic_block.spef
-
-set spef_mapping(clocking) $::env(CARAVEL_ROOT)/spef/caravel_clocking.spef
-
-set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper.spef
-set spef_mapping(soc/DFFRAM_0) $::env(MCW_ROOT)/spef/DFFRAM.spef
-set spef_mapping(soc/core) $::env(MCW_ROOT)/spef/mgmt_core.spef
diff --git a/deps/timing-scripts/env/caravel_spef_mapping-mpw2.tcl b/deps/timing-scripts/env/caravel_spef_mapping-mpw2.tcl
deleted file mode 100644
index fade71c..0000000
--- a/deps/timing-scripts/env/caravel_spef_mapping-mpw2.tcl
+++ /dev/null
@@ -1,99 +0,0 @@
-set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf.spef
-set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv.spef
-set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io.spef
-set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high.spef
-set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high.spef
-
-#set spef_mapping(por) $::env(CARAVEL_ROOT)/spef/simple_por.spef
-
-# error in rcx extraction for the section/paragraph below
-# [ERROR ODB-0299] Via via3_320_320 has only 2 shapes and must have at least three.
-
-set spef_mapping(gpio_defaults_block_0) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_1) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_2) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_3) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_4) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-
-set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_34) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(spare_logic[0]) $::env(CARAVEL_ROOT)/spef/spare_logic_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(spare_logic[1]) $::env(CARAVEL_ROOT)/spef/spare_logic_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(spare_logic[2]) $::env(CARAVEL_ROOT)/spef/spare_logic_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(spare_logic[3]) $::env(CARAVEL_ROOT)/spef/spare_logic_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-
-set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(soc/DFFRAM_0) $::env(MCW_ROOT)/spef/DFFRAM_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(soc/core) $::env(MCW_ROOT)/spef/mgmt_core_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
diff --git a/deps/timing-scripts/env/caravel_spef_mapping-mpw5-calibre.tcl b/deps/timing-scripts/env/caravel_spef_mapping-mpw5-calibre.tcl
deleted file mode 100644
index c6c8a54..0000000
--- a/deps/timing-scripts/env/caravel_spef_mapping-mpw5-calibre.tcl
+++ /dev/null
@@ -1,90 +0,0 @@
-set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf.spef
-set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv.spef
-set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io.spef
-
-# should double check this
-set spef_mapping(gpio_defaults_block_0[0]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_0[1]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-
-set spef_mapping(soc/DFFRAM_0) $::env(MCW_ROOT)/spef/DFFRAM.spef
-set spef_mapping(soc/core) $::env(MCW_ROOT)/spef/mgmt_core.spef
-set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper.spef
-set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll.spef
-set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping.spef
-set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high.spef
-set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high.spef
-set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect.spef
-set spef_mapping(gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_34) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block.spef
-
diff --git a/deps/timing-scripts/env/caravel_spef_mapping-mpw7.tcl b/deps/timing-scripts/env/caravel_spef_mapping-mpw7.tcl
deleted file mode 100644
index e12e189..0000000
--- a/deps/timing-scripts/env/caravel_spef_mapping-mpw7.tcl
+++ /dev/null
@@ -1,136 +0,0 @@
-set SPEF_MAPPING_POSTFIX ".$::env(RCX_CORNER).spef"
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/gpio_control_block/openlane-signoff/spef/"
-set spef_mapping(\gpio_control_bidir_1[0]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_bidir_1[1]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_bidir_2[0]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_bidir_2[1]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_bidir_2[2]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[0]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[10]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[1]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[2]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[3]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[4]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[5]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[6]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[7]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[8]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1[9]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[0]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[1]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[2]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[3]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[4]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_1a[5]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[0]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[10]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[11]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[12]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[13]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[14]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[15]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[1]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[2]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[3]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[4]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[5]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[6]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[7]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[8]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\gpio_control_in_2[9]) ${SPEF_MAPPING_PREFIX}gpio_control_block${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/spare_logic_block/openlane-signoff/spef/"
-set spef_mapping(\spare_logic[0]) ${SPEF_MAPPING_PREFIX}spare_logic_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\spare_logic[1]) ${SPEF_MAPPING_PREFIX}spare_logic_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\spare_logic[2]) ${SPEF_MAPPING_PREFIX}spare_logic_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(\spare_logic[3]) ${SPEF_MAPPING_PREFIX}spare_logic_block${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/caravel_clocking/openlane-signoff/spef/"
-set spef_mapping(clock_ctrl) ${SPEF_MAPPING_PREFIX}caravel_clocking${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/buff_flash_clkrst/openlane-signoff/spef/"
-set spef_mapping(flash_clkrst_buffers) ${SPEF_MAPPING_PREFIX}buff_flash_clkrst${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/gpio_defaults_block/openlane-signoff/spef/"
-set spef_mapping(gpio_defaults_block_0) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_1) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_2) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_3) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_4) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_5) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_6) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_7) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_8) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_9) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_10) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_11) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_12) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_13) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_14) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_15) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_16) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_17) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_18) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_19) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_20) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_21) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_22) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_23) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_24) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_25) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_26) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_27) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_28) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_29) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_30) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_31) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_32) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_33) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_34) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_35) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_36) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(gpio_defaults_block_37) ${SPEF_MAPPING_PREFIX}gpio_defaults_block${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/housekeeping/openlane-signoff/spef/"
-set spef_mapping(housekeeping) ${SPEF_MAPPING_PREFIX}housekeeping${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/mgmt_protect/openlane-signoff/spef/"
-set spef_mapping(mgmt_buffers) ${SPEF_MAPPING_PREFIX}mgmt_protect${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CUP_ROOT)/signoff/user_project_wrapper/openlane-signoff/spef/"
-set spef_mapping(mprj) ${SPEF_MAPPING_PREFIX}user_project_wrapper${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/chip_io/openlane-signoff/spef/"
-set spef_mapping(padframe) ${SPEF_MAPPING_PREFIX}chip_io${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/digital_pll/openlane-signoff/spef/"
-set spef_mapping(pll) ${SPEF_MAPPING_PREFIX}digital_pll${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/simple_por/openlane-signoff/spef/"
-set spef_mapping(por) ${SPEF_MAPPING_PREFIX}simple_por${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/xres_buf/openlane-signoff/spef/"
-set spef_mapping(rstb_level) ${SPEF_MAPPING_PREFIX}xres_buf${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/gpio_signal_buffering/openlane-signoff/spef/"
-set spef_mapping(sigbuf) ${SPEF_MAPPING_PREFIX}gpio_signal_buffering${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/user_id_programming/openlane-signoff/spef/"
-set spef_mapping(user_id_value) ${SPEF_MAPPING_PREFIX}user_id_programming${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(MCW_ROOT)/signoff/mgmt_core_wrapper/openlane-signoff/spef/"
-set spef_mapping(soc) ${SPEF_MAPPING_PREFIX}mgmt_core_wrapper${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(CARAVEL_ROOT)/signoff/constant_block/openlane-signoff/spef/"
-set spef_mapping(padframe/\constant_value_inst[0]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[1]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[2]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[3]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[4]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[5]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-set spef_mapping(padframe/\constant_value_inst[6]) ${SPEF_MAPPING_PREFIX}constant_block${SPEF_MAPPING_POSTFIX}
-
-set SPEF_MAPPING_PREFIX "$::env(MCW_ROOT)/signoff/RAM256/openlane-signoff/spef/"
-set spef_mapping(soc/\core.RAM256) ${SPEF_MAPPING_PREFIX}RAM256${SPEF_MAPPING_POSTFIX}
-set SPEF_MAPPING_PREFIX "$::env(MCW_ROOT)/signoff/RAM128/openlane-signoff/spef/"
-set spef_mapping(soc/\core.RAM128) ${SPEF_MAPPING_PREFIX}RAM128${SPEF_MAPPING_POSTFIX}
diff --git a/deps/timing-scripts/env/caravel_spef_mapping.tcl b/deps/timing-scripts/env/caravel_spef_mapping.tcl
deleted file mode 100644
index f287952..0000000
--- a/deps/timing-scripts/env/caravel_spef_mapping.tcl
+++ /dev/null
@@ -1,90 +0,0 @@
-set spef_mapping(rstb_level) $::env(CARAVEL_ROOT)/spef/xres_buf.spef
-set spef_mapping(mgmt_buffers/powergood_check) $::env(CARAVEL_ROOT)/spef/mgmt_protect_hv.spef
-set spef_mapping(padframe) $::env(CARAVEL_ROOT)/spef/chip_io.spef
-
-# should double check this
-set spef_mapping(gpio_defaults_block_0[0]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_0[1]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_1803.spef
-set spef_mapping(gpio_defaults_block_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-set spef_mapping(gpio_defaults_block_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_0403.spef
-
-set spef_mapping(soc/DFFRAM_0) $::env(MCW_ROOT)/spef/DFFRAM_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(soc/core) $::env(MCW_ROOT)/spef/mgmt_core_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(soc) $::env(MCW_ROOT)/spef/mgmt_core_wrapper_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(pll) $::env(CARAVEL_ROOT)/spef/digital_pll_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(housekeeping) $::env(CARAVEL_ROOT)/spef/housekeeping_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(mgmt_buffers/mprj_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj_logic_high_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(mgmt_buffers/mprj2_logic_high_inst) $::env(CARAVEL_ROOT)/spef/mprj2_logic_high_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(mgmt_buffers) $::env(CARAVEL_ROOT)/spef/mgmt_protect_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_bidir_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_1a[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[0]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[10]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[11]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[12]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[13]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[14]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[15]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[1]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[2]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[3]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[4]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[5]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[6]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[7]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[8]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_control_in_2[9]) $::env(CARAVEL_ROOT)/spef/gpio_control_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_5) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_6) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_7) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_8) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_9) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_10) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_11) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_12) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_13) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_14) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_15) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_16) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_17) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_18) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_19) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_20) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_21) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_22) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_23) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_24) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_25) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_26) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_27) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_28) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_29) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_30) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_31) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_32) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_33) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_34) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_35) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_36) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-set spef_mapping(gpio_defaults_block_37) $::env(CARAVEL_ROOT)/spef/gpio_defaults_block_$::env(RCX_CORNER)_$::env(LIB_CORNER).spef
-
diff --git a/deps/timing-scripts/env/common.tcl b/deps/timing-scripts/env/common.tcl
deleted file mode 100644
index b06a6f7..0000000
--- a/deps/timing-scripts/env/common.tcl
+++ /dev/null
@@ -1,134 +0,0 @@
-set std_cell_library "sky130_fd_sc_hd"
-set special_voltage_library "sky130_fd_sc_hvl"
-set io_library "sky130_fd_io"
-set primitives_library "sky130_fd_pr"
-set ef_io_library "sky130_ef_io"
-set ef_cell_library "sky130_ef_sc_hd"
-
-set signal_layer "met2"
-set clock_layer "met5"
-
-set extra_lefs "
-[glob $::env(CARAVEL_ROOT)/lef/*.lef]
-[glob $::env(MCW_ROOT)/lef/*.lef]
-[glob $::env(CUP_ROOT)/lef/*.lef]"
-
-set tech_lef $::env(PDK_REF_PATH)/$std_cell_library/techlef/${std_cell_library}__$::env(RCX_CORNER).tlef
-set cells_lef $::env(PDK_REF_PATH)/$std_cell_library/lef/$std_cell_library.lef
-set io_lef $::env(PDK_REF_PATH)/$io_library/lef/$io_library.lef
-set ef_io_lef $::env(PDK_REF_PATH)/$io_library/lef/$ef_io_library.lef
-set ef_cells_lef $::env(PDK_REF_PATH)/$std_cell_library/lef/$ef_cell_library.lef
-
-set lefs [list \
- $tech_lef \
- $cells_lef \
- $io_lef \
- $ef_cells_lef \
- $ef_io_lef
-]
-# search order:
-# cup -> mcw -> caravel
-
-# file mkdir $::env(CUP_ROOT)/spef/
-# file mkdir $::env(CARAVEL_ROOT)/spef/
-# file mkdir $::env(MCW_ROOT)/spef/
-
-set def $::env(CUP_ROOT)/def/$::env(BLOCK).def
-set spef $::env(CUP_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/spef/$::env(BLOCK).$::env(RCX_CORNER).spef
-set sdc $::env(CUP_ROOT)/sdc/$::env(BLOCK).sdc
-set sdf $::env(CUP_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/sdf/$::env(RCX_CORNER)/$::env(BLOCK).$::env(LIB_CORNER)$::env(LIB_CORNER).$::env(RCX_CORNER).sdf
-if { ![file exists $def] } {
- set def $::env(MCW_ROOT)/def/$::env(BLOCK).def
- set spef $::env(MCW_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/spef/$::env(BLOCK).$::env(RCX_CORNER).spef
- set sdc $::env(MCW_ROOT)/sdc/$::env(BLOCK).sdc
- set sdf $::env(MCW_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/sdf/$::env(RCX_CORNER)/$::env(BLOCK).$::env(LIB_CORNER)$::env(LIB_CORNER).$::env(RCX_CORNER).sdf
-}
-if { ![file exists $def] } {
- set def $::env(CARAVEL_ROOT)/def/$::env(BLOCK).def
- set spef $::env(CARAVEL_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/spef/$::env(BLOCK).$::env(RCX_CORNER).spef
- set sdc $::env(CARAVEL_ROOT)/sdc/$::env(BLOCK).sdc
- set sdf $::env(CARAVEL_ROOT)/signoff/$::env(BLOCK)/openlane-signoff/sdf/$::env(RCX_CORNER)/$::env(BLOCK).$::env(LIB_CORNER)$::env(LIB_CORNER).$::env(RCX_CORNER).sdf
-}
-
-file mkdir [file dirname $spef]
-file mkdir [file dirname $sdf]
-set block $::env(BLOCK)
-if { $::env(PDK) == "sky130A" } {
- set rcx_rules_file $::env(PDK_TECH_PATH)/openlane/rules.openrcx.$::env(PDK).$::env(RCX_CORNER).calibre
-} elseif { $::env(PDK) == "sky130B" } {
- set rcx_rules_file $::env(PDK_TECH_PATH)/openlane/rules.openrcx.$::env(PDK).$::env(RCX_CORNER).spef_extractor
-} else {
- puts "no extraction rules file set for $::env(PDK) exiting.."
- exit 1
-}
-set merged_lef $::env(CARAVEL_ROOT)/tmp/merged_lef-$::env(RCX_CORNER).lef
-
-set sram_lef $::env(PDK_REF_PATH)/sky130_sram_macros/lef/sky130_sram_2kbyte_1rw1r_32x512_8.lef
-
-# order matter
-set caravel_root "[file normalize $::env(CARAVEL_ROOT)]"
-set mcw_root "[file normalize $::env(MCW_ROOT)]"
-set cup_root "[file normalize $::env(CUP_ROOT)]"
-set verilogs "
-[glob $mcw_root/verilog/gl/*]
-[glob $caravel_root/verilog/gl/*]
-[glob $cup_root/verilog/gl/*]
-"
-
-set verilog_exceptions [list \
- "$caravel_root/verilog/gl/__user_analog_project_wrapper.v" \
- "$caravel_root/verilog/gl/caravel-signoff.v" \
- "$caravel_root/verilog/gl/caravan-signoff.v" \
- "$caravel_root/verilog/gl/__user_project_wrapper.v" \
- ]
-
-foreach verilog_exception $verilog_exceptions {
- puts "verilog exception: $verilog_exception"
- set verilogs [regsub "$verilog_exception" "$verilogs" " "]
-}
-
-proc puts_list {arg} {
- foreach element $arg {
- puts $element
- }
-}
-
-proc read_libs {arg} {
- set libs [split [regexp -all -inline {\S+} $arg]]
- foreach liberty $libs {
- puts $liberty
- read_liberty $liberty
- }
-}
-
-proc read_verilogs {arg} {
- set verilogs [split [regexp -all -inline {\S+} $arg]]
- foreach verilog $verilogs {
- puts $verilog
- read_verilog $verilog
- }
-}
-
-proc read_spefs {} {
- global spef_mapping
- foreach key [array names spef_mapping] {
- puts "read_spef -path $key $spef_mapping($key)"
- read_spef -path $key $spef_mapping($key)
- }
-}
-
-proc run_puts {arg} {
- puts "exec> $arg"
- eval "{*}$arg"
-}
-
-proc run_puts_logs {arg log} {
- set output [open "$log" w+]
- puts $output "exec> $arg"
- puts $output "design: $::env(BLOCK)"
- set timestr [exec date]
- puts $output "time: $timestr\n"
- close $output
- puts "exec> $arg >> $log"
- eval "{*}$arg >> $log"
-}
diff --git a/deps/timing-scripts/env/f.tcl b/deps/timing-scripts/env/f.tcl
deleted file mode 100644
index 867427b..0000000
--- a/deps/timing-scripts/env/f.tcl
+++ /dev/null
@@ -1,20 +0,0 @@
-set libs "
- $::env(PDK_REF_PATH)/${std_cell_library}/lib/${std_cell_library}__ff_n40C_1v95.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__ff_n40C_5v50.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__ff_n40C_4v40_lv1v95.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_gpiov2_ff_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_hvc_wpad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_lvc_wpad_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_power_lvc_wpad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_xres4v2_ff_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__gpiov2_pad_wrapped_ff_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vdda_hvc_clamped_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssa_hvc_clamped_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vddio_hvc_clamped_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssio_hvc_clamped_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped3_pad_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped3_pad_ff_n40C_1v95_5v50_5v50.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped_pad_ff_n40C_1v95_5v50.lib
- $::env(PDK_REF_PATH)/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib
-"
diff --git a/deps/timing-scripts/env/s.tcl b/deps/timing-scripts/env/s.tcl
deleted file mode 100644
index 9b61eeb..0000000
--- a/deps/timing-scripts/env/s.tcl
+++ /dev/null
@@ -1,21 +0,0 @@
-set libs "
- $::env(PDK_REF_PATH)/${std_cell_library}/lib/${std_cell_library}__ss_100C_1v60.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__ss_100C_1v65.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__ss_100C_1v65_lv1v60.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_gpiov2_ss_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_hvc_wpad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_lvc_wpad_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_power_lvc_wpad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_xres4v2_ss_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__gpiov2_pad_wrapped_ss_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vdda_hvc_clamped_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssa_hvc_clamped_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vddio_hvc_clamped_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssio_hvc_clamped_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped3_pad_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped3_pad_ss_100C_1v60_3v00_3v00.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped_pad_ss_100C_1v60_3v00.lib
- $::env(PDK_REF_PATH)/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib
-"
-
diff --git a/deps/timing-scripts/env/t.tcl b/deps/timing-scripts/env/t.tcl
deleted file mode 100644
index c9eea15..0000000
--- a/deps/timing-scripts/env/t.tcl
+++ /dev/null
@@ -1,21 +0,0 @@
-set libs "
- $::env(PDK_REF_PATH)/${std_cell_library}/lib/${std_cell_library}__tt_025C_1v80.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__tt_025C_3v30.lib
- $::env(PDK_REF_PATH)/${special_voltage_library}/lib/${special_voltage_library}__tt_025C_3v30_lv1v80.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_gpiov2_tt_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_hvc_wpad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_ground_lvc_wpad_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_power_lvc_wpad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_fd_io__top_xres4v2_tt_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__gpiov2_pad_tt_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vdda_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssa_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vddio_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssio_hvc_clamped_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped3_pad_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vccd_lvc_clamped3_pad_tt_025C_1v80_3v30_3v30.lib
- $::env(PDK_REF_PATH)/${io_library}/lib/sky130_ef_io__vssd_lvc_clamped_pad_tt_025C_1v80_3v30.lib
- $::env(PDK_REF_PATH)/sky130_sram_macros/lib/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib
-"
-
diff --git a/deps/timing-scripts/requirements.txt b/deps/timing-scripts/requirements.txt
deleted file mode 100644
index dca9a90..0000000
--- a/deps/timing-scripts/requirements.txt
+++ /dev/null
@@ -1 +0,0 @@
-click
diff --git a/deps/timing-scripts/scripts/compare_reports.py b/deps/timing-scripts/scripts/compare_reports.py
deleted file mode 100644
index 1276473..0000000
--- a/deps/timing-scripts/scripts/compare_reports.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python3
-import click
-
-from report import Report
-
-
-@click.command(
- help="""
- attempts to compare two sta reports
- """
-)
-@click.option("--first", "-f", required=True, type=str)
-@click.option("--first-label", default="first", type=str)
-@click.option("--second-label", default="second", type=str)
-@click.option("--second", "-s", required=True, type=str)
-@click.option("--output", "-o", required=True, type=str)
-def main(first, second, output, first_label, second_label):
- first_report = Report(first)
- second_report = Report(second)
-
- print(f"{first_label} {len(first_report.paths)}")
- print(f"{second_label} {len(second_report.paths)}")
- f_output = open(output, "w+")
- f_first_diff = open(f"{first}.diff", "w+")
- f_second_diff = open(f"{second}.diff", "w+")
- header = (
- f"start,end,group,type,{first_label},{second_label},"
- f"required_first,required_second,first-second,percent"
- )
- f_output.write(f"{header}\n")
-
- matches_count = 0
- b = 0
- c = 0
-
- for first_path in first_report.paths:
- if first_path in second_report.paths:
- matches = [
- element for element in second_report.paths if first_path == element
- ]
- if len(matches) == 1:
- matches_count += 1
- second_path = matches[0]
- delta = first_path.slack - second_path.slack
- percent = delta / first_path.slack * 100.0
- path_summary = (
- f"{first_path.start_point},{first_path.end_point},"
- f"{first_path.path_group},"
- f"{first_path.path_type},"
- f"{first_path.slack:.4f},"
- f"{second_path.slack:.4f},"
- f"{first_path.required_time:.4f},"
- f"{second_path.required_time:.4f},"
- f"{delta:.4f},{percent:.2f}%"
- )
- f_output.write(f"{path_summary}\n")
-
- f_first_diff.write(f"{first_path.start_point}\n")
- f_first_diff.write(f"{first_path.end_point}\n")
- f_first_diff.write(f"{first_path.path}\n")
- f_second_diff.write(f"------------\n")
-
- f_second_diff.write(f"{second_path.start_point}\n")
- f_second_diff.write(f"{second_path.end_point}\n")
- f_second_diff.write(f"{second_path.path}\n")
- f_second_diff.write(f"------------\n")
- elif len(matches) > 1:
- b += 1
- # print(
- # f"{path.start_point},{path.end_point},{path.path_group},{path.path_type},{path.slack}"
- # )
- else:
- c += 1
-
- f_output.close()
- f_first_diff.close()
- f_second_diff.close()
- print("matches:", matches_count)
- print("non unique matches:", b)
- print("unmatched:", c)
- print("done")
-
-
-if __name__ == "__main__":
- main()
diff --git a/deps/timing-scripts/scripts/generate_spef_mapping.py b/deps/timing-scripts/scripts/generate_spef_mapping.py
deleted file mode 100644
index 0094c7b..0000000
--- a/deps/timing-scripts/scripts/generate_spef_mapping.py
+++ /dev/null
@@ -1,120 +0,0 @@
-from pathlib import Path
-from verilog_parser import VerilogParser
-from pdk_helpers import get_macros, get_pdk_lefs_paths
-import click
-import logging
-
-
-@click.command(
- help="""parses a verilog gatelevel netlist and creates a
- spef mapping file for non pdk macros. the file is used
- along with the other scripts in the repo for proper parasitics annotation
- during sta"""
-)
-@click.option(
- "--input",
- "-i",
- required=True,
- type=click.Path(exists=True, dir_okay=False),
- help="input verilog netlist",
-)
-@click.option(
- "--project-root",
- required=True,
- type=click.Path(exists=True, file_okay=False),
- help="path of the project that will be used in the output spef mapping file and finding verilog modules",
-)
-@click.option(
- "--output", "-o", required=True, type=str, help="spef mapping tcl output file"
-)
-@click.option(
- "--pdk-path", required=True, type=click.Path(exists=True, file_okay=False)
-)
-@click.option(
- "--macro-parent",
- required=False,
- type=str,
- default="",
- help="optional name of the parent of the macro",
-)
-@click.option("--debug", is_flag=True)
-def main(input, project_root, output, pdk_path, macro_parent, debug=False):
- """
- Parse a verilog netlist
- """
- output_path = Path(output)
- output_path.parents[0].mkdir(parents=True, exist_ok=True)
- logging.basicConfig(format="%(asctime)s | %(module)s | %(levelname)s | %(message)s")
- logger = logging.getLogger()
- if debug:
- logger.setLevel(logging.DEBUG)
- else:
- logger.setLevel(logging.INFO)
-
- logger.info(f"using project_root {project_root}")
-
- pdk_macros = []
- logger.info("getting pdk macros ..")
- lef_paths = get_pdk_lefs_paths(pdk_path)
- for lef in lef_paths:
- pdk_macros = pdk_macros + get_macros(lef)
- logger.debug(f"pdk has {len(pdk_macros)} macros")
-
- with open(output_path, "w") as f:
- for mapping in run(input, project_root, pdk_macros, logger, macro_parent):
- logging.debug(mapping)
- f.write(mapping)
-
- logger.info(f"wrote to {output_path}")
-
-
-def run(input, project_root, pdk_macros, logger, macro_parent=""):
- logger.info(f"parsing netlist {input} ..")
- parsed = VerilogParser(input, logger)
- logger.info("comparing macros against pdk macros ..")
- postfix = ".$::env(RCX_CORNER).spef"
-
- mappings = []
- non_pdk_instance = []
- for instance in parsed.instances:
- macro = parsed.instances[instance]
- if macro not in pdk_macros:
- logging.debug(f"{macro} not found in pdk_macros")
- non_pdk_instance.append(instance)
-
- logging.debug(f"# of non pdk instances {len(non_pdk_instance)}")
- # recursion will break if above is zero
- for instance in non_pdk_instance:
- macro = parsed.instances[instance]
- mapping_key = instance
- hier_separator = "/"
- if macro_parent != "":
- mapping_key = f"{macro_parent}{hier_separator}{instance}"
-
- existing_netlist = list(
- (Path(project_root) / "verilog" / "gl").rglob(f"{macro}.v")
- )
- if len(existing_netlist) == 1:
- logging.info(f"found netlist {str(existing_netlist[0])} for macro {macro}")
- mappings += run(
- input=str(existing_netlist[0]),
- project_root=project_root,
- pdk_macros=pdk_macros,
- logger=logger,
- macro_parent=mapping_key,
- )
-
- spef_dir = Path(project_root) / "signoff" / "not-found"
- for macro_spef_file in (Path(project_root) / "signoff").rglob(f"{macro}*.spef"):
- spef_dir = macro_spef_file.parent
- logging.debug(f"found {macro_spef_file} for {macro}")
- spef_rel_dir = spef_dir.relative_to(project_root)
- macro_spef = f"$::env(PROJECT_ROOT)/{spef_rel_dir}/{macro}{postfix}"
- mappings.append(f'set spef_mapping({mapping_key}) "{macro_spef}"\n')
-
- return mappings
-
-
-# sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-if __name__ == "__main__":
- main()
diff --git a/deps/timing-scripts/scripts/get_macros.py b/deps/timing-scripts/scripts/get_macros.py
deleted file mode 100644
index f6abdf9..0000000
--- a/deps/timing-scripts/scripts/get_macros.py
+++ /dev/null
@@ -1,121 +0,0 @@
-from __future__ import absolute_import
-from __future__ import print_function
-from pathlib import Path
-from verilog_parser import VerilogParser
-from pdk_helpers import get_pdk_lefs_paths, get_macros
-import click
-import logging
-import os
-import sys
-
-
-@click.command(
- help="""parses a verilog gatelevel netlist and
- prints the non scl instance names
- """
-)
-@click.option(
- "--input",
- "-i",
- required=True,
- type=click.Path(exists=True, dir_okay=False),
- help="input verilog netlist",
-)
-@click.option(
- "--pdk-path", required=True, type=click.Path(exists=True, file_okay=False)
-)
-@click.option(
- "--output",
- "-o",
- required=True,
- type=str,
- help="output file in the format each line <instance_name> <instance_type>",
-)
-@click.option(
- "--project-root",
- required=True,
- type=click.Path(exists=True, file_okay=False),
- help="path of the project that will be used in the finding verilog modules",
-)
-@click.option(
- "--macro-parent",
- required=False,
- type=str,
- default="",
- help="optional name of the parent of the macro",
-)
-@click.option("--debug", is_flag=True)
-def main(input, output, pdk_path, project_root, macro_parent, debug=False):
- """
- Parse a verilog netlist
- """
- logging.basicConfig(format="%(asctime)s | %(module)15s | %(levelname)6s | %(message)s")
- logger = logging.getLogger()
- if debug:
- logger.setLevel(logging.DEBUG)
- else:
- logger.setLevel(logging.INFO)
-
- output_path = Path(output)
- output_path.parents[0].mkdir(parents=True, exist_ok=True)
-
- pdk_macros = []
- logger.info("getting pdk macros..")
- lef_paths = get_pdk_lefs_paths(pdk_path)
- for lef in lef_paths:
- pdk_macros = pdk_macros + get_macros(lef)
- logger.debug(pdk_macros)
-
-
- with open(output_path, "w") as f:
- for macro in run(input, project_root, pdk_macros, logger, macro_parent):
- f.write(macro)
-
- logger.info("done.")
-
-def run(input, project_root, pdk_macros, logger, macro_parent=""):
- logger.info(f"parsing netlist {input} ..")
- parsed = VerilogParser(input, logger)
- logger.info("comparing macros against pdk macros ..")
-
- macros = []
- non_pdk_instance = []
- for instance in parsed.instances:
- macro = parsed.instances[instance]
- if macro not in pdk_macros:
- logging.debug(f"{macro} not found in pdk_macros")
- non_pdk_instance.append(instance)
-
- logging.debug(f"# of non pdk instances {len(non_pdk_instance)}")
- # recursion will break if above is zero
- for instance in non_pdk_instance:
- macro = parsed.instances[instance]
- mapping_key = instance
- hier_separator = "/"
- if macro_parent != "":
- mapping_key = f"{macro_parent}{hier_separator}{instance}"
-
- search_path = (Path(project_root) / "verilog" / "gl")
- logging.debug(f"searching for {macro} netlist in {search_path}")
- existing_netlist = list(
- search_path.rglob(f"{macro}.v")
- )
- logging.debug(f"found {len(existing_netlist)} matches.")
- if len(existing_netlist) == 1:
- logging.info(f"found netlist {str(existing_netlist[0])} for macro {macro}")
- macros += run(
- input=str(existing_netlist[0]),
- project_root=project_root,
- pdk_macros=pdk_macros,
- logger=logger,
- macro_parent=mapping_key,
- )
-
- macros.append(f'{instance} {macro}\n')
-
- return macros
-
-
-sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-if __name__ == "__main__":
- main()
diff --git a/deps/timing-scripts/scripts/openroad/rcx.tcl b/deps/timing-scripts/scripts/openroad/rcx.tcl
deleted file mode 100644
index dfe3e9c..0000000
--- a/deps/timing-scripts/scripts/openroad/rcx.tcl
+++ /dev/null
@@ -1,35 +0,0 @@
-source $::env(TIMING_ROOT)/env/common.tcl
-source $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl
-
-set libs [split [regexp -all -inline {\S+} $libs]]
-set extra_lefs [split [regexp -all -inline {\S+} $extra_lefs]]
-
-foreach liberty $libs {
- run_puts "read_liberty $liberty"
-}
-foreach lef $lefs {
- run_puts "read_lef $lef"
-}
-run_puts "read_lef $sram_lef"
-
-foreach lef_file $extra_lefs {
- run_puts "read_lef $lef_file"
-}
-
-run_puts "read_def $def"
-# don't think we need to read sdc
-
-run_puts "define_process_corner -ext_model_index 0 X"
-run_puts "extract_parasitics \
- -ext_model_file $rcx_rules_file \
- -lef_res"
-
-run_puts "write_spef $spef"
-run_puts "read_spef $spef"
-
-puts "spef: $spef"
-puts "def: $def"
-puts "rcx: $rcx_rules_file"
-puts "rcx-corner: $::env(RCX_CORNER)"
-puts "lib-corner: $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl"
-puts "tech_lef: $tech_lef"
diff --git a/deps/timing-scripts/scripts/openroad/sdf.tcl b/deps/timing-scripts/scripts/openroad/sdf.tcl
deleted file mode 100644
index 382ef89..0000000
--- a/deps/timing-scripts/scripts/openroad/sdf.tcl
+++ /dev/null
@@ -1,60 +0,0 @@
-source $::env(TIMING_ROOT)/env/common.tcl
-source $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl
-
-set libs [split [regexp -all -inline {\S+} $libs]]
-set verilogs [split [regexp -all -inline {\S+} $verilogs]]
-
-
-foreach lef $lefs {
- if {[catch {read_lef $lef} errmsg]} {
- puts stderr $errmsg
- exit 1
- }
-}
-
-if {[catch {read_lef $sram_lef} errmsg]} {
- puts stderr $errmsg
- exit 1
-}
-
-foreach lef_file $extra_lefs {
- if {[catch {read_lef $lef_file} errmsg]} {
- puts stderr $errmsg
- exit 1
- }
-}
-
-foreach liberty $libs {
- read_liberty $liberty
-}
-
-#foreach verilog $verilogs {
-# puts "reading veriolg: $verilog"
-# read_verilog $verilog
-#}
-
-set verilog $::env(CUP_ROOT)/verilog/gl/$::env(BLOCK).v
-if { ![file exists $verilog] } {
- set verilog $::env(MCW_ROOT)/verilog/gl/$::env(BLOCK).v
-}
-if { ![file exists $verilog] } {
- set verilog $::env(CARAVEL_ROOT)/verilog/gl/$::env(BLOCK).v
-}
-
-read_verilog $verilog
-
-
-link_design $block
-
-puts "read_spef $spef"
-read_spef $spef
-#read_sdc $sdc
-write_sdf $sdf -divider . -include_typ
-
-puts "block: $block"
-puts "spef: $spef"
-puts "verilog: $verilog"
-puts "sdf: $sdf"
-puts "sdc: $sdc"
-puts "rcx-corner: $::env(RCX_CORNER)"
-puts "lib-corner: $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl"
diff --git a/deps/timing-scripts/scripts/openroad/sta-gpio_control_block.tcl b/deps/timing-scripts/scripts/openroad/sta-gpio_control_block.tcl
deleted file mode 100644
index e224905..0000000
--- a/deps/timing-scripts/scripts/openroad/sta-gpio_control_block.tcl
+++ /dev/null
@@ -1,42 +0,0 @@
-source $::env(TIMING_ROOT)/env/common.tcl
-source $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl
-
-set libs [split [regexp -all -inline {\S+} $libs]]
-
-foreach liberty $libs {
- read_liberty $liberty
-}
-
-
-set verilogs [list \
- $::env(CARAVEL_ROOT)/verilog/gl/gpio_logic_high.v \
- $::env(CARAVEL_ROOT)/verilog/gl/gpio_control_block.v \
-]
-foreach verilog $verilogs {
- puts "read_verilog $verilog"
- read_verilog $verilog
-}
-
-link_design $block
-
-set spef $::env(CARAVEL_ROOT)/spef/gpio_control_block.spef
-puts "read_spef $spef"
-read_spef $spef
-
-puts "read_spef -path gpio_logic_high $::env(CARAVEL_ROOT)/spef/gpio_logic_high.spef"
-read_spef -path gpio_logic_high $::env(CARAVEL_ROOT)/spef/gpio_logic_high.spef
-
-read_sdc -echo $sdc
-
-report_checks -path_delay min -fields {slew cap input nets fanout} -format full_clock_expanded -group_count 50
-
-report_worst_slack -max
-report_worst_slack -min
-
-puts "block: $block"
-puts "spef: $spef"
-puts "verilog: $verilog"
-puts "sdf: $sdf"
-puts "sdc: $sdc"
-puts "rcx-corner: $::env(RCX_CORNER)"
-puts "lib-corner: $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl"
diff --git a/deps/timing-scripts/scripts/openroad/timing_top.tcl b/deps/timing-scripts/scripts/openroad/timing_top.tcl
deleted file mode 100644
index 02390ed..0000000
--- a/deps/timing-scripts/scripts/openroad/timing_top.tcl
+++ /dev/null
@@ -1,289 +0,0 @@
-source $::env(TIMING_ROOT)/env/common.tcl
-source $::env(TIMING_ROOT)/env/caravel_spef_mapping-mpw7.tcl
-
-if { [file exists $::env(CUP_ROOT)/env/spef-mapping.tcl] } {
- source $::env(CUP_ROOT)/env/spef-mapping.tcl
-} else {
- puts "WARNING no user project spef mapping file found"
-}
-
-source $::env(TIMING_ROOT)/env/$::env(LIB_CORNER).tcl
-
-set libs [split [regexp -all -inline {\S+} $libs]]
-set verilogs [split [regexp -all -inline {\S+} $verilogs]]
-
-
-foreach liberty $libs {
-}
-
-foreach liberty $libs {
- run_puts "read_liberty $liberty"
-}
-
-foreach verilog $verilogs {
- run_puts "read_verilog $verilog"
-}
-
-run_puts "link_design caravel"
-
-if { $::env(SPEF_OVERWRITE) ne "" } {
- puts "overwriting spef from "
- puts "$spef to"
- puts "$::env(SPEF_OVERWRITE)"
- eval set spef $::env(SPEF_OVERWRITE)
-}
-
-set missing_spefs 0
-set missing_spefs_list ""
-run_puts "read_spef $spef"
-foreach key [array names spef_mapping] {
- set spef_file $spef_mapping($key)
- if { [file exists $spef_file] } {
- run_puts "read_spef -path $key $spef_mapping($key)"
- } else {
- set missing_spefs 1
- set missing_spefs_list "$missing_spefs_list $key"
- puts "$spef_file not found"
- if { $::env(ALLOW_MISSING_SPEF) } {
- puts "WARNING ALLOW_MISSING_SPEF set to 1. continuing"
- } else {
- exit 1
- }
- }
-}
-
-set sdc $::env(CARAVEL_ROOT)/signoff/caravel/caravel.sdc
-run_puts "read_sdc -echo $sdc"
-
-set logs_path "$::env(PROJECT_ROOT)/signoff/caravel/openlane-signoff/timing/$::env(RCX_CORNER)/$::env(LIB_CORNER)"
-file mkdir [file dirname $logs_path]
-
-
-run_puts_logs "report_check_types \\
- -max_delay \\
- -min_delay \\
- -max_slew \\
- -max_capacitance \\
- -clock_gating_setup \\
- -clock_gating_hold \\
- -format end \\
- -violators" \
- "${logs_path}-summary.rpt"
-
-
-set max_delay_result "met"
-set min_delay_result "met"
-set max_slew_result "met"
-set max_cap_result "met"
-set missing_spefs_result "incomplete"
-
-set report ${logs_path}-summary.rpt
-
-set max_cap_value "[exec bash -c "grep 'max cap' $report -A 4 | tail -n1 | awk -F ' *' '{print \$4}'"]"
-set worst_hold "[exec bash -c "grep 'min_delay\/hold' $report -A 10 | grep VIOLATED | head -n1 | awk -F ' *' '{print \$5}'"]"
-set worst_setup "[exec bash -c "grep 'max_delay\/setup' $report -A 10 | grep VIOLATED | head -n1 | awk -F ' *' '{print \$5}'"]"
-set max_slew_value "[exec bash -c "grep 'max slew' $report -A 4 | tail -n1 | awk -F ' *' '{print \$4}'"]"
-
-set table_format "%7s| %15s |%15s |%15s |%15s |%15s"
-set header [format "$table_format" "corner" "max cap" "max slew" "min delay" "max delay" "spefs"]
-if {![catch {exec grep -q {max cap} $report} err]} {
- set max_cap_result "vio($max_cap_value)"
-}
-
-if {![catch {exec grep -q {max slew} $report} err]} {
- set max_slew_result "vio($max_slew_value)"
-}
-
-if {![catch {exec grep -q {min_delay\/hold} $report} err]} {
- set min_delay_result "vio($worst_hold)"
-}
-
-if {![catch {exec grep -q {max_delay\/setup} $report} err]} {
- set max_delay_result "vio($worst_setup)"
-}
-
-if { !$missing_spefs } {
- set missing_spefs_result "complete"
-}
-
-set summary [format "$table_format" "$::env(LIB_CORNER)-$::env(RCX_CORNER)"\
- "$max_cap_result" \
- "$max_slew_result" \
- "$min_delay_result"\
- "$max_delay_result"\
- "$missing_spefs_result"]
-
-exec echo "$header" >> "${logs_path}-summary.rpt"
-exec echo "$summary" >> "${logs_path}-summary.rpt"
-
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 10000 \\
- -slack_max 10 \\
- -digits 4 \\
- -endpoint_count 10 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-min.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 10000 \\
- -slack_max 10 \\
- -digits 4 \\
- -endpoint_count 10 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-max.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group hk_serial_clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-hk_serial_clk-min.rpt"
-
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group hk_serial_clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-hk_serial_clk-max.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group hkspi_clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-hkspi_clk-max.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group hkspi_clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-hkspi_clk-min.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-clk-min.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -path_group clk \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-clk-max.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -through [get_cells soc] \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-soc-min.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -through [get_cells soc] \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 1000 \\
- -slack_max 10 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-soc-max.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay min \\
- -through [get_cells mprj] \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 1000 \\
- -slack_max 40 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-mprj-min.rpt"
-
-run_puts_logs "report_checks \\
- -path_delay max \\
- -through [get_cells mprj] \\
- -format full_clock_expanded \\
- -fields {slew cap input_pins nets fanout} \\
- -no_line_splits \\
- -group_count 1000 \\
- -slack_max 40 \\
- -digits 4 \\
- -unique_paths_to_endpoint \\
- "\
- "${logs_path}-mprj-max.rpt"
-
-run_puts "report_parasitic_annotation -report_unannotated > ${logs_path}-unannotated.log"
-if { $missing_spefs } {
- puts "there are missing spefs. check the log for ALLOW_MISSING_SPEF"
- puts "the following macros don't have spefs"
- foreach spef $missing_spefs_list {
- puts "$spef"
- }
-}
-report_parasitic_annotation
-
-
-puts "you may want to edit sdc: $sdc to change i/o constraints"
-puts "check $logs_path"
diff --git a/deps/timing-scripts/scripts/pdk_helpers.py b/deps/timing-scripts/scripts/pdk_helpers.py
deleted file mode 100644
index 6536e9b..0000000
--- a/deps/timing-scripts/scripts/pdk_helpers.py
+++ /dev/null
@@ -1,21 +0,0 @@
-from typing import List
-import os
-
-def get_pdk_lefs_paths(pdk_path: str) -> List[str]:
- lef_paths = []
- for root, dirs, files in os.walk(pdk_path):
- for file in files:
- filename, file_extension = os.path.splitext(f"{file}")
- if file_extension == ".lef":
- lef_paths.append(f"{root}/{file}")
- return lef_paths
-
-
-def get_macros(lef_file: str) -> List[str]:
- macros = []
- with open(lef_file) as f:
- for line in f.readlines():
- if "MACRO" in line:
- macro_name = line.split()[1]
- macros.append(macro_name)
- return macros
diff --git a/deps/timing-scripts/scripts/report.py b/deps/timing-scripts/scripts/report.py
deleted file mode 100644
index 1b96505..0000000
--- a/deps/timing-scripts/scripts/report.py
+++ /dev/null
@@ -1,83 +0,0 @@
-from timing_path import TimingPath
-
-
-class Report:
- def __init__(self, report_file):
- self.report_file = report_file
- self.paths = []
- self.input_output_paths = []
- self.input_flipflop_paths = []
- self.flipflop_flipflop_paths = []
- self.flipflop_output_paths = []
- self.build_db()
- self.classify_paths()
-
- def classify_paths(self):
- for path in self.paths:
- path_category = path.category
- if path_category == "input-output":
- self.input_output_paths.append(path)
- elif path_category == "input-flipflop":
- self.input_flipflop_paths.append(path)
- elif path_category == "flipflop-flipflop":
- self.flipflop_flipflop_paths.append(path)
- elif path_category == "flipflop-output":
- self.flipflop_output_paths.append(path)
-
- def build_db(self):
- file = open(self.report_file)
- start_point = end_point = path_group = path_values = ""
-
- line = file.readline()
- while line != "":
- line = line.strip()
- if "Startpoint" in line:
- x = file.tell()
- start_point = " ".join(line.split(" ")[1:])
- line2 = file.readline()
- if "Endpoint" not in line2:
- start_point += line2
- else:
- file.seek(x)
- elif "Endpoint" in line:
- x = file.tell()
- end_point = " ".join(line.split(" ")[1:])
- line2 = file.readline()
- if "Path Group" not in line2:
- end_point += line2
- else:
- file.seek(x)
- elif "Path Group" in line:
- path_group = line.split(" ")[2]
- elif "Path Type" in line:
- path_type = line.split(" ")[2]
-
- path_line = file.readline()
- while path_line != "":
- if "Startpoint" in path_line:
- path_object = TimingPath(
- start_point=start_point.rstrip(),
- end_point=end_point.rstrip(),
- path_group=path_group.rstrip(),
- path_type=path_type,
- path=path_values,
- )
- self.paths.append(path_object)
-
- path_line = path_line.strip()
- start_point = " ".join(path_line.split(" ")[1:])
- x = file.tell()
- line2 = file.readline()
- if "Endpoint" not in line2:
- start_point += line2
- else:
- file.seek(x)
-
- path_values = ""
- break
- else:
- path_values += path_line
- path_line = file.readline()
- line = file.readline()
-
- file.close()
diff --git a/deps/timing-scripts/scripts/summarize_report.py b/deps/timing-scripts/scripts/summarize_report.py
deleted file mode 100644
index efc0317..0000000
--- a/deps/timing-scripts/scripts/summarize_report.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python3
-
-import argparse
-from report import Report
-from timing_path import TimingPath
-
-parser = argparse.ArgumentParser(
- description="summarizes sta reports. tested on pt and opensta"
-)
-parser.add_argument("--input", "-i", required=True)
-parser.add_argument("--output", "-o", required=True)
-
-args = parser.parse_args()
-report_file = args.input
-output_file = args.output
-
-report = Report(report_file)
-
-output_files_stream = open(f"{output_file}", "w")
-
-output_files_stream.write(
- f"--------------input-flipflop_paths#{len(report.input_flipflop_paths)}-------------------\n"
-)
-output_files_stream.write(TimingPath.get_header())
-for path in report.input_flipflop_paths:
- output_files_stream.write(path.summarize())
-output_files_stream.write(
- f"--------------input-output_paths#{len(report.input_output_paths)}---------------------\n"
-)
-output_files_stream.write(TimingPath.get_header())
-for path in report.input_output_paths:
- output_files_stream.write(path.summarize())
-output_files_stream.write(
- f"--------------flipflop-flipflop_paths#{len(report.flipflop_flipflop_paths)}----------------\n"
-)
-output_files_stream.write(TimingPath.get_header())
-for path in report.flipflop_flipflop_paths:
- output_files_stream.write(path.summarize())
-output_files_stream.write(
- f"--------------flipflop-output_paths#{len(report.flipflop_output_paths)}------------------\n"
-)
-output_files_stream.write(TimingPath.get_header())
-for path in report.flipflop_output_paths:
- output_files_stream.write(path.summarize())
diff --git a/deps/timing-scripts/scripts/timing_path.py b/deps/timing-scripts/scripts/timing_path.py
deleted file mode 100644
index c77a624..0000000
--- a/deps/timing-scripts/scripts/timing_path.py
+++ /dev/null
@@ -1,112 +0,0 @@
-import textwrap
-import re
-
-
-class TimingPath:
- def __init__(self, start_point, end_point, path_group, path_type, path):
- self.start_point = start_point
- self.end_point = end_point
- self.path_group = path_group
- self.path_type = path_type
- self.path = path
- self.category = ""
- self.slack = None
- self.edges = ""
- self.required_time = None
- self.arrival_time = None
- self.find_category()
- self.simplify_points()
- self.find_slack()
- self.find_required()
- self.find_arrival()
- self.id = self.start_point + self.end_point + self.path_group + self.path_type
-
- def find_required(self):
- for line in self.path.split("\n"):
- if "required time" in line:
- self.required_time = float(re.findall(
- r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?", line
- )[0].strip())
- break
-
- def find_arrival(self):
- for line in self.path:
- if "arrival time" in line:
- self.arrival_time = float(re.findall(
- r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?", line
- )[0].strip())
- break
-
- def find_edges(self):
- split_path = self.path.split("\n")
- edge = "f"
- for line in split_path:
- if "^" in line or " r" in line:
- edge = "r"
- self.edges = self.edges + edge
- elif "v" in line or " f" in line:
- edge = "f"
- self.edges = self.edges + edge
- elif "data arrival time" in line:
- break
-
- def simplify_points(self):
- if len(self.start_point.split()) > 1:
- self.start_point = self.start_point.split()[0]
- if len(self.end_point.split()) > 1:
- self.end_point = self.end_point.split()[0]
-
- @classmethod
- def get_header(cls):
- start_point = "start_point"
- end_point = "end_point"
- group = "group"
- type = "type"
- slack = "slack"
- return f"{start_point},{end_point},{group},{type},{slack}\n"
-
- def find_slack(self):
- slack = ""
- for line in self.path.splitlines():
- if "slack" in line:
- slack = textwrap.dedent(line)
- break
- self.slack = re.findall(
- r"[+-]? *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?", slack
- )[0].strip()
- self.slack = float(self.slack)
-
- def summarize(self):
- slack_value = self.slack
- group = self.path_group
- type = self.path_type
- start_point = self.start_point
- end_point = self.end_point
- return f"{start_point},{end_point},{group},{type},{slack_value:.4f}\n"
-
- def find_category(self):
- start = ""
- end = ""
- if "input" in self.start_point:
- start = "input"
- else:
- start = "flipflop"
- if "output" in self.end_point:
- end = "output"
- else:
- end = "flipflop"
-
- self.category = f"{start}-{end}"
-
- def __eq__(self, other):
- return self.id == other.id
-
- def __str__(self):
- return f"""
-Startpoint: {self.start_point}
-Endpoint: {self.end_point}
-Path group: {self.path_group}
-Path type: {self.path_type}
-Path:
-{self.path}
-"""
diff --git a/deps/timing-scripts/scripts/verilog_parser.py b/deps/timing-scripts/scripts/verilog_parser.py
deleted file mode 100644
index 3bb15fd..0000000
--- a/deps/timing-scripts/scripts/verilog_parser.py
+++ /dev/null
@@ -1,40 +0,0 @@
-import subprocess
-import os
-import json
-
-
-class VerilogParser:
- def __init__(self, verilog_netlist, logger):
- self.verilog_netlist = verilog_netlist
- self.instances = {}
- self.logger = logger
- self.yosys_to_json()
-
- # self.instances[instance.name] = instance.module
-
- def yosys_to_json(self):
- yosys_env = os.environ.copy()
- script_path = os.path.dirname(os.path.abspath(__file__))
- yosys_env["YOSYS_VERILOG_IN"] = self.verilog_netlist
- yosys_env["YOSYS_JSON_OUT"] = "./tmp.json"
- self.logger.debug("running yosys ..")
- process = subprocess.run(
- f"yosys -c {script_path}/yosys/to-json.tcl".split(),
- env=yosys_env,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
- )
- if process.returncode:
- self.logger.error(process.stdout.decode("utf-8"))
-
- self.logger.debug("reading json ..")
- f = open("./tmp.json")
- data = json.load(f)
- f.close()
- os.remove("./tmp.json")
- module_name = os.path.basename(self.verilog_netlist)
- module_name = os.path.splitext(module_name)[0]
- self.logger.debug("parsing json ..")
- full_cells = data["modules"][module_name]["cells"]
- for cell in full_cells:
- self.instances[cell] = full_cells[cell]["type"]
diff --git a/deps/timing-scripts/scripts/yosys/to-json.tcl b/deps/timing-scripts/scripts/yosys/to-json.tcl
deleted file mode 100644
index 47c1529..0000000
--- a/deps/timing-scripts/scripts/yosys/to-json.tcl
+++ /dev/null
@@ -1,4 +0,0 @@
-yosys -import
-
-read_verilog $::env(YOSYS_VERILOG_IN)
-json -o $::env(YOSYS_JSON_OUT)
diff --git a/deps/timing-scripts/timing.mk b/deps/timing-scripts/timing.mk
deleted file mode 100644
index 148b384..0000000
--- a/deps/timing-scripts/timing.mk
+++ /dev/null
@@ -1,307 +0,0 @@
-OPENLANE_TAG ?= 2022.02.23_02.50.41
-OPENLANE_IMAGE_NAME ?= efabless/openlane:$(OPENLANE_TAG)
-export PDK ?= sky130A
-export RCX_CORNER ?= nom
-export LIB_CORNER ?= t
-export ALLOW_MISSING_SPEF ?= 1
-export PDK_REF_PATH = $(PDK_ROOT)/$(PDK)/libs.ref/
-export PDK_TECH_PATH = $(PDK_ROOT)/$(PDK)/libs.tech/
-export PROJECT_ROOT ?= $(CARAVEL_ROOT)
-
-logs-dir = $(PROJECT_ROOT)/logs
-logs = $(logs-dir)/rcx $(logs-dir)/sdf $(logs-dir)/top $(logs-dir)/sta
-$(logs):
- mkdir -p $@
-
-SPEF_OVERWRITE ?= ""
-define docker_run_base
- docker run \
- --rm \
- -e PROJECT_ROOT=$(PROJECT_ROOT) \
- -e BLOCK=$1 \
- -e PDK=$(PDK) \
- -e LIB_CORNER=$(LIB_CORNER) \
- -e RCX_CORNER=$(RCX_CORNER) \
- -e MCW_ROOT=$(MCW_ROOT) \
- -e SPEF_OVERWRITE=$(SPEF_OVERWRITE) \
- -e CUP_ROOT=$(CUP_ROOT) \
- -e CARAVEL_ROOT=$(CARAVEL_ROOT) \
- -e TIMING_ROOT=$(TIMING_ROOT) \
- -e PDK_REF_PATH=$(PDK_ROOT)/$(PDK)/libs.ref/ \
- -e PDK_TECH_PATH=$(PDK_ROOT)/$(PDK)/libs.tech/ \
- -e ALLOW_MISSING_SPEF=$(ALLOW_MISSING_SPEF) \
- -v $(PDK_ROOT):$(PDK_ROOT) \
- -v $(CUP_ROOT):$(CUP_ROOT) \
- -v $(MCW_ROOT):$(MCW_ROOT) \
- -v $(TIMING_ROOT):$(TIMING_ROOT) \
- -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
- -v $(HOME):$(HOME) \
- -u $(shell id -u $(USER)):$(shell id -g $(USER)) \
- $(OPENLANE_IMAGE_NAME)
-endef
-
-
-define docker_run_sta
- $(call docker_run_base,$1) \
- bash -c "set -eo pipefail && sta -exit $(TIMING_ROOT)/scripts/openroad/sta-$*.tcl \
- |& tee $(logs-dir)/sta/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
- @echo "logged to $(logs-dir)/sta/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
-endef
-
-define docker_run_sdf
- $(call docker_run_base,$1) \
- bash -c "set -eo pipefail && openroad -exit $(TIMING_ROOT)/scripts/openroad/sdf.tcl \
- |& tee $(logs-dir)/sdf/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
- @echo "logged to $(logs-dir)/sdf/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
-endef
-
-define docker_run_rcx
- $(call docker_run_base,$1) \
- bash -c "set -eo pipefail && openroad -exit $(TIMING_ROOT)/scripts/openroad/rcx.tcl \
- |& tee $(logs-dir)/rcx/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
- @echo "logged to $(logs-dir)/rcx/$*-$(RCX_CORNER)-$(LIB_CORNER).log"
-endef
-
-blocks = $(shell cd $(CARAVEL_ROOT)/openlane && find * -maxdepth 0 -type d)
-blocks := $(subst user_project_wrapper,,$(blocks))
-ifneq ($(CARAVEL_ROOT),$(MCW_ROOT))
-blocks += $(shell cd $(MCW_ROOT)/openlane && find * -maxdepth 0 -type d)
-endif
-ifneq ($(CARAVEL_ROOT),$(CUP_ROOT))
-blocks += $(shell cd $(CUP_ROOT)/openlane && find * -maxdepth 0 -type d)
-endif
-
-# we don't have user_id_programming.def)
-# mgmt_protect_hvl use hvl library which we don't handle yet
-blocks := $(subst mgmt_protect_hvl,,$(blocks))
-blocks := $(subst chip_io_alt,,$(blocks))
-blocks := $(subst user_id_programming,,$(blocks))
-blocks := $(subst user_analog_project_wrapper,,$(blocks))
-blocks := $(subst caravan,,$(blocks))
-
-defs = $(shell cd $(CARAVEL_ROOT)/def && find *.def -maxdepth 0 -type f ! -name 'user_project_wrapper.def')
-ifneq ($(CARAVEL_ROOT),$(MCW_ROOT))
-defs += $(shell cd $(MCW_ROOT)/def && find *.def -maxdepth 0 -type f)
-endif
-ifneq ($(CARAVEL_ROOT),$(CUP_ROOT))
-defs += $(shell cd $(CUP_ROOT)/def && find *.def -maxdepth 0 -type f)
-endif
-
-rcx-blocks = $(defs:%.def=rcx-%)
-rcx-blocks-nom = $(blocks:%=rcx-%-nom)
-rcx-blocks-max = $(blocks:%=rcx-%-max)
-rcx-blocks-min = $(blocks:%=rcx-%-min)
-rcx-blocks-t = $(blocks:%=rcx-%-t)
-rcx-blocks-f = $(blocks:%=rcx-%-f)
-rcx-blocks-s = $(blocks:%=rcx-%-s)
-
-sdf-blocks = $(blocks:%=sdf-%)
-sdf-blocks-t = $(blocks:%=sdf-%-t)
-sdf-blocks-f = $(blocks:%=sdf-%-f)
-sdf-blocks-s = $(blocks:%=sdf-%-s)
-sdf-blocks-nom = $(blocks:%=sdf-%-nom)
-sdf-blocks-min = $(blocks:%=sdf-%-min)
-sdf-blocks-max = $(blocks:%=sdf-%-max)
-
-$(sdf-blocks): sdf-%:
- $(MAKE) -f timing.mk sdf-$*-nom
- $(MAKE) -f timing.mk sdf-$*-min
- $(MAKE) -f timing.mk sdf-$*-max
-
-$(sdf-blocks-nom): export RCX_CORNER = nom
-$(sdf-blocks-min): export RCX_CORNER = min
-$(sdf-blocks-max): export RCX_CORNER = max
-$(sdf-blocks-nom): sdf-%-nom: sdf-%-t sdf-%-f sdf-%-s
-$(sdf-blocks-min): sdf-%-min: sdf-%-t sdf-%-f sdf-%-s
-$(sdf-blocks-max): sdf-%-max: sdf-%-t sdf-%-f sdf-%-s
-
-$(sdf-blocks-t): export LIB_CORNER = t
-$(sdf-blocks-s): export LIB_CORNER = s
-$(sdf-blocks-f): export LIB_CORNER = f
-$(sdf-blocks-t): sdf-%-t:
- $(call docker_run_sdf,$*)
-$(sdf-blocks-s): sdf-%-s:
- $(call docker_run_sdf,$*)
-$(sdf-blocks-f): sdf-%-f:
- $(call docker_run_sdf,$*)
-
-
-sta-blocks = $(blocks:%=sta-%)
-sta-blocks-t = $(blocks:%=sta-%-t)
-sta-blocks-f = $(blocks:%=sta-%-f)
-sta-blocks-s = $(blocks:%=sta-%-s)
-sta-blocks-nom = $(blocks:%=sta-%-nom)
-sta-blocks-min = $(blocks:%=sta-%-min)
-sta-blocks-max = $(blocks:%=sta-%-max)
-
-$(sta-blocks): sta-%:
- $(MAKE) -f timing.mk sta-$*-nom
- $(MAKE) -f timing.mk sta-$*-min
- $(MAKE) -f timing.mk sta-$*-max
-
-$(sta-blocks-nom): export RCX_CORNER = nom
-$(sta-blocks-min): export RCX_CORNER = min
-$(sta-blocks-max): export RCX_CORNER = max
-$(sta-blocks-nom): sta-%-nom: sta-%-t sta-%-f sta-%-s
-$(sta-blocks-min): sta-%-min: sta-%-t sta-%-f sta-%-s
-$(sta-blocks-max): sta-%-max: sta-%-t sta-%-f sta-%-s
-
-$(sta-blocks-t): export LIB_CORNER = t
-$(sta-blocks-s): export LIB_CORNER = s
-$(sta-blocks-f): export LIB_CORNER = f
-$(sta-blocks-t): sta-%-t: $(logs-dir)/sta
- $(call docker_run_sta,$*)
-$(sta-blocks-s): sta-%-s:
- $(call docker_run_sta,$*)
-$(sta-blocks-f): sta-%-f:
- $(call docker_run_sta,$*)
-
-
-$(rcx-blocks): rcx-%: $(rcx-requirements)
- $(MAKE) -f timing.mk rcx-$*-nom &
- $(MAKE) -f timing.mk rcx-$*-min &
- $(MAKE) -f timing.mk rcx-$*-max
-
-$(rcx-blocks-nom): export RCX_CORNER = nom
-$(rcx-blocks-min): export RCX_CORNER = min
-$(rcx-blocks-max): export RCX_CORNER = max
-$(rcx-blocks-nom): rcx-%-nom: rcx-%-t
-$(rcx-blocks-min): rcx-%-min: rcx-%-t
-$(rcx-blocks-max): rcx-%-max: rcx-%-t
-
-$(rcx-blocks-t): export LIB_CORNER = t
-$(rcx-blocks-s): export LIB_CORNER = s
-$(rcx-blocks-f): export LIB_CORNER = f
-$(rcx-blocks-t): rcx-%-t: $(logs-dir)/rcx
- $(call docker_run_rcx,$*)
-$(rcx-blocks-s): rcx-%-s:
- $(call docker_run_rcx,$*)
-$(rcx-blocks-f): rcx-%-f:
- $(call docker_run_rcx,$*)
-
-
-define docker_run_caravel_timing
- $(call docker_run_base,caravel) \
- bash -c "set -eo pipefail && sta -no_splash -exit $(TIMING_ROOT)/scripts/openroad/timing_top.tcl |& tee \
- $(logs-dir)/top/caravel-timing-$$(basename $(LIB_CORNER))-$(RCX_CORNER).log"
- @echo "logged to $(logs-dir)/top/caravel-timing-$$(basename $(LIB_CORNER))-$(RCX_CORNER).log"
-endef
-
-
-caravel-timing-typ-targets = caravel-timing-typ-nom
-caravel-timing-typ-targets += caravel-timing-typ-min
-caravel-timing-typ-targets += caravel-timing-typ-max
-
-caravel-timing-slow-targets = caravel-timing-slow-nom
-caravel-timing-slow-targets += caravel-timing-slow-min
-caravel-timing-slow-targets += caravel-timing-slow-max
-
-caravel-timing-fast-targets = caravel-timing-fast-nom
-caravel-timing-fast-targets += caravel-timing-fast-min
-caravel-timing-fast-targets += caravel-timing-fast-max
-
-caravel-timing-targets = $(caravel-timing-slow-targets)
-caravel-timing-targets += $(caravel-timing-fast-targets)
-caravel-timing-targets += $(caravel-timing-typ-targets)
-
-.PHONY: caravel-timing-typ
-$(caravel-timing-typ-targets): export LIB_CORNER = t
-caravel-timing-typ: caravel-timing-typ-nom caravel-timing-typ-min caravel-timing-typ-max
-
-.PHONY: caravel-timing-typ-nom
-.PHONY: caravel-timing-typ-min
-.PHONY: caravel-timing-typ-max
-caravel-timing-typ-nom: export RCX_CORNER = nom
-caravel-timing-typ-min: export RCX_CORNER = min
-caravel-timing-typ-max: export RCX_CORNER = max
-
-.PHONY: caravel-timing-slow
-$(caravel-timing-slow-targets): export LIB_CORNER = s
-caravel-timing-slow: caravel-timing-slow-nom caravel-timing-slow-min caravel-timing-slow-max
-
-.PHONY: caravel-timing-slow-nom
-.PHONY: caravel-timing-slow-min
-.PHONY: caravel-timing-slow-max
-caravel-timing-slow-nom: export RCX_CORNER = nom
-caravel-timing-slow-min: export RCX_CORNER = min
-caravel-timing-slow-max: export RCX_CORNER = max
-
-.PHONY: caravel-timing-fast
-$(caravel-timing-fast-targets): export LIB_CORNER = f
-caravel-timing-fast: caravel-timing-fast-nom caravel-timing-fast-min caravel-timing-fast-max
-
-.PHONY: caravel-timing-fast-nom
-.PHONY: caravel-timing-fast-min
-.PHONY: caravel-timing-fast-max
-caravel-timing-fast-nom: export RCX_CORNER = nom
-caravel-timing-fast-min: export RCX_CORNER = min
-caravel-timing-fast-max: export RCX_CORNER = max
-
-$(caravel-timing-targets): $(logs-dir)/top
- $(call docker_run_caravel_timing)
-
-
-# some useful dev double checking
-#
-rcx-requirements = $(CARAVEL_ROOT)/def/%.def
-rcx-requirements += $(CARAVEL_ROOT)/lef/%.lef
-rcx-requirements += $(CARAVEL_ROOT)/sdc/%.sdc
-rcx-requirements += $(CARAVEL_ROOT)/verilog/gl/%.v
-
-exceptions = $(MCW_ROOT)/lef/caravel.lef
-exceptions += $(MCW_ROOT)/lef/caravan.lef
-# lets ignore these for now
-exceptions += $(MCW_ROOT)/sdc/user_analog_project_wrapper.sdc
-exceptions += $(MCW_ROOT)/sdc/user_project_wrapper.sdc
-exceptions += $(MCW_ROOT)/verilog/gl/user_analog_project_wrapper.v
-exceptions += $(MCW_ROOT)/verilog/gl/user_project_wrapper.v
-
-.PHONY: list-rcx
-.PHONY: list-sdf
-.PHONY: rcx-all
-list-rcx:
- @blocks="$(rcx-blocks)";\
- for block in $${blocks}; do echo "$$block"; done
-list-sdf:
- @echo $(sdf-blocks)
-list-sta:
- @echo $(sta-blocks)
-rcx-all: $(rcx-blocks)
-
-$(exceptions):
- $(warning we don't need lefs for $@ but take note anyway)
-
-$(CARAVEL_ROOT)/def/%.def: $(MCW_ROOT)/def/%.def ;
-$(MCW_ROOT)/def/%.def: $(CUP_ROOT)/def/%.def ;
-$(CUP_ROOT)/def/%.def:
- $(error error if you are here it probably means that $@.def is mising from mcw and caravel)
-
-$(CARAVEL_ROOT)/lef/%.lef: $(MCW_ROOT)/lef/%.lef ;
-$(MCW_ROOT)/lef/%.lef: $(CUP_ROOT)/lef/%.lef ;
-$(CUP_ROOT)/lef/%.lef:
- $(error error if you are here it probably means that $@.lef is mising from mcw and caravel)
-
-$(CARAVEL_ROOT)/sdc/%.sdc: $(MCW_ROOT)/sdc/%.sdc ;
-$(MCW_ROOT)/sdc/%.sdc: $(CUP_ROOT)/sdc/%.sdc ;
-$(CUP_ROOT)/sdc/%.sdc:
- $(error error if you are here it probably means that $@.sdc is mising from mcw and caravel)
-
-$(CARAVEL_ROOT)/verilog/gl/%.v: $(MCW_ROOT)/verilog/gl/%.v ;
-$(MCW_ROOT)/verilog/gl/%.v: $(CUP_ROOT)/verilog/gl/%.v ;
-$(CUP_ROOT)/verilog/gl/%.v:
- $(error error if you are here it probably means that gl/$@.v is mising from mcw and caravel)
-
-check_defined = \
- $(strip $(foreach 1,$1, \
- $(call __check_defined,$1,$(strip $(value 2)))))
-__check_defined = \
- $(if $(value $1),, \
- $(error Undefined $1$(if $2, ($2))))
-
-$(call check_defined, \
- MCW_ROOT \
- CUP_ROOT \
- PDK_ROOT \
- CARAVEL_ROOT \
- TIMING_ROOT \
-)