mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 02:05:21 +00:00
Added performance counting to sumtest and added imperas32/64periph to testbench.
This commit is contained in:
parent
52469db9ff
commit
d78b806332
@ -6,9 +6,13 @@ rvtest_entry_point:
|
||||
la sp, topofstack # Initialize stack pointer
|
||||
la t0, N # get address of N in data
|
||||
ld a0, 0(t0) # load N
|
||||
csrr s8, instret # count instructions before call
|
||||
jal sum # call sum(N)
|
||||
csrr s9, instret # count instructions after call
|
||||
sub s9, s9, s8 # length of call
|
||||
la t0, begin_signature # address of signature
|
||||
sd a0, 0(t0) # store sum(N) in signature
|
||||
sd s9, 8(t0) # record performance
|
||||
|
||||
write_tohost:
|
||||
la t1, tohost
|
||||
@ -28,8 +32,9 @@ fromhost:
|
||||
N:
|
||||
.dword 4
|
||||
|
||||
.EQU XLEN,64
|
||||
begin_signature:
|
||||
.fill 2,4,0xdeadbeef
|
||||
.fill 2*(XLEN/32),4,0xdeadbeef #
|
||||
end_signature:
|
||||
|
||||
# Initialize stack with room for 512 bytes
|
||||
|
@ -1 +1,2 @@
|
||||
000000000000000A
|
||||
000000000000001C
|
||||
|
@ -1,3 +1,3 @@
|
||||
vsim -c <<!
|
||||
do wally-pipelined-batch.do rv64gc imperas64c
|
||||
do wally-pipelined-batch.do rv64gc imperas64periph
|
||||
!
|
||||
|
@ -76,7 +76,7 @@ logic [3:0] dummy;
|
||||
// pick tests based on modes supported
|
||||
initial begin
|
||||
$display("TEST is %s", TEST);
|
||||
tests = '{"empty"};
|
||||
tests = '{};
|
||||
if (`XLEN == 64) begin // RV64
|
||||
case (TEST)
|
||||
"arch64i": tests = arch64i;
|
||||
@ -94,9 +94,9 @@ logic [3:0] dummy;
|
||||
"imperas64c": if (`C_SUPPORTED) tests = imperas64c;
|
||||
else tests = imperas64iNOc;
|
||||
"testsBP64": tests = testsBP64;
|
||||
"wally64i": tests = wally64i;
|
||||
"wally64priv": tests = wally64priv;
|
||||
"wally64periph": tests = wally64periph;
|
||||
"wally64i": tests = wally64i; // *** redo
|
||||
"wally64priv": tests = wally64priv;// *** redo
|
||||
"imperas64periph": tests = imperas64periph;
|
||||
endcase
|
||||
end else begin // RV32
|
||||
case (TEST)
|
||||
@ -113,12 +113,12 @@ logic [3:0] dummy;
|
||||
"imperas32a": if (`A_SUPPORTED) tests = imperas32a;
|
||||
"imperas32c": if (`C_SUPPORTED) tests = imperas32c;
|
||||
else tests = imperas32iNOc;
|
||||
"wally32i": tests = wally32i;
|
||||
"wally32priv": tests = wally32priv;
|
||||
"wally32periph": tests = wally32periph;
|
||||
"wally32i": tests = wally32i; // *** redo
|
||||
"wally32priv": tests = wally32priv; // *** redo
|
||||
"imperas32periph": tests = imperas32periph;
|
||||
endcase
|
||||
end
|
||||
if (tests.size() == 1) begin
|
||||
if (tests.size() == 0) begin
|
||||
$display("TEST %s not supported in this configuration", TEST);
|
||||
$stop;
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user