1 ------------------------------------------------------------------------------- 2 -- File : AxiLiteFifoPush.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2013-04-02 5 -- Last update: 2016-04-26 6 ------------------------------------------------------------------------------- 8 -- Supports writing of general purpose FIFOs from the AxiLite bus. 9 -- 16 address locations per FIFO. 10 ------------------------------------------------------------------------------- 11 -- This file is part of 'SLAC Firmware Standard Library'. 12 -- It is subject to the license terms in the LICENSE.txt file found in the 13 -- top-level directory of this distribution and at: 14 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 15 -- No part of 'SLAC Firmware Standard Library', including this file, 16 -- may be copied, modified, propagated, or distributed except according to 17 -- the terms contained in the LICENSE.txt file. 18 ------------------------------------------------------------------------------- 21 use ieee.std_logic_1164.
all;
22 use IEEE.STD_LOGIC_ARITH.
ALL;
23 use IEEE.STD_LOGIC_UNSIGNED.
ALL;
44 -- AXI Interface (axiClk) 53 -- Push FIFO Read Interface (pushFifoClk) 93 ----------------------------------------- 95 ----------------------------------------- 150 ----------------------------------------- 152 ----------------------------------------- 157 if (rising_edge(axiClk)) then 200 -- Next register assignment 211 end architecture structure;
ALTERA_RAM_Gstring := "M9K"
integer := bitSize( PUSH_FIFO_COUNT_G- 1) PUSH_SIZE_C
out doutslv( DATA_WIDTH_G- 1 downto 0)
XIL_DEVICE_Gstring := "7SERIES"
slv( 35 downto 0) pushFifoDin
RST_ASYNC_Gboolean := false
out pushFifoAFullslv( PUSH_FIFO_COUNT_G- 1 downto 0)
PUSH_ADDR_WIDTH_Ginteger range 4 to 48:= 4
integer := 2** PUSH_SIZE_C PUSH_COUNT_C
in pushFifoRstslv( PUSH_FIFO_COUNT_G- 1 downto 0)
out pushFifoValidslv( PUSH_FIFO_COUNT_G- 1 downto 0)
AxiLiteReadSlaveType axiReadSlave
slv( PUSH_COUNT_C- 1 downto 0) ipushFifoFull
in dinslv( DATA_WIDTH_G- 1 downto 0)
slv( PUSH_COUNT_C- 1 downto 0) ipushFifoWrite
EMPTY_THRES_Ginteger range 1 to ( 2** 24):= 1
ALTERA_SYN_Gboolean := false
Slv( 35 downto 0) ipushFifoDin
ALTERA_SYN_Gboolean := false
in axiWriteMasterAxiLiteWriteMasterType
in axiReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
AxiLiteStatusType axiStatus
PUSH_FIFO_COUNT_Gpositive := 1
XIL_DEVICE_Gstring := "7SERIES"
PUSH_BRAM_EN_Gboolean := false
slv( PUSH_COUNT_C- 1 downto 0) pushFifoWrite
ALTERA_RAM_Gstring := "M9K"
FULL_THRES_Ginteger range 1 to ( 2** 24):= 1
SYNC_STAGES_Ginteger range 3 to ( 2** 24):= 3
in pushFifoClkslv( PUSH_FIFO_COUNT_G- 1 downto 0)
USE_BUILT_IN_Gboolean := false
out axiReadSlaveAxiLiteReadSlaveType
PUSH_SYNC_FIFO_Gboolean := false
out axiWriteSlaveAxiLiteWriteSlaveType
AxiLiteReadSlaveType :=(arready => '0',rdata =>( others => '0'),rresp =>( others => '0'),rvalid => '0') AXI_LITE_READ_SLAVE_INIT_C
RegType :=(pushFifoWrite =>( others => '0'),pushFifoDin =>( others => '0'),axiReadSlave => AXI_LITE_READ_SLAVE_INIT_C,axiWriteSlave => AXI_LITE_WRITE_SLAVE_INIT_C) REG_INIT_C
out pushFifoDoutSlv36Array( PUSH_FIFO_COUNT_G- 1 downto 0)
GEN_SYNC_FIFO_Gboolean := false
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
array(natural range <> ) of slv( 35 downto 0) Slv36Array
slv( PUSH_COUNT_C- 1 downto 0) ipushFifoAFull
USE_DSP48_Gstring := "no"
LAST_STAGE_ASYNC_Gboolean := true
ADDR_WIDTH_Ginteger range 4 to 48:= 4
USE_BUILT_IN_Gboolean := false
FWFT_EN_Gboolean := false
DATA_WIDTH_Ginteger range 1 to ( 2** 24):= 16
in pushFifoReadslv( PUSH_FIFO_COUNT_G- 1 downto 0)
CASCADE_SIZE_Ginteger range 1 to ( 2** 24):= 1
out wr_data_countslv( ADDR_WIDTH_G- 1 downto 0)
AxiLiteWriteSlaveType :=(awready => '0',wready => '0',bresp =>( others => '0'),bvalid => '0') AXI_LITE_WRITE_SLAVE_INIT_C
out rd_data_countslv( ADDR_WIDTH_G- 1 downto 0)
AxiLiteWriteSlaveType axiWriteSlave