1 // See LICENSE for license details.
2 package sifive.blocks.devices.xilinxvc707pciex1
5 import diplomacy.LazyModule
8 HasTopLevelNetworksModule,
9 HasTopLevelNetworksBundle
11 import uncore.tilelink2._
13 trait HasPeripheryXilinxVC707PCIeX1 extends HasTopLevelNetworks {
15 val xilinxvc707pcie = LazyModule(new XilinxVC707PCIeX1)
16 private val intXing = LazyModule(new IntXing)
18 fsb.node := TLAsyncCrossingSink()(xilinxvc707pcie.master)
19 xilinxvc707pcie.slave := TLAsyncCrossingSource()(TLWidthWidget(socBusConfig.beatBytes)(socBus.node))
20 xilinxvc707pcie.control := TLAsyncCrossingSource()(TLWidthWidget(socBusConfig.beatBytes)(socBus.node))
21 intBus.intnode := intXing.intnode
22 intXing.intnode := xilinxvc707pcie.intnode
25 trait HasPeripheryXilinxVC707PCIeX1Bundle extends HasTopLevelNetworksBundle {
26 val xilinxvc707pcie = new XilinxVC707PCIeX1IO
29 trait HasPeripheryXilinxVC707PCIeX1Module extends HasTopLevelNetworksModule {
30 val outer: HasPeripheryXilinxVC707PCIeX1
31 val io: HasPeripheryXilinxVC707PCIeX1Bundle
33 io.xilinxvc707pcie <> outer.xilinxvc707pcie.module.io.port
35 outer.xilinxvc707pcie.module.clock := outer.xilinxvc707pcie.module.io.port.axi_aclk_out
36 outer.xilinxvc707pcie.module.reset := ~io.xilinxvc707pcie.axi_aresetn