
SDSoC的软硬件协同设计流程系列
文章平均质量分 68
lulugay
GPU设计
展开
-
Vitis初探—1.将设计从SDSoC/Vivado HLS迁移到Vitis上
前言2020.11.25日,Xilinx更新了Vitis2020.2版本。正好之前报名里Xilinx的自适应计算挑战赛,比赛要求使用Vitis平台进行开发,所以今天趁着新版本发布把我之前参加DAC-SDC的项目SkrSkr迁移到Vitis平台上。之前听过一些介绍说Vitis将SDAccel和SDSoC合并到了一起,并使用OpenCL语言,所以在项目迁移之前我还是有点打怵的,但是经过一天的尝试基本搞定了。整个流程走下来感觉Vitis跟SDSoC换汤不换药,只是调用加速器的方式稍有变化,整体的设计思想还是一致原创 2020-11-26 23:43:11 · 8500 阅读 · 3 评论 -
基于ultra96的物体识别——5.jfOpenCV整合
上一节我们以腐蚀为例介绍了滤波型算法的实现方式,至此,在jfOpenCV框架下可以快速地实现相当一部分OpenCV的算法了,jfOpenCV的单个函数性能跟xfOpenCV类似,但是在实际应用中性能相比xfOpenCV有了一定提升,主要是规避了xf::Mat与cv::Mat相互转换的过程。本节我们将把前面写好的函数整合起来,进一步提升系统性能。...原创 2018-12-05 14:58:55 · 1243 阅读 · 2 评论 -
基于ultra96的物体识别——4.jfOpenCV之WindowBuffer,LineBuffer
基于ultra96的DJI战车主控——4.jfOpenCV之WindowBuffer,LineBuffer上一节我们介绍了jfOpenCV这套框架,使用这套框架可以规避单通道xf::Mat与cv::Mat转换的问题,并在此基础上给出了bgr2gray和threshold的高性能PL实现,但是bgr2gray和threshold函数都是对单个像素进行操作,还有很多filter型的算法比如腐蚀,膨胀...原创 2018-12-05 14:05:12 · 610 阅读 · 0 评论 -
基于ultra96的物体识别——3. xfOpenCV to jfOpenCV
基于ultra96的DJI战车主控——3.1xfOpenCV to jfOpenCV上一节我们将xfOpenCV替换掉OpenCV的部分函数,但是发现加速效果并不理想,主要是xf::Mat跟cv::Mat互相转换占据了大量的时间。本篇文章将分析xf::Mat跟cv::Mat互相转换的瓶颈所在,并且给出解决方案,在这个解决方案的框架内,给出bgr2gray以及threshold的高性能HLS实现。...原创 2018-12-05 13:50:43 · 925 阅读 · 1 评论 -
基于ultra96的物体识别——2.OpenCV to xfOpenCV
OpenCV to xfOpenCVProfile之前以为只要把SVM和HOG放进PL做加速就可以,根据上一篇文章Profile的结果,发现图像预处理占用了很长时间,SVM跟HOG占用的时间并没有想象中的长。因此本篇文章将介绍如何使用xfOpenCV对图像预处理和SVM+HOG进行加速。因为xfOpenCV提供的函数并不全,比如cvtColor以及threshold,因此xfOpenCV没有的函...原创 2018-12-05 11:02:50 · 1493 阅读 · 2 评论 -
基于ultra96的物体识别——1.OpenCV程序的Profiling
OpenCV的Profiling原创 2018-12-05 10:49:02 · 1043 阅读 · 0 评论 -
ultra96搭建支持PYNQ框架的SDSoC Platform
前言用过的ZYNQ开发板有PYNQ-Z1,PYNQ-Z2,ZC702,MiniZed,ZCU102,ZCU104还有本篇文章的主角——Ultra96,在这些开发板里我最喜欢的就是这块Ultra96。第一次拿到Ultra96的时候惊为天人,跟银行卡一样大的板卡竟然放下了Xilinx最先进的MPSoC(准确的说第二先进,毕竟7nm的ACAP已经发布了),Ultra96搭载的xczu3eg提供了大约...原创 2019-10-30 09:47:59 · 3235 阅读 · 3 评论 -
SDSoC+ DVFS on ZC702
该项目用2018.2版Vivado, SDSoC, Petalinux搭建,只适用于2018.2版本!搭建环境:Windows10: Vivado2018.2, SDSoC2018.2(也可以在Ubuntu16.04完成)Ubuntu16.04: Petalinux2018.2PYNQ-Z1/Z2, v2.1 imgSDSoC Hardware Platform —— 搭建Vivado工...原创 2019-01-08 16:16:26 · 832 阅读 · 0 评论 -
为zcu102搭建带xfce4桌面的SDSoC Platform
为ZCU102搭建SDSoC PlatformSDSoC包含了ZCU102的SDSoC Platform,该Platform提供了三种运行环境————Standalone,FreeRTOS,Linux。Platform提供的Linux只能用来运行SDSoC编译出来的elf文件,断电之后丢失全部数据,没有图形界面,也不能从板上接口(如USB)获取数据,功能十分有限。为了解决这个问题,我们要重新编译...原创 2018-10-22 19:05:14 · 3096 阅读 · 0 评论 -
SDSoC软硬件协同设计流程系列——4.搭建SDSoC Platform
SDSoC Platfrom定义了基本的硬件和软件架构以及应用程序的运行环境,本节从硬件和软件两方面,介绍SDSoC Platform如何在SDSoC中被调用然后说明如何搭建自己的SDSoC Platform。一个SDSoC Platform应该包含如下文件:硬件文件夹,里面包含Device Support Archive file,DSA文件定义了Zynq的PL部分, 在编译时SDSoC利用...原创 2018-10-21 17:05:14 · 9697 阅读 · 0 评论 -
SDSoC软硬件协同设计流程系列——3. SDS pragma
前面的章节已经介绍了利用HLS进行开发的流程,分成三步,首先在Vivado HLS工具中将C/C++转换成RTL代码并打包成IP核,然后在Vivado IPI中将HLS IP核与Zynq的PS集成在一起,最后在SDK中编写驱动完成整个设计。在这个流程中开发者需要根据应用特点选择合适的接口,合适的DMA,每一次调整都要先在HLS中调整,然后在Vivado更新IP,操作流程十分繁琐。此外,编写驱动进行...原创 2018-10-21 16:32:41 · 5752 阅读 · 2 评论 -
SDSoC软硬件协同设计流程系列——5.SDSoC+xfOpenCV+OpenCV颜色识别
SDSoC链接OpenCV+xfOpenCV图像处理和机器视觉是Zynq系列FPGA常见的应用场景,这部分工作经常用到OpenCV。此外,Xilinx还提供了硬件加速版的OpenCV,二者结合可以极大地提升开发效率。本文将以zcu104为例介绍如何在SDSoC中链接OpenCV+xfOpenCV库并实现一个颜色识别的例子。本文在Ubuntu16.04+SDSoC2018.2下测试通过下载x...原创 2018-10-23 14:14:53 · 3769 阅读 · 2 评论 -
SDSoC软硬件协同设计流程系列——2.SDSoC使用
SDSoC使用初次使用SDSoC尽管SDSoC支持在Windows主机上开发Linux应用,但是创建SDSoC Platform需要一台Linux主机,本书会在其他部分介绍如何在Ubuntu系统上安装SDSoC。在Windows上安装SDSoC比较简单,因此不做介绍。第一次打开SDSoC后会弹出一个界面要求指定工作区,SDx工作区是一个文件夹,用于存储项目,源文件和编译时产生的中间结果。您可...原创 2018-10-21 16:00:52 · 5170 阅读 · 15 评论 -
SDSoC软硬件协同设计流程系列——1.基于SDSoC的软硬件协同设计流程简介
基于SDSoC的软硬件协同设计流程简介Software Define 的概念近年来“Software Define”软件定义这个词持续火热,全球知名技术研究和咨询公司Gartner早在对2014年最有战略意义的十大技术与趋势做出预测时,便提出了软件定义一切(Software Defined Anything)的概念,他们预测这类技术会在未来三年里拥有巨大潜力,并在同行业中产生重大影响。两年后的...原创 2018-10-21 15:13:54 · 3794 阅读 · 2 评论