I am just looking for advice. I currently have a custom IP integrated in VHDL which has a AXI4 slave input and an AXI4 master output, and currently the signals are directly tied together.
I would like to add a customizable latency to the AXI signals, so that way they can be delayed for a particular amount of time through the IP, rather than being connected to each other.
My question is; can I delay read and write transactions through the IP merely through the use of the AxVALID
and AxREADY
(and maybe the RVALID
/RREADY
and WVALID
/WREADY
) signals?
If for instance I wanted a 20 clock cycle delay, I could wait for an external master to assert VALID
, and wait 20 clocks before having the IP slave assert READY
? Is this correct logic?
Thanks in advance for any any advice.
Yes, that can be done. Depending on your infrastructure it can cause bus congestion. Alternatively, you should also insert a FIFO to buffer these delayed bus transactions.