@@ -24,6 +24,26 @@ module Element(
2424 output io_lsbOuts_6,
2525 output io_lsbOuts_7
2626);
27+ wire [31 :0 ] io_outs_left_mult_a;
28+ wire [31 :0 ] io_outs_left_mult_b;
29+ wire [31 :0 ] io_outs_left_mult_o;
30+ wire io_outs_left_mult_rst;
31+ wire io_outs_left_mult_clk;
32+ wire [31 :0 ] io_outs_up_mult_a;
33+ wire [31 :0 ] io_outs_up_mult_b;
34+ wire [31 :0 ] io_outs_up_mult_o;
35+ wire io_outs_up_mult_rst;
36+ wire io_outs_up_mult_clk;
37+ wire [31 :0 ] io_outs_right_mult_a;
38+ wire [31 :0 ] io_outs_right_mult_b;
39+ wire [31 :0 ] io_outs_right_mult_o;
40+ wire io_outs_right_mult_rst;
41+ wire io_outs_right_mult_clk;
42+ wire [31 :0 ] io_outs_down_mult_a;
43+ wire [31 :0 ] io_outs_down_mult_b;
44+ wire [31 :0 ] io_outs_down_mult_o;
45+ wire io_outs_down_mult_rst;
46+ wire io_outs_down_mult_clk;
2747 reg [63 :0 ] REG;
2848 reg [63 :0 ] REG_1;
2949 reg [63 :0 ] REG_2;
@@ -32,15 +52,43 @@ module Element(
3252 reg [63 :0 ] REG_5;
3353 reg [63 :0 ] REG_6;
3454 reg [63 :0 ] REG_7;
35- reg [63 :0 ] io_outs_left_REG;
36- reg [63 :0 ] io_outs_up_REG;
37- reg [63 :0 ] io_outs_right_REG;
38- reg [63 :0 ] io_outs_down_REG;
55+ reg [31 :0 ] io_outs_left_REG;
56+ reg [31 :0 ] io_outs_up_REG;
57+ reg [31 :0 ] io_outs_right_REG;
58+ reg [31 :0 ] io_outs_down_REG;
3959 reg REG_8;
40- assign io_outs_down = io_outs_down_REG;
41- assign io_outs_right = io_outs_right_REG;
42- assign io_outs_up = io_outs_up_REG;
43- assign io_outs_left = io_outs_left_REG;
60+ multiplier io_outs_left_mult (
61+ .a(io_outs_left_mult_a),
62+ .b(io_outs_left_mult_b),
63+ .o(io_outs_left_mult_o),
64+ .rst(io_outs_left_mult_rst),
65+ .clk(io_outs_left_mult_clk)
66+ );
67+ multiplier io_outs_up_mult (
68+ .a(io_outs_up_mult_a),
69+ .b(io_outs_up_mult_b),
70+ .o(io_outs_up_mult_o),
71+ .rst(io_outs_up_mult_rst),
72+ .clk(io_outs_up_mult_clk)
73+ );
74+ multiplier io_outs_right_mult (
75+ .a(io_outs_right_mult_a),
76+ .b(io_outs_right_mult_b),
77+ .o(io_outs_right_mult_o),
78+ .rst(io_outs_right_mult_rst),
79+ .clk(io_outs_right_mult_clk)
80+ );
81+ multiplier io_outs_down_mult (
82+ .a(io_outs_down_mult_a),
83+ .b(io_outs_down_mult_b),
84+ .o(io_outs_down_mult_o),
85+ .rst(io_outs_down_mult_rst),
86+ .clk(io_outs_down_mult_clk)
87+ );
88+ assign io_outs_down = {{32'd0 }, io_outs_down_REG};
89+ assign io_outs_right = {{32'd0 }, io_outs_right_REG};
90+ assign io_outs_up = {{32'd0 }, io_outs_up_REG};
91+ assign io_outs_left = {{32'd0 }, io_outs_left_REG};
4492 assign io_lsbOuts_0 = io_lsbIns_1;
4593 assign io_lsbOuts_1 = io_lsbIns_2;
4694 assign io_lsbOuts_2 = io_lsbIns_3;
@@ -49,6 +97,22 @@ module Element(
4997 assign io_lsbOuts_5 = io_lsbIns_6;
5098 assign io_lsbOuts_6 = io_lsbIns_7;
5199 assign io_lsbOuts_7 = io_outs_left[0 ];
100+ assign io_outs_left_mult_a = REG[31 :0 ];
101+ assign io_outs_left_mult_b = REG_1[31 :0 ];
102+ assign io_outs_left_mult_rst = 1'h0 ;
103+ assign io_outs_left_mult_clk = clock;
104+ assign io_outs_up_mult_a = REG_2[31 :0 ];
105+ assign io_outs_up_mult_b = REG_3[31 :0 ];
106+ assign io_outs_up_mult_rst = 1'h0 ;
107+ assign io_outs_up_mult_clk = clock;
108+ assign io_outs_right_mult_a = REG_4[31 :0 ];
109+ assign io_outs_right_mult_b = REG_5[31 :0 ];
110+ assign io_outs_right_mult_rst = 1'h0 ;
111+ assign io_outs_right_mult_clk = clock;
112+ assign io_outs_down_mult_a = REG_6[31 :0 ];
113+ assign io_outs_down_mult_b = REG_7[31 :0 ];
114+ assign io_outs_down_mult_rst = 1'h0 ;
115+ assign io_outs_down_mult_clk = clock;
52116 always @(posedge clock) begin
53117 REG <= io_ins_down;
54118 REG_1 <= io_ins_left;
@@ -58,10 +122,10 @@ module Element(
58122 REG_5 <= io_ins_right;
59123 REG_6 <= io_ins_left;
60124 REG_7 <= io_ins_up;
61- io_outs_left_REG <= REG ^ REG_1 ;
62- io_outs_up_REG <= REG_2 ^ REG_3 ;
63- io_outs_right_REG <= REG_4 ^ REG_5 ;
64- io_outs_down_REG <= REG_6 ^ REG_7 ;
125+ io_outs_left_REG <= io_outs_left_mult_o ;
126+ io_outs_up_REG <= io_outs_up_mult_o ;
127+ io_outs_right_REG <= io_outs_right_mult_o ;
128+ io_outs_down_REG <= io_outs_down_mult_o ;
65129 REG_8 <= io_lsbIns_4;
66130 end
67131endmodule
0 commit comments