Hello-FPGA CoaXPress 2.0 Device FPGA IP Core Demo

1     说明

本手册针对Helllo-FPGA的CoaXPress
2.0 DEVICE FPGA IP Core demo工程,用于演示IP的使用方法、配置流程。本文的内容适用于所有开发板。

Demo 特点功能如下:

l   代码适用于ZCU102,ZCU106, KCU105, KC705,AXKU040/2,
AX7P, AX19P等使用Xilinx 芯片作为主控制器的评估板;

l   使用VIVADO 2019.1 及其SDK;

l   默认配置为4个LINK,设备发现阶段使用0x38配置,即3.125Gbps,设备采集阶段使用0x48配置,即6.25Gbps,最高支持12.5Gbps;

l   使用MicroBlaze作为link速率控制器,软件代码使用SDK进行开发、调试;

l   IP使用网表形式提供,参数无法修改,如需不同stream通道数配置,请联系Info@hello-fpga 或其它Hello-FPGA工程师

文件列表由两大部分构成,即vivado工程和SDK工程文件夹:

Vivado工程文件夹(cxp_device_hardware)

实现cxp device协议的模块存放在library文件夹,以网表的形式提供,其余的模块均以源码形式提供,并放在AXKU042_device.src文件夹中。

Vivado工程文件存放在AXKU042_device文件夹中,直接使用VIVADO 2019.1打开 *.xpr文件即可。

下图展示了cxp_device的总体目录结构。

图 1‑1 工程目录结构

SDK工程文件夹(cxp_device_driver)

下图展示了*.sdk内部目录结构,直接使用Xilinx SDK打开此目录即可。

图 1‑2 SDK工程目录结构

表 1‑1 LINK速率配置

速率配置

Downlink速率

0x28

1.250 Gbps

0x30

2.500 Gbps

0x38

3.125 Gbps

0x40

5.000 Gbps

0x48

6.250 Gbps

0x50 (1)

10.000 Gbps

0x58 (1)

12.500 Gbps

2     设备连接

我们使用Metrox的cxp采集卡(host)+黑金AXKU042开发板(device)为例进行说明:

1、 安装好采集卡软件;

2、 CXP DEVICE FMC子卡 与AXKU042 FMC3 连接,连接好后请使用螺丝进行固定;

3、 CXP DEVICE FMC子卡前面板与cxp采集卡连接,请注意LINK 序号一一对应,使用CXP同轴线缆完成连接;

4、 AXKU042 UART串口与JTAG需要连接到主计算机,其中JTAG负责下载FPGA bitstream与debug,UART负责将demo软件打印信息输出,比如输出当前配置的link速率,串口波特率为115200。

图 2‑1 连接图

3     VIVADO FPGA工程

使用VIVADO 2019.1 打开,如果使用其它版本,可以自行升级。

图 3‑1 VIVADO工程

如下图所示,CPU使用Xilinx的FPGA软核MicroBlaze,在本Demo工程中用于完成link速率配置。CPU与外设之间通过AXI总线进行连接。

图 3‑2 控制器

图 3‑3 pattern generator

Demo使用pattern
generator模块模拟图像数据,产生一路图像流,格式为mono类型,从代码上看像素数据位宽达到了12位,但由于bootstrap里默认设置的像素位宽为8,所以在默认情况下实际传输时是有截位的,在device模块里面对数据截取低8位进行传输。

如果代码有修改,改动后需要将硬件信息导出到SDK,并LAUNCH SDK或者其它方式打开SDK重新编译软件代码。

4     SDK工程

使用2019.1打开,如果使用Vitis,请自行导入代码。SDK如果不能正常打开,请自行导入工程即可。

下图为裸机SDK软件目录,其中AXKU042_CXP_Driver_bsp和AXKU042_CXP_Driver_hw均为系统自动生成bsp包,测试 AXKU042_CXP_Driver应用程序即可。

图 4‑1 CXP Demo SDK 软件工程目录

图 4‑2 Debug配置,下载并复位

下载程序到开发板后,程序会将打印信息输出到UART串口。

