English
Language : 

DS643 Datasheet, PDF (52/216 Pages) Xilinx, Inc – Soft Direct Memory Access (SDMA) support
LogiCORE IP Multi-Port Memory Controller (v6.06.a)
Multi-Port Arbitration Algorithms
The MPMC Arbiter supports Fixed, Round Robin, and Custom arbitration algorithms. The arbitration algorithms
are increased one arbitration slot per transaction when there are active requests. Otherwise during idle periods, the
arbitration increases a slot for each clock cycle.
Fixed
In the Fixed arbitration algorithm, the priority is fixed so that Port 0 has highest priority, Port 1 has next highest
priority, and so on. The last port in the design has the lowest priority. The ordering from Port 0 to Port 7 cannot be
changed. This algorithm uses the lowest amount of FPGA resources to implement.
Round Robin (Default)
In the Round Robin arbitration algorithm (default), each MPMC port is given an equal overall priority.
This is accomplished by rotating through the relative priority of each port each time an arbitration is performed. A
given port therefore has one turn as highest priority, one turn at second highest priority, one turn at lowest priority,
and so forth.
Custom
Custom arbitration provides user-configurable arbitration. The number of arbitration time slots
(C_ARB0_NUM_SLOTS) can be configured to a number between 1 and 16 slots.
In Spartan-6 FPGAs, C_ARB0_NUM_SLOTS must be either 10 or 12 using this option. The arbiter rotates through
these arbitration time slots each time an arbitration is performed to initiate a memory transaction. For each
arbitration time slot, relative priority of all the ports (C_ARB0_SLOT<PortNum>) is selectable.
Arbitration Examples
An example of Custom arbitration shows that in a four port system, the following options can be set:
C_ARB0_NUM_SLOTS = 6
C_ARB0_SLOT0 = “0123”
C_ARB0_SLOT1 = “0123”
C_ARB0_SLOT2 = “1230”
C_ARB0_SLOT3 = “1230”
C_ARB0_SLOT4 = “2301”
C_ARB0_SLOT5 = “3012”
Assuming all ports are making requests, Port 0 is selected 1/3 of time, Port 1 is selected 1/3 of time, Port 2 is
selected 1/6 of time, and Port 3 is selected 1/6 of time.
The functionally equivalent setting for Round Robin arbitration is as follows:
C_ARB0_NUM_SLOTS = 4
C_ARB0_SLOT0 = “0123”
C_ARB0_SLOT1 = “1230”
C_ARB0_SLOT2 = “2301”
C_ARB0_SLOT3 = “3012”
The functionally equivalent setting for Fixed arbitration is as follows:
C_ARB0_NUM_SLOTS = 1
C_ARB0_SLOT0 = “0123”
For more information on how to configure the arbiter, see the “Arbitration” information in IP Configuration
Graphical User Interface, page 209.
DS643 February 22, 2013
www.xilinx.com
52
Product Specification