mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
removed ugly /ref/Ref from tests.vh, added back d_fsd-align-01.S and d_fld-align-01.S tests to tests.vh, updated makefile to fix the riscof issues and fix fld fsd tests, updated testbench.sv for comptability with changes
This commit is contained in:
parent
4793267bd7
commit
a8faddf81f
@ -195,13 +195,19 @@ logic [3:0] dummy;
|
|||||||
/* if (tests[0] == `IMPERASTEST)
|
/* if (tests[0] == `IMPERASTEST)
|
||||||
pathname = tvpaths[0];
|
pathname = tvpaths[0];
|
||||||
else pathname = tvpaths[1]; */
|
else pathname = tvpaths[1]; */
|
||||||
memfilename = {pathname, tests[test], ".elf.memfile"};
|
if (riscofTest) memfilename = {pathname, tests[test], "/ref/ref.elf.memfile"};
|
||||||
|
else memfilename = {pathname, tests[test], ".elf.memfile"};
|
||||||
if (`IMEM == `MEM_TIM) $readmemh(memfilename, dut.core.ifu.irom.irom.ram.memory.RAM);
|
if (`IMEM == `MEM_TIM) $readmemh(memfilename, dut.core.ifu.irom.irom.ram.memory.RAM);
|
||||||
else $readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
else $readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
||||||
if (`DMEM == `MEM_TIM) $readmemh(memfilename, dut.core.lsu.dtim.dtim.ram.memory.RAM);
|
if (`DMEM == `MEM_TIM) $readmemh(memfilename, dut.core.lsu.dtim.dtim.ram.memory.RAM);
|
||||||
|
|
||||||
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
|
if (riscofTest) begin
|
||||||
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
|
ProgramAddrMapFile = {pathname, tests[test], "/ref/ref.elf.objdump.addr"};
|
||||||
|
ProgramLabelMapFile = {pathname, tests[test], "/ref/ref.elf.objdump.lab"};
|
||||||
|
end else begin
|
||||||
|
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
|
||||||
|
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
|
||||||
|
end
|
||||||
// declare memory labels that interest us, the updateProgramAddrLabelArray task will find the addr of each label and fill the array
|
// declare memory labels that interest us, the updateProgramAddrLabelArray task will find the addr of each label and fill the array
|
||||||
// to expand, add more elements to this array and initialize them to zero (also initilaize them to zero at the start of the next test)
|
// to expand, add more elements to this array and initialize them to zero (also initilaize them to zero at the start of the next test)
|
||||||
updateProgramAddrLabelArray(ProgramAddrMapFile, ProgramLabelMapFile, ProgramAddrLabelArray);
|
updateProgramAddrLabelArray(ProgramAddrMapFile, ProgramLabelMapFile, ProgramAddrLabelArray);
|
||||||
@ -241,7 +247,8 @@ logic [3:0] dummy;
|
|||||||
// this contains instret and cycles for start and end of test run, used by embench python speed script to calculate embench speed score
|
// this contains instret and cycles for start and end of test run, used by embench python speed script to calculate embench speed score
|
||||||
// also begin_signature contains the results of the self checking mechanism, which will be read by the python script for error checking
|
// also begin_signature contains the results of the self checking mechanism, which will be read by the python script for error checking
|
||||||
$display("Embench Benchmark: %s is done.", tests[test]);
|
$display("Embench Benchmark: %s is done.", tests[test]);
|
||||||
outputfile = {pathname, tests[test], ".sim.output"};
|
if (riscofTest) outputfile = {pathname, tests[test], "/ref/ref.sim.output"};
|
||||||
|
else outputfile = {pathname, tests[test], ".sim.output"};
|
||||||
outputFilePointer = $fopen(outputfile);
|
outputFilePointer = $fopen(outputfile);
|
||||||
i = 0;
|
i = 0;
|
||||||
while ($unsigned(i) < $unsigned(5'd5)) begin
|
while ($unsigned(i) < $unsigned(5'd5)) begin
|
||||||
@ -256,7 +263,7 @@ logic [3:0] dummy;
|
|||||||
for(i=0; i<SIGNATURESIZE; i=i+1) begin
|
for(i=0; i<SIGNATURESIZE; i=i+1) begin
|
||||||
sig32[i] = 'bx;
|
sig32[i] = 'bx;
|
||||||
end
|
end
|
||||||
if (riscofTest) signame = {pathname, tests[test], "erence-sail_c_simulator.signature"};
|
if (riscofTest) signame = {pathname, tests[test], "/ref/Reference-sail_c_simulator.signature"};
|
||||||
else signame = {pathname, tests[test], ".signature.output"};
|
else signame = {pathname, tests[test], ".signature.output"};
|
||||||
// read signature, reformat in 64 bits if necessary
|
// read signature, reformat in 64 bits if necessary
|
||||||
$readmemh(signame, sig32);
|
$readmemh(signame, sig32);
|
||||||
@ -313,14 +320,20 @@ logic [3:0] dummy;
|
|||||||
else begin
|
else begin
|
||||||
// If there are still additional tests to run, read in information for the next test
|
// If there are still additional tests to run, read in information for the next test
|
||||||
//pathname = tvpaths[tests[0]];
|
//pathname = tvpaths[tests[0]];
|
||||||
memfilename = {pathname, tests[test], ".elf.memfile"};
|
if (riscofTest) memfilename = {pathname, tests[test], "/ref/ref.elf.memfile"};
|
||||||
|
else memfilename = {pathname, tests[test], ".elf.memfile"};
|
||||||
//$readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
//$readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
||||||
if (`IMEM == `MEM_TIM) $readmemh(memfilename, dut.core.ifu.irom.irom.ram.memory.RAM);
|
if (`IMEM == `MEM_TIM) $readmemh(memfilename, dut.core.ifu.irom.irom.ram.memory.RAM);
|
||||||
else $readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
else $readmemh(memfilename, dut.uncore.ram.ram.memory.RAM);
|
||||||
if (`DMEM == `MEM_TIM) $readmemh(memfilename, dut.core.lsu.dtim.dtim.ram.memory.RAM);
|
if (`DMEM == `MEM_TIM) $readmemh(memfilename, dut.core.lsu.dtim.dtim.ram.memory.RAM);
|
||||||
|
|
||||||
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
|
if (riscofTest) begin
|
||||||
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
|
ProgramAddrMapFile = {pathname, tests[test], "/ref/ref.elf.objdump.addr"};
|
||||||
|
ProgramLabelMapFile = {pathname, tests[test], "/ref/ref.elf.objdump.lab"};
|
||||||
|
end else begin
|
||||||
|
ProgramAddrMapFile = {pathname, tests[test], ".elf.objdump.addr"};
|
||||||
|
ProgramLabelMapFile = {pathname, tests[test], ".elf.objdump.lab"};
|
||||||
|
end
|
||||||
ProgramAddrLabelArray = '{ "begin_signature" : 0, "tohost" : 0 };
|
ProgramAddrLabelArray = '{ "begin_signature" : 0, "tohost" : 0 };
|
||||||
updateProgramAddrLabelArray(ProgramAddrMapFile, ProgramLabelMapFile, ProgramAddrLabelArray);
|
updateProgramAddrLabelArray(ProgramAddrMapFile, ProgramLabelMapFile, ProgramAddrLabelArray);
|
||||||
$display("Read memfile %s", memfilename);
|
$display("Read memfile %s", memfilename);
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -17,7 +17,13 @@ root:
|
|||||||
mkdir -p $(wally_workdir)
|
mkdir -p $(wally_workdir)
|
||||||
sed 's,{0},$(current_dir),g;s,{1},$(XLEN)$(if $(findstring 64,$(XLEN)),gc,imc),g' config.ini > config$(XLEN).ini
|
sed 's,{0},$(current_dir),g;s,{1},$(XLEN)$(if $(findstring 64,$(XLEN)),gc,imc),g' config.ini > config$(XLEN).ini
|
||||||
|
|
||||||
build_arch:
|
fsd_fld_tempfix:
|
||||||
|
# this is a temporary fix, there's a typo on the rv64i_m/D/src/d_fsd-align-01.S and rv64i_m/D/src/d_fld-align-01.S tests
|
||||||
|
# https://github.com/riscv-non-isa/riscv-arch-test/issues/266
|
||||||
|
find ../../addins/riscv-arch-test/riscv-test-suite -type f -name "*fld*.S" | xargs -I{} sed -i 's,regex(\.\*32\.\*),regex(\.\*64\.\*),g' {}
|
||||||
|
find ../../addins/riscv-arch-test/riscv-test-suite -type f -name "*fsd*.S" | xargs -I{} sed -i 's,regex(\.\*32\.\*),regex(\.\*64\.\*),g' {}
|
||||||
|
|
||||||
|
build_arch: fsd_fld_tempfix
|
||||||
riscof run --work-dir=$(work_dir) --config=config$(XLEN).ini --suite=$(arch_dir)/riscv-test-suite/ --env=$(arch_dir)/riscv-test-suite/env --no-browser
|
riscof run --work-dir=$(work_dir) --config=config$(XLEN).ini --suite=$(arch_dir)/riscv-test-suite/ --env=$(arch_dir)/riscv-test-suite/env --no-browser
|
||||||
rm -rf $(arch_workdir)/rv$(XLEN)i_m
|
rm -rf $(arch_workdir)/rv$(XLEN)i_m
|
||||||
mv -f $(work_dir)/rv$(XLEN)i_m $(arch_workdir)/
|
mv -f $(work_dir)/rv$(XLEN)i_m $(arch_workdir)/
|
||||||
|
@ -90,7 +90,7 @@ class sail_cSim(pluginTemplate):
|
|||||||
test_dir = testentry['work_dir']
|
test_dir = testentry['work_dir']
|
||||||
test_name = test.rsplit('/',1)[1][:-2]
|
test_name = test.rsplit('/',1)[1][:-2]
|
||||||
|
|
||||||
elf = 'Ref.elf'
|
elf = 'ref.elf'
|
||||||
|
|
||||||
execute = "@cd "+testentry['work_dir']+";"
|
execute = "@cd "+testentry['work_dir']+";"
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ class sail_cSim(pluginTemplate):
|
|||||||
compile_cmd = cmd + ' -D' + " -D".join(testentry['macros'])
|
compile_cmd = cmd + ' -D' + " -D".join(testentry['macros'])
|
||||||
execute+=compile_cmd+";"
|
execute+=compile_cmd+";"
|
||||||
|
|
||||||
execute += self.objdump_cmd.format(elf, self.xlen, 'Ref.elf.objdump')
|
execute += self.objdump_cmd.format(elf, self.xlen, 'ref.elf.objdump')
|
||||||
sig_file = os.path.join(test_dir, self.name[:-1] + ".signature")
|
sig_file = os.path.join(test_dir, self.name[:-1] + ".signature")
|
||||||
|
|
||||||
execute += self.sail_exe[self.xlen] + ' -z268435455 --test-signature={0} {1} > {2}.log 2>&1;'.format(sig_file, elf, test_name)
|
execute += self.sail_exe[self.xlen] + ' -z268435455 --test-signature={0} {1} > {2}.log 2>&1;'.format(sig_file, elf, test_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user