自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (13)
  • 收藏
  • 关注

原创 【ISE】PlanAhead report_timing报VIOLATED问题

点击链接,进入Timing Constraints页面,可以看到Timing Score为0,表明没有时序问题(最差的一条slack为0.007ns)查了很多资料,最终发现在report_timing中的Timer Settings有问题,如下图:Interconnect的参数为:estimated。使用PlanAhead创建RTL工程,然后综合、实现(其实调用的还是ISE的综合、实现工具,只是操作方法跟Vivado类似)下图可以看到slack一样,也是0.007。下图可以看到,有非常大的slack。

2023-06-30 10:03:29 961

原创 【XRT Vitis-Tutorials】视频处理加速(Kernel+VCU)

1 前言前面文章导航:ZCU106 XRT环境搭建ZCU106 XRT Vivado工程分析ZCU106 XRT PetaLinux工程分析【XRT Vitis-Tutorials】RTL Kernels测试【XRT Vitis-Tutorials】C++/RTL Kernel混合编程测试【XRT Vitis-Tutorials】图像并行计算【XRT Vitis-Tutorials...

2020-04-06 23:18:48 3867 5

原创 【XRT Vitis-Tutorials】cl调度优化

1 前言前面文章导航:ZCU106 XRT环境搭建ZCU106 XRT Vivado工程分析ZCU106 XRT PetaLinux工程分析【XRT Vitis-Tutorials】RTL Kernels测试【XRT Vitis-Tutorials】C++/RTL Kernel混合编程测试【XRT Vitis-Tutorials】图像并行计算官方文档:2019.2 Vitis™ ...

2020-04-05 17:30:16 1246

原创 【XRT Vitis-Tutorials】图像并行计算

1 前言前面文章导航:ZCU106 XRT环境搭建ZCU106 XRT Vivado工程分析ZCU106 XRT PetaLinux工程分析【XRT Vitis-Tutorials】RTL Kernels测试【XRT Vitis-Tutorials】C++/RTL Kernel混合编程测试官方文档:2019.2 Vitis™ Application Acceleration Dev...

2020-04-05 06:08:32 1387

原创 【XRT Vitis-Tutorials】C++/RTL Kernel混合编程测试

1 前言前面文章导航:ZCU106 XRT环境搭建ZCU106 XRT Vivado工程分析ZCU106 XRT PetaLinux工程分析【XRT Vitis-Tutorials】RTL Kernels测试官方文档:2019.2 Vitis™ Application Acceleration Development Flow TutorialsVitis Unified Soft...

2019-12-15 16:30:30 2163 2

原创 【XRT Vitis-Tutorials】RTL Kernels测试

1 前言在前面的文章中ZCU106 XRT环境搭建【Xilinx Vitis】,已经生成了用于在Vitis的相关环境。Xilinx在GitHub分享了一个Vitis的应用程序加速开发的教程:2019.2 Vitis™ Application Acceleration Development Flow Tutorials后面基于我会基于ZCU106 XRT环境以及这个教程做一些测试。Xili...

2019-12-15 01:16:46 3134 1

原创 ZCU106 XRT PetaLinux工程分析【Xilinx Vitis】

1 前言在ZCU106 XRT环境搭建【Xilinx Vitis】中针对我本地的环境,以及ZCU106的需求,生成了最终使用的PetaLinux工程。PetaLinux工程的创建、编译都是使用脚本peta_build.sh 来完成的。这篇文章分析一下我本地的不同于ZCU102、ZCU104的区别。2 工程配置在config.sh文件中可以针对不同硬件平台进行额外的配置。peta_build...

2019-12-14 21:19:46 2696

原创 ZCU106 XRT Vivado工程分析【Xilinx Vitis】

