PoC.bus.Arbiter

This module implements a generic arbiter. It currently supports the following arbitration strategies:

  • Round Robin (RR)

Entity Declaration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
entity bus_Arbiter is
  generic (
    STRATEGY                  : string                    := "RR";      -- RR, LOT
    PORTS                     : positive                  := 1;
    WEIGHTS                   : T_INTVEC                  := (0 => 1);
    OUTPUT_REG                : boolean                   := TRUE
  );
  port (
    Clock                     : in  std_logic;
    Reset                     : in  std_logic;
    
    Arbitrate                 : in  std_logic;
    Request_Vector            : in  std_logic_vector(PORTS - 1 downto 0);
    
    Arbitrated                : out std_logic;
    Grant_Vector              : out std_logic_vector(PORTS - 1 downto 0);
    Grant_Index               : out std_logic_vector(log2ceilnz(PORTS) - 1 downto 0)
  );
end entity;