aboutsummaryrefslogtreecommitdiff
path: root/src/test/resources/passes/ExpandWhens/ExpandWhens.fir
diff options
context:
space:
mode:
authorjackkoenig2016-04-28 16:43:25 -0700
committerjackkoenig2016-05-03 16:56:52 -0700
commit72763a13141345aca79554d743cf3951e726d95f (patch)
treea1f60fca431298c5c25e60d6fdf9d7438dfe83e3 /src/test/resources/passes/ExpandWhens/ExpandWhens.fir
parent41e0f6da3d60528241a46520b949c15bcbc29957 (diff)
Add Expand Whens test
Diffstat (limited to 'src/test/resources/passes/ExpandWhens/ExpandWhens.fir')
-rw-r--r--src/test/resources/passes/ExpandWhens/ExpandWhens.fir47
1 files changed, 47 insertions, 0 deletions
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)
+
+