Skip to content

Commit ed8699b

Browse files
committed
Merge branch 'feature_optimize_axim' into develop
2 parents 7f9fe9c + 469c991 commit ed8699b

File tree

8 files changed

+100
-125
lines changed

8 files changed

+100
-125
lines changed

tests/extension/thread_/multibank_nested_ram_dma_block/thread_multibank_nested_ram_dma_block.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ def mkLed(memory_datawidth=128):
3434
array_len = 128
3535
array_size = (array_len + array_len) * 4 * numbanks
3636

37+
laddr_offset = 32
38+
3739
def blink(size):
3840
all_ok.value = True
3941

@@ -53,7 +55,7 @@ def blink(size):
5355
def body(size, offset):
5456
# write
5557
count = 0
56-
blk_offset = 0
58+
blk_offset = laddr_offset
5759
bias = 0
5860
done = False
5961
while count < size:
@@ -70,14 +72,14 @@ def body(size, offset):
7072
bias += block_size
7173
blk_offset += block_size
7274

73-
laddr = 0
75+
laddr = laddr_offset
7476
gaddr = offset
7577
myaxi.dma_write_block(myram, laddr, gaddr, size, block_size)
7678
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
7779

7880
# write
7981
count = 0
80-
blk_offset = 0
82+
blk_offset = laddr_offset
8183
bias = 0
8284
done = False
8385
while count < size:
@@ -94,19 +96,19 @@ def body(size, offset):
9496
bias += block_size
9597
blk_offset += block_size
9698

97-
laddr = 0
99+
laddr = laddr_offset
98100
gaddr = array_size + offset
99101
myaxi.dma_write_block(myram, laddr, gaddr, size, block_size)
100102
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
101103

102104
# read
103-
laddr = 0
105+
laddr = laddr_offset
104106
gaddr = offset
105107
myaxi.dma_read_block(myram, laddr, gaddr, size, block_size)
106108
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
107109

108110
count = 0
109-
blk_offset = 0
111+
blk_offset = laddr_offset
110112
bias = 0
111113
done = False
112114
while count < size:
@@ -127,13 +129,13 @@ def body(size, offset):
127129
blk_offset += block_size
128130

129131
# read
130-
laddr = 0
132+
laddr = laddr_offset
131133
gaddr = array_size + offset
132134
myaxi.dma_read_block(myram, laddr, gaddr, size, block_size)
133135
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
134136

135137
count = 0
136-
blk_offset = 0
138+
blk_offset = laddr_offset
137139
bias = 0
138140
done = False
139141
while count < size:

tests/extension/thread_/multibank_ram_dma_block/thread_multibank_ram_dma_block.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ def mkLed(memory_datawidth=32):
3535
array_len = 32
3636
array_size = (array_len + array_len) * 4 * numbanks
3737

38+
laddr_offset = 32
39+
3840
def blink(size):
3941
all_ok.value = True
4042

@@ -54,7 +56,7 @@ def blink(size):
5456
def body(size, offset):
5557
# write
5658
count = 0
57-
blk_offset = 0
59+
blk_offset = laddr_offset
5860
bias = 0
5961
done = False
6062
while count < size:
@@ -71,14 +73,14 @@ def body(size, offset):
7173
bias += block_size
7274
blk_offset += block_size
7375

74-
laddr = 0
76+
laddr = laddr_offset
7577
gaddr = offset
7678
myaxi.dma_write_block(myram0, laddr, gaddr, size, block_size)
7779
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
7880

7981
# write
8082
count = 0
81-
blk_offset = 0
83+
blk_offset = laddr_offset
8284
bias = 0
8385
done = False
8486
while count < size:
@@ -95,19 +97,19 @@ def body(size, offset):
9597
bias += block_size
9698
blk_offset += block_size
9799

98-
laddr = 0
100+
laddr = laddr_offset
99101
gaddr = array_size + offset
100102
myaxi.dma_write_block(myram1, laddr, gaddr, size, block_size)
101103
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
102104

103105
# read
104-
laddr = 0
106+
laddr = laddr_offset
105107
gaddr = offset
106108
myaxi.dma_read_block(myram1, laddr, gaddr, size, block_size)
107109
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
108110

109111
count = 0
110-
blk_offset = 0
112+
blk_offset = laddr_offset
111113
bias = 0
112114
done = False
113115
while count < size:
@@ -128,13 +130,13 @@ def body(size, offset):
128130
blk_offset += block_size
129131

130132
# read
131-
laddr = 0
133+
laddr = laddr_offset
132134
gaddr = array_size + offset
133135
myaxi.dma_read_block(myram0, laddr, gaddr, size, block_size)
134136
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
135137

