关于FPGA的开发,大致可以分为算法和接口两类,其中接口又可以分为高速和低速两类,像UART、I2C、SPI、SDRAM、HDMI、LVDS等等,都被归为低速接口类别,最高线速率不过几百Mbps,使用FPGA的普通IO即可实现数据收发。
而高速接口是指基于serdes设计的一些接口,线速率一般大于1Gbps,比如万兆网、PCIE、SRIO等协议所有的接口。xilinx的GTP、GTX、GTH等都属于这类接口,有专用的参考时钟引脚、数据收发引脚。
xilinx针对高速接口提供了很多IP,最基础的就是GTX等IP,其余IP均是在其基础之上进行封装的,因此熟悉GTX等基础IP才是学习的重点,其余上层封装的IP都比较简单。
我也学习了一段时间的高速接口内容,目前使用过GTX实现8B10B,64B66B数据收发、aurora 8B10B和aurora 64B66B,SRIO数据收发、万兆以太网UDP协议栈的搭建。整个过程感觉最重要的就是对GTX的熟悉,后续的SRIO和万兆网只需要熟悉协议,在看官方IP手册即可。
关于高速收发器相关内容打算从最基础的GTX开始讲解,再看官方提供的aurora 8B10B和aurora 64B66B就会特别简单。SRIO目前还只是初步使用,暂时不会出相关讲解。万兆网之前使用10G PCSPMA IP搭建的UDP协议栈,但是后面想直接使用GTX搭建万兆网的PHY层、MAC层以及IP层的ARP、ICMP、UDP协议,将难度提升到最大,充分掌握GTX的开发。
既然要完成上述内容,就必须熟悉GTX相关内容,因此下面会通过大约十多篇文章讲解GTX的原理及常用设置,重点需要关注共享逻辑、内部时钟结构、时钟纠正、接收数据对齐等内容。
1、GTX基础知识
FPGA高速收发器的来源:了解高速收发器是串行差分总线,为什么不是并行总线?
详解GTX时钟及共享部分(高速收发器一):了解GTX共用资源及高速收发器参考时钟的设置。
如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!
如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!