33 lines
932 B
Scala
33 lines
932 B
Scala
// See LICENSE for details
|
|
|
|
package uncore.converters
|
|
|
|
import Chisel._
|
|
import junctions._
|
|
import uncore.tilelink._
|
|
import cde.Parameters
|
|
|
|
/** Convert TileLink protocol to Smi protocol */
|
|
class SmiIOTileLinkIOConverter(val dataWidth: Int, val addrWidth: Int)
|
|
(implicit p: Parameters) extends Module {
|
|
val io = new Bundle {
|
|
val tl = (new ClientUncachedTileLinkIO).flip
|
|
val smi = new SmiIO(dataWidth, addrWidth)
|
|
}
|
|
|
|
def decoupledNastiConnect(outer: NastiIO, inner: NastiIO) {
|
|
outer.ar <> Queue(inner.ar)
|
|
outer.aw <> Queue(inner.aw)
|
|
outer.w <> Queue(inner.w)
|
|
inner.r <> Queue(outer.r)
|
|
inner.b <> Queue(outer.b)
|
|
}
|
|
|
|
val tl2nasti = Module(new NastiIOTileLinkIOConverter())
|
|
val nasti2smi = Module(new SmiIONastiIOConverter(dataWidth, addrWidth))
|
|
|
|
tl2nasti.io.tl <> io.tl
|
|
decoupledNastiConnect(nasti2smi.io.nasti, tl2nasti.io.nasti)
|
|
io.smi <> nasti2smi.io.smi
|
|
}
|