Fix performance reporting requests for multicore

This commit is contained in:
Peter Rugg
2020-11-04 12:11:31 +00:00
parent 61b88ef987
commit bf77ac74ba

View File

@@ -50,6 +50,7 @@ import GetPut :: *;
import ClientServer :: *;
import Connectable :: *;
import FIFOF :: *;
import FIFO :: *;
import ConfigReg :: *;
// ----------------
@@ -170,16 +171,23 @@ module mkProc (Proc_IFC);
// ================================================================
// Connect stats
FIFO#(Bool) statReqs <- mkFIFO;
for(Integer i = 0; i < valueof(CoreNum); i = i+1) begin
rule broadcastStats;
Bool doStats <- core[i].sendDoStats;
for(Integer j = 0; j < valueof(CoreNum); j = j+1) begin
core[j].recvDoStats(doStats);
end
llc.perf.setStatus(doStats);
endrule
rule recvStatReq;
Bool doStats <- core[i].sendDoStats;
statReqs.enq(doStats);
endrule
end
rule broadcastStats;
for(Integer j = 0; j < valueof(CoreNum); j = j+1) begin
core[j].recvDoStats(statReqs.first);
end
llc.perf.setStatus(statReqs.first);
statReqs.deq;
endrule
// ================================================================
// Stub out deadlock and renameDebug interfaces