1 前言在上一篇ZCU106 XRT环境搭建【Xilinx Vitis】中,我参考了XRT中其它平台(ZCU102,ZCU104)的Vivado TCL脚本,同时参考了官方的VCU相关工程,编写了ZCU106 XRT的脚本:https://github.com/vacajk/XRT/blob/2019.2/src/platform/zcu106vcu_base/zcu106vcu_base_x...

2019-12-14 20:41:43 3454 1

原创 ZCU106 XRT环境搭建【Xilinx Vitis】

1 前言新工具Vitis最近在看Xilinx新出的工具Vitis,这个工具咋说呢,改了好多。。之前的SDSoC,SDAccel统一被Vitis来实现之前按的SDK直接被Vitis替代之前按的基于Eclipse IDE的工程结构,统一被新的叫做domain的东东给替代类似于SDx环境,Vivado被直接集成到Vitis中以上就是我的理解,总之就是Xilinx要搞:Vitis 统一软...

2019-12-07 15:34:50 9109 16

原创 字符串相关函数整理 [VCU.1]

阅读vcu_gst_app过程中,发现cfg配置文件内的字符串有些区分大小写,有些不区分大小写,整理一下相关的字符串处理函数。strstr函数定义char *strstr(const char *haystack, const char *needle)功能查找needle字符串是否出现在haystack中,并返回首地址;若没有查找到,则返回NULl。注意区分大小写strnca...

2019-11-09 16:57:32 262 2

原创 AD7760数据采集系统设计 [FPGA逻辑设计]

1 AD7760简介AD7760是一款高性能、24位Σ-Δ型模数转换器(ADC),融合了宽输入带宽、高速特性与Σ-Δ转换技术的优势,2.5 MSPS时信噪比可达100 dB,因此非常适合高速数据采集应用。宽动态范围以及显著降低的抗混叠要求,使设计过程得以简化。AD7760内置用来驱动基准电压的缓冲、用于信号缓冲和电平转换的差动放大器、超量程标志、内部增益与失调寄存器以及低通数字FIR滤波器,是一...

2019-10-25 00:19:51 3196 1

原创 Qt MinGW Opencv 3.4.5库

使用Qt5.9.3的MinGW-32bit编译了一个OpenCV 3.4.5的库,有兴趣的同学可以直接拿来使用包含了release和debug的版本(debug版本的库文件在zip压缩包中,需要自行解压)包含了opencv-contrib的相关库。参考编译方法:Qt之CMake和MinGW编译OpenCV下载链接OpenCV 3.4.5 | zip | tar.gzinclude ...

2019-02-10 13:14:04 531

原创 1. PYNQ在ZCU102上的移植【PYNQ】

在goggle上搜zcu102 pynq可以找到一些移植方法的信息1. 生成镜像git clone$ git clone https://github.com/Xilinx/PYNQ.git$ cd PYNQ$ git checkout v2.3$ git checkout -b vacajk_dev检查依赖环境,qemu,crosstool-ng$ cd sdbuild/scr...

2018-12-02 21:20:01 8733 14

原创 5. MIZ7035 PCIe测试 RIFFA【PCIE视频传输】

1.前言MIZ7035官方提供了两种pcie的demo,一个就是普通的PIO测试,一个是BMD测试。我只是试验了PIO功能,可以对板卡直接进行IO寄存器读写。而另外一个BMD功能使用了DMA来加速数据读写速度。 我也是第一次接触PCIe,BMD确实也可以完成应用的需求,搞起来应该没有问题。准备用这个开始做实验呢,问了一下学校之前的第二导师,他直接给我说了5个字母:R-I-F-F-A。说让我去

2018-01-16 11:49:47 13364 22

原创 4. MIZ7035 HDMI测试【PCIE视频传输】

1 MIZ7035的HDMI工程建立将上次用到的MIG_AXI工程拿来进行HDMI的工程建立。 不像ZCU102的开发板那样用GT收发器,MIZ7035的HDMI接口是靠PL的逻辑来实现输入输出的。所以要写RTL代码来做HDMI的编解码。测了几天MIZ7035的这个板子,遇到了个问题,总结一下。1 BUFx时钟问题写这个文档时候我已经测试了一天了,就先将一个比较重要的问题提前抛出

