mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-03 02:05:21 +00:00
busybear testbench: check for read data address also
and check for more end of files better
This commit is contained in:
parent
7fd73d12e9
commit
e19af0a52a
@ -82,12 +82,12 @@ module testbench_busybear();
|
|||||||
|
|
||||||
always @(rf) begin
|
always @(rf) begin
|
||||||
for(int j=1; j<32; j++) begin
|
for(int j=1; j<32; j++) begin
|
||||||
// read 31 integer registers
|
|
||||||
scan_file_rf = $fscanf(data_file_rf, "%x\n", rfExpected[j]);
|
|
||||||
if($feof(data_file_rf)) begin
|
if($feof(data_file_rf)) begin
|
||||||
$display("no more rf data to read");
|
$display("no more rf data to read");
|
||||||
$stop;
|
$stop;
|
||||||
end
|
end
|
||||||
|
// read 31 integer registers
|
||||||
|
scan_file_rf = $fscanf(data_file_rf, "%x\n", rfExpected[j]);
|
||||||
// check things!
|
// check things!
|
||||||
if (rf[j*64+63 -: 64] != rfExpected[j]) begin
|
if (rf[j*64+63 -: 64] != rfExpected[j]) begin
|
||||||
$display("%t ps: rf[%0d] does not equal rf expected: %x, %x", $time, j, rf[j*64+63 -: 64], rfExpected[j]);
|
$display("%t ps: rf[%0d] does not equal rf expected: %x, %x", $time, j, rf[j*64+63 -: 64], rfExpected[j]);
|
||||||
@ -96,10 +96,19 @@ module testbench_busybear();
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
logic [`XLEN-1:0] readAdrExpected;
|
||||||
// this might need to change
|
// this might need to change
|
||||||
always @(MemRWM[1] or DataAdrM) begin
|
always @(MemRWM[1] or DataAdrM) begin
|
||||||
if (MemRWM[1]) begin
|
if (MemRWM[1]) begin
|
||||||
|
if($feof(data_file_memR)) begin
|
||||||
|
$display("no more memR data to read");
|
||||||
|
$stop;
|
||||||
|
end
|
||||||
|
scan_file_memR = $fscanf(data_file_memR, "%x\n", readAdrExpected);
|
||||||
scan_file_memR = $fscanf(data_file_memR, "%x\n", ReadDataM);
|
scan_file_memR = $fscanf(data_file_memR, "%x\n", ReadDataM);
|
||||||
|
if (DataAdrM != readAdrExpected) begin
|
||||||
|
$display("%t ps: DataAdrM does not equal readAdrExpected: %x, %x", $time, DataAdrM, readAdrExpected);
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -108,6 +117,10 @@ module testbench_busybear();
|
|||||||
always @(WriteDataM or DataAdrM or ByteMaskM) begin
|
always @(WriteDataM or DataAdrM or ByteMaskM) begin
|
||||||
#1;
|
#1;
|
||||||
if (MemRWM[0]) begin
|
if (MemRWM[0]) begin
|
||||||
|
if($feof(data_file_memW)) begin
|
||||||
|
$display("no more memW data to read");
|
||||||
|
$stop;
|
||||||
|
end
|
||||||
scan_file_memW = $fscanf(data_file_memW, "%x\n", writeDataExpected);
|
scan_file_memW = $fscanf(data_file_memW, "%x\n", writeDataExpected);
|
||||||
scan_file_memW = $fscanf(data_file_memW, "%x\n", writeAdrExpected);
|
scan_file_memW = $fscanf(data_file_memW, "%x\n", writeAdrExpected);
|
||||||
if (writeDataExpected != WriteDataM) begin
|
if (writeDataExpected != WriteDataM) begin
|
||||||
@ -140,6 +153,10 @@ module testbench_busybear();
|
|||||||
end
|
end
|
||||||
else begin
|
else begin
|
||||||
//if (~speculative) begin
|
//if (~speculative) begin
|
||||||
|
if($feof(data_file_PC)) begin
|
||||||
|
$display("no more PC data to read");
|
||||||
|
$stop;
|
||||||
|
end
|
||||||
// first read instruction
|
// first read instruction
|
||||||
scan_file_PC = $fscanf(data_file_PC, "%s %s\n", PCtext, PCtext2);
|
scan_file_PC = $fscanf(data_file_PC, "%s %s\n", PCtext, PCtext2);
|
||||||
PCtext = {PCtext, " ", PCtext2};
|
PCtext = {PCtext, " ", PCtext2};
|
||||||
@ -148,10 +165,6 @@ module testbench_busybear();
|
|||||||
scan_file_PC = $fscanf(data_file_PC, "%x\n", pcExpected);
|
scan_file_PC = $fscanf(data_file_PC, "%x\n", pcExpected);
|
||||||
$display("loaded %0d instructions", instrs);
|
$display("loaded %0d instructions", instrs);
|
||||||
instrs += 1;
|
instrs += 1;
|
||||||
if($feof(data_file_PC)) begin
|
|
||||||
$display("no more PC data to read");
|
|
||||||
$stop;
|
|
||||||
end
|
|
||||||
// are we at a branch/jump?
|
// are we at a branch/jump?
|
||||||
case (lastInstrF[6:0]) //todo: add C versions of these
|
case (lastInstrF[6:0]) //todo: add C versions of these
|
||||||
7'b1101111, //JAL
|
7'b1101111, //JAL
|
||||||
|
Loading…
Reference in New Issue
Block a user