make sure correct addr_beat is sent for Get response by narrower/converter
This commit is contained in:
parent
f397d61033
commit
b3865c370a
@ -1426,6 +1426,7 @@ class ClientTileLinkIOUnwrapper(implicit p: Parameters) extends TLModule()(p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class NastiIOTileLinkIOConverterInfo(implicit p: Parameters) extends TLBundle()(p) {
|
class NastiIOTileLinkIOConverterInfo(implicit p: Parameters) extends TLBundle()(p) {
|
||||||
|
val addr_beat = UInt(width = tlBeatAddrBits)
|
||||||
val byteOff = UInt(width = tlByteAddrBits)
|
val byteOff = UInt(width = tlByteAddrBits)
|
||||||
val subblock = Bool()
|
val subblock = Bool()
|
||||||
}
|
}
|
||||||
@ -1488,6 +1489,7 @@ class NastiIOTileLinkIOConverter(implicit p: Parameters) extends TLModule()(p)
|
|||||||
|
|
||||||
roq.io.enq.valid := get_helper.fire(roq.io.enq.ready)
|
roq.io.enq.valid := get_helper.fire(roq.io.enq.ready)
|
||||||
roq.io.enq.bits.tag := io.nasti.ar.bits.id
|
roq.io.enq.bits.tag := io.nasti.ar.bits.id
|
||||||
|
roq.io.enq.bits.data.addr_beat := io.tl.acquire.bits.addr_beat
|
||||||
roq.io.enq.bits.data.byteOff := io.tl.acquire.bits.addr_byte()
|
roq.io.enq.bits.data.byteOff := io.tl.acquire.bits.addr_byte()
|
||||||
roq.io.enq.bits.data.subblock := is_subblock
|
roq.io.enq.bits.data.subblock := is_subblock
|
||||||
roq.io.deq.valid := io.nasti.r.fire() && (nasti_wrap_out || roq.io.deq.data.subblock)
|
roq.io.deq.valid := io.nasti.r.fire() && (nasti_wrap_out || roq.io.deq.data.subblock)
|
||||||
@ -1546,7 +1548,7 @@ class NastiIOTileLinkIOConverter(implicit p: Parameters) extends TLModule()(p)
|
|||||||
Grant.getDataBeatType, Grant.getDataBlockType),
|
Grant.getDataBeatType, Grant.getDataBlockType),
|
||||||
client_xact_id = io.nasti.r.bits.id,
|
client_xact_id = io.nasti.r.bits.id,
|
||||||
manager_xact_id = UInt(0),
|
manager_xact_id = UInt(0),
|
||||||
addr_beat = tl_cnt_in,
|
addr_beat = Mux(roq.io.deq.data.subblock, roq.io.deq.data.addr_beat, tl_cnt_in),
|
||||||
data = r_aligned_data)
|
data = r_aligned_data)
|
||||||
|
|
||||||
gnt_arb.io.in(1).valid := io.nasti.b.valid
|
gnt_arb.io.in(1).valid := io.nasti.b.valid
|
||||||
@ -1749,7 +1751,7 @@ class TileLinkIONarrower(innerTLId: String, outerTLId: String)
|
|||||||
g_type = Grant.getDataBeatType,
|
g_type = Grant.getDataBeatType,
|
||||||
client_xact_id = ognt.client_xact_id,
|
client_xact_id = ognt.client_xact_id,
|
||||||
manager_xact_id = ognt.manager_xact_id,
|
manager_xact_id = ognt.manager_xact_id,
|
||||||
addr_beat = ognt.addr_beat,
|
addr_beat = ognt.addr_beat >> UInt(log2Up(factor)),
|
||||||
data = ognt.data << get_grant_shift)(innerConfig)
|
data = ognt.data << get_grant_shift)(innerConfig)
|
||||||
|
|
||||||
io.in.grant.valid := sending_get || (io.out.grant.valid && !ognt_block)
|
io.in.grant.valid := sending_get || (io.out.grant.valid && !ognt_block)
|
||||||
|
Loading…
Reference in New Issue
Block a user