Virtual Channel Arbitration - 1.0 English

Versal Adaptive SoC Programmable Network on Chip and Integrated Memory Controller 1.0 LogiCORE IP Product Guide (PG313)

Document ID
Release Date
1.0 English

For every cycle, each output port performs Least Recently Used (LRU) arbitration on all virtual channels of the three input ports. High priority requests always take precedence over low priority requests, however a virtual channel must meet the following conditions to be eligible for arbitration:

  • Each request must be valid.
  • The output port must have credit to send a packet on to the next NPS.
  • There must be no blocking from the same virtual channel of another input port:
    • Each multi-data transaction in the output-port-arbiter is hard-locked such that when one of the three input ports has granted access to a virtual channel, the whole transaction must be completed before switching to the same virtual channel on another input port. This ensures that write transactions are not interleaved.
  • A virtual channel token must be available:
    • Each output port contains one token for each input port, therefore each output port contains 24 tokens (three ports × eight virtual channels). Each time the arbiter issues a grant to a virtual channel, its corresponding token is decremented. The tokens are loaded from NPI programmed registers when both of the following conditions are true:
      • At least one virtual channel is requesting with zero tokens.
      • There are no other pending request with one or more tokens.
    • NPI token registers should never be programmed to zero as this would cause blocking of the corresponding virtual channel. NPI token registers can be re-programmed at any time; the new value takes effect when the next token reload occurs.
  • There are no higher priority virtual channel requests.