Skip to content

Commit e928c1d

Browse files
committed
mem_write and mem_read in test_coram_axi/avalon are useful to abstract away the dram_stub.
1 parent ba12ece commit e928c1d

12 files changed

Lines changed: 138 additions & 163 deletions

File tree

pycoram/template/test_coram_avalon.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -722,6 +722,37 @@ module test;
722722
$finish;
723723
end
724724

725+
//----------------------------------------------------------------------------
726+
// DRAM read/write task
727+
//----------------------------------------------------------------------------
728+
task mem_write;
729+
input [SIM_ADDR_WIDTH-1:0] addr;
730+
input [7:0] size;
731+
input [255:0] data;
732+
integer i;
733+
begin
734+
for(i=0; i<size; i=i+1) begin
735+
inst_dram_stub.memory[addr + i] = (data >> (8 * i)) & 8'hFF;
736+
end
737+
end
738+
endtask
739+
740+
task mem_read;
741+
input [SIM_ADDR_WIDTH-1:0] addr;
742+
input [7:0] size;
743+
output [255:0] data;
744+
integer i;
745+
begin
746+
data = 256'h0;
747+
for(i=0; i<size; i=i+1) begin
748+
data = data | ((inst_dram_stub.memory[addr + i] & 8'hFF) << (i * 8));
749+
end
750+
end
751+
endtask
752+
753+
//----------------------------------------------------------------------------
754+
// iochannel/ioregister read/write task
755+
//----------------------------------------------------------------------------
725756
{%- for thread in threads | sort(attribute='name') %}
726757
{% for iochannel in thread.iochannels | sort(attribute='name') %}
727758
task iochannel_write_{{ thread.name }}_{{ iochannel.name }};

pycoram/template/test_coram_axi.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1389,6 +1389,37 @@ module test;
13891389
$finish;
13901390
end
13911391

1392+
//----------------------------------------------------------------------------
1393+
// DRAM read/write task
1394+
//----------------------------------------------------------------------------
1395+
task mem_write;
1396+
input [SIM_ADDR_WIDTH-1:0] addr;
1397+
input [7:0] size;
1398+
input [255:0] data;
1399+
integer i;
1400+
begin
1401+
for(i=0; i<size; i=i+1) begin
1402+
inst_dram_stub.memory[addr + i] = (data >> (8 * i)) & 8'hFF;
1403+
end
1404+
end
1405+
endtask
1406+
1407+
task mem_read;
1408+
input [SIM_ADDR_WIDTH-1:0] addr;
1409+
input [7:0] size;
1410+
output [255:0] data;
1411+
integer i;
1412+
begin
1413+
data = 256'h0;
1414+
for(i=0; i<size; i=i+1) begin
1415+
data = data | ((inst_dram_stub.memory[addr + i] & 8'hFF) << (i * 8));
1416+
end
1417+
end
1418+
endtask
1419+
1420+
//----------------------------------------------------------------------------
1421+
// iochannel/ioregister read/write task
1422+
//----------------------------------------------------------------------------
13921423
{%- for thread in threads | sort(attribute='name') %}
13931424
{% for iochannel in thread.iochannels | sort(attribute='name') %}
13941425
task iochannel_write_{{ thread.name }}_{{ iochannel.name }};

sample/app/matrix-mult/matrix-mult-memory/testbench.v

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,18 @@ parameter data_offset = 256 * 1024;
88
parameter loader_size = 64 * 1024;
99

1010
integer x, y, d;
11+
12+
reg [31:0] tmp_data;
13+
1114
initial begin
1215
d = 0;
1316
for(y=0; y<matrix_size; y=y+1) begin
1417
for(x=0; x<matrix_size; x=x+1) begin
15-
{inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 3],
16-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 2],
17-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 1],
18-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 0]} =
19-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
20-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
23-
{inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 3],
24-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 2],
25-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 1],
26-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 0]} =
27-
{inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 3],
28-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 2],
29-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 1],
30-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 0]};
31-
{inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 3],
32-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 2],
33-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 1],
34-
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);
3523
d = d + 2;
3624
end
3725
end

sample/app/matrix-mult/matrix-mult-separate/testbench.v

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
parameter matrix_size = 208;
1+
//parameter matrix_size = 208;
2+
parameter matrix_size = 16 * 4;
23
parameter a_offset = 1 * 1024 * 1024;
34
parameter b_offset = 2 * 1024 * 1024;
45
parameter c_offset = 3 * 1024 * 1024;
@@ -7,30 +8,18 @@ parameter data_offset = 256 * 1024;
78
parameter loader_size = 64 * 1024;
89

910
integer x, y, d;
11+
12+
reg [31:0] tmp_data;
13+
1014
initial 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

sample/app/matrix-mult/matrix-mult-stream-light/testbench.v

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,18 @@ parameter data_offset = 256 * 1024;
88
parameter loader_size = 64 * 1024;
99

1010
integer x, y, d;
11+
12+
reg [31:0] tmp_data;
13+
1114
initial begin
1215
d = 0;
1316
for(y=0; y<matrix_size; y=y+1) begin
1417
for(x=0; x<matrix_size; x=x+1) begin
15-
{inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 3],
16-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 2],
17-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 1],
18-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 0]} =
19-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
20-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
23-
{inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 3],
24-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 2],
25-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 1],
26-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 0]} =
27-
{inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 3],
28-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 2],
29-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 1],
30-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 0]};
31-
{inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 3],
32-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 2],
33-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 1],
34-
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);
3523
d = d + 2;
3624
end
3725
end

