From a4aa3929eb04f21724ae61ff5e45158eed3d0e3b Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 6 Mar 2018 20:55:08 -0600 Subject: Fix SyncReadMem.read; add test (#796) SyncReadMem.read with an enable signal currently only works in compatibility mode, where Wires are implicitly initialized to DontCare. Fix by explicitly assigning DontCare to the Wire. This might fix #775.--- src/test/scala/chiselTests/Mem.scala | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/test/scala/chiselTests/Mem.scala b/src/test/scala/chiselTests/Mem.scala index 81b5307c..56110d0f 100644 --- a/src/test/scala/chiselTests/Mem.scala +++ b/src/test/scala/chiselTests/Mem.scala @@ -19,8 +19,26 @@ class MemVecTester extends BasicTester { } } +class SyncReadMemTester extends BasicTester { + val (cnt, _) = Counter(true.B, 5) + val mem = SyncReadMem(2, UInt(2.W)) + val rdata = mem.read(cnt - 1.U, cnt =/= 0.U) + + switch (cnt) { + is (0.U) { mem.write(cnt, 3.U) } + is (1.U) { mem.write(cnt, 2.U) } + is (2.U) { assert(rdata === 3.U) } + is (3.U) { assert(rdata === 2.U) } + is (4.U) { stop() } + } +} + class MemorySpec extends ChiselPropSpec { property("Mem of Vec should work") { assertTesterPasses { new MemVecTester } } + + property("SyncReadMem should work") { + assertTesterPasses { new SyncReadMemTester } + } } -- cgit v1.2.3