黑金AX7Z100 FPGA开发板移植LWIP库(一)PS端

前言

LwIP是Light Weight (轻型)IP协议是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。AX7Z100开发板带有源码和教学视频,但不是AX7Z100开发板的,所以最初移植的时候遇到一些小问题困扰好长时间。因此笔者基于Vivado17.4整理比较详细的移植过程供后面参考。

一、Vivado 工程建立

1、新建一个空工程,名称为net_lwip_ps。
在这里插入图片描述
2、FPGA芯片选择xc7z100ffg900-2。
在这里插入图片描述

二、配置PS系统硬件

1、单击左侧导航栏的Create Block Design建立图形文件取名top,单击OK。
在这里插入图片描述
2、在图形文件中单击+号,在搜索栏输入zynq找到PS端的IP核
在这里插入图片描述
3、双击添加ARM核的IP。
在这里插入图片描述
4、双击IP核进入配置界面,因为PS端内嵌有两个以太网控制器不需要AXI总线扩展,所以勾选掉默认的AXI GP0接口
在这里插入图片描述
5、网络要通过串口测试,所以在Perioheral I/O Pins中开通串口
在这里插入图片描述
6、网络MAC的IP核Enet0需要开通
在这里插入图片描述
7、网络MACIP核Enet0控制外接PHY芯片的MDIO接口需要开通
在这里插入图片描述
8、以太网控制器采用RGMII工作方式,所以工作电压修改为:LVCMOS 1.8V
在这里插入图片描述
9、因为开发板DDR内存与默认不同,所以选择MT41J256M16 RE-125,单击OK退出。
在这里插入图片描述
10、单击自动连接生成引脚。
在这里插入图片描述
11、至此PS端开通网络的系统硬件配置完毕。但是直接编译原理图工程可能报错,所以通过Create HDL Wrapper将原理图工程转换为Verilog顶层工程
在这里插入图片描述

三、编译硬件生成bit文件

1、因为在引入PS端ZYNQ的ARM核过程中系统已经默认在工程文件夹下的/net_lwip_ps.srcs/sources_1/bd/top/ip/top_processing_system7_0_0/top_processing_system7_0_0.xdc文件中自动建立了管脚约束参数,其中包括网卡(Enet0)、串口(Uart0)和DDR的引脚约束,而且黑金开发板跟默认工程项目参数与其一致。所以TOP的项目约束文件可以省略,其它系统另行设置。因此直接编译生成bit文件(等待时间较长)
在这里插入图片描述
2、单击File菜单,导出bit文件的硬件信息给SDK应用。
在这里插入图片描述
3、导出对话框要勾选bit文件,单击OK。
在这里插入图片描述
至此,系统硬件部分bit文件编译导出完成,接下来将进入软件编程环节。

四、SDK程序设计

1、LwIP是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。在PS端跑裸机程序的时候因为没有操作系统所以要借助LwIP连接网络。SDK环境内嵌了LwIP的开发库保存在X:\Xilinx\SDK\2017.4\data\embeddedsw\ThirdParty\sw_services中(X为Vivado安装盘),Vivado17.4版本的SDK内嵌的是lwip141_v2_0。
在这里插入图片描述
2、但是在黑金的AX7Z100开发板中,以太网PHY芯片采用了MICREL公司的KSZ9031型号的芯片类型,与系统默认的PHY芯片不一致,所以SDK开发包中的LwIP库需要打补丁。打开lwip141_v2_0文件夹,进入lwip141_v2_0\src\contrib\ports\xilinx\netif文件夹找到xemacpsif_physpeed.c文件。
在这里插入图片描述
3、打开xemacpsif_physpeed.c文件在宏定义部分添加PHY芯片的ID信息。

#define PHY_DETECT_REG  						1
#define PHY_IDENTIFIER_1_REG					2
#define PHY_IDENTIFIER_2_REG					3
#define PHY_DETECT_MASK 					0x1808
#define PHY_MARVELL_IDENTIFIER				0x0141
#define PHY_TI_IDENTIFIER					0x2000
#define PHY_XILINX_PCS_PMA_ID1			0x0174
#define PHY_XILINX_PCS_PMA_ID2			0x0C00

// === Add by Yan
实现ZYNQ平台的AX7Z100开发板上VGA信号输出,需要对Vivado设计套件有深入的了解,并掌握IP核的使用方法。首先,开发者需要在Vivado中配置PS(处理器子系统)与PL(可编程逻辑子系统)的交互,确保能够驱动外设。 参考资源链接:[AX7Z100 ZYNQ开发平台基础教程:从入门到实战](https://wenku.youkuaiyun.com/doc/6p6e5b5ehs?spm=1055.2569.3001.10343) 在Vivado中,可以通过生成VGA IP核来处理视频信号,该IP核能够生成同步信号(HSYNC, VSYNC)以及红绿蓝(RGB)信号。开发者可以配置IP核的分辨率参数,以匹配目标显示器的规格。在设计过程中,应使用ILA(集成逻辑分析仪)工具来调试和验证信号的稳定性和时序的准确性。 为了保证信号的清晰度,需要仔细设计时钟网络和信号布线。使用正确的时钟约束和信号完整性分析是确保信号质量的关键。此外,通过硬件测试,比如使用示波器和逻辑分析仪检查信号波形,可以进步确保信号的稳定性和清晰度。 此外,AX7Z100开发板上的HDMI接口可以与VGA信号转换器或转换芯片配合使用,从而将HDMI信号转换成VGA信号。在硬件连接上,需要确保转换芯片的VGA输出口正确连接到显示器,并且AX7Z100开发板的HDMI输出与转换芯片输入口相连。 总结来说,实现VGA输出并确保其稳定性和清晰度,需要综合考虑软件配置、时钟和信号布线设计、以及硬件连接等多个方面。开发者需要通过Vivado工具进行详细的设置和调试,并在实际硬件上进行测试,才能达到理想的显示效果。有关VGA IP核的详细配置和调试方法,可以参考教程《AX7Z100 ZYNQ开发平台基础教程:从入门到实战》,该资料将帮助你全面掌握整个过程。 参考资源链接:[AX7Z100 ZYNQ开发平台基础教程:从入门到实战](https://wenku.youkuaiyun.com/doc/6p6e5b5ehs?spm=1055.2569.3001.10343)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

气血龙渊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值