千兆网RGMII接口FPGA实现(基于RTL8211)

RTL8211开发板上的常客,这次加一个RGMII版本的实现,在Altera的片子主要用到了ddio这个IP(你说是原语也可以),如果在Xilinx的片子上可以用相对应的IDDR和ODDR,反正就是FPGA对应双沿采样的那一套逻辑。(Xilinx的是有Tri_mode_ethernet_mac,但是我没有Altera的那个IP核的license所以就用这个吧) RTL8211的配置参考手册《》和这个程序《》,这里是配成了全双工千兆 然后是ddio的使用和时序约束主要就是参考《》这个文档,然后代码是这个《》,约束就按照AN477上面的写,把信号名称换了就行,我的就这样基本稳定了,收发都可以,如果有误码可能还需要根据不同板卡的走线在这上面微调。 注意硬件上这个地址和mdio_com.v中的这里应该是一致的

被忘了检查供给芯片上的25M时钟,这个如果没设计晶振的话,用FPGA生成的25M也是可以的 这个PHY的开发还是挺顺利,就mdio的配置是参考开发板的,rgmii根据Altera的文档就搞定了。 下次在Xilinx上调KSZ9031RNX呀,被这个坑的好惨,Xilinx的PS端的Driver里面都不识别,等我调好了再贴上来。

经验分享 程序员 微信小程序 职场和发展