1 ------------------------------------------------------------------------------- 2 -- File : GigEthGtp7.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2016-02-07 5 -- Last update: 2017-05-12 6 ------------------------------------------------------------------------------- 7 -- Description: 1000BASE-X Ethernet for Gtp7 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;
28 --! @ingroup ethernet_GigEthCore_gtp7 32 -- AXI-Lite Configurations 35 -- AXI Streaming Configurations 38 -- Local Configurations 39 localMac :
in slv(
47 downto 0) := MAC_ADDR_INIT_C;
40 -- Streaming DMA Interface 47 -- Slave AXI-Lite Interface 148 -- Ethernet Interface 154 -- GMII PHY Interface 165 U_GigEthGtp7Core :
entity work.GigEthGtp7Core
168 gtrefclk_bufg =>
sysClk125,
-- Used as DRP clock in IP core 169 gtrefclk =>
sysClk125,
-- Not connected to loads in GTP7 IP core 170 independent_clock_bufg =>
sysClk125,
-- Used as stable clock reference 190 gmii_isolate =>
open,
196 -- Quad PLL Interface 204 -- Configuration and Status 205 configuration_vector => config.coreConfig,
206 status_vector => status.coreStatus,
213 -------------------------------- 214 -- Configuration/Status Register 215 -------------------------------- 222 -- Local Configurations 227 -- AXI-Lite Register Interface 232 -- Configuration and Status Interface EN_AXI_REG_Gboolean := false
in statusGigEthStatusType
in axiLiteWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
out axiReadSlaveAxiLiteReadSlaveType
out dmaIbMasterAxiStreamMasterType
in qPllOutClkslv( 1 downto 0)
out axiLiteReadSlaveAxiLiteReadSlaveType
in axiWriteMasterAxiLiteWriteMasterType
in qPllOutRefClkslv( 1 downto 0)
AxiLiteReadSlaveType mAxiReadSlave
AxiLiteReadMasterType mAxiReadMaster
out mAxiReadMasterAxiLiteReadMasterType
in ibMacPrimMasterAxiStreamMasterType
in axiLiteReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
in dmaObMasterAxiStreamMasterType
in mAxiWriteSlaveAxiLiteWriteSlaveType
out axiLiteWriteSlaveAxiLiteWriteSlaveType
out dmaObSlaveAxiStreamSlaveType
in obMacPrimSlaveAxiStreamSlaveType
out sAxiWriteSlaveAxiLiteWriteSlaveType
out qPllResetslv( 1 downto 0)
in arstsl :=not IN_POLARITY_G
in sAxiReadMasterAxiLiteReadMasterType
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
in sAxiWriteMasterAxiLiteWriteMasterType
out obMacPrimMasterAxiStreamMasterType
in dmaIbSlaveAxiStreamSlaveType
AxiLiteWriteSlaveType mAxiWriteSlave
out ibMacPrimSlaveAxiStreamSlaveType
in localMacslv( 47 downto 0) := MAC_ADDR_INIT_C
out configGigEthConfigType
EN_AXI_REG_Gboolean := false
out sAxiReadSlaveAxiLiteReadSlaveType
slv( 15 downto 0) coreStatus
PRIM_CONFIG_GAxiStreamConfigType := EMAC_AXIS_CONFIG_C
DURATION_Gnatural range 0 to (( 2** 30)- 1):= 156250000
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
PHY_TYPE_Gstring := "XGMII"
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
AxiStreamConfigType :=(TSTRB_EN_C => false,TDATA_BYTES_C => 16,TDEST_BITS_C => 4,TID_BITS_C => 0,TKEEP_MODE_C => TKEEP_NORMAL_C,TUSER_BITS_C => 4,TUSER_MODE_C => TUSER_NORMAL_C) AXI_STREAM_CONFIG_INIT_C
AxiLiteWriteMasterType mAxiWriteMaster
in axiReadMasterAxiLiteReadMasterType
AxiLiteWriteMasterType :=(awaddr =>( others => '0'),awprot =>( others => '0'),awvalid => '0',wdata =>( others => '0'),wstrb =>( others => '1'),wvalid => '0',bready => '1') AXI_LITE_WRITE_MASTER_INIT_C
in localMacslv( 47 downto 0) := MAC_ADDR_INIT_C
in mAxiReadSlaveAxiLiteReadSlaveType
in gmiiRxdslv( 7 downto 0) :=( others => '0')
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
in qPllRefClkLostslv( 1 downto 0)
in ethConfigEthMacConfigType
out ethStatusEthMacStatusType
AXIS_CONFIG_GAxiStreamConfigType := AXI_STREAM_CONFIG_INIT_C
in qPllLockslv( 1 downto 0)
out mAxiWriteMasterAxiLiteWriteMasterType
out gmiiTxdslv( 7 downto 0)
out axiWriteSlaveAxiLiteWriteSlaveType