12-16-2018 10:52 PM
I’m quite new with the vivado IPI gui. I am using axi_corssbar in my design.
I created a 2X1 (2 slave 1 master) axi crossbar IP and specified 8 outstanding read requests ( as soon in the images below).
In simulation I see that my crossbar won’t acceptoutstanding requests, and that the arready signals wont raise until the previous requests rlast and rvalid is received, I see at the master side that the next agent does not show any back pressure .... so I conclude that this behavior is related to the crossbar only. why the crossbar does not allow outstanding request ?
This dramatically affect my performance, actually more than 2X drop !!!. what am I missing here ? why the crossbar does not respect the parameter specified at core generation step ?
12-20-2018 01:27 AM
Thanks for the response.
To my understanding this is talking about how it decides the values for an AXI interconnect, while i am using the axi crossbar in which i define the parameters in the IP generator ( as seen in the images in the previous comment).
When deepening research in my problem is saw that my crossbar is in fact able to send 8 outstanding requests when i use the same ARID for all requests, but when using different ARID for each request ( as seen in the image in the previous comment) it doesn't allow any outstanding requests.
So i see that the parameters are received in my IP but the problem arises when using different ID's. Is there a limitation on the axi crossbar that enables us to use outstanding request's only when the ARID of the request's are the same?
12-20-2018 04:28 AM
ARM imposes restrictions on the ordering of reads handled by a slave, but those restrictions shouldn't be causing the behavior you're seeing now.
Have you tried yet changing the Crossbar Optimization Strategy to "Maximize Performance"? Perhaps the performance of the crossbar implementation is 'skimpy' because it's still set to the default value of "Minimize Area".