版权声明:本文为CSDN博主「Y__Yshans」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/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-硬件开发文档类资源-CSDN下载
PMA回环