目录

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

设备连接

设备包含:

  1. Camera,camera 请按照厂商要求连接电源;
  2. Camera 与CXP HOST FMC子卡连接,请注意LINK 序号一一对应,使用CXP同轴线缆完成连接;
  3. CXP HOST FMC 与Z19 FMC1连接,连接好后请使用螺丝进行固定;
  4. Demo使用SD卡启动模式,请将Z19设置为SD卡启动;
  5. Demo需要连接网络,请将windows udp client 计算机与Z19连接在同一个局域网内;
  6. 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目录即可。

该代码有如下限制:

  1. 固定使用4个LINK连接;
  2. PL 外设模块基地址已经在驱动中定义完成,因此FPGA部分不能修改对应的地址分配,修改后运行驱动程序会导致Linux crash.

调试之前需要:

  1. 连接设备网络,使用ifconfig 查看IP地址;
  2. 安装dma 驱动,dma驱动已经预先编译好,必要的动态库libDMACore.so已经放到了linux的lib目录,如果要更换SD卡,请一并copy该动态库;安装dma驱动指令为insmode u-dma-buf.ko,需要说明,该内核驱动并没有编译进linux内核,因此demo开机均需安装一次。

图 ‑1 安装内核驱动

  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的更多相关文章

  1. 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 ...

  2. Professional C# 6 and .NET Core 1.0 - 40 ASP.NET Core

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - 40 ASP.NET Core --- ...

  3. 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 ...

  4. 极度简约 最小 Linux 发行版 Tiny Core Linux 7.1 发布

    感谢Linux Story的投递 Tiny Core Linux 是一个极度简约但是也高度可扩展的 GNU/Linux 发行版,其之精简甚至可以小到只有 10MB 大小,昨天 5月23日刚刚发布的 T ...

  5. asp.net core + mysql + ef core + linux

    asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...

  6. Modelsim独立仿真Vivado Clocking Wizard IP Core

    工欲善其事,必先利其器.在使用Vivado自带的仿真软件仿真的时候,相对于更优秀的仿真工具Modelsim,效率低了很多,为了更高效的开发,我尝试着用Vivado级联Modelsim仿真,但是级联后还 ...

  7. IP Core 分类

    IP(Intelligent Property)核是具有知识产权核的集成电路芯核总称,是经过反复验证过的.具有特定功能的宏模块,与芯片制造工艺无关,可以移植到不同的半导体工艺中.到了SOC阶段,IP核 ...

  8. 阅读 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.支 ...

  9. Vivado 2017封装自定义IP Core

    使用Vivado2017.3自定义IP Core.通常情况下,我们做设计采用模块化设计,对于已经设计好的一部分模块功能,就可以直接拿来调用,IP Core就是这样来的,一般来说我们看不到IP Core ...

  10. WSO2 API Manager中host Ip 不正确的问题解决方法

    问题: 根据官方的Quick start的教程,部署完AM后,添加的API的host Ip不正确,为localhost或者服务器上的其他虚拟ip. 安装版本:       WSO2AM 2.6.0 环 ...

随机推荐

  1. Pillow模块——生成随机验证码

    urls.py path('get_code/',views.get_code), views.py中 from PIL import Image,ImageFont,ImageDraw " ...

  2. 2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3。

    2023-03-19:使用Go语言和FFmpeg库实现pcm编码为mp3. 答案2023-03-19: 本文将介绍如何使用Go语言和FFmpeg库实现PCM音频文件编码为MP3格式.我们将使用moon ...

  3. 2022-01-05:有四种诗的韵律分别为: AABB、ABAB、ABBA、AAAA。 比如 : 1 1 3 3就属于AABB型的韵律、

    2022-01-05:有四种诗的韵律分别为: AABB.ABAB.ABBA.AAAA. 比如 : 1 1 3 3就属于AABB型的韵律.6 6 6 6就属于AAAA型的韵律等等, 一个数组arr,当然 ...

  4. 2021-07-13:恢复二叉搜索树。给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出

    2021-07-13:恢复二叉搜索树.给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换.请在不改变其结构的情况下,恢复这棵树.进阶:使用 O(n) 空间复杂度的解法很容易实现.你能想出 ...

  5. vue全家桶进阶之路50:Vue3 环境变量+跨域设置实例

    使用.env加后缀的方式来建立某个模式下的环境变量, 例如:项目根目录新建两个环境变量文件(development开发环境和production生产环境): .env.development .env ...

  6. 【GiraKoo】Visual Studio开启Asan提示“LINK : fatal error LNK1104: cannot open file 'LIBVCASAN.lib'”

    [解决]Visual Studio开启Asan提示"LINK fatal error LNK1104 cannot open file 'LIBVCASAN.lib'" 环境 Vi ...

  7. Vue 新建项目+基本语法

    新建项目: 导入依赖:    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"> ...

  8. 在国内用Java代理调用OpenAI的ChatGPT的API接口

    第一步:一个科学友好的上网工具,开启全局代理: 第二步:一个注册好的ChatGPT账号,且在个人设置里面生成apiKey:https://platform.openai.com/account/api ...

  9. WPF 入门笔记 - 03 - 样式基础

    程序的本质 - 数据结构 + 算法 本篇为学习李应保老师所著的<WPF专业编程指南>并搭配WPF开发圣经<WPF编程宝典第4版>以及痕迹大佬<WPF入门基础教程系列> ...

  10. 2023-06-13:统计高并发网站每个网页每天的 UV 数据,结合Redis你会如何实现?

    2023-06-13:统计高并发网站每个网页每天的 UV 数据,结合Redis你会如何实现? 答案2023-06-13: 选用方案:HyperLogLog 如果统计 PV (页面浏览量)那非常好办,可 ...