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

文章目录

  • 前言:
  • 一、ICMP校验和计算
  • 二、上板效果
    • 1、终端命令行
    • 1、wireshark捕捉

前言:

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

一、ICMP校验和计算

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

  1. 将数据按照16bit组成一组,以此进行求和
  2. 如果结果超出16位,需要将高16位与低16位进行相加
  3. 对低16位进行取反,即可得到最终校验结果
always@(posedge i_clk,posedge i_rst)
beginif(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
rm_axis_ip_data <= {16'h0000,(~r_hd_checksum[15:0]),ri_Identifier,ri_Sequence};

二、上板效果

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

1、终端命令行

在这里插入图片描述

1、wireshark捕捉

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681694.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ROS 2边学边练(45)-- 构建一个能动的机器人模型

前言 在上篇中我们搭建了一个机器人模型(其由各个关节&#xff08;joint&#xff09;和连杆&#xff08;link&#xff09;组成)&#xff0c;此篇我们会通过设置关节类型来实现机器人的活动。 在ROS中&#xff0c;关节一般有无限旋转&#xff08;continuous&#xff09;,有限旋转…

【每日力扣】543. 二叉树的直径与101. 对称二叉树

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 543. 二叉树的直径 给你一棵二叉树的根节点&#xff0c;返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的…

芋道源码的Springboot 项目打包,配置和依赖包分开

Springboot 项目&#xff0c;把依赖包和开发的应用都打在一个jar 里很简单&#xff0c;但有个问题是&#xff0c;修改点东西就要再次全量更新。 这里介绍如何用assembly 来实现不打依赖包。 1、 在主模块中&#xff0c;需要引入 assembly.xml配置&#xff1a; src/main/asse…

DUX 主题 版本:8.2 WordPress主题优化版

主题下载地址&#xff1a;DUX 主题优化版.zip 支持夜间模式、快讯、专题、百度收录、人机验证、多级分类筛选&#xff0c;适用于垂直站点、科技博客、个人站&#xff0c;扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、自动缩略图

如何通过wifi网络将串口数据发送到多个设备

摘要&#xff1a;当lora电台的速率无法满足高速传输时&#xff0c;可以考虑用“串口服务器”。本文介绍一下如何使用TP-LINK的TL-CPE300D实现一对多的数据发送。 当前也有使用lora电台的&#xff0c;但是lora电台支持的速率有限&#xff0c;可能最大支持到9600&#xff0c;甚至…

python数据分析所需要了解的结构基础

Python语言基础——结构基础 前言一、列表列表的介绍列表的语法示例注意要点符号元素切片运算符示例 二、字典字典的介绍字典的特点字典的语法 三、元组元组的介绍元组的语法示例 四、字符串字符串的介绍字符串的语法 五、操作运算符算术运算符赋值运算符比较运算符逻辑运算符位…

CMake创建跨平台OPenGL工程(学习笔记)

一、跨平台环境基本配置 1、环境搭建 1&#xff09;linux OpenGL环境搭建参考&#xff1a;ubuntu18.04 OpenGL开发&#xff08;显示YUV&#xff09;_ubuntu opengl-CSDN博客 https://blog.51cto.com/cerana/6433535 2&#xff09;windows下环境搭建 OpenGLVisual Studio20…

TensorFlow、pytorch和python对应的版本关系

安装深度学习框架的时候需要考虑版本的关系&#xff0c;不然装了用不了就尴尬了。 深度学习首先得问题就是用CPU跑&#xff0c;还是GPU跑。。当然有英伟达显卡的都想用GPU跑&#xff0c;不然买显卡是做啥、、GPU跑得多块&#xff0c;一下就训练完了。但是有的同学没得gpu&…

操作系统——进程控制

创建进程 fork fork是一个系统调用函数&#xff0c;用来创建子进程&#xff0c;通过多个执行流完成任务。子进程和父进程共用一份代码&#xff0c;子进程数据使用写时拷贝&#xff0c;即子进程数据在创建的时候和父进程相同&#xff0c;但是当要修改数据的时候&#xff0c;子进…

【FreeRTOS 快速入门】-- 1、STM32工程移植FreeRTOS

目录 一、新建STM32工程 为了示范完整的移植过程&#xff0c;我们从0开始&#xff0c;新建一个标准的STM32点灯工程。 &#xff08;本篇以CubeMX作示范&#xff0c;CubeIDE操作近同&#xff0c;可作对比参考&#xff09; 1、新建工程 选择 芯片型号 新建工程 2、搜索芯片型号…

win10 远程桌面无法连接,解决Win10远程桌面无法连接问题的方法

Windows 10操作系统中&#xff0c;远程桌面是一项非常实用的功能&#xff0c;它允许用户从另一台设备远程访问和控制另一台计算机。然而&#xff0c;有时候用户可能会遇到Win10远程桌面无法连接的问题。本文将探讨可能导致这个问题的原因&#xff0c;并提供相应的解决方案。 确…

7-38 数列求和-加强版

题目链接&#xff1a;7-38 数列求和-加强版 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码 1. 代码实现 #include <stdio.h> #include <string.h> #include <malloc.h>void addTerm(char *sum, int A, int N);int main() {int A, N;char *sum;// 读…