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

Last change on this file was 408, checked in by haijiang, 18 years ago
File size: 9.1 KB
Line 
1--
2--      Project:  Aurora Module Generator version 2.4
3--
4--         Date:  $Date: 2005/11/16 00:32:43 $
5--          Tag:  $Name: i+IP+98818 $
6--         File:  $RCSfile: global_logic_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--  GLOBAL_LOGIC
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 GLOBAL_LOGIC module handles channel bonding, channel
44--               verification, channel error manangement and idle generation.
45--
46--               This module supports 1 2-byte lane designs
47--
48
49library IEEE;
50use IEEE.STD_LOGIC_1164.all;
51
52entity GLOBAL_LOGIC is
53    generic (
54            EXTEND_WATCHDOGS   : boolean := FALSE
55    );
56    port (
57
58    -- MGT Interface
59
60            CH_BOND_DONE       : in std_logic;
61            EN_CHAN_SYNC       : out std_logic;
62
63    -- Aurora Lane Interface
64
65            LANE_UP            : in std_logic;
66            SOFT_ERROR         : in std_logic;
67            HARD_ERROR         : in std_logic;
68            CHANNEL_BOND_LOAD  : in std_logic;
69            GOT_A              : in std_logic_vector(0 to 1);
70            GOT_V              : in std_logic;
71            GEN_A              : out std_logic;
72            GEN_K              : out std_logic_vector(0 to 1);
73            GEN_R              : out std_logic_vector(0 to 1);
74            GEN_V              : out std_logic_vector(0 to 1);
75            RESET_LANES        : out std_logic;
76
77    -- System Interface
78
79            USER_CLK           : in std_logic;
80            RESET              : in std_logic;
81            POWER_DOWN         : in std_logic;
82            CHANNEL_UP         : out std_logic;
83            START_RX           : out std_logic;
84            CHANNEL_SOFT_ERROR : out std_logic;
85            CHANNEL_HARD_ERROR : out std_logic
86
87         );
88
89end GLOBAL_LOGIC;
90
91architecture MAPPED of GLOBAL_LOGIC is
92
93-- External Register Declarations --
94
95    signal EN_CHAN_SYNC_Buffer       : std_logic;
96    signal GEN_A_Buffer              : std_logic;
97    signal GEN_K_Buffer              : std_logic_vector(0 to 1);
98    signal GEN_R_Buffer              : std_logic_vector(0 to 1);
99    signal GEN_V_Buffer              : std_logic_vector(0 to 1);
100    signal RESET_LANES_Buffer        : std_logic;
101    signal CHANNEL_UP_Buffer         : std_logic;
102    signal START_RX_Buffer           : std_logic;
103    signal CHANNEL_SOFT_ERROR_Buffer : std_logic;
104    signal CHANNEL_HARD_ERROR_Buffer : std_logic;
105
106-- Wire Declarations --
107
108    signal gen_ver_i       : std_logic;
109    signal reset_channel_i : std_logic;
110    signal did_ver_i       : std_logic;
111
112-- Component Declarations --
113
114    component CHANNEL_INIT_SM
115        generic (
116                EXTEND_WATCHDOGS  : boolean := FALSE
117        );
118        port (
119
120        -- MGT Interface
121
122                CH_BOND_DONE      : in std_logic;
123                EN_CHAN_SYNC      : out std_logic;
124
125        -- Aurora Lane Interface
126
127                CHANNEL_BOND_LOAD : in std_logic;
128                GOT_A             : in std_logic_vector(0 to 1);
129                GOT_V             : in std_logic;
130                RESET_LANES       : out std_logic;
131
132        -- System Interface
133
134                USER_CLK          : in std_logic;
135                RESET             : in std_logic;
136                CHANNEL_UP        : out std_logic;
137                START_RX          : out std_logic;
138
139        -- Idle and Verification Sequence Generator Interface
140
141                DID_VER           : in std_logic;
142                GEN_VER           : out std_logic;
143
144        -- Channel Init State Machine Interface
145
146                RESET_CHANNEL     : in std_logic
147
148             );
149
150    end component;
151
152
153    component IDLE_AND_VER_GEN
154
155        port (
156
157        -- Channel Init SM Interface
158
159                GEN_VER  : in std_logic;
160                DID_VER  : out std_logic;
161
162        -- Aurora Lane Interface
163
164                GEN_A    : out std_logic;
165                GEN_K    : out std_logic_vector(0 to 1);
166                GEN_R    : out std_logic_vector(0 to 1);
167                GEN_V    : out std_logic_vector(0 to 1);
168
169        -- System Interface
170
171                RESET    : in std_logic;
172                USER_CLK : in std_logic
173
174             );
175
176    end component;
177
178
179    component CHANNEL_ERROR_DETECT
180
181        port (
182
183        -- Aurora Lane Interface
184
185                SOFT_ERROR         : in std_logic;
186                HARD_ERROR         : in std_logic;
187                LANE_UP            : in std_logic;
188
189        -- System Interface
190
191                USER_CLK           : in std_logic;
192                POWER_DOWN         : in std_logic;
193
194                CHANNEL_SOFT_ERROR : out std_logic;
195                CHANNEL_HARD_ERROR : out std_logic;
196
197        -- Channel Init SM Interface
198
199                RESET_CHANNEL      : out std_logic
200
201             );
202
203    end component;
204
205begin
206
207    EN_CHAN_SYNC       <= EN_CHAN_SYNC_Buffer;
208    GEN_A              <= GEN_A_Buffer;
209    GEN_K              <= GEN_K_Buffer;
210    GEN_R              <= GEN_R_Buffer;
211    GEN_V              <= GEN_V_Buffer;
212    RESET_LANES        <= RESET_LANES_Buffer;
213    CHANNEL_UP         <= CHANNEL_UP_Buffer;
214    START_RX           <= START_RX_Buffer;
215    CHANNEL_SOFT_ERROR <= CHANNEL_SOFT_ERROR_Buffer;
216    CHANNEL_HARD_ERROR <= CHANNEL_HARD_ERROR_Buffer;
217
218-- Main Body of Code --
219
220    -- State Machine for channel bonding and verification.
221
222    channel_init_sm_i : CHANNEL_INIT_SM
223        generic map (
224                    EXTEND_WATCHDOGS => EXTEND_WATCHDOGS
225        )
226        port map (
227
228        -- MGT Interface
229
230                    CH_BOND_DONE => CH_BOND_DONE,
231                    EN_CHAN_SYNC => EN_CHAN_SYNC_Buffer,
232
233        -- Aurora Lane Interface
234
235                    CHANNEL_BOND_LOAD => CHANNEL_BOND_LOAD,
236                    GOT_A => GOT_A,
237                    GOT_V => GOT_V,
238                    RESET_LANES => RESET_LANES_Buffer,
239
240        -- System Interface
241
242                    USER_CLK => USER_CLK,
243                    RESET => RESET,
244                    START_RX => START_RX_Buffer,
245                    CHANNEL_UP => CHANNEL_UP_Buffer,
246
247        -- Idle and Verification Sequence Generator Interface
248
249                    DID_VER => did_ver_i,
250                    GEN_VER => gen_ver_i,
251
252        -- Channel Error Management Module Interface
253
254                    RESET_CHANNEL => reset_channel_i
255
256                 );
257
258
259    -- Idle and verification sequence generator module.
260
261    idle_and_ver_gen_i : IDLE_AND_VER_GEN
262
263        port map (
264
265        -- Channel Init SM Interface
266
267                    GEN_VER => gen_ver_i,
268                    DID_VER => did_ver_i,
269
270        -- Aurora Lane Interface
271
272                    GEN_A => GEN_A_Buffer,
273                    GEN_K => GEN_K_Buffer,
274                    GEN_R => GEN_R_Buffer,
275                    GEN_V => GEN_V_Buffer,
276
277        -- System Interface
278
279                    RESET => RESET,
280                    USER_CLK => USER_CLK
281
282                 );
283
284
285
286    -- Channel Error Management module.
287
288    channel_error_detect_i : CHANNEL_ERROR_DETECT
289
290        port map (
291
292        -- Aurora Lane Interface
293
294                    SOFT_ERROR => SOFT_ERROR,
295                    HARD_ERROR => HARD_ERROR,
296                    LANE_UP => LANE_UP,
297
298        -- System Interface
299
300                    USER_CLK => USER_CLK,
301                    POWER_DOWN => POWER_DOWN,
302                    CHANNEL_SOFT_ERROR => CHANNEL_SOFT_ERROR_Buffer,
303                    CHANNEL_HARD_ERROR => CHANNEL_HARD_ERROR_Buffer,
304
305        -- Channel Init State Machine Interface
306
307                    RESET_CHANNEL => reset_channel_i
308
309                 );
310
311end MAPPED;
Note: See TracBrowser for help on using the repository browser.