@@ -2938,6 +2938,8 @@ def _make_img(filename, size, width, blksize=4096):
29382938 def _make_fsm (self , write_delay = 10 , read_delay = 10 , sleep = 4 , sub_sleep = 4 ):
29392939 write_mode = 100
29402940 read_mode = 200
2941+ while read_mode <= write_mode + write_delay + 10 :
2942+ read_mode += 100
29412943
29422944 self .fsm .If (self .waddr .awvalid ).goto (write_mode )
29432945 self .fsm .If (self .raddr .arvalid ).goto (read_mode )
@@ -3313,6 +3315,8 @@ def __init__(self, m, name, clk, rst, datawidth=32, addrwidth=32, numports=2,
33133315 self ._make_fsms (write_delay , read_delay , sleep , sub_sleep )
33143316
33153317 def _make_fsms (self , write_delay = 10 , read_delay = 10 , sleep = 4 , sub_sleep = 4 ):
3318+ write_mode = 0
3319+ read_mode = 0
33163320
33173321 for i , (fsm , waddr , wdata , wresp , raddr , rdata ) in enumerate (
33183322 zip (self .fsms , self .waddrs , self .wdatas , self .wresps , self .raddrs , self .rdatas )):
@@ -3352,9 +3356,14 @@ def _make_fsms(self, write_delay=10, read_delay=10, sleep=4, sub_sleep=4):
33523356 sleep_count (0 )
33533357 )
33543358
3355- offset = 1000 * i
3356- write_mode = 100 + offset
3357- read_mode = 200 + offset
3359+ offset = 100 * i
3360+ while offset <= read_mode + read_delay + 10 :
3361+ offset += 100
3362+
3363+ write_mode = offset + 100
3364+ read_mode = offset + 200
3365+ while read_mode <= write_mode + write_delay + 10 :
3366+ read_mode += 100
33583367
33593368 fsm .If (waddr .awvalid ).goto (write_mode )
33603369 fsm .If (raddr .arvalid ).goto (read_mode )
0 commit comments