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
When a new read request is received from the CL, the SH model sets sh_cl_pcim_rvalid to 1 on the next cycle. However, it doesn't actually put data into sh_cl_pcim_rdata unless cl_sh_pcim_rready is asserted. If the CL has already set rready high before the read request goes through, then this logic works fine. However, if rready is asserted after rvalid goes high, then the data becomes valid a cycle late. I believe this violates the AXI handshake protocol, since the data needs to be valid on the positive edge that rvalid and rready are high.
Does that sound right to you?
Thanks!
The text was updated successfully, but these errors were encountered:
Thank you very much! In case the replies to your previous queries are still useful: yes, I did observe unexpected behavior and I was using my own CL design.
Let me know if there's any other information I can provide that would be useful!
Hi, I think I may have found a bug in the PCIM interface model in sh_bfm.sv. The problematic logic (with lines omitted for clarity) is the following:
When a new read request is received from the CL, the SH model sets
sh_cl_pcim_rvalid
to 1 on the next cycle. However, it doesn't actually put data intosh_cl_pcim_rdata
unlesscl_sh_pcim_rready
is asserted. If the CL has already setrready
high before the read request goes through, then this logic works fine. However, ifrready
is asserted afterrvalid
goes high, then the data becomes valid a cycle late. I believe this violates the AXI handshake protocol, since the data needs to be valid on the positive edge thatrvalid
andrready
are high.Does that sound right to you?
Thanks!
The text was updated successfully, but these errors were encountered: