mirror of https://github.com/VLSIDA/OpenRAM.git
Add spare column option to tests for sky130
This commit is contained in:
parent
ce2b125762
commit
f17d661e3a
|
|
@ -31,9 +31,18 @@ class timing_sram_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import delay
|
from characterizer import delay
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,18 @@ class model_delay_test(openram_test):
|
||||||
from characterizer import elmore
|
from characterizer import elmore
|
||||||
from sram import sram
|
from sram import sram
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=1,
|
c = sram_config(word_size=1,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,18 @@ class timing_sram_test(openram_test):
|
||||||
from characterizer import delay
|
from characterizer import delay
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
OPTS.local_array_size = 2
|
OPTS.local_array_size = 2
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
# c = sram_config(word_size=8,
|
# c = sram_config(word_size=8,
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,18 @@ class timing_sram_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import delay
|
from characterizer import delay
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,18 @@ class regression_model_test(openram_test):
|
||||||
from characterizer import neural_network
|
from characterizer import neural_network
|
||||||
from sram import sram
|
from sram import sram
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=1,
|
c = sram_config(word_size=1,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,18 @@ class timing_sram_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import delay
|
from characterizer import delay
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
debug.info(1, "Testing timing for sample 1bit, 16words SRAM with 1 bank")
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,18 @@ class sram_1bank_2mux_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=32,
|
num_words=32,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=2
|
c.words_per_row=2
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,18 @@ class sram_1bank_2mux_func_test(openram_test):
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
OPTS.local_array_size = 8
|
OPTS.local_array_size = 8
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=8,
|
c = sram_config(word_size=8,
|
||||||
num_words=32,
|
num_words=32,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=2
|
c.words_per_row=2
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,18 @@ class sram_1bank_2mux_sparecols_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=32,
|
num_words=32,
|
||||||
num_spare_cols=3,
|
num_banks=1,
|
||||||
num_banks=1)
|
num_spare_cols=num_spare_cols+2,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=2
|
c.words_per_row=2
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,18 @@ class sram_1bank_4mux_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=128,
|
num_words=128,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=4
|
c.words_per_row=4
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,18 @@ class sram_1bank_8mux_func_test(openram_test):
|
||||||
debug.error("Could not find {} simulator.".format(OPTS.spice_name),-1)
|
debug.error("Could not find {} simulator.".format(OPTS.spice_name),-1)
|
||||||
|
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=128,
|
num_words=128,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=8
|
c.words_per_row=8
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -32,9 +32,18 @@ class sram_1bank_nomux_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,18 @@ class sram_1bank_nomux_sparecols_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=4,
|
c = sram_config(word_size=4,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
num_spare_cols=3,
|
num_banks=1,
|
||||||
num_banks=1)
|
num_spare_cols=num_spare_cols+2,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,19 @@ class sram_wmask_1w_1r_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=8,
|
c = sram_config(word_size=8,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
write_size=2,
|
write_size=2,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row = 1
|
c.words_per_row = 1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1,
|
debug.info(1,
|
||||||
|
|
|
||||||
|
|
@ -32,10 +32,19 @@ class sram_wmask_func_test(openram_test):
|
||||||
reload(characterizer)
|
reload(characterizer)
|
||||||
from characterizer import functional
|
from characterizer import functional
|
||||||
from sram_config import sram_config
|
from sram_config import sram_config
|
||||||
|
if OPTS.tech_name == "sky130":
|
||||||
|
num_spare_rows = 1
|
||||||
|
num_spare_cols = 1
|
||||||
|
else:
|
||||||
|
num_spare_rows = 0
|
||||||
|
num_spare_cols = 0
|
||||||
|
|
||||||
c = sram_config(word_size=8,
|
c = sram_config(word_size=8,
|
||||||
num_words=16,
|
num_words=16,
|
||||||
write_size=4,
|
write_size=4,
|
||||||
num_banks=1)
|
num_banks=1,
|
||||||
|
num_spare_cols=num_spare_cols,
|
||||||
|
num_spare_rows=num_spare_rows)
|
||||||
c.words_per_row=1
|
c.words_per_row=1
|
||||||
c.recompute_sizes()
|
c.recompute_sizes()
|
||||||
debug.info(1, "Functional test for sram with "
|
debug.info(1, "Functional test for sram with "
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,7 @@ WORKING_TECH_TEST_STAMPS=$(shell shuf -e -- $(filter-out $(BROKEN_STAMPS), $(TEC
|
||||||
|
|
||||||
|
|
||||||
# Run all technologies
|
# Run all technologies
|
||||||
all: $(WORKING_TECH_TEST_STAMPS)
|
all: clean $(WORKING_TECH_TEST_STAMPS)
|
||||||
@ls -1 $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "FAILING TESTS" && ls -1 $(TOP_DIR)/compiler/tests/results/*/*.bad | sed -e "s#^.*results\/##" && exit 1 || exit 0
|
@ls -1 $(TOP_DIR)/compiler/tests/results/*/*.bad 1> /dev/null 2>&1 && echo "FAILING TESTS" && ls -1 $(TOP_DIR)/compiler/tests/results/*/*.bad | sed -e "s#^.*results\/##" && exit 1 || exit 0
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|
||||||
|
|
@ -120,8 +120,8 @@ $(TEST_BASES):
|
||||||
@mkdir -p results/$*/tmp
|
@mkdir -p results/$*/tmp
|
||||||
@docker run \
|
@docker run \
|
||||||
-v $(TOP_DIR):/openram \
|
-v $(TOP_DIR):/openram \
|
||||||
-v $(FREEPDK45):/pdk/freepdk45\
|
-v $(FREEPDK45):/freepdk45\
|
||||||
-e FREEPDK45=/pdk/freepdk45\
|
-e FREEPDK45=/freepdk45\
|
||||||
-v $(PDK_ROOT):/pdk \
|
-v $(PDK_ROOT):/pdk \
|
||||||
-e PDK_ROOT=/pdk \
|
-e PDK_ROOT=/pdk \
|
||||||
-e PDKPATH=/pdk/sky130A \
|
-e PDKPATH=/pdk/sky130A \
|
||||||
|
|
@ -144,7 +144,8 @@ docker-pull:
|
||||||
mount:
|
mount:
|
||||||
docker run -it \
|
docker run -it \
|
||||||
-v $(TOP_DIR):/openram \
|
-v $(TOP_DIR):/openram \
|
||||||
-v $(FREEPDK45):/pdk/freepdk45 \
|
-v $(FREEPDK45):/freepdk45 \
|
||||||
|
-e FREEPDK45=/freepdk45\
|
||||||
-v $(PDK_ROOT):/pdk \
|
-v $(PDK_ROOT):/pdk \
|
||||||
-e PDK_ROOT=/pdk \
|
-e PDK_ROOT=/pdk \
|
||||||
-e PDKPATH=/pdk/sky130A \
|
-e PDKPATH=/pdk/sky130A \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue