mirror of
https://github.com/YosysHQ/yosys
synced 2026-06-03 07:37:57 +00:00
Convert memlib tests
This commit is contained in:
parent
1effec2029
commit
4a9dc33098
4 changed files with 62 additions and 66 deletions
|
|
@ -60,7 +60,7 @@ MK_TEST_DIRS += ./asicworld
|
||||||
MK_TEST_DIRS += ./share
|
MK_TEST_DIRS += ./share
|
||||||
MK_TEST_DIRS += ./opt_share
|
MK_TEST_DIRS += ./opt_share
|
||||||
MK_TEST_DIRS += ./fsm
|
MK_TEST_DIRS += ./fsm
|
||||||
#SH_TEST_DIRS += ./memlib
|
MK_TEST_DIRS += ./memlib
|
||||||
#SH_TEST_DIRS += ./bram
|
#SH_TEST_DIRS += ./bram
|
||||||
#SH_TEST_DIRS += ./svinterfaces
|
#SH_TEST_DIRS += ./svinterfaces
|
||||||
MK_TEST_DIRS += ./xprop
|
MK_TEST_DIRS += ./xprop
|
||||||
|
|
|
||||||
|
|
@ -1536,44 +1536,28 @@ endmodule
|
||||||
TESTS.append(Test("rom_case", ROM_CASE.format(attr=""), ["block_sdp"], [], {"RAM_BLOCK_SDP" : 0}))
|
TESTS.append(Test("rom_case", ROM_CASE.format(attr=""), ["block_sdp"], [], {"RAM_BLOCK_SDP" : 0}))
|
||||||
TESTS.append(Test("rom_case_block", ROM_CASE.format(attr="(* rom_style = \"block\" *) "), ["block_sdp"], [], {"RAM_BLOCK_SDP" : 1}))
|
TESTS.append(Test("rom_case_block", ROM_CASE.format(attr="(* rom_style = \"block\" *) "), ["block_sdp"], [], {"RAM_BLOCK_SDP" : 1}))
|
||||||
|
|
||||||
with open("run-test.mk", "w") as mf:
|
for t in TESTS:
|
||||||
mf.write("ifneq ($(strip $(SEED)),)\n")
|
with open("t_{}.v".format(t.name), "w") as tf:
|
||||||
mf.write("SEEDOPT=-S$(SEED)\n")
|
tf.write(t.src)
|
||||||
mf.write("endif\n")
|
with open("t_{}.ys".format(t.name), "w") as sf:
|
||||||
mf.write("all:")
|
sf.write("proc\n")
|
||||||
for t in TESTS:
|
sf.write("opt\n")
|
||||||
mf.write(" " + t.name)
|
sf.write("opt -full\n")
|
||||||
mf.write("\n")
|
sf.write("memory -nomap\n")
|
||||||
mf.write(".PHONY: all\n")
|
sf.write("dump\n")
|
||||||
|
sf.write("memory_libmap")
|
||||||
|
|
||||||
for t in TESTS:
|
|
||||||
with open("t_{}.v".format(t.name), "w") as tf:
|
|
||||||
tf.write(t.src)
|
|
||||||
with open("t_{}.ys".format(t.name), "w") as sf:
|
|
||||||
sf.write("proc\n")
|
|
||||||
sf.write("opt\n")
|
|
||||||
sf.write("opt -full\n")
|
|
||||||
sf.write("memory -nomap\n")
|
|
||||||
sf.write("dump\n")
|
|
||||||
sf.write("memory_libmap")
|
|
||||||
for lib in t.libs:
|
|
||||||
sf.write(" -lib ../memlib_{}.txt".format(lib))
|
|
||||||
for d in t.defs:
|
|
||||||
sf.write(" -D {}".format(d))
|
|
||||||
sf.write("\n")
|
|
||||||
sf.write("memory_map\n")
|
|
||||||
for k, v in t.cells.items():
|
|
||||||
if isinstance(v, tuple):
|
|
||||||
(cc, ca) = v
|
|
||||||
sf.write("select -assert-count {} t:{}\n".format(cc, k))
|
|
||||||
for kk, vv in ca.items():
|
|
||||||
sf.write("select -assert-count {} t:{} r:{}={} %i\n".format(cc, k, kk, vv))
|
|
||||||
else:
|
|
||||||
sf.write("select -assert-count {} t:{}\n".format(v, k))
|
|
||||||
mf.write("{}:\n".format(t.name))
|
|
||||||
mf.write("\t@../tools/autotest.sh -G -j $(SEEDOPT) $(EXTRA_FLAGS) -p 'script ../t_{}.ys'".format(t.name))
|
|
||||||
for lib in t.libs:
|
for lib in t.libs:
|
||||||
mf.write(" -l memlib_{}.v".format(lib))
|
sf.write(" -lib ../memlib_{}.txt".format(lib))
|
||||||
mf.write(" t_{}.v || (cat t_{}.err; exit 1)\n".format(t.name, t.name))
|
for d in t.defs:
|
||||||
mf.write(".PHONY: {}\n".format(t.name))
|
sf.write(" -D {}".format(d))
|
||||||
|
sf.write("\n")
|
||||||
|
sf.write("memory_map\n")
|
||||||
|
for k, v in t.cells.items():
|
||||||
|
if isinstance(v, tuple):
|
||||||
|
(cc, ca) = v
|
||||||
|
sf.write("select -assert-count {} t:{}\n".format(cc, k))
|
||||||
|
for kk, vv in ca.items():
|
||||||
|
sf.write("select -assert-count {} t:{} r:{}={} %i\n".format(cc, k, kk, vv))
|
||||||
|
else:
|
||||||
|
sf.write("select -assert-count {} t:{}\n".format(v, k))
|
||||||
|
|
||||||
|
|
|
||||||
28
tests/memlib/generate_mk.py
Normal file
28
tests/memlib/generate_mk.py
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
sys.path.append("..")
|
||||||
|
|
||||||
|
import gen_tests_makefile
|
||||||
|
from generate import TESTS
|
||||||
|
|
||||||
|
def create_tests():
|
||||||
|
for t in TESTS:
|
||||||
|
libs_args = ""
|
||||||
|
for lib in t.libs:
|
||||||
|
libs_args += f" -l memlib_{lib}.v"
|
||||||
|
cmd = (
|
||||||
|
f"../tools/autotest.sh -G -j ${{SEEDOPT}} ${{EXTRA_FLAGS}} "
|
||||||
|
f"-p 'script ../t_{t.name}.ys'"
|
||||||
|
f"{libs_args} "
|
||||||
|
f"t_{t.name}.v >/dev/null 2>&1 || (cat t_{t.name}.err; exit 1)"
|
||||||
|
)
|
||||||
|
gen_tests_makefile.generate_target(t.name, cmd)
|
||||||
|
|
||||||
|
extra = [
|
||||||
|
"SEED ?=",
|
||||||
|
"ifneq ($(strip $(SEED)),)",
|
||||||
|
" SEEDOPT=-S$(SEED)",
|
||||||
|
"endif",
|
||||||
|
]
|
||||||
|
gen_tests_makefile.generate_custom(create_tests, extra)
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
source ../common-env.sh
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
OPTIND=1
|
|
||||||
seed="" # default to no seed specified
|
|
||||||
while getopts "S:" opt
|
|
||||||
do
|
|
||||||
case "$opt" in
|
|
||||||
S) seed="$OPTARG" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift "$((OPTIND-1))"
|
|
||||||
|
|
||||||
python3 generate.py
|
|
||||||
exec ${MAKE:-make} -f run-test.mk SEED="$seed"
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue