万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信

发布于:2024-04-30 ⋅ 阅读:(22) ⋅ 点赞:(0)

一、设置IP以及MAC

顶层模块设置源MAC地址

module XC7Z100_Top#(
    parameter       P_SRC_MAC = 48'h01_02_03_04_05_06,
    parameter       P_DST_MAC = 48'hff_ff_ff_ff_ff_ff
)(
    input           i_sys_clk_p     ,
    input           i_sys_clk_n     ,
    input           i_gt_refclk_p   ,
    input           i_gt_refclk_n   ,
    input           i_gt_rxp        ,
    input           i_gt_rxn        ,
    output          o_gt_txp        ,
    output          o_gt_txn        ,
    output          o_tx_disable
);

在UDP协议栈当中设置IP地址和UDP端口。

然后数据进行回环测试和板卡满带宽发数据,主机向板卡发送数据然后板卡向主机返回相同的数据。

UDP_10G_Stack#(
    .P_SRC_MAC        (P_SRC_MAC                    ),
    .P_DST_MAC        (P_DST_MAC                    ),
    .P_SRC_IP_ADDR    ({8'd192,8'd168,8'd100,8'd100} ),
    .P_DST_IP_ADDR    ({8'd192,8'd168,8'd100,8'd90}),
    .P_SRC_UDP_PORT   (16'h8080                     ),
    .P_DST_UDP_PORT   (16'h8080                     )

)UDP_10G_Stack_u0(
    .i_xgmii_clk                (w_xgmii_clk        ),
    .i_xgmii_rst                (w_xgmii_rst || (!w_block_sync)),
    .i_xgmii_rxd                (w_xgmii_rxd        ),
    .i_xgmii_rxc                (w_xgmii_rxc        ),
    .o_xgmii_txd                (w_xgmii_txd        ),
    .o_xgmii_txc                (w_xgmii_txc        ),
    .i_dynamic_src_mac          (48'd0),
    .i_dynamic_src_mac_valid    (0),
    .i_dynamic_dst_mac          (48'd0),
    .i_dynamic_dst_mac_valid    (0),
    .i_dymanic_src_port         (0),
    .i_dymanic_src_port_valid   (0),
    .i_dymanic_dst_port         (0),
    .i_dymanic_dst_port_valid   (0),
    .i_dynamic_src_ip           (0),
    .i_dynamic_src_ip_valid     (0),
    .i_dynamic_dst_ip           (0),
    .i_dynamic_dst_ip_valid     (0),
    .i_arp_active               (0),
    .i_arp_active_dst_ip        (0),
    /****user data****/
    .m_axis_user_data           (wm_axis_user_data  ),
    .m_axis_user_user           (wm_axis_user_user  ),
    .m_axis_user_keep           (wm_axis_user_keep  ),
    .m_axis_user_last           (wm_axis_user_last  ),
    .m_axis_user_valid          (wm_axis_user_valid ),
    .s_axis_user_data           (wm_axis_user_data  ),
    .s_axis_user_user           (wm_axis_user_user  ),
    .s_axis_user_keep           (wm_axis_user_keep  ),
    .s_axis_user_last           (wm_axis_user_last  ),
    .s_axis_user_valid          (wm_axis_user_valid ),
    .s_axis_user_ready          ( ) 
);

二、上板效果

2.1、板卡与主机数据回环测试

通过网口调试助手发送数据,可以看到数据正确被回环。
在这里插入图片描述
通过wireshark可以看到发送数据过程,首先是主机发送一个ARP请求,然后板卡会返回ARP回复包,然后主机即可获取板卡的MAC地址信息,我们设置的正是01020040506,接下来主机向板卡发送数据,板卡接收到数据后返回给主机,一发一收全部正常。
在这里插入图片描述

2.2、板卡满带宽发送数据

带宽满速率下9.7G左右,可以减少一些打拍逻辑,可以提升一定的速率。
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到