1 ------------------------------------------------------------------------------- 2 -- File : AxiWriteEmulate.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2013-04-02 5 -- Last update: 2016-04-26 6 ------------------------------------------------------------------------------- 7 -- Description: AXI4 Write Emulation Module 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;
20 use ieee.std_logic_arith.
all;
21 use ieee.std_logic_unsigned.
all;
92 -- Latch the current value 95 -- Reset the variables 100 ---------------------------------------------------------------------- 102 v.cnt := (others=>'0');
104 -- Check for a memory request 113 ---------------------------------------------------------------------- 117 -- Write data channel 128 ---------------------------------------------------------------------- 134 -- Increment the counter 137 ---------------------------------------------------------------------- 152 -- Register the variable for next clock cycle 162 if (rising_edge(axiClk)) then AxiWriteSlaveType :=(awready => '0',wready => '0',bresp =>( others => '0'),bvalid => '0',bid =>( others => '0')) AXI_WRITE_SLAVE_INIT_C
out sAxiWriteSlaveAxiWriteSlaveType
slv( 1023 downto 0) wdata
natural range 0 to LATENCY_G latency
in axiWriteMasterAxiWriteMasterType
AxiWriteSlaveType intWriteSlave
AXI_CONFIG_GAxiConfigType := AXI_CONFIG_INIT_C
RegType :=(latency => 0,cnt =>( others => '0'),state => IDLE_S,iMaster => AXI_WRITE_MASTER_INIT_C,iSlave => AXI_WRITE_SLAVE_INIT_C) REG_INIT_C
(IDLE_S,DATA_S,WAIT_S,RESP_S) StateType
AxiWriteMasterType iMaster
in mAxiWriteSlaveAxiWriteSlaveType
SIM_DEBUG_Gboolean := false
positive range 1 to 128 DATA_BYTES_C
out axiWriteSlaveAxiWriteSlaveType
AxiConfigType :=axiConfig(ADDR_WIDTH_C => 32,DATA_BYTES_C => 4,ID_BITS_C => 12,LEN_BITS_C => 4) AXI_CONFIG_INIT_C
AxiWriteMasterType intWriteMaster
AxiWriteMasterType :=(awvalid => '0',awaddr =>( others => '0'),awid =>( others => '0'),awlen =>( others => '0'),awsize =>( others => '0'),awburst =>( others => '0'),awlock =>( others => '0'),awprot =>( others => '0'),awcache =>( others => '0'),awqos =>( others => '0'),awregion =>( others => '0'),wdata =>( others => '0'),wlast => '0',wvalid => '0',wid =>( others => '0'),wstrb =>( others => '0'),bready => '0') AXI_WRITE_MASTER_INIT_C
in sAxiWriteMasterAxiWriteMasterType
AXI_CONFIG_GAxiConfigType := AXI_CONFIG_INIT_C
out mAxiWriteMasterAxiWriteMasterType