@@ -2301,10 +2301,12 @@ def _make_img(filename, size, width, blksize=4096):
2301
2301
mask = np .full ([1 ], 2 ** 8 - 1 , dtype = np .int64 )
2302
2302
data = (((zero + base ) >> shamt ) & mask ).reshape ([- 1 ])
2303
2303
fmt = '%02x\n '
2304
- s = '' .join ([fmt % d for d in data ])
2305
2304
2306
2305
with open (filename , 'w' ) as f :
2307
- f .write (s )
2306
+ for i in range (0 , len (data ), blksize ):
2307
+ blk = data [i :i + blksize ]
2308
+ s = '' .join ([fmt % d for d in blk ])
2309
+ f .write (s )
2308
2310
2309
2311
def _make_fsm (self , write_delay = 10 , read_delay = 10 , sleep = 4 ):
2310
2312
write_mode = 100
@@ -2558,7 +2560,7 @@ def make_memory_image(filename, length, pattern='inc', dtype=None,
2558
2560
2559
2561
2560
2562
def to_memory_image (filename , array , length = None ,
2561
- datawidth = 32 , wordwidth = 8 , endian = 'little' ):
2563
+ datawidth = 32 , wordwidth = 8 , endian = 'little' , blksize = 4096 ):
2562
2564
2563
2565
import numpy as np
2564
2566
@@ -2592,9 +2594,12 @@ def to_memory_image(filename, array, length=None,
2592
2594
2593
2595
mask = np .full ([1 ], 2 ** wordwidth - 1 , dtype = np .int64 )
2594
2596
data = (((zero + base ) >> shamt ) & mask ).reshape ([- 1 ])
2595
- s = '' . join ([ fmt % d for d in data ])
2597
+
2596
2598
with open (filename , 'w' ) as f :
2597
- f .write (s )
2599
+ for i in range (0 , len (data ), blksize ):
2600
+ blk = data [i :i + blksize ]
2601
+ s = '' .join ([fmt % d for d in blk ])
2602
+ f .write (s )
2598
2603
2599
2604
return len (data )
2600
2605
@@ -2609,9 +2614,12 @@ def to_memory_image(filename, array, length=None,
2609
2614
mask = np .full ([1 ], 2 ** datawidth - 1 , dtype = np .int64 )
2610
2615
data = (base .reshape ([- 1 , num ]) & mask ) << shamt
2611
2616
data = np .bitwise_or .reduce (data , - 1 ).reshape ([- 1 ])
2612
- s = '' . join ( fmt % d for d in data )
2617
+
2613
2618
with open (filename , 'w' ) as f :
2614
- f .write (s )
2619
+ for i in range (0 , len (data ), blksize ):
2620
+ blk = data [i :i + blksize ]
2621
+ s = '' .join ([fmt % d for d in blk ])
2622
+ f .write (s )
2615
2623
2616
2624
return len (data )
2617
2625
0 commit comments