mirror of
https://github.com/YosysHQ/yosys
synced 2026-03-27 06:45:49 +00:00
46 lines
1.6 KiB
Python
46 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from pathlib import Path
|
|
import glob
|
|
import sys
|
|
sys.path.append("..")
|
|
|
|
import gen_tests_makefile
|
|
|
|
runone_tests = [
|
|
"svinterface1",
|
|
#"svinterface_at_top"
|
|
]
|
|
|
|
def run_one():
|
|
for testname in runone_tests:
|
|
cmd_lines = [
|
|
f'$(YOSYS) -p "read_verilog -sv {testname}.sv ; hierarchy -check -top TopModule ; synth ; write_verilog {testname}_syn.v" >> {testname}.log_stdout 2>> {testname}.log_stderr;',
|
|
f'$(YOSYS) -p "read_verilog -sv {testname}_ref.v ; hierarchy -check -top TopModule ; synth ; write_verilog {testname}_ref_syn.v" >> {testname}.log_stdout 2>> {testname}.log_stderr;',
|
|
f'rm -f a.out reference_result.txt dut_result.txt;',
|
|
f'iverilog -g2012 {testname}_syn.v;',
|
|
f'iverilog -g2012 {testname}_ref_syn.v;',
|
|
f'iverilog -g2012 {testname}_tb.v {testname}_ref_syn.v;',
|
|
f'./a.out;',
|
|
f'mv output.txt reference_result.txt;',
|
|
f'iverilog -g2012 {testname}_tb_wrapper.v {testname}_syn.v;' if testname=="svinterface_at_top" else
|
|
f'iverilog -g2012 {testname}_tb.v {testname}_syn.v;',
|
|
f'./a.out;',
|
|
f'mv output.txt dut_result.txt;',
|
|
f'diff reference_result.txt dut_result.txt > {testname}.diff',
|
|
]
|
|
gen_tests_makefile.generate_cmd_test(testname, cmd_lines)
|
|
|
|
def run_simple():
|
|
for f in sorted(glob.glob("*.ys")):
|
|
gen_tests_makefile.generate_ys_test(f)
|
|
|
|
def main():
|
|
def callback():
|
|
run_one()
|
|
run_simple()
|
|
|
|
gen_tests_makefile.generate_custom(callback)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|