added handler for delta to handle delta being all 1's
This commit is contained in:
File diff suppressed because it is too large
Load Diff
1621
builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test1.txt
Normal file
1621
builds/RV64ACDFIMSUxCHERI_Toooba_bluesim/test1.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -918,7 +918,7 @@ module mkCore#(CoreId coreId)(Core);
|
|||||||
// incr cycle count
|
// incr cycle count
|
||||||
(* fire_when_enabled, no_implicit_conditions *)
|
(* fire_when_enabled, no_implicit_conditions *)
|
||||||
rule incCycleCnt(doStats);
|
rule incCycleCnt(doStats);
|
||||||
$display("calling cycle");
|
// $display("calling cycle");
|
||||||
cycleCnt.incr(1);
|
cycleCnt.incr(1);
|
||||||
endrule
|
endrule
|
||||||
|
|
||||||
@@ -963,7 +963,6 @@ module mkCore#(CoreId coreId)(Core);
|
|||||||
// broadcast whether we should collect data
|
// broadcast whether we should collect data
|
||||||
rule broadcastDoStats;
|
rule broadcastDoStats;
|
||||||
let stats = csrf.doPerfStats;
|
let stats = csrf.doPerfStats;
|
||||||
$display("[stats] enabled %0d", csrf.doPerfStats);
|
|
||||||
doStats <= stats;
|
doStats <= stats;
|
||||||
iMem.perf.setStatus(stats);
|
iMem.perf.setStatus(stats);
|
||||||
dMem.perf.setStatus(stats);
|
dMem.perf.setStatus(stats);
|
||||||
|
|||||||
@@ -653,8 +653,15 @@ module mkMemExePipeline#(MemExeInput inIfc)(MemExePipeline);
|
|||||||
`endif
|
`endif
|
||||||
// Test delta value read from the pointer
|
// Test delta value read from the pointer
|
||||||
Bit#(25) delta = decodeDelta(x.vaddr);
|
Bit#(25) delta = decodeDelta(x.vaddr);
|
||||||
$display("Decoded delta = %0d", delta);
|
$display("Decoded delta from register = %0d", delta);
|
||||||
x.vaddr = encodeDelta(x.vaddr, 0);
|
|
||||||
|
// 33554431 is 2^25 - 1 (all ones)
|
||||||
|
if (delta == 33554431) begin
|
||||||
|
delta = 0;
|
||||||
|
end else begin
|
||||||
|
x.vaddr = encodeDelta(x.vaddr, 0);
|
||||||
|
end
|
||||||
|
// x.vaddr = encodeDelta(x.vaddr, 0);
|
||||||
// x.vaddr = (x.vaddr >> 25) << 25;
|
// x.vaddr = (x.vaddr >> 25) << 25;
|
||||||
// x.vaddr = (x.vaddr >> 25) << 25;
|
// x.vaddr = (x.vaddr >> 25) << 25;
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ function CapPipe capModify(CapPipe a, CapPipe b, CapModifyFunc func);
|
|||||||
// TODO: Delta handler function
|
// TODO: Delta handler function
|
||||||
CapPipe res = (case(func) matches
|
CapPipe res = (case(func) matches
|
||||||
tagged ModifyOffset .offsetOp :
|
tagged ModifyOffset .offsetOp :
|
||||||
//modifyOffset(a_mut, getAddr(b), offsetOp == IncOffset).value;
|
// modifyOffset(a_mut, getAddr(b), offsetOp == IncOffset).value;
|
||||||
// To test this
|
// To test this
|
||||||
encodeDelta(a_mut, getAddr(b));
|
encodeDelta(a_mut, getAddr(b));
|
||||||
tagged SetBounds .boundsOp :
|
tagged SetBounds .boundsOp :
|
||||||
|
|||||||
Reference in New Issue
Block a user