Skip to content

Commit f0578f8

Browse files
committed
AxiMemoryModel with memimg_name
1 parent f16bea1 commit f0578f8

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

veriloggen/types/axi.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1371,7 +1371,8 @@ class AxiMemoryModel(object):
13711371
def __init__(self, m, name, clk, rst,
13721372
datawidth=32, addrwidth=32,
13731373
mem_datawidth=32, mem_addrwidth=20,
1374-
memimg=None, write_delay=10, read_delay=10, sleep=4):
1374+
memimg=None, memimg_name=None,
1375+
write_delay=10, read_delay=10, sleep=4):
13751376

13761377
if mem_datawidth % 8 != 0:
13771378
raise ValueError('mem_datawidth must be a multiple of 8')
@@ -1401,20 +1402,22 @@ def __init__(self, m, name, clk, rst,
14011402
'_'.join(['', self.name, 'mem']), 8, vtypes.Int(2) ** self.mem_addrwidth)
14021403

14031404
if memimg is None:
1404-
filename = '_'.join(['', self.name, 'memimg', '.out'])
1405+
if memimg_name is None:
1406+
memimg_name = '_'.join(['', self.name, 'memimg', '.out'])
14051407
size = 2 ** self.mem_addrwidth
14061408
wordsize = self.mem_datawidth // 8
1407-
self._make_img(filename, size, wordsize)
1409+
self._make_img(memimg_name, size, wordsize)
14081410

14091411
elif isinstance(memimg, str):
1410-
filename = memimg
1412+
memimg_name = memimg
14111413

14121414
else:
1413-
filename = '_'.join(['', self.name, 'memimg', '.out'])
1414-
to_memory_image(filename, memimg, datawidth=mem_datawidth)
1415+
if memimg_name is None:
1416+
memimg_name = '_'.join(['', self.name, 'memimg', '.out'])
1417+
to_memory_image(memimg_name, memimg, datawidth=mem_datawidth)
14151418

14161419
self.m.Initial(
1417-
vtypes.Systask('readmemh', filename, self.mem)
1420+
vtypes.Systask('readmemh', memimg_name, self.mem)
14181421
)
14191422

14201423
self.fsm = FSM(self.m, '_'.join(['', self.name, 'fsm']), clk, rst)

0 commit comments

Comments
 (0)