PoC.sort.lru_list¶
List storing (key, value)
pairs. The least-recently inserted pair is
outputed on DataOut
if Valid = '1'
. If Valid = '0'
, then the list
empty.
The inputs Insert
, Remove
, DataIn
, and Reset
are synchronous
to the rising-edge of the clock clock
. All control signals are high-active.
- Supported operations:
- Insert: Insert
DataIn
as recently used(key, value)
pair. If key is already within the list, then the corresponding value is updated and the pair is moved to the recently used position. - Remove: Remove
(key, value)
pair with the given key. The list is not modified if key is not within the list.
- Insert: Insert
Entity Declaration:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | entity sort_lru_list is
generic (
ELEMENTS : positive := 16;
KEY_BITS : positive := 4;
DATA_BITS : positive := 8;
INITIAL_ELEMENTS : T_SLM := (0 to 15 => (0 to 7 => '0'));
INITIAL_VALIDS : std_logic_vector := (0 to 15 => '0')
);
port (
Clock : in std_logic;
Reset : in std_logic;
Insert : in std_logic;
Remove : in std_logic;
DataIn : in std_logic_vector(DATA_BITS - 1 downto 0);
Valid : out std_logic;
DataOut : out std_logic_vector(DATA_BITS - 1 downto 0)
);
end entity;
|