source: PlatformSupport/Deprecated/pcores/linkport_v1_00_a/hdl/vhdl/rx_ll.vhd

Last change on this file was 408, checked in by haijiang, 18 years ago
File size: 6.9 KB
Line 
1--
2--      Project:  Aurora Module Generator version 2.4
3--
4--         Date:  $Date: 2005/12/15 01:59:13 $
5--          Tag:  $Name: i+IP+98818 $
6--         File:  $RCSfile: rx_ll_vhd.ejava,v $
7--          Rev:  $Revision: 1.1.2.5 $
8--
9--      Company:  Xilinx
10-- Contributors:  R. K. Awalt, B. L. Woodard, N. Gulstone
11--
12--   Disclaimer:  XILINX IS PROVIDING THIS DESIGN, CODE, OR
13--                INFORMATION "AS IS" SOLELY FOR USE IN DEVELOPING
14--                PROGRAMS AND SOLUTIONS FOR XILINX DEVICES.  BY
15--                PROVIDING THIS DESIGN, CODE, OR INFORMATION AS
16--                ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE,
17--                APPLICATION OR STANDARD, XILINX IS MAKING NO
18--                REPRESENTATION THAT THIS IMPLEMENTATION IS FREE
19--                FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE
20--                RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY
21--                REQUIRE FOR YOUR IMPLEMENTATION.  XILINX
22--                EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH
23--                RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION,
24--                INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR
25--                REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE
26--                FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES
27--                OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28--                PURPOSE.
29--
30--                (c) Copyright 2004 Xilinx, Inc.
31--                All rights reserved.
32--
33
34--
35--  RX_LL
36--
37--  Author: Nigel Gulstone
38--          Xilinx - Embedded Networking System Engineering Group
39--
40--  VHDL Translation: Brian Woodard
41--                    Xilinx - Garden Valley Design Team
42--
43--  Description: The RX_LL module receives data from the Aurora Channel,
44--               converts it to LocalLink and sends it to the user interface.
45--               It also handles NFC and UFC messages.
46--
47--               This module supports 1 2-byte lane designs.
48--
49--               This module supports Immediate Mode Native Flow Control.
50--
51
52library IEEE;
53use IEEE.STD_LOGIC_1164.all;
54
55entity RX_LL is
56
57    port (
58
59    -- LocalLink PDU Interface
60
61            RX_D             : out std_logic_vector(0 to 15);
62            RX_REM           : out std_logic;
63            RX_SRC_RDY_N     : out std_logic;
64            RX_SOF_N         : out std_logic;
65            RX_EOF_N         : out std_logic;
66
67    -- Global Logic Interface
68
69            START_RX         : in std_logic;
70
71    -- Aurora Lane Interface
72
73            RX_PAD           : in std_logic;
74            RX_PE_DATA       : in std_logic_vector(0 to 15);
75            RX_PE_DATA_V     : in std_logic;
76            RX_SCP           : in std_logic;
77            RX_ECP           : in std_logic;
78            RX_SNF           : in std_logic;
79            RX_FC_NB         : in std_logic_vector(0 to 3);
80
81    -- TX_LL Interface
82
83            DECREMENT_NFC    : in std_logic;
84            TX_WAIT          : out std_logic;
85
86    -- Error Interface
87
88            FRAME_ERROR      : out std_logic;
89
90    -- System Interface
91
92            USER_CLK         : in std_logic
93
94         );
95
96end RX_LL;
97
98architecture MAPPED of RX_LL is
99
100-- External Register Declarations --
101
102    signal RX_D_Buffer             : std_logic_vector(0 to 15);
103    signal RX_REM_Buffer           : std_logic;
104    signal RX_SRC_RDY_N_Buffer     : std_logic;
105    signal RX_SOF_N_Buffer         : std_logic;
106    signal RX_EOF_N_Buffer         : std_logic;
107    signal TX_WAIT_Buffer          : std_logic;
108    signal FRAME_ERROR_Buffer      : std_logic;
109
110-- Wire Declarations --
111
112    signal start_rx_i          : std_logic;
113
114-- Component Declarations --
115
116    component RX_LL_NFC
117
118        port (
119
120        -- Aurora Lane Interface
121
122                RX_SNF        : in  std_logic;
123                RX_FC_NB      : in  std_logic_vector(0 to 3);
124
125        -- TX_LL Interface
126
127                DECREMENT_NFC : in  std_logic;
128                TX_WAIT       : out std_logic;
129
130        -- Global Logic Interface
131
132                CHANNEL_UP    : in  std_logic;
133
134        -- USER Interface
135
136                USER_CLK      : in  std_logic
137
138             );
139
140    end component;
141
142
143    component RX_LL_PDU_DATAPATH
144
145        port (
146
147        -- Traffic Separator Interface
148
149                PDU_DATA     : in std_logic_vector(0 to 15);
150                PDU_DATA_V   : in std_logic;
151                PDU_PAD      : in std_logic;
152                PDU_SCP      : in std_logic;
153                PDU_ECP      : in std_logic;
154
155        -- LocalLink PDU Interface
156
157                RX_D         : out std_logic_vector(0 to 15);
158                RX_REM       : out std_logic;
159                RX_SRC_RDY_N : out std_logic;
160                RX_SOF_N     : out std_logic;
161                RX_EOF_N     : out std_logic;
162
163        -- Error Interface
164
165                FRAME_ERROR  : out std_logic;
166
167        -- System Interface
168
169                USER_CLK     : in std_logic;
170                RESET        : in std_logic
171
172             );
173
174    end component;
175
176
177begin
178
179    RX_D             <= RX_D_Buffer;
180    RX_REM           <= RX_REM_Buffer;
181    RX_SRC_RDY_N     <= RX_SRC_RDY_N_Buffer;
182    RX_SOF_N         <= RX_SOF_N_Buffer;
183    RX_EOF_N         <= RX_EOF_N_Buffer;
184    TX_WAIT          <= TX_WAIT_Buffer;
185    FRAME_ERROR      <= FRAME_ERROR_Buffer;
186
187    start_rx_i       <= not START_RX;
188
189-- Main Body of Code --
190
191    -- NFC processing --
192
193    nfc_module_i : RX_LL_NFC
194
195        port map (
196
197        -- Aurora Lane Interface
198
199                    RX_SNF        => RX_SNF,
200                    RX_FC_NB      => RX_FC_NB,
201
202        -- TX_LL Interface
203
204                    DECREMENT_NFC => DECREMENT_NFC,
205                    TX_WAIT       => TX_WAIT_Buffer,
206
207        -- Global Logic Interface
208
209                    CHANNEL_UP    => START_RX,
210
211        -- USER Interface
212
213                    USER_CLK      => USER_CLK
214
215                 );
216
217
218    -- Datapath for user PDUs --
219
220    rx_ll_pdu_datapath_i : RX_LL_PDU_DATAPATH
221
222        port map (
223
224        -- Traffic Separator Interface
225
226                    PDU_DATA     => RX_PE_DATA,
227                    PDU_DATA_V   => RX_PE_DATA_V,
228                    PDU_PAD      => RX_PAD,
229                    PDU_SCP      => RX_SCP,
230                    PDU_ECP      => RX_ECP,
231
232        -- LocalLink PDU Interface
233
234                    RX_D         => RX_D_Buffer,
235                    RX_REM       => RX_REM_Buffer,
236                    RX_SRC_RDY_N => RX_SRC_RDY_N_Buffer,
237                    RX_SOF_N     => RX_SOF_N_Buffer,
238                    RX_EOF_N     => RX_EOF_N_Buffer,
239
240        -- Error Interface
241
242                    FRAME_ERROR  => FRAME_ERROR_Buffer,
243
244        -- System Interface
245
246                    USER_CLK     => USER_CLK,
247                    RESET        => start_rx_i
248
249                 );
250
251
252end MAPPED;
Note: See TracBrowser for help on using the repository browser.