We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Visitor kristenhulse
Registered: ‎01-30-2019

AXI SmartConnect ID threads

I have a PCIe design using the DMA/BRIDGE subsystem in BRIDGE mode to access several custom AXI slave interfaces through a AXI SMARTCONNECT block.  AXI SMARTCONNECT is configured with one SI (to the PCIe subsystem) and 16 MI's to various AXI slave custom modules. I am using IP integrator in vivado 2018.3.

A number of my AXI slave custom modules are AXI MM interfaces to URAM.  I need to be able to read the URAM in separate slave modules (mapped to separate MI's) concurrently.  If I send a PCIe read request to one MI, it may hold off the response until the data is ready.  While this MI is held off, I am hoping that the PCIe can initiate a read to a different MI and this read will be accepted and processed while waiting for the first MI to be ready.   I am hoping that the parallel nature of the AXI channels will allow me to do that.

Simulation shows that in actuality, the SmartConnect does not initiate a read transaction from the second custom AXI slave interface (attached to MI) until the the rlast from the first custom AXI slave interface (attached to a separated MI) is asserted indicating that the first read transaction is complete.  Upon studying PG247 for AXI SMARTCONNECT I've found that this may be due to the single-slave per ID method of cyclic dependency avoidance.  From page 6 of PG247:

For each ID thread issued by a connected master, the SmartConnect allows one or more outstanding transactions to only one slave device for Writes and one slave device for Reads, at a time.

I am new to AXI and PCIe and need help understanding this. 

Do I simply need to assign a different ID thread to each read transaction?  If so, does this need to be set up in the DMA/Bridge subsytem block?  However, PG194 (for the DMA/Bridge subsystem) pg 97 says this:

Note: Multiple IDs are not supported for AXI Master Interface. Therefore, all signals concerned with ID are not available at AXI Master Interface.

seeming to indicate that the DMA/Bridge subsytem cannot support multiple IDs.

Is there any way around this, ie to force parallel read transactions from 2 different SMARTCONNECT MI's concurrently?






0 Kudos