@@ -2931,6 +2931,8 @@ def _make_img(filename, size, width, blksize=4096):
2931
2931
def _make_fsm (self , write_delay = 10 , read_delay = 10 , sleep = 4 ):
2932
2932
write_mode = 100
2933
2933
read_mode = 200
2934
+ while read_mode <= write_mode + write_delay + 10 :
2935
+ read_mode += 100
2934
2936
2935
2937
self .fsm .If (self .waddr .awvalid ).goto (write_mode )
2936
2938
self .fsm .If (self .raddr .arvalid ).goto (read_mode )
@@ -3291,6 +3293,8 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32, numports=2,
3291
3293
self ._make_fsms (write_delay , read_delay , sleep )
3292
3294
3293
3295
def _make_fsms (self , write_delay = 10 , read_delay = 10 , sleep = 4 ):
3296
+ write_mode = 0
3297
+ read_mode = 0
3294
3298
3295
3299
for i , (fsm , waddr , wdata , wresp , raddr , rdata ) in enumerate (
3296
3300
zip (self .fsms , self .waddrs , self .wdatas , self .wresps , self .raddrs , self .rdatas )):
@@ -3315,9 +3319,14 @@ def _make_fsms(self, write_delay=10, read_delay=10, sleep=4):
3315
3319
sleep_count (0 )
3316
3320
)
3317
3321
3318
- offset = 1000 * i
3319
- write_mode = 100 + offset
3320
- read_mode = 200 + offset
3322
+ offset = 100 * i
3323
+ while offset <= read_mode + read_delay + 10 :
3324
+ offset += 100
3325
+
3326
+ write_mode = offset + 100
3327
+ read_mode = offset + 200
3328
+ while read_mode <= write_mode + write_delay + 10 :
3329
+ read_mode += 100
3321
3330
3322
3331
fsm .If (waddr .awvalid ).goto (write_mode )
3323
3332
fsm .If (raddr .arvalid ).goto (read_mode )
0 commit comments