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")