2018-01-12 15:46:03 5960 2

原创 3. ZCU102 HDMI Demo工程修改【PCIE视频传输】

为了更快速的开发我需要的带缓存的hdmi收发通路,将上一节的demo进行修改来实现。当然,可以从头开始自己进行配置,我就这么做了,但是因为fpga配置的不同,还要修改更多的驱动代码,相当麻烦,所以就直接拿demo的工程来用吧。(我一开始参考了TRD的工程代码,跟hdmi demo的配置还是有区别的,比如RX通道的参考时钟,TRD用了SI5324的晶体,而demo用的是fpga输出的时钟)。

2018-01-04 21:24:11 7345 20

原创 2. ZCU102 HDMI Demo【PCIE视频传输】

注意自动生成工程时,有可能将所有axi-lite连接到了zynq_us的m_axi_hpm0_lpd上,好像默认lpd不能用,需要开启时钟、电源?还是什么使能信号才可以用,所以会导致sdk中的例子不能直接访问pl上的外设,并导致cpu挂死。可以将lpd改为fpd,这样应该就没问题了。ZCU102 HDMI Demo测试zcu102的hdmi tx和rx都使用的是GTH来实现的,逻辑上比...

2018-01-04 14:25:09 10582 16

原创 1. 开发计划【PCIE视频传输】

计划使用PCIE实现视频数据的传输,暂时还没想好是用x1、x2还是x4,按理来说用x1来传一个1080p的视屏刚刚好,但是x2,x4的话可能更适合我之后的一个项目,因为有好几个视频通道。 以前没有搞过PCIE,所以头大。 现在有两个开发板,分别是zcu102和miz7035,就拿它们来试验了。 miz7035可以作为endpoint,zcu102作为root,将miz7035直接插到zcu1

2018-01-04 14:13:08 3328 2

原创 AXI接口的MIG测试【MIZ7035学习】

1.前言刚买了米联客的MIZ7035开发板,这几天休假也不出去,就在家拿回来测一些东西。 主要目的是学习:PL端的DDR3接口GTX用作PCIE接口SFP接口HDMI接口SD卡和eMMC共存情况下的PetaLinux主要就是这些了。过程主要是自己根据原理图、文档在Vivado上直接新建工程来进行测试,米联客的资料作为辅助,需要时进行查看。这次先来测试MIG做出的DDR3控制器,看看效果

2017-12-28 17:14:06 9477 4

原创 CentOS-7内的SDx、PetaLinux环境安装,2017.4

1.前言Xilinx的环境真是“日新月异”,3个月一升级的速度还真是让人有点受不住。一般情况下大家也不会在一个稳定版本使用后去更换新的版本,所以大家普遍用的Vivado环境都是2015.4,这个版本确实也是非常稳定的一个版本。但是最近出了最新的2017.4,好快啊,前面的版本都还没用熟呢。。2.版本编年史但是,我就是喜欢用新版本的!从2013年第一次开始用Xilinx的FPGA,跳...

2017-12-25 11:03:05 5050 3

原创 ZYNQ中的UIO驱动和中断程序学习【Xilinx-Petalinux学习】

在网上看到了何晔老师写的一篇文章: 当ZYNQ遇到Linux Userspace I/O(UIO)本人一直都在做硬件、FPGA对驱动来说只会裸奔。。在Linux底下的驱动基本上完全不会。看了这篇文章感觉不错,就照着他的流程跑了一遍,问题还是遇到了一些,在这里记录一下。

2017-08-23 14:54:40 21058 12

原创 本地sstate-cache配置【Xilinx-Petalinux学习】

工具:PetaLinux 2017.1*20170918:找到了缩短Checking sstate mirror时间的方法。 1.按照本篇内容配置本地的sstate-cache中的arm/sstate-cache和downloads 2.在petalinux-build之前,断开linux的网络连接。 这样Checking sstate mirror这个步骤可能仅仅需要不到十秒钟。*2017

