Entity: AxiWritePathFifo
- File: AxiWritePathFifo.vhd
Diagram
Description
Company : SLAC National Accelerator Laboratory
Description:
FIFO for AXI write path transactions.
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 | General Configurations |
GEN_SYNC_FIFO_G | boolean | false | General FIFO configurations |
ADDR_LSB_G | natural range 0 to 31 | 0 | Bit Optimizations |
ID_FIXED_EN_G | boolean | false | |
SIZE_FIXED_EN_G | boolean | false | |
BURST_FIXED_EN_G | boolean | false | |
LEN_FIXED_EN_G | boolean | false | |
LOCK_FIXED_EN_G | boolean | false | |
PROT_FIXED_EN_G | boolean | false | |
CACHE_FIXED_EN_G | boolean | false | |
ADDR_MEMORY_TYPE_G | string | "block" | Address FIFO Config |
ADDR_CASCADE_SIZE_G | integer range 1 to (2**24) | 1 | |
ADDR_FIFO_ADDR_WIDTH_G | integer range 4 to 48 | 9 | |
DATA_MEMORY_TYPE_G | string | "block" | Data FIFO Config |
DATA_CASCADE_SIZE_G | integer range 1 to (2**24) | 1 | |
DATA_FIFO_ADDR_WIDTH_G | integer range 4 to 48 | 9 | |
DATA_FIFO_PAUSE_THRESH_G | integer range 1 to (2**24) | 500 | |
RESP_MEMORY_TYPE_G | string | "block" | Response FIFO Config |
RESP_CASCADE_SIZE_G | integer range 1 to (2**24) | 1 | |
RESP_FIFO_ADDR_WIDTH_G | integer range 4 to 48 | 9 | |
AXI_CONFIG_G | AxiConfigType | BUS Config |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
sAxiClk | in | sl | Slave Port |
sAxiRst | in | sl | |
sAxiWriteMaster | in | AxiWriteMasterType | |
sAxiWriteSlave | out | AxiWriteSlaveType | |
sAxiCtrl | out | AxiCtrlType | |
mAxiClk | in | sl | Master Port |
mAxiRst | in | sl | |
mAxiWriteMaster | out | AxiWriteMasterType | |
mAxiWriteSlave | in | AxiWriteSlaveType |
Signals
Name | Type | Description |
---|---|---|
addrFifoWrite | sl | |
addrFifoDin | slv(ADDR_FIFO_SIZE_C-1 downto 0) | |
addrFifoDout | slv(ADDR_FIFO_SIZE_C-1 downto 0) | |
addrFifoValid | sl | |
addrFifoAFull | sl | |
addrFifoRead | sl | |
dataFifoWrite | sl | |
dataFifoDin | slv(DATA_FIFO_SIZE_C-1 downto 0) | |
dataFifoDout | slv(DATA_FIFO_SIZE_C-1 downto 0) | |
dataFifoValid | sl | |
dataFifoAFull | sl | |
dataFifoRead | sl | |
respFifoWrite | sl | |
respFifoDin | slv(RESP_FIFO_SIZE_C-1 downto 0) | |
respFifoDout | slv(RESP_FIFO_SIZE_C-1 downto 0) | |
respFifoValid | sl | |
respFifoAFull | sl | |
respFifoRead | sl |
Constants
Name | Type | Value | Description |
---|---|---|---|
ADDR_BITS_C | integer | AXI_CONFIG_G.ADDR_WIDTH_C - ADDR_LSB_G | |
ID_BITS_C | integer | ite(ID_FIXED_EN_G, 0, AXI_CONFIG_G.ID_BITS_C) |
|
LEN_BITS_C | integer | ite(LEN_FIXED_EN_G, 0, AXI_CONFIG_G.LEN_BITS_C) |
|
SIZE_BITS_C | integer | ite(SIZE_FIXED_EN_G, 0, 3) |
|
BURST_BITS_C | integer | ite(BURST_FIXED_EN_G, 0, 2) |
|
LOCK_BITS_C | integer | ite(LOCK_FIXED_EN_G, 0, 2) |
|
PROT_BITS_C | integer | ite(PROT_FIXED_EN_G, 0, 3) |
|
CACHE_BITS_C | integer | ite(CACHE_FIXED_EN_G, 0, 4) |
|
DATA_BITS_C | integer | AXI_CONFIG_G.DATA_BYTES_C*8 | |
STRB_BITS_C | integer | AXI_CONFIG_G.DATA_BYTES_C | |
RESP_BITS_C | integer | 2 | |
ADDR_FIFO_SIZE_C | integer | ADDR_BITS_C + ID_BITS_C + LEN_BITS_C + SIZE_BITS_C + BURST_BITS_C + LOCK_BITS_C + PROT_BITS_C + CACHE_BITS_C | |
DATA_FIFO_SIZE_C | integer | 1 + DATA_BITS_C + STRB_BITS_C + ID_BITS_C | |
RESP_FIFO_SIZE_C | integer | RESP_BITS_C + ID_BITS_C |
Functions
- addrToSlv (din : AxiWriteMasterType) return slv
Description
Convert address record to slv
- slvToAddr (din : in slv(ADDR_FIFO_SIZE_C-1 downto 0);
valid : in sl;
slave : in AxiWriteMasterType;
master : inout AxiWriteMasterType ) return ()
Description
Convert slv to address record
- dataToSlv (din : AxiWriteMasterType) return slv
Description
Convert data record to slv
- slvToData (din : in slv(DATA_FIFO_SIZE_C-1 downto 0);
valid : in sl;
slave : in AxiWriteMasterType;
master : inout AxiWriteMasterType ) return ()
Description
Convert slv to data record
- respToSlv (din : AxiWriteSlaveType) return slv
Description
Convert resp record to slv
- slvToResp (din : in slv(RESP_FIFO_SIZE_C-1 downto 0);
valid : in sl;
master : in AxiWriteMasterType;
slave : inout AxiWriteSlaveType ) return ()
Description
Convert slv to resp record
Processes
- unnamed: ( sAxiWriteMaster, mAxiWriteSlave,
addrFifoDout, addrFifoAFull, addrFifoValid,
dataFifoDout, dataFifoAFull, dataFifoValid,
respFifoDout, respFifoAFull, respFifoValid )
Description
----------------------- Fifo Outputs -----------------------
Instantiations
- U_AddrFifo: surf.FifoCascade
- U_DataFifo: surf.FifoCascade
- U_RespFifo: surf.FifoCascade