1
0
Fork 0

tilelink2: clarify that fifoId only applies to accesses (not hints)

This commit is contained in:
Wesley W. Terpstra 2016-08-26 14:13:54 -07:00
parent 4b99bd3be1
commit 3a441d853f
1 changed files with 5 additions and 2 deletions

View File

@ -77,7 +77,7 @@ object TransferSizes {
// The base address used by the crossbar for routing
case class AddressSet(mask: BigInt, base: Option[BigInt] = None)
{
// Forbid empty sets
// Forbid misaligned base address (and empty sets)
require (base == None || (base.get & mask) == 0)
def contains(x: BigInt) = ((x ^ base.get) & ~mask) == 0
@ -95,6 +95,9 @@ case class AddressSet(mask: BigInt, base: Option[BigInt] = None)
// 1 less than the number of bytes to which the manager should be aligned
def alignment1 = ((mask + 1) & ~mask) - 1
def max = base.get | mask
// A strided slave has serves discontiguous ranges
def strided = alignment1 != mask
}
case class TLManagerParameters(
@ -109,7 +112,7 @@ case class TLManagerParameters(
supportsPutFull: TransferSizes = TransferSizes.none,
supportsPutPartial: TransferSizes = TransferSizes.none,
supportsHint: Boolean = false,
// If fifoId=Some, all messages sent to the same fifoId are delivered in FIFO order
// If fifoId=Some, all accesses sent to the same fifoId are executed and ACK'd in FIFO order
fifoId: Option[Int] = None)
{
address.combinations(2).foreach({ case Seq(x,y) =>