You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a combinational path in axi_to_mem from axi_req_i.b_ready to axi_resp_o.w_ready. In particular, this is can be dangerous when connecting this module downstream of axi_dw_downsize, which has a comb path from w_ready to b_ready, resulting in a combinational loop.
The text was updated successfully, but these errors were encountered:
Is there a workaround to this issue?
I have something along the lines:
AXI_UPSIZE -> AXI_MUX -> AXI_TO_MEM -> SRAM
and observe the combinational loop. I have tried to insert a AXI_CUT block after the AXI_MUX block, but this does not help.
I have parameterized the block with
NumBanks=1
BufDepth=1 (SRAM has latency of 1 cycle)
HideStrb=1
OutFifoDepth=1
Does any of the other axi_to_mem blocks (interleaved, split etc) not exhibit this problem?
Same here... I think the trick is to register both sides of the module. For instance, place an axi_cut in one side and ensure the mem side is not answered combinationally.
There is a combinational path in
axi_to_mem
fromaxi_req_i.b_ready
toaxi_resp_o.w_ready
. In particular, this is can be dangerous when connecting this module downstream ofaxi_dw_downsize
, which has a comb path fromw_ready
tob_ready
, resulting in a combinational loop.The text was updated successfully, but these errors were encountered: