1- parameter matrix_size = 208 ;
1+ // parameter matrix_size = 208;
2+ parameter matrix_size = 16 * 4 ;
23parameter a_offset = 1 * 1024 * 1024 ;
34parameter b_offset = 2 * 1024 * 1024 ;
45parameter c_offset = 3 * 1024 * 1024 ;
@@ -7,30 +8,18 @@ parameter data_offset = 256 * 1024;
78parameter loader_size = 64 * 1024 ;
89
910integer x , y, d;
11+
12+ reg [31 :0 ] tmp_data;
13+
1014initial begin
1115 d = 0 ;
1216 for (y= 0 ; y< matrix_size; y= y+ 1 ) begin
1317 for (x = 0 ; x < matrix_size; x = x + 1 ) begin
14- {inst_dram_stub.memory[a_offset + (matrix_size * y + x ) * 4 + 3 ],
15- inst_dram_stub.memory[a_offset + (matrix_size * y + x ) * 4 + 2 ],
16- inst_dram_stub.memory[a_offset + (matrix_size * y + x ) * 4 + 1 ],
17- inst_dram_stub.memory[a_offset + (matrix_size * y + x ) * 4 + 0 ]} =
18- {inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3 ],
19- inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2 ],
20- inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1 ],
21- inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0 ]};
22- {inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 3 ],
23- inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 2 ],
24- inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 1 ],
25- inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 0 ]} =
26- {inst_dram_stub.memory[data_offset + ((d + 1 ) % loader_size) * 4 + 3 ],
27- inst_dram_stub.memory[data_offset + ((d + 1 ) % loader_size) * 4 + 2 ],
28- inst_dram_stub.memory[data_offset + ((d + 1 ) % loader_size) * 4 + 1 ],
29- inst_dram_stub.memory[data_offset + ((d + 1 ) % loader_size) * 4 + 0 ]};
30- {inst_dram_stub.memory[c_offset + (matrix_size * y + x ) * 4 + 3 ],
31- inst_dram_stub.memory[c_offset + (matrix_size * y + x ) * 4 + 2 ],
32- inst_dram_stub.memory[c_offset + (matrix_size * y + x ) * 4 + 1 ],
33- inst_dram_stub.memory[c_offset + (matrix_size * y + x ) * 4 + 0 ]} = 0 ;
18+ mem_read(data_offset + (d % loader_size) * 4 , 4 , tmp_data);
19+ mem_write(a_offset + (matrix_size * y + x ) * 4 , 4 , tmp_data);
20+ mem_read(data_offset + ((d + 1 ) % loader_size) * 4 , 4 , tmp_data);
21+ mem_write(b_offset + (matrix_size * x + y) * 4 , 4 , tmp_data);
22+ mem_write(c_offset + (matrix_size * x + y) * 4 , 4 , 0 );
3423 d = d + 2 ;
3524 end
3625 end
0 commit comments