136138
count = 0
137-
blk_offset = 0
139+
blk_offset = laddr_offset
138140
bias = 0
139141
done = False
140142
while count < size:

tests/extension/thread_/multibank_ram_dma_packed/thread_multibank_ram_dma_packed.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ def mkLed(memory_datawidth=128):
3434
array_len = 16
3535
array_size = (array_len + array_len) * 4 * numbanks
3636

37+
laddr_offset = 32
38+
3739
def blink(size):
3840
all_ok.value = True
3941

@@ -53,50 +55,54 @@ def blink(size):
5355

5456
def body(size, offset):
5557
# write
58+
ram_offset = laddr_offset // numbanks
5659
for bank in range(numbanks):
5760
for i in range(size):
5861
wdata.value = i + 0x1000 + (bank << 16)
59-
myram0.write_bank(bank, i, wdata)
62+
myram0.write_bank(bank, ram_offset + i, wdata)
6063

61-
laddr = 0
64+
laddr = laddr_offset
6265
gaddr = offset
6366
myaxi.dma_write_packed(myram0, laddr, gaddr, size * numbanks)
6467
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
6568

6669
# write
70+
ram_offset = laddr_offset // numbanks
6771
for bank in range(numbanks):
6872
for i in range(size):
6973
wdata.value = i + 0x4000 + (bank << 16)
70-
myram1.write_bank(bank, i, wdata)
74+
myram1.write_bank(bank, ram_offset + i, wdata)
7175

72-
laddr = 0
76+
laddr = laddr_offset
7377
gaddr = array_size + offset
7478
myaxi.dma_write_packed(myram1, laddr, gaddr, size * numbanks)
7579
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
7680

7781
# read
78-
laddr = 0
82+
laddr = laddr_offset
7983
gaddr = offset
8084
myaxi.dma_read_packed(myram1, laddr, gaddr, size * numbanks)
8185
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
8286

87+
ram_offset = laddr_offset // numbanks
8388
for bank in range(numbanks):
8489
for i in range(size):
85-
rdata.value = myram1.read_bank(bank, i)
90+
rdata.value = myram1.read_bank(bank, ram_offset + i)
8691
rexpected.value = i + 0x1000 + (bank << 16)
8792
if vthread.verilog.NotEql(rdata, rexpected):
8893
print('rdata[%d:%d] = %d (expected %d)' % (bank, i, rdata, rexpected))
8994
all_ok.value = False
9095

9196
# read
92-
laddr = 0
97+
laddr = laddr_offset
9398
gaddr = array_size + offset
9499
myaxi.dma_read_packed(myram0, laddr, gaddr, size * numbanks)
95100
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
96101

102+
ram_offset = laddr_offset // numbanks
97103
for bank in range(numbanks):
98104
for i in range(size):
99-
rdata.value = myram0.read_bank(bank, i)
105+
rdata.value = myram0.read_bank(bank, ram_offset + i)
100106
rexpected.value = i + 0x4000 + (bank << 16)
101107
if vthread.verilog.NotEql(rdata, rexpected):
102108
print('rdata[%d:%d] = %d (expected %d)' % (bank, i, rdata, rexpected))

tests/extension/thread_/multibank_ram_dma_packed_long/thread_multibank_ram_dma_packed_long.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ def mkLed(memory_datawidth=128):
3434
array_len = 256 + 128
3535
array_size = (array_len + array_len) * 4 * numbanks
3636

37+
laddr_offset = 32
38+
3739
def blink(size):
3840
all_ok.value = True
3941

@@ -49,50 +51,54 @@ def blink(size):
4951

5052
def body(size, offset):
5153
# write
54+
ram_offset = laddr_offset // numbanks
5255
for bank in range(numbanks):
5356
for i in range(size):
5457
wdata.value = i + 0x1000 + (bank << 16)
55-
myram0.write_bank(bank, i, wdata)
58+
myram0.write_bank(bank, ram_offset + i, wdata)
5659

57-
laddr = 0
60+
laddr = laddr_offset
5861
gaddr = offset
5962
myaxi.dma_write_packed(myram0, laddr, gaddr, size * numbanks)
6063
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
6164

6265
# write
66+
ram_offset = laddr_offset // numbanks
6367
for bank in range(numbanks):
6468
for i in range(size):
6569
wdata.value = i + 0x4000 + (bank << 16)
66-
myram1.write_bank(bank, i, wdata)
70+
myram1.write_bank(bank, ram_offset + i, wdata)
6771

68-
laddr = 0
72+
laddr = laddr_offset
6973
gaddr = array_size + offset
7074
myaxi.dma_write_packed(myram1, laddr, gaddr, size * numbanks)
7175
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
7276

