}
class XilinxVC707PCIeX1(implicit p: Parameters) extends LazyModule {
- val slave = TLInputNode()
- val control = TLInputNode()
- val master = TLOutputNode()
+ val slave = TLAsyncInputNode()
+ val control = TLAsyncInputNode()
+ val master = TLAsyncOutputNode()
val intnode = IntOutputNode()
val axi_to_pcie_x1 = LazyModule(new VC707AXIToPCIeX1)
AXI4Deinterleaver(p(coreplex.CacheBlockBytes))(
AXI4IdIndexer(idBits=4)(
TLToAXI4(beatBytes=8)(
- slave)))))
+ TLAsyncCrossingSink()(
+ slave))))))
axi_to_pcie_x1.control :=
AXI4Buffer()(
AXI4UserYanker()(
TLToAXI4(beatBytes=4)(
TLFragmenter(4, p(coreplex.CacheBlockBytes))(
- control))))
+ TLAsyncCrossingSink()(
+ control)))))
master :=
+ TLAsyncCrossingSource()(
TLWidthWidget(8)(
AXI4ToTL()(
AXI4UserYanker(capMaxFlight=Some(8))(
AXI4Fragmenter()(
- axi_to_pcie_x1.master))))
+ axi_to_pcie_x1.master)))))
intnode := axi_to_pcie_x1.intnode
HasTopLevelNetworksModule,
HasTopLevelNetworksBundle
}
-import uncore.tilelink2.TLWidthWidget
+import uncore.tilelink2._
trait HasPeripheryXilinxVC707PCIeX1 extends HasTopLevelNetworks {
val xilinxvc707pcie = LazyModule(new XilinxVC707PCIeX1)
- fsb.node := xilinxvc707pcie.master
- xilinxvc707pcie.slave := TLWidthWidget(socBusConfig.beatBytes)(socBus.node)
- xilinxvc707pcie.control := TLWidthWidget(socBusConfig.beatBytes)(socBus.node)
- intBus.intnode := xilinxvc707pcie.intnode
+ private val intXing = LazyModule(new IntXing)
+
+ fsb.node := TLAsyncCrossingSink()(xilinxvc707pcie.master)
+ xilinxvc707pcie.slave := TLAsyncCrossingSource()(TLWidthWidget(socBusConfig.beatBytes)(socBus.node))
+ xilinxvc707pcie.control := TLAsyncCrossingSource()(TLWidthWidget(socBusConfig.beatBytes)(socBus.node))
+ intBus.intnode := intXing.intnode
+ intXing.intnode := xilinxvc707pcie.intnode
}
trait HasPeripheryXilinxVC707PCIeX1Bundle extends HasTopLevelNetworksBundle {
val io: HasPeripheryXilinxVC707PCIeX1Bundle
io.xilinxvc707pcie <> outer.xilinxvc707pcie.module.io.port
+
+ outer.xilinxvc707pcie.module.clock := outer.xilinxvc707pcie.module.io.port.axi_aclk_out
+ outer.xilinxvc707pcie.module.reset := ~io.xilinxvc707pcie.axi_aresetn
}