目录

1 说明 4

2 设备连接 7

3 VIVADO FPGA工程 8

4 调试说明 9

图 1‑1 资料目录 4

图 1‑2 VIVADO工程目录结构 5

图 1‑3 VS软件工程目录 5

图 1‑4 CXP HOST PCIe Block Design 5

图 1‑5 VS工程 6

图 1‑6 CXP camera 6

图 1‑7 KC705搭载Hello-FPGA CoaXPress 2.0 FMC子卡 7

图 2‑1 KC705 开发板 8

图 3‑1 VIVADO工程 8

图 3‑2 XDMA控制器 9

图 3‑3 CXP IP实例化 9

图 4‑1 连接相机并完成视频拍摄与显示 10

表 1‑1 LINK速率配置 7

说明

本手册针对Helllo-FPGA的CoaXPress 2.0 HOST FPGA IP Core PCIe demo工程,用于演示IP的使用方法、配置流程,使用上位机采集到相机真实的图像并在界面上完成显示。通过该demo提供了1个较为完整的系统级演示,方便用户更加直观的评估IP

Demo 特点功能如下:

  • Demo 分为FPGA工程与Windows 驱动及其应用程序,利用XDMA搭建PCIe接口,并利用PCIe接口及其驱动,实现对CoaXPress HOST IP的配置、数据读取。
  • 当前代码适用于Xilinx KC705 评估板,其它评估板请联系我们咨询;
  • 使用KC705 FMC HPC接口,搭载Hello-FPGA 4 channel receiver 子卡;
  • 使用EoSens 2.0CXP2 系列相机进行演示;
  • 使用VIVADO 2017.3(我们测试了2019.1和2020.2,PCIe IP使用有问题,暂时仅支持2017.3)、Windows10台式计算机;
  • VIVADO 工程使用block design形式提供;
  • LINK配置为1个相机,4个LINK,设备发现阶段使用0x38配置,即3.125Gbps,设备采集阶段使用0x48配置,即6.125Gbp,如果相机不支持对应速率,请修改代码后进行测试,请注意KC705不支持10Gbps和12.5Gbps速率,KU/ZU等支持;
  • 使用vs2022或者其它版本调试windows驱动与应用程序;
  • IP使用网表形式提供,参数无法修改,如需不同LINK配置,请联系Info@hello-fpga ;
  • 其它相关IP使用加密方式提供;

文件列表:

顶层文件夹

cxp_host_pcie 示例FPGA工程

IPs 工程依赖的IP文件

Kc705评估板手册

user manual

图 ‑1 资料目录

下图展示了cxp_host_pcie内部的目录结构,直接使用VIVADO 2017.3打开 *.xpr工程文件即可。

图 ‑2 VIVADO工程目录结构

图 ‑3 VS软件工程目录

利用XDMA Subsystem 构建PCIe 及其DMA控制器,MIG DDR作为板上缓存,用于缓存高速图像数据并完成DMA操作,AXI Interconnect作为系统总线树,CoaXPress IP以及MIG等均挂载在总线树上,方便XDMA灵活方位其内存完成寄存器读写、DMA读写操作。

图 ‑4 CXP HOST PCIe Block Design

VS工程采用C++面向过程驱动、C#面向对象驱动以及C# 应用程序组成,C++驱动负责具体功能实现,C# 应用程序最终通过C# 驱动调用C++ API实现相机的连接、配置、图像读取、图像显示等功能,用于用户更加直观的评估IP。

图 ‑5 VS工程

图 ‑6 CXP camera

图 ‑7 KC705搭载Hello-FPGA CoaXPress 2.0 FMC子卡

表 ‑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 请按照厂商要求连接电源,FMC子板提供了对应POE功能,但是KC705开发板供电能力不足,因此依然需要连接相机电源;
  2. Camera 与CXP HOST FMC子卡连接,请注意LINK 序号一一对应,使用CXP同轴线缆完成连接;
  3. Demo使用JTAG启动模式,PCIe lane size对应选择X8模式;
  4. Demo需要将KC705插入台式计算机的PCIe插槽内,注意KC705不是标准3U板卡,需要注意其机械尺寸,使用合适的机箱;

图 ‑1 KC705 开发板

VIVADO FPGA工程

使用VIVADO 2020.2 打开。

图 ‑1 VIVADO工程

如下图所示,系统使用Xilinx XDMA控制器作为PCIe与DMA核心,使用PCIe Gen2x8配置。

图 ‑2 XDMA控制器

图 ‑3 CXP IP实例化

调试说明

连接好硬件后,烧录bit文件,安装PCIe内核驱动,然后重启计算机,打开VS工程重新编译,运行basic test C#应用程序,然后即可看到相机连接成功、拍摄图像正常。Demo软件使用源码方式提供,用户可以任意修改参数完成调试。

