1 ------------------------------------------------------------------------------- 2 -- File : GigEthGth7.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_gth7 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 142 -- Ethernet Interface 148 -- GMII PHY Interface 159 U_GigEthGth7Core :
entity work.GigEthGth7Core
162 gtrefclk_bufg =>
sysClk125,
-- Used as DRP clock in IP core 163 gtrefclk =>
sysClk125,
-- Used as CPLL clock reference 164 independent_clock_bufg =>
sysClk125,
-- Used as stable clock reference 184 gmii_isolate =>
open,
190 -- Quad PLL Interface 191 gt0_qplloutclk_in => '0',
-- QPLL not used 192 gt0_qplloutrefclk_in => '0',
-- QPLL not used 193 -- Configuration and Status 194 configuration_vector => config.coreConfig,
195 status_vector => status.coreStatus,
201 -------------------------------- 202 -- Configuration/Status Register 203 -------------------------------- 210 -- Local Configurations 215 -- AXI-Lite Register Interface 220 -- Configuration and Status Interface EN_AXI_REG_Gboolean := false
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
in statusGigEthStatusType
in axiLiteReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
out axiReadSlaveAxiLiteReadSlaveType
AxiLiteReadSlaveType mAxiReadSlave
in axiLiteWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
in axiWriteMasterAxiLiteWriteMasterType
AxiLiteWriteMasterType mAxiWriteMaster
out dmaObSlaveAxiStreamSlaveType
out mAxiReadMasterAxiLiteReadMasterType
in ibMacPrimMasterAxiStreamMasterType
in mAxiWriteSlaveAxiLiteWriteSlaveType
out axiLiteReadSlaveAxiLiteReadSlaveType
in obMacPrimSlaveAxiStreamSlaveType
out axiLiteWriteSlaveAxiLiteWriteSlaveType
out sAxiWriteSlaveAxiLiteWriteSlaveType
in arstsl :=not IN_POLARITY_G
out dmaIbMasterAxiStreamMasterType
in sAxiReadMasterAxiLiteReadMasterType
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
in sAxiWriteMasterAxiLiteWriteMasterType
AxiLiteWriteSlaveType mAxiWriteSlave
out obMacPrimMasterAxiStreamMasterType
out ibMacPrimSlaveAxiStreamSlaveType
in localMacslv( 47 downto 0) := MAC_ADDR_INIT_C
EN_AXI_REG_Gboolean := false
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
in dmaObMasterAxiStreamMasterType
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
AXIS_CONFIG_GAxiStreamConfigType := AXI_STREAM_CONFIG_INIT_C
in axiReadMasterAxiLiteReadMasterType
AxiLiteReadMasterType mAxiReadMaster
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
in dmaIbSlaveAxiStreamSlaveType
out mAxiWriteMasterAxiLiteWriteMasterType
out gmiiTxdslv( 7 downto 0)
out axiWriteSlaveAxiLiteWriteSlaveType