diff options
| author | Angie Wang | 2016-09-14 13:52:19 -0700 |
|---|---|---|
| committer | Donggyu | 2016-09-14 13:52:19 -0700 |
| commit | 47cbab4b19df50eb47954c1ed37d15a339d37f8b (patch) | |
| tree | d0f0ad0cd2f9c09390131e9bd807b63303dfb96e /src/test | |
| parent | 8fc37582267b2319e5fa25818fcd1346d8e180ae (diff) | |
Fixed infinite loop for finding connect origin in ReplSeqMem (#300)
* Addressed the fact that a node can be connected to itself (updating reg)
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/scala/firrtlTests/ReplSeqMemTests.scala | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/test/scala/firrtlTests/ReplSeqMemTests.scala b/src/test/scala/firrtlTests/ReplSeqMemTests.scala index 4f729578..7219b1ce 100644 --- a/src/test/scala/firrtlTests/ReplSeqMemTests.scala +++ b/src/test/scala/firrtlTests/ReplSeqMemTests.scala @@ -20,7 +20,7 @@ class ReplSeqMemSpec extends SimpleTransformSpec { new EmitFirrtl(writer) ) - "ReplSeqMem" should "generate blackbox wrappers" in { + "ReplSeqMem" should "generate blackbox wrappers for mems of bundle type" in { val input = """ circuit Top : module Top : @@ -65,6 +65,29 @@ circuit Top : (new java.io.File(confLoc)).delete() } + "ReplSeqMem" should "not infinite loop if control signals are derived from registered versions of themselves" in { + val input = """ +circuit Top : + module Top : + input clk : Clock + input hsel : UInt<1> + + reg p_valid : UInt<1>, clk + reg p_address : UInt<5>, clk + smem mem : UInt<8>[8][32] + when hsel : + when p_valid : + write mport T_155 = mem[p_address], clk +""".stripMargin + val confLoc = "ReplSeqMemTests.confTEMP" + val aMap = AnnotationMap(Seq(ReplSeqMemAnnotation("-c:Top:-o:"+confLoc, TransID(-2)))) + val writer = new java.io.StringWriter + compile(parse(input), aMap, writer) + // Check correctness of firrtl + parse(writer.toString) + (new java.io.File(confLoc)).delete() + } + "ReplSeqMem Utility -- getConnectOrigin" should "determine connect origin across nodes/PrimOps even if ConstProp isn't performed" in { def checkConnectOrigin(hurdle: String, origin: String) = { |
