Properly count per-lane req/resps

This commit is contained in:
Hansung Kim
2023-04-21 17:23:51 -07:00
parent db06bda674
commit bbe62a8583

View File

@@ -273,6 +273,7 @@ class CoalescingUnitImp(outer: CoalescingUnit, numLanes: Int) extends LazyModule
) )
println(s"=========== table sourceWidth: ${sourceWidth}") println(s"=========== table sourceWidth: ${sourceWidth}")
println(s"=========== table sizeBits: ${sizeBits}")
newEntry.source := coalSourceId newEntry.source := coalSourceId
newEntry.lanes.foreach { l => newEntry.lanes.foreach { l =>
@@ -674,7 +675,7 @@ class TraceLine extends Bundle with HasTraceLine {
val source = UInt(32.W) val source = UInt(32.W)
val address = UInt(64.W) val address = UInt(64.W)
val is_store = Bool() val is_store = Bool()
val size = UInt(32.W) // this is log2(bytesize) as in TL A bundle val size = UInt(8.W) // this is log2(bytesize) as in TL A bundle
val data = UInt(64.W) val data = UInt(64.W)
} }
@@ -940,17 +941,25 @@ class MemTraceLogger(
// the entire bits. // the entire bits.
resp.address := 0.U resp.address := 0.U
resp.data := tlOut.d.bits.data resp.data := tlOut.d.bits.data
}
// stats // stats
when(req.valid) { val numReqsThisCycle =
numReqs := numReqs + 1.U laneReqs.map { l => Mux(l.valid, 1.U(64.W), 0.U(64.W)) }.reduce { (v0, v1) => v0 + v1 }
reqBytes := reqBytes + (1.U << tlIn.a.bits.size) val numRespsThisCycle =
} laneResps.map { l => Mux(l.valid, 1.U(64.W), 0.U(64.W)) }.reduce { (v0, v1) => v0 + v1 }
when(resp.valid) { val reqBytesThisCycle =
numResps := numResps + 1.U laneReqs.map { l => Mux(l.valid, 1.U(64.W) << l.size, 0.U(64.W)) }.reduce { (b0, b1) =>
respBytes := respBytes + (1.U << tlOut.d.bits.size) b0 + b1
} }
val respBytesThisCycle =
laneResps.map { l => Mux(l.valid, 1.U(64.W) << l.size, 0.U(64.W)) }.reduce { (b0, b1) =>
b0 + b1
} }
numReqs := numReqs + numReqsThisCycle
numResps := numResps + numRespsThisCycle
reqBytes := reqBytes + reqBytesThisCycle
respBytes := respBytes + respBytesThisCycle
// Flatten per-lane signals to the Verilog blackbox input. // Flatten per-lane signals to the Verilog blackbox input.
// //