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. Linux用户以及ssh安全相关设置

    Linux用户相关操作 摘要 最近重保, 需要进行网络安全防护. 部分同事处理过程总是顺序有一些不太对的情况. 同时发现自对Linux用户设置也存在很多不清不楚的地方 所以趁着周末学习和总结一下. 用 ...

  2. element-plus 按需引入将英文组件修改为中文

    element-plus 默认是英文组件:如下图 将它设置为中文组件 app.vue文件 <template> <el-config-provider :locale="l ...

  3. 震惊p div 标签 可以编辑高度随内容的编辑而发生变化

    震惊p标签可以编辑高度随内容的编辑而发生变化### 1==>只可编辑,粘贴复制字段长度不正常 <p contenteditable="true" >这是一个可编辑 ...

  4. vue 路由守卫是否携带token

    //整个实例出来 配置路由守卫 const router = new Router({ //这里面是路由配置哈 }) router.beforeEach((to, from, next) => ...

  5. vue过滤器(filter)的使用

    过滤器分全局过滤器和局部过滤器 <div id="app"> <p>电脑价格:{{price | addPriceIcon}}</p> < ...

  6. 吾爱破解 2023 春节解题领红包之 Web 题解

    (图作者 | 吾爱破解@Ps出来的小赵) 吾爱破解每年都有个解题领红包活动,今年也不例外,需要我们使出看家逆向本领来分析内容获得口令红包,根据难度等级不同会获得不同数量的吾爱币,活动持续到元宵节结束. ...

  7. Fabric-ca client端初始化过程源码分析

    本文从Fabric-ca源码入手,以newRegisterCommand()函数为例,简单分析client启动时的过程.Fabric-ca源码可以从github.com下载,本文以v1.4.6为例进行 ...

  8. STM32CubeMX教程28 SDIO - 使用FatFs文件系统读写SD卡

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...

  9. 【Sensor有点意思】之重要参数理解

    1.sensor 通过CMOS图像传感器感受环境光,输出图像供我们分析,通过sensor宣传册了解一下sensor性能和情况.下图以斯特威SC8238为例. 2. 跟sensor相关的重要参数: 2. ...

  10. Mysql切割字符串

    我们常常会遇到需要处理字段中字符串的需求,包括切割.拼接以及搜索等等,在这里介绍几个常用的切割字符串的函数,首先我们在表格中加入我们的实验字段值:https://www.cnblogs.com/Yao ...