rocketchip: fix uses of AXI4 Fragmenter
This commit is contained in:
parent
e100a943ea
commit
ca2cb033cd
@ -42,7 +42,7 @@ class BasePlatformConfig extends Config((site, here, up) => {
|
|||||||
case ErrorConfig => ErrorConfig(Seq(AddressSet(0x1000, 0xfff)))
|
case ErrorConfig => ErrorConfig(Seq(AddressSet(0x1000, 0xfff)))
|
||||||
case ExtMem => MasterConfig(base=0x80000000L, size=0x10000000L, beatBytes=8, idBits=4)
|
case ExtMem => MasterConfig(base=0x80000000L, size=0x10000000L, beatBytes=8, idBits=4)
|
||||||
case ExtBus => MasterConfig(base=0x60000000L, size=0x20000000L, beatBytes=8, idBits=4)
|
case ExtBus => MasterConfig(base=0x60000000L, size=0x20000000L, beatBytes=8, idBits=4)
|
||||||
case ExtIn => SlaveConfig(beatBytes=8, idBits=8, sourceBits=2)
|
case ExtIn => SlaveConfig(beatBytes=8, idBits=8, sourceBits=4)
|
||||||
})
|
})
|
||||||
|
|
||||||
/** Actual elaboratable target Configs */
|
/** Actual elaboratable target Configs */
|
||||||
|
@ -238,12 +238,14 @@ trait PeripherySlaveAXI4 extends HasTopLevelNetworks {
|
|||||||
masters = Seq(AXI4MasterParameters(
|
masters = Seq(AXI4MasterParameters(
|
||||||
id = IdRange(0, 1 << config.idBits))))))
|
id = IdRange(0, 1 << config.idBits))))))
|
||||||
|
|
||||||
|
private val fifoBits = 1
|
||||||
fsb.node :=
|
fsb.node :=
|
||||||
TLSourceShrinker(1 << config.sourceBits)(
|
|
||||||
TLWidthWidget(config.beatBytes)(
|
TLWidthWidget(config.beatBytes)(
|
||||||
AXI4ToTL()(
|
AXI4ToTL()(
|
||||||
|
AXI4UserYanker(1 << (config.sourceBits - fifoBits - 1))(
|
||||||
AXI4Fragmenter()(
|
AXI4Fragmenter()(
|
||||||
l2FrontendAXI4Node))))
|
AXI4IdIndexer(fifoBits)(
|
||||||
|
l2FrontendAXI4Node)))))
|
||||||
}
|
}
|
||||||
|
|
||||||
trait PeripherySlaveAXI4Bundle extends HasTopLevelNetworksBundle {
|
trait PeripherySlaveAXI4Bundle extends HasTopLevelNetworksBundle {
|
||||||
|
@ -53,7 +53,7 @@ class SimAXIMem(channels: Int, forceSize: BigInt = 0)(implicit p: Parameters) ex
|
|||||||
|
|
||||||
for (i <- 0 until channels) {
|
for (i <- 0 until channels) {
|
||||||
val sram = LazyModule(new AXI4RAM(AddressSet(0, size-1), beatBytes = config.beatBytes))
|
val sram = LazyModule(new AXI4RAM(AddressSet(0, size-1), beatBytes = config.beatBytes))
|
||||||
sram.node := AXI4Buffer()(AXI4Fragmenter(maxInFlight = 4)(node))
|
sram.node := AXI4Buffer()(AXI4Fragmenter()(node))
|
||||||
}
|
}
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) {
|
lazy val module = new LazyModuleImp(this) {
|
||||||
|
@ -26,8 +26,8 @@ class AXI4LiteFuzzRAM()(implicit p: Parameters) extends LazyModule
|
|||||||
|
|
||||||
model.node := fuzz.node
|
model.node := fuzz.node
|
||||||
xbar.node := TLDelayer(0.1)(TLBuffer(BufferParams.flow)(TLDelayer(0.2)(model.node)))
|
xbar.node := TLDelayer(0.1)(TLBuffer(BufferParams.flow)(TLDelayer(0.2)(model.node)))
|
||||||
ram.node := AXI4Fragmenter(lite=true)(TLToAXI4(0, true )(xbar.node))
|
ram.node := AXI4Fragmenter()(TLToAXI4(0, true )(xbar.node))
|
||||||
gpio.node := AXI4Fragmenter(lite=true)(TLToAXI4(0, false)(xbar.node))
|
gpio.node := AXI4Fragmenter()(TLToAXI4(0, false)(xbar.node))
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) with HasUnitTestIO {
|
lazy val module = new LazyModuleImp(this) with HasUnitTestIO {
|
||||||
io.finished := fuzz.module.io.finished
|
io.finished := fuzz.module.io.finished
|
||||||
@ -49,8 +49,8 @@ class AXI4FullFuzzRAM()(implicit p: Parameters) extends LazyModule
|
|||||||
|
|
||||||
model.node := fuzz.node
|
model.node := fuzz.node
|
||||||
xbar.node := TLDelayer(0.1)(TLBuffer(BufferParams.flow)(TLDelayer(0.2)(model.node)))
|
xbar.node := TLDelayer(0.1)(TLBuffer(BufferParams.flow)(TLDelayer(0.2)(model.node)))
|
||||||
ram.node := AXI4Fragmenter(lite=false, maxInFlight = 2)(TLToAXI4(4,false)(xbar.node))
|
ram.node := AXI4Fragmenter()(TLToAXI4(4,false)(xbar.node))
|
||||||
gpio.node := AXI4Fragmenter(lite=false, maxInFlight = 5)(TLToAXI4(4,true )(xbar.node))
|
gpio.node := AXI4Fragmenter()(TLToAXI4(4,true )(xbar.node))
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) with HasUnitTestIO {
|
lazy val module = new LazyModuleImp(this) with HasUnitTestIO {
|
||||||
io.finished := fuzz.module.io.finished
|
io.finished := fuzz.module.io.finished
|
||||||
@ -97,8 +97,10 @@ class AXI4FuzzSlave()(implicit p: Parameters) extends LazyModule
|
|||||||
TLBuffer(BufferParams.flow)(
|
TLBuffer(BufferParams.flow)(
|
||||||
TLDelayer(0.1)(
|
TLDelayer(0.1)(
|
||||||
AXI4ToTL()(
|
AXI4ToTL()(
|
||||||
|
AXI4UserYanker(4)(
|
||||||
AXI4Fragmenter()(
|
AXI4Fragmenter()(
|
||||||
node))))))
|
AXI4IdIndexer(4)(
|
||||||
|
node))))))))
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) {
|
lazy val module = new LazyModuleImp(this) {
|
||||||
val io = new Bundle {
|
val io = new Bundle {
|
||||||
|
Loading…
Reference in New Issue
Block a user