This is a prototype of Concolic Testing engine for SystemVerilog. This program generates 100% line-of-code coverage test cases for a circuit written in SystemVerilog by alternatively repeating concrete execution and simbolic execution in the similar way as DART[1] and HYBRO[2].
There are several limitations on supported SystemVerilog Features.
Disclaimer: PFN provides no warranty or support for this software. Use it at your own risk.
This software is developed as part of PFN summer internship 2018 and the main developer is Hiroki Oshikawa.
OCaml libraries and menhir can be installed through opam.
make
_build/default/src/main.exe -i file.sv -f file.bin -v log.vcd -s script.sh
Note: make emits many warnings for now.
file.sv : Target program written in SystemVerilogfile.bin : File used to read and write input vectors during executionlog.vcd : VCD filescript.sh : Shell script to run a simulator. It is assumed that file.sh runs file.sv against input vectors in file.bin and dump a result into log.vcd.-c dump coverage information
-dparse dump parsed tree
-dir dump IR
-dcfg generate dot files from CFG
-dtrace dump trace
-dz3 dump z3 log
-dinputs file dump all input vectors to [file]
-test run without concrete execution
Input vectors generated above procedure comprise a test case.
src/MIT License (see the LICENSE file for details).
1 commits
OCaml
98.5%
Python
1.4%
This is a prototype of Concolic Testing engine for SystemVerilog. This program generates 100% line-of-code coverage test cases for a circuit written in SystemVerilog by alternatively repeating concrete execution and simbolic execution in the similar way as DART[1] and HYBRO[2].
There are several limitations on supported SystemVerilog Features.
Disclaimer: PFN provides no warranty or support for this software. Use it at your own risk.
This software is developed as part of PFN summer internship 2018 and the main developer is Hiroki Oshikawa.
OCaml libraries and menhir can be installed through opam.
make
_build/default/src/main.exe -i file.sv -f file.bin -v log.vcd -s script.sh
Note: make emits many warnings for now.
file.sv : Target program written in SystemVerilogfile.bin : File used to read and write input vectors during executionlog.vcd : VCD filescript.sh : Shell script to run a simulator. It is assumed that file.sh runs file.sv against input vectors in file.bin and dump a result into log.vcd.-c dump coverage information
-dparse dump parsed tree
-dir dump IR
-dcfg generate dot files from CFG
-dtrace dump trace
-dz3 dump z3 log
-dinputs file dump all input vectors to [file]
-test run without concrete execution
Input vectors generated above procedure comprise a test case.
src/MIT License (see the LICENSE file for details).
1 commits
OCaml
98.5%
Python
1.4%