Skip to content

Commit

Permalink
Export a monitor port.
Browse files Browse the repository at this point in the history
  • Loading branch information
losfair committed May 7, 2022
1 parent ff5b83b commit 90c0383
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/main/scala/magicore/isa/riscv/soc/MagiSoC.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ import magicore.lib.mas.Axi4MicroarchSamplerCtrl
import spinal.lib.misc.InterruptCtrl
import spinal.lib.misc.plic.PlicMapping

case class MagiSoC_MonitorPort() extends Bundle {
val retire = Vec(Flow(UInt(32 bits)), 2)
}

class MagiSoC(
debug: Boolean,
rv64: Boolean,
Expand Down Expand Up @@ -132,6 +136,13 @@ class MagiSoC(
val masCtrl =
new Axi4MicroarchSamplerCtrl(sampler = mas, idWidth = slaveIdWidth)

val monitor = MagiSoC_MonitorPort()
monitor.retire := Vec(
processor.pipeline.dispatch.io.writebackMonitor.map(x =>
x.translateWith(x.payload.lookup[FetchPacket].pc)
)
)

val io = new Bundle {
val bus = master(
Axi4(
Expand All @@ -144,7 +155,9 @@ class MagiSoC(
)
val interrupts = in(Bits(numExternalInterrupts bits))
val uart = master(Uart())
val monitor = out(MagiSoC_MonitorPort())
}
io.monitor := monitor

val plicInterruptLine = Bool()
val plic = Axi4PlicGenerator(
Expand Down

0 comments on commit 90c0383

Please sign in to comment.