eFEX firmware  1.7.3
ATLAS l1-calo - electron and tau feature extraction firmware for eFEX boards

Back to eFEX documentation
interface_proc_fpga_struct.vhd
1 -- VHDL Entity ipbus_v2_lib.interface_proc_fpga.symbol
2 --
3 -- Created:
4 -- by - mjs59.UNKNOWN (te7gromit)
5 -- at - 16:36:28 01/11/16
6 --
7 
8 --
9 LIBRARY ieee;
10 USE ieee.std_logic_1164.all;
11 USE ieee.std_logic_arith.all;
12 library ipbus_lib;
13 
14 
16  Generic (
17  constant IPBUFWIDTH: positive := 5
18  );
19  PORT(
20  mac_clk : IN std_logic;
21  mac_rx_data : IN std_logic_vector (7 DOWNTO 0);
22  mac_rx_error : IN std_logic;
23  mac_rx_last : IN std_logic;
24  mac_rx_valid : IN std_logic;
25  mac_tx_ready : IN STD_LOGIC;
26  master_tx_data : IN std_logic_vector (8 DOWNTO 0);
27  master_tx_err : IN std_logic;
28  rarp_rx_data : IN std_logic_vector (7 DOWNTO 0);
29  rarp_rx_last : IN std_logic;
30  rarp_rx_valid : IN std_logic;
31  rst_macclk : IN std_logic;
32  mac_tx_data : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
33  mac_tx_error : OUT STD_LOGIC;
34  mac_tx_last : OUT STD_LOGIC;
35  mac_tx_valid : OUT STD_LOGIC;
36  master_rx_data : OUT std_logic_vector (8 DOWNTO 0);
37  master_tx_pause : OUT STD_LOGIC;
38  master_link_down : IN std_logic;
39  slaves_Got_IP_addr : OUT std_logic
40  );
41 
42 -- Declarations
43 
45 
46 
47 ARCHITECTURE struct OF interface_proc_fpga IS
48 
49  -- Architecture declarations
50 
51  -- Internal signal declarations
52  SIGNAL FIFO_Full : STD_LOGIC;
53  SIGNAL FIFO_Reset : STD_LOGIC;
54  SIGNAL FIFO_WriteEn : std_logic;
55  SIGNAL Got_IP_addr : STD_LOGIC;
56  SIGNAL FIFO_data : std_logic_vector(9 DOWNTO 0);
57 
58 
59 
60 
61 
62 BEGIN
63 
64  FIFO_Reset <= rst_macclk or not Got_IP_addr;
65  slaves_Got_IP_addr <= Got_IP_addr;
66 
67  -- Instance port mappings.
68  U_2 : entity ipbus_lib.udp_hub_fifo
69  GENERIC MAP (
70  BUFWIDTH => IPBUFWIDTH
71  )
72  PORT MAP (
73  mac_clk => mac_clk,
74  rst_macclk => FIFO_Reset,
75  FIFO_WriteEn => FIFO_WriteEn,
76  FIFO_Data => FIFO_data,
77  FIFO_Full => FIFO_Full,
78  hub_tx_pause => master_tx_pause,
79  mac_tx_ready => mac_tx_ready,
80  mac_tx_data => mac_tx_data,
81  mac_tx_error => mac_tx_error,
82  mac_tx_last => mac_tx_last,
83  mac_tx_valid => mac_tx_valid
84  );
85  U_0 : entity ipbus_lib.udp_hub_if
86  PORT MAP (
87  mac_clk => mac_clk,
88  rst_macclk => rst_macclk,
89  mac_rx_data => mac_rx_data,
90  mac_rx_error => mac_rx_error,
91  mac_rx_last => mac_rx_last,
92  mac_rx_valid => mac_rx_valid,
93  rarp_rx_data => rarp_rx_data,
94  rarp_rx_last => rarp_rx_last,
95  rarp_rx_valid => rarp_rx_valid,
96  Got_IP_addr => Got_IP_addr,
97  FIFO_Full => FIFO_Full,
98  FIFO_data => FIFO_data,
99  FIFO_WriteEn => FIFO_WriteEn,
100  hub_rx_data => master_rx_data,
101  hub_tx_data => master_tx_data,
102  hub_tx_err => master_tx_err,
103  hub_link_down => master_link_down
104  );
105 
106 END struct;