From 4c3c3c630ea6e82c8a68847ae5c6153138538dc4 Mon Sep 17 00:00:00 2001 From: Howard Mao Date: Thu, 10 Sep 2015 17:55:10 -0700 Subject: [PATCH] add assertions to make sure NASTI -> MemIO converter takes in requests of the right size and len --- junctions/src/main/scala/nasti.scala | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/junctions/src/main/scala/nasti.scala b/junctions/src/main/scala/nasti.scala index b2282399..7d31a882 100644 --- a/junctions/src/main/scala/nasti.scala +++ b/junctions/src/main/scala/nasti.scala @@ -191,6 +191,15 @@ class MemIONASTISlaveIOConverter(cacheBlockOffsetBits: Int) extends MIFModule wi require(mifDataBits == nastiXDataBits, "Data sizes between LLC and MC don't agree") val (mif_cnt_out, mif_wrap_out) = Counter(io.mem.resp.fire(), mifDataBeats) + assert(!io.nasti.aw.valid || io.nasti.aw.bits.size === UInt(log2Up(mifDataBits/8)), + "NASTI data size does not match MemIO data size") + assert(!io.nasti.ar.valid || io.nasti.ar.bits.size === UInt(log2Up(mifDataBits/8)), + "NASTI data size does not match MemIO data size") + assert(!io.nasti.aw.valid || io.nasti.aw.bits.len === UInt(mifDataBeats - 1), + "NASTI length does not match number of MemIO beats") + assert(!io.nasti.ar.valid || io.nasti.ar.bits.len === UInt(mifDataBeats - 1), + "NASTI length does not match number of MemIO beats") + // according to the spec, we can't send b until the last transfer on w val b_ok = Reg(init = Bool(true)) when (io.nasti.aw.fire()) { b_ok := Bool(false) }