OpenCores
URL https://opencores.org/ocsvn/gbiteth/gbiteth/trunk

Subversion Repositories gbiteth

[/] [gbiteth/] [trunk/] [rtl/] [rgmii/] [rgmii_rx_top.vhd] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 3 axuan25268
-------------------------------------------------------------------------------
2
-- Title      : 
3
-- Project    : 
4
-------------------------------------------------------------------------------
5
-- File       : rgmii_rx_top.vhd
6
-- Author     : liyi  <alxiuyain@foxmail.com>
7
-- Company    : OE@HUST
8
-- Created    : 2013-05-10
9
-- Last update: 2013-05-20
10
-- Platform   : 
11
-- Standard   : VHDL'93/02
12
-------------------------------------------------------------------------------
13
-- Description: 
14
-------------------------------------------------------------------------------
15
-- Copyright (c) 2013 OE@HUST
16
-------------------------------------------------------------------------------
17
-- Revisions  :
18
-- Date        Version  Author  Description
19
-- 2013-05-10  1.0      liyi    Created
20
-------------------------------------------------------------------------------
21
LIBRARY ieee;
22
USE ieee.std_logic_1164.ALL;
23
USE ieee.numeric_std.ALL;
24
USE work.de2_pkg.ALL;
25
-------------------------------------------------------------------------------
26
ENTITY rgmii_rx_top IS
27
  GENERIC (
28
    MY_MAC        : STD_LOGIC_VECTOR(47 DOWNTO 0) := X"10BF487A0FED";
29
    IN_SIMULATION : BOOLEAN                       := FALSE);
30
  PORT (
31
    iWbClk  : IN STD_LOGIC;
32
    iEthClk : IN STD_LOGIC;
33
    iRst_n  : IN STD_LOGIC;
34
 
35
    iWbS2M      : IN  wbSlaveToMasterIF_t;
36
    oWbM2S      : OUT wbMasterToSlaveIF_t;
37
    -- synthesis translate_off
38
    oWbM2S_dat  : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
39
    oWbM2S_addr : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
40
    oWbM2S_sel  : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
41
    oWbM2S_cyc  : OUT STD_LOGIC;
42
    oWbM2S_stb  : OUT STD_LOGIC;
43
    oWbM2S_we   : OUT STD_LOGIC;
44
    oWbM2S_cti  : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
45
    oWbM2S_bte  : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
46
    iWbS2M_ack  : IN  STD_LOGIC;
47
    -- synthesis translate_on
48
 
49
    iEnetRxData : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
50
    iEnetRxDv   : IN STD_LOGIC;
51
    iEnetRxErr  : IN STD_LOGIC;
52
 
53
    iWbRxEn       : IN  STD_LOGIC;
54
    iWbRxIntEn    : IN  STD_LOGIC;
55
    iWbRxIntClr   : IN  STD_LOGIC;
56
    oWbRxIntInfo  : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
57
    iWbRxDescData : IN  STD_LOGIC_VECTOR(31 DOWNTO 0);
58
    oWbRxDescData : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
59
    iWbRxDescWr   : IN  STD_LOGIC;
60
    iWbRxDescAddr : IN  STD_LOGIC_VECTOR(8 DOWNTO 2);
61
    iRxBufBegin   : IN  STD_LOGIC_VECTOR(31 DOWNTO 2);
62
    iRxBufEnd     : IN  STD_LOGIC_VECTOR(31 DOWNTO 2);
63
 
64
    -- hardware checksum check
65
    iCheckSumIPCheck   : IN STD_LOGIC;
66
    iCheckSumTCPCheck  : IN STD_LOGIC;
67
    iCheckSumUDPCheck  : IN STD_LOGIC;
68
    iCheckSumICMPCheck : IN STD_LOGIC;
69
 
70
    oWbRxInt : OUT STD_LOGIC
71
    );
72
 
73
END ENTITY rgmii_rx_top;
74
-------------------------------------------------------------------------------
75
ARCHITECTURE rtl OF rgmii_rx_top IS
76
 
77
  SIGNAL cSOF        : STD_LOGIC;
78
  SIGNAL cEof        : STD_LOGIC;
79
  SIGNAL cErrCrc     : STD_LOGIC;
80
  SIGNAL cErrLen     : STD_LOGIC;
81
  SIGNAL cGetArp     : STD_LOGIC;
82
  SIGNAL cErrCheckSum : STD_LOGIC;
83
  SIGNAL cGetIPv4    : STD_LOGIC;
84
  SIGNAL cGetCtrl    : STD_LOGIC;
85
  SIGNAL cGetRaw     : STD_LOGIC;
86
  SIGNAL cPayloadLen : UNSIGNED(15 DOWNTO 0);
87
  SIGNAL cRxData     : STD_LOGIC_VECTOR(7 DOWNTO 0);
88
  SIGNAL cRxDV       : STD_LOGIC;
89
 
90
  SIGNAL cRxData32                                           : STD_LOGIC_VECTOR(31 DOWNTO 0);
