1
0

Fragmenter: forbid multiple sink IDs

Otherwise a slave might respond with different IDs for different
requests and the Fragmenter would violate the requirement that
control signals remain unchanged for a burst.
This commit is contained in:
Wesley W. Terpstra 2017-04-11 12:35:44 -07:00
parent 84dc2ae822
commit 1c36ab8bf7

View File

@ -57,6 +57,7 @@ class TLFragmenter(val minSize: Int, val maxSize: Int, val alwaysMin: Boolean =
val beatBytes = manager.beatBytes val beatBytes = manager.beatBytes
val fifoId = managers(0).fifoId val fifoId = managers(0).fifoId
require (fifoId.isDefined && managers.map(_.fifoId == fifoId).reduce(_ && _)) require (fifoId.isDefined && managers.map(_.fifoId == fifoId).reduce(_ && _))
require (manager.endSinkId <= 1)
// We don't support fragmenting to sub-beat accesses // We don't support fragmenting to sub-beat accesses
require (minSize >= beatBytes) require (minSize >= beatBytes)