图 ‑1 连接相机并完成视频拍摄与显示

Hello-FPGA CoaXPress 2.0 FPGA HOST IP Core PCIe Demo User Manual的更多相关文章

  1. 基于FPGA的SATA3.0主机控制器IP

    SATA3.0 Host Controller IP SATA3.0 Host IP不仅实现了SATA协议的PHY(物理层).Link(链路层)和TRN(传输层),并且实现了CMD(命令层)和APP( ...

  2. [原创]免固件开发USB2.0 FPGA方案 速度40Mbyte/s+

    USB 2.0接口,实测速度40Mbyte/s: 一个接口实现两种功能(USB2.0+FPGA配置): 免固件开发: 完整的FPGA代码,即拿即用: FPGA逻辑工程师开发USB接口福音: 平台可移植 ...

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

  4. Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)

    需求说明:Lattice系统FPGA入门 内容       :Lattice与Altera.Xilinx对比 来自       :时间的诗 1.Lattice与Altera.Xilinx对比 latt ...

  5. CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评

    CC1605&CC1604 usb3.0+FPGA 高速视频采集 双目相机测评 摄像头配置:ov5640.OV5642.mt9p031.mt9m001c12stm OV5640 xclk:24 ...

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

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

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

  8. 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标

    欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章 FPGA的开发流程是遵循着ASIC的开发流程发展的,发展到目前为止,FPGA的开发流程总体按照下图进行,有些步骤可能由于其在当前项目中的条件 ...

  9. cannot send list of active checks to "127.0.0.1": host [Zabbix server] not monitored

    查看错误日志:  /etc/log/zabbix/zabbix_server.log 3148:20210404:233938.363 cannot send list of active check ...

  10. 虚拟机中MySQL连接问题:Lost connection to MySQL server at 'reading initial communication packet, system error: 0 以及 host is not allowed to connect mysql

    环境:在VirtualBox中安装了Ubuntu虚拟机,网络使用了NAT模式,开启了端口转发. 局域网内其他计算机访问虚拟机中的MySQL Server出现两个问题: Lost connection ...

随机推荐

  1. 精讲Mybatis··#{}和${}

    题目 笔记Notes 面试题目:#{}和${}的区别是什么? 网上的答案是:#{}是预编译处理,${}是字符串替换.mybatis在处理#{}时, 会将sql中的#{}替换为?号,调用Prepared ...

  2. MODBUS RTU转 EtherNet/IP 网关连接森兰变频器与欧姆龙系统通讯

      捷米特JM-EIP-RTU(Modbus转Ethernet/Ip)网关,用于将多个 MODBUS 从站设备接入 ETHERNET/IP 主站网络,实现 MODBUS 转 ETHERNET/IP 功 ...

  3. 【Kubernetes】kubectl常用命令手册 -- 持续更新

    元信息 api列表: kubectl api-resources kubectl api-resources -o wide 用法查询: kubectl explain <>.<&g ...

  4. 用googletest写cpp单测

    框架概述 Google Test(也称为 googletest)是由 Google 开发的 C++ 单元测试框架.它的首个版本是在2004年发布的,作为 Google 内部的测试框架使用.随后,Goo ...

  5. mysql怎样实现不重复插入数据

    mysql使用用insert往数据表中插入数据时,为了不重复插入数据,往往先查询一下该条数据是否已经存在,若不存在才进行插入操作. 而使用 insert if not exists语句,就不需重复做上 ...

  6. 策略模式+Spring配置类优化多if..else思路

    图示 1. 现状 场景: 假设设备上报不同类型的消息,我们要对不同类型的消息做不同的处理.如果我们通过if..else的方式处理的话会显得比较冗余. 例如: if("alarmEvent&q ...

  7. pandas: dataframe转字典,并设置key

    解决方案 res = df_by_monthly.set_index('recruit_resign_month').T.to_dict('list') print(res) 上述代码是转为列表形式 ...

  8. 使用kafka自带脚本进行压力测试

    前言 kafka官方自带压力测试脚本: 消费者压力测试:kafka-consumer-perf-test.sh 生产者压力测试:kafka-producer-perf-test.sh 测试节点: 17 ...

  9. PE文件结构2(实现PE文件载入)

    现在我们已经学完了PE文件格式,但是尚还停留在纸上谈兵的阶段,作为Windows系统上的可执行文件格式,PE文件结构总是和结构体,指针等紧密联系在一起的.理解它的最好方法就是通过写一个类似LordPE ...

  10. API技术的使用场景

    ​ 互联网的发展和普及,API技术也变得越来越重要.API是应用程序接口,它是一种连接不同应用程序或系统之间数据交换和通信的方式.API技术不仅提高了不同应用程序之间的互操作性,还加速了应用程序的开发 ...