7377
# read
74-
laddr = 0
78+
laddr = laddr_offset
7579
gaddr = offset
7680
myaxi.dma_read_packed(myram1, laddr, gaddr, size * numbanks)
7781
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
7882

83+
ram_offset = laddr_offset // numbanks
7984
for bank in range(numbanks):
8085
for i in range(size):
81-
rdata.value = myram1.read_bank(bank, i)
86+
rdata.value = myram1.read_bank(bank, ram_offset + i)
8287
rexpected.value = i + 0x1000 + (bank << 16)
8388
if vthread.verilog.NotEql(rdata, rexpected):
8489
print('rdata[%d] = %d (expected %d)' % (i, rdata, rexpected))
8590
all_ok.value = False
8691

8792
# read
88-
laddr = 0
93+
laddr = laddr_offset
8994
gaddr = array_size + offset
9095
myaxi.dma_read_packed(myram0, laddr, gaddr, size * numbanks)
9196
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
9297

98+
ram_offset = laddr_offset // numbanks
9399
for bank in range(numbanks):
94100
for i in range(size):
95-
rdata.value = myram0.read_bank(bank, i)
101+
rdata.value = myram0.read_bank(bank, ram_offset + i)
96102
rexpected.value = i + 0x4000 + (bank << 16)
97103
if vthread.verilog.NotEql(rdata, rexpected):
98104
print('rdata[%d] = %d (expected %d)' % (i, rdata, rexpected))

tests/extension/thread_/multibank_ram_dma_packed_narrow/thread_multibank_ram_dma_packed_narrow.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ def mkLed(memory_datawidth=32):
3434
array_len = 16
3535
array_size = (array_len + array_len) * 4 * numbanks
3636

37+
laddr_offset = 32
38+
3739
def blink(size):
3840
all_ok.value = True
3941

@@ -53,50 +55,54 @@ def blink(size):
5355

5456
def body(size, offset):
5557
# write
58+
ram_offset = laddr_offset // numbanks
5659
for bank in range(numbanks):
5760
for i in range(size):
5861
wdata.value = i + 0x1000 + (bank << 16)
59-
myram0.write_bank(bank, i, wdata)
62+
myram0.write_bank(bank, ram_offset + i, wdata)
6063

61-
laddr = 0
64+
laddr = laddr_offset
6265
gaddr = offset
6366
myaxi.dma_write_packed(myram0, laddr, gaddr, size * numbanks)
6467
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
6568

6669
# write
70+
ram_offset = laddr_offset // numbanks
6771
for bank in range(numbanks):
6872
for i in range(size):
6973
wdata.value = i + 0x4000 + (bank << 16)
70-
myram1.write_bank(bank, i, wdata)
74+
myram1.write_bank(bank, ram_offset + i, wdata)
7175

72-
laddr = 0
76+
laddr = laddr_offset
7377
gaddr = array_size + offset
7478
myaxi.dma_write_packed(myram1, laddr, gaddr, size * numbanks)
7579
print('dma_write: [%d] -> [%d]' % (laddr, gaddr))
7680

7781
# read
78-
laddr = 0
82+
laddr = laddr_offset
7983
gaddr = offset
8084
myaxi.dma_read_packed(myram1, laddr, gaddr, size * numbanks)
8185
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
8286

87+
ram_offset = laddr_offset // numbanks
8388
for bank in range(numbanks):
8489
for i in range(size):
85-
rdata.value = myram1.read_bank(bank, i)
90+
rdata.value = myram1.read_bank(bank, ram_offset + i)
8691
rexpected.value = i + 0x1000 + (bank << 16)
8792
if vthread.verilog.NotEql(rdata, rexpected):
8893
print('rdata[%d:%d] = %d (expected %d)' % (bank, i, rdata, rexpected))
8994
all_ok.value = False
9095

9196
# read
92-
laddr = 0
97+
laddr = laddr_offset
9398
gaddr = array_size + offset
9499
myaxi.dma_read_packed(myram0, laddr, gaddr, size * numbanks)
95100
print('dma_read: [%d] <- [%d]' % (laddr, gaddr))
96101

102+
ram_offset = laddr_offset // numbanks
97103
for bank in range(numbanks):
98104
for i in range(size):
99-
rdata.value = myram0.read_bank(bank, i)
105+
rdata.value = myram0.read_bank(bank, ram_offset + i)
100106
rexpected.value = i + 0x4000 + (bank << 16)
101107
if vthread.verilog.NotEql(rdata, rexpected):
102108
print('rdata[%d:%d] = %d (expected %d)' % (bank, i, rdata, rexpected))

0 commit comments

Comments
 (0)