support empty submaps in interconnect generator
This commit is contained in:
parent
673f73b051
commit
9d2637c2c7
@ -555,12 +555,17 @@ class NastiRecursiveInterconnect(
|
|||||||
io.slaves(slaveInd) <> xbarSlave
|
io.slaves(slaveInd) <> xbarSlave
|
||||||
slaveInd += 1
|
slaveInd += 1
|
||||||
case MemSubmap(_, submap) =>
|
case MemSubmap(_, submap) =>
|
||||||
|
if (submap.isEmpty) {
|
||||||
|
val err_slave = Module(new NastiErrorSlave)
|
||||||
|
err_slave.io <> xbarSlave
|
||||||
|
} else {
|
||||||
val subSlaves = submap.countSlaves
|
val subSlaves = submap.countSlaves
|
||||||
val outputs = Vec(io.slaves.drop(slaveInd).take(subSlaves))
|
val outputs = Vec(io.slaves.drop(slaveInd).take(subSlaves))
|
||||||
val ic = Module(new NastiRecursiveInterconnect(1, subSlaves, submap, start))
|
val ic = Module(new NastiRecursiveInterconnect(1, subSlaves, submap, start))
|
||||||
ic.io.masters.head <> xbarSlave
|
ic.io.masters.head <> xbarSlave
|
||||||
outputs <> ic.io.slaves
|
outputs <> ic.io.slaves
|
||||||
slaveInd += subSlaves
|
slaveInd += subSlaves
|
||||||
|
}
|
||||||
case MemChannels(_, nchannels, _) =>
|
case MemChannels(_, nchannels, _) =>
|
||||||
require(nchannels == 1, "Recursive interconnect cannot handle MultiChannel interface")
|
require(nchannels == 1, "Recursive interconnect cannot handle MultiChannel interface")
|
||||||
io.slaves(slaveInd) <> xbarSlave
|
io.slaves(slaveInd) <> xbarSlave
|
||||||
|
Loading…
Reference in New Issue
Block a user