00001 --**************************************************************
00002 --* *
00003 --* The source code for the ATLAS BCM "AAA" FPGA is made *
00004 --* available via the GNU General Public License (GPL) *
00005 --* unless otherwise stated below. *
00006 --* *
00007 --* In case of problems/questions/bug reports etc. please *
00008 --* contact michael.niegl@cern.ch *
00009 --* *
00010 --**************************************************************
00011
00012 --**************************************************************
00013 --* *
00014 --* $Source: /local/reps/bcmfpga/bcm_aaa/bcm_aaa/eth/ncm_pac.vhd,v $ *
00015 --* $Revision: 2.1.2.3 $ *
00016 --* $Name: dev $ *
00017 --* $Author: mniegl $ *
00018 --* $Date: 2008/11/03 17:57:46 $ *
00019
00020
00021 --* *
00022 --**************************************************************
00023
00024
00025 library ieee;
00026
00027 use ieee.std_logic_1164.all;
00028
00029 package ncm_package is
00030
00031 -- constants
00032 constant NCM_BASECLOCK : := 100_000_000; -- 100 MHz
00033 constant NCM_1MHZ : := 1_000_000;
00034
00035 constant NCM_MAC : (47 downto 0) := X"123456789aff";
00036 constant NCM_ETH_TYPEH : (7 downto 0) := X"5C";
00037 constant NCM_ETH_TYPE : (7 downto 0) := X"E0";
00038 constant NCM_SYNC_TYPE : (7 downto 0) := X"FF"; -- high byte MUST be the same by design!
00039
00040 -- components
00041
00042 component temac_controller is
00043 port (
00044 TXVLD_N : out ;
00045 gmii_col : in ;
00046 gmii_crs : in ;
00047 gmii_rx_clk : in ;
00048 gmii_rx_dv : in ;
00049 gmii_rx_er : in ;
00050 gmii_rxd : in (0 to 7);
00051 mii_tx_clk : in ;
00052 gmii_tx_clk : out ;
00053 gmii_tx_en : out ;
00054 gmii_tx_er : out ;
00055 gmii_txd : out (0 to 7);
00056 MDC_0 : out ;
00057 mdio : inout ;
00058 sys_rst : in ;
00059 phy_mii_int : out ;
00060 sys_clk : in ;
00061 dcm1_locked : out ;
00062 -- tx fifo interface
00063 tx_fifo_data : in (0 to 31); -- data in 24 - 31
00064 tx_fifo_wren : in ;
00065 tx_fifo_full : out ;
00066 tx_fifo_lock_n : in ;
00067 EMPTY : out ;
00068 -- rx fifo interface
00069 rx_fifo_rst : in ;
00070 rx_fifo_data : out (0 to 31); -- data in 24 - 31
00071 rx_fifo_rden : in ;
00072 clk_100mhz : in
00073 );
00074 end component;
00075
00076
00077
00078 component auto_receiver
00079 port(
00080 clk : in ;
00081 en : in ;
00082 rx_fifo_data : in (7 downto 0);
00083 rx_good_packet : in ;
00084 rx_bad_packet : in ;
00085 rx_valid : in ;
00086 rx_rderr : in ;
00087 busy : out ;
00088 rx_fifo_rst : out ;
00089 rx_fifo_en : out ;
00090 ncm_sync : out ;
00091 ncm_rcv_channel : out (3 downto 0);
00092 ncm_rcv_en : out ;
00093 ncm_rcv_data : out (7 downto 0);
00094 ncm_rcv_reset : out ;
00095 ARP_vld : out ;
00096 SHA : out (47 downto 0);
00097 SPA : out (31 downto 0);
00098 packet : out (19 downto 0);
00099 data_type : out (11 downto 0);
00100 lastpacketlen : out (15 downto 0);
00101 goodcnt : out (31 downto 0);
00102 nobroadcst : out (15 downto 0);
00103 badcnt : out (31 downto 0)
00104 );
00105 end component;
00106
00107 end ncm_package;
00108
00109
00110 package body _ncm_package is
00111
00112 end ncm_package;