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

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

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

相关文章

开源代码分享(26)-考虑预测不确定性的综合能源调度优化

参考文献: [1]崔杨,周慧娟,仲悟之,等.考虑源荷两侧不确定性的含风电电力系统低碳调度[J].电力自动化设备,2020,40(11):85-93.DOI:10.16081/j.epae.202009019. 1.基本原理 考虑碳交易机制能够有效提高风电消纳量,但是随着风电并网容量的增大&#xff0c…

【安卓13】谷歌桌面Launcher3屏蔽全部应用里面的部分app

1、需求 我们在做谷歌桌面时,移植了一些我们自己的应用,但是有些应用是服务型的app,不需要显示在主页,要隐藏掉 2、解决方案 方法1: 解决办法很简单,阅读源码发现,谷歌桌面添加全部应用的源…

CentOS 7 安装 Puppeteer Google Chrome

由于需要使用到了 Puppeteer 功能,安装了多次失败而告终。最终找到了一个可以安装成功的方式,特此记录下来。 安装 Puppeteer 需要注意 Node.js 版本,我使用的是 16.x cnpm i puppeteer安装 Google Chrome 这里需要注意的一下是,…

使用yolo识别模型对比两张图片并标记不同(2)

上篇文章有漏洞,在这里补充下,比如要识别第二张图相对于第一张图的违建是否拆除了 第一步旋转对其后,图片会有黑色的掩码,如果旋转角度大的话,没识别出来的框可能不是已经拆除了,而是因为黑色掩码遮挡&…

美国经济走向滞胀,鲍威尔或在会议后强调通胀挑战

摩根大通首席市场策略师Marko Kolanovic在一份分析报告中表示,上周美国GDP数据意外下滑,通胀的上行势头也在加剧,对"软着陆"叙事构成压力。这些数据与市场预期之间的反差,表明美国经济可能正走向“滞胀”的方向。 Kola…

数字旅游:通过科技赋能,创新旅游服务模式,提供智能化、个性化的旅游服务,满足游客多元化、个性化的旅游需求

目录 一、数字旅游的概念与内涵 二、科技赋能数字旅游的创新实践 1、大数据技术的应用 2、人工智能技术的应用 3、物联网技术的应用 4、云计算技术的应用 三、智能化、个性化旅游服务的实现路径 1、提升旅游服务的智能化水平 2、实现旅游服务的个性化定制 四、数字旅…

Linux编辑器调试器 gcc/g++ gdb 编译过程及使用讲解

这恋爱呀 我有两不谈 第一异性不谈 因为我们性别不一样 我知道的她不知道相处起来太累 第二同性不谈 因为我们性别一样 我知道的他也知道相处起来太无聊了 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–…

【介绍下Android开发环境的搭建】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

带噪声估计的KF

带噪声估计的KF x ^ ( k ∣ k − 1 ) A x ^ q ( k − 1 ∣ k − 1 ) x ^ q ( k ∣ k − 1 ) x ^ ( k ∣ k − 1 ) q ^ ( k − 1 ) (92、94) \begin{aligned} \hat{x}(k|k-1)&A\hat{x}_{q}(k-1|k-1) \\ \hat{x}_{q}(k|k-1)&\hat{x}(k|k-1)\hat{q}(k-1) \end{aligned}…

什么是域名解析?域名解析的完整流程是什么?如何清理DNS缓存?(附源码)

目录 1、什么是域名? 2、为什么使用域名? 3、域名解析的完整流程 4、调用gethostbyname系统接口将域名解析成IP地址 5、为什么需要清理系统DNS缓存? 6、使用cmd命令清理DNS缓存 7、通过代码去清除系统DNS缓存 C软件异常排查从入门到精…

使用量排名前50的GPTs趋势和特征

Chatgpt的gpt商店已经有几千gpts了。目前哪些gpts比较受欢迎呢?有哪些趋势和投资呢? 根据whatplugin.ai(截止日期为2024年3月),使用量最多的50个gpts数据分析结果如下: GPTs类型的分布情况如下: 图像生成…

Vue 2 组件创建全指南:一步一步学习

文章目录 步骤 1: 创建组件文件步骤 2: 定义模板步骤 3: 添加脚本步骤 4: 添加样式步骤 5: 使用组件 步骤 1: 创建组件文件 通常,一个 Vue 组件被创建为一个单文件组件 (Single File Component),这意味着它的模板、脚本和样式都包含在一个 .vue​ 文件中…

Java基础知识总结(79)

waitStatus属性 每个节点与等待线程关联,每个节点维护一个状态waitStatus,waitStatus的各种值以常量的形式进行定义。 CANCELLED(1):waitStatus值为1时表示该线程节点已释放(超时、中断),已取消的节点不会再阻塞&…

21.Nacos集群搭建

模拟Nacos三个节点,同一个ip,启动三个不同的端口: 节点 nacos1, 端口:8845 节点 nacos2, 端口:8846 节点 nacos3, 端口:8847 1.搭建数据库,初始化数据库表结构 这里我们以单点的数据库为例 首先新建一…

【C#】基础知识

0.参考 C#语言入门详解 1.几种打印hello_world的方式 1.1 console控制台 新建一个console,直接打印: Console.WriteLine("Hello_world");启动一闪而过,在vs调试中选择开始执行不调试(without debug)。 …

webpack 区分环境

区分环境 {ignore} 文章目录 区分环境 {ignore} 有些时候,我们需要针对生产环境和开发环境分别书写webpack配置 为了更好的适应这种要求,webpack允许配置不仅可以是一个对象,还可以是一个函数 module.exports env > {return {//配置内容…

通话记录生成器怎么使用

通话记录生成器是一种可以模拟生成通话记录的软件工具,使用起来相对简单。以下是使用步骤: 导入目标号码:您需要将想要生成通话记录的目标号码输入到软件中。这可以通过直接复制粘贴电话号码,或者如果是图片或纸质文件中的号码&am…

分布式与一致性协议之CAP和Paxos算法(一)

CAP 理论 如何使用BASE理论 以InfluxDB系统中DATA节点的集群实现为例。DATA节点的核心功能是读和写,所以基本可用是指读和写的基本可用。我们可以通过分片和多副本实现读和写的基本可用。也就是说,将同一业务的数据先分片,再以多份副本的形…

四种网络IO模型

📝个人主页:五敷有你 🔥系列专栏:面经 ⛺️稳中求进,晒太阳 IO的定义 IO是计算机内存与外部设备之间拷贝数据的过程。CPU访问内存的速度远高于外部设备。因此CPU是先把外部设备的数据读取到内存,在…

有趣的大模型之我见 | Llama AI Model

Llama 开源吗? 我在写《有趣的大模型之我见 | Mistral 7B 和 Mixtral 8x7B》时曾犹豫,在开源这个事儿上,到底哪个大模型算鼻祖?2023 年 7 月 18 日,Meta 推出了最受欢迎的大型语言模型(LLM)的第…