版权声明:本文为优快云博主「Y__Yshans」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/Y__Yshans/article/details/121955869
使用软件:vivado2020.1、仿真用vivado自带的仿真
摘要: 在Xilinx官方文档中(PG210-25G-ethernet)找到自己要的信息,几乎没有去动IP核什么参数,主要是通过这个IP去完成内回环以及外回环的仿真以及上板调试(另一篇文章),通过实现这个去了解整个FPGA开发流程。
内回环:PMA回环
外回环:通过SFP光模块口回环
IP核参数只改了BASE-R以及Include AXI4-Lie
目录
1.从Xilinx文档中找到有用信息

打开Ethernet ip核的example design之后,看一下官方给的IP核仿真(仿真之前记得按照文档提示来)。不难发现,通过几个信号就能够观察IP核在什么情况下才是正常使用的。那么在PG210-25G-ethernet中可以找到这些信号,User Interface是我们比较关注的地方还有就是tx和rx信号。

2.顶层
要把example design直接用到工程里面去,需要做一点点改动。比如最终我要在xczu27dr-fsve1156-2-i这个芯片板子上跑通内回环和外回环,可以把官方的example design放到顶层里面去。顶层的信号只需要用到gt连接芯片端口的信号、gt时钟差分信号、clk差分信号以及SFP光模块信号。restsrt_tx_rx 和 send_continous_pkts直接给0,gt时钟给的是368.64MHz,dclk是100MHz(dclk这里用clk wizard IP核生成的),直接给复位,EXDES0这个模块就能够运行。那么用ILA在调试板上抓信号的时候,可以只用看看 restart_tx_rx_0、rx_gt_locked_led_0、rx_block_lock_led_0、completion_status、stat_reg_compare 这几个信号就可以了。


3.仿真
3.1 IP核仿真
从example design仿真里面可以看到,50us前,两个lock已经locked住了;100多us的时候开始发包,200多us的时候结束,completion_status在完成后变成1。


3.2内回环仿真
内回环仿真与上面基本差不多,不过可以通过改变sys_reset或者restart_tx_rx信号(这个信号值可以在completion_status为1后进行改变),去多观察一下会有什么变化,这对理解IP核有帮助。
4.约束文件
约束文件注意格式,电平、端口、引脚注意一下,一般不会有什么问题,下图举例:


5.生成比特流、时序

这一套完成下来,对FPGA开发流程了解了不少,也基本对Ethernet内外回环清楚一些了,生成比特流后发现时序很糟糕,感觉是因为ILA抓信号引起的,不过可以对时序进行优化,多加一些约束,但是这个时序问题好像不太会影响对内外回环的测试。

6.总结
Xilinx官方文档,PG210-25G-ethernet(英文版),c_pg210-25g-ethernet(中文版)
代码已经上传:1025G_Ethernet_Subsystem-1.7z-硬件开发文档类资源-优快云下载
PMA回环
本文详细介绍了如何利用Xilinx Vivado 2020.1进行25G Ethernet IP核的内回环和外回环仿真,以及上板调试过程。作者通过官方文档PG210-25G-ethernet获取关键信息,并修改IP核参数,实现了基于XCZU27DR-FSVE1156-2-I芯片的内外回环功能。在顶层模块中,重点关注了UserInterface、tx和rx信号,通过ILA调试并观察特定信号状态。仿真结果显示,50us内锁信号锁定,100us后开始发送数据,200us后完成。约束文件、时序优化和比特流生成也是开发流程的一部分。文章提供了对FPGA开发流程和以太网IP核应用的深入理解。
1万+





