Convert FIFOs to use initialized registers for memory Change-Id: I4e4fdd5b12631c0c686fb775275c421da998940a Bug: 337312097
diff --git a/hdl/chisel/src/common/Fifo.scala b/hdl/chisel/src/common/Fifo.scala index 8c653b2..abced79 100644 --- a/hdl/chisel/src/common/Fifo.scala +++ b/hdl/chisel/src/common/Fifo.scala
@@ -34,7 +34,7 @@ // An (n-1) queue with a registered output stage. val m = n - 1 // n = Mem(n-1) + Out - val mem = Mem(m, t) + val mem = RegInit(VecInit(Seq.fill(n)(0.U(t.getWidth.W).asTypeOf(t)))) val rdata = Reg(t) val rvalid = RegInit(false.B)
diff --git a/hdl/chisel/src/common/FifoIxO.scala b/hdl/chisel/src/common/FifoIxO.scala index 5be7dd6..cdcf4bb 100644 --- a/hdl/chisel/src/common/FifoIxO.scala +++ b/hdl/chisel/src/common/FifoIxO.scala
@@ -46,7 +46,7 @@ d } - val mem = Reg(Vec(n, t)) + val mem = RegInit(VecInit(Seq.fill(n)(0.U(t.getWidth.W).asTypeOf(t)))) val inpos = Reg(Vec(i, UInt(mb.W))) // reset below val outpos = Reg(Vec(o, UInt(mb.W))) // reset below
diff --git a/hdl/chisel/src/common/FifoX.scala b/hdl/chisel/src/common/FifoX.scala index 7e6a925..8ec1d60 100644 --- a/hdl/chisel/src/common/FifoX.scala +++ b/hdl/chisel/src/common/FifoX.scala
@@ -57,7 +57,7 @@ d } - val mem = Mem(m, t) + val mem = RegInit(VecInit(Seq.fill(n)(0.U(t.getWidth.W).asTypeOf(t)))) val mslice = Slice(t, false, true) val inxpos = RegInit(VecInit((0 until x).map(x => x.U(log2Ceil(m).W))))
diff --git a/hdl/chisel/src/common/FifoXe.scala b/hdl/chisel/src/common/FifoXe.scala index 587be62..77e15bc 100644 --- a/hdl/chisel/src/common/FifoXe.scala +++ b/hdl/chisel/src/common/FifoXe.scala
@@ -41,7 +41,7 @@ d } - val mem = Mem(n, t) + val mem = RegInit(VecInit(Seq.fill(n)(0.U(t.getWidth.W).asTypeOf(t)))) val inxpos = RegInit(VecInit((0 until x).map(x => x.U((log2Ceil(n) + 1).W)))) val outpos = RegInit(0.U(log2Ceil(n).W))