diff options
| author | jackkoenig | 2016-04-28 16:43:25 -0700 |
|---|---|---|
| committer | jackkoenig | 2016-05-03 16:56:52 -0700 |
| commit | 72763a13141345aca79554d743cf3951e726d95f (patch) | |
| tree | a1f60fca431298c5c25e60d6fdf9d7438dfe83e3 /src/test/resources/passes/ExpandWhens/ExpandWhens.fir | |
| parent | 41e0f6da3d60528241a46520b949c15bcbc29957 (diff) | |
Add Expand Whens test
Diffstat (limited to 'src/test/resources/passes/ExpandWhens/ExpandWhens.fir')
| -rw-r--r-- | src/test/resources/passes/ExpandWhens/ExpandWhens.fir | 47 |
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) + + |
