CoaXPress 2.0 FPGA HOST IP Core Linux Demo
目录
Hello-FPGA CoaXPress 2.0 Host FPGA IP Core Linux Demo 4
图 3‑4 外部PHY接口,用axi lite完成速率配置 9
图 4‑4 basic test udp测试程序 200帧每秒 12
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连接在同一个局域网内;
- Z

图 ‑1 ZCU102结构图
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帧每秒
CoaXPress 2.0 FPGA HOST IP Core Linux Demo的更多相关文章
- dubbo could not get local host ip address will use 127.0.0.1 instead 异常处理
dubbo could not get local host ip address will use 127.0.0.1 instead 查看hostname localhost:spring wls ...
- Professional C# 6 and .NET Core 1.0 - 40 ASP.NET Core
本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 40 ASP.NET Core --- ...
- HOSt ip is not allowed to connect to this MySql server, MYSQL添加远程用户或允许远程访问三种方法
HOSt ip is not allowed to connect to this MySql server 报错:1130-host ... is not allowed to connect to ...
- 极度简约 最小 Linux 发行版 Tiny Core Linux 7.1 发布
感谢Linux Story的投递 Tiny Core Linux 是一个极度简约但是也高度可扩展的 GNU/Linux 发行版,其之精简甚至可以小到只有 10MB 大小,昨天 5月23日刚刚发布的 T ...
- asp.net core + mysql + ef core + linux
asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...
- Modelsim独立仿真Vivado Clocking Wizard IP Core
工欲善其事,必先利其器.在使用Vivado自带的仿真软件仿真的时候,相对于更优秀的仿真工具Modelsim,效率低了很多,为了更高效的开发,我尝试着用Vivado级联Modelsim仿真,但是级联后还 ...
- IP Core 分类
IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的.具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中.到了SOC阶段,IP核 ...
- 阅读 RAM-Based Shift Register(ALTSHIFT_TAPS) IP Core User Guide
阅读 RAM-Based Shift Register(ALTSHIFT_TAPS) IP Core User Guide 说明:本文档自带测试工程: DE_ALTSHIFT_TAPS.zip 1.支 ...
- Vivado 2017封装自定义IP Core
使用Vivado2017.3自定义IP Core.通常情况下,我们做设计采用模块化设计,对于已经设计好的一部分模块功能,就可以直接拿来调用,IP Core就是这样来的,一般来说我们看不到IP Core ...
- WSO2 API Manager中host Ip 不正确的问题解决方法
问题: 根据官方的Quick start的教程,部署完AM后,添加的API的host Ip不正确,为localhost或者服务器上的其他虚拟ip. 安装版本: WSO2AM 2.6.0 环 ...
随机推荐
- [OpenCV-Python] 19 Canny 边缘检测
文章目录 OpenCV-Python:IV OpenCV中的图像处理 19 Canny 边缘检测 19.1 原理 19.1.1 噪声去除 19.1.2 计算图像梯度 19.1.3 非极大值抑制 19. ...
- Win Pycharm + Appium + 真机 实现APP自动化
前言: 测试的APP:亿通行 手机型号:OPPO 系统:安卓10 一.安装Python3.x 1.直接登录Python官网https://www.python.org/,下载最新版本即可 2.安装Py ...
- Python_16 配置文件与封装
一.查缺补漏 1. ctrl + alt +L 规范格式 2. Python 使用 ini&yaml 配置文件 http://testingpai.com/article/1621245437 ...
- 是时候,升级你的 Windows 了「GitHub 热点速览」
不知道多少小伙伴用着 Windows 操作系统,可能会有一个烦恼是有时候操作系统过慢,因为众多拖慢 Windows 系统的组件.Atlas 作为一个修改版的 Windows 系统,能极大提高操作系统运 ...
- 【Visual Leak Detector】在 VS 高版本中使用 VLD
说明 使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记. 本篇介绍如何在 VS 高版本中使用 vld2.5.1.同系列文章目录可见 <内存泄漏检测工具>目录 目录 说明 1. 使用前 ...
- SQL语句获取数据表结构定义,适合导出EXCEL为文档
SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colorder=1 Then isnull ...
- 2020-12-10:i++是原子操作吗?为什么?
福哥答案2020-12-10: 不是原子操作.i++分为三个阶段:1.内存到寄存器.2.寄存器自增.3.写回内存.这三个阶段中间都可以被中断分离开.***[评论](https://user.qzone ...
- 2019年蓝桥杯C/C++大学B组省赛真题(迷宫)
题目描述: 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只 ...
- 【lwip】14-TCP协议分析之TCP协议之可靠传输的实现(TCP干货)
lwip_14_TCP协议之可靠传输的实现 前言 前面章节太长了,不得不分开. 这里已源码为主,默认读者已知晓概念或原理,概念或原理可以参考前面章节,有分析. 参考:李柱明博客:https://w ...
- ENVI指定像元数量(行数与列数)裁剪栅格图像
本文介绍基于ENVI软件,实现栅格遥感影像按照像元行列号与个数进行指定矩形区域裁剪的方法. 一般的,如果我们需要裁剪某个具体的行政区域,按照对应区域的矢量图层裁剪即可:如果需要裁剪某个大致的区 ...