Merge branch 'klayout' into dev

This commit is contained in:
mrg 2022-02-02 07:05:02 -08:00
commit c545299cd6
3 changed files with 56 additions and 30 deletions

View File

@ -25,6 +25,7 @@ jobs:
#python3-coverage run -p $OPENRAM_HOME/tests/regress.py -j 12 -t scn4m_subm #python3-coverage run -p $OPENRAM_HOME/tests/regress.py -j 12 -t scn4m_subm
#$OPENRAM_HOME/tests/regress.py -j 24 -t scn4m_subm #$OPENRAM_HOME/tests/regress.py -j 24 -t scn4m_subm
cd $OPENRAM_HOME/tests cd $OPENRAM_HOME/tests
make clean
make -k -j 48 make -k -j 48
- name: Archive - name: Archive
if: ${{ failure() }} if: ${{ failure() }}

View File

@ -16,39 +16,67 @@ TEST_STAMPS= $(addsuffix .ok,$(TEST_BASES))
OPENRAM_DIR = /openram/compiler/tests OPENRAM_DIR = /openram/compiler/tests
RESULTS_DIR = $(OPENRAM_DIR)/results RESULTS_DIR = $(OPENRAM_DIR)/results
TEST_BROKEN = \ # Use % for all techs:
50_riscv_1k_1rw1r_func_test.py \ # %/test.py
50_riscv_1k_1rw_func_test.py \ # or a specific tech:
50_riscv_1rw1r_func_test.py \ # freepdk45/test.py
50_riscv_1rw1r_phys_test.py \ BROKEN_STAMPS = \
50_riscv_1rw_func_test.py \ sky130/01_library_test.ok \
50_riscv_1rw_phys_test.py \ sky130/04_column_mux_pbitcell_test.ok \
50_riscv_2k_1rw1r_func_test.py \ sky130/04_dummy_pbitcell_test.ok \
50_riscv_2k_1rw_func_test.py \ sky130/04_pbitcell_test.ok \
50_riscv_4k_1rw1r_func_test.py \ sky130/04_pnand4_test.ok \
50_riscv_4k_1rw_func_test.py \ sky130/04_precharge_pbitcell_test.ok \
50_riscv_512b_1rw1r_func_test.py \ sky130/04_replica_pbitcell_test.ok \
50_riscv_512b_1rw_func_test.py \ sky130/05_pbitcell_array_test.ok \
50_riscv_8k_1rw1r_func_test.py \ sky130/05_bitcell_array_test.ok \
50_riscv_8k_1rw_func_test.py sky130/05_bitcell_array_1rw_1r_test.ok \
sky130/05_dummy_array_test.ok \
sky130/07_column_mux_array_pbitcell_test.ok \
WORKING_TEST_STAMPS=$(filter-out $(addsuffix .ok, (TEST_BROKEN)), $(TEST_STAMPS)) sky130/19_pmulti_bank_test.ok \
sky130/19_psingle_bank_test.ok \
sky130/19_bank_select_pbitcell_test.ok \
sky130/20_psram_1bank_2mux_1rw_1w_test.ok \
sky130/20_psram_1bank_2mux_1rw_1w_wmask_test.ok \
sky130/20_psram_1bank_2mux_1w_1r_test.ok \
sky130/20_psram_1bank_2mux_test.ok \
sky130/20_psram_1bank_4mux_1rw_1r_test.ok \
sky130/22_psram_1bank_2mux_func_test.ok \
sky130/22_psram_1bank_4mux_func_test.ok \
sky130/22_psram_1bank_8mux_func_test.ok \
sky130/22_psram_1bank_nomux_func_test.ok \
%/50_riscv_1k_1rw1r_func_test.ok \
%/50_riscv_1k_1rw_func_test.ok \
%/50_riscv_1rw1r_func_test.ok \
%/50_riscv_1rw1r_phys_test.ok \
%/50_riscv_1rw_func_test.ok \
%/50_riscv_1rw_phys_test.ok \
%/50_riscv_2k_1rw1r_func_test.ok \
%/50_riscv_2k_1rw_func_test.ok \
%/50_riscv_4k_1rw1r_func_test.ok \
%/50_riscv_4k_1rw_func_test.ok \
%/50_riscv_512b_1rw1r_func_test.ok \
%/50_riscv_512b_1rw_func_test.ok \
%/50_riscv_8k_1rw1r_func_test.ok \
%/50_riscv_8k_1rw_func_test.ok
gettech = $(word 1,$(subst /, ,$*)) gettech = $(word 1,$(subst /, ,$*))
getfile = $(word 2,$(subst /, ,$*)) getfile = $(word 2,$(subst /, ,$*))
WORKING_TECH_TEST_STAMPS=$(foreach T, $(TECHS),$(addprefix $T/,$(WORKING_TEST_STAMPS))) TECH_TEST_STAMPS=$(foreach T, $(TECHS), $(addprefix $T/, $(TEST_STAMPS)))
# Filter out the tests after creating the tech stamps
WORKING_TECH_TEST_STAMPS=$(filter-out $(BROKEN_STAMPS), $(TECH_TEST_STAMPS))
# Run all technologies # Run all technologies
all: $(WORKING_TECH_TEST_STAMPS) all: $(WORKING_TECH_TEST_STAMPS)
@ls $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "REGRESSION FAIL" && exit 1 || echo "REGRESSION PASS" @ls $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "FAILING TESTS" && ls $(TOP_DIR)/compiler/tests/results/*/*.bad && exit 1
.PHONY: all .PHONY: all
# Run a given technology # Run a given technology
# e.g. make freepdk45 # e.g. make freepdk45
$(ALL_TECHS): $(ALL_TECHS):
@$(MAKE) --no-print-directory $(addprefix $@/,$(WORKING_TEST_STAMPS)) @$(MAKE) --no-print-directory $(filter-out $(BROKEN_STAMPS), $(addprefix $@/, $(TEST_STAMPS)))
.PHONY: $(TECHS) .PHONY: $(TECHS)
# Targets for each individual test # Targets for each individual test
@ -64,7 +92,10 @@ $(TEST_BASES):
@docker run \ @docker run \
-v $(TOP_DIR):/openram \ -v $(TOP_DIR):/openram \
-v $(FREEPDK45):/pdk/freepdk45\ -v $(FREEPDK45):/pdk/freepdk45\
-e FREEPDK45=/pdk/freepdk45\
-v $(PDK_ROOT):/pdk \ -v $(PDK_ROOT):/pdk \
-e PDK_ROOT=/pdk \
-e PDKPATH=/pdk/sky130A \
-v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \ -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \
--user $(UID):$(GID) \ --user $(UID):$(GID) \
-e OPENRAM_TMP=$(OPENRAM_DIR)/results/$*/tmp \ -e OPENRAM_TMP=$(OPENRAM_DIR)/results/$*/tmp \
@ -81,6 +112,8 @@ mount:
-v $(TOP_DIR):/openram \ -v $(TOP_DIR):/openram \
-v $(FREEPDK45):/pdk/freepdk45 \ -v $(FREEPDK45):/pdk/freepdk45 \
-v $(PDK_ROOT):/pdk \ -v $(PDK_ROOT):/pdk \
-e PDK_ROOT=/pdk \
-e PDKPATH=/pdk/sky130A \
-v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \ -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro \
--user $(UID):$(GID) \ --user $(UID):$(GID) \
vlsida/openram-ubuntu:latest vlsida/openram-ubuntu:latest

View File

@ -14,14 +14,6 @@ export XYCE_LIB=$XYCE_HOME/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XYCE_LIB export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$XYCE_LIB
export XYCE_NO_TRACKING="anything at all" export XYCE_NO_TRACKING="anything at all"
# PDKs
export FREEPDK45=/PDK/freepdk45
# Set to the PDK you want to use
export PDK_DIR=$FREEPDK45
# Skywater PDK
export PDK_ROOT=/pdk
# OpenRAM # OpenRAM
export OPENRAM_HOME=/openram/compiler export OPENRAM_HOME=/openram/compiler
export OPENRAM_TECH=/openram/technology export OPENRAM_TECH=/openram/technology