@@ -2931,6 +2931,8 @@ def _make_img(filename, size, width, blksize=4096):
29312931 def _make_fsm (self , write_delay = 10 , read_delay = 10 , sleep = 4 ):
29322932 write_mode = 100
29332933 read_mode = 200
2934+ while read_mode <= write_mode + write_delay + 10 :
2935+ read_mode += 100
29342936
29352937 self .fsm .If (self .waddr .awvalid ).goto (write_mode )
29362938 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,
32913293 self ._make_fsms (write_delay , read_delay , sleep )
32923294
32933295 def _make_fsms (self , write_delay = 10 , read_delay = 10 , sleep = 4 ):
3296+ write_mode = 0
3297+ read_mode = 0
32943298
32953299 for i , (fsm , waddr , wdata , wresp , raddr , rdata ) in enumerate (
32963300 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):
33153319 sleep_count (0 )
33163320 )
33173321
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
33213330
33223331 fsm .If (waddr .awvalid ).goto (write_mode )
33233332 fsm .If (raddr .arvalid ).goto (read_mode )
0 commit comments