91
  SIGNAL cRxInfo                                             : STD_LOGIC_VECTOR(31 DOWNTO 0);
92
  SIGNAL cRxDataRd, cRxInfoRd, cIntNewFrame, cIntNewFrameClr : STD_LOGIC;
93
 
94
BEGIN  -- ARCHITECTURE rtl
95
 
96
  rgmii_rx_1 : ENTITY work.rgmii_rx
97
    PORT MAP (
98
      iClk               => iEthClk,
99
      iRst_n             => iRst_n,
100
      iRxData            => iEnetRxData,
101
      iRxDV              => iEnetRxDv,
102
      iRxEr              => iEnetRxErr,
103
      iCheckSumIPCheck   => iCheckSumIPCheck,
104
      iCheckSumTCPCheck  => iCheckSumTCPCheck,
105
      iCheckSumUDPCheck  => iCheckSumUDPCheck,
106
      iCheckSumICMPCheck => iCheckSumICMPCheck,
107
      oEOF               => cEof,
108
      oCRCErr            => cErrCrc,
109
      oRxErr             => OPEN,
110
      oLenErr            => cErrLen,
111
      oCheckSumErr       => cErrCheckSum,
112
      iMyMAC             => MY_MAC,
113
      oGetARP            => cGetArp,
114
      oGetIPv4           => cGetIPv4,
115
      oGetCtrl           => cGetCtrl,
116
      oGetRaw            => cGetRaw,
117
      oSOF               => cSOF,
118
      oTaged             => OPEN,
119
      oTagInfo           => OPEN,
120
      oStackTaged        => OPEN,
121
      oTagInfo2          => OPEN,
122
      oLink              => OPEN,
123
      oSpeed             => OPEN,
124
      oDuplex            => OPEN,
125
      oPayloadLen        => cPayloadLen,
126
      oRxData            => cRxData,
127
      oRxDV              => cRxDV);
128
 
129
  rgmii_rx_buf_1 : ENTITY work.rgmii_rx_buf
130
    PORT MAP (
131
      iEthClk         => iEthClk,
132
      iWbClk          => iWbClk,
133
      iRst_n          => iRst_n,
134
      iEOF            => cEof,
135
      iRxData         => cRxData,
136
      iPayloadLen     => cPayloadLen,
137
      iRxDV           => cRxDV,
138
      iErrCRC         => cErrCrc,
139
      iErrCheckSum    => cErrCheckSum,
140
      iErrLen         => cErrLen,
141
      iGetArp         => cGetArp,
142
      iGetIPv4        => cGetIPv4,
143
      iGetRaw         => cGetRaw,
144
      iSOF            => cSOF,
145
      oRxData         => cRxData32,
146
      oRxLenInfo      => cRxInfo,
147
      iRxDataRead     => cRxDataRd,
148
      iRxInfoRead     => cRxInfoRd,
149
      oIntNewFrame    => cIntNewFrame,
150
      iIntNewFrameClr => cIntNewFrameClr,
151
      iRxEn           => iWbRxEn);
152
 
153
  rgmii_rx_wbm_1 : ENTITY work.rgmii_rx_wbm
154
    GENERIC MAP (
155
      IN_SIMULATION => IN_SIMULATION)
156
    PORT MAP (
157
      iWbClk      => iWbClk,
158
      iRst_n      => iRst_n,
159
      oWbM2S      => oWbM2S,
160
      iWbS2M      => iWbS2M,
161
      -- synthesis translate_off
162
      oWbM2S_dat  => oWbM2S_dat,
163
      oWbM2S_addr => oWbM2S_addr,
164
      oWbM2S_sel  => oWbM2S_sel,
165
      oWbM2S_cyc  => oWbM2S_cyc,
166
      oWbM2S_stb  => oWbM2S_stb,
167
      oWbM2S_we   => oWbM2S_we,
168
      oWbM2S_cti  => oWbM2S_cti,
169
      oWbM2S_bte  => oWbM2S_bte,
170
      iWbS2M_ack  => iWbS2M_ack,
171
      -- synthesis translate_on
172
 
173
      iIntNewFrame    => cIntNewFrame,
174
      oIntNewFrameClr => cIntNewFrameClr,
175
      oRxDataRead     => cRxDataRd,
176
      iRxData         => cRxData32,
177
      oRxInfoRead     => cRxInfoRd,
178
      iRxInfo         => cRxInfo,
179
 
180
      iRegBufBegin => iRxBufBegin,
181
      iRegBufEnd   => iRxBufEnd,
182
      iWbAddr      => iWbRxDescAddr,
183
      iWbWE        => iWbRxDescWr,
184
      iWbData      => iWbRxDescData,
185
      oWbData      => oWbRxDescData,
186
      iWbRxIntClr  => iWbRxIntClr,
187
      oWbRxIntInfo => oWbRxIntInfo,
188
      oWbRxInt     => oWbRxInt,
189
      iWbRxIntEn   => iWbRxIntEn);
190
 
191
END ARCHITECTURE rtl;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.