From 72763a13141345aca79554d743cf3951e726d95f Mon Sep 17 00:00:00 2001 From: jackkoenig Date: Thu, 28 Apr 2016 16:43:25 -0700 Subject: Add Expand Whens test --- .../resources/passes/ExpandWhens/ExpandWhens.fir | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/test/resources/passes/ExpandWhens/ExpandWhens.fir (limited to 'src/test/resources') diff --git a/src/test/resources/passes/ExpandWhens/ExpandWhens.fir b/src/test/resources/passes/ExpandWhens/ExpandWhens.fir new file mode 100644 index 00000000..021533e0 --- /dev/null +++ b/src/test/resources/passes/ExpandWhens/ExpandWhens.fir @@ -0,0 +1,47 @@ + +circuit ExpandWhens : + module ExpandWhens : + input clk : Clock + input reset : UInt<1> + + node done = UInt(6) + + reg x : UInt<16>, clk with : + reset => (reset, UInt(0)) + x <= x + + x <= UInt(2) + + ; Tricky assignment only in else + when geq(x, UInt(1)) : + else : + x <= UInt(1) + + when geq(x, UInt(2)) : + when lt(x, UInt(3)) : + x <= UInt(3) + else : + x <= UInt(4) + + when reset : + else : + when geq(x, UInt(4)) : + x <= UInt(6) + when lt(x, UInt(5)) : + x <= UInt(5) + + reg count : UInt<16>, clk with : + reset => (reset, UInt(0)) + when neq(count, done) : + count <= add(count, UInt(1)) + + printf(clk, UInt(1), "count = %d, x = %d\n", count, x) + + when not(reset) : + when neq(x, count) : + printf(clk, UInt(1), "Assertion failed! x =/= count!\n") + stop(clk, UInt(1), 1) + when eq(x, done) : + stop(clk, UInt(1), 0) + + -- cgit v1.2.3