本帖最后由 mei 于 2025-11-3 16:09 编辑
本人在做嵌入式实验中使用米联客F3P-CZ02-7020开发平台中遇到PL端网口丢包问题如何修改软件工程的经验分享。
先查看F3P板卡的PL ETH网口部分:
如上图所示,如果ETHA_RXD0上拉,即R48上有电阻,ETHA_RXD1上拉,即R46有电阻,那么由于TXDLY在硬件上加上了2ns上拉延迟,而fpga工程中网口IP源文件也有延迟,因此会导致丢包,所以要在fpga工程中去掉延迟。
1.首先使用tcl文件构建工程(如果有不清楚的可以查看《3-5-1_米联客2024版ZYNQ-Linux课程(基础入门篇)》教程第四章,然后右击bd文件选择Generate Output Products,由于需要修改IP文件,所以要确保工程处于Global模式下generate,本质是为了接触OOC 模式对IP逻辑的固化保护,确保源码于设计流程的一致性。
2.然后在Tcl Console输入以下命令:set_property IS_LOCKED true [get_files D:/xxx/xxx.srcs/sources_1/bd/system/ip/system_axi_ethernet_0_0/system_axi_ethernet_0_0.xci],具体路径根据网盘位置设定。
3.完成后可以看到axi_ethernet_0_0这个IP上锁了,这个时候就可以修改IP文件了。根据路径D:\xxx\xxx.srcs\sources_1\bd\system\ip\system_axi_ethernet_0_0\bd_0\ip\ip_1\synth\physical找到bd_4bad_mac_0_rgmii_v2_0_if.v文件打开,并修改第209行,将tx_clk90修改为tx_clk,以及第213行,将tx_reset90修改为tx_reset,并保存。

修改前:

修改后:

4.最后编译。剩余步骤请继续按照Linux基础入门篇内容进行制作系统。注意,vitis会生成设备树中所需要的pl 网口所需要的节点,如果有不会修改的,可以参考提供的设备树文件。
(注:如果ETHA_RXD0上拉,ETHA_RXD1下拉,反之,将fpga工程中IP文件恢复) |