万兆以太网MAC设计(13)主机与FPGA之间进行PING

文章目录

前言:

在上板尝试进行PING操作的时候,发现一直是请求超时的情况,结果排查发现是首部校验和没有计算的问题。在UDP层,我们不进行校验和是不会影响数据正常收发的,但是在ICMP层不可以,FPGA没有进行校验和主机是无法正常进行PING板卡的。

一、ICMP校验和计算

ICMP校验和计算与IP层一样,只不过IP层只校验首部,但ICMP需要将数据一起进行校验。校验步骤:

  1. 将数据按照16bit组成一组,以此进行求和
  2. 如果结果超出16位,需要将高16位与低16位进行相加
  3. 对低16位进行取反,即可得到最终校验结果
c 复制代码
always@(posedge i_clk,posedge i_rst)
begin
    if(i_rst)
        r_hd_checksum <= 'd0;
    else if(i_trigger)
        r_hd_checksum <= 16'h0000 + 16'h0000 + i_Identifier + i_Sequence
                            + 16'h6162 + 16'h6364 + 16'h6566 + 16'h6768
                            + 16'h696a + 16'h6b6c + 16'h6d6e + 16'h6f70
                            + 16'h7172 + 16'h7374 + 16'h7576 + 16'h7761
                            + 16'h6263 + 16'h6465 + 16'h6667 + 16'h6869;
    else if(ri_trigger)
        r_hd_checksum <= r_hd_checksum[31:16] + r_hd_checksum[15:0];
    else 
        r_hd_checksum <= r_hd_checksum;
end
c 复制代码
rm_axis_ip_data <= {16'h0000,(~r_hd_checksum[15:0]),ri_Identifier,ri_Sequence};

二、上板效果

修改完校验和计算后PING结果一切正常。

1、终端命令行

1、wireshark捕捉

相关推荐
dxxt_yy17 分钟前
鼎讯信通 TY-30H 光纤熔接机:铁路通信施工设备科普
网络
s090713629 分钟前
【FPGA实战】基于Verilog的MCP2515 CAN控制器SPI驱动详解 | 附完整代码
fpga开发·硬件设计·can通信·mcp2515
c++之路33 分钟前
迭代器模式(Iterator Pattern)
网络协议·rpc·迭代器模式
szxinmai主板定制专家36 分钟前
基于 ARM+FPGA 数据机床实时工业控制设计--以雕刻机为例
arm开发·人工智能·嵌入式硬件·fpga开发
XMAIPC_Robot1 小时前
基于RK3588 ARM+FPGA电火花数控机床控制系统设计,兼顾ethercat软硬件实时
linux·arm开发·人工智能·嵌入式硬件·fpga开发
星恒讯工业路由器1 小时前
4G自组网与VPDN专网技术解析
网络·物联网·信息与通信·4g自组网·vpdn专网
淼淼爱喝水1 小时前
DVWA靶场命令注入漏洞检测实验
网络·安全·靶场·dvwa
XMAIPC_Robot2 小时前
基于 ARM+FPGA 数据机床控制系统设计--以雕刻机为例
arm开发·fpga开发
GateWorld2 小时前
LCD显示技术完全指南:原理·制造·驱动·FPGA实现之点屏一
fpga开发·lcd显示·fpga点亮屏幕·minilvds·fpga点屏
KaMeidebaby2 小时前
卡梅德生物技术快报|免疫共沉淀 - Co-IP 实验在转录因子 ATF3/Smad4 蛋白互作研究中的应用实例解析
网络·人工智能·网络协议·tcp/ip·其他·算法·新浪微博