![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
万兆以太网设计
文章平均质量分 77
顺子学不会FPGA
学海无涯
展开
-
万兆以太网MAC设计(14)FPGA实现巨型以太网数据帧传输
万兆以太网设计最终章节,巨型以太网数据帧传输设计。对于标准以太网而言,数据传输范围为46-1500字节,当大于1500字节后数据将无法传输。在IP层的报文描述当中,有一个分片字段,通过该字段即可实现将巨型数据帧拆分为多个小于1500字节的数据进行传输。原创 2024-05-16 19:53:09 · 1732 阅读 · 0 评论 -
万兆以太网MAC设计(13)主机与FPGA之间进行PING
在上班尝试进行PING操作的时候,发现一直是请求超时的情况,结果排查发现是首部校验和没有计算的问题。在UDP层,我们不进行校验和是不会影响数据正常收发的,但是在ICMP层不可以,FPGA没有进行校验和主机是无法正常进行PING板卡的。原创 2024-05-05 10:13:17 · 795 阅读 · 1 评论 -
万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信
通过wireshark可以看到发送数据过程,首先是主机发送一个ARP请求,然后板卡会返回ARP回复包,然后主机即可获取板卡的MAC地址信息,我们设置的正是01020040506,接下来主机向板卡发送数据,板卡接收到数据后返回给主机,一发一收全部正常。然后数据进行回环测试,主机向板卡发送数据然后板卡向主机返回相同的数据。通过网口调试助手发送数据,可以看到数据正确被回环。在UDP协议栈当中设置IP地址和UDP端口。顶层模块设置源MAC地址。原创 2024-04-29 18:41:35 · 1177 阅读 · 0 评论 -
万兆以太网MAC设计(11)完整UDP协议栈仿真
目前除了巨帧处理逻辑之外,所有的准备工作都已经结束了,先进行整体的功能验证。原创 2024-04-28 09:44:00 · 1882 阅读 · 0 评论 -
万兆以太网MAC设计(10)UDP协议解析以及模块设计
参考:https://sunyunqiang.com/blog/udp_protocol/原创 2024-04-28 09:12:01 · 1456 阅读 · 0 评论 -
万兆以太网MAC设计(9)数据流仲裁模块
c0和c1表示输入的俩个数据通道,c0优先级高,P_ARBITER_LAYER 表示当前是在IP层进行仲裁还是MAC层,可复用于俩个模块。二、模块功能描述MAC层负责接收来自IP层和ARP层的数据,IP层负责ICMP和UDP层数据,所以MAC层和IP层需要对上层协议的数据包进行仲裁,以决定先发送哪个上层数据。于MAC层而言,ARP应当具有更高的优先级,于IP层而言,ICMP具有更高的优先级。输入数据全部先进入FIFO,当任何一个通道的FIFO不为空时,即可开启仲裁锁,因为此时必然会有一个通道获得仲裁结果原创 2024-04-25 11:18:16 · 458 阅读 · 0 评论 -
万兆以太网MAC设计(8)ICMP协议详解以及ICMP层模块设计
ICMP (Internet Control Message Protocol) 协议被设计用来向 IP 源端报告差错及其它相关信息, IP 协议本身只设置有 Checksum 机制来保证数据的正确性, 它本身提供不可靠的服务, ICMP 协议可以用来当发送差错时向源端报告相应的问题, 可以一定程度上提高 IP Datagram 交付的可靠性, 其协议的标准文档为 1981 年 9 月发布的 RFC 792, 本文讨论 ICMP 协议的设计,ICMP 不是 IP 协议之上的协议, ICMP 的 PDU 被封原创 2024-04-24 15:41:25 · 789 阅读 · 0 评论 -
万兆以太网MAC设计(7)ARP协议报文格式详解以及ARP层模块设计
硬件类型:表示硬件地址的类型。它的值为1表示以太网地址协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址硬件地址长度和协议地址长度:分别指出硬件地址和协议地址的长度,以字节为单位。操作类型(OP):1表示ARP请求,2表示ARP应答。原创 2024-04-24 10:43:41 · 1852 阅读 · 1 评论 -
万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计
这篇文章内容很丰富,建议看看Version: 长度为 4 比特, 表征 IP 协议的版本号, 对 IPv4 来说该字段的值为 4IHL: 长度为 4 比特, IHL 是 Internet Header Length 的缩写, 以 4 字节为单位指示 IP Header 的长度, 对于 IPv4 来说, Header 的最小长度为 20 字节, 因此该字段的最小值为 5。原创 2024-04-23 15:43:53 · 1882 阅读 · 0 评论 -
关于万兆以太网IP核仿真相关问题
一般来说我们自己进行仿真时候该信号都直接给1,之前的高速IP核好像并没有出过错误,但是10G PCSPMS IP核进行仿真的时候,该信号必须要先置为0,等待用户复位结束之后在coreclk上升沿拉高该信号,才能使得仿真时候的rx_resetdone正常拉高。信号拉高,否则XGMII_TX接口处的数据正确,接收端也无法接收数据。用户输入XGMII数据的时候,必须要等待。原创 2024-04-16 14:33:14 · 322 阅读 · 0 评论 -
万兆以太网MAC设计(1)10G PCS PMA IP核使用
初步打通了万兆以太网高速接口,后续将基于此进行完整的MAC层设计。原创 2024-04-11 15:33:57 · 1664 阅读 · 0 评论 -
万兆以太网MAC设计(5)MAC_TX模块设计以及上板带宽测试
MAC_RX的设计暂时告一段落,本节将开始进行MAC_TX的设计。原创 2024-04-16 14:23:40 · 867 阅读 · 0 评论 -
万兆以太网MAC设计(4)CRC_process模块
上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。完整代码参考:https://github.com/shun6-6/Ten_gig_eth_design。原创 2024-04-14 13:27:33 · 782 阅读 · 2 评论 -
万兆以太网MAC设计(3)MAC_RX模块添加CRC
上文介绍的MAC_RX模块实现了接受字节对齐的功能,但是尾端存在4字节CRC校验未处理。该模块整体来说变得很复杂了已经,完整模块代码参考:https://github.com/shun6-6/Ten_gig_eth_design。原创 2024-04-13 11:44:52 · 1238 阅读 · 0 评论 -
万兆以太网MAC设计(2)MAC_RX模块
上文我们打通了了万兆以太网物理层和数据链路层,其实就是会使用IP核了,本文将正式开始MAC层设计第一篇,接收端设计。原创 2024-04-12 11:18:42 · 1198 阅读 · 0 评论