From 48bb534658b5698bc5e6e62a779d452afde8a794 Mon Sep 17 00:00:00 2001 From: David Harris Date: Sat, 25 Dec 2021 22:39:51 +0000 Subject: [PATCH] Started FIR test code and started incorporating Imperas tests --- .gitmodules | 3 + addins/imperas-riscv-tests | 1 + bin/testlist.pl | 31 + examples/asm/sumtest/fir.c | 38 + setup.sh | 0 wally-pipelined/regression/Makefile | 3 - .../regression/regression-wally.py | 4 +- wally-pipelined/regression/sim-wally | 2 +- wally-pipelined/regression/sim-wally-batch | 2 +- wally-pipelined/testbench/testbench.sv | 6 +- wally-pipelined/testbench/tests.vh | 792 ++++++++++-------- 11 files changed, 532 insertions(+), 350 deletions(-) create mode 160000 addins/imperas-riscv-tests create mode 100755 bin/testlist.pl create mode 100644 examples/asm/sumtest/fir.c mode change 100644 => 100755 setup.sh diff --git a/.gitmodules b/.gitmodules index cd2774a2d..9dcec4f5d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "addins/riscv-arch-test"] path = addins/riscv-arch-test url = https://github.com/riscv-non-isa/riscv-arch-test +[submodule "addins/imperas-riscv-tests"] + path = addins/imperas-riscv-tests + url = https://github.com/riscv-ovpsim/imperas-riscv-tests diff --git a/addins/imperas-riscv-tests b/addins/imperas-riscv-tests new file mode 160000 index 000000000..e1966a2db --- /dev/null +++ b/addins/imperas-riscv-tests @@ -0,0 +1 @@ +Subproject commit e1966a2dbb0c861b5bc153235cfd53e590ddc930 diff --git a/bin/testlist.pl b/bin/testlist.pl new file mode 100755 index 000000000..5b7accae7 --- /dev/null +++ b/bin/testlist.pl @@ -0,0 +1,31 @@ +#!/bin/perl -W +# testlist.pl +# David_Harris@hmc.edu 25 December 2021 +# Read the work directories from riscv-arch-test or imperas-riscv-tests +# and generate a list of tests and signature addresses for tests.vh + +use strict; +use warnings; +import os; + +if ($#ARGV != 0) { + die("Usage: $0 workpath [e.g. $0 ~/riscv-wally/addins/riscv-arch-test/work") +} +my $mypath = $ARGV[0]; +my @dirs = glob($mypath.'/*/*'); +foreach my $dir (@dirs) { + $dir =~ /.*\/(.*)\/(.*)/; + my $arch = $1; + my $ext = $2; + my $contents = `grep --with-filename ":" $dir/*.objdump`; + my @lines = split('\n', $contents); + print "$arch/$ext"; + foreach my $line (@lines) { + $line =~ /.*\/(.*)\.elf.objdump:(\S*)/; + my $fname = $1; + my $adr = $2; + my $partialaddress = substr($adr, -6); + print ",\n\t\t\"$arch/$ext/$fname\", \"$partialaddress\""; + } + print("\n\n"); +} diff --git a/examples/asm/sumtest/fir.c b/examples/asm/sumtest/fir.c new file mode 100644 index 000000000..cb3bb5920 --- /dev/null +++ b/examples/asm/sumtest/fir.c @@ -0,0 +1,38 @@ +// fir.C +// David_Harris@hmc.edu 25 December 2021 +// Finite Impulse Response Filter + +#include + +#define N 2000 +#define M 100 +#define PI 3.14159 + +double fir(double a[], double c[], double y[], int N, int M) { + int i, j + for (i=0; i