Entity: AxiLiteFifoPop

Diagram

time TPD_G positive POP_FIFO_COUNT_G boolean POP_SYNC_FIFO_G string POP_MEMORY_TYPE_G integer range 4 to 48 POP_ADDR_WIDTH_G integer range 1 to (2**24) POP_FULL_THRES_G boolean LOOP_FIFO_EN_G positive LOOP_FIFO_COUNT_G string LOOP_MEMORY_TYPE_G integer range 4 to 48 LOOP_ADDR_WIDTH_G integer range 0 to 31 RANGE_LSB_G integer range 0 to 31 VALID_POSITION_G sl VALID_POLARITY_G sl axiClk sl axiClkRst AxiLiteReadMasterType axiReadMaster AxiLiteWriteMasterType axiWriteMaster slv(POP_FIFO_COUNT_G-1 downto 0) popFifoClk slv(POP_FIFO_COUNT_G-1 downto 0) popFifoRst slv(POP_FIFO_COUNT_G-1 downto 0) popFifoWrite Slv32Array(POP_FIFO_COUNT_G-1 downto 0) popFifoDin AxiLiteReadSlaveType axiReadSlave AxiLiteWriteSlaveType axiWriteSlave slv(POP_FIFO_COUNT_G-1 downto 0) popFifoValid slv(POP_FIFO_COUNT_G-1 downto 0) popFifoAEmpty slv(LOOP_FIFO_COUNT_G-1 downto 0) loopFifoValid slv(LOOP_FIFO_COUNT_G-1 downto 0) loopFifoAEmpty slv(LOOP_FIFO_COUNT_G-1 downto 0) loopFifoAFull slv(POP_FIFO_COUNT_G-1 downto 0) popFifoFull slv(POP_FIFO_COUNT_G-1 downto 0) popFifoAFull slv(POP_FIFO_COUNT_G-1 downto 0) popFifoPFull

Description


Company : SLAC National Accelerator Laboratory

Description: Supports reading of general purpose FIFOs from the AxiLite bus. One address location per FIFO. Address map depends on the POP and LOOP FIFO counts. RANGE_LSB_G sets the address bit which seperates the POP FIFO address space from the loop FIFO address space. RANGE_LSB_G must be large enough for the number of POP and LOOP FIFOs enabled. I.E. if POP_FIFO_COUNT_C is 8, RANGE_FIFO_G must be > 5. POP Fifos exist at 0x0, 0x4, 0x8, 0xC …

LOOP Fifos exist at 2^(RANGE_LSB_C) + 0x0, + 0x4, etc.

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
POP_FIFO_COUNT_G positive 1
POP_SYNC_FIFO_G boolean false
POP_MEMORY_TYPE_G string "block"
POP_ADDR_WIDTH_G integer range 4 to 48 4
POP_FULL_THRES_G integer range 1 to (2**24) 1
LOOP_FIFO_EN_G boolean false
LOOP_FIFO_COUNT_G positive 1
LOOP_MEMORY_TYPE_G string "block"
LOOP_ADDR_WIDTH_G integer range 4 to 48 4
RANGE_LSB_G integer range 0 to 31 8
VALID_POSITION_G integer range 0 to 31 0
VALID_POLARITY_G sl '0'

Ports

Port name Direction Type Description
axiClk in sl AXI Interface (axiClk)
axiClkRst in sl
axiReadMaster in AxiLiteReadMasterType
axiReadSlave out AxiLiteReadSlaveType
axiWriteMaster in AxiLiteWriteMasterType
axiWriteSlave out AxiLiteWriteSlaveType
popFifoValid out slv(POP_FIFO_COUNT_G-1 downto 0)
popFifoAEmpty out slv(POP_FIFO_COUNT_G-1 downto 0)
loopFifoValid out slv(LOOP_FIFO_COUNT_G-1 downto 0)
loopFifoAEmpty out slv(LOOP_FIFO_COUNT_G-1 downto 0)
loopFifoAFull out slv(LOOP_FIFO_COUNT_G-1 downto 0)
popFifoClk in slv(POP_FIFO_COUNT_G-1 downto 0) POP FIFO Write Interface (popFifoClk)
popFifoRst in slv(POP_FIFO_COUNT_G-1 downto 0)
popFifoWrite in slv(POP_FIFO_COUNT_G-1 downto 0)
popFifoDin in Slv32Array(POP_FIFO_COUNT_G-1 downto 0)
popFifoFull out slv(POP_FIFO_COUNT_G-1 downto 0)
popFifoAFull out slv(POP_FIFO_COUNT_G-1 downto 0)
popFifoPFull out slv(POP_FIFO_COUNT_G-1 downto 0)

Signals

Name Type Description
ipopFifoValid slv(POP_COUNT_C-1 downto 0) Local Signals
ipopFifoDout Slv32Array(POP_COUNT_C-1 downto 0)
ipopFifoRead slv(POP_COUNT_C-1 downto 0)
iloopFifoDin slv(31 downto 0)
iloopFifoWrite Slv(LOOP_COUNT_C-1 downto 0)
iloopFifoValid slv(LOOP_COUNT_C-1 downto 0)
iloopFifoDout Slv32Array(LOOP_COUNT_C-1 downto 0)
iloopFifoRead slv(LOOP_COUNT_C-1 downto 0)
r RegType
rin RegType

Constants

Name Type Value Description
POP_SIZE_C integer bitSize(POP_FIFO_COUNT_G-1)
POP_COUNT_C integer 2**POP_SIZE_C
LOOP_SIZE_C integer bitSize(LOOP_FIFO_COUNT_G-1)
LOOP_COUNT_C integer 2**LOOP_SIZE_C
REG_INIT_C RegType ( loopFifoDin => (others => '0'),
loopFifoWrite => (others => '0'),
loopFifoRead => (others => '0'),
popFifoRead => (others => '0'),
axiReadSlave => AXI_LITE_READ_SLAVE_INIT_C,
axiWriteSlave => AXI_LITE_WRITE_SLAVE_INIT_C )

Types

Name Type Description
RegType

Processes

Description
--------------------------------------- AXI Lite --------------------------------------- Sync

Description
Async