entity trb_net_fifo is
generic (WIDTH : integer := 18; -- FIFO word width
- DEPTH : integer := 3); -- Depth of the FIFO, 2^(n+1)
+ DEPTH : integer := 3; -- Depth of the FIFO, 2^(n+1)
+ FORCE_LUT : integer range 0 to 1 := 0): --don't allow use of BlockRAM
port (CLK : in std_logic;
RESET : in std_logic;
CLK_EN : in std_logic;
-
+
DATA_IN : in std_logic_vector(WIDTH - 1 downto 0); -- Input data
WRITE_ENABLE_IN : in std_logic;
DATA_OUT : out std_logic_vector(WIDTH - 1 downto 0); -- Output data
begin
- gen_shiftreg : if DEPTH /= 6 or WIDTH /= 18 generate
+ gen_shiftreg : if DEPTH /= 6 or WIDTH /= 18 or FORCE_LUT = 1 generate
FULL_OUT <= current_FULL;
EMPTY_OUT <= current_EMPTY;
- gen_BRAM : if DEPTH = 6 and WIDTH = 18 generate
+ gen_BRAM : if (DEPTH = 6 and WIDTH = 18) and FORCE_LUT = 0 generate
bram_fifo:trb_net16_bram_fifo
port map (
clock_in => CLK,