mirror of https://github.com/YosysHQ/yosys.git
Added "test_autotb -seed" (and "autotest.sh -S")
This commit is contained in:
parent
90c17aad56
commit
88a67afa7d
|
@ -71,7 +71,7 @@ static std::string idy(std::string str1, std::string str2 = std::string(), std::
|
|||
return id(str1);
|
||||
}
|
||||
|
||||
static void autotest(std::ostream &f, RTLIL::Design *design, int num_iter)
|
||||
static void autotest(std::ostream &f, RTLIL::Design *design, int num_iter, int seed)
|
||||
{
|
||||
f << stringf("`ifndef outfile\n");
|
||||
f << stringf("\t`define outfile \"/dev/stdout\"\n");
|
||||
|
@ -85,7 +85,7 @@ static void autotest(std::ostream &f, RTLIL::Design *design, int num_iter)
|
|||
f << stringf("reg [31:0] xorshift128_x = 123456789;\n");
|
||||
f << stringf("reg [31:0] xorshift128_y = 362436069;\n");
|
||||
f << stringf("reg [31:0] xorshift128_z = 521288629;\n");
|
||||
f << stringf("reg [31:0] xorshift128_w = %u; // <-- seed value\n", int(time(NULL)));
|
||||
f << stringf("reg [31:0] xorshift128_w = %u; // <-- seed value\n", seed ? seed : int(time(NULL)));
|
||||
f << stringf("reg [31:0] xorshift128_t;\n\n");
|
||||
f << stringf("task xorshift128;\n");
|
||||
f << stringf("begin\n");
|
||||
|
@ -342,6 +342,7 @@ struct TestAutotbBackend : public Backend {
|
|||
virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design)
|
||||
{
|
||||
int num_iter = 1000;
|
||||
int seed = 0;
|
||||
|
||||
log_header(design, "Executing TEST_AUTOTB backend (auto-generate pseudo-random test benches).\n");
|
||||
|
||||
|
@ -352,11 +353,15 @@ struct TestAutotbBackend : public Backend {
|
|||
num_iter = atoi(args[++argidx].c_str());
|
||||
continue;
|
||||
}
|
||||
if (args[argidx] == "-seed" && argidx+1 < GetSize(args)) {
|
||||
seed = atoi(args[++argidx].c_str());
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
extra_args(f, filename, args, argidx);
|
||||
autotest(*f, design, num_iter);
|
||||
autotest(*f, design, num_iter, seed);
|
||||
}
|
||||
} TestAutotbBackend;
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ if [ ! -f $toolsdir/cmp_tbdata -o $toolsdir/cmp_tbdata.c -nt $toolsdir/cmp_tbdat
|
|||
( set -ex; ${CC:-gcc} -Wall -o $toolsdir/cmp_tbdata $toolsdir/cmp_tbdata.c; ) || exit 1
|
||||
fi
|
||||
|
||||
while getopts xmGl:wkjvref:s:p:n: opt; do
|
||||
while getopts xmGl:wkjvref:s:p:n:S: opt; do
|
||||
case "$opt" in
|
||||
x)
|
||||
use_xsim=true ;;
|
||||
|
@ -50,8 +50,10 @@ while getopts xmGl:wkjvref:s:p:n: opt; do
|
|||
scriptopt="$OPTARG" ;;
|
||||
n)
|
||||
autotb_opts="$autotb_opts -n $OPTARG" ;;
|
||||
S)
|
||||
autotb_opts="$autotb_opts -seed $OPTARG" ;;
|
||||
*)
|
||||
echo "Usage: $0 [-x|-m] [-w] [-k] [-j] [-v] [-r] [-e] [-l libs] [-f frontend] [-s script] [-p cmdstring] verilog-files\n" >&2
|
||||
echo "Usage: $0 [-x|-m] [-G] [-w] [-k] [-j] [-v] [-r] [-e] [-l libs] [-f frontend] [-s script] [-p cmdstring] [-n iters] [-S seed] verilog-files\n" >&2
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue