UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor kristenhulse
Visitor
138 Views
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?

Thanks.

 

 

 

 

0 Kudos