PoC.dstruct.DoubleEndedQueue

Implements a deque (double-ended queue). This data structure allows two acting entities to queue data elements for the consumption by the other while still being able to unqueue untaken ones in LIFO fashion.

Entity Declaration:

 1    MIN_DEPTH : positive                -- Minimum Deque Depth
 2  );
 3  port (
 4    -- Shared Ports
 5    Clock : in  std_logic;
 6    Reset : in  std_logic;
 7
 8    -- Port A
 9    PortA_Put     : in  std_logic;
10    PortA_DataIn  : in  std_logic_vector(DATA_BITS-1 downto 0);  -- DataA Input
11    PortA_Full    : out std_logic;
12    PortA_Got     : in  std_logic;
13    PortA_DataOut : out std_logic_vector(DATA_BITS-1 downto 0);  -- DataA Output
14    PortA_Valid   : out std_logic;
15
16    -- Port B
17    PortB_Put     : in  std_logic;
18    PortB_DataIn  : in  std_logic_vector(DATA_BITS-1 downto 0);  -- DataB Input
19    PortB_Full    : out std_logic;
20    PortB_Got     : in  std_logic;
21    PortB_DataOut : out std_logic_vector(DATA_BITS-1 downto 0);
22    PortB_Valid   : out std_logic
23  );
24end entity;