From 1c36ab8bf75fc41ef33b166fee0fcdb3e4e1349f Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Tue, 11 Apr 2017 12:35:44 -0700 Subject: [PATCH] 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. --- src/main/scala/uncore/tilelink2/Fragmenter.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/scala/uncore/tilelink2/Fragmenter.scala b/src/main/scala/uncore/tilelink2/Fragmenter.scala index f40a8727..fd06fe87 100644 --- a/src/main/scala/uncore/tilelink2/Fragmenter.scala +++ b/src/main/scala/uncore/tilelink2/Fragmenter.scala @@ -57,6 +57,7 @@ class TLFragmenter(val minSize: Int, val maxSize: Int, val alwaysMin: Boolean = val beatBytes = manager.beatBytes val fifoId = managers(0).fifoId require (fifoId.isDefined && managers.map(_.fifoId == fifoId).reduce(_ && _)) + require (manager.endSinkId <= 1) // We don't support fragmenting to sub-beat accesses require (minSize >= beatBytes)