diff options
Diffstat (limited to 'src/test/resources')
| -rw-r--r-- | src/test/resources/passes/Legalize/Legalize.fir | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/test/resources/passes/Legalize/Legalize.fir b/src/test/resources/passes/Legalize/Legalize.fir new file mode 100644 index 00000000..6e27a0bf --- /dev/null +++ b/src/test/resources/passes/Legalize/Legalize.fir @@ -0,0 +1,41 @@ + +circuit Legalize : + module Legalize : + input clk : Clock + input reset : UInt<1> + + ; Count till done + node done = UInt(6) + reg count : UInt<16>, clk with : + reset => (reset, UInt(0)) + when neq(count, done) : + count <= add(count, UInt(1)) + when not(reset) : + when eq(count, done) : + stop(clk, UInt(1), 0) + + ; Begin Test + ; Check assignment to smaller width + node x = UInt<32>("hdeadbeef") + wire y : UInt<16> + y <- x + when neq(y, UInt("hbeef")) : + printf(clk, UInt(1), "Assertion failed!\n y != beef\n") + stop(clk, UInt(1), 1) + + ; Check bit select of literal + node b = bits(UInt("hd0"), 7, 5) + node b2 = bits(UInt("h9"), 3, 3) + when neq(b, UInt(6)) : + printf(clk, UInt(1), "Assertion failed!\n b != 6\n") + stop(clk, UInt(1), 1) + when neq(b2, UInt(1)) : + printf(clk, UInt(1), "Assertion failed!\n b2 != 1\n") + stop(clk, UInt(1), 1) + + ; Check padding of literal + node bar = pad(SInt(-1), 16) + node bar_15 = bits(bar, 15, 15) + when neq(bar_15, UInt(1)) : + printf(clk, UInt(1), "Assertion failed!\n bar_15 != 0\n") + stop(clk, UInt(1), 1) |
