1 |
3 |
axuan25268 |
-------------------------------------------------------------------------------
|
2 |
|
|
-- Title :
|
3 |
|
|
-- Project :
|
4 |
|
|
-------------------------------------------------------------------------------
|
5 |
|
|
-- File : eth_pkg.vhd
|
6 |
|
|
-- Author : liyi <alxiuyain@foxmail.com>
|
7 |
|
|
-- Company : OE@HUST
|
8 |
|
|
-- Created : 2012-11-04
|
9 |
|
|
-- Last update: 2012-12-03
|
10 |
|
|
-- Platform :
|
11 |
|
|
-- Standard : VHDL'93/02
|
12 |
|
|
-------------------------------------------------------------------------------
|
13 |
|
|
-- Description:
|
14 |
|
|
-------------------------------------------------------------------------------
|
15 |
|
|
-- Copyright (c) 2012 OE@HUST
|
16 |
|
|
-------------------------------------------------------------------------------
|
17 |
|
|
-- Revisions :
|
18 |
|
|
-- Date Version Author Description
|
19 |
|
|
-- 2012-11-04 1.0 root Created
|
20 |
|
|
-------------------------------------------------------------------------------
|
21 |
|
|
LIBRARY ieee;
|
22 |
|
|
USE ieee.std_logic_1164.ALL;
|
23 |
|
|
use ieee.numeric_std.all;
|
24 |
|
|
-------------------------------------------------------------------------------
|
25 |
|
|
PACKAGE eth_pkg IS
|
26 |
|
|
|
27 |
|
|
CONSTANT ETH_TYPE_IPv4 : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"0800";
|
28 |
|
|
CONSTANT ETH_TYPE_ARP : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"0806";
|
29 |
|
|
CONSTANT ETH_TYPE_RARP : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"8035";
|
30 |
|
|
CONSTANT ETH_TYPE_8021Q : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"8100";
|
31 |
|
|
CONSTANT ETH_TYPE_CTRL : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"8808";
|
32 |
|
|
CONSTANT ETH_TYPE_JUMBO : STD_LOGIC_VECTOR(15 DOWNTO 0) := X"8870";
|
33 |
|
|
|
34 |
|
|
CONSTANT IPv4_PROTOCOL_ICMP : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"01";
|
35 |
|
|
CONSTANT IPv4_PROTOCOL_TCP : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"06";
|
36 |
|
|
CONSTANT IPv4_PROTOCOL_UDP : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"11";
|
37 |
|
|
|
38 |
|
|
-- multicast address for control frame
|
39 |
|
|
CONSTANT MAC_ADDR_CTRL : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"0180C2000001";
|
40 |
|
|
|
41 |
|
|
CONSTANT TCP_OPT_EOL : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"00"; --end of list
|
42 |
|
|
CONSTANT TCP_OPT_NOP : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"01";
|
43 |
|
|
CONSTANT TCP_OPT_MSS : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"02";
|
44 |
|
|
CONSTANT TCP_OPT_WS : STD_LOGIC_VECTOR(7 DOWNTO 0) := X"03"; --window scale
|
45 |
|
|
|
46 |
|
|
-----------------------------------------------------------------------------
|
47 |
|
|
-- registers address
|
48 |
|
|
-----------------------------------------------------------------------------
|
49 |
|
|
CONSTANT REG_ADDR_WIDTH : INTEGER := 5;
|
50 |
|
|
CONSTANT MDIO_MODER_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(0, REG_ADDR_WIDTH);
|
51 |
|
|
CONSTANT MDIO_CMD_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(1, REG_ADDR_WIDTH);
|
52 |
|
|
CONSTANT MDIO_ADDR_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(2, REG_ADDR_WIDTH);
|
53 |
|
|
CONSTANT MDIO_TxD_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(3, REG_ADDR_WIDTH);
|
54 |
|
|
CONSTANT MDIO_RxD_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(4, REG_ADDR_WIDTH);
|
55 |
|
|
|
56 |
|
|
CONSTANT RGMII_STATUS_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(5, REG_ADDR_WIDTH);
|
57 |
|
|
CONSTANT MAC_ADDR0L_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(6, REG_ADDR_WIDTH);
|
58 |
|
|
CONSTANT MAC_ADDR0H_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(7, REG_ADDR_WIDTH);
|
59 |
|
|
CONSTANT MAC_ADDR1L_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(8, REG_ADDR_WIDTH);
|
60 |
|
|
CONSTANT MAC_ADDR1H_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(9, REG_ADDR_WIDTH);
|
61 |
|
|
CONSTANT IP_ADDR0_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(10, REG_ADDR_WIDTH);
|
62 |
|
|
CONSTANT IP_ADDR1_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(11, REG_ADDR_WIDTH);
|
63 |
|
|
CONSTANT LISTEN_PORT_addr : UNSIGNED(REG_ADDR_WIDTH-1 DOWNTO 0) := to_unsigned(12, REG_ADDR_WIDTH);
|
64 |
|
|
|
65 |
|
|
|
66 |
|
|
END PACKAGE eth_pkg;
|
67 |
|
|
-------------------------------------------------------------------------------
|
68 |
|
|
PACKAGE BODY eth_pkg IS
|
69 |
|
|
|
70 |
|
|
|
71 |
|
|
|
72 |
|
|
END PACKAGE BODY eth_pkg;
|