Murax mainBus now handle unmapped memory access allowing the debug to access unmapped area without locking the CPU
Murax add dhrystone config
This commit is contained in:
parent
6072e9157e
commit
2c6889e688
|
@ -397,11 +397,13 @@ case class Murax(config : MuraxConfig) extends Component{
|
||||||
slaveBus.cmd.payload := masterBus.cmd.payload
|
slaveBus.cmd.payload := masterBus.cmd.payload
|
||||||
hit
|
hit
|
||||||
}
|
}
|
||||||
masterBus.cmd.ready := (hits,slaveBuses).zipped.map(_ && _.cmd.ready).orR
|
val noHit = !hits.orR
|
||||||
|
masterBus.cmd.ready := (hits,slaveBuses).zipped.map(_ && _.cmd.ready).orR || noHit
|
||||||
|
|
||||||
val rspPending = RegInit(False) clearWhen(masterBus.rsp.valid) setWhen(masterBus.cmd.fire && !masterBus.cmd.wr)
|
val rspPending = RegInit(False) clearWhen(masterBus.rsp.valid) setWhen(masterBus.cmd.fire && !masterBus.cmd.wr)
|
||||||
|
val rspNoHit = RegNext(False) init(False) setWhen(noHit)
|
||||||
val rspSourceId = RegNextWhen(OHToUInt(hits), masterBus.cmd.fire)
|
val rspSourceId = RegNextWhen(OHToUInt(hits), masterBus.cmd.fire)
|
||||||
masterBus.rsp.valid := slaveBuses.map(_.rsp.valid).orR
|
masterBus.rsp.valid := slaveBuses.map(_.rsp.valid).orR || (rspPending && rspNoHit)
|
||||||
masterBus.rsp.payload := slaveBuses.map(_.rsp.payload).read(rspSourceId)
|
masterBus.rsp.payload := slaveBuses.map(_.rsp.payload).read(rspSourceId)
|
||||||
|
|
||||||
when(rspPending && !masterBus.rsp.valid) { //Only one pending read request is allowed
|
when(rspPending && !masterBus.rsp.valid) { //Only one pending read request is allowed
|
||||||
|
@ -466,10 +468,14 @@ case class Murax(config : MuraxConfig) extends Component{
|
||||||
object Murax{
|
object Murax{
|
||||||
def main(args: Array[String]) {
|
def main(args: Array[String]) {
|
||||||
SpinalVerilog(Murax(MuraxConfig.default))
|
SpinalVerilog(Murax(MuraxConfig.default))
|
||||||
// SpinalVerilog(Murax(MuraxConfig.fast.copy(onChipRamSize = 256 kB))) //dhrystone config (more ram)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
object MuraxDhrystoneReady{
|
||||||
|
def main(args: Array[String]) {
|
||||||
|
SpinalVerilog(Murax(MuraxConfig.fast.copy(onChipRamSize = 256 kB)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Will blink led and echo UART RX to UART TX (in the verilator sim, type some text and press enter to send UART frame to the Murax RX pin)
|
//Will blink led and echo UART RX to UART TX (in the verilator sim, type some text and press enter to send UART frame to the Murax RX pin)
|
||||||
object MuraxWithRamInit{
|
object MuraxWithRamInit{
|
||||||
|
|
Loading…
Reference in New Issue