Merge pull request #17 from mabrains/moving_ip_testcases
Moving the SRAM test cases to a ip_testcases directory
diff --git a/README.rst b/README.rst
index 8e53fc9..b1fadf3 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-GlobalFoundries 180um MCU primitive libraries
+GlobalFoundries 180nm MCU primitive libraries
=============================================
This repository contains the "primitive cells" implementation as part of
diff --git a/rules/klayout/drc/testing/Makefile b/rules/klayout/drc/testing/Makefile
index 37824f1..21d8f44 100644
--- a/rules/klayout/drc/testing/Makefile
+++ b/rules/klayout/drc/testing/Makefile
@@ -39,19 +39,19 @@
@cd $(Testing_DIR)
@echo "========== DRC-gf180mcu_fd_ip_sram testing =========="
@ python3 run_sc_regression.py \
- --path=sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds \
- --path=sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds \
- --path=sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds \
- --path=sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
+ --path=ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds \
+ --path=ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds \
+ --path=ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds \
+ --path=ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
.ONESHELL:
test-DRC-gf180mcu_fd_io:
@cd $(Testing_DIR)
@echo "========== DRC-gf180mcu_fd_io testing =========="
@ python3 run_sc_regression.py \
- --path=sc_testcases/gf180mcu_fd_io_3lm.gds \
- --path=sc_testcases/gf180mcu_fd_io_4lm.gds \
- --path=sc_testcases/gf180mcu_fd_io_5lm.gds
+ --path=ip_testcases/gf180mcu_fd_io_3lm.gds \
+ --path=ip_testcases/gf180mcu_fd_io_4lm.gds \
+ --path=ip_testcases/gf180mcu_fd_io_5lm.gds
.ONESHELL:
test-DRC-gf180mcu_fd_sc_mcu7t5v0:
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_3lm.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_3lm.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_3lm.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_3lm.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_4lm.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_4lm.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_4lm.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_4lm.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_5lm.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_5lm.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_io_5lm.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_io_5lm.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds b/rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
similarity index 100%
rename from rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
rename to rules/klayout/drc/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/drc/testing/run_sc_regression.py b/rules/klayout/drc/testing/run_sc_regression.py
index f08ac69..8bd4934 100644
--- a/rules/klayout/drc/testing/run_sc_regression.py
+++ b/rules/klayout/drc/testing/run_sc_regression.py
@@ -20,9 +20,9 @@
run_sc_regression.py (--path=<file_path>)... [--thr=<thr>]
Options:
- --help -h Print this help message
- --path=<file_path> The input GDS file path.
- --thr=<thr> The number of threads used in run.
+ --help -h Print this help message
+ --path=<file_path> The input GDS file path.
+ --thr=<thr> The number of threads used in run.
"""
from docopt import docopt
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__128x8m8wm1.gds b/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__128x8m8wm1.gds
deleted file mode 100644
index 151cee3..0000000
--- a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__128x8m8wm1.gds
+++ /dev/null
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__256x8m8wm1.gds b/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__256x8m8wm1.gds
deleted file mode 100644
index c490d57..0000000
--- a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__256x8m8wm1.gds
+++ /dev/null
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__512x8m8wm1.gds b/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__512x8m8wm1.gds
deleted file mode 100644
index 0db35ac..0000000
--- a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__512x8m8wm1.gds
+++ /dev/null
Binary files differ
diff --git a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__64x8m8wm1.gds b/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__64x8m8wm1.gds
deleted file mode 100644
index 67a4a4f..0000000
--- a/rules/klayout/drc/testing/sc_testcases/gf180mcu_fd_ip_sram__64x8m8wm1.gds
+++ /dev/null
Binary files differ
diff --git a/rules/klayout/lvs/testing/Makefile b/rules/klayout/lvs/testing/Makefile
index c701ac9..5656b9c 100644
--- a/rules/klayout/lvs/testing/Makefile
+++ b/rules/klayout/lvs/testing/Makefile
@@ -33,24 +33,34 @@
.ONESHELL:
Add_run-dir:
@cd $(Testing_DIR)
- @ mkdir -p $(run_folder)/switch_checking $(run_folder)/main $(run_folder)/gf180mcu_fd_sc_mcu7t5v0 $(run_folder)/gf180mcu_fd_sc_mcu9t5v0
+ @ mkdir -p $(run_folder)/switch_checking $(run_folder)/main $(run_folder)/gf180mcu_fd_sc_mcu7t5v0 $(run_folder)/gf180mcu_fd_sc_mcu9t5v0 $(run_folder)/gf180mcu_fd_io $(run_folder)/gf180mcu_fd_ip_sram
#=================================
# --------- test-LVS_SC ----------
#=================================
.ONESHELL:
-test-LVS-gf180mcu_fd_sc: test-LVS-gf180mcu_fd_sc_mcu7t5v0 test-LVS-gf180mcu_fd_sc_mcu9t5v0
+test-LVS-gf180mcu_fd_sc: test-LVS-gf180mcu_fd_sc_mcu7t5v0 test-LVS-gf180mcu_fd_sc_mcu9t5v0 test-LVS-gf180mcu_fd_io test-LVS-gf180mcu_fd_ip_sram
+
+.ONESHELL:
+test-LVS-gf180mcu_fd_io: Add_run-dir
+ @cd $(Testing_DIR)
+ @ python3 run_sc_regression.py --path=ip_testcases/gf180mcu_fd_io_3lm --path=ip_testcases/gf180mcu_fd_io_4lm --path=ip_testcases/gf180mcu_fd_io_5lm --run_dir=$(run_folder)/gf180mcu_fd_io |& tee $(run_folder)/gf180mcu_fd_io/results.log
+
+.ONESHELL:
+test-LVS-gf180mcu_fd_ip_sram: Add_run-dir
+ @cd $(Testing_DIR)
+ @ python3 run_sc_regression.py --path=ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1 --path=ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1 --path=ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1 --path=ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1 --run_dir=$(run_folder)/gf180mcu_fd_ip_sram |& tee $(run_folder)/gf180mcu_fd_ip_sram/results.log
.ONESHELL:
test-LVS-gf180mcu_fd_sc_mcu7t5v0: Add_run-dir
@cd $(Testing_DIR)
- @ python3 run_sc_regression.py --cell_lib=gf180mcu_fd_sc_mcu7t5v0 --run_dir=$(run_folder)/gf180mcu_fd_sc_mcu7t5v0 |& tee $(run_folder)/gf180mcu_fd_sc_mcu7t5v0/results.log
+ @ python3 run_sc_regression.py --path=sc_testcases/gf180mcu_fd_sc_mcu7t5v0 --run_dir=$(run_folder)/gf180mcu_fd_sc_mcu7t5v0 |& tee $(run_folder)/gf180mcu_fd_sc_mcu7t5v0/results.log
.ONESHELL:
test-LVS-gf180mcu_fd_sc_mcu9t5v0: Add_run-dir
@cd $(Testing_DIR)
- @ python3 run_sc_regression.py --cell_lib=gf180mcu_fd_sc_mcu9t5v0 --run_dir=$(run_folder)/gf180mcu_fd_sc_mcu9t5v0 |& tee $(run_folder)/gf180mcu_fd_sc_mcu9t5v0/results.log
+ @ python3 run_sc_regression.py --path=sc_testcases/gf180mcu_fd_sc_mcu9t5v0 --run_dir=$(run_folder)/gf180mcu_fd_sc_mcu9t5v0 |& tee $(run_folder)/gf180mcu_fd_sc_mcu9t5v0/results.log
#=================================
# ----- test-LVS_regression ------
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__asig_5p0_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_24t_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__bi_t_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk2_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__brk5_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__cor_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvdd_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__dvss_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill10_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill1_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fill5_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__fillnc_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_c_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s_3lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s_3lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s_3lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_3lm/gf180mcu_fd_io__in_s_3lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__asig_5p0_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_24t_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__bi_t_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk2_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__brk5_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__cor_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvdd_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__dvss_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill10_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill1_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fill5_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__fillnc_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_c_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s_4lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s_4lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s_4lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_4lm/gf180mcu_fd_io__in_s_4lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__asig_5p0_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_24t_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__bi_t_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk2_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__brk5_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__cor_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvdd_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__dvss_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill10_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill1_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fill5_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__fillnc_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_c_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s_5lm.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s_5lm.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s_5lm.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_io_5lm/gf180mcu_fd_io__in_s_5lm.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram128x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram256x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram512x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.cdl b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.cdl
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.cdl
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.cdl
diff --git a/rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds b/rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
similarity index 100%
rename from rules/klayout/lvs/testing/sc_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
rename to rules/klayout/lvs/testing/ip_testcases/gf180mcu_fd_ip_sram__sram64x8m8wm1.gds
Binary files differ
diff --git a/rules/klayout/lvs/testing/run_full_regression.py b/rules/klayout/lvs/testing/run_full_regression.py
deleted file mode 100644
index 8943b97..0000000
--- a/rules/klayout/lvs/testing/run_full_regression.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2022 GlobalFoundries PDK Authors
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Run GlobalFoundries 180nm MCU FULL LVS Regression.
-
-Usage:
- run_full_regression.py (--help| -h)
- run_full_regression.py [--num_cores=<num>]
-
-Options:
- --help -h Print this help message.
- --num_cores=<num> Number of cores to be used by LVS checker
-"""
-from docopt import docopt
-import os
-
-
-def main():
-
- # Run Basic LVS Regression
- os.system(f"python3 run_regression.py --num_cores={workers_count}")
-
- # Run SC LVS Regression
- os.system(f"python3 run_sc_regression.py --num_cores={workers_count}")
-
-
-if __name__ == "__main__":
-
- # Args
- arguments = docopt(__doc__, version='FULL LVS REGRESSION: 0.1')
- workers_count = os.cpu_count()*2 if arguments["--num_cores"] == None else int(arguments["--num_cores"])
-
- # Calling main function
- main()
diff --git a/rules/klayout/lvs/testing/run_sc_regression.py b/rules/klayout/lvs/testing/run_sc_regression.py
index 358e04c..6a89176 100644
--- a/rules/klayout/lvs/testing/run_sc_regression.py
+++ b/rules/klayout/lvs/testing/run_sc_regression.py
@@ -16,11 +16,11 @@
Usage:
run_sc_regression.py (--help| -h)
- run_sc_regression.py (--cell_lib=<cells>) (--run_dir=<run_dir>) [--num_cores=<num>]
+ run_sc_regression.py (--path=<file_path>)... (--run_dir=<run_dir>) [--num_cores=<num>]
Options:
--help -h Print this help message.
- --cell_lib=<cells> Select the cell library to run LVS against (gf180mcu_fd_sc_mcu7t5v0, gf180mcu_fd_sc_mcu9t5v0)
+ --path=<file_path> The input name of GDS/Netlist file path without extention.
--run_dir=<run_dir> Selecting your output path.
--num_cores=<num> Number of cores to be used by LVS checker
"""
@@ -41,24 +41,27 @@
# print(f"================================================")
# print ('{:-^48}'.format(sc_input.upper()))
# print(f"================================================ \n")
-
+
# Selecting correct netlist
if "gf180mcu_fd_io_" in sc_input:
cdl_input = sc_input[:-4]
cdl_input_clean = cdl_input.split("/")[-1]
- else:
+ dir = "ip"
+ else:
cdl_input = sc_input
cdl_input_clean = sc_input.split("/")[-1]
+ dir = "ip"
if "sc" in sc_input:
sc_input_clean = sc_input.split ("/")[-1]
cdl_input = f"sc_netlists/{sc_input_clean}"
+ dir = "sc"
# Cleaning netlist [Remove unnecessary chars] and writing it again
unnecessary_chars = ["$SUB=" ,"$[" , "]", "$"]
-
+
if "sc" in sc_input and "io" not in sc_input:
-
+
with open(f'sc_testcases/sc_split/{cdl_input}.cdl', 'r') as file :
spice_netlist = file.read()
for char in unnecessary_chars:
@@ -66,98 +69,88 @@
with open(f'sc_testcases/sc_split/{cdl_input}_modified.cdl', 'w') as file:
file.write(spice_netlist)
-
+
cdl_input_clean = cdl_input
else:
- with open(f'sc_testcases/{cdl_input}.cdl', 'r') as file :
+ with open(f'ip_testcases/{cdl_input}.cdl', 'r') as file :
spice_netlist = file.read()
for char in unnecessary_chars:
spice_netlist = spice_netlist.replace(char, '')
- with open(f'sc_testcases/{cdl_input}_modified.cdl', 'w') as file:
+ with open(f'ip_testcases/{cdl_input}_modified.cdl', 'w') as file:
file.write(spice_netlist)
-
+
sc_input_clean = sc_input.split("/")[-1]
# Running LVS
- result = os.popen(f"klayout -b -r ../gf180mcu.lvs -rd input=sc_testcases/{sc_input}.gds -rd report={sc_input_clean}.lvsdb -rd schematic={cdl_input_clean}_modified.cdl -rd thr={workers_count} -rd schematic_simplify=true").read()
-
+ result = os.popen(f"klayout -b -r ../gf180mcu.lvs -rd input={dir}_testcases/{sc_input}.gds -rd report={sc_input_clean}.lvsdb -rd schematic={cdl_input_clean}_modified.cdl -rd thr={workers_count} -rd schematic_simplify=true").read()
+
# moving all reports to run dir
out_dir = arguments["--run_dir"]
# os.system(f"cd {out_dir} && mkdir {sc_input_clean}")
# os.system(f"mv -f sc_testcases/{sc_input}.lvsdb sc_testcases/*/{cdl_input_clean}_extracted.cir sc_testcases/*/{cdl_input_clean}_modified.cdl {out_dir}/{sc_input_clean}/")
-
+
if "INFO : Congratulations! Netlists match." in result:
logging.info(f"Extraction of {sc_input_clean} is passed")
-
- with open ("sc_testcases/sc_report.csv","a+") as rep:
+
+ with open (f"{dir}_testcases/{dir}_report.csv","a+") as rep:
rep.write(f"{sc_input_clean},passed\n")
else:
- logging.info(f"Extraction of {sc_input_clean} is failed")
+ logging.info(f"Extraction of {sc_input_clean} is failed")
- with open ("sc_testcases/sc_report.csv","a+") as rep:
+ with open (f"{dir}_testcases/{dir}_report.csv","a+") as rep:
rep.write(f"{sc_input_clean},failed\n")
def main():
-
- # Remove old report
+
+ # Remove old reports
os.system(f"rm -rf sc_testcases/sc_report.csv")
-
- # cell_list = ["GF018_5VGreen_SRAM_1P_64x8M8WM1" , "GF018_5VGreen_SRAM_1P_128x8M8WM1" , "GF018_5VGreen_SRAM_1P_256x8M8WM1" , "GF018_5VGreen_SRAM_1P_512x8M8WM1" ,
- # "GF018green_ipio_5p0c_75_3lm" , "GF018green_ipio_5p0c_75_4lm" , "GF018green_ipio_5p0c_75_5lm" ,
- # "GF018hv5v_mcu_sc7" , "GF018hv5v_green_sc9" ]
-
- # cell_list = [ "gf180mcu_fd_io_3lm" , "gf180mcu_fd_io_4lm" , "gf180mcu_fd_io_5lm",
- # "GF018hv5v_mcu_sc7" , "GF018hv5v_green_sc9" ]
+ os.system(f"rm -rf ip_testcases/ip_report.csv")
- # [ "gf180mcu_fd_sc_mcu7t5v0" , "gf180mcu_fd_sc_mcu9t5v0" ]
+ cell_list = arguments["--path"]
+ if isinstance(cell_list, str): cell_list = [cell_list]
- cell_list = [arguments["--cell_lib"]]
-
- # Create GDS splitter script
- if os.path.exists("sc_testcases/sc_split") and os.path.isdir("sc_testcases/sc_split"):
- shutil.rmtree("sc_testcases/sc_split")
- with open('sc_testcases/split_gds.rb', 'w') as f:
- f.write(''' layout = RBA::Layout::new
- layout.read($input)
- Dir.mkdir("sc_testcases/sc_split") unless File.exists?("sc_testcases/sc_split")
-
- layout.each_cell do |cell|
- ly2 = RBA::Layout.new
- ly2.dbu = layout.dbu
- cell_index = layout.cell_by_name("#{cell.name}")
- new_top = ly2.add_cell("#{cell.name}")
- ly2.cell(new_top).copy_tree(layout.cell("#{cell.name}"))
- ly2.write("sc_testcases/sc_split/#{cell.name}.gds")
- end''')
+ sc_result = []
+ get_line = False
# Split standard cells top-cells into multiple gds files
for cell in cell_list:
if "sc" in cell:
- os.system(f"klayout -b -r sc_testcases/split_gds.rb -rd input=sc_testcases/{cell}.gds")
- os.system(f"rm -rf sc_testcases/split_gds.rb")
+ # Create GDS splitter script
+ if os.path.exists("sc_testcases/sc_split") and os.path.isdir("sc_testcases/sc_split"):
+ shutil.rmtree("sc_testcases/sc_split")
+ with open('sc_testcases/split_gds.rb', 'w') as f:
+ f.write(''' layout = RBA::Layout::new
+ layout.read($input)
+ Dir.mkdir("sc_testcases/sc_split") unless File.exists?("sc_testcases/sc_split")
+
+ layout.each_cell do |cell|
+ ly2 = RBA::Layout.new
+ ly2.dbu = layout.dbu
+ cell_index = layout.cell_by_name("#{cell.name}")
+ new_top = ly2.add_cell("#{cell.name}")
+ ly2.cell(new_top).copy_tree(layout.cell("#{cell.name}"))
+ ly2.write("sc_testcases/sc_split/#{cell.name}.gds")
+ end''')
+ os.system(f"klayout -b -r sc_testcases/split_gds.rb -rd input={cell}.gds")
+ os.system(f"rm -rf sc_testcases/split_gds.rb")
- # Create cdl splitter script
- # ["gf180mcu_fd_sc_mcu7t5v0" , "gf180mcu_fd_sc_mcu9t5v0"]
- sc_cdl = [arguments["--cell_lib"]]
- sc_result = []
- get_line = False
- os.makedirs(f"sc_testcases/sc_split/sc_netlists/",exist_ok=False)
-
- for cdl in sc_cdl:
- with open(f'sc_testcases/{cdl}.cdl', 'r') as cdl1:
- for line in cdl1:
- if ".SUBCKT" in line:
- get_line = True
- sc_result = []
- if get_line:
- sc_result.append(line)
- if '.ENDS' in line:
- get_line = False
- name = re.findall('.SUBCKT (\w+)', sc_result[0])
- with open(f"sc_testcases/sc_split/sc_netlists/{name[0]}.cdl", 'w') as out_cdl:
- out_cdl.write(''.join(sc_result))
+ # Create cdl splitter script
+ cdl = cell.split("/")[-1]
+ os.makedirs(f"sc_testcases/sc_split/sc_netlists/",exist_ok=False)
+ with open(f'sc_testcases/{cdl}.cdl', 'r') as cdl1:
+ for line in cdl1:
+ if ".SUBCKT" in line:
+ get_line = True
+ sc_result = []
+ if get_line:
+ sc_result.append(line)
+ if '.ENDS' in line:
+ get_line = False
+ name = re.findall('.SUBCKT (\w+)', sc_result[0])
+ with open(f"sc_testcases/sc_split/sc_netlists/{name[0]}.cdl", 'w') as out_cdl:
+ out_cdl.write(''.join(sc_result))
with concurrent.futures.ProcessPoolExecutor(max_workers=workers_count) as executor:
@@ -165,25 +158,22 @@
# Split standard cells top-cells into multiple gds files
if "sc" not in cell:
if "io" in cell:
- cells_splitted = glob.glob(f"sc_testcases/{cell}/*.gds")
+ cells_splitted = glob.glob(f"{cell}/*.gds")
for cell_split in cells_splitted:
- cell_split_clean = cell_split.replace(".gds","").replace("sc_testcases/","")
- executor.submit(lvs_check, cell_split_clean)
+ cell_split_clean = cell_split.replace(".gds","").replace("ip_testcases/","")
+ executor.submit(lvs_check, cell_split_clean)
else:
- executor.submit(lvs_check, cell)
+ cell_clean = cell.replace("ip_testcases/","")
+ executor.submit(lvs_check, cell_clean)
- # Running LVS on SC
- sc_list = glob.glob("sc_testcases/sc_split/*")
- for sc in sc_list:
- sc_clean = sc.split ('.gds')[0]
- sc_clean = sc_clean.split ('sc_testcases/')[-1]
- executor.submit(lvs_check, sc_clean)
-
- df = pd.read_csv("sc_testcases/sc_report.csv")
- df.columns = ["CELL NAME","RESULT"]
- df.to_csv("sc_testcases/sc_report.csv", index = False)
-
-
+ # Running LVS on SC
+ else:
+ sc_list = glob.glob("sc_testcases/sc_split/*")
+ for sc in sc_list:
+ sc_clean = sc.split('.gds')[0].split ('sc_testcases/')[-1]
+ executor.submit(lvs_check, sc_clean)
+
+
if __name__ == "__main__":
# logs format
@@ -209,18 +199,39 @@
time.sleep(10)
- df = pd.read_csv("sc_testcases/sc_report.csv")
- pass_count = df["RESULT"].str.count("passed").sum()
- fail_count = df["RESULT"].str.count("failed").sum()
-
- logging.info("\n==================================")
- logging.info(f"NO. OF PASSED CELL : {pass_count}")
- logging.info(f"NO. OF FAILED CELL : {fail_count}")
- logging.info("==================================\n")
+ if os.path.isfile("sc_testcases/sc_report.csv"):
+ df = pd.read_csv("sc_testcases/sc_report.csv")
+ df.columns = ["CELL NAME","RESULT"]
+ df.to_csv("sc_testcases/sc_report.csv", index = False)
+ df = pd.read_csv("sc_testcases/sc_report.csv")
+ pass_count = df["RESULT"].str.count("passed").sum()
+ fail_count = df["RESULT"].str.count("failed").sum()
+
+ logging.info("\n==================================")
+ logging.info(f"NO. OF PASSED SC CELLS : {pass_count}")
+ logging.info(f"NO. OF FAILED SC CELLS : {fail_count}")
+ logging.info("==================================\n")
+
+ # Move split files into run dir
+ os.system (f"mv -f sc_testcases/sc_report.csv sc_testcases/sc_split/ {out_dir}")
+ elif os.path.isfile("ip_testcases/ip_report.csv"):
+ df = pd.read_csv("ip_testcases/ip_report.csv")
+ df.columns = ["CELL NAME","RESULT"]
+ df.to_csv("ip_testcases/ip_report.csv", index = False)
+ df = pd.read_csv("ip_testcases/ip_report.csv")
+ pass_count = df["RESULT"].str.count("passed").sum()
+ fail_count = df["RESULT"].str.count("failed").sum()
+
+ logging.info("\n==================================")
+ logging.info(f"NO. OF PASSED IP CELLS : {pass_count}")
+ logging.info(f"NO. OF FAILED IP CELLS : {fail_count}")
+ logging.info("==================================\n")
+
+ # Move split files into run dir
+ os.system (f"mv -f ip_testcases/ip_report.csv {out_dir}")
-
- time.sleep(10)
-
- # Move split files into run dir
- os.system (f"mv -f sc_testcases/sc_report.csv sc_testcases/sc_split/ {out_dir}")
+ else:
+ logging.info("\n==================================")
+ logging.info("Regression Test is failed")
+ logging.info("==================================\n")