1 ------------------------------------------------------------------------------- 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2013-07-14 5 -- Last update: 2014-05-05 6 ------------------------------------------------------------------------------- 7 -- Description: FIFO Wrapper 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC Firmware Standard Library'. 10 -- It is subject to the license terms in the LICENSE.txt file found in the 11 -- top-level directory of this distribution and at: 12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 13 -- No part of 'SLAC Firmware Standard Library', including this file, 14 -- may be copied, modified, propagated, or distributed except according to 15 -- the terms contained in the LICENSE.txt file. 16 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
25 --! @ingroup base_fifo 37 USE_BUILT_IN_G : := false;
--if set to true, this module is only xilinx compatible only!!! 49 --Write Ports (wr_clk domain) 60 --Read Ports (rd_clk domain) 61 rd_clk : in sl;
--unused if GEN_SYNC_FIFO_G = true 72 architecture rtl
of Fifo is
80 "INIT_G must either be ""0"" or the same length as DATA_WIDTH_G" severity failure;
127 FifoSync_Inst :
entity work.
FifoSync 162 -- When mapping the FifoSync, I am assuming that 163 -- wr_clk = rd_clk (both in frequency and in phase) 164 -- and I only pass wr_clk into the FifoSync_Inst 205 -- When mapping the FifoSync, I am assuming that 206 -- wr_clk = rd_clk (both in frequency and in phase) 207 -- and I only pass wr_clk into the FifoSyncBuiltIn_Inst 247 end architecture rtl;
SYNC_STAGES_Ginteger range 3 to ( 2** 24):= 3
in dinslv( DATA_WIDTH_G- 1 downto 0)
out wr_data_countslv( ADDR_WIDTH_G- 1 downto 0)
EMPTY_THRES_Ginteger range 1 to ( 2** 24):= 1
out wr_data_countslv( ADDR_WIDTH_G- 1 downto 0)
ADDR_WIDTH_Ginteger range 4 to 48:= 4
XIL_DEVICE_Gstring := "7SERIES"
EMPTY_THRES_Ginteger range 1 to ( 2** 24):= 1
USE_DSP48_Gstring := "no"
USE_DSP48_Gstring := "no"
out rd_data_countslv( ADDR_WIDTH_G- 1 downto 0)
DATA_WIDTH_Ginteger range 1 to 72:= 18
out doutslv( DATA_WIDTH_G- 1 downto 0)
in rstsl :=not RST_POLARITY_G
ADDR_WIDTH_Ginteger range 9 to 13:= 10
FWFT_EN_Gboolean := false
PIPE_STAGES_Gnatural range 0 to 16:= 0
FULL_THRES_Ginteger range 1 to 8190:= 1
FULL_THRES_Ginteger range 1 to ( 2** 24):= 1
SYNC_STAGES_Ginteger range 3 to ( 2** 24):= 3
RST_ASYNC_Gboolean := false
out data_countslv( ADDR_WIDTH_G- 1 downto 0)
ALTERA_SYN_Gboolean := false
out doutslv( DATA_WIDTH_G- 1 downto 0)
PIPE_STAGES_Gnatural range 0 to 16:= 0
USE_DSP48_Gstring := "no"
out doutslv( DATA_WIDTH_G- 1 downto 0)
ADDR_WIDTH_Ginteger range 9 to 13:= 10
PIPE_STAGES_Gnatural range 0 to 16:= 0
EMPTY_THRES_Ginteger range 1 to 8190:= 1
ALTERA_RAM_Gstring := "M9K"
XIL_DEVICE_Gstring := "7SERIES"
DATA_WIDTH_Ginteger range 1 to ( 2** 24):= 16
DATA_WIDTH_Ginteger range 1 to ( 2** 24):= 16
ALTERA_SYN_Gboolean := false
DATA_WIDTH_Ginteger range 1 to ( 2** 24):= 16
FWFT_EN_Gboolean := false
FWFT_EN_Gboolean := false
ALTERA_RAM_Gstring := "M9K"
SYNC_STAGES_Ginteger range 3 to ( 2** 24):= 3
ADDR_WIDTH_Ginteger range 2 to 48:= 4
in dinslv( DATA_WIDTH_G- 1 downto 0)
in dinslv( DATA_WIDTH_G- 1 downto 0)
FULL_THRES_Ginteger range 1 to ( 2** 24):= 1
out data_countslv( ADDR_WIDTH_G- 1 downto 0)
FULL_THRES_Ginteger range 1 to 8190:= 1
XIL_DEVICE_Gstring := "7SERIES"
EMPTY_THRES_Ginteger range 1 to 8190:= 1
DATA_WIDTH_Ginteger range 1 to 72:= 18
ALTERA_RAM_Gstring := "M9K"
in dinslv( DATA_WIDTH_G- 1 downto 0)
out doutslv( DATA_WIDTH_G- 1 downto 0)
out rd_data_countslv( ADDR_WIDTH_G- 1 downto 0)
USE_DSP48_Gstring := "no"
GEN_SYNC_FIFO_Gboolean := false
FWFT_EN_Gboolean := false
out doutslv( DATA_WIDTH_G- 1 downto 0)
in rstsl :=not RST_POLARITY_G
RST_ASYNC_Gboolean := false
PIPE_STAGES_Gnatural range 0 to 16:= 0
ADDR_WIDTH_Ginteger range 4 to 48:= 4
FWFT_EN_Gboolean := false
FULL_THRES_Ginteger range 1 to ( 2** 24):= 1
in dinslv( DATA_WIDTH_G- 1 downto 0)
USE_BUILT_IN_Gboolean := false
out wr_data_countslv( ADDR_WIDTH_G- 1 downto 0)
EMPTY_THRES_Ginteger range 1 to ( 2** 24):= 1
out rd_data_countslv( ADDR_WIDTH_G- 1 downto 0)
USE_DSP48_Gstring := "no"
PIPE_STAGES_Gnatural range 0 to 16:= 0