aboutsummaryrefslogtreecommitdiff
path: root/src/test/resources
diff options
context:
space:
mode:
authorJack Koenig2016-09-13 13:15:04 -0700
committerGitHub2016-09-13 13:15:04 -0700
commitad36a1216f52bc01a27dac93cfd8cd42beb84c73 (patch)
tree1c65e06819baf90e1e86fa65ebe68e327de38461 /src/test/resources
parent066dc5010a9ebaed276b064451e259318052865e (diff)
parent9a68008856f390bdc3be858f9cce5ed484cdb68f (diff)
Merge pull request #296 from ucb-bar/fix-bits-type-take3
Fix bits type
Diffstat (limited to 'src/test/resources')
-rw-r--r--src/test/resources/passes/Legalize/Legalize.fir41
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)