chipsalliance / aib-protocols

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AXI4-ST drops TREADY when traffic is started before AIB link up

nij-intel opened this issue · comments

This is the condition in which this issue occurs:

  1. No AIB link
  2. Leader drives TDATA and TVALID after axi reset
  3. Follower is always TREADY = 1

Why this happens:

  1. Leader side application sends data and waits for TREADY (tx_online is 0)
  2. AIB links up and tx_online=1. TREADY goes high
  3. AXI receives user data in FIFO and asserts FIFO full. This will de-assert TREADY
  4. AXI-ST leader transmit the data to AIB through CA module asserting master_align_done=1
  5. AIB leader transmits the data to AIB follower
  6. CA follower module align done is still low and drops packet from AIB follower
  7. AXI-ST follower does not get packet and will not send credit update to AXI-ST leader
  8. AXI-ST leader is waiting for credit update from follower and waits for forever.
  9. This keeps TREADY low for ever.

Work around:

Start AXI-ST traffic after AIB-link is establishes (tx_online=1)

Waveform

image

To reproduce this issue we had to set delay_y_value = 0

Unable to reproduce to this issue in full_examples and VIP setup. Started traffic after reset before online and TREADY is always 1

Example design delay values (in hex): X = 6, Y=1c2, Z = 190.

image

Better picture

wave