Skip to content

Commit ea68e41

Browse files
committed
refactor: Update MaxPool module to handle additional input channels
1 parent a8dfd93 commit ea68e41

File tree

1 file changed

+78
-3
lines changed

1 file changed

+78
-3
lines changed

code/TM.v

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ RAM RAM_temp(
2323
///////////////////////////////////////
2424

2525

26-
//////////Conv////////////////
26+
///////////////Conv////////////////
2727
wire [15:0] dout;
2828
reg in_st;
2929
wire out_st;
@@ -38,6 +38,25 @@ Conv moduleConv(
3838
/////////////////////////////
3939

4040

41+
///////////////MaxPool////////////////
42+
wire [15:0] maxpool_dout;
43+
reg[15:0] maxpool_din1, maxpool_din2, maxpool_din3, maxpool_din4, maxpool_din5, maxpool_din6, maxpool_din7, maxpool_din8, maxpool_din9;
44+
reg[15:0] maxpool_output[3:0]; // 2x2 matrix
45+
MaxPool moduleMaxPool(
46+
.din1(maxpool_din1),
47+
.din2(maxpool_din2),
48+
.din3(maxpool_din3),
49+
.din4(maxpool_din4),
50+
.din5(maxpool_din5),
51+
.din6(maxpool_din6),
52+
.din7(maxpool_din7),
53+
.din8(maxpool_din8),
54+
.din9(maxpool_din9),
55+
.dout(maxpool_dout)
56+
);
57+
///////////////////////////////////////
58+
59+
4160
reg [6:0] write_ram_counter;
4261
reg [15:0] conv_result[0:35];
4362
reg [5:0] output_counter ;
@@ -193,10 +212,66 @@ initial begin
193212
#(CLK_PERIOD) address <= 6'b111101;
194213
#(CLK_PERIOD) address <= 6'b111110;
195214
#(CLK_PERIOD) address <= 6'b111111;
196-
197215

198216

199-
#(CLK_PERIOD*300) $display("finished");
217+
#(CLK_PERIOD*200) $display("Conv is done");
218+
219+
maxpool_din1 <= conv_result[0];
220+
maxpool_din2 <= conv_result[1];
221+
maxpool_din3 <= conv_result[2];
222+
maxpool_din4 <= conv_result[6];
223+
maxpool_din5 <= conv_result[7];
224+
maxpool_din6 <= conv_result[8];
225+
maxpool_din7 <= conv_result[12];
226+
maxpool_din8 <= conv_result[13];
227+
maxpool_din9 <= conv_result[14];
228+
229+
230+
#(CLK_PERIOD) maxpool_output[0] <= maxpool_dout;
231+
232+
maxpool_din1 <= conv_result[3];
233+
maxpool_din2 <= conv_result[4];
234+
maxpool_din3 <= conv_result[5];
235+
maxpool_din4 <= conv_result[9];
236+
maxpool_din5 <= conv_result[10];
237+
maxpool_din6 <= conv_result[11];
238+
maxpool_din7 <= conv_result[15];
239+
maxpool_din8 <= conv_result[16];
240+
maxpool_din9 <= conv_result[17];
241+
242+
#(CLK_PERIOD) maxpool_output[1] <= maxpool_dout;
243+
244+
maxpool_din1 <= conv_result[18];
245+
maxpool_din2 <= conv_result[19];
246+
maxpool_din3 <= conv_result[20];
247+
maxpool_din4 <= conv_result[24];
248+
maxpool_din5 <= conv_result[25];
249+
maxpool_din6 <= conv_result[26];
250+
maxpool_din7 <= conv_result[30];
251+
maxpool_din8 <= conv_result[31];
252+
maxpool_din9 <= conv_result[32];
253+
254+
#(CLK_PERIOD) maxpool_output[2] <= maxpool_dout;
255+
256+
maxpool_din1 <= conv_result[21];
257+
maxpool_din2 <= conv_result[22];
258+
maxpool_din3 <= conv_result[23];
259+
maxpool_din4 <= conv_result[27];
260+
maxpool_din5 <= conv_result[28];
261+
maxpool_din6 <= conv_result[29];
262+
maxpool_din7 <= conv_result[33];
263+
maxpool_din8 <= conv_result[34];
264+
maxpool_din9 <= conv_result[35];
265+
266+
#(CLK_PERIOD) maxpool_output[3] <= maxpool_dout;
267+
268+
269+
#(CLK_PERIOD)
270+
$display("MaxPool Result:");
271+
$display(" %b %b", maxpool_output[0], maxpool_output[1]);
272+
$display(" %b %b", maxpool_output[2], maxpool_output[3]);
273+
274+
#(CLK_PERIOD) $display("MaxPool is done");
200275
$stop;
201276
end
202277

0 commit comments

Comments
 (0)