This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to config AXI4 outstanding by NIC400

Has anyone used nic400 to configure outstanding capabilities? My current configuration: Master configures issue capability 16, slave receives 16,

but switch0 stops after sending 3 (ASIB's AREADY is pulled down), and has to wait until the end of one write data before sending it again, and the

follow-up is to write a data, the switch sends an address to the slave. There is no outstanding function at all. Can anyone give me some advice?

below is config info:

only send from mater0 to slave0

  • Hello

    Apologies for the delay in responding to your question. Are you still looking for help with this? If so, please take a look at https://community.arm.com/support-forums/ and let me know which forum I can move this question to, in order to help you find the answer.

    Many thanks

    Oli

    Arm Community team

  • Hi there, I have moved your question to the Architectures and Processors forum. Many thanks.

  • If you are using NIC-400 you are probably working for a company that has a support agreement with ARM, and so you'd get more detailed support by using the licensee-only support website. Then you could supply your NIC-400 configuration file to allow the support team to look at how you have configured everything, and hopefully then explain why you are seeing the behaviour you describe.

    But as you've been waiting here for help for a while, my guess as to why you are only seeing 3 transactions accepted before AWREADY goes low is that...

    a) you have registering defined in the m0_axi4 ASIB, and this is storing perhaps 2 transactions

      and

    b) at the input to switch0 there is a CDAS (Cyclic Dependency Avoidance Scheme) defined which is possibly set to "Single Slave", and your first transaction is targeting a different output to what the next transaction is targeting (so not meeting the "single slave" requirement).

       or the CDAS for "switch0" could be "Single Slave Per ID" and your transactions are not using different IDs, so still failing the CDAS requirement.

    To get round this you will either have to target the same output port for all 16 of the transactions you want to have active (assuming the target will accept that many and not hold its own AWREADY low, which will put back-pressure on the m0_axi4 source), or you will need to use different AWID values for transactions trying to access the second output port if CDAS is set to the "Per ID" option.

    But if that guesswork doesn't help, you would be much better off using the NIC-400 licensee support option so you can discuss your configuration confidentially.