目录
Hello-FPGA CoaXPress 2.0 Host FPGA IP Core Linux Demo 4
(相关资料图)
1 说明 4
2 设备连接 7
3 VIVADO FPGA工程 7
4 调试说明 10
图 1‑1 资料目录 4
图 1‑2 VIVADO工程目录结构 5
图 1‑3 SDK工程目录结构 5
图 1‑4 设备树信息 6
图 1‑5 petalinux应用程序 6
图 2‑1 ZCU102结构图 7
图 3‑1 VIVADO工程 8
图 3‑2 CPU控制器 8
图 3‑3 CXP IP实例化 9
图 3‑4 外部PHY接口,用axi lite完成速率配置 9
图 3‑5 均衡器芯片配置IP 10
图 3‑6 位宽与协议转换IP 10
图 4‑1 安装内核驱动 11
图 4‑2 CXP Demo SDK 软件工程目录 11
图 4‑3 配置TCF Agent 12
图 4‑4 basic test udp测试程序 200帧每秒 12
表 1‑1 LINK速率配置 7
Hello-FPGA CoaXPress 2.0 Host FPGA IP Core Linux Demo
说明本手册针对Helllo-FPGA的CoaXPress 2.0 HOST FPGA IP Core demo工程,用于演示IP的使用方法、配置流程。
Demo 特点功能如下:
Demo运行了Linux 应用程序,使用UDP通讯,在LINUX上运行UDP Server 程序,通过运行在Windows计算机上的Client程序实现采集的控制、采集图像的监测,达到演示的目的。当前代码适用于ALINX Z19 评估板,其它ZYNQ评估板请联系我们咨询;使用VIVADO 2020.2、Petalinux 2020.2、Xilinx SDK2019.1(其它版本请自行升级);VIVADO 工程使用block design形式提供;LINK配置为1个相机,4个LINK,设备发现阶段使用0x38配置,即3.125Gbps,设备采集阶段使用0x48配置,即6.125Gbp,如果相机不支持对应速率,请修改代码后进行测试,请注意当前Z19程序不支持10Gbps和12.5Gbps速率;使用ZYNQ PS A53作为CPU控制器,搭载Petalinux定制linux系统,软件代码使用SDK进行开发、调试;IP使用网表形式提供,参数无法修改,如需不同LINK配置,请联系Info@hello-fpga ;其它相关IP使用加密方式提供;文件列表:
Z19 顶层文件夹
cxp_host_ps 示例FPGA工程
IPLib 工程依赖的IP文件
Z19评估板资料
IP user manual
图 ‑1 资料目录
下图展示了cxp_host_ps内部的目录结构,直接使用VIVADO 2020.2打开 *.xpr工程文件即可,其中cxp_host_wrapper.xsa文件为预编译并导出的硬件描述文件,用户可以使用该文件创建并编译petalinux工程。
图 ‑2 VIVADO工程目录结构
下图展示了petalinux预编译设计内部目录结构,直接使用petalinux配置即可,用户可以修改设备树、ROOTFS或者替换bit文件,也可以重新创建工程。
图 ‑3 SDK工程目录结构
创建工程指令如下:
petalinux-create -t project -n petalinux --template zynqMP
当前设备树信息如下:
其中,memory 手动制定了4GB地址空间(Z19实际可用8GB),其中把0x8_0800_0000起始地址,长度为0x7000_0000的PS内部保留起来,用于连续的dma传输。用户可以在此基础上增加内容,增加内存范围,但是不要删除内容,可能导致设备无法启动、dma传输错误等故障。
图 ‑4 设备树信息
下图为petalinux 应用程序,其中CXP_Core为是输出的动态库工程,cpp_demo则为调用CXP_Core动态库完成相机配置、采集、dma传输、UDP监测的demo程序。
图 ‑5 petalinux应用程序
表 ‑1 LINK速率配置
速率配置 | Downlink速率 | 最大速率 |
0x28 | 1.250 Gbps | 1.000 Gbps |
0x30 | 2.500 Gbps | 2.000 Gbps |
0x38 | 3.125 Gbps | 2.500 Gbps |
0x40 | 5.000 Gbps | 4.000 Gbps |
0x48 | 6.250 Gbps | 5.000 Gbps |
0x50 (1) | 10.000 Gbps | 8.000 Gbps |
0x58 (1) | 12.500 Gbps | 10.000 Gbp |
设备包含:
Camera,camera 请按照厂商要求连接电源;Camera 与CXP HOST FMC子卡连接,请注意LINK 序号一一对应,使用CXP同轴线缆完成连接;CXP HOST FMC 与Z19 FMC1连接,连接好后请使用螺丝进行固定;Demo使用SD卡启动模式,请将Z19设置为SD卡启动;Demo需要连接网络,请将windows udp client 计算机与Z19连接在同一个局域网内图 ‑1 Z19 评估板
VIVADO FPGA工程使用VIVADO 2020.2 打开。
图 ‑1 VIVADO工程
如下图所示,CPU使用Xilinx的FPGA硬核处理器PS,CPU与外设之间均通过AXI总线进行连接,其中cxp传输数据直接使用PS内存完成dma 操作。
图 ‑2 CPU控制器
图 ‑3 CXP IP实例化
Demo使用外部PHY,使用AXI lite interface完成速率的动态配置。
图 ‑4 外部PHY接口,用axi lite完成速率配置
下图为均衡器配置IP,均衡器是FMC接口板上的一组芯片,用于均衡高速downlink信号,不同速率会有不同的参数配置,具体配置逻辑请参考软件demo。
图 ‑5 均衡器芯片配置IP
图 ‑6 位宽与协议转换IP
按照正常流程编译即可。如果代码有修改,改动后需要将硬件信息导出到SDK。
调试说明下图为Linux 应用程序工程,其中CXP_Core为配合FPGA工程使用的驱动代码,代码输出动态库,生成后copy到linux 的lib目录即可。
该代码有如下限制:
固定使用4个LINK连接;PL 外设模块基地址已经在驱动中定义完成,因此FPGA部分不能修改对应的地址分配,修改后运行驱动程序会导致Linux crash.调试之前需要:
连接设备网络,使用ifconfig 查看IP地址;安装dma 驱动,dma驱动已经预先编译好,必要的动态库libDMACore.so已经放到了linux的lib目录,如果要更换SD卡,请一并copy该动态库;安装dma驱动指令为insmode u-dma-buf.ko,需要说明,该内核驱动并没有编译进linux内核,因此demo开机均需安装一次。图 ‑1 安装内核驱动
LibCXP_Core动态库已经预先放到了Linux lib 目录,如果要更换SD卡,请一并copy该动态库;图 ‑2 CXP Demo SDK 软件工程目录
Debug 推荐使用TCF Agent 下载调试程序,调试之前先测试连接是否通畅,待调试程序为cpp_demo,非CXP_Core程序,调试开始后请禁用断点,保证程序按照预期顺利执行。
图 ‑3 配置TCF Agent
程序会将打印信息输出到PS UART串口。
cpp_demo程序运行并禁用断点后,可以打开windows 计算机的测试程序basic_test,然后开启测试,并监测ZYNQ CXP设备工作状态,需要注意,该demo 图像不是实时传输的,只是监测图像,受限于网络传输的速度等其它条件。
图 ‑4 basic test udp测试程序 200帧每秒