UltraScale+的10G/25G Ethernet Subsystem IP核使用

前言

前面我们学习了很多基于XILINX 7系列的高速接口使用,本文将介绍xilinx UltraScale+的10G/25G Ethernet Subsystem IP核的使用。大体使用与7系列相差无几,甚至更加简单。大家如果看过7系列那部分的内容,这个上手非常快。

一、设计框图

在这里插入图片描述)

设计框图与7系列大致相似。直接使用官方例程也是可以的,但是这样子更加清晰,我们自己将来使用的时候更加方便,在梳理的过程中也可以加深印象。

1.1、xxv_ethernet_0

xxv_ethernet_0 xxv_ethernet_u0 (
    .gt_txp_out                         (o_gt_txp                           ),  // output wire [0 : 0] gt_txp_out
    .gt_txn_out                         (o_gt_txn                           ),  // output wire [0 : 0] gt_txn_out
    .gt_rxp_in                          (i_gt_rxp                           ),  // input wire [0 : 0] gt_rxp_in
    .gt_rxn_in                          (i_gt_rxn                           ),  // input wire [0 : 0] gt_rxn_in
    .rx_core_clk_0                      (w_rx_core_clk                      ),  // input wire rx_core_clk_0
    .rx_serdes_reset_0                  (w_rx_serdes_reset                  ),  // input wire rx_serdes_reset_0
    .txoutclksel_in_0                   (3'b101                             ),  // input wire [2 : 0] txoutclksel_in_0
    .rxoutclksel_in_0                   (3'b101                             ),  // input wire [2 : 0] rxoutclksel_in_0
    .rxrecclkout_0                      (w_rxrecclkout                      ),  // output wire rxrecclkout_0
    .sys_reset                          (i_sys_reset                        ),  // input wire sys_reset
    .dclk                               (i_dclk                             ),  // input wire dclk
    .tx_clk_out_0                       (o_tx_clk_out                       ),  // output wire tx_clk_out_0
    .rx_clk_out_0                       (o_rx_clk_out                       ),  // output wire rx_clk_out_0
    .gtpowergood_out_0                  (),                                     // output wire gtpowergood_out_0
    .qpll0clk_in                        (i_qpll0outclk                      ),  // input wire [0 : 0] qpll0clk_in
    .qpll0refclk_in                     (i_qpll0outrefclk                   ),  // input wire [0 : 0] qpll0refclk_in
    .qpll1clk_in                        (i_qpll1outclk                      ),  // input wire [0 : 0] qpll1clk_in
    .qpll1refclk_in                     (i_qpll1outrefclk                   ),  // input wire [0 : 0] qpll1refclk_in
    .gtwiz_reset_qpll0lock_in           (i_qpll0lock                        ),  // input wire gtwiz_reset_qpll0lock_in
    .gtwiz_reset_qpll0reset_out         (o_qpll0reset                       ),  // output wire gtwiz_reset_qpll0reset_out
    .gtwiz_reset_qpll1lock_in           (i_qpll1lock                        ),  // input wire gtwiz_reset_qpll1lock_in
    .gtwiz_reset_qpll1reset_out         (o_qpll1reset                       ),  // output wire gtwiz_reset_qpll1reset_out
    .gt_reset_tx_done_out_0             (w_gt_reset_tx_done                 ),  // output wire gt_reset_tx_done_out_0
    .gt_reset_rx_done_out_0             (w_gt_reset_rx_done                 ),  // output wire gt_reset_rx_done_out_0
    .gt_reset_all_in_0                  (w_gtwiz_reset_all                  ),  // input wire gt_reset_all_in_0
    .gt_tx_reset_in_0                   (w_gtwiz_reset_tx_datapath          ),  // input wire gt_tx_reset_in_0
    .gt_rx_reset_in_0                   (w_gtwiz_reset_rx_datapath          ),  // input wire gt_rx_reset_in_0
    .rx_reset_0                         (w_rx_core_reset                    ),  // input wire rx_reset_0
    .rx_axis_tvalid_0                   (rx_axis_tvalid                     ),  // output wire rx_axis_tvalid_0
    .rx_axis_tdata_0                    (rx_axis_tdata                      ),  // output wire [63 : 0] rx_axis_tdata_0
    .rx_axis_tlast_0                    (rx_axis_tlast                      ),  // output wire rx_axis_tlast_0
    .rx_axis_tkeep_0                    (rx_axis_tkeep                      ),  // output wire [7 : 0] rx_axis_tkeep_0
    .rx_axis_tuser_0                    (rx_axis_tuser                      ),  // output wire rx_axis_tuser_0
    .ctl_rx_enable_0                    (ctl_rx_enable_0                    ),  // input wire ctl_rx_enable_0
    .ctl_rx_check_preamble_0            (ctl_rx_check_preamble_0            ),  // input wire ctl_rx_check_preamble_0
    .ctl_rx_check_sfd_0                 (ctl_rx_check_sfd_0                 ),  // input wire ctl_rx_check_sfd_0
    .ctl_rx_force_resync_0              (ctl_rx_force_resync_0              ),  // input wire ctl_rx_force_resync_0
    .ctl_rx_delete_fcs_0                
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺子学不会FPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值