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