赞
踩
上文介绍了10G/25G Ethernet Subsystem IP核使用,本文将在此基础上介绍40G/50G Ethernet Subsystem IP核的使用,总体区别不大。
由于40G以太网需要使用QSFP,需要四个GT channel,所以一个GT QUAD只能实现一个40G端口,本次实验如上图所示,俩个40G以太网IP核通过QSFP端口相互通信。每个端口使用独立的GT参考时钟,当然也可以共用一个参考时钟(如下图,不过要在代码里改一下COMMON参考时钟输入选择),GTY允许使用当前BANK上下各俩个BANK的参考时钟(7系列只允许上下各一个)。
各个模块与10G并没有区别,IP核的信号线也几乎一致。只是将l_ethernet_1_clocking_wrapper模块放到了顶层,方便多个BANK之间共用一个外部GT参考时钟。(如下图:我会在下一篇文章当中进行详细介绍,暂时还在搞)
本人在上板验证时遇到了奇怪的BUG:
tx_core_reset_in_0信号和rx_core_reset_in_0信号我本来和10G一样给的是0,然后接收端无法正常接收数据,后来给成i_sys_rst其他复位(这个也是示例工程的做法),BUG就消失了,但是我重新将复位信号变为0以后也并没有再出现BUG,不知道是啥情况。。。
l_ethernet_1_shared_logic_wrapper i_l_ethernet_1_sharedlogic_wrapper ( .gt_txusrclk2_0 (o_tx_clk_out ), .gt_rxusrclk2_0 (o_rx_clk_out ), .rx_core_clk_0 (w_rx_core_clk ), .gt_tx_reset_in_0 (w_gt_reset_tx_done_out|w_gtwiz_reset_tx_datapath_in), .gt_rx_reset_in_0 (w_gt_reset_rx_done_out|w_gtwiz_reset_rx_datapath_in), .tx_core_reset_in_0 (i_sys_rst), .rx_core_reset_in_0 (i_sys_rst), .tx_core_reset_out_0 (w_tx_core_reset ), .rx_core_reset_out_0 (w_rx_core_reset ), .usr_tx_reset_0 (o_user_tx_reset ), .usr_rx_reset_0 (o_user_rx_reset ), .rx_serdes_reset_out_0 (w_rx_serdes_reset ), .gtwiz_reset_all_0 (w_gtwiz_reset_all ), .gtwiz_reset_tx_datapath_out_0 (w_gtwiz_reset_tx_datapath_out ), .gtwiz_reset_rx_datapath_out_0 (w_gtwiz_reset_rx_datapath_out ), .sys_reset (i_sys_rst ), .dclk (i_dclk ) );
上板不论是各个BANK独立使用本BANK的参考时钟还是共享参考时钟都是正常的,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。