1 ------------------------------------------------------------------------------- 2 -- File : XauiGtx7Core.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2015-02-12 5 -- Last update: 2016-02-19 6 ------------------------------------------------------------------------------- 7 -- Description: 10 GigE XAUI for Gtx7 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC Firmware Standard Library'. 10 -- It is subject to the license terms in the LICENSE.txt file found in the 11 -- top-level directory of this distribution and at: 12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 13 -- No part of 'SLAC Firmware Standard Library', including this file, 14 -- may be copied, modified, propagated, or distributed except according to 15 -- the terms contained in the LICENSE.txt file. 16 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
22 --! @ingroup ethernet_XauiCore_gtx7 50 signal_detect : in (3 downto 0);
51 debug : out (5 downto 0);
-- Debug vector 52 configuration_vector :
in (
6 downto 0);
62 component XauiGtx7Core_block
is 69 xgmii_txd :
in (
63 downto 0);
70 xgmii_txc :
in (
7 downto 0);
71 xgmii_rxd :
out (
63 downto 0);
72 xgmii_rxc :
out (
7 downto 0);
89 signal_detect :
in (
3 downto 0);
90 debug :
out (
5 downto 0);
-- Debug vector 93 gt0_drpaddr :
in (
8 downto 0);
95 gt0_drpdi :
in (
15 downto 0);
96 gt0_drpdo :
out (
15 downto 0);
99 -- TX Reset and Initialisation 100 gt0_txpmareset_in :
in ;
101 gt0_txpcsreset_in :
in ;
102 gt0_txresetdone_out :
out ;
103 -- RX Reset and Initialisation 104 gt0_rxpmareset_in :
in ;
105 gt0_rxpcsreset_in :
in ;
106 gt0_rxresetdone_out :
out ;
108 gt0_rxbufstatus_out :
out (
2 downto 0);
109 gt0_txphaligndone_out :
out ;
110 gt0_txphinitdone_out :
out ;
111 gt0_txdlysresetdone_out :
out ;
112 gt_qplllock_out :
out ;
113 -- Signal Integrity adn Functionality 115 gt0_eyescantrigger_in :
in ;
116 gt0_eyescanreset_in :
in ;
117 gt0_eyescandataerror_out :
out ;
118 gt0_rxrate_in :
in (
2 downto 0);
120 gt0_loopback_in :
in (
2 downto 0);
122 gt0_rxpolarity_in :
in ;
123 gt0_txpolarity_in :
in ;
124 -- RX Decision Feedback Equalizer(DFE) 125 gt0_rxlpmen_in :
in ;
126 gt0_rxdfelpmreset_in :
in ;
127 gt0_rxmonitorsel_in :
in (
1 downto 0);
128 gt0_rxmonitorout_out :
out (
6 downto 0);
130 gt0_txpostcursor_in :
in (
4 downto 0);
131 gt0_txprecursor_in :
in (
4 downto 0);
132 gt0_txdiffctrl_in :
in (
3 downto 0);
134 gt0_rxprbscntreset_in :
in ;
135 gt0_rxprbserr_out :
out ;
136 gt0_rxprbssel_in :
in (
2 downto 0);
137 gt0_txprbssel_in :
in (
2 downto 0);
138 gt0_txprbsforceerr_in :
in ;
140 gt0_rxcdrhold_in :
in ;
142 gt0_dmonitorout_out :
out (
7 downto 0);
145 gt0_rxdisperr_out :
out (
1 downto 0);
146 gt0_rxnotintable_out :
out (
1 downto 0);
147 gt0_rxcommadet_out :
out ;
149 gt1_drpaddr :
in (
8 downto 0);
151 gt1_drpdi :
in (
15 downto 0);
152 gt1_drpdo :
out (
15 downto 0);
155 -- TX Reset and Initialisation 156 gt1_txpmareset_in :
in ;
157 gt1_txpcsreset_in :
in ;
158 gt1_txresetdone_out :
out ;
159 -- RX Reset and Initialisation 160 gt1_rxpmareset_in :
in ;
161 gt1_rxpcsreset_in :
in ;
162 gt1_rxresetdone_out :
out ;
164 gt1_rxbufstatus_out :
out (
2 downto 0);
165 gt1_txphaligndone_out :
out ;
166 gt1_txphinitdone_out :
out ;
167 gt1_txdlysresetdone_out :
out ;
168 -- Signal Integrity adn Functionality 170 gt1_eyescantrigger_in :
in ;
171 gt1_eyescanreset_in :
in ;
172 gt1_eyescandataerror_out :
out ;
173 gt1_rxrate_in :
in (
2 downto 0);
175 gt1_loopback_in :
in (
2 downto 0);
177 gt1_rxpolarity_in :
in ;
178 gt1_txpolarity_in :
in ;
179 -- RX Decision Feedback Equalizer(DFE) 180 gt1_rxlpmen_in :
in ;
181 gt1_rxdfelpmreset_in :
in ;
182 gt1_rxmonitorsel_in :
in (
1 downto 0);
183 gt1_rxmonitorout_out :
out (
6 downto 0);
185 gt1_txpostcursor_in :
in (
4 downto 0);
186 gt1_txprecursor_in :
in (
4 downto 0);
187 gt1_txdiffctrl_in :
in (
3 downto 0);
189 gt1_rxprbscntreset_in :
in ;
190 gt1_rxprbserr_out :
out ;
191 gt1_rxprbssel_in :
in (
2 downto 0);
192 gt1_txprbssel_in :
in (
2 downto 0);
193 gt1_txprbsforceerr_in :
in ;
195 gt1_rxcdrhold_in :
in ;
197 gt1_dmonitorout_out :
out (
7 downto 0);
200 gt1_rxdisperr_out :
out (
1 downto 0);
201 gt1_rxnotintable_out :
out (
1 downto 0);
202 gt1_rxcommadet_out :
out ;
204 gt2_drpaddr :
in (
8 downto 0);
206 gt2_drpdi :
in (
15 downto 0);
207 gt2_drpdo :
out (
15 downto 0);
210 -- TX Reset and Initialisation 211 gt2_txpmareset_in :
in ;
212 gt2_txpcsreset_in :
in ;
213 gt2_txresetdone_out :
out ;
214 -- RX Reset and Initialisation 215 gt2_rxpmareset_in :
in ;
216 gt2_rxpcsreset_in :
in ;
217 gt2_rxresetdone_out :
out ;
219 gt2_rxbufstatus_out :
out (
2 downto 0);
220 gt2_txphaligndone_out :
out ;
221 gt2_txphinitdone_out :
out ;
222 gt2_txdlysresetdone_out :
out ;
223 -- Signal Integrity adn Functionality 225 gt2_eyescantrigger_in :
in ;
226 gt2_eyescanreset_in :
in ;
227 gt2_eyescandataerror_out :
out ;
228 gt2_rxrate_in :
in (
2 downto 0);
230 gt2_loopback_in :
in (
2 downto 0);
232 gt2_rxpolarity_in :
in ;
233 gt2_txpolarity_in :
in ;
234 -- RX Decision Feedback Equalizer(DFE) 235 gt2_rxlpmen_in :
in ;
236 gt2_rxdfelpmreset_in :
in ;
237 gt2_rxmonitorsel_in :
in (
1 downto 0);
238 gt2_rxmonitorout_out :
out (
6 downto 0);
240 gt2_txpostcursor_in :
in (
4 downto 0);
241 gt2_txprecursor_in :
in (
4 downto 0);
242 gt2_txdiffctrl_in :
in (
3 downto 0);
244 gt2_rxprbscntreset_in :
in ;
245 gt2_rxprbserr_out :
out ;
246 gt2_rxprbssel_in :
in (
2 downto 0);
247 gt2_txprbssel_in :
in (
2 downto 0);
248 gt2_txprbsforceerr_in :
in ;
250 gt2_rxcdrhold_in :
in ;
252 gt2_dmonitorout_out :
out (
7 downto 0);
255 gt2_rxdisperr_out :
out (
1 downto 0);
256 gt2_rxnotintable_out :
out (
1 downto 0);
257 gt2_rxcommadet_out :
out ;
259 gt3_drpaddr :
in (
8 downto 0);
261 gt3_drpdi :
in (
15 downto 0);
262 gt3_drpdo :
out (
15 downto 0);
265 -- TX Reset and Initialisation 266 gt3_txpmareset_in :
in ;
267 gt3_txpcsreset_in :
in ;
268 gt3_txresetdone_out :
out ;
269 -- RX Reset and Initialisation 270 gt3_rxpmareset_in :
in ;
271 gt3_rxpcsreset_in :
in ;
272 gt3_rxresetdone_out :
out ;
274 gt3_rxbufstatus_out :
out (
2 downto 0);
275 gt3_txphaligndone_out :
out ;
276 gt3_txphinitdone_out :
out ;
277 gt3_txdlysresetdone_out :
out ;
278 -- Signal Integrity adn Functionality 280 gt3_eyescantrigger_in :
in ;
281 gt3_eyescanreset_in :
in ;
282 gt3_eyescandataerror_out :
out ;
283 gt3_rxrate_in :
in (
2 downto 0);
285 gt3_loopback_in :
in (
2 downto 0);
287 gt3_rxpolarity_in :
in ;
288 gt3_txpolarity_in :
in ;
289 -- RX Decision Feedback Equalizer(DFE) 290 gt3_rxlpmen_in :
in ;
291 gt3_rxdfelpmreset_in :
in ;
292 gt3_rxmonitorsel_in :
in (
1 downto 0);
293 gt3_rxmonitorout_out :
out (
6 downto 0);
295 gt3_txpostcursor_in :
in (
4 downto 0);
296 gt3_txprecursor_in :
in (
4 downto 0);
297 gt3_txdiffctrl_in :
in (
3 downto 0);
299 gt3_rxprbscntreset_in :
in ;
300 gt3_rxprbserr_out :
out ;
301 gt3_rxprbssel_in :
in (
2 downto 0);
302 gt3_txprbssel_in :
in (
2 downto 0);
303 gt3_txprbsforceerr_in :
in ;
305 gt3_rxcdrhold_in :
in ;
307 gt3_dmonitorout_out :
out (
7 downto 0);
310 gt3_rxdisperr_out :
out (
1 downto 0);
311 gt3_rxnotintable_out :
out (
1 downto 0);
312 gt3_rxcommadet_out :
out ;
313 configuration_vector :
in (
6 downto 0);
314 status_vector :
out (
7 downto 0)
319 ATTRIBUTE CORE_GENERATION_INFO OF wrapper : ARCHITECTURE IS "XauiGtx7Core,xaui_v12_1,{x_ipProduct=Vivado 2014.4.1,x_ipVendor=xilinx.com,x_ipLibrary=ip,x_ipName=xaui,x_ipVersion=12.1,x_ipCoreRevision=4,x_ipLanguage=VHDL,x_ipSimLanguage=MIXED,c_family=kintex7,c_component_name=XauiGtx7Core,c_is_dxaui=false,c_has_mdio=false,c_sub_core_name=XauiGtx7Core_gt,c_gt_dmonitorout_width=8,c_gt_txdiffctrl_width=16}";
321 ATTRIBUTE X_CORE_INFO OF wrapper: ARCHITECTURE IS "xaui_v12_1,Vivado 2014.4.1";
325 U0 : XauiGtx7Core_block
355 gt0_drpaddr =>
(others => '0'
),
357 gt0_drpdi =>
(others => '0'
),
361 -- TX Reset and Initialisation 362 gt0_txpmareset_in => '0',
363 gt0_txpcsreset_in => '0',
364 gt0_txresetdone_out =>
open,
365 -- RX Reset and Initialisation 366 gt0_rxpmareset_in => '0',
367 gt0_rxpcsreset_in => '0',
368 gt0_rxresetdone_out =>
open,
370 gt0_rxbufstatus_out =>
open,
371 gt0_txphaligndone_out =>
open,
372 gt0_txphinitdone_out =>
open,
373 gt0_txdlysresetdone_out =>
open,
374 gt_qplllock_out =>
open,
375 -- Signal Integrity adn Functionality 377 gt0_eyescantrigger_in => '0',
378 gt0_eyescanreset_in => '0',
379 gt0_eyescandataerror_out =>
open,
380 gt0_rxrate_in => "
000",
382 gt0_loopback_in => "
000",
384 gt0_rxpolarity_in => '0',
385 gt0_txpolarity_in => '0',
386 -- RX Decision Feedback Equalizer(DFE) 387 gt0_rxlpmen_in => '0',
388 gt0_rxdfelpmreset_in => '0',
389 gt0_rxmonitorsel_in => "
00",
390 gt0_rxmonitorout_out =>
open,
392 gt0_txdiffctrl_in => "
1000",
393 gt0_txpostcursor_in => "
00000",
394 gt0_txprecursor_in => "
00000",
396 gt0_rxprbscntreset_in => '0',
397 gt0_rxprbserr_out =>
open,
398 gt0_rxprbssel_in => "
000",
399 gt0_txprbssel_in => "
000",
400 gt0_txprbsforceerr_in => '0',
402 gt0_rxcdrhold_in => '0',
404 gt0_dmonitorout_out =>
open,
407 gt0_rxdisperr_out =>
open,
408 gt0_rxnotintable_out =>
open,
409 gt0_rxcommadet_out =>
open,
411 gt1_drpaddr =>
(others => '0'
),
413 gt1_drpdi =>
(others => '0'
),
417 -- TX Reset and Initialisation 418 gt1_txpmareset_in => '0',
419 gt1_txpcsreset_in => '0',
420 gt1_txresetdone_out =>
open,
421 -- RX Reset and Initialisation 422 gt1_rxpmareset_in => '0',
423 gt1_rxpcsreset_in => '0',
424 gt1_rxresetdone_out =>
open,
426 gt1_rxbufstatus_out =>
open,
427 gt1_txphaligndone_out =>
open,
428 gt1_txphinitdone_out =>
open,
429 gt1_txdlysresetdone_out =>
open,
430 -- Signal Integrity adn Functionality 432 gt1_eyescantrigger_in => '0',
433 gt1_eyescanreset_in => '0',
434 gt1_eyescandataerror_out =>
open,
435 gt1_rxrate_in => "
000",
437 gt1_loopback_in => "
000",
439 gt1_rxpolarity_in => '0',
440 gt1_txpolarity_in => '0',
441 -- RX Decision Feedback Equalizer(DFE) 442 gt1_rxlpmen_in => '0',
443 gt1_rxdfelpmreset_in => '0',
444 gt1_rxmonitorsel_in => "
00",
445 gt1_rxmonitorout_out =>
open,
447 gt1_txdiffctrl_in => "
1000",
448 gt1_txpostcursor_in => "
00000",
449 gt1_txprecursor_in => "
00000",
451 gt1_rxprbscntreset_in => '0',
452 gt1_rxprbserr_out =>
open,
453 gt1_rxprbssel_in => "
000",
454 gt1_txprbssel_in => "
000",
455 gt1_txprbsforceerr_in => '0',
457 gt1_rxcdrhold_in => '0',
459 gt1_dmonitorout_out =>
open,
462 gt1_rxdisperr_out =>
open,
463 gt1_rxnotintable_out =>
open,
464 gt1_rxcommadet_out =>
open,
466 gt2_drpaddr =>
(others => '0'
),
468 gt2_drpdi =>
(others => '0'
),
472 -- TX Reset and Initialisation 473 gt2_txpmareset_in => '0',
474 gt2_txpcsreset_in => '0',
475 gt2_txresetdone_out =>
open,
476 -- RX Reset and Initialisation 477 gt2_rxpmareset_in => '0',
478 gt2_rxpcsreset_in => '0',
479 gt2_rxresetdone_out =>
open,
481 gt2_rxbufstatus_out =>
open,
482 gt2_txphaligndone_out =>
open,
483 gt2_txphinitdone_out =>
open,
484 gt2_txdlysresetdone_out =>
open,
485 -- Signal Integrity adn Functionality 487 gt2_eyescantrigger_in => '0',
488 gt2_eyescanreset_in => '0',
489 gt2_eyescandataerror_out =>
open,
490 gt2_rxrate_in => "
000",
492 gt2_loopback_in => "
000",
494 gt2_rxpolarity_in => '0',
495 gt2_txpolarity_in => '0',
496 -- RX Decision Feedback Equalizer(DFE) 497 gt2_rxlpmen_in => '0',
498 gt2_rxdfelpmreset_in => '0',
499 gt2_rxmonitorsel_in => "
00",
500 gt2_rxmonitorout_out =>
open,
502 gt2_txdiffctrl_in => "
1000",
503 gt2_txpostcursor_in => "
00000",
504 gt2_txprecursor_in => "
00000",
506 gt2_rxprbscntreset_in => '0',
507 gt2_rxprbserr_out =>
open,
508 gt2_rxprbssel_in => "
000",
509 gt2_txprbssel_in => "
000",
510 gt2_txprbsforceerr_in => '0',
512 gt2_rxcdrhold_in => '0',
514 gt2_dmonitorout_out =>
open,
517 gt2_rxdisperr_out =>
open,
518 gt2_rxnotintable_out =>
open,
519 gt2_rxcommadet_out =>
open,
521 gt3_drpaddr =>
(others => '0'
),
523 gt3_drpdi =>
(others => '0'
),
527 -- TX Reset and Initialisation 528 gt3_txpmareset_in => '0',
529 gt3_txpcsreset_in => '0',
530 gt3_txresetdone_out =>
open,
531 -- RX Reset and Initialisation 532 gt3_rxpmareset_in => '0',
533 gt3_rxpcsreset_in => '0',
534 gt3_rxresetdone_out =>
open,
536 gt3_rxbufstatus_out =>
open,
537 gt3_txphaligndone_out =>
open,
538 gt3_txphinitdone_out =>
open,
539 gt3_txdlysresetdone_out =>
open,
540 -- Signal Integrity adn Functionality 542 gt3_eyescantrigger_in => '0',
543 gt3_eyescanreset_in => '0',
544 gt3_eyescandataerror_out =>
open,
545 gt3_rxrate_in => "
000",
547 gt3_loopback_in => "
000",
549 gt3_rxpolarity_in => '0',
550 gt3_txpolarity_in => '0',
551 -- RX Decision Feedback Equalizer(DFE) 552 gt3_rxlpmen_in => '0',
553 gt3_rxdfelpmreset_in => '0',
554 gt3_rxmonitorsel_in => "
00",
555 gt3_rxmonitorout_out =>
open,
557 gt3_txdiffctrl_in => "
1000",
558 gt3_txpostcursor_in => "
00000",
559 gt3_txprecursor_in => "
00000",
561 gt3_rxprbscntreset_in => '0',
562 gt3_rxprbserr_out =>
open,
563 gt3_rxprbssel_in => "
000",
564 gt3_txprbssel_in => "
000",
565 gt3_txprbsforceerr_in => '0',
567 gt3_rxcdrhold_in => '0',
569 gt3_dmonitorout_out =>
open,
572 gt3_rxdisperr_out =>
open,
573 gt3_rxnotintable_out =>
open,
574 gt3_rxcommadet_out =>
open,
out xaui_tx_l1_pstd_logic
out xaui_tx_l0_pstd_logic
out xaui_tx_l2_pstd_logic
out xaui_tx_l0_nstd_logic
in signal_detectstd_logic_vector( 3 downto 0)
out xaui_tx_l3_nstd_logic
in xgmii_txdstd_logic_vector( 63 downto 0)
out xaui_tx_l1_nstd_logic
out xgmii_rxcstd_logic_vector( 7 downto 0)
out status_vectorstd_logic_vector( 7 downto 0)
out xaui_tx_l3_pstd_logic
STRING CORE_GENERATION_INFO
in configuration_vectorstd_logic_vector( 6 downto 0)
in xgmii_txcstd_logic_vector( 7 downto 0)
out xaui_tx_l2_nstd_logic
out debugstd_logic_vector( 5 downto 0)
out xgmii_rxdstd_logic_vector( 63 downto 0)