Add DebugPlugin avalon

This commit is contained in:
Charles Papon 2017-07-14 19:28:22 +02:00
parent d3dcfcec06
commit 12d21a08e8
3 changed files with 22 additions and 3 deletions

View File

@ -6,6 +6,7 @@ import VexRiscv.ip._
import spinal.core._
import spinal.lib._
import spinal.lib.bus.amba3.apb.{Apb3Config, Apb3}
import spinal.lib.bus.avalon.{AvalonMMConfig, AvalonMM}
case class DebugExtensionCmd() extends Bundle{
@ -19,14 +20,14 @@ case class DebugExtensionRsp() extends Bundle{
case class DebugExtensionBus() extends Bundle with IMasterSlave{
val cmd = Stream(DebugExtensionCmd())
val rsp = DebugExtensionRsp() //One cycle latency
val rsp = DebugExtensionRsp() //zero cycle latency
override def asMaster(): Unit = {
master(cmd)
in(rsp)
}
def toApb3(): Apb3 ={
def fromApb3(): Apb3 ={
val apb = Apb3(Apb3Config(
addressWidth = 8,
dataWidth = 32,
@ -43,6 +44,20 @@ case class DebugExtensionBus() extends Bundle with IMasterSlave{
apb
}
def fromAvalon(): AvalonMM ={
val bus = AvalonMM(AvalonMMConfig.fixed(addressWidth = 8,dataWidth = 32, readLatency = 0))
cmd.valid := bus.read || bus.write
cmd.wr := bus.write
cmd.address := bus.address
cmd.data := bus.writeData
bus.waitRequestn := cmd.ready
bus.readData := rsp.data
bus
}
}
case class DebugExtensionIo() extends Bundle with IMasterSlave{

View File

@ -304,7 +304,7 @@ class Briey(config: BrieyConfig) extends Component{
}
case plugin : DebugPlugin => {
resetCtrl.coreResetUnbuffered setWhen(plugin.io.resetOut)
debugBus = plugin.io.bus.toApb3()
debugBus = plugin.io.bus.fromApb3()
}
case _ =>
}

View File

@ -132,6 +132,10 @@ object VexRiscvAvalon{
plugin.dBus.asDirectionLess()
master(plugin.dBus.toAvalon()).setName("dBusAvalon")
}
case plugin: DebugPlugin => {
plugin.io.bus.asDirectionLess()
slave(plugin.io.bus.fromAvalon()).setName("debugBusAvalon")
}
case _ =>
}
}