Issuing Read Transactions - 3.0 English

AXI Traffic Generator LogiCORE IP Product Guide (PG125)

Document ID
Release Date
3.0 English

For reads, each CMD is read from the CMDRAM and pushed to the 2-deep Mar_fifo. Mar_track decides which Mar_fifo0 to Mar_fifo3 it is also pushed into. The first ID goes to Mar_fifo0, the next ID goes to Mar_fifo1, etc. The Mar_fifo sends the information to the AXI_M AR signals. The Mar_fifo0 to Mar_fifo3 hold the requests before sending them to Mar_agen0 to Mar_agen3. If the Mar_track assigns ID = 0x12 to Mar_fifo1, any further ID = 0x12 transactions are pushed onto Mar_fifo1.

After four unique IDs are valid at once, no further Read CMDs can be processed until one of the Mar_fifo0 to Mar_fifo3 is empty. Read data returned from the switch is placed in Mr_fifo, then popped out. Each ID is searched across each Mar_agen0 to Mar_agen3, which selects the proper Mar_agen and drives the address to the MSTRAM to write in the R data.

On the last data cycle, the corresponding Mar_fifo0 to Mar_fifo3 is popped, and the next entry is prepared. This strategy allows at least four simultaneous reads with any arbitrary ID and often allows more if the same ID is reused in multiple requests.