1 ------------------------------------------------------------------------------- 2 -- File : XauiGth7Core.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 Gth7 Core 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_gth7 50 signal_detect : in (3 downto 0);
51 debug : out (5 downto 0);
-- Debug vector 52 configuration_vector :
in (
6 downto 0);
62 component XauiGth7Core_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);
100 -- TX Reset and Initialisation 101 gt0_txpmareset_in :
in ;
102 gt0_txpcsreset_in :
in ;
103 gt0_txresetdone_out :
out ;
104 -- RX Reset and Initialisation 105 gt0_rxpmareset_in :
in ;
106 gt0_rxpcsreset_in :
in ;
107 gt0_rxpmaresetdone_out :
out ;
108 gt0_rxresetdone_out :
out ;
110 gt0_rxbufstatus_out :
out (
2 downto 0);
111 gt0_txphaligndone_out :
out ;
112 gt0_txphinitdone_out :
out ;
113 gt0_txdlysresetdone_out :
out ;
114 gt0_cplllock_out :
out ;
115 -- Signal Integrity adn Functionality 117 gt0_eyescantrigger_in :
in ;
118 gt0_eyescanreset_in :
in ;
119 gt0_eyescandataerror_out :
out ;
120 gt0_rxrate_in :
in (
2 downto 0);
122 gt0_loopback_in :
in (
2 downto 0);
124 gt0_rxpolarity_in :
in ;
125 gt0_txpolarity_in :
in ;
126 -- RX Decision Feedback Equalizer(DFE) 127 gt0_rxlpmen_in :
in ;
128 gt0_rxdfelpmreset_in :
in ;
129 gt0_rxmonitorsel_in :
in (
1 downto 0);
130 gt0_rxmonitorout_out :
out (
6 downto 0);
132 gt0_txpostcursor_in :
in (
4 downto 0);
133 gt0_txprecursor_in :
in (
4 downto 0);
134 gt0_txdiffctrl_in :
in (
3 downto 0);
136 gt0_rxprbscntreset_in :
in ;
137 gt0_rxprbserr_out :
out ;
138 gt0_rxprbssel_in :
in (
2 downto 0);
139 gt0_txprbssel_in :
in (
2 downto 0);
140 gt0_txprbsforceerr_in :
in ;
142 gt0_rxcdrhold_in :
in ;
144 gt0_dmonitorout_out :
out (
14 downto 0);
147 gt0_rxdisperr_out :
out (
1 downto 0);
148 gt0_rxnotintable_out :
out (
1 downto 0);
149 gt0_rxcommadet_out :
out ;
151 gt1_drpaddr :
in (
8 downto 0);
153 gt1_drpdi :
in (
15 downto 0);
154 gt1_drpdo :
out (
15 downto 0);
158 -- TX Reset and Initialisation 159 gt1_txpmareset_in :
in ;
160 gt1_txpcsreset_in :
in ;
161 gt1_txresetdone_out :
out ;
162 -- RX Reset and Initialisation 163 gt1_rxpmareset_in :
in ;
164 gt1_rxpcsreset_in :
in ;
165 gt1_rxpmaresetdone_out :
out ;
166 gt1_rxresetdone_out :
out ;
168 gt1_rxbufstatus_out :
out (
2 downto 0);
169 gt1_txphaligndone_out :
out ;
170 gt1_txphinitdone_out :
out ;
171 gt1_txdlysresetdone_out :
out ;
172 gt1_cplllock_out :
out ;
173 -- Signal Integrity adn Functionality 175 gt1_eyescantrigger_in :
in ;
176 gt1_eyescanreset_in :
in ;
177 gt1_eyescandataerror_out :
out ;
178 gt1_rxrate_in :
in (
2 downto 0);
180 gt1_loopback_in :
in (
2 downto 0);
182 gt1_rxpolarity_in :
in ;
183 gt1_txpolarity_in :
in ;
184 -- RX Decision Feedback Equalizer(DFE) 185 gt1_rxlpmen_in :
in ;
186 gt1_rxdfelpmreset_in :
in ;
187 gt1_rxmonitorsel_in :
in (
1 downto 0);
188 gt1_rxmonitorout_out :
out (
6 downto 0);
190 gt1_txpostcursor_in :
in (
4 downto 0);
191 gt1_txprecursor_in :
in (
4 downto 0);
192 gt1_txdiffctrl_in :
in (
3 downto 0);
194 gt1_rxprbscntreset_in :
in ;
195 gt1_rxprbserr_out :
out ;
196 gt1_rxprbssel_in :
in (
2 downto 0);
197 gt1_txprbssel_in :
in (
2 downto 0);
198 gt1_txprbsforceerr_in :
in ;
200 gt1_rxcdrhold_in :
in ;
202 gt1_dmonitorout_out :
out (
14 downto 0);
205 gt1_rxdisperr_out :
out (
1 downto 0);
206 gt1_rxnotintable_out :
out (
1 downto 0);
207 gt1_rxcommadet_out :
out ;
209 gt2_drpaddr :
in (
8 downto 0);
211 gt2_drpdi :
in (
15 downto 0);
212 gt2_drpdo :
out (
15 downto 0);
216 -- TX Reset and Initialisation 217 gt2_txpmareset_in :
in ;
218 gt2_txpcsreset_in :
in ;
219 gt2_txresetdone_out :
out ;
220 -- RX Reset and Initialisation 221 gt2_rxpmareset_in :
in ;
222 gt2_rxpcsreset_in :
in ;
223 gt2_rxpmaresetdone_out :
out ;
224 gt2_rxresetdone_out :
out ;
226 gt2_rxbufstatus_out :
out (
2 downto 0);
227 gt2_txphaligndone_out :
out ;
228 gt2_txphinitdone_out :
out ;
229 gt2_txdlysresetdone_out :
out ;
230 gt2_cplllock_out :
out ;
231 -- Signal Integrity adn Functionality 233 gt2_eyescantrigger_in :
in ;
234 gt2_eyescanreset_in :
in ;
235 gt2_eyescandataerror_out :
out ;
236 gt2_rxrate_in :
in (
2 downto 0);
238 gt2_loopback_in :
in (
2 downto 0);
240 gt2_rxpolarity_in :
in ;
241 gt2_txpolarity_in :
in ;
242 -- RX Decision Feedback Equalizer(DFE) 243 gt2_rxlpmen_in :
in ;
244 gt2_rxdfelpmreset_in :
in ;
245 gt2_rxmonitorsel_in :
in (
1 downto 0);
246 gt2_rxmonitorout_out :
out (
6 downto 0);
248 gt2_txpostcursor_in :
in (
4 downto 0);
249 gt2_txprecursor_in :
in (
4 downto 0);
250 gt2_txdiffctrl_in :
in (
3 downto 0);
252 gt2_rxprbscntreset_in :
in ;
253 gt2_rxprbserr_out :
out ;
254 gt2_rxprbssel_in :
in (
2 downto 0);
255 gt2_txprbssel_in :
in (
2 downto 0);
256 gt2_txprbsforceerr_in :
in ;
258 gt2_rxcdrhold_in :
in ;
260 gt2_dmonitorout_out :
out (
14 downto 0);
263 gt2_rxdisperr_out :
out (
1 downto 0);
264 gt2_rxnotintable_out :
out (
1 downto 0);
265 gt2_rxcommadet_out :
out ;
267 gt3_drpaddr :
in (
8 downto 0);
269 gt3_drpdi :
in (
15 downto 0);
270 gt3_drpdo :
out (
15 downto 0);
274 -- TX Reset and Initialisation 275 gt3_txpmareset_in :
in ;
276 gt3_txpcsreset_in :
in ;
277 gt3_txresetdone_out :
out ;
278 -- RX Reset and Initialisation 279 gt3_rxpmareset_in :
in ;
280 gt3_rxpcsreset_in :
in ;
281 gt3_rxpmaresetdone_out :
out ;
282 gt3_rxresetdone_out :
out ;
284 gt3_rxbufstatus_out :
out (
2 downto 0);
285 gt3_txphaligndone_out :
out ;
286 gt3_txphinitdone_out :
out ;
287 gt3_txdlysresetdone_out :
out ;
288 gt3_cplllock_out :
out ;
289 -- Signal Integrity adn Functionality 291 gt3_eyescantrigger_in :
in ;
292 gt3_eyescanreset_in :
in ;
293 gt3_eyescandataerror_out :
out ;
294 gt3_rxrate_in :
in (
2 downto 0);
296 gt3_loopback_in :
in (
2 downto 0);
298 gt3_rxpolarity_in :
in ;
299 gt3_txpolarity_in :
in ;
300 -- RX Decision Feedback Equalizer(DFE) 301 gt3_rxlpmen_in :
in ;
302 gt3_rxdfelpmreset_in :
in ;
303 gt3_rxmonitorsel_in :
in (
1 downto 0);
304 gt3_rxmonitorout_out :
out (
6 downto 0);
306 gt3_txpostcursor_in :
in (
4 downto 0);
307 gt3_txprecursor_in :
in (
4 downto 0);
308 gt3_txdiffctrl_in :
in (
3 downto 0);
310 gt3_rxprbscntreset_in :
in ;
311 gt3_rxprbserr_out :
out ;
312 gt3_rxprbssel_in :
in (
2 downto 0);
313 gt3_txprbssel_in :
in (
2 downto 0);
314 gt3_txprbsforceerr_in :
in ;
316 gt3_rxcdrhold_in :
in ;
318 gt3_dmonitorout_out :
out (
14 downto 0);
321 gt3_rxdisperr_out :
out (
1 downto 0);
322 gt3_rxnotintable_out :
out (
1 downto 0);
323 gt3_rxcommadet_out :
out ;
324 configuration_vector :
in (
6 downto 0);
325 status_vector :
out (
7 downto 0)
330 ATTRIBUTE CORE_GENERATION_INFO OF wrapper : ARCHITECTURE IS "XauiGth7Core,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=virtex7,c_component_name=XauiGth7Core,c_is_dxaui=false,c_has_mdio=false,c_sub_core_name=XauiGth7Core_gt,c_gt_dmonitorout_width=15,c_gt_txdiffctrl_width=16}";
332 ATTRIBUTE X_CORE_INFO OF wrapper: ARCHITECTURE IS "xaui_v12_1,Vivado 2014.4.1";
336 U0 : XauiGth7Core_block
366 gt0_drpaddr =>
(others => '0'
),
368 gt0_drpdi =>
(others => '0'
),
372 gt0_drp_busy =>
open,
373 -- TX Reset and Initialisation 374 gt0_txpmareset_in => '0',
375 gt0_txpcsreset_in => '0',
376 gt0_txresetdone_out =>
open,
377 -- RX Reset and Initialisation 378 gt0_rxpmareset_in => '0',
379 gt0_rxpcsreset_in => '0',
380 gt0_rxpmaresetdone_out =>
open,
381 gt0_rxresetdone_out =>
open,
383 gt0_rxbufstatus_out =>
open,
384 gt0_txphaligndone_out =>
open,
385 gt0_txphinitdone_out =>
open,
386 gt0_txdlysresetdone_out =>
open,
387 gt0_cplllock_out =>
open,
388 -- Signal Integrity adn Functionality 390 gt0_eyescantrigger_in => '0',
391 gt0_eyescanreset_in => '0',
392 gt0_eyescandataerror_out =>
open,
393 gt0_rxrate_in => "
000",
395 gt0_loopback_in => "
000",
397 gt0_rxpolarity_in => '0',
398 gt0_txpolarity_in => '0',
399 -- RX Decision Feedback Equalizer(DFE) 400 gt0_rxlpmen_in => '0',
401 gt0_rxdfelpmreset_in => '0',
402 gt0_rxmonitorsel_in => "
00",
403 gt0_rxmonitorout_out =>
open,
405 gt0_txdiffctrl_in => "
1000",
406 gt0_txpostcursor_in => "
00000",
407 gt0_txprecursor_in => "
00000",
409 gt0_rxprbscntreset_in => '0',
410 gt0_rxprbserr_out =>
open,
411 gt0_rxprbssel_in => "
000",
412 gt0_txprbssel_in => "
000",
413 gt0_txprbsforceerr_in => '0',
415 gt0_rxcdrhold_in => '0',
417 gt0_dmonitorout_out =>
open,
420 gt0_rxdisperr_out =>
open,
421 gt0_rxnotintable_out =>
open,
422 gt0_rxcommadet_out =>
open,
424 gt1_drpaddr =>
(others => '0'
),
426 gt1_drpdi =>
(others => '0'
),
430 gt1_drp_busy =>
open,
431 -- TX Reset and Initialisation 432 gt1_txpmareset_in => '0',
433 gt1_txpcsreset_in => '0',
434 gt1_txresetdone_out =>
open,
435 -- RX Reset and Initialisation 436 gt1_rxpmareset_in => '0',
437 gt1_rxpcsreset_in => '0',
438 gt1_rxpmaresetdone_out =>
open,
439 gt1_rxresetdone_out =>
open,
441 gt1_rxbufstatus_out =>
open,
442 gt1_txphaligndone_out =>
open,
443 gt1_txphinitdone_out =>
open,
444 gt1_txdlysresetdone_out =>
open,
445 gt1_cplllock_out =>
open,
446 -- Signal Integrity adn Functionality 448 gt1_eyescantrigger_in => '0',
449 gt1_eyescanreset_in => '0',
450 gt1_eyescandataerror_out =>
open,
451 gt1_rxrate_in => "
000",
453 gt1_loopback_in => "
000",
455 gt1_rxpolarity_in => '0',
456 gt1_txpolarity_in => '0',
457 -- RX Decision Feedback Equalizer(DFE) 458 gt1_rxlpmen_in => '0',
459 gt1_rxdfelpmreset_in => '0',
460 gt1_rxmonitorsel_in => "
00",
461 gt1_rxmonitorout_out =>
open,
463 gt1_txdiffctrl_in => "
1000",
464 gt1_txpostcursor_in => "
00000",
465 gt1_txprecursor_in => "
00000",
467 gt1_rxprbscntreset_in => '0',
468 gt1_rxprbserr_out =>
open,
469 gt1_rxprbssel_in => "
000",
470 gt1_txprbssel_in => "
000",
471 gt1_txprbsforceerr_in => '0',
473 gt1_rxcdrhold_in => '0',
475 gt1_dmonitorout_out =>
open,
478 gt1_rxdisperr_out =>
open,
479 gt1_rxnotintable_out =>
open,
480 gt1_rxcommadet_out =>
open,
482 gt2_drpaddr =>
(others => '0'
),
484 gt2_drpdi =>
(others => '0'
),
488 gt2_drp_busy =>
open,
489 -- TX Reset and Initialisation 490 gt2_txpmareset_in => '0',
491 gt2_txpcsreset_in => '0',
492 gt2_txresetdone_out =>
open,
493 -- RX Reset and Initialisation 494 gt2_rxpmareset_in => '0',
495 gt2_rxpcsreset_in => '0',
496 gt2_rxpmaresetdone_out =>
open,
497 gt2_rxresetdone_out =>
open,
499 gt2_rxbufstatus_out =>
open,
500 gt2_txphaligndone_out =>
open,
501 gt2_txphinitdone_out =>
open,
502 gt2_txdlysresetdone_out =>
open,
503 gt2_cplllock_out =>
open,
504 -- Signal Integrity adn Functionality 506 gt2_eyescantrigger_in => '0',
507 gt2_eyescanreset_in => '0',
508 gt2_eyescandataerror_out =>
open,
509 gt2_rxrate_in => "
000",
511 gt2_loopback_in => "
000",
513 gt2_rxpolarity_in => '0',
514 gt2_txpolarity_in => '0',
515 -- RX Decision Feedback Equalizer(DFE) 516 gt2_rxlpmen_in => '0',
517 gt2_rxdfelpmreset_in => '0',
518 gt2_rxmonitorsel_in => "
00",
519 gt2_rxmonitorout_out =>
open,
521 gt2_txdiffctrl_in => "
1000",
522 gt2_txpostcursor_in => "
00000",
523 gt2_txprecursor_in => "
00000",
525 gt2_rxprbscntreset_in => '0',
526 gt2_rxprbserr_out =>
open,
527 gt2_rxprbssel_in => "
000",
528 gt2_txprbssel_in => "
000",
529 gt2_txprbsforceerr_in => '0',
531 gt2_rxcdrhold_in => '0',
533 gt2_dmonitorout_out =>
open,
536 gt2_rxdisperr_out =>
open,
537 gt2_rxnotintable_out =>
open,
538 gt2_rxcommadet_out =>
open,
540 gt3_drpaddr =>
(others => '0'
),
542 gt3_drpdi =>
(others => '0'
),
546 gt3_drp_busy =>
open,
547 -- TX Reset and Initialisation 548 gt3_txpmareset_in => '0',
549 gt3_txpcsreset_in => '0',
550 gt3_txresetdone_out =>
open,
551 -- RX Reset and Initialisation 552 gt3_rxpmareset_in => '0',
553 gt3_rxpcsreset_in => '0',
554 gt3_rxpmaresetdone_out =>
open,
555 gt3_rxresetdone_out =>
open,
557 gt3_rxbufstatus_out =>
open,
558 gt3_txphaligndone_out =>
open,
559 gt3_txphinitdone_out =>
open,
560 gt3_txdlysresetdone_out =>
open,
561 gt3_cplllock_out =>
open,
562 -- Signal Integrity adn Functionality 564 gt3_eyescantrigger_in => '0',
565 gt3_eyescanreset_in => '0',
566 gt3_eyescandataerror_out =>
open,
567 gt3_rxrate_in => "
000",
569 gt3_loopback_in => "
000",
571 gt3_rxpolarity_in => '0',
572 gt3_txpolarity_in => '0',
573 -- RX Decision Feedback Equalizer(DFE) 574 gt3_rxlpmen_in => '0',
575 gt3_rxdfelpmreset_in => '0',
576 gt3_rxmonitorsel_in => "
00",
577 gt3_rxmonitorout_out =>
open,
579 gt3_txdiffctrl_in => "
1000",
580 gt3_txpostcursor_in => "
00000",
581 gt3_txprecursor_in => "
00000",
583 gt3_rxprbscntreset_in => '0',
584 gt3_rxprbserr_out =>
open,
585 gt3_rxprbssel_in => "
000",
586 gt3_txprbssel_in => "
000",
587 gt3_txprbsforceerr_in => '0',
589 gt3_rxcdrhold_in => '0',
591 gt3_dmonitorout_out =>
open,
594 gt3_rxdisperr_out =>
open,
595 gt3_rxnotintable_out =>
open,
596 gt3_rxcommadet_out =>
open,
out xgmii_rxcstd_logic_vector( 7 downto 0)
out xaui_tx_l0_nstd_logic
in xgmii_txcstd_logic_vector( 7 downto 0)
in xgmii_txdstd_logic_vector( 63 downto 0)
out xaui_tx_l1_pstd_logic
out xaui_tx_l3_pstd_logic
out debugstd_logic_vector( 5 downto 0)
in configuration_vectorstd_logic_vector( 6 downto 0)
in signal_detectstd_logic_vector( 3 downto 0)
out xaui_tx_l3_nstd_logic
out xaui_tx_l0_pstd_logic
out xaui_tx_l2_nstd_logic
out status_vectorstd_logic_vector( 7 downto 0)
out xgmii_rxdstd_logic_vector( 63 downto 0)
out xaui_tx_l2_pstd_logic
STRING CORE_GENERATION_INFO
out xaui_tx_l1_nstd_logic