mirror of
https://github.com/YosysHQ/yosys
synced 2026-05-23 10:29:44 +00:00
Converted blif tests
This commit is contained in:
parent
1231bd5397
commit
2bc46e77c8
4 changed files with 31 additions and 23 deletions
|
|
@ -67,7 +67,7 @@ MK_TEST_DIRS += ./asicworld
|
||||||
#SH_TEST_DIRS += ./select
|
#SH_TEST_DIRS += ./select
|
||||||
#SH_TEST_DIRS += ./peepopt
|
#SH_TEST_DIRS += ./peepopt
|
||||||
#SH_TEST_DIRS += ./proc
|
#SH_TEST_DIRS += ./proc
|
||||||
#SH_TEST_DIRS += ./blif
|
MK_TEST_DIRS += ./blif
|
||||||
#SH_TEST_DIRS += ./arch
|
#SH_TEST_DIRS += ./arch
|
||||||
#SH_TEST_DIRS += ./rpc
|
#SH_TEST_DIRS += ./rpc
|
||||||
#SH_TEST_DIRS += ./memfile
|
#SH_TEST_DIRS += ./memfile
|
||||||
|
|
|
||||||
11
tests/blif/generate_mk.py
Normal file
11
tests/blif/generate_mk.py
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
sys.path.append("..")
|
||||||
|
|
||||||
|
import gen_tests_makefile
|
||||||
|
|
||||||
|
gen_tests_makefile.generate(["--yosys-scripts"], [],
|
||||||
|
"""if [ -f $(@:.ys=.blif) ]; then \\
|
||||||
|
diff <(tail -n +2 $(@:.ys=.blif).out) <(tail -n +2 $(@:.ys=.blif).ok) >/dev/null 2>&1; \\
|
||||||
|
fi""")
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
source ../common-env.sh
|
|
||||||
set -e
|
|
||||||
for x in *.ys; do
|
|
||||||
echo "Running $x.."
|
|
||||||
../../yosys --no-version -ql ${x%.ys}.log $x >/dev/null 2>&1
|
|
||||||
done
|
|
||||||
|
|
||||||
for x in *.blif; do
|
|
||||||
diff $x.out $x.ok
|
|
||||||
done
|
|
||||||
|
|
@ -20,23 +20,31 @@ def generate_target(name, command):
|
||||||
print(f"\t@$(call run_test,{target}, \\")
|
print(f"\t@$(call run_test,{target}, \\")
|
||||||
print(f"\t{command})")
|
print(f"\t{command})")
|
||||||
|
|
||||||
def generate_ys_test(ys_file, yosys_args=""):
|
def generate_ys_test(ys_file, yosys_args="", commands=""):
|
||||||
cmd = f'$(YOSYS) -ql {ys_file}.err {yosys_args} {ys_file} >/dev/null 2>&1 && mv {ys_file}.err {ys_file}.log'
|
cmd = f'$(YOSYS) -ql {ys_file}.err {yosys_args} {ys_file} >/dev/null 2>&1 && mv {ys_file}.err {ys_file}.log'
|
||||||
|
if commands:
|
||||||
|
cmd += f"; \\\n{commands}"
|
||||||
generate_target(ys_file, cmd)
|
generate_target(ys_file, cmd)
|
||||||
|
|
||||||
def generate_tcl_test(tcl_file, yosys_args=""):
|
def generate_tcl_test(tcl_file, yosys_args="", commands=""):
|
||||||
cmd = f'$(YOSYS) -ql {tcl_file}.err {yosys_args} {tcl_file} >/dev/null 2>&1 && mv {tcl_file}.err {tcl_file}.log'
|
cmd = f'$(YOSYS) -ql {tcl_file}.err {yosys_args} {tcl_file} >/dev/null 2>&1 && mv {tcl_file}.err {tcl_file}.log'
|
||||||
|
if commands:
|
||||||
|
cmd += f"; \\\n{commands}"
|
||||||
generate_target(tcl_file, cmd)
|
generate_target(tcl_file, cmd)
|
||||||
|
|
||||||
def generate_sv_test(sv_file, yosys_args=""):
|
def generate_sv_test(sv_file, yosys_args="", commands=""):
|
||||||
base = os.path.splitext(sv_file)[0]
|
base = os.path.splitext(sv_file)[0]
|
||||||
if not os.path.exists(base + ".ys"):
|
if not os.path.exists(base + ".ys"):
|
||||||
yosys_cmd = '-p "prep -top top; async2sync; sat -enable_undef -verify -prove-asserts"'
|
yosys_cmd = '-p "prep -top top; async2sync; sat -enable_undef -verify -prove-asserts"'
|
||||||
cmd = f'$(YOSYS) -ql {sv_file}.err {yosys_cmd} {yosys_args} {sv_file} >/dev/null 2>&1 && mv {sv_file}.err {sv_file}.log'
|
cmd = f'$(YOSYS) -ql {sv_file}.err {yosys_cmd} {yosys_args} {sv_file} >/dev/null 2>&1 && mv {sv_file}.err {sv_file}.log'
|
||||||
|
if commands:
|
||||||
|
cmd += f"; \\\n{commands}"
|
||||||
generate_target(sv_file, cmd)
|
generate_target(sv_file, cmd)
|
||||||
|
|
||||||
def generate_bash_test(sh_file):
|
def generate_bash_test(sh_file, commands=""):
|
||||||
cmd = f"bash -v {sh_file} >{sh_file}.err 2>&1 && mv {sh_file}.err {sh_file}.log"
|
cmd = f"bash -v {sh_file} >{sh_file}.err 2>&1 && mv {sh_file}.err {sh_file}.log"
|
||||||
|
if commands:
|
||||||
|
cmd += f"; \\\n{commands}"
|
||||||
generate_target(sh_file, cmd)
|
generate_target(sh_file, cmd)
|
||||||
|
|
||||||
def unpack_cmd(cmd):
|
def unpack_cmd(cmd):
|
||||||
|
|
@ -49,7 +57,7 @@ def unpack_cmd(cmd):
|
||||||
def generate_cmd_test(test_name, cmd, yosys_args=""):
|
def generate_cmd_test(test_name, cmd, yosys_args=""):
|
||||||
generate_target(test_name, unpack_cmd(cmd))
|
generate_target(test_name, unpack_cmd(cmd))
|
||||||
|
|
||||||
def generate_tests(argv):
|
def generate_tests(argv, cmds):
|
||||||
parser = argparse.ArgumentParser(add_help=False)
|
parser = argparse.ArgumentParser(add_help=False)
|
||||||
parser.add_argument("-y", "--yosys-scripts", action="store_true")
|
parser.add_argument("-y", "--yosys-scripts", action="store_true")
|
||||||
parser.add_argument("-t", "--tcl-scripts", action="store_true")
|
parser.add_argument("-t", "--tcl-scripts", action="store_true")
|
||||||
|
|
@ -64,20 +72,20 @@ def generate_tests(argv):
|
||||||
|
|
||||||
if args.yosys_scripts:
|
if args.yosys_scripts:
|
||||||
for f in sorted(glob.glob("*.ys")):
|
for f in sorted(glob.glob("*.ys")):
|
||||||
generate_ys_test(f, args.yosys_args)
|
generate_ys_test(f, args.yosys_args, cmds)
|
||||||
|
|
||||||
if args.tcl_scripts:
|
if args.tcl_scripts:
|
||||||
for f in sorted(glob.glob("*.tcl")):
|
for f in sorted(glob.glob("*.tcl")):
|
||||||
generate_tcl_test(f, args.yosys_args)
|
generate_tcl_test(f, args.yosys_args, cmds)
|
||||||
|
|
||||||
if args.prove_sv:
|
if args.prove_sv:
|
||||||
for f in sorted(glob.glob("*.sv")):
|
for f in sorted(glob.glob("*.sv")):
|
||||||
generate_sv_test(f, args.yosys_args)
|
generate_sv_test(f, args.yosys_args, cmds)
|
||||||
|
|
||||||
if args.bash:
|
if args.bash:
|
||||||
for f in sorted(glob.glob("*.sh")):
|
for f in sorted(glob.glob("*.sh")):
|
||||||
if f != "run-test.sh":
|
if f != "run-test.sh":
|
||||||
generate_bash_test(f)
|
generate_bash_test(f, cmds)
|
||||||
|
|
||||||
def print_header(extra=None):
|
def print_header(extra=None):
|
||||||
print(f"include {common_mk}")
|
print(f"include {common_mk}")
|
||||||
|
|
@ -91,13 +99,13 @@ def print_header(extra=None):
|
||||||
print(".PHONY: all")
|
print(".PHONY: all")
|
||||||
print("all:")
|
print("all:")
|
||||||
|
|
||||||
def generate(argv, extra=None):
|
def generate(argv, extra=None, cmds=""):
|
||||||
with open("Makefile", "w") as f:
|
with open("Makefile", "w") as f:
|
||||||
old = sys.stdout
|
old = sys.stdout
|
||||||
sys.stdout = f
|
sys.stdout = f
|
||||||
try:
|
try:
|
||||||
print_header(extra)
|
print_header(extra)
|
||||||
generate_tests(argv)
|
generate_tests(argv, cmds)
|
||||||
finally:
|
finally:
|
||||||
sys.stdout = old
|
sys.stdout = old
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue