added prefetchAck Grant type
This commit is contained in:
parent
059575c334
commit
1aff919c24
@ -249,7 +249,7 @@ class MemIOTileLinkIOConverter(qDepth: Int) extends Module {
|
|||||||
gnt_arb.io.in(1).valid := Bool(false)
|
gnt_arb.io.in(1).valid := Bool(false)
|
||||||
gnt_arb.io.in(1).bits.payload := Grant(
|
gnt_arb.io.in(1).bits.payload := Grant(
|
||||||
is_builtin_type = Bool(true),
|
is_builtin_type = Bool(true),
|
||||||
g_type = Mux(data_from_rel, Grant.voluntaryAckType, Grant.ackType),
|
g_type = Mux(data_from_rel, Grant.voluntaryAckType, Grant.putAckType),
|
||||||
client_xact_id = tag_out >> UInt(1),
|
client_xact_id = tag_out >> UInt(1),
|
||||||
manager_xact_id = UInt(0))
|
manager_xact_id = UInt(0))
|
||||||
|
|
||||||
@ -414,7 +414,7 @@ class MemIOTileLinkIOConverter(qDepth: Int) extends Module {
|
|||||||
gnt_arb.io.in(0).bits.payload := Grant(
|
gnt_arb.io.in(0).bits.payload := Grant(
|
||||||
is_builtin_type = tag_in(0),
|
is_builtin_type = tag_in(0),
|
||||||
g_type = Mux(tag_in(0),
|
g_type = Mux(tag_in(0),
|
||||||
Grant.dataBlockType,
|
Grant.getDataBlockType,
|
||||||
UInt(0)), // TODO: Assumes MI or MEI protocol
|
UInt(0)), // TODO: Assumes MI or MEI protocol
|
||||||
client_xact_id = tag_in >> UInt(1),
|
client_xact_id = tag_in >> UInt(1),
|
||||||
manager_xact_id = UInt(0),
|
manager_xact_id = UInt(0),
|
||||||
@ -447,7 +447,7 @@ class MemIOTileLinkIOConverter(qDepth: Int) extends Module {
|
|||||||
gnt_arb.io.in(0).bits.payload := Grant(
|
gnt_arb.io.in(0).bits.payload := Grant(
|
||||||
is_builtin_type = io.mem.resp.bits.tag(0),
|
is_builtin_type = io.mem.resp.bits.tag(0),
|
||||||
g_type = Mux(io.mem.resp.bits.tag(0),
|
g_type = Mux(io.mem.resp.bits.tag(0),
|
||||||
Grant.dataBlockType,
|
Grant.getDataBlockType,
|
||||||
UInt(0)), // TODO: Assumes MI or MEI protocol
|
UInt(0)), // TODO: Assumes MI or MEI protocol
|
||||||
client_xact_id = io.mem.resp.bits.tag >> UInt(1),
|
client_xact_id = io.mem.resp.bits.tag >> UInt(1),
|
||||||
manager_xact_id = UInt(0),
|
manager_xact_id = UInt(0),
|
||||||
|
@ -121,13 +121,13 @@ class Acquire extends ClientToManagerChannel
|
|||||||
def requiresSelfProbe(dummy: Int = 0) = isBuiltInType() && a_type === Acquire.getBlockType
|
def requiresSelfProbe(dummy: Int = 0) = isBuiltInType() && a_type === Acquire.getBlockType
|
||||||
|
|
||||||
def getBuiltInGrantType(dummy: Int = 0): UInt = {
|
def getBuiltInGrantType(dummy: Int = 0): UInt = {
|
||||||
MuxLookup(this.a_type, Grant.ackType, Array(
|
MuxLookup(this.a_type, Grant.putAckType, Array(
|
||||||
Acquire.getType -> Grant.dataBeatType,
|
Acquire.getType -> Grant.getDataBeatType,
|
||||||
Acquire.getBlockType -> Grant.dataBlockType,
|
Acquire.getBlockType -> Grant.getDataBlockType,
|
||||||
Acquire.putType -> Grant.ackType,
|
Acquire.putType -> Grant.putAckType,
|
||||||
Acquire.putBlockType -> Grant.ackType,
|
Acquire.putBlockType -> Grant.putAckType,
|
||||||
Acquire.putAtomicType -> Grant.dataBeatType,
|
Acquire.putAtomicType -> Grant.getDataBeatType,
|
||||||
Acquire.prefetchType -> Grant.ackType))
|
Acquire.prefetchType -> Grant.prefetchAckType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,13 +389,14 @@ class Grant extends ManagerToClientChannel
|
|||||||
}
|
}
|
||||||
|
|
||||||
object Grant {
|
object Grant {
|
||||||
val nBuiltInTypes = 4
|
val nBuiltInTypes = 5
|
||||||
def voluntaryAckType = UInt("b00")
|
def voluntaryAckType = UInt("b000")
|
||||||
def ackType = UInt("b01")
|
def putAckType = UInt("b001")
|
||||||
def dataBeatType = UInt("b10")
|
def prefetchAckType = UInt("b011")
|
||||||
def dataBlockType = UInt("b11")
|
def getDataBeatType = UInt("b100")
|
||||||
def typesWithData = Vec(dataBlockType, dataBeatType)
|
def getDataBlockType = UInt("b101")
|
||||||
def typesWithMultibeatData= Vec(dataBlockType)
|
def typesWithData = Vec(getDataBlockType, getDataBeatType)
|
||||||
|
def typesWithMultibeatData= Vec(getDataBlockType)
|
||||||
|
|
||||||
def apply(
|
def apply(
|
||||||
is_builtin_type: Bool,
|
is_builtin_type: Bool,
|
||||||
|
Loading…
Reference in New Issue
Block a user