2017-08-23 12:49:11 11665 3

原创 Xilinx reVISION开搞!【reVISION】

最近购置了一些东东,内心是开心的,身心上是疲惫的。不废话了,上图~ 不够直观?看看这个,我第一次也被吓到了。 接下来就是重要的了~ 插上摄像头,来个demo测试一下。 凑合看吧。。,程序是光流

2017-08-14 10:40:13 2002 11

原创 Xilinx HLx 2017.1 与VS 2017兼容问题解决

之前一直用SDx 2017.1,但是想用裸机测试一下程序,但SDx中的SDK功能不全,所以没办法还得重新装一下HLx 2017.1。电脑是Windows 10,之前安装了Visual Studio 2017,默认就安装了Redistributable 2017版本,但是Vivado 2017.1必须使用Redistributable 2015的版本。因为有2017所以2015无法安装成功。 导致

2017-07-28 11:32:24 13846 6

原创 -01-生成ORB离散查找表【特征点检测】

ORB算法计算描述子时需要使用到一个提前计算好的查找表,具体可以看OpenCV的orb.cpp文件中的数组: static int bit_pattern_31_[256*4]这个查找表对应的是0度,当特征点不是0度时,需要将查找表中的坐标进行旋转,这部分代码在OpenCV中有。再看论文中,作者将查找表以12°步进的方式生成了30个离散的查找表,这样计算时就能够快速选定坐标位置。作者选的30等分角

2017-05-18 18:50:33 1056

原创 -01-摄像头DVP输入IP核设计【OV5640】

在之前设计的OV5640输入接口逻辑上完善了一下代码,暂时出一版IP来用。DVP Timing首先看看OV5640的DVP信号时序: 先不考虑每个信号的具体时序,大致看一看他的波形,可以发现,这是一个很标准的时序。VSYNC是场同步信号,在图像数据发送之前会有一个高电平脉冲;HREF是数据有效信号,高电平时时代表D[9:0]的数据信号有效,可以理解为DE或者Data_valid;HSYNC是行同步

2017-04-29 12:26:40 15688 8

原创 -00-开始【OV5640】

最近做了一块转接板,把OV5640模块接入了FPGA开发板,昨天终于能够正常显示,没有问题了。 后面搞一板稳定的代码,然后把RGB565改成YUV试试显示效果有没有提升。

2017-04-21 10:28:24 5051 2

原创 -04-实时Prewitt边缘检测,第二步:Prewitt的NEON加速实现【ARM NEON加速】

下面进行Prewitt的NEON加速设计,将实现的具体思路描述一下。S0. Prewitt的C语言实现我把Prewitt算子的计算过程按下图重新进行表示: 可以看到该算法主要分为了三个步骤去实现:1. 像素灰度化,将源图像数像素点的彩色图像转换为灰度值,使用常用的公式:GRAY=(R*77+G*151+G*28)/2562. x、y方向一阶梯度计算3. 两个方向梯度均方根计算C代码:uns

2017-03-20 00:27:01 3274 10

原创 -03-实时Prewitt边缘检测,第一步:硬件平台搭建【ARM NEON加速】

在上面的一篇里文章”-02-实时Prewitt边缘检测,640×480 @60fps【ARM NEON加速】 “里,提到了实时Prewitt边缘检测的硬件平台,展示了处理效果,还分享了视频下面将详细介绍整个系统的实现过程。

2017-03-19 23:36:29 2948

原创 -10-GPIO驱动程序【Xilinx-Petalinux学习】

为了在Linux用户空间中对板上的硬件I/O进行控制,需要编写驱动程序。尝试了一些驱动程序的编写,发现Linux的Gpiolib方便一些,能够实现GPIO管脚的输出、输入、中断功能,相对于自己再去写设备驱动更方便一些。Gpiolib是基于SysFs接口实现的GPIO管脚的操作,用起来虽然方便,但是针对于按键、LED这些特定功能的I/O口,我们还可以使用Linux内核中的gpio-keys, leds-gpios驱动

2017-03-15 11:05:31 8222 5

原创 -09-EMIO Slice 自定义IP设计【Xilinx-Petalinux学习】

前一阵与一个朋友一起测试了petalinux中的GPIO驱动先关的代码。 一开始使用的AXI_GPIO这个IP核,输出的驱动还好,但是输入要加入中断等功能,就有点麻烦,而且配置来配置去的总是出问题,所以以后再来试这个吧。 因此决定以后再petalinux中使用GPIO功能时,都直接使用PS内的MIO和EMIO来实现。这样两者的驱动程序不仅相同,EMIO还能够自定义管脚位置,并且还不需要AXI_G

2017-03-14 18:37:21 2873

原创 -04-LVDS输入接口设计【Xilinx-LVDS读写功能实现】

包含OV7251摄像头输入接口的逻辑代码: https://coding.net/u/vacajk/p/ov7251_camera_zedboard/git/tree/master/Src

2017-03-13 10:25:28 5284 7

原创 -02-实时Prewitt边缘检测,640×480 @60fps【ARM NEON加速】

使用NEON加速处理,实现实时Prewitt边缘检测,640×480 @60fps硬件平台Zynq SoC,FPGA逻辑实现视频采集与视频输出,ARM SoC中使用NEON实现实时Prewitt边缘检测,整体实现640×480 @60fps 处理。图像输出使用了三重缓冲,有效避免了图像撕裂。接口:HDMI输入RGB彩色图像,VGA输出灰度图像。

2017-02-23 09:43:22 2470 9

原创 -01-RGB彩色图像转换为灰度图像【ARM NEON加速】

1. NEON简介NEON官方的简介网址:NEON NEON的主要特点就是single instruction, multiple data(SIMD),拥有专用的ALU和寄存器(d0-d32,q0-q16),基于这种结构很容易实现数据的并行计算,尤其是数学中的向量计算、音频中双声道数据处理、图像中RGB或RGBA彩色图像处理。 SIMD的运行方式如下图: 2. NEON加速实例,RGB2GR

2017-02-22 22:57:56 6191 3

转载 -00-neon汇编优化实例讲解【ARM NEON加速】

从一个复数点积算法看NEON的汇编优化  由 技术编辑 于 星期五, 03/21/2014 - 15:05 发表  摘要:本文通过一个真实案例(4096点双精度浮点复数点积算法),描述了使用 Zynq-7000 NEON进行算法优化的过程以及一些关键技巧,相对于使用编译器对C代码做优化,性能提升了大约4.8倍。 本文介绍的内容对需要用到NEON实现高性能计算的开发者

2017-02-22 12:08:20 4662

原创 -03-LVDS输出接口设计【Xilinx-LVDS读写功能实现】

在-01-OV7251摄像头与设计规划【Xilinx-LVDS读写功能实现】中将设计分为了几个步骤,下面将介绍OV7251 LVDS信号模拟输出功能的逻辑设计 。模拟摄像头的输出信号主要是为了方便前期测试和验证,而且本身SerDes的输出信号设计相对输入来说,复杂度要低很多。

2017-01-22 14:35:58 9510 1

原创 -02-Xilinx的SerDes接口介绍【Xilinx-LVDS读写功能实现】

因为摄像头输出的LVDS信号速率会达到600Mbps,我们将不能够通过FPGA的I/O接口直接去读取这么高速率的信号。因此,需要使用Xilinx FPGA内的SerDes去实现高速数据的串并转换。

2017-01-13 18:28:41 31487 1

原创 -01-OV7251摄像头与设计规划【Xilinx-LVDS读写功能实现】

准备使用OmniVision的OV7251 Global Shutter黑白摄像头在FPGA中设计LVDS摄像头数据捕获接口逻辑

2017-01-13 15:02:04 10480 1

原创 -05-OpenCV程序测试【Xilinx-Petalinux学习】

下面实现OpenCV的交叉编译和程序测试。

2017-01-13 11:43:48 4048 2

原创 -08-OpenAMP系统实现【Xilinx-Petalinux学习】

openAMP系统实现。一个核跑Linux,一个核裸跑。     ----->  已经实现。一个核跑Linux,一个核跑UCOS   ----->  还未实现。Micrium的ucos OpenAMP例子与Xilinx的例子框架结构有些不同,尝试修改共享内存基地址、改变程序结构,还未成功。先放一放,以后再来实验,或者等Micrium给出官方的例程~~~~TT step1: op

2016-12-28 15:02:36 11361 9

zcu106_video_vccu_xrt_url.txt

ZCU106基于XRT的代码,图像处理加VCU。将全部文件复制到SD卡,并启动ZCU106即可实现测试。

2020-04-12

zcu106_vitis_platform_v1.txt

XILINX ZCU106 XRT平台环境。解压到Vitis安装目录下的platform文件夹内,即可作为Vitis的默认平台进行使用。 可以开发XRT,Hardware Acceleration,OpenCL,Linux APP,Bare metal APP,RTOS APP等功能。 该platform内的sysroot包含了XRT,opencv,gstreamer等

2020-04-06

zcu106_opt_xrt.zip

ZCU106基于XRT的代码优化host opt测试例子。将全部文件复制到SD卡,并启动ZCU106即可实现测试。

2020-04-05

zcu106_mix_xrt.zip

ZCU106基于XRT的C++/RTL kernel混合编程测试例子。将全部文件复制到SD卡,并启动ZCU106即可实现测试。

2020-04-05

zcu106_rtl_kernel_xrt.zip

ZCU106基于XRT的RTL kernel测试例子。将全部文件复制到SD卡,并启动ZCU106即可实现测试。

2020-04-05

ZCU106基于XRT的图像处理

ZCU106基于XRT的图像处理。使用了opencv进行图像的前处理和后处理,中间的滤波处理由RTL进行加速。将全部文件复制到SD卡,并启动ZCU106即可实现测试。

2020-04-05

zcu106_xrt_platform.txt

XILINX ZCU106 XRT平台环境。解压到Vitis安装目录下的platform文件夹内,即可作为Vitis的默认平台进行使用。 可以开发XRT,Hardware Acceleration,OpenCL,Linux APP,Bare metal APP,RTOS APP等功能。

2019-12-07

ZCU102的完整PYNQ镜像

ZCU102的完整PYNQ鏡像,通過卡燒錄即可完成移植。只適用於ZCU102

2019-01-01

ZCU102的完整PYNQ鏡像

ZCU102的完整PYNQ鏡像,通過win32 disk或者linux進行SD卡燒錄即可完成移植。只適用於ZCU102量產板,不能用於ES2的板子。

2018-12-26

PYNQ移植ZCU102编译好的固件

PYNQ移植ZCU102编译好的固件 包含了开发板启动的BOOT.bin,image.ub 以及在线加载bit文件用到的bit和tcl文件

2018-12-03

PYNQ移植到ZCU102中PS模块配置文件

在python中使用ol = Overlay('zcu102_led.bit')后,输入ol进行自动补全时会使python程序崩溃。检查发现问题出在了Vivado中Zynq UltraScale+ MPSoC模块的配置有问题,但一直未定位到。 使用该文件进行ps配置可以解决补全崩溃的问题。

2018-12-03

ov5640的DVP接口FPGA代码与IIC驱动

ov5640的DVP接口FPGA代码与IIC驱动

2017-05-01

ov5640的DVP接口FPGA代码与IIC驱动代码

ov5640的DVP接口FPGA代码与IIC驱动代码

2017-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除