2023-08-15 08:42:56 +00:00
|
|
|
package BACK
|
|
|
|
|
|
|
|
|
|
import chisel3._
|
|
|
|
|
import chisel3.util._
|
|
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
import org.chipsalliance.cde.config._
|
|
|
|
|
import freechips.rocketchip.diplomacy._
|
|
|
|
|
import freechips.rocketchip.tilelink._
|
2023-08-15 08:42:56 +00:00
|
|
|
|
|
|
|
|
|
2023-08-16 22:25:30 +08:00
|
|
|
|
2023-08-15 08:42:56 +00:00
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
class FSMCMemIO extends Bundle{
|
2023-08-15 08:42:56 +00:00
|
|
|
val FSMC = new FSMC_Port_Bundle
|
|
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
val tla = Flipped(new DecoupledIO(new TLBundleA(edge.bundle)))
|
|
|
|
|
val tld = new DecoupledIO(new TLBundleD(edge.bundle))
|
2023-08-15 08:42:56 +00:00
|
|
|
}
|
|
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
abstract class FSMCMemBase(val edge: TLEdgeIn)(implicit p: Parameters) extends BackModule{
|
|
|
|
|
val io: FSMCMemIO = IO(new FSMCMemIO)
|
2023-08-16 22:25:30 +08:00
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
val sram = Module(new )
|
|
|
|
|
}
|
2023-08-16 22:25:30 +08:00
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
trait FSMCMemFSMC{ this: FSMCMemBase =>
|
2023-08-16 22:25:30 +08:00
|
|
|
|
|
|
|
|
|
2023-08-15 08:42:56 +00:00
|
|
|
}
|
|
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
trait FSMCMemTileLink { this: FSMCMemBase =>
|
2023-08-16 22:25:30 +08:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
class FSMCMem(edge: TLEdgeIn)(implicit p: Parameters) extends FSMCMemBase(edge)
|
|
|
|
|
with FSMCMemFSMC
|
|
|
|
|
with FSMCMemTileLink
|
|
|
|
|
{
|
2023-08-16 22:25:30 +08:00
|
|
|
|
2025-02-08 15:46:49 +08:00
|
|
|
}
|