1 ------------------------------------------------------------------------------- 2 -- File : Salt7Series.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2015-06-15 5 -- Last update: 2015-09-04 6 ------------------------------------------------------------------------------- 7 -- Description: SLAC Asynchronous Logic Transceiver (SALT) 7-series Core 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;
26 --! @ingroup protocols_salt_xilinx7 68 component Salt7SeriesCore
70 ----------------------------- 71 -- LVDS transceiver Interface 72 ----------------------------- 73 txp :
out ;
-- Differential +ve of serial transmission from PMA to PMD. 74 txn :
out ;
-- Differential -ve of serial transmission from PMA to PMD. 75 rxp :
in ;
-- Differential +ve for serial reception from PMD to PMA. 76 rxn :
in ;
-- Differential -ve for serial reception from PMD to PMA. 79 sgmii_clk_r :
out ;
-- Clock for client MAC (125Mhz, 12.5MHz or 1.25MHz). 80 sgmii_clk_f :
out ;
-- Clock for client MAC (125Mhz, 12.5MHz or 1.25MHz). 81 sgmii_clk_en :
out ;
-- Clock enable for client MAC 85 speed_is_10_100 :
in ;
-- Core should operate at either 10Mbps or 100Mbps speeds 86 speed_is_100 :
in ;
-- Core should operate at 100Mbps speed 94 gmii_txd :
in (
7 downto 0);
-- Transmit data from client MAC. 95 gmii_tx_en :
in ;
-- Transmit control signal from client MAC. 96 gmii_tx_er :
in ;
-- Transmit control signal from client MAC. 97 gmii_rxd :
out (
7 downto 0);
-- Received Data to client MAC. 98 gmii_rx_dv :
out ;
-- Received control signal to client MAC. 99 gmii_rx_er :
out ;
-- Received control signal to client MAC. 100 gmii_isolate :
out ;
-- Tristate control to electrically isolate GMII. 104 configuration_vector :
in (
4 downto 0);
-- Alternative to MDIO interface. 105 status_vector :
out (
15 downto 0);
-- Core status. 106 reset :
in ;
-- Asynchronous reset for entire core. 107 signal_detect :
in );
-- Input from PMD to indicate presence of optical input. 124 config(
0) <= '1'; -- Unidirectional Enabled
125 config(
1) <= loopback; -- loopback
126 config(
2) <= powerDown; -- powerDown
127 config(
3) <= '0'; -- Isolate Disabled
128 config(
4) <= '0'; -- Auto-Negotiation Disabled
130 U_Salt7SeriesCore : Salt7SeriesCore
132 ----------------------------- 133 -- LVDS transceiver Interface 134 ----------------------------- 143 sgmii_clk_en =>
open,
147 speed_is_10_100 => '0',
162 gmii_isolate =>
open,
166 configuration_vector =>
config,
169 signal_detect => '1'
);
172 SaltTx_Inst :
entity work.
SaltTx 199 SaltRx_Inst :
entity work.
SaltRx
in mAxisSlaveAxiStreamSlaveType
out mAxisMasterAxiStreamMasterType
out mAxisMasterAxiStreamMasterType
in sAxisMasterAxiStreamMasterType
RX_ENABLE_Gboolean := true
AxiStreamMasterType :=(tValid => '0',tData =>( others => '0'),tStrb =>( others => '1'),tKeep =>( others => '1'),tLast => '0',tDest =>( others => '0'),tId =>( others => '0'),tUser =>( others => '0')) AXI_STREAM_MASTER_INIT_C
SLAVE_AXI_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 4)
in sAxisMasterAxiStreamMasterType
SLAVE_AXI_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 4)
MASTER_AXI_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 4)
out sAxisSlaveAxiStreamSlaveType
in rxDataslv( 7 downto 0)
COMMON_TX_CLK_Gboolean := false
in mAxisSlaveAxiStreamSlaveType
TX_ENABLE_Gboolean := true
MASTER_AXI_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 4)
COMMON_RX_CLK_Gboolean := false
out sAxisSlaveAxiStreamSlaveType
COMMON_RX_CLK_Gboolean := false
AxiStreamSlaveType :=(tReady => '1') AXI_STREAM_SLAVE_FORCE_C
out txDataslv( 7 downto 0)
COMMON_TX_CLK_Gboolean := false