aboutsummaryrefslogtreecommitdiff
path: root/test/passes/jacktest
diff options
context:
space:
mode:
authorazidar2016-01-28 12:12:02 -0800
committerazidar2016-01-28 12:12:02 -0800
commit9ed79a822f7f406c55af8082da04cb7739e772eb (patch)
tree02b10696dd0a03faf54c8eafa046855ccfc26e8f /test/passes/jacktest
parentb7dcc8ccbb1459a604353a8137081a9b156d276e (diff)
parent094c6b8e7b40a3c613547d6127b449d0b1503db3 (diff)
Merge branch 'new-reg-prims' of github.com:ucb-bar/firrtl
Diffstat (limited to 'test/passes/jacktest')
-rw-r--r--test/passes/jacktest/ALUTop.fir10
-rw-r--r--test/passes/jacktest/Counter.fir5
-rw-r--r--test/passes/jacktest/EnableShiftRegister.fir12
-rw-r--r--test/passes/jacktest/LFSR16.fir11
-rw-r--r--test/passes/jacktest/MemorySearch.fir5
-rw-r--r--test/passes/jacktest/ModuleVec.fir4
-rw-r--r--test/passes/jacktest/RegisterVecShift.fir3
-rw-r--r--test/passes/jacktest/RouterUnitTest.fir1076
-rw-r--r--test/passes/jacktest/Stack.fir14
-rw-r--r--test/passes/jacktest/VendingMachine.fir3
-rw-r--r--test/passes/jacktest/gcd.fir10
-rw-r--r--test/passes/jacktest/risc.fir7
12 files changed, 1125 insertions, 35 deletions
diff --git a/test/passes/jacktest/ALUTop.fir b/test/passes/jacktest/ALUTop.fir
index 74abe0bd..a0aadb11 100644
--- a/test/passes/jacktest/ALUTop.fir
+++ b/test/passes/jacktest/ALUTop.fir
@@ -9,8 +9,8 @@ circuit ALUTop :
input alu_op : UInt<4>
node shamt = bits(B, 4, 0)
- node T_157 = addw(A, B)
- node T_158 = subw(A, B)
+ node T_157 = tail(add(A, B),1)
+ node T_158 = tail(sub(A, B),1)
node T_159 = cvt(A)
node T_160 = dshr(T_159, shamt)
node T_161 = asUInt(T_160)
@@ -50,10 +50,10 @@ circuit ALUTop :
node oot = mux(T_194, T_157, T_193)
node T_195 = bits(oot, 31, 0)
out <= T_195
- node T_196 = bit(alu_op, 0)
- node T_197 = subw(UInt<1>(0), B)
+ node T_196 = bits(alu_op, 0, 0)
+ node T_197 = tail(sub(UInt<1>(0), B),1)
node T_198 = mux(T_196, T_197, B)
- node T_199 = addw(A, T_198)
+ node T_199 = tail(add(A, T_198),1)
sum <= T_199
module ALUdec :
input opcode : UInt<7>
diff --git a/test/passes/jacktest/Counter.fir b/test/passes/jacktest/Counter.fir
index 4e23ba26..266c1849 100644
--- a/test/passes/jacktest/Counter.fir
+++ b/test/passes/jacktest/Counter.fir
@@ -8,9 +8,10 @@ circuit Counter :
output tot : UInt<8>
input amt : UInt<4>
- reg T_13 : UInt<8>,clk,reset,UInt<8>(0)
+ reg T_13 : UInt<8>,clk with :
+ reset => (reset,UInt<8>(0))
when inc :
- node T_14 = addw(T_13, amt)
+ node T_14 = tail(add(T_13, amt),1)
node T_15 = gt(T_14, UInt<8>(255))
node T_16 = mux(T_15, UInt<1>(0), T_14)
T_13 <= T_16
diff --git a/test/passes/jacktest/EnableShiftRegister.fir b/test/passes/jacktest/EnableShiftRegister.fir
index d7e91665..9927e83f 100644
--- a/test/passes/jacktest/EnableShiftRegister.fir
+++ b/test/passes/jacktest/EnableShiftRegister.fir
@@ -8,10 +8,14 @@ circuit EnableShiftRegister :
output out : UInt<4>
input shift : UInt<1>
- reg r0 : UInt<4>,clk,reset,UInt<4>(0)
- reg r1 : UInt<4>,clk,reset,UInt<4>(0)
- reg r2 : UInt<4>,clk,reset,UInt<4>(0)
- reg r3 : UInt<4>,clk,reset,UInt<4>(0)
+ reg r0 : UInt<4>,clk with :
+ reset => (reset,UInt<4>(0))
+ reg r1 : UInt<4>,clk with :
+ reset => (reset,UInt<4>(0))
+ reg r2 : UInt<4>,clk with :
+ reset => (reset,UInt<4>(0))
+ reg r3 : UInt<4>,clk with :
+ reset => (reset,UInt<4>(0))
when shift :
r0 <= in
r1 <= r0
diff --git a/test/passes/jacktest/LFSR16.fir b/test/passes/jacktest/LFSR16.fir
index a4052623..b3fb05cc 100644
--- a/test/passes/jacktest/LFSR16.fir
+++ b/test/passes/jacktest/LFSR16.fir
@@ -7,14 +7,15 @@ circuit LFSR16 :
input clk : Clock
input reset : UInt<1>
- reg res : UInt<16>,clk,reset,UInt<16>(1)
+ reg res : UInt<16>,clk with :
+ reset => (reset,UInt<16>(1))
when inc :
- node T_16 = bit(res, 0)
- node T_17 = bit(res, 2)
+ node T_16 = bits(res, 0, 0)
+ node T_17 = bits(res, 2, 2)
node T_18 = xor(T_16, T_17)
- node T_19 = bit(res, 3)
+ node T_19 = bits(res, 3, 3)
node T_20 = xor(T_18, T_19)
- node T_21 = bit(res, 5)
+ node T_21 = bits(res, 5, 5)
node T_22 = xor(T_20, T_21)
node T_23 = bits(res, 15, 1)
node T_24 = cat(T_22, T_23)
diff --git a/test/passes/jacktest/MemorySearch.fir b/test/passes/jacktest/MemorySearch.fir
index 1abc50a2..39c19dda 100644
--- a/test/passes/jacktest/MemorySearch.fir
+++ b/test/passes/jacktest/MemorySearch.fir
@@ -9,7 +9,8 @@ circuit MemorySearch :
input reset : UInt<1>
output done : UInt<1>
- reg index : UInt<3>,clk,reset,UInt<3>(0)
+ reg index : UInt<3>,clk with :
+ reset => (reset,UInt<3>(0))
wire elts : UInt<4>[7]
elts[0] <= UInt<4>(0)
elts[1] <= UInt<4>(4)
@@ -28,7 +29,7 @@ circuit MemorySearch :
else :
node T_39 = not(end)
when T_39 :
- node T_40 = addw(index, UInt<1>(1))
+ node T_40 = tail(add(index, UInt<1>(1)),1)
index <= T_40
done <= end
address <= index
diff --git a/test/passes/jacktest/ModuleVec.fir b/test/passes/jacktest/ModuleVec.fir
index 9a8e7f2c..6f9b699b 100644
--- a/test/passes/jacktest/ModuleVec.fir
+++ b/test/passes/jacktest/ModuleVec.fir
@@ -5,13 +5,13 @@ circuit ModuleVec :
input in : UInt<32>
output out : UInt<32>
- node T_33 = addw(in, UInt<1>(1))
+ node T_33 = tail(add(in, UInt<1>(1)),1)
out <= T_33
module PlusOne_25 :
input in : UInt<32>
output out : UInt<32>
- node T_34 = addw(in, UInt<1>(1))
+ node T_34 = tail(add(in, UInt<1>(1)),1)
out <= T_34
module ModuleVec :
input ins : UInt<32>[2]
diff --git a/test/passes/jacktest/RegisterVecShift.fir b/test/passes/jacktest/RegisterVecShift.fir
index 61376a62..f138d00a 100644
--- a/test/passes/jacktest/RegisterVecShift.fir
+++ b/test/passes/jacktest/RegisterVecShift.fir
@@ -9,7 +9,8 @@ circuit RegisterVecShift :
input shift : UInt<1>
input ins : UInt<4>[4]
- reg delays : UInt<4>[4],clk,reset,delays
+ reg delays : UInt<4>[4],clk with :
+ reset => (reset,delays)
when reset :
wire T_33 : UInt<4>[4]
T_33[0] <= UInt<4>(0)
diff --git a/test/passes/jacktest/RouterUnitTest.fir b/test/passes/jacktest/RouterUnitTest.fir
new file mode 100644
index 00000000..dec4083e
--- /dev/null
+++ b/test/passes/jacktest/RouterUnitTest.fir
@@ -0,0 +1,1076 @@
+; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
+; CHECK: Done!
+
+circuit RouterUnitTester :
+ module Router :
+ input clk : Clock
+ input reset : UInt<1>
+ output io : {read_routing_table_request : {ready : UInt<1>, flip valid : UInt<1>, flip bits : {addr : UInt<32>}}, read_routing_table_response : {flip ready : UInt<1>, valid : UInt<1>, bits : UInt<8>}, load_routing_table_request : {ready : UInt<1>, flip valid : UInt<1>, flip bits : {addr : UInt<32>, data : UInt<32>}}, in : {ready : UInt<1>, flip valid : UInt<1>, flip bits : {header : UInt<8>, body : UInt<64>}}, outs : {flip ready : UInt<1>, valid : UInt<1>, bits : {header : UInt<8>, body : UInt<64>}}[4]}
+
+ io.outs[0].bits.body <= UInt<1>("h00")
+ io.outs[0].bits.header <= UInt<1>("h00")
+ io.outs[0].valid <= UInt<1>("h00")
+ io.outs[1].bits.body <= UInt<1>("h00")
+ io.outs[1].bits.header <= UInt<1>("h00")
+ io.outs[1].valid <= UInt<1>("h00")
+ io.outs[2].bits.body <= UInt<1>("h00")
+ io.outs[2].bits.header <= UInt<1>("h00")
+ io.outs[2].valid <= UInt<1>("h00")
+ io.outs[3].bits.body <= UInt<1>("h00")
+ io.outs[3].bits.header <= UInt<1>("h00")
+ io.outs[3].valid <= UInt<1>("h00")
+ io.in.ready <= UInt<1>("h00")
+ io.load_routing_table_request.ready <= UInt<1>("h00")
+ io.read_routing_table_response.bits <= UInt<1>("h00")
+ io.read_routing_table_response.valid <= UInt<1>("h00")
+ io.read_routing_table_request.ready <= UInt<1>("h00")
+ cmem tbl : UInt<3>[15]
+ when reset :
+ infer mport T_115 = tbl[UInt<1>("h00")], clk
+ T_115 <= UInt<32>("h00")
+ infer mport T_118 = tbl[UInt<1>("h01")], clk
+ T_118 <= UInt<32>("h00")
+ infer mport T_121 = tbl[UInt<2>("h02")], clk
+ T_121 <= UInt<32>("h00")
+ infer mport T_124 = tbl[UInt<2>("h03")], clk
+ T_124 <= UInt<32>("h00")
+ infer mport T_127 = tbl[UInt<3>("h04")], clk
+ T_127 <= UInt<32>("h00")
+ infer mport T_130 = tbl[UInt<3>("h05")], clk
+ T_130 <= UInt<32>("h00")
+ infer mport T_133 = tbl[UInt<3>("h06")], clk
+ T_133 <= UInt<32>("h00")
+ infer mport T_136 = tbl[UInt<3>("h07")], clk
+ T_136 <= UInt<32>("h00")
+ infer mport T_139 = tbl[UInt<4>("h08")], clk
+ T_139 <= UInt<32>("h00")
+ infer mport T_142 = tbl[UInt<4>("h09")], clk
+ T_142 <= UInt<32>("h00")
+ infer mport T_145 = tbl[UInt<4>("h0a")], clk
+ T_145 <= UInt<32>("h00")
+ infer mport T_148 = tbl[UInt<4>("h0b")], clk
+ T_148 <= UInt<32>("h00")
+ infer mport T_151 = tbl[UInt<4>("h0c")], clk
+ T_151 <= UInt<32>("h00")
+ infer mport T_154 = tbl[UInt<4>("h0d")], clk
+ T_154 <= UInt<32>("h00")
+ infer mport T_157 = tbl[UInt<4>("h0e")], clk
+ T_157 <= UInt<32>("h00")
+ skip
+ io.read_routing_table_request.ready <= UInt<1>("h01")
+ io.load_routing_table_request.ready <= UInt<1>("h01")
+ io.read_routing_table_response.valid <= UInt<1>("h00")
+ io.read_routing_table_response.bits <= UInt<1>("h00")
+ io.in.ready <= UInt<1>("h01")
+ io.outs[0].valid <= UInt<1>("h00")
+ io.outs[0].bits.body <= UInt<1>("h00")
+ io.outs[0].bits.header <= UInt<1>("h00")
+ io.outs[1].valid <= UInt<1>("h00")
+ io.outs[1].bits.body <= UInt<1>("h00")
+ io.outs[1].bits.header <= UInt<1>("h00")
+ io.outs[2].valid <= UInt<1>("h00")
+ io.outs[2].bits.body <= UInt<1>("h00")
+ io.outs[2].bits.header <= UInt<1>("h00")
+ io.outs[3].valid <= UInt<1>("h00")
+ io.outs[3].bits.body <= UInt<1>("h00")
+ io.outs[3].bits.header <= UInt<1>("h00")
+ node T_176 = and(io.read_routing_table_request.valid, io.read_routing_table_response.ready)
+ when T_176 :
+ io.read_routing_table_request.ready <= UInt<1>("h01")
+ infer mport T_178 = tbl[io.read_routing_table_request.bits.addr], clk
+ io.read_routing_table_response.valid <= UInt<1>("h01")
+ io.read_routing_table_response.bits <= T_178
+ skip
+ node T_181 = eq(T_176, UInt<1>("h00"))
+ node T_182 = and(T_181, io.load_routing_table_request.valid)
+ when T_182 :
+ io.load_routing_table_request.ready <= UInt<1>("h01")
+ infer mport T_184 = tbl[io.load_routing_table_request.bits.addr], clk
+ T_184 <= io.load_routing_table_request.bits.data
+ node T_186 = eq(reset, UInt<1>("h00"))
+ when T_186 :
+ printf(clk, UInt<1>(1), "setting tbl(%d) to %d", io.load_routing_table_request.bits.addr, io.load_routing_table_request.bits.data)
+ skip
+ skip
+ node T_188 = eq(T_176, UInt<1>("h00"))
+ node T_190 = eq(io.load_routing_table_request.valid, UInt<1>("h00"))
+ node T_191 = and(T_188, T_190)
+ node T_192 = and(T_191, io.in.valid)
+ when T_192 :
+ node T_193 = bits(io.in.bits.header, 4, 0)
+ infer mport T_194 = tbl[T_193], clk
+ when io.outs[T_194].ready :
+ io.in.ready <= UInt<1>("h01")
+ io.outs[T_194].valid <= UInt<1>("h01")
+ io.outs[T_194].bits <- io.in.bits
+ infer mport T_215 = tbl[io.in.bits.header], clk
+ node T_217 = eq(reset, UInt<1>("h00"))
+ when T_217 :
+ printf(clk, UInt<1>(1), "got packet to route header %d, data %d, being routed to out(%d) ", io.in.bits.header, io.in.bits.body, T_215)
+ skip
+ skip
+ skip
+
+ module RouterUnitTester :
+ input clk : Clock
+ input reset : UInt<1>
+ output io : {}
+
+ inst device_under_test of Router
+ device_under_test.io.outs[0].ready <= UInt<1>("h00")
+ device_under_test.io.outs[1].ready <= UInt<1>("h00")
+ device_under_test.io.outs[2].ready <= UInt<1>("h00")
+ device_under_test.io.outs[3].ready <= UInt<1>("h00")
+ device_under_test.io.in.bits.body <= UInt<1>("h00")
+ device_under_test.io.in.bits.header <= UInt<1>("h00")
+ device_under_test.io.in.valid <= UInt<1>("h00")
+ device_under_test.io.load_routing_table_request.bits.data <= UInt<1>("h00")
+ device_under_test.io.load_routing_table_request.bits.addr <= UInt<1>("h00")
+ device_under_test.io.load_routing_table_request.valid <= UInt<1>("h00")
+ device_under_test.io.read_routing_table_response.ready <= UInt<1>("h00")
+ device_under_test.io.read_routing_table_request.bits.addr <= UInt<1>("h00")
+ device_under_test.io.read_routing_table_request.valid <= UInt<1>("h00")
+ device_under_test.clk <= clk
+ device_under_test.reset <= reset
+ reg T_19 : UInt<8>, clk with :
+ reset => (reset, UInt<8>("h00"))
+ reg T_21 : UInt<1>, clk with :
+ reset => (reset, UInt<1>("h00"))
+ reg T_23 : UInt<8>, clk with :
+ reset => (reset, UInt<8>("h00"))
+ reg T_25 : UInt<1>, clk with :
+ reset => (reset, UInt<1>("h00"))
+ node T_26 = and(T_21, T_25)
+ when T_26 :
+ node T_28 = eq(reset, UInt<1>("h00"))
+ when T_28 :
+ printf(clk, UInt<1>(1), "All input and output events completed
+")
+ skip
+ node T_30 = eq(reset, UInt<1>("h00"))
+ when T_30 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ reg T_32 : UInt<10>, clk with :
+ reset => (reset, UInt<10>("h00"))
+ node T_34 = tail(add(T_32, UInt<1>("h01")),1)
+ T_32 <= T_34
+ node T_36 = gt(T_32, UInt<10>("h03e8"))
+ when T_36 :
+ node T_39 = eq(reset, UInt<1>("h00"))
+ when T_39 :
+ printf(clk, UInt<1>(1), "Exceeded maximum allowed %d ticks in OrderedDecoupledHWIOTester, If you think code is correct use:
+DecoupleTester.max_tick_count = <some-higher-value>
+in the OrderedDecoupledHWIOTester subclass
+", UInt<10>("h03e8"))
+ skip
+ node T_41 = eq(reset, UInt<1>("h00"))
+ when T_41 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ wire T_97 : UInt<1>[54]
+ T_97[0] <= UInt<1>("h00")
+ T_97[1] <= UInt<1>("h00")
+ T_97[2] <= UInt<1>("h00")
+ T_97[3] <= UInt<1>("h00")
+ T_97[4] <= UInt<1>("h00")
+ T_97[5] <= UInt<1>("h00")
+ T_97[6] <= UInt<1>("h00")
+ T_97[7] <= UInt<1>("h00")
+ T_97[8] <= UInt<1>("h00")
+ T_97[9] <= UInt<1>("h00")
+ T_97[10] <= UInt<1>("h00")
+ T_97[11] <= UInt<1>("h00")
+ T_97[12] <= UInt<1>("h00")
+ T_97[13] <= UInt<1>("h01")
+ T_97[14] <= UInt<1>("h01")
+ T_97[15] <= UInt<1>("h01")
+ T_97[16] <= UInt<1>("h01")
+ T_97[17] <= UInt<1>("h00")
+ T_97[18] <= UInt<1>("h00")
+ T_97[19] <= UInt<1>("h00")
+ T_97[20] <= UInt<1>("h00")
+ T_97[21] <= UInt<1>("h00")
+ T_97[22] <= UInt<1>("h00")
+ T_97[23] <= UInt<1>("h00")
+ T_97[24] <= UInt<1>("h00")
+ T_97[25] <= UInt<1>("h00")
+ T_97[26] <= UInt<1>("h00")
+ T_97[27] <= UInt<1>("h00")
+ T_97[28] <= UInt<1>("h00")
+ T_97[29] <= UInt<1>("h00")
+ T_97[30] <= UInt<1>("h00")
+ T_97[31] <= UInt<1>("h00")
+ T_97[32] <= UInt<1>("h01")
+ T_97[33] <= UInt<1>("h01")
+ T_97[34] <= UInt<1>("h01")
+ T_97[35] <= UInt<1>("h01")
+ T_97[36] <= UInt<1>("h01")
+ T_97[37] <= UInt<1>("h01")
+ T_97[38] <= UInt<1>("h01")
+ T_97[39] <= UInt<1>("h01")
+ T_97[40] <= UInt<1>("h01")
+ T_97[41] <= UInt<1>("h01")
+ T_97[42] <= UInt<1>("h01")
+ T_97[43] <= UInt<1>("h01")
+ T_97[44] <= UInt<1>("h01")
+ T_97[45] <= UInt<1>("h01")
+ T_97[46] <= UInt<1>("h01")
+ T_97[47] <= UInt<1>("h01")
+ T_97[48] <= UInt<1>("h01")
+ T_97[49] <= UInt<1>("h01")
+ T_97[50] <= UInt<1>("h01")
+ T_97[51] <= UInt<1>("h01")
+ T_97[52] <= UInt<1>("h01")
+ T_97[53] <= UInt<1>("h00")
+ reg T_154 : UInt<5>, clk with :
+ reset => (reset, UInt<5>("h00"))
+ wire T_182 : UInt<4>[26]
+ T_182[0] <= UInt<1>("h00")
+ T_182[1] <= UInt<1>("h01")
+ T_182[2] <= UInt<2>("h02")
+ T_182[3] <= UInt<2>("h03")
+ T_182[4] <= UInt<1>("h00")
+ T_182[5] <= UInt<1>("h01")
+ T_182[6] <= UInt<2>("h02")
+ T_182[7] <= UInt<2>("h03")
+ T_182[8] <= UInt<3>("h04")
+ T_182[9] <= UInt<3>("h05")
+ T_182[10] <= UInt<3>("h06")
+ T_182[11] <= UInt<3>("h07")
+ T_182[12] <= UInt<4>("h08")
+ T_182[13] <= UInt<4>("h09")
+ T_182[14] <= UInt<4>("h0a")
+ T_182[15] <= UInt<4>("h0b")
+ T_182[16] <= UInt<4>("h0c")
+ T_182[17] <= UInt<4>("h0d")
+ T_182[18] <= UInt<4>("h0e")
+ T_182[19] <= UInt<1>("h00")
+ T_182[20] <= UInt<1>("h01")
+ T_182[21] <= UInt<2>("h02")
+ T_182[22] <= UInt<2>("h03")
+ T_182[23] <= UInt<3>("h04")
+ T_182[24] <= UInt<3>("h05")
+ T_182[25] <= UInt<1>("h00")
+ wire T_237 : UInt<31>[26]
+ T_237[0] <= UInt<1>("h00")
+ T_237[1] <= UInt<2>("h03")
+ T_237[2] <= UInt<3>("h06")
+ T_237[3] <= UInt<4>("h09")
+ T_237[4] <= UInt<31>("h07dcd07ac")
+ T_237[5] <= UInt<31>("h070890d84")
+ T_237[6] <= UInt<26>("h02f45883")
+ T_237[7] <= UInt<31>("h0787ada79")
+ T_237[8] <= UInt<29>("h016866878")
+ T_237[9] <= UInt<30>("h02331b107")
+ T_237[10] <= UInt<30>("h0280e4938")
+ T_237[11] <= UInt<29>("h0107fb3ac")
+ T_237[12] <= UInt<30>("h02f19d47b")
+ T_237[13] <= UInt<29>("h012c3d7cc")
+ T_237[14] <= UInt<31>("h05a432a9c")
+ T_237[15] <= UInt<26>("h02f9778f")
+ T_237[16] <= UInt<22>("h02d705a")
+ T_237[17] <= UInt<31>("h045fb9184")
+ T_237[18] <= UInt<25>("h012e47af")
+ T_237[19] <= UInt<31>("h07b744e21")
+ T_237[20] <= UInt<31>("h0480ebc3d")
+ T_237[21] <= UInt<28>("h0d5ff365")
+ T_237[22] <= UInt<30>("h0205e7973")
+ T_237[23] <= UInt<31>("h05004cbd2")
+ T_237[24] <= UInt<30>("h024988736")
+ T_237[25] <= UInt<1>("h00")
+ device_under_test.io.in.bits.header <= T_182[T_154]
+ device_under_test.io.in.bits.body <= T_237[T_154]
+ device_under_test.io.in.valid <= T_97[T_19]
+ node T_268 = and(device_under_test.io.in.valid, device_under_test.io.in.ready)
+ when T_268 :
+ node T_270 = eq(T_154, UInt<5>("h018"))
+ node T_272 = and(UInt<1>("h01"), T_270)
+ node T_275 = tail(add(T_154, UInt<1>("h01")),1)
+ node T_276 = mux(T_272, UInt<1>("h00"), T_275)
+ T_154 <= T_276
+ node T_278 = eq(T_21, UInt<1>("h00"))
+ when T_278 :
+ node T_280 = eq(T_19, UInt<6>("h034"))
+ when T_280 :
+ T_21 <= UInt<1>("h01")
+ skip
+ node T_283 = tail(add(T_19, UInt<1>("h01")),1)
+ T_19 <= T_283
+ skip
+ skip
+ wire T_339 : UInt<1>[54]
+ T_339[0] <= UInt<1>("h00")
+ T_339[1] <= UInt<1>("h01")
+ T_339[2] <= UInt<1>("h00")
+ T_339[3] <= UInt<1>("h01")
+ T_339[4] <= UInt<1>("h00")
+ T_339[5] <= UInt<1>("h01")
+ T_339[6] <= UInt<1>("h00")
+ T_339[7] <= UInt<1>("h01")
+ T_339[8] <= UInt<1>("h00")
+ T_339[9] <= UInt<1>("h00")
+ T_339[10] <= UInt<1>("h00")
+ T_339[11] <= UInt<1>("h00")
+ T_339[12] <= UInt<1>("h00")
+ T_339[13] <= UInt<1>("h00")
+ T_339[14] <= UInt<1>("h00")
+ T_339[15] <= UInt<1>("h00")
+ T_339[16] <= UInt<1>("h00")
+ T_339[17] <= UInt<1>("h01")
+ T_339[18] <= UInt<1>("h01")
+ T_339[19] <= UInt<1>("h01")
+ T_339[20] <= UInt<1>("h01")
+ T_339[21] <= UInt<1>("h01")
+ T_339[22] <= UInt<1>("h01")
+ T_339[23] <= UInt<1>("h01")
+ T_339[24] <= UInt<1>("h01")
+ T_339[25] <= UInt<1>("h01")
+ T_339[26] <= UInt<1>("h01")
+ T_339[27] <= UInt<1>("h01")
+ T_339[28] <= UInt<1>("h01")
+ T_339[29] <= UInt<1>("h01")
+ T_339[30] <= UInt<1>("h01")
+ T_339[31] <= UInt<1>("h01")
+ T_339[32] <= UInt<1>("h00")
+ T_339[33] <= UInt<1>("h00")
+ T_339[34] <= UInt<1>("h00")
+ T_339[35] <= UInt<1>("h00")
+ T_339[36] <= UInt<1>("h00")
+ T_339[37] <= UInt<1>("h00")
+ T_339[38] <= UInt<1>("h00")
+ T_339[39] <= UInt<1>("h00")
+ T_339[40] <= UInt<1>("h00")
+ T_339[41] <= UInt<1>("h00")
+ T_339[42] <= UInt<1>("h00")
+ T_339[43] <= UInt<1>("h00")
+ T_339[44] <= UInt<1>("h00")
+ T_339[45] <= UInt<1>("h00")
+ T_339[46] <= UInt<1>("h00")
+ T_339[47] <= UInt<1>("h00")
+ T_339[48] <= UInt<1>("h00")
+ T_339[49] <= UInt<1>("h00")
+ T_339[50] <= UInt<1>("h00")
+ T_339[51] <= UInt<1>("h00")
+ T_339[52] <= UInt<1>("h00")
+ T_339[53] <= UInt<1>("h00")
+ reg T_396 : UInt<5>, clk with :
+ reset => (reset, UInt<5>("h00"))
+ wire T_418 : UInt<2>[20]
+ T_418[0] <= UInt<1>("h01")
+ T_418[1] <= UInt<2>("h02")
+ T_418[2] <= UInt<2>("h03")
+ T_418[3] <= UInt<1>("h00")
+ T_418[4] <= UInt<2>("h02")
+ T_418[5] <= UInt<2>("h03")
+ T_418[6] <= UInt<1>("h00")
+ T_418[7] <= UInt<2>("h02")
+ T_418[8] <= UInt<2>("h02")
+ T_418[9] <= UInt<1>("h01")
+ T_418[10] <= UInt<2>("h02")
+ T_418[11] <= UInt<1>("h00")
+ T_418[12] <= UInt<2>("h02")
+ T_418[13] <= UInt<2>("h03")
+ T_418[14] <= UInt<1>("h01")
+ T_418[15] <= UInt<1>("h01")
+ T_418[16] <= UInt<1>("h01")
+ T_418[17] <= UInt<2>("h02")
+ T_418[18] <= UInt<2>("h03")
+ T_418[19] <= UInt<1>("h00")
+ wire T_461 : UInt<4>[20]
+ T_461[0] <= UInt<1>("h00")
+ T_461[1] <= UInt<1>("h01")
+ T_461[2] <= UInt<2>("h02")
+ T_461[3] <= UInt<2>("h03")
+ T_461[4] <= UInt<1>("h00")
+ T_461[5] <= UInt<1>("h01")
+ T_461[6] <= UInt<2>("h02")
+ T_461[7] <= UInt<2>("h03")
+ T_461[8] <= UInt<3>("h04")
+ T_461[9] <= UInt<3>("h05")
+ T_461[10] <= UInt<3>("h06")
+ T_461[11] <= UInt<3>("h07")
+ T_461[12] <= UInt<4>("h08")
+ T_461[13] <= UInt<4>("h09")
+ T_461[14] <= UInt<4>("h0a")
+ T_461[15] <= UInt<4>("h0b")
+ T_461[16] <= UInt<4>("h0c")
+ T_461[17] <= UInt<4>("h0d")
+ T_461[18] <= UInt<4>("h0e")
+ T_461[19] <= UInt<1>("h00")
+ device_under_test.io.load_routing_table_request.bits.data <= T_418[T_396]
+ device_under_test.io.load_routing_table_request.bits.addr <= T_461[T_396]
+ device_under_test.io.load_routing_table_request.valid <= T_339[T_19]
+ node T_486 = and(device_under_test.io.load_routing_table_request.valid, device_under_test.io.load_routing_table_request.ready)
+ when T_486 :
+ node T_488 = eq(T_396, UInt<5>("h012"))
+ node T_490 = and(UInt<1>("h01"), T_488)
+ node T_493 = tail(add(T_396, UInt<1>("h01")),1)
+ node T_494 = mux(T_490, UInt<1>("h00"), T_493)
+ T_396 <= T_494
+ node T_496 = eq(T_21, UInt<1>("h00"))
+ when T_496 :
+ node T_498 = eq(T_19, UInt<6>("h034"))
+ when T_498 :
+ T_21 <= UInt<1>("h01")
+ skip
+ node T_501 = tail(add(T_19, UInt<1>("h01")),1)
+ T_19 <= T_501
+ skip
+ skip
+ wire T_557 : UInt<1>[54]
+ T_557[0] <= UInt<1>("h01")
+ T_557[1] <= UInt<1>("h00")
+ T_557[2] <= UInt<1>("h01")
+ T_557[3] <= UInt<1>("h00")
+ T_557[4] <= UInt<1>("h01")
+ T_557[5] <= UInt<1>("h00")
+ T_557[6] <= UInt<1>("h01")
+ T_557[7] <= UInt<1>("h00")
+ T_557[8] <= UInt<1>("h01")
+ T_557[9] <= UInt<1>("h01")
+ T_557[10] <= UInt<1>("h01")
+ T_557[11] <= UInt<1>("h01")
+ T_557[12] <= UInt<1>("h01")
+ T_557[13] <= UInt<1>("h00")
+ T_557[14] <= UInt<1>("h00")
+ T_557[15] <= UInt<1>("h00")
+ T_557[16] <= UInt<1>("h00")
+ T_557[17] <= UInt<1>("h00")
+ T_557[18] <= UInt<1>("h00")
+ T_557[19] <= UInt<1>("h00")
+ T_557[20] <= UInt<1>("h00")
+ T_557[21] <= UInt<1>("h00")
+ T_557[22] <= UInt<1>("h00")
+ T_557[23] <= UInt<1>("h00")
+ T_557[24] <= UInt<1>("h00")
+ T_557[25] <= UInt<1>("h00")
+ T_557[26] <= UInt<1>("h00")
+ T_557[27] <= UInt<1>("h00")
+ T_557[28] <= UInt<1>("h00")
+ T_557[29] <= UInt<1>("h00")
+ T_557[30] <= UInt<1>("h00")
+ T_557[31] <= UInt<1>("h00")
+ T_557[32] <= UInt<1>("h00")
+ T_557[33] <= UInt<1>("h00")
+ T_557[34] <= UInt<1>("h00")
+ T_557[35] <= UInt<1>("h00")
+ T_557[36] <= UInt<1>("h00")
+ T_557[37] <= UInt<1>("h00")
+ T_557[38] <= UInt<1>("h00")
+ T_557[39] <= UInt<1>("h00")
+ T_557[40] <= UInt<1>("h00")
+ T_557[41] <= UInt<1>("h00")
+ T_557[42] <= UInt<1>("h00")
+ T_557[43] <= UInt<1>("h00")
+ T_557[44] <= UInt<1>("h00")
+ T_557[45] <= UInt<1>("h00")
+ T_557[46] <= UInt<1>("h00")
+ T_557[47] <= UInt<1>("h00")
+ T_557[48] <= UInt<1>("h00")
+ T_557[49] <= UInt<1>("h00")
+ T_557[50] <= UInt<1>("h00")
+ T_557[51] <= UInt<1>("h00")
+ T_557[52] <= UInt<1>("h00")
+ T_557[53] <= UInt<1>("h00")
+ reg T_614 : UInt<4>, clk with :
+ reset => (reset, UInt<4>("h00"))
+ wire T_626 : UInt<2>[10]
+ T_626[0] <= UInt<1>("h00")
+ T_626[1] <= UInt<1>("h00")
+ T_626[2] <= UInt<1>("h01")
+ T_626[3] <= UInt<2>("h02")
+ T_626[4] <= UInt<2>("h03")
+ T_626[5] <= UInt<2>("h03")
+ T_626[6] <= UInt<2>("h02")
+ T_626[7] <= UInt<1>("h01")
+ T_626[8] <= UInt<1>("h00")
+ T_626[9] <= UInt<1>("h00")
+ device_under_test.io.read_routing_table_request.bits.addr <= T_626[T_614]
+ device_under_test.io.read_routing_table_request.valid <= T_557[T_19]
+ node T_640 = and(device_under_test.io.read_routing_table_request.valid, device_under_test.io.read_routing_table_request.ready)
+ when T_640 :
+ node T_642 = eq(T_614, UInt<4>("h08"))
+ node T_644 = and(UInt<1>("h01"), T_642)
+ node T_647 = tail(add(T_614, UInt<1>("h01")),1)
+ node T_648 = mux(T_644, UInt<1>("h00"), T_647)
+ T_614 <= T_648
+ node T_650 = eq(T_21, UInt<1>("h00"))
+ when T_650 :
+ node T_652 = eq(T_19, UInt<6>("h034"))
+ when T_652 :
+ T_21 <= UInt<1>("h01")
+ skip
+ node T_655 = tail(add(T_19, UInt<1>("h01")),1)
+ T_19 <= T_655
+ skip
+ skip
+ wire T_711 : UInt<1>[54]
+ T_711[0] <= UInt<1>("h00")
+ T_711[1] <= UInt<1>("h00")
+ T_711[2] <= UInt<1>("h00")
+ T_711[3] <= UInt<1>("h00")
+ T_711[4] <= UInt<1>("h00")
+ T_711[5] <= UInt<1>("h00")
+ T_711[6] <= UInt<1>("h00")
+ T_711[7] <= UInt<1>("h00")
+ T_711[8] <= UInt<1>("h00")
+ T_711[9] <= UInt<1>("h00")
+ T_711[10] <= UInt<1>("h00")
+ T_711[11] <= UInt<1>("h00")
+ T_711[12] <= UInt<1>("h01")
+ T_711[13] <= UInt<1>("h00")
+ T_711[14] <= UInt<1>("h00")
+ T_711[15] <= UInt<1>("h01")
+ T_711[16] <= UInt<1>("h00")
+ T_711[17] <= UInt<1>("h00")
+ T_711[18] <= UInt<1>("h00")
+ T_711[19] <= UInt<1>("h00")
+ T_711[20] <= UInt<1>("h01")
+ T_711[21] <= UInt<1>("h00")
+ T_711[22] <= UInt<1>("h00")
+ T_711[23] <= UInt<1>("h00")
+ T_711[24] <= UInt<1>("h00")
+ T_711[25] <= UInt<1>("h00")
+ T_711[26] <= UInt<1>("h00")
+ T_711[27] <= UInt<1>("h00")
+ T_711[28] <= UInt<1>("h00")
+ T_711[29] <= UInt<1>("h00")
+ T_711[30] <= UInt<1>("h01")
+ T_711[31] <= UInt<1>("h00")
+ T_711[32] <= UInt<1>("h00")
+ T_711[33] <= UInt<1>("h00")
+ T_711[34] <= UInt<1>("h00")
+ T_711[35] <= UInt<1>("h00")
+ T_711[36] <= UInt<1>("h00")
+ T_711[37] <= UInt<1>("h00")
+ T_711[38] <= UInt<1>("h00")
+ T_711[39] <= UInt<1>("h00")
+ T_711[40] <= UInt<1>("h00")
+ T_711[41] <= UInt<1>("h00")
+ T_711[42] <= UInt<1>("h00")
+ T_711[43] <= UInt<1>("h00")
+ T_711[44] <= UInt<1>("h00")
+ T_711[45] <= UInt<1>("h00")
+ T_711[46] <= UInt<1>("h00")
+ T_711[47] <= UInt<1>("h00")
+ T_711[48] <= UInt<1>("h00")
+ T_711[49] <= UInt<1>("h00")
+ T_711[50] <= UInt<1>("h00")
+ T_711[51] <= UInt<1>("h00")
+ T_711[52] <= UInt<1>("h00")
+ T_711[53] <= UInt<1>("h00")
+ reg T_768 : UInt<6>, clk with :
+ reset => (reset, UInt<6>("h00"))
+ wire T_775 : UInt<29>[5]
+ T_775[0] <= UInt<4>("h09")
+ T_775[1] <= UInt<26>("h02f45883")
+ T_775[2] <= UInt<29>("h0107fb3ac")
+ T_775[3] <= UInt<28>("h0d5ff365")
+ T_775[4] <= UInt<1>("h00")
+ device_under_test.io.outs[0].ready <= T_711[T_23]
+ node T_783 = and(device_under_test.io.outs[0].ready, device_under_test.io.outs[0].valid)
+ when T_783 :
+ node T_786 = eq(reset, UInt<1>("h00"))
+ when T_786 :
+ printf(clk, UInt<1>(1), "output test event %d testing outs(0).bits.body = %d, should be %d
+", T_23, device_under_test.io.outs[0].bits.body, T_775[T_768])
+ skip
+ node T_788 = neq(device_under_test.io.outs[0].bits.body, T_775[T_768])
+ when T_788 :
+ node T_791 = eq(reset, UInt<1>("h00"))
+ when T_791 :
+ printf(clk, UInt<1>(1), "Error: event %d outs(0).bits.body was %d should be %d
+", T_23, device_under_test.io.outs[0].bits.body, T_775[T_768])
+ skip
+ node T_794 = eq(reset, UInt<1>("h00"))
+ when T_794 :
+ node T_796 = eq(UInt<1>("h00"), UInt<1>("h00"))
+ when T_796 :
+ node T_798 = eq(reset, UInt<1>("h00"))
+ when T_798 :
+ printf(clk, UInt<1>(1), "Assertion failed: (TODO: code / lineno)")
+ skip
+ stop(clk, UInt<1>(1), 1)
+ skip
+ skip
+ node T_800 = eq(reset, UInt<1>("h00"))
+ when T_800 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ node T_802 = eq(T_768, UInt<6>("h021"))
+ node T_804 = and(UInt<1>("h01"), T_802)
+ node T_807 = tail(add(T_768, UInt<1>("h01")),1)
+ node T_808 = mux(T_804, UInt<1>("h00"), T_807)
+ T_768 <= T_808
+ node T_810 = eq(T_25, UInt<1>("h00"))
+ when T_810 :
+ node T_812 = eq(T_23, UInt<6>("h021"))
+ when T_812 :
+ T_25 <= UInt<1>("h01")
+ skip
+ node T_815 = tail(add(T_23, UInt<1>("h01")),1)
+ T_23 <= T_815
+ skip
+ skip
+ wire T_871 : UInt<1>[54]
+ T_871[0] <= UInt<1>("h00")
+ T_871[1] <= UInt<1>("h00")
+ T_871[2] <= UInt<1>("h00")
+ T_871[3] <= UInt<1>("h00")
+ T_871[4] <= UInt<1>("h00")
+ T_871[5] <= UInt<1>("h00")
+ T_871[6] <= UInt<1>("h00")
+ T_871[7] <= UInt<1>("h00")
+ T_871[8] <= UInt<1>("h00")
+ T_871[9] <= UInt<1>("h00")
+ T_871[10] <= UInt<1>("h00")
+ T_871[11] <= UInt<1>("h01")
+ T_871[12] <= UInt<1>("h00")
+ T_871[13] <= UInt<1>("h00")
+ T_871[14] <= UInt<1>("h01")
+ T_871[15] <= UInt<1>("h00")
+ T_871[16] <= UInt<1>("h00")
+ T_871[17] <= UInt<1>("h00")
+ T_871[18] <= UInt<1>("h00")
+ T_871[19] <= UInt<1>("h00")
+ T_871[20] <= UInt<1>("h00")
+ T_871[21] <= UInt<1>("h00")
+ T_871[22] <= UInt<1>("h01")
+ T_871[23] <= UInt<1>("h00")
+ T_871[24] <= UInt<1>("h00")
+ T_871[25] <= UInt<1>("h00")
+ T_871[26] <= UInt<1>("h00")
+ T_871[27] <= UInt<1>("h01")
+ T_871[28] <= UInt<1>("h00")
+ T_871[29] <= UInt<1>("h01")
+ T_871[30] <= UInt<1>("h00")
+ T_871[31] <= UInt<1>("h00")
+ T_871[32] <= UInt<1>("h00")
+ T_871[33] <= UInt<1>("h00")
+ T_871[34] <= UInt<1>("h00")
+ T_871[35] <= UInt<1>("h00")
+ T_871[36] <= UInt<1>("h00")
+ T_871[37] <= UInt<1>("h00")
+ T_871[38] <= UInt<1>("h00")
+ T_871[39] <= UInt<1>("h00")
+ T_871[40] <= UInt<1>("h00")
+ T_871[41] <= UInt<1>("h00")
+ T_871[42] <= UInt<1>("h00")
+ T_871[43] <= UInt<1>("h00")
+ T_871[44] <= UInt<1>("h00")
+ T_871[45] <= UInt<1>("h00")
+ T_871[46] <= UInt<1>("h00")
+ T_871[47] <= UInt<1>("h00")
+ T_871[48] <= UInt<1>("h00")
+ T_871[49] <= UInt<1>("h00")
+ T_871[50] <= UInt<1>("h00")
+ T_871[51] <= UInt<1>("h00")
+ T_871[52] <= UInt<1>("h00")
+ T_871[53] <= UInt<1>("h00")
+ reg T_928 : UInt<6>, clk with :
+ reset => (reset, UInt<6>("h00"))
+ wire T_936 : UInt<31>[6]
+ T_936[0] <= UInt<3>("h06")
+ T_936[1] <= UInt<31>("h070890d84")
+ T_936[2] <= UInt<29>("h012c3d7cc")
+ T_936[3] <= UInt<25>("h012e47af")
+ T_936[4] <= UInt<31>("h0480ebc3d")
+ T_936[5] <= UInt<1>("h00")
+ device_under_test.io.outs[3].ready <= T_871[T_23]
+ node T_945 = and(device_under_test.io.outs[3].ready, device_under_test.io.outs[3].valid)
+ when T_945 :
+ node T_948 = eq(reset, UInt<1>("h00"))
+ when T_948 :
+ printf(clk, UInt<1>(1), "output test event %d testing outs(3).bits.body = %d, should be %d
+", T_23, device_under_test.io.outs[3].bits.body, T_936[T_928])
+ skip
+ node T_950 = neq(device_under_test.io.outs[3].bits.body, T_936[T_928])
+ when T_950 :
+ node T_953 = eq(reset, UInt<1>("h00"))
+ when T_953 :
+ printf(clk, UInt<1>(1), "Error: event %d outs(3).bits.body was %d should be %d
+", T_23, device_under_test.io.outs[3].bits.body, T_936[T_928])
+ skip
+ node T_956 = eq(reset, UInt<1>("h00"))
+ when T_956 :
+ node T_958 = eq(UInt<1>("h00"), UInt<1>("h00"))
+ when T_958 :
+ node T_960 = eq(reset, UInt<1>("h00"))
+ when T_960 :
+ printf(clk, UInt<1>(1), "Assertion failed: (TODO: code / lineno)")
+ skip
+ stop(clk, UInt<1>(1), 1)
+ skip
+ skip
+ node T_962 = eq(reset, UInt<1>("h00"))
+ when T_962 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ node T_964 = eq(T_928, UInt<6>("h021"))
+ node T_966 = and(UInt<1>("h01"), T_964)
+ node T_969 = tail(add(T_928, UInt<1>("h01")),1)
+ node T_970 = mux(T_966, UInt<1>("h00"), T_969)
+ T_928 <= T_970
+ node T_972 = eq(T_25, UInt<1>("h00"))
+ when T_972 :
+ node T_974 = eq(T_23, UInt<6>("h021"))
+ when T_974 :
+ T_25 <= UInt<1>("h01")
+ skip
+ node T_977 = tail(add(T_23, UInt<1>("h01")),1)
+ T_23 <= T_977
+ skip
+ skip
+ wire T_1033 : UInt<1>[54]
+ T_1033[0] <= UInt<1>("h00")
+ T_1033[1] <= UInt<1>("h00")
+ T_1033[2] <= UInt<1>("h00")
+ T_1033[3] <= UInt<1>("h00")
+ T_1033[4] <= UInt<1>("h00")
+ T_1033[5] <= UInt<1>("h00")
+ T_1033[6] <= UInt<1>("h00")
+ T_1033[7] <= UInt<1>("h00")
+ T_1033[8] <= UInt<1>("h00")
+ T_1033[9] <= UInt<1>("h01")
+ T_1033[10] <= UInt<1>("h00")
+ T_1033[11] <= UInt<1>("h00")
+ T_1033[12] <= UInt<1>("h00")
+ T_1033[13] <= UInt<1>("h00")
+ T_1033[14] <= UInt<1>("h00")
+ T_1033[15] <= UInt<1>("h00")
+ T_1033[16] <= UInt<1>("h00")
+ T_1033[17] <= UInt<1>("h00")
+ T_1033[18] <= UInt<1>("h01")
+ T_1033[19] <= UInt<1>("h00")
+ T_1033[20] <= UInt<1>("h00")
+ T_1033[21] <= UInt<1>("h00")
+ T_1033[22] <= UInt<1>("h00")
+ T_1033[23] <= UInt<1>("h01")
+ T_1033[24] <= UInt<1>("h01")
+ T_1033[25] <= UInt<1>("h01")
+ T_1033[26] <= UInt<1>("h00")
+ T_1033[27] <= UInt<1>("h00")
+ T_1033[28] <= UInt<1>("h00")
+ T_1033[29] <= UInt<1>("h00")
+ T_1033[30] <= UInt<1>("h00")
+ T_1033[31] <= UInt<1>("h00")
+ T_1033[32] <= UInt<1>("h00")
+ T_1033[33] <= UInt<1>("h01")
+ T_1033[34] <= UInt<1>("h00")
+ T_1033[35] <= UInt<1>("h00")
+ T_1033[36] <= UInt<1>("h00")
+ T_1033[37] <= UInt<1>("h00")
+ T_1033[38] <= UInt<1>("h00")
+ T_1033[39] <= UInt<1>("h00")
+ T_1033[40] <= UInt<1>("h00")
+ T_1033[41] <= UInt<1>("h00")
+ T_1033[42] <= UInt<1>("h00")
+ T_1033[43] <= UInt<1>("h00")
+ T_1033[44] <= UInt<1>("h00")
+ T_1033[45] <= UInt<1>("h00")
+ T_1033[46] <= UInt<1>("h00")
+ T_1033[47] <= UInt<1>("h00")
+ T_1033[48] <= UInt<1>("h00")
+ T_1033[49] <= UInt<1>("h00")
+ T_1033[50] <= UInt<1>("h00")
+ T_1033[51] <= UInt<1>("h00")
+ T_1033[52] <= UInt<1>("h00")
+ T_1033[53] <= UInt<1>("h00")
+ reg T_1090 : UInt<6>, clk with :
+ reset => (reset, UInt<6>("h00"))
+ wire T_1099 : UInt<31>[7]
+ T_1099[0] <= UInt<1>("h00")
+ T_1099[1] <= UInt<30>("h02331b107")
+ T_1099[2] <= UInt<31>("h05a432a9c")
+ T_1099[3] <= UInt<26>("h02f9778f")
+ T_1099[4] <= UInt<22>("h02d705a")
+ T_1099[5] <= UInt<30>("h024988736")
+ T_1099[6] <= UInt<1>("h00")
+ device_under_test.io.outs[1].ready <= T_1033[T_23]
+ node T_1109 = and(device_under_test.io.outs[1].ready, device_under_test.io.outs[1].valid)
+ when T_1109 :
+ node T_1112 = eq(reset, UInt<1>("h00"))
+ when T_1112 :
+ printf(clk, UInt<1>(1), "output test event %d testing outs(1).bits.body = %d, should be %d
+", T_23, device_under_test.io.outs[1].bits.body, T_1099[T_1090])
+ skip
+ node T_1114 = neq(device_under_test.io.outs[1].bits.body, T_1099[T_1090])
+ when T_1114 :
+ node T_1117 = eq(reset, UInt<1>("h00"))
+ when T_1117 :
+ printf(clk, UInt<1>(1), "Error: event %d outs(1).bits.body was %d should be %d
+", T_23, device_under_test.io.outs[1].bits.body, T_1099[T_1090])
+ skip
+ node T_1120 = eq(reset, UInt<1>("h00"))
+ when T_1120 :
+ node T_1122 = eq(UInt<1>("h00"), UInt<1>("h00"))
+ when T_1122 :
+ node T_1124 = eq(reset, UInt<1>("h00"))
+ when T_1124 :
+ printf(clk, UInt<1>(1), "Assertion failed: (TODO: code / lineno)")
+ skip
+ stop(clk, UInt<1>(1), 1)
+ skip
+ skip
+ node T_1126 = eq(reset, UInt<1>("h00"))
+ when T_1126 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ node T_1128 = eq(T_1090, UInt<6>("h021"))
+ node T_1130 = and(UInt<1>("h01"), T_1128)
+ node T_1133 = tail(add(T_1090, UInt<1>("h01")),1)
+ node T_1134 = mux(T_1130, UInt<1>("h00"), T_1133)
+ T_1090 <= T_1134
+ node T_1136 = eq(T_25, UInt<1>("h00"))
+ when T_1136 :
+ node T_1138 = eq(T_23, UInt<6>("h021"))
+ when T_1138 :
+ T_25 <= UInt<1>("h01")
+ skip
+ node T_1141 = tail(add(T_23, UInt<1>("h01")),1)
+ T_23 <= T_1141
+ skip
+ skip
+ wire T_1197 : UInt<1>[54]
+ T_1197[0] <= UInt<1>("h00")
+ T_1197[1] <= UInt<1>("h00")
+ T_1197[2] <= UInt<1>("h00")
+ T_1197[3] <= UInt<1>("h00")
+ T_1197[4] <= UInt<1>("h00")
+ T_1197[5] <= UInt<1>("h00")
+ T_1197[6] <= UInt<1>("h00")
+ T_1197[7] <= UInt<1>("h00")
+ T_1197[8] <= UInt<1>("h00")
+ T_1197[9] <= UInt<1>("h00")
+ T_1197[10] <= UInt<1>("h01")
+ T_1197[11] <= UInt<1>("h00")
+ T_1197[12] <= UInt<1>("h00")
+ T_1197[13] <= UInt<1>("h01")
+ T_1197[14] <= UInt<1>("h00")
+ T_1197[15] <= UInt<1>("h00")
+ T_1197[16] <= UInt<1>("h01")
+ T_1197[17] <= UInt<1>("h01")
+ T_1197[18] <= UInt<1>("h00")
+ T_1197[19] <= UInt<1>("h01")
+ T_1197[20] <= UInt<1>("h00")
+ T_1197[21] <= UInt<1>("h01")
+ T_1197[22] <= UInt<1>("h00")
+ T_1197[23] <= UInt<1>("h00")
+ T_1197[24] <= UInt<1>("h00")
+ T_1197[25] <= UInt<1>("h00")
+ T_1197[26] <= UInt<1>("h01")
+ T_1197[27] <= UInt<1>("h00")
+ T_1197[28] <= UInt<1>("h01")
+ T_1197[29] <= UInt<1>("h00")
+ T_1197[30] <= UInt<1>("h00")
+ T_1197[31] <= UInt<1>("h01")
+ T_1197[32] <= UInt<1>("h01")
+ T_1197[33] <= UInt<1>("h00")
+ T_1197[34] <= UInt<1>("h00")
+ T_1197[35] <= UInt<1>("h00")
+ T_1197[36] <= UInt<1>("h00")
+ T_1197[37] <= UInt<1>("h00")
+ T_1197[38] <= UInt<1>("h00")
+ T_1197[39] <= UInt<1>("h00")
+ T_1197[40] <= UInt<1>("h00")
+ T_1197[41] <= UInt<1>("h00")
+ T_1197[42] <= UInt<1>("h00")
+ T_1197[43] <= UInt<1>("h00")
+ T_1197[44] <= UInt<1>("h00")
+ T_1197[45] <= UInt<1>("h00")
+ T_1197[46] <= UInt<1>("h00")
+ T_1197[47] <= UInt<1>("h00")
+ T_1197[48] <= UInt<1>("h00")
+ T_1197[49] <= UInt<1>("h00")
+ T_1197[50] <= UInt<1>("h00")
+ T_1197[51] <= UInt<1>("h00")
+ T_1197[52] <= UInt<1>("h00")
+ T_1197[53] <= UInt<1>("h00")
+ reg T_1254 : UInt<6>, clk with :
+ reset => (reset, UInt<6>("h00"))
+ wire T_1267 : UInt<31>[11]
+ T_1267[0] <= UInt<2>("h03")
+ T_1267[1] <= UInt<31>("h07dcd07ac")
+ T_1267[2] <= UInt<31>("h0787ada79")
+ T_1267[3] <= UInt<29>("h016866878")
+ T_1267[4] <= UInt<30>("h0280e4938")
+ T_1267[5] <= UInt<30>("h02f19d47b")
+ T_1267[6] <= UInt<31>("h045fb9184")
+ T_1267[7] <= UInt<31>("h07b744e21")
+ T_1267[8] <= UInt<30>("h0205e7973")
+ T_1267[9] <= UInt<31>("h05004cbd2")
+ T_1267[10] <= UInt<1>("h00")
+ device_under_test.io.outs[2].ready <= T_1197[T_23]
+ node T_1281 = and(device_under_test.io.outs[2].ready, device_under_test.io.outs[2].valid)
+ when T_1281 :
+ node T_1284 = eq(reset, UInt<1>("h00"))
+ when T_1284 :
+ printf(clk, UInt<1>(1), "output test event %d testing outs(2).bits.body = %d, should be %d
+", T_23, device_under_test.io.outs[2].bits.body, T_1267[T_1254])
+ skip
+ node T_1286 = neq(device_under_test.io.outs[2].bits.body, T_1267[T_1254])
+ when T_1286 :
+ node T_1289 = eq(reset, UInt<1>("h00"))
+ when T_1289 :
+ printf(clk, UInt<1>(1), "Error: event %d outs(2).bits.body was %d should be %d
+", T_23, device_under_test.io.outs[2].bits.body, T_1267[T_1254])
+ skip
+ node T_1292 = eq(reset, UInt<1>("h00"))
+ when T_1292 :
+ node T_1294 = eq(UInt<1>("h00"), UInt<1>("h00"))
+ when T_1294 :
+ node T_1296 = eq(reset, UInt<1>("h00"))
+ when T_1296 :
+ printf(clk, UInt<1>(1), "Assertion failed: (TODO: code / lineno)")
+ skip
+ stop(clk, UInt<1>(1), 1)
+ skip
+ skip
+ node T_1298 = eq(reset, UInt<1>("h00"))
+ when T_1298 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ node T_1300 = eq(T_1254, UInt<6>("h021"))
+ node T_1302 = and(UInt<1>("h01"), T_1300)
+ node T_1305 = tail(add(T_1254, UInt<1>("h01")),1)
+ node T_1306 = mux(T_1302, UInt<1>("h00"), T_1305)
+ T_1254 <= T_1306
+ node T_1308 = eq(T_25, UInt<1>("h00"))
+ when T_1308 :
+ node T_1310 = eq(T_23, UInt<6>("h021"))
+ when T_1310 :
+ T_25 <= UInt<1>("h01")
+ skip
+ node T_1313 = tail(add(T_23, UInt<1>("h01")),1)
+ T_23 <= T_1313
+ skip
+ skip
+ wire T_1369 : UInt<1>[54]
+ T_1369[0] <= UInt<1>("h01")
+ T_1369[1] <= UInt<1>("h01")
+ T_1369[2] <= UInt<1>("h01")
+ T_1369[3] <= UInt<1>("h01")
+ T_1369[4] <= UInt<1>("h01")
+ T_1369[5] <= UInt<1>("h01")
+ T_1369[6] <= UInt<1>("h01")
+ T_1369[7] <= UInt<1>("h01")
+ T_1369[8] <= UInt<1>("h01")
+ T_1369[9] <= UInt<1>("h00")
+ T_1369[10] <= UInt<1>("h00")
+ T_1369[11] <= UInt<1>("h00")
+ T_1369[12] <= UInt<1>("h00")
+ T_1369[13] <= UInt<1>("h00")
+ T_1369[14] <= UInt<1>("h00")
+ T_1369[15] <= UInt<1>("h00")
+ T_1369[16] <= UInt<1>("h00")
+ T_1369[17] <= UInt<1>("h00")
+ T_1369[18] <= UInt<1>("h00")
+ T_1369[19] <= UInt<1>("h00")
+ T_1369[20] <= UInt<1>("h00")
+ T_1369[21] <= UInt<1>("h00")
+ T_1369[22] <= UInt<1>("h00")
+ T_1369[23] <= UInt<1>("h00")
+ T_1369[24] <= UInt<1>("h00")
+ T_1369[25] <= UInt<1>("h00")
+ T_1369[26] <= UInt<1>("h00")
+ T_1369[27] <= UInt<1>("h00")
+ T_1369[28] <= UInt<1>("h00")
+ T_1369[29] <= UInt<1>("h00")
+ T_1369[30] <= UInt<1>("h00")
+ T_1369[31] <= UInt<1>("h00")
+ T_1369[32] <= UInt<1>("h00")
+ T_1369[33] <= UInt<1>("h00")
+ T_1369[34] <= UInt<1>("h00")
+ T_1369[35] <= UInt<1>("h00")
+ T_1369[36] <= UInt<1>("h00")
+ T_1369[37] <= UInt<1>("h00")
+ T_1369[38] <= UInt<1>("h00")
+ T_1369[39] <= UInt<1>("h00")
+ T_1369[40] <= UInt<1>("h00")
+ T_1369[41] <= UInt<1>("h00")
+ T_1369[42] <= UInt<1>("h00")
+ T_1369[43] <= UInt<1>("h00")
+ T_1369[44] <= UInt<1>("h00")
+ T_1369[45] <= UInt<1>("h00")
+ T_1369[46] <= UInt<1>("h00")
+ T_1369[47] <= UInt<1>("h00")
+ T_1369[48] <= UInt<1>("h00")
+ T_1369[49] <= UInt<1>("h00")
+ T_1369[50] <= UInt<1>("h00")
+ T_1369[51] <= UInt<1>("h00")
+ T_1369[52] <= UInt<1>("h00")
+ T_1369[53] <= UInt<1>("h00")
+ reg T_1426 : UInt<6>, clk with :
+ reset => (reset, UInt<6>("h00"))
+ wire T_1438 : UInt<2>[10]
+ T_1438[0] <= UInt<1>("h00")
+ T_1438[1] <= UInt<1>("h01")
+ T_1438[2] <= UInt<2>("h02")
+ T_1438[3] <= UInt<2>("h03")
+ T_1438[4] <= UInt<1>("h00")
+ T_1438[5] <= UInt<1>("h00")
+ T_1438[6] <= UInt<2>("h03")
+ T_1438[7] <= UInt<2>("h02")
+ T_1438[8] <= UInt<1>("h01")
+ T_1438[9] <= UInt<1>("h00")
+ device_under_test.io.read_routing_table_response.ready <= T_1369[T_23]
+ node T_1451 = and(device_under_test.io.read_routing_table_response.ready, device_under_test.io.read_routing_table_response.valid)
+ when T_1451 :
+ node T_1454 = eq(reset, UInt<1>("h00"))
+ when T_1454 :
+ printf(clk, UInt<1>(1), "output test event %d testing read_routing_table_response.bits = %d, should be %d
+", T_23, device_under_test.io.read_routing_table_response.bits, T_1438[T_1426])
+ skip
+ node T_1456 = neq(device_under_test.io.read_routing_table_response.bits, T_1438[T_1426])
+ when T_1456 :
+ node T_1459 = eq(reset, UInt<1>("h00"))
+ when T_1459 :
+ printf(clk, UInt<1>(1), "Error: event %d read_routing_table_response.bits was %d should be %d
+", T_23, device_under_test.io.read_routing_table_response.bits, T_1438[T_1426])
+ skip
+ node T_1462 = eq(reset, UInt<1>("h00"))
+ when T_1462 :
+ node T_1464 = eq(UInt<1>("h00"), UInt<1>("h00"))
+ when T_1464 :
+ node T_1466 = eq(reset, UInt<1>("h00"))
+ when T_1466 :
+ printf(clk, UInt<1>(1), "Assertion failed: (TODO: code / lineno)")
+ skip
+ stop(clk, UInt<1>(1), 1)
+ skip
+ skip
+ node T_1468 = eq(reset, UInt<1>("h00"))
+ when T_1468 :
+ stop(clk, UInt<1>(1), 0)
+ skip
+ skip
+ node T_1470 = eq(T_1426, UInt<6>("h021"))
+ node T_1472 = and(UInt<1>("h01"), T_1470)
+ node T_1475 = tail(add(T_1426, UInt<1>("h01")),1)
+ node T_1476 = mux(T_1472, UInt<1>("h00"), T_1475)
+ T_1426 <= T_1476
+ node T_1478 = eq(T_25, UInt<1>("h00"))
+ when T_1478 :
+ node T_1480 = eq(T_23, UInt<6>("h021"))
+ when T_1480 :
+ T_25 <= UInt<1>("h01")
+ skip
+ node T_1483 = tail(add(T_23, UInt<1>("h01")),1)
+ T_23 <= T_1483
+ skip
+ skip
+ node T_1485 = eq(reset, UInt<1>("h00"))
+ when T_1485 :
+ printf(clk, UInt<1>(1), "in_event_counter %d, out_event_counter %d
+", T_19, T_23)
+ skip
+
+
+
diff --git a/test/passes/jacktest/Stack.fir b/test/passes/jacktest/Stack.fir
index 319e87d5..3eb9c67c 100644
--- a/test/passes/jacktest/Stack.fir
+++ b/test/passes/jacktest/Stack.fir
@@ -1,4 +1,4 @@
-; RUN: firrtl -i %s -o %s.v -X verilog -p c 2>&1 | tee %s.out | FileCheck %s
+; RUN: firrtl -i %s -o %s.v -X verilog -p cT 2>&1 | tee %s.out | FileCheck %s
;CHECK: Done!
circuit Stack :
module Stack :
@@ -11,25 +11,27 @@ circuit Stack :
input dataIn : UInt<32>
cmem stack_mem : UInt<32>[16]
- reg sp : UInt<5>,clk,reset,UInt<5>(0)
- reg out : UInt<32>,clk,reset,UInt<32>(0)
+ reg sp : UInt<5>,clk with :
+ reset => (reset,UInt<5>(0))
+ reg out : UInt<32>,clk with :
+ reset => (reset,UInt<32>(0))
when en :
node T_30 = lt(sp, UInt<5>(16))
node T_31 = and(push, T_30)
when T_31 :
write mport T_32 = stack_mem[sp],clk
T_32 <= dataIn
- node T_33 = addw(sp, UInt<1>(1))
+ node T_33 = tail(add(sp, UInt<1>(1)),1)
sp <= T_33
else :
node T_34 = gt(sp, UInt<1>(0))
node T_35 = and(pop, T_34)
when T_35 :
- node T_36 = subw(sp, UInt<1>(1))
+ node T_36 = tail(sub(sp, UInt<1>(1)),1)
sp <= T_36
node T_37 = gt(sp, UInt<1>(0))
when T_37 :
- node T_38 = subw(sp, UInt<1>(1))
+ node T_38 = tail(sub(sp, UInt<1>(1)),1)
read mport T_39 = stack_mem[T_38],clk
out <= T_39
dataOut <= out
diff --git a/test/passes/jacktest/VendingMachine.fir b/test/passes/jacktest/VendingMachine.fir
index 79cebbe1..d7822a17 100644
--- a/test/passes/jacktest/VendingMachine.fir
+++ b/test/passes/jacktest/VendingMachine.fir
@@ -8,7 +8,8 @@ circuit VendingMachine :
input clk : Clock
input reset : UInt<1>
- reg state : UInt<3>,clk,reset,UInt<3>(0)
+ reg state : UInt<3>,clk with :
+ reset => (reset,UInt<3>(0))
node T_22 = eq(state, UInt<3>(0))
when T_22 :
when nickel : state <= UInt<3>(1)
diff --git a/test/passes/jacktest/gcd.fir b/test/passes/jacktest/gcd.fir
index dd3443f1..31ca30b2 100644
--- a/test/passes/jacktest/gcd.fir
+++ b/test/passes/jacktest/gcd.fir
@@ -10,14 +10,16 @@ circuit GCD :
input a : UInt<16>
input b : UInt<16>
- reg x : UInt<16>,clk,reset,x
- reg y : UInt<16>,clk,reset,y
+ reg x : UInt<16>,clk with :
+ reset => (reset,x)
+ reg y : UInt<16>,clk with :
+ reset => (reset,y)
node T_17 = gt(x, y)
when T_17 :
- node T_18 = subw(x, y)
+ node T_18 = tail(sub(x, y),1)
x <= T_18
else :
- node T_19 = subw(y, x)
+ node T_19 = tail(sub(y, x),1)
y <= T_19
when e :
x <= a
diff --git a/test/passes/jacktest/risc.fir b/test/passes/jacktest/risc.fir
index 46f5a1c2..f722cf97 100644
--- a/test/passes/jacktest/risc.fir
+++ b/test/passes/jacktest/risc.fir
@@ -13,7 +13,8 @@ circuit Risc :
cmem file : UInt<32>[256]
cmem code : UInt<32>[256]
- reg pc : UInt<8>,clk,reset,UInt<8>(0)
+ reg pc : UInt<8>,clk with :
+ reset => (reset,UInt<8>(0))
read mport inst = code[pc],clk
node op = bits(inst, 31, 24)
node rci = bits(inst, 23, 16)
@@ -36,7 +37,7 @@ circuit Risc :
else :
node T_56 = eq(UInt<1>(0), op)
when T_56 :
- node T_57 = addw(ra, rb)
+ node T_57 = tail(add(ra, rb),1)
rc <= T_57
node T_58 = eq(UInt<1>(1), op)
when T_58 :
@@ -49,5 +50,5 @@ circuit Risc :
else :
write mport T_62 = file[rci],clk
T_62 <= rc
- node T_63 = addw(pc, UInt<1>(1))
+ node T_63 = tail(add(pc, UInt<1>(1)),1)
pc <= T_63