XSTile.scala (0e28018481fa4b29a9d6aa8cedfb51cad5dca421) XSTile.scala (78a8cd257caa1ff2b977d80082b1b3a2fa98a1d3)
1/***************************************************************************************
2* Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences
3* Copyright (c) 2020-2021 Peng Cheng Laboratory
4*
5* XiangShan is licensed under Mulan PSL v2.
6* You can use this software according to the terms and conditions of the Mulan PSL v2.
7* You may obtain a copy of Mulan PSL v2 at:
8* http://license.coscl.org.cn/MulanPSL2

--- 24 unchanged lines hidden (view full) ---

33class XSTile()(implicit p: Parameters) extends LazyModule
34 with HasXSParameter
35 with HasSoCParameter
36{
37 override def shouldBeInlined: Boolean = false
38 val core = LazyModule(new XSCore())
39 val l2top = LazyModule(new L2Top())
40
1/***************************************************************************************
2* Copyright (c) 2020-2021 Institute of Computing Technology, Chinese Academy of Sciences
3* Copyright (c) 2020-2021 Peng Cheng Laboratory
4*
5* XiangShan is licensed under Mulan PSL v2.
6* You can use this software according to the terms and conditions of the Mulan PSL v2.
7* You may obtain a copy of Mulan PSL v2 at:
8* http://license.coscl.org.cn/MulanPSL2

--- 24 unchanged lines hidden (view full) ---

33class XSTile()(implicit p: Parameters) extends LazyModule
34 with HasXSParameter
35 with HasSoCParameter
36{
37 override def shouldBeInlined: Boolean = false
38 val core = LazyModule(new XSCore())
39 val l2top = LazyModule(new L2Top())
40
41 val enableCHI = p(EnableCHI)
42 val enableL2 = coreParams.L2CacheParamsOpt.isDefined
43 // =========== Public Ports ============
44 val core_l3_pf_port = core.memBlock.l3_pf_sender_opt
45 val memory_port = if (enableCHI && enableL2) None else Some(l2top.memory_port.get)
46 val tl_uncache = l2top.mmio_port
47 // val axi4_uncache = if (enableCHI) Some(AXI4UserYanker()) else None
48 val beu_int_source = l2top.beu.intNode
49 val core_reset_sink = BundleBridgeSink(Some(() => Reset()))

--- 49 unchanged lines hidden (view full) ---

99 val robHeadPaddr = Valid(UInt(PAddrBits.W))
100 val l3MissMatch = Input(Bool())
101 }
102 val chi = if (enableCHI) Some(new PortIO) else None
103 val nodeID = if (enableCHI) Some(Input(UInt(NodeIDWidth.W))) else None
104 })
105
106 dontTouch(io.hartId)
41 val enableL2 = coreParams.L2CacheParamsOpt.isDefined
42 // =========== Public Ports ============
43 val core_l3_pf_port = core.memBlock.l3_pf_sender_opt
44 val memory_port = if (enableCHI && enableL2) None else Some(l2top.memory_port.get)
45 val tl_uncache = l2top.mmio_port
46 // val axi4_uncache = if (enableCHI) Some(AXI4UserYanker()) else None
47 val beu_int_source = l2top.beu.intNode
48 val core_reset_sink = BundleBridgeSink(Some(() => Reset()))

--- 49 unchanged lines hidden (view full) ---

98 val robHeadPaddr = Valid(UInt(PAddrBits.W))
99 val l3MissMatch = Input(Bool())
100 }
101 val chi = if (enableCHI) Some(new PortIO) else None
102 val nodeID = if (enableCHI) Some(Input(UInt(NodeIDWidth.W))) else None
103 })
104
105 dontTouch(io.hartId)
106 if (!io.chi.isEmpty) { dontTouch(io.chi.get) }
107
108 val core_soft_rst = core_reset_sink.in.head._1 // unused
109
110 l2top.module.hartId.fromTile := io.hartId
111 core.module.io.hartId := l2top.module.hartId.toCore
112 core.module.io.reset_vector := l2top.module.reset_vector.toCore
113 l2top.module.reset_vector.fromTile := io.reset_vector
114 l2top.module.cpu_halt.fromCore := core.module.io.cpu_halt

--- 54 unchanged lines hidden ---
107
108 val core_soft_rst = core_reset_sink.in.head._1 // unused
109
110 l2top.module.hartId.fromTile := io.hartId
111 core.module.io.hartId := l2top.module.hartId.toCore
112 core.module.io.reset_vector := l2top.module.reset_vector.toCore
113 l2top.module.reset_vector.fromTile := io.reset_vector
114 l2top.module.cpu_halt.fromCore := core.module.io.cpu_halt

--- 54 unchanged lines hidden ---