All Downloads are FREE. Search and download functionalities are using the official Maven repository.

spinal.lib.memory.sdram.dfi.BmbBridge.scala Maven / Gradle / Ivy

package spinal.lib.memory.sdram.dfi

import spinal.core._
import spinal.lib._
import spinal.lib.bus.bmb.{Bmb, BmbParameter}
import spinal.lib.memory.sdram.dfi.function._
import spinal.lib.memory.sdram.dfi.interface._

case class BmbBridge(bmbp: BmbParameter, taskConfig: TaskConfig, dfiConfig: DfiConfig) extends Component {

  val io = new Bundle {
    val bmb = slave(Bmb(bmbp))
    val taskPort = master(TaskPort(taskConfig, dfiConfig))
  }

  val bmbAdapter = BmbAdapter(bmbp, taskConfig, dfiConfig)
  bmbAdapter.io.input <> io.bmb
  bmbAdapter.io.output.writeData >-> io.taskPort.writeData
  bmbAdapter.io.output.rsp <-< io.taskPort.rsp

  val maketask = MakeTask(taskConfig, dfiConfig)
  maketask.io.cmd <-< bmbAdapter.io.output.cmd
  maketask.io.writeDataToken <-< bmbAdapter.io.output.writeDataToken
  maketask.io.output <> io.taskPort.tasks
  RegNext(maketask.io.halt) <> bmbAdapter.io.halt
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy