1 ------------------------------------------------------------------------------- 2 -- File : GigEthGthUltraScale.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 Gth7 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_gthUltraScale 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 66 end GigEthGthUltraScale;
142 -- Ethernet Interface 148 -- GMII PHY Interface 159 U_GigEthGthUltraScaleCore :
entity work.GigEthGthUltraScaleCore
162 gtrefclk =>
sysClk125,
-- Used as CPLL clock reference 163 independent_clock_bufg =>
sysClk62,
-- Used for the GT free running and DRP clock 183 gmii_isolate =>
open,
189 -- Configuration and Status 190 configuration_vector => config.coreConfig,
191 status_vector => status.coreStatus,
197 -------------------------------- 198 -- Configuration/Status Register 199 -------------------------------- 206 -- Local Configurations 211 -- AXI-Lite Register Interface 216 -- Configuration and Status Interface EN_AXI_REG_Gboolean := false
in statusGigEthStatusType
out dmaIbMasterAxiStreamMasterType
out axiReadSlaveAxiLiteReadSlaveType
in axiWriteMasterAxiLiteWriteMasterType
AxiLiteReadSlaveType mAxiReadSlave
AxiLiteWriteSlaveType mAxiWriteSlave
in dmaObMasterAxiStreamMasterType
out mAxiReadMasterAxiLiteReadMasterType
in ibMacPrimMasterAxiStreamMasterType
AxiLiteWriteMasterType mAxiWriteMaster
out axiLiteWriteSlaveAxiLiteWriteSlaveType
in mAxiWriteSlaveAxiLiteWriteSlaveType
in localMacslv( 47 downto 0) := MAC_ADDR_INIT_C
in obMacPrimSlaveAxiStreamSlaveType
out sAxiWriteSlaveAxiLiteWriteSlaveType
in arstsl :=not IN_POLARITY_G
AXIS_CONFIG_GAxiStreamConfigType := AXI_STREAM_CONFIG_INIT_C
in sAxiReadMasterAxiLiteReadMasterType
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
in sAxiWriteMasterAxiLiteWriteMasterType
out obMacPrimMasterAxiStreamMasterType
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
out axiLiteReadSlaveAxiLiteReadSlaveType
EN_AXI_REG_Gboolean := false
out ibMacPrimSlaveAxiStreamSlaveType
in axiLiteReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
in localMacslv( 47 downto 0) := MAC_ADDR_INIT_C
out configGigEthConfigType
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
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 mAxiReadSlaveAxiLiteReadSlaveType
in gmiiRxdslv( 7 downto 0) :=( others => '0')
in ethConfigEthMacConfigType
out ethStatusEthMacStatusType
out dmaObSlaveAxiStreamSlaveType
in dmaIbSlaveAxiStreamSlaveType
in axiLiteWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
out mAxiWriteMasterAxiLiteWriteMasterType
AxiLiteReadMasterType mAxiReadMaster
out gmiiTxdslv( 7 downto 0)
out axiWriteSlaveAxiLiteWriteSlaveType