Entity: Fifo

Diagram

time TPD_G sl RST_POLARITY_G boolean RST_ASYNC_G boolean GEN_SYNC_FIFO_G boolean FWFT_EN_G string SYNTH_MODE_G string MEMORY_TYPE_G integer range 3 to (2**24) SYNC_STAGES_G natural range 0 to 16 PIPE_STAGES_G integer range 1 to (2**24) DATA_WIDTH_G integer range 4 to 48 ADDR_WIDTH_G slv INIT_G integer range 1 to (2**24) FULL_THRES_G integer range 1 to (2**24) EMPTY_THRES_G sl rst sl wr_clk sl wr_en slv(DATA_WIDTH_G-1 downto 0) din sl rd_clk sl rd_en slv(ADDR_WIDTH_G-1 downto 0) wr_data_count sl wr_ack sl overflow sl prog_full sl almost_full sl full sl not_full slv(DATA_WIDTH_G-1 downto 0) dout slv(ADDR_WIDTH_G-1 downto 0) rd_data_count sl valid sl underflow sl prog_empty sl almost_empty sl empty

Description


Company : SLAC National Accelerator Laboratory

Description: FIFO Wrapper

This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to

the terms contained in the LICENSE.txt file.

Generics

Generic name Type Value Description
TPD_G time 1 ns
RST_POLARITY_G sl '1' '1' for active high rst, '0' for active low
RST_ASYNC_G boolean false
GEN_SYNC_FIFO_G boolean false
FWFT_EN_G boolean false
SYNTH_MODE_G string "inferred"
MEMORY_TYPE_G string "block"
SYNC_STAGES_G integer range 3 to (2**24) 3
PIPE_STAGES_G natural range 0 to 16 0
DATA_WIDTH_G integer range 1 to (2**24) 16
ADDR_WIDTH_G integer range 4 to 48 4
INIT_G slv "0"
FULL_THRES_G integer range 1 to (2**24) 1
EMPTY_THRES_G integer range 1 to (2**24) 1

Ports

Port name Direction Type Description
rst in sl Resets
wr_clk in sl rite Ports (wr_clk domain)
wr_en in sl
din in slv(DATA_WIDTH_G-1 downto 0)
wr_data_count out slv(ADDR_WIDTH_G-1 downto 0)
wr_ack out sl
overflow out sl
prog_full out sl
almost_full out sl
full out sl
not_full out sl
rd_clk in sl unused if GEN_SYNC_FIFO_G = true
rd_en in sl
dout out slv(DATA_WIDTH_G-1 downto 0)
rd_data_count out slv(ADDR_WIDTH_G-1 downto 0)
valid out sl
underflow out sl
prog_empty out sl
almost_empty out sl
empty out sl

Signals

Name Type Description
data_count slv(ADDR_WIDTH_G-1 downto 0)

Constants

Name Type Value Description
INIT_C slv(DATA_WIDTH_G-1 downto 0) ite(INIT_G = "0",
slvZero(DATA_WIDTH_G),
INIT_G)