Hello-FPGA CoaXPress 2.0 FPGA DEVICE IP Core Demo的更多相关文章

  1. 【再话FPGA】在xilinx中PCIe IP Core使用方法

    采用Xilinx Virtex-5 XC5VSX50T-FF1136 FPGA或者Xilinx Virtex-5 XC5VSX95T-FF1136的板子.采用ISE13.2环境.步骤:一.建立一个IS ...

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

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

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

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

  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. 【FPGA篇章二】FPGA开发流程:详述每一环节的物理含义和实现目标

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

  7. Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程)

    Android studio3.0打开Device File Explore(文件管理器)的方法(图文教程) 看到网上AS3.0新增加的查看手机文件的新功能,全部都是转载的,没有几个人心细的把如何打开 ...

  8. FPGA的发展史及FPGA 的基础架构

    通过了解早期FPGA的发展,理解FPGA究竟是干什么的,FPGA到底在电子设计领域起到了什么样的作用,下面是一张早期的设计过程 早期的设计流程过程中,只有当硬件完成了才能够得到功能的验证,随着集成电路 ...

  9. caffe运行错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0) invalid device function

    错误: im2col.cu:61] Check failed: error == cudaSuccess (8 vs. 0)  invalid device function 原因:由于Makefil ...

  10. 配置SSD-caffe测试时出现“Check failed: error == cudaSuccess (10 vs. 0) invalid device ordinal”解决方案

    这是由于GPU数量不匹配造成的,如果训练自己的数据,那么我们只需要将solver.prototxt文件中的device_id项改为自己的GPU块数,一块就是0,两块就是1,以此类推. 但是SSD配置时 ...

随机推荐

  1. [转帖]Redis 核心篇:唯快不破的秘密

    文章系转载,方便整理和归纳,源文地址:https://z.itpub.net/article/detail/4B5A03BDDBE9A2BC3E080E278FE4D21E 以下文章来源于码哥字节 , ...

  2. [转帖]精通awk系列(19):awk流程控制之break、continue、next、nextfile、exit语句

    https://www.cnblogs.com/f-ck-need-u/   回到: Linux系列文章 Shell系列文章 Awk系列文章 break和continue break可退出for.wh ...

  3. # github突破7k star 即时通讯(IM)开源项目OpenIM每周迭代版本发布

    v2.0已经重构完毕,架构更清晰,代码更规范,邀请各位参与OpenIM社区建设有兴趣的同学可以加我私聊. 目前侧正在业务开发,已提供更多功能,包括群管理,阅后即焚,朋友圈,标签下发等. web端体验: ...

  4. Unity Editor开发中查找属性的两种写法对比

    从2017开始,在editor脚本中查找属性是这样写的 var m_Script = serializedObject.FindProperty("m_Script"); Seri ...

  5. 深入浅出Java多线程(二):Java多线程类和接口

    引言 大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第二篇内容:Java多线程类和接口.大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!! 在现代计算机系统中,多线程 ...

  6. 从github上下载代码到本地

    相关链接: 码云(gitee)配置SSH密钥 码云gitee创建仓库并用git上传文件 git 上传错误This oplation equires one of the flowi vrsionsot ...

  7. 20.4 OpenSSL 套接字AES加密传输

    在读者了解了加密算法的具体使用流程后,那么我们就可以使用这些加密算法对网络中的数据包进行加密处理,加密算法此处我们先采用AES算法,在网络通信中,只需要在发送数据之前对特定字符串进行加密处理,而在接收 ...

  8. Django后台输出原生SQL语句

    如果需要打印orm翻译后的原生sql语句,只需要在setting最后加上下面代码就行. 1 LOGGING = { 2 'version': 1, 3 'disable_existing_logger ...

  9. 【C语言进阶】atoi函数的模拟实现【C的深度解剖】超详细的解释和注释

    [C语言进阶]atoi函数的模拟实现[C的深度解剖]超详细的解释和注释 那么这里博主先安利一下一些干货满满的专栏啦! 作者: #西城s 这是我的主页:#西城s 在食用这篇博客之前,博主在这里介绍一下其 ...

  10. ElasticSearch7.3学习(十六)----RestHighLevelClient Java api实现索引的创建、删除、是否存在、关闭、开启

    1.写在前面 注意:导入的包区别,不同的包创建索引的方式不同.博主亲身实践,具体体现在createIndexRequest.mapping()里面.读者可自行试验. import org.elasti ...