sample/app/matrix-mult/matrix-mult-stream/testbench.v

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,18 @@ parameter data_offset = 256 * 1024;
88
parameter loader_size = 64 * 1024;
99

1010
integer x, y, d;
11+
12+
reg [31:0] tmp_data;
13+
1114
initial begin
1215
d = 0;
1316
for(y=0; y<matrix_size; y=y+1) begin
1417
for(x=0; x<matrix_size; x=x+1) begin
15-
{inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 3],
16-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 2],
17-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 1],
18-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 0]} =
19-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
20-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
23-
{inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 3],
24-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 2],
25-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 1],
26-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 0]} =
27-
{inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 3],
28-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 2],
29-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 1],
30-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 0]};
31-
{inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 3],
32-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 2],
33-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 1],
34-
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);
3523
d = d + 2;
3624
end
3725
end

sample/app/matrix-mult/matrix-mult/testbench.v

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,18 @@ parameter data_offset = 256 * 1024;
88
parameter loader_size = 64 * 1024;
99

1010
integer x, y, d;
11+
12+
reg [31:0] tmp_data;
13+
1114
initial begin
1215
d = 0;
1316
for(y=0; y<matrix_size; y=y+1) begin
1417
for(x=0; x<matrix_size; x=x+1) begin
15-
{inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 3],
16-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 2],
17-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 1],
18-
inst_dram_stub.memory[a_offset + (matrix_size * y + x) * 4 + 0]} =
19-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
20-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
23-
{inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 3],
24-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 2],
25-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 1],
26-
inst_dram_stub.memory[b_offset + (matrix_size * x + y) * 4 + 0]} =
27-
{inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 3],
28-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 2],
29-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 1],
30-
inst_dram_stub.memory[data_offset + ((d + 1) % loader_size) * 4 + 0]};
31-
{inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 3],
32-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 2],
33-
inst_dram_stub.memory[c_offset + (matrix_size * y + x) * 4 + 1],
34-
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);
3523
d = d + 2;
3624
end
3725
end

sample/app/stencil-9p/stencil-9p-memory-base/testbench.v

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,16 @@ parameter data_offset = 256 * 1024;
99
parameter loader_size = 64 * 1024;
1010

1111
integer x, y, d;
12+
13+
reg [31:0] tmp_data;
14+
1215
initial begin
1316
d = 0;
1417
for(y=0; y<mesh_size; y=y+1) begin
1518
for(x=0; x<mesh_size; x=x+1) begin
16-
{inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 3],
17-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 2],
18-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 1],
19-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 0]} =
20-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
23-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
24-
{inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 3],
25-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 2],
26-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 1],
27-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 0]} = 0;
19+
mem_read(data_offset + (d % loader_size) * 4, 4, tmp_data);
20+
mem_write(a_offset + (mesh_size * y + x) * 4, 4, tmp_data);
21+
mem_write(b_offset + (mesh_size * y + x) * 4, 4, 0);
2822
d = d + 1;
2923
end
3024
end

sample/app/stencil-9p/stencil-9p-memory/testbench.v

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,16 @@ parameter data_offset = 256 * 1024;
99
parameter loader_size = 64 * 1024;
1010

1111
integer x, y, d;
12+
13+
reg [31:0] tmp_data;
14+
1215
initial begin
1316
d = 0;
1417
for(y=0; y<mesh_size; y=y+1) begin
1518
for(x=0; x<mesh_size; x=x+1) begin
16-
{inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 3],
17-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 2],
18-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 1],
19-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 0]} =
20-
{inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 3],
21-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 2],
22-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 1],
23-
inst_dram_stub.memory[data_offset + (d % loader_size) * 4 + 0]};
24-
{inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 3],
25-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 2],
26-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 1],
27-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 0]} = 0;
19+
mem_read(data_offset + (d % loader_size) * 4, 4, tmp_data);
20+
mem_write(a_offset + (mesh_size * y + x) * 4, 4, tmp_data);
21+
mem_write(b_offset + (mesh_size * y + x) * 4, 4, 0);
2822
d = d + 1;
2923
end
3024
end

sample/app/stencil-9p/stencil-9p-separate/testbench.v

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,24 @@
1-
parameter mesh_size = 96;
2-
parameter iter_num = 200;
1+
//parameter mesh_size = 96;
2+
//parameter iter_num = 200;
3+
parameter mesh_size = 32 * 2;
4+
parameter iter_num = 2 * 2;
35
parameter a_offset = 1 * 1024 * 1024;
46
parameter b_offset = 2 * 1024 * 1024;
57

68
parameter data_offset = 256 * 1024;
79
parameter loader_size = 64 * 1024;
810

911
integer x, y, d;
12+
13+
reg [31:0] tmp_data;
14+
1015
initial begin
1116
d = 0;
1217
for(y=0; y<mesh_size; y=y+1) begin
1318
for(x=0; x<mesh_size; x=x+1) begin
14-
{inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 3],
15-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 2],
16-
inst_dram_stub.memory[a_offset + (mesh_size * y + x) * 4 + 1],
17-
inst_dram_stub.memory[a_offset + (mesh_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 + (mesh_size * y + x) * 4 + 3],
23-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 2],
24-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 1],
25-
inst_dram_stub.memory[b_offset + (mesh_size * y + x) * 4 + 0]} = 0;
19+
mem_read(data_offset + (d % loader_size) * 4, 4, tmp_data);
20+
mem_write(a_offset + (mesh_size * y + x) * 4, 4, tmp_data);
21+
mem_write(b_offset + (mesh_size * y + x) * 4, 4, 0);
2622
d = d + 1;
2723
end
2824
end

0 commit comments

Comments
 (0)