summaryrefslogtreecommitdiffstats
path: root/data/accumulator1.v
diff options
context:
space:
mode:
Diffstat (limited to 'data/accumulator1.v')
-rw-r--r--data/accumulator1.v32
1 files changed, 32 insertions, 0 deletions
diff --git a/data/accumulator1.v b/data/accumulator1.v
new file mode 100644
index 0000000..5e9637a
--- /dev/null
+++ b/data/accumulator1.v
@@ -0,0 +1,32 @@
+module main(reset, clk, finish, return_val);
+ reg [31:0] stack [2:0];
+ input [0:0] clk, reset;
+ output reg [31:0] return_val;
+ output reg [0:0] finish;
+ reg [31:0] reg_8, reg_4, state,
+ reg_6, reg_1, reg_9,
+ reg_5, reg_3, reg_7;
+ always @(posedge clk)
+ case (state)
+ 32'd16: reg_9 <= 32'd1;
+ 32'd15: stack[32'd0] <= reg_9;
+ 32'd14: reg_8 <= 32'd2;
+ 32'd13: stack[32'd1] <= reg_8;
+ 32'd12: reg_7 <= 32'd3;
+ 32'd11: stack[32'd2] <= reg_7;
+ 32'd10: reg_3 <= 32'd0;
+ 32'd9: ;
+ 32'd8: reg_1 <= 32'd0;
+ 32'd7: reg_6 <= 32'd0;
+ 32'd6: reg_5 <= stack[{{{reg_6 + 32'd0}
+ + {reg_1 * 32'd4}} / 32'd4}];
+ 32'd5: reg_3 <= {reg_3 + {reg_5 + 32'd0}};
+ 32'd4: reg_1 <= {reg_1 + 32'd1};
+ 32'd3: ;
+ 32'd2: reg_4 <= reg_3;
+ 32'd1: begin
+ finish = 1'd1;
+ return_val = reg_4;
+ end
+ default:;
+ endcase