- 博客(88)
- 收藏
- 关注
原创 25届秋招总结——保持自信、坚定选择
在秋招过程中我也是通过探索者公众号、牛客、脉脉等社交平台认识了不少朋友,在成都芯原的线下开放日还面基了好几位,还是蛮有意思的一段旅程,虽然最后拒绝了我的初恋厂芯原(究极纠结了一波),最终我是选择了一家上海公司,或许这就是冥冥注定吧,一切都是命运最好的安排hhh,身边和FPGA探索者群里的uu们应该也都是知道我选offer时候的痛苦,我们确实很难在当下做出超越自身年龄和阅历的选择,所以当下的选择也不好谈对错,任何选择都是需要舍弃一些东西,我们要做的就是坚定自己的选择,最后祝大家,前程似锦!
2024-09-25 19:13:27
2201
2
原创 SerDes介绍以及原语使用介绍(4)ISERDESE2原语仿真
上文详细介绍了ISERDESE2原语的使用,本文根据仿真对ISERDESE2原语的使用进一步加深印象。在仿真时,与OSERDESE进行回环。
2024-06-29 17:28:52
1523
原创 SerDes介绍以及原语使用介绍(3)ISERDESE2原语介绍
上文对OSERDESE进行了详细介绍并且进行了仿真分析,本文开始对ISERDES进行介绍,
2024-06-29 14:51:16
3185
原创 SerDes介绍以及原语使用介绍(2)OSERDESE2原语仿真
上文通过xilinx ug471手册对OSERDESE有了简单的了解,接下来通过仿真进一步深化印象。
2024-06-28 10:32:39
799
1
原创 SerDes介绍以及原语使用介绍(1)OSERDESE2
需要 SerDes(串行器/解串器)主要是为了应对高速数据传输和复杂系统集成的挑战。以下是具体原因和应用场景:高速数据传输数据带宽需求增加:随着数据处理能力的提升,系统对数据传输带宽的需求不断增加。SerDes可以实现更高的传输速率,满足带宽需求。时钟频率提升:串行传输能够以更高的时钟频率工作,从而提高数据传输速度。减少引脚和布线引脚数量减少:在并行传输中,需要多条数据线和相应的引脚。SerDes通过串行化数据传输,显著减少了所需的引脚数量。布线复杂性降低。
2024-06-28 09:51:05
1835
原创 不同高速协议接口之间共享时钟
一个GT BANK有四个GT channel,他们之间是可以共享同一个QPLL输出参考时钟,之前的实验当中,我都是同样的工程例化多个channel进行时钟共享,这次在做一个BANK上同时存在万兆王、8B10B、64B66B的时候出现了问题。
2024-06-16 19:52:52
1336
原创 XILINX 7系列XDMA使用_IP核介绍以及工程搭建
PCIe 的物理位置,根据原理图的位置选择,本实验为ZYNQ7100,PCIE位置为X0Y0,由于是X8,占俩个GT BANK,但这好像只能选一个。: PCIe 最大的传输速率,PCIe-1.0 的最大传输速率为 2.5GT/S,PCIe-2.0 的最大传输速率为 5GT/S。第二页为PCIe 配置空间中的基础信息的配置。至于其他测试都很简单,关于驱动的东西我个人了解较少,后续再慢慢学习吧。连接好主机和FPGA的PCIE,保持FPGA上电状态,重启电脑。:主机给PCIE提供的时钟信号,通过原理图查看。
2024-06-14 14:25:43
4739
3
原创 万兆以太网MAC设计(14)FPGA实现巨型以太网数据帧传输
万兆以太网设计最终章节,巨型以太网数据帧传输设计。对于标准以太网而言,数据传输范围为46-1500字节,当大于1500字节后数据将无法传输。在IP层的报文描述当中,有一个分片字段,通过该字段即可实现将巨型数据帧拆分为多个小于1500字节的数据进行传输。
2024-05-16 19:53:09
3513
原创 PCIE学习(1)PCIE简介
PCIE是一种串行通信协议。在低速情况下,并行结构绝对是一种非常高效的传输方式,但是当传输速度非常高,并行传输的致命性缺点就出现了。因为时钟在高速的情况下,因为每一位在传输线路上不可能严格的一致,并行传输的一个字节中的每个位不会同时到达接受端就被放大了。而串行传输一位一位传输就不会出现这个问题。串行的优势就出现了,串行因为不存在并行的这些问题,就可以工作在非常高的频率下,用频率的提升掩盖它的劣势。
2024-05-10 19:03:13
3362
3
原创 IP,TCP,UDP,ICMP校验和的区别和计算
IP校验和 = IP头部的计算TCP,UP校验和 = 伪首部+TCP/UDP报头+数据ICMP校验和 = ICMP报头+数据。
2024-05-05 10:13:28
1217
1
原创 万兆以太网MAC设计(13)主机与FPGA之间进行PING
在上班尝试进行PING操作的时候,发现一直是请求超时的情况,结果排查发现是首部校验和没有计算的问题。在UDP层,我们不进行校验和是不会影响数据正常收发的,但是在ICMP层不可以,FPGA没有进行校验和主机是无法正常进行PING板卡的。
2024-05-05 10:13:17
1399
1
原创 万兆以太网MAC设计(12)万兆UDP协议栈上板与主机网卡通信
通过wireshark可以看到发送数据过程,首先是主机发送一个ARP请求,然后板卡会返回ARP回复包,然后主机即可获取板卡的MAC地址信息,我们设置的正是01020040506,接下来主机向板卡发送数据,板卡接收到数据后返回给主机,一发一收全部正常。然后数据进行回环测试,主机向板卡发送数据然后板卡向主机返回相同的数据。通过网口调试助手发送数据,可以看到数据正确被回环。在UDP协议栈当中设置IP地址和UDP端口。顶层模块设置源MAC地址。
2024-04-29 18:41:35
1529
原创 万兆以太网MAC设计(10)UDP协议解析以及模块设计
参考:https://sunyunqiang.com/blog/udp_protocol/
2024-04-28 09:12:01
1830
原创 万兆以太网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
728
原创 万兆以太网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
1132
原创 万兆以太网MAC设计(7)ARP协议报文格式详解以及ARP层模块设计
硬件类型:表示硬件地址的类型。它的值为1表示以太网地址协议类型:表示要映射的协议地址类型。它的值为0x0800即表示IP地址硬件地址长度和协议地址长度:分别指出硬件地址和协议地址的长度,以字节为单位。操作类型(OP):1表示ARP请求,2表示ARP应答。
2024-04-24 10:43:41
2265
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
2330
原创 UltraScale+的100G Ethernet Subsystem IP核使用
前面关于U+系列的10G、40G以太网我们都了解了,本文将开始使用100G以太网 IP核。需要额外使用俩个100G的光模块。
2024-04-22 11:15:14
2673
6
原创 UltraScale+的40G/50G Ethernet Subsystem IP核使用(2)
上文介绍了40G/50G Ethernet Subsystem IP核的使用,对于每个QSFP都单独使用一个GT参考时钟,本文将基于此介绍GT时钟共享。
2024-04-21 15:30:21
973
9
原创 UltraScale+的40G/50G Ethernet Subsystem IP核使用
上文介绍了10G/25G Ethernet Subsystem IP核使用,本文将在此基础上介绍40G/50G Ethernet Subsystem IP核的使用,总体区别不大。
2024-04-21 13:46:10
2065
12
原创 UltraScale+的10G/25G Ethernet Subsystem IP核使用
前面我们学习了很多基于XILINX 7系列的高速接口使用,本文将介绍xilinx UltraScale+的10G/25G Ethernet Subsystem IP核的使用。大体使用与7系列相差无几,甚至更加简单。大家如果看过7系列那部分的内容,这个上手非常快。
2024-04-19 19:36:40
5731
12
原创 关于万兆以太网IP核仿真相关问题
一般来说我们自己进行仿真时候该信号都直接给1,之前的高速IP核好像并没有出过错误,但是10G PCSPMS IP核进行仿真的时候,该信号必须要先置为0,等待用户复位结束之后在coreclk上升沿拉高该信号,才能使得仿真时候的rx_resetdone正常拉高。信号拉高,否则XGMII_TX接口处的数据正确,接收端也无法接收数据。用户输入XGMII数据的时候,必须要等待。
2024-04-16 14:33:14
715
原创 万兆以太网MAC设计(4)CRC_process模块
上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。完整代码参考:https://github.com/shun6-6/Ten_gig_eth_design。
2024-04-14 13:27:33
1158
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
1702
原创 万兆以太网MAC设计(2)MAC_RX模块
上文我们打通了了万兆以太网物理层和数据链路层,其实就是会使用IP核了,本文将正式开始MAC层设计第一篇,接收端设计。
2024-04-12 11:18:42
1950
原创 SRIO学习(3)使用SRIO IP核进行设计
本文将通过使用SRIO IP核实现数据通信,重点在于打通数据链路,具体的协议内容设计并非重点,打通了链路大家自己根据设计需求来即可。复位和时钟模块在上一篇介绍时钟和复位的时候进行了介绍。与之前高速接口不同的是RapidIO有一套自己的交互协议规范,所以在基于FPGA进行设计的时候,需要按照规范进行传输数据和解析数据。我们重点不在于这块,因为我没有接触过这方面的需求,所以暂时只是可以使IP核实现正常的通信即可。以下是一个很简单的数据收发模块,参考。
2024-04-09 00:15:00
2097
4
原创 SRIO学习(2)SRIO IP核时钟和复位
通过对时钟和复位的理解可以更好的了解IP核的工作过程,不过不理解也不影响使用,example design帮我们都做好了。gt_clk:由链路速率决定gt_pcs_clkgt_pcs_clk的频率是gt_clk的一半。phy_clkphy_clk(gt_clk * 链路Line宽度)/4log_clkLOG(逻辑层)在log_clk域上运行。为了达到最佳吞吐量,log_clk应至少与phy_clk一样快。这是为了PHY层接收到的数据不会在BUF里一直停留。cfg_clk必须等同于log_clk。
2024-04-08 02:00:00
2688
原创 SRIO学习(1)SRIO介绍以及IP核详解
参考1:https://www.ti.com.cn/general/cn/docs/gencontent.tsp?参考2:https://blog.youkuaiyun.com/qq_33904382/article/details/130330299串行RapidIO针对高性能嵌入式系统芯片间和板间互连而设计。在嵌入式系统应用领域,DSP,FPGA,PowerPC等嵌入式处理器的出现后,工程师将多种处理器组合,形成模块。模块通过背板相连,形成整机,实现更大的系统应用。架构独立,不依赖具体的硬件和软件。
2024-04-08 00:15:00
11103
1
原创 AURORA64B66B IP核使用
前面我们基于GT 64B66B设计了自定义PHY层,并且也介绍过了基于AURORA8B18B IP核的使用,AURORA8B18B IP核的使用可以说是与AURORA8B18B IP核完全一致,可参考前文:https://blog.youkuaiyun.com/m0_56222647/article/details/137261729?
2024-04-07 11:18:38
3470
7
原创 GT收发器64B66B协议(3)添加解扰和加扰模块
上文我们通过回环测试验证了自定义PHY收发模块的正确性,但是没有加扰和解扰是没办法通过光纤进行传输的,本文我们增加该模块。
2024-04-06 16:44:40
1037
1
原创 GT收发器64B66B协议(2)自定义PHY设计
有了对64B66B协议的认识以及我们之前设计8B10B自定义PHY的经验,本文开始对64B66B自定义PHY的设计。
2024-04-04 16:15:21
2245
原创 GT收发器64B66B协议(1)IP核配置和example design
在前面我们基于GT收发器进行了PHY层设计,其中采用的编码方式为8B10B,为进一步提高传输效率,从本文开始,将采用基于GT高速收发器采用64B66B编码方式进行设计。
2024-04-03 17:20:38
1788
原创 64B66B编码详解
64B66B是我们在高速通信协议中的一种处理PHY层发送数据的编码。为何我们要编码,直接把原数据发送出去不行吗?答案是当然不行,我们8B10B中了解到:串行通信中长连1与长连0对接收端恢复时钟造成了很大的挑战,因此我们将8bit的数据扩展到10bit,在1024种编码中精心挑选256种最优码值用于传输,避免的过大的长连1与长连0。这也是我们所说的“直流平衡”。前面我们介绍过的8B10B编码,它的效率较低,只有80%。64b/66b编码技术是IEEE 802.3工作组为10G以太网提出的,
2024-04-02 19:28:48
2985
原创 Aurora8b10b(2)上板验证
上一篇内容我们已经详细介绍了基于aurora8b10b IP核的设计,本文将基于此进一步完善并且进行上板验证。
2024-04-02 17:05:34
1014
2
原创 Aurora8b10b(1)IP核介绍并基于IP核进行设计
参考xilinx文档pg046Aurora 是一个用于在点对点串行链路间移动数据的可扩展轻量级链路层协议。这为物理层提供透明接口,让专有协议或业界标准协议上层能方便地使用高速收发器。虽然使用的逻辑资源非常少,但 Aurora 能提供低延迟高带宽和高度可配置的特性集。在 Xilinx FPGA 上使用是免费的,而且在 ASIC 上能以名义成本通过单独的许可证协议得到支持。高带宽,仅受限于收发器的数据速率支持大量键合线路,实现较高的总带宽支持全双工和单工通道无限帧尺寸/灵活组帧。
2024-04-02 15:33:12
3190
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人