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

2024-04-30 12:44

本文主要是介绍万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、设置IP以及MAC
  • 二、上板效果
    • 2.1、板卡与主机数据回环测试
    • 2.2、板卡满带宽发送数据

一、设置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左右,可以减少一些打拍逻辑,可以提升一定的速率。
在这里插入图片描述

这篇关于万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948893

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

Python模拟串口通信的示例详解

《Python模拟串口通信的示例详解》pySerial是Python中用于操作串口的第三方模块,它支持Windows、Linux、OSX、BSD等多个平台,下面我们就来看看Python如何使用pySe... 目录1.win 下载虚www.chinasem.cn拟串口2、确定串口号3、配置串口4、串口通信示例5