目录
- 1、FPGA实现PCIe数据通信现状分析
- 2、本FPGAPCIe数据通信培训优势亮点
- 架构全
- 起点高
- 实用性强
- 项目应用级别
- 细节恐怖
- 工程源码清晰
- 3、本FPGA图像处理培训内容介绍
- FPGA过PCIe到PC框架框架
- 工程源码1详细介绍
- 工程源码2、3详细介绍
- 工程源码4、5详细介绍
- 工程源码6、7、8、9详细介绍
- 工程源码10、11详细介绍
- PC过PCIe到FPGA框架
- 工程源码12详细介绍
- FPGA与PC过PCIe双向传输框架
- 工程源码13详细介绍
- FPGA实现PCIe数据通信中的图像处理仿真框架
- 视频教程介绍+免费试看
- 4、本实现PCIe数据通信培训资料清单
- 培训资料
- 配套的FPGA开发板
- 5、FPGA实现PCIe数据通信上板测试效果
- FPGA实现PCIe测速功能--上板测试演示
- FPGA实现视频采集转PCIe传输功能(视频采集卡)--上板测试演示
- FPGA实现视频采集转PCIe传输+图像缩放功能(视频采集卡)--上板测试演示
- FPGA实现视频采集转PCIe传输+视频拼接功能(视频采集卡)--上板测试演示
- FPGA实现AD7606数据采集转PCIe传输功能(AD数据采集卡)--上板测试演示
- FPGA实现简易PCIe显卡功能(HDMI输出版本)--上板测试演示
- FPGA-PC电脑端基于PCIe实现双向数据传输功能(数据计算卡)--上板测试演示
- 6、FPGA图像处理培训资料获取
FPGA实现PCIe数据通信培训课程,提供工程源码+视频教程+FPGA开发板
免费试看视频:
FPGA PCIe教程第1课-pcie测速工程手把手搭建教学
免费试看视频说明:
视频手把手教大家搭建了一个基于XDMA IP核的PCIe数据通信架构,具有参考意义,技术成分大概有三四层楼那么高。
1、FPGA实现PCIe数据通信现状分析
FPGA实现PCIe数据通信培训现状;
目前FPGA实现PCIe数据通信培训现状可谓尔虞我诈合纵连横,大有春秋战国+三国演义之风;
你或许听说过FPGA培训机构,他们收费3到5万,而你学到的仅仅是串口等低端技能,因为他们的目的只是为了让你贷款学费,赚金融的钱,至于你学什么学到了什么,那只是他们挣钱的工具,所以多数FPGA培训机构属于昧着良心骗学生,不值得评价;
你或许在某宝某鱼某QQ群某公众号看到过卖视频教程的,这类视频讲得很好很详细,但在我看来有点主次不分了,没有从工程项目应用、职场、老板等角度去教会学生如何快速的实现FPGA项目的角度去讲;举个例子,有的博主会花大篇幅去讲i2c如何实现的,这纯属浪费时间,i2c属于低速总线,一般在项目中用作芯片配置,是很成熟很简单的东西,我只需要知道怎么用就行了,根本不需要去手写一个i2c总线,一般的公司里,这种基础的模块都有,领导需要的是你快速把他用起来然后做项目,谁会要求你去写这么个玩意儿呢?就好比你在写C代码时调用print()函数打印个东西,哪个领导会要求你去写一个print()函数呢?会用、快速用、用的好、做项目、交差、到账、分钱;这是领导在乎的;突然想起网上的一句话,何为愚蠢?愚蠢就是把大量时间和精力拿去做毫无意义的事情;
你或许可以去B站看海量免费的视频教程,视频看多了,你以为自己行了,结果3行verilog代码都写不出来,甚至看代码都不行,更别说做项目了;所以我的建议是《珍爱FPGA,远离视频教程》;你想想,如果看视频教程都能学会FPGA,还有人去送外卖吗?FPGA是一个动手+动脑的游戏,你却理解为了左手拿着肥宅水右手拿着炸鸡腿看游戏直播的行当,是不是有点南辕北辙了?所以我的建议《多看代码+多理解代码+多问问题+多写代码》;当然,也不是说视频教程不能看,但应该看的是工程或者项目代码实现的架构,数据流向等宏观的方向性的介绍,至于里面的细节,则需要你去查资料,然后看代码,看仿真,多问,多些,自己复现等,这样才是你自己学到的,视频教程,那是别人脑子里的东西,无法复制粘贴到你的脑子里,只有通过你自己的《学习》才能讲你学到的东西下载固化到你的脑子里;
2、本FPGAPCIe数据通信培训优势亮点
本FPGAPCIe数据通信培训优势亮点主要分为架构全、起点高、实用性强、项目应用级别、细节恐怖、工程源码清晰等几个方面;
架构全
本FPGA实现PCIe数据通信培训的内容架构很全;如果以数据流向为界限,本博主将PCIe数据通信的架构分为《FPGA过PCIe到PC》、《PC过PCIe到FPGA》、《FPGA与PC过PCIe双向传输》几类框架,但请注意,以上分类纯属博主根据自身开发经验取名,没有任何学术依据,如有雷同纯属巧合;具体如下:
FPGA过PCIe到PC框架
FPGA过PCIe到PC框架如下:
FPGA过PCIe到PC框架在日常生活工作中十分常见,比如视频采集卡、ADC采集卡等等,他的数据流向是FPGA或其他ASIC板卡采集外部数据,经过简单或复杂处理后,通过PCIe总线传输给PC电脑端,PC电脑端可运行相应上位机或其他软件接收处理。为此,本博主安排了11套vivado工程源码+配套视频讲解,好学的你应该可以把握住。
PC过PCIe到FPGA框架
PC过PCIe到FPGA框架如下:
PC过PCIe到FPGA框架在日常生活工作中也十分常见,比如显卡,他的数据流向是先在PC电脑端可运行相应上位机或其他软件采集电脑端的数据,可以是电脑端的图像数据,或者软件处理后的数据,或者AI训练后的数据等等,然后通过PCIe总线传输给FPGA或其他ASIC板卡,FPGA或其他ASIC板卡经过简单或复杂处理后,通过视频接口、网口、USB接口、ADC或者其他接口输出给外部设备处理。为此,本博主安排了1套vivado工程源码+配套视频讲解,好学的你应该可以把握住。
FPGA与PC过PCIe双向传输框架
FPGA与PC过PCIe双向传输框架如下:
FPGA与PC过PCIe双向传输框架在日常生活工作中也十分常见,比如计算中心的各种算卡、加速卡等,他的数据流向是双向的,即数据在FPGA或其他ASIC板卡与PC电脑端要经过反复的来回传输。为此,本博主安排了1套vivado工程源码+配套视频讲解,好学的你应该可以把握住。
起点高
本FPGA实现PCIe数据通信培训的内容起点很高;比如你可能听说或学到的什么OV5640摄像头配置和视频采集之类的东西,在我的培训资料里都是垃圾,上不了台面,仅仅是一个小工具而已,听了我的视频说明,你会恍然大悟,原来我一直在乎的东西实际上在项目中根本不重要,原来我一直人为高大上的硬件原来都是工业垃圾。。。我的培训资料,不仅包括简单的PCIe数据读写和测速,还包括PCIe的视频采集卡、带图像处理的(图像缩放、多路视频拼接等)视频采集卡、ADC采集卡、简易显卡、计算卡等等,还包括FPGA时序约束,如果你编译出来的工程时序都不过,这样的工程你敢用到产品上去吗?我提供的工程时序报告都是这样的:
所以,我不做那种低端的、没有工程项目意义的、只为骗取学生可怜生活费的培训,我只做能提高学生技能、增加学生进大厂机率的起点高培训;
实用性强
本FPGA实现PCIe数据通信培训的内容实用性很强;比如你可能听说或学到的什么OV5640摄像头的采集输出,但你可能不知道的是,你学的这些东西都是垃圾,没有实用性;你见过市面上有哪个产品是用OV5640这样的东西做的吗?既然是工业垃圾,为什么还要去学他呢?你可能会说我只是通过OV5640摄像头来学习怎么做图像缓存,因为OV5640摄像头便宜;很好,如果你能悟道这一层,说明你很有前途,我的培训资料里也有OV5640,但它只是工具,我的目的不是去介绍OV5640让你学会用它,而是让你学会基于OV5640的PCIe视频采集卡的设计能力;基于此,在我的培资料里,还提供了HDMI的PCIe视频采集卡设计、加入了图像处理功能的PCIe视频采集卡设计、ADC采集卡、简易显卡、计算卡等等;此外,为了方便验证,你还可以选择一套配套的FPGA开发板;我的FPGA实现PCIe数据通信培训内容讲的是实用性,你学到的都是有现实价值的、有工程项目意义的、实用性强的内容;
项目应用级别
本FPGA实现PCIe数据通信培训的内容都是项目应用级别的;你从我这里学到的不是做实验,而是项目开发;所以请记住,你是在做项目,不是在学FPGA;比如PCIe采集卡,在医疗、军工等行业应用十分广泛,特别是军工,每年都有很多研究所去高校挖人,如果你在校期间就已练习两年半获得了项目经验,人家还不《箪食壶浆以迎王师》的忽悠你去他那儿?本FPGA实现PCIe数据通信培训的每一个项目,都有对应的项目应用场景,所以请记住,你不是在学FPGA,你是在做项目;
细节恐怖
本FPGA实现PCIe数据通信培训的内容都细节是恐怖的;每一个工程都有说明,每一个代码模块都有介绍,每一行代码都有注释;当然那些已经模块化、没有现实意义的功能模块除外;你在我提供的工程代码里,几乎很难找到一行没有注释的代码,而且我的注释十分朴实无华,直接上的是中文注释,不玩儿那些花里胡哨的英文注释,毕竟学生看的是代码不是干英文翻译的,下面举个例子,看看代码注释:注意!!!我是在Notepad++的代码编辑器上写的,所以其他编辑器打开代码可能出现乱码;建议将vivado与Notepad++绑定,具体方法可百度搜索《vivado联合Notepad++方法》;
所谓细节恐怖只是保守的活法,以你为再恐怖的细节再详细的讲解也不可能做到让你一看就懂,所以我还大胆的提供了永久性技术支持服务,也就是说你看代码、写代码、做项目遇到问题,可以随时问我,我知道的都会为你解答,当然,这里有两个前提,一是别三更半夜来问,因为大家都要休息,二是你做的项目可能我没做过或者过于高端我没接触过,这种就没法支持了;
工程源码清晰
此外,培训资料提供的全部vivado工程架构清晰,代码流畅,可读性、可移植性都很强,这里举例如下,以OV5640摄像头输入的PCIe视频采集卡工程为例,该工程由Block Design和模块例化组成,其中Block Design设计如下:
代码模块例化后的代码架构如下:
工程编译后资源消耗低、功耗低、时序收敛,如下:
3、本FPGA图像处理培训内容介绍
本FPGA实现PCIe数据通信培训内容以具体的FPGA工程为基础,每个FPGA工程包括本身的源代码+对应的模块仿真+对应的视频讲解,如下:
本FPGA实现PCIe数据通信培训一共准备了13套vivado项目工程+2套vivado仿真工程+9个视频讲解教程;具体如下:
所有电子资料已上传网盘,如下:
FPGA过PCIe到PC框架框架
FPGA过PCIe到PC框架框架如下:
该架构下提供了11套Vivado工程源码,如下:
下面分别介绍这11套工程源码。
工程源码1详细介绍
工程源码1是FPGA实现PCIe测速功能,详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的PCIE通信架构,XDMA的数据缓存有两条通路,一条基于DDR3的大批量数据缓存通路,该条通路一般用作图像、AD数据等缓存,适用于Xilinx Artix7-100T及其以上型号的FPGA;另一条基于BRAM的小批量用户数据缓存通路,该条通路一般用作用户控制数据的缓存,适用于Xilinx Artix7-35T及其以下型号的FPGA,因为资源小;XDMA配置为中断模式,配合手写的XDMA中断模块使用,该中断模块主要负责与用户逻辑交互,指示用户逻辑可以发起中断,并将用户逻辑发起的中断转发给XDMA;用户逻辑侧设置了一个定时器,大约间隔8ms发起一次XDMA中断;同时提供一套基于X86架构的PC端的QT上位机实现PCIE测速试验,QT上位机调用XDMA驱动的API实现写速率计算,并将速率结果用码表方式呈现;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码1如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
PCIE底层方案:Xilinx官方XDMA IP核,中断模式,配置4条用户中断;
数据缓存架构:DDR3+BRAM;
实现功能:FPGA搭建XDMA中断模式的PCIE通信架构下的简单读写测试;
工程作用:让读者掌握FPGA搭建XDMA中断模式的PCIE通信架构的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
工程源码2、3详细介绍
工程源码2是FPGA实现OV5640摄像头视频采集转PCIe传输功能(视频采集卡);
工程源码3是FPGA实现HDMI高清视频采集转PCIe传输功能(视频采集卡);
详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的PCIE视频传输;视频输入源有多种,一种是板载的HDMI输入接口,另一种是传统摄像头,包括OV7725、OV5640和AR0135;FPGA首先对摄像头进行i2c初始化配置,然后采集摄像头视频;然后使用本博主常用的FDMA图像缓存架构对采集视频做图像缓存,缓存介质为板载DDR3;每当缓存一帧视频完毕,就发起一次用户中断给XDMA,XDMA收到用户中断后通知QT上位机发起一次XDMA读数据操作,XDMA再从DDR中读取一帧视频并通过PCIE总线发送给QT上位机,QT上位机接收并显示当前采集的视频;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码2如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:PCIE2.0,分辨率1280x720@60Hz;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE视频传输;
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE视频传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码3如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:HDMI,IT6802芯片解码方案,分辨率1920x1080@60Hz,笔记本电脑模拟输入源;
输出:PCIE2.0,分辨率1920x1080@60Hz;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE视频传输;
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE视频传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
工程源码4、5详细介绍
工程源码4是FPGA实现OV5640摄像头视频采集+图像缩放+转PCIe传输功能(视频采集卡);
工程源码5是FPGA实现HDMI高清视频采集+图像缩放+转PCIe传输功能(视频采集卡);
详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的PCIE视频传输;视频输入源有多种,一种是板载的HDMI输入接口,另一种是传统摄像头,包括OV7725、OV5640和AR0135;FPGA首先对摄像头进行i2c初始化配置,然后采集摄像头视频;然后使用自研的、纯verilog实现的、支持任意比例缩放的图像缩放模块实现对输入视频的图像缩放操作;然后使用本博主常用的FDMA图像缓存架构对采集视频做图像缓存,缓存介质为板载DDR3;每当缓存一帧视频完毕,就发起一次用户中断给XDMA,XDMA收到用户中断后通知QT上位机发起一次XDMA读数据操作,XDMA再从DDR中读取一帧视频并通过PCIE总线发送给QT上位机,QT上位机接收并显示当前采集的视频;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码4如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:PCIE2.0,分辨率1920x1080@60Hz;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1280x720缩放到1920x1080;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE视频缩放传输;
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE视频缩放传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码5如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:HDMI,IT6802芯片解码方案,分辨率1920x1080@60Hz,笔记本电脑模拟输入源;
输出:PCIE2.0,分辨率1280x720@60Hz;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1920x1080缩放到1280x720;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE视频缩放传输;
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE视频缩放传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
工程源码6、7、8、9详细介绍
工程源码6是FPGA实现2路OV5640摄像头视频采集+图像缩放+视频拼接+转PCIe传输功能;
工程源码7是FPGA实现4路OV5640摄像头视频采集+图像缩放+视频拼接+转PCIe传输功能;
工程源码8是FPGA实现2路HDMI高清视频采集+图像缩放+视频拼接+转PCIe传输功能;
工程源码9是FPGA实现4路HDMI高清视频采集+图像缩放+视频拼接+转PCIe传输功能;
详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的PCIE多路视频拼接传输;视频输入源有多种,一种是板载的HDMI输入接口,另一种是传统摄像头 ,包括OV7725、OV5640和AR0135;FPGA首先对摄像头进行i2c初始化配置,然后采集摄像头视频;然后自研、纯verilog实现的、支持任意比例缩放的图像缩放模块实现对输入视频的图像缩放操作;然后使用本博常用的FDMA图像缓存架构实现图像缓存+多路视频拼接,该架构简单灵活,将不同的视频写入不同的内存地址再统一读出来,以达到拼接效果,缓存介质为板载DDR;每当缓存一帧视频完毕,就发起一次用户中断给XDMA,XDMA收到用户中断后通知QT上位机发起一次XDMA读数据操作,XDMA再从DDR中读取一帧视频并通过PCIE总线发送给QT上位机,QT上位机接收并显示当前采集的视频;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码6如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:PCIE2.0,分辨率1920x1080下的960x540的2路视频拼接2分屏显示;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1280x720缩放到960x540;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
多路视频拼接方案:FDMA方案的2路视频拼接;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE多路视频拼接传输
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE多路视频拼接传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码7如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:PCIE2.0,分辨率1920x1080下的960x540的4路视频拼接4分屏显示;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1280x720缩放到960x540;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
多路视频拼接方案:FDMA方案的4路视频拼接;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE多路视频拼接传输
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE多路视频拼接传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码8如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:HDMI,IT6802芯片解码方案,分辨率1920x1080@60Hz,笔记本电脑模拟输入源;
输出:PCIE2.0,分辨率1920x1080下的960x540的2路视频拼接2分屏显示;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1920x1080缩放到960x540;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
多路视频拼接方案:FDMA方案的2路视频拼接;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE多路视频拼接传输
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE多路视频拼接传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码9如下:
开发板FPGA型号:Xilinx-Kintex7–325T–xc7k325tffg676-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:HDMI,IT6802芯片解码方案,分辨率1920x1080@60Hz,笔记本电脑模拟输入源;
输出:PCIE2.0,分辨率1920x1080下的960x540的4路视频拼接4分屏显示;
图像缩放方案:自研纯Verilog图像缩放;
图像缩放实例:1920x1080缩放到960x540;
图像缓存方案:FDMA图像缓存+DDR3颗粒+图像4帧缓存;
多路视频拼接方案:FDMA方案的4路视频拼接;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA基于XDMA中断模式实现PCIE多路视频拼接传输
工程作用:让读者掌握FPGA基于XDMA中断模式实现PCIE多路视频拼接传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
工程源码10、11详细介绍
工程源码10是FPGA实现AD7606数据采集转PCIe传输功能(AD数据采集卡,BRAM缓存版本);
工程源码11是FPGA实现AD7606数据采集转PCIe传输功能(AD数据采集卡,DDR3缓存版本);
详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的AD7606数据采集转PCIE传输;输入源为AD数据源,我用到的是示波器,用示波器产生一个正弦波,然后示波器信号接入AD7606转接板;AD7606有两种输出模式,一是串行模式,可以节约IO引脚,方便PCB布线,二是并行模式,IO引脚较多,本设计使用到了两种AD7606转接板,分别对应串行模式和并行模式;FPGA端用纯verilog代码设计了AD7606驱动,该驱动配置AD7606并采集AD数据,有串行模式和并行模式两个版本;AD7606在驱动的加持下将模拟信号转换为数字信号后传给FPGA;然后使用本博主常用的FDMA数据缓存架构将采集到的AD7606数据进行缓存缓存;缓存介质设计了两种方案,一是FPGA板载的DDR3作为缓存介质,对应你的开发板有DDR3的情况,二是FPGA内部的BRAM作为缓存介质,对应你的开发板无DDR3的情况;本设计为选取AD7606全部8通道 的其中2个通道进行缓存,缓存4096个点后就发起一次用户中断给XDMA,XDMA收到用户中断后通知QT上位机发起一次XDMA读数据操作,XDMA再从DDR中读取一帧视频并通过PCIE总线发送给QT上位机,QT上位机接收并显示当前采集的AD数据;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码10如下:
开发板FPGA型号:Xilinx–>Kintex7–35T–xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:示波器产生正弦波送AD7606转接板;
输出:PCIE2.0;
AD7606输出模式:串行模式;
图像缓存方案:FDMA图像缓存;
图像缓存介质:FPGA内部BRAM;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X8,5GT/s单lane线速率;
实现功能:FPGA实现AD7606数据采集转转PCIE传输;
工程作用:让读者掌握FPGA实现AD7606数据采集转转PCIE传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA工程源码11如下:
开发板FPGA型号:Xilinx–>Kintex7–35T–xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:示波器产生正弦波送AD7606转接板;
输出:PCIE2.0;
AD7606输出模式:串行模式;
图像缓存方案:FDMA图像缓存;
图像缓存介质:板载DDR3;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X8,5GT/s单lane线速率;
实现功能:FPGA实现AD7606数据采集转转PCIE传输;
工程作用:让读者掌握FPGA实现AD7606数据采集转转PCIE传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
PC过PCIe到FPGA框架
PC过PCIe到FPGA框架如下:
该架构下提供了1套Vivado工程源码,如下:
下面分别介绍这1套工程源码。
工程源码12详细介绍
工程源码12是FPGA实现简易PCIe显卡功能-HDMI输出版本,详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,调用Xilinx官方的XDMA方案搭建基中断模式下的PCIE采集电脑端视频转HDMI输出,即用FPGA实现PCIE显卡方案;输入源为电脑端实时视频,也就是电脑桌面的实时图像,分辨率为1920x1080@60Hz;打开QT上位机,QT上位机会实时采集电脑端视频,通过PCIE总线发送到FPGA板卡;FPGA内部的XDMA IP核接收到电脑端发来的视频后,将视频写入板载DDR3中缓存;同时使用本博主常用的FDMA图像缓存架构将视频从板载DDR3中读出,在Native视频时序的同步下生成1920x1080@60Hz的RGB视频流,然后使用本博主常用的RGB转HDMI模块实现RGB视频到HDMI视频转换,并通过板载的HDMI视频接口输出;最后用显示器显示视频即可;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码12如下:
开发板FPGA型号:Xilinx–>Kintex7–35T–xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:电脑主机实时视频,分辨率1920x1080@60Hz;
输出:HDMI,分辨率1920x1080@60Hz;
PC端到FDMA传输方案:PCIE传输;
图像缓存方案:FDMA图像缓存+DDR3颗粒;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FPGA实现PCIE视频采集转HDMI输出;
工程作用:让读者掌握FPGA实现PCIE视频采集转HDMI输出的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA与PC过PCIe双向传输框架
FPGA与PC过PCIe双向传输框架如下:
该架构下提供了1套Vivado工程源码,如下:
下面分别介绍这1套工程源码。
工程源码13详细介绍
工程源码13是FPGA-PC电脑端基于PCIe实现双向数据传输功能–数据计算卡,详细设计文档请参考如下博客:
点击直接前往
本设计使用Xilinx系列FPGA为平台,实现PCIE与电脑端QT上位机双向数据传输;
电脑端QT上位机到FPGA端数据流向;
输入源为电脑端实时视频,也就是电脑桌面的实时图像,分辨率为1920x1080@60Hz;打开QT上位机,QT上位机会实时采集电脑端视频,通过PCIE总线发送到FPGA板卡;FPGA内部的XDMA IP核接收到电脑端发来的视频后,再调用FDMA图像缓存架构将视频写入板载DDR3中缓存,FDMA配置为单写模式;并通过 AXI-GPIO 输出信号通知FPGA端数据已经完成发送,此时FPGA端可以读取电脑端QT上位机发来的数据;
数据已经完成发送,
FPGA端到电脑端QT上位机数据流向;
FPGA端收到AXI-GPIO 输出的数据发送完成信号后,使用本博主常用的FDMA图像缓存架构将视频从板载DDR3中读出;然后再调用另一路FDMA图像缓存架构将视频写入DDR3中缓存起来,FDMA配置为单读模式;并通知通过XDMA中断模块通知电脑端QT上位机已经完成发送,此时电脑端QT上位机可以读取FPGA发来的数据;
FPGA端到电脑端QT上位机数据交互设计;
电脑端QT上位机收到XDMA中断后接收PCIE发来的图像并实时显示;如此形成了电脑端QT上位机发送视频到FPGA端;FPGA端再将接收到的视频回传给此时电脑端QT上位机;电脑端QT上位机再显示回传视频的双向数据传输验证架构;
工程源码设计架构如下:
工程Block Design设计如下:
综合后的工程源码架构如下:
FPGA工程源码13如下:
开发板FPGA型号:Xilinx–>Kintex7–325T–xc7k325tffg900-2;
FPGA开发环境:Vivado2019.1;
QT开发环境:VS2015 + Qt 5.12.10;
输入:电脑主机实时视频,分辨率1920x1080@60Hz;
输出:PCIE,分辨率1920x1080@60Hz;
PC端到FPGA端传输方案:PCIE传输,XDMA方案;
FPGA端到PC端传输方案:PCIE传输,XDMA方案;
图像缓存方案:FDMA图像缓存+DDR3颗粒;
PCIE底层方案:Xilinx官方XDMA IP核;
PCIE详情:PCIE2.0版本,X4,5GT/s单lane线速率;
实现功能:FFPGA实现PCIE与电脑端QT上位机双向数据传输;
工程作用:让读者掌握FPGA实现PCIE与电脑端QT上位机双向数据传输的设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
FPGA实现PCIe数据通信中的图像处理仿真框架
FPGA实现PCIe数据通信中的图像处理仿真采用Vivado+Matlab联合仿真架构,如下:
Vivado+Matlab联合仿真详细步骤如下:
第1步:网上下载一张jpg格式的图片作为测试输入图像;
第2步:用Matlab程序提取图片中的RGB像素,并保存为txt文档;
第3步:将输入测试图片RGB像素的txt文档复制到Vivado仿真工程中;
第4步:Vivado仿真工程读取输入图片RGB像素的txt文档,并生成视频流;
第5步:Vivado仿真工程将输入图像视频流送入图像处理模块,并将图像处理后的RGB像素输出保存为txt文档;
第6步:将图像处理后的RGB像素输出保存的txt文档复制到Matlab工程中;
第6步:用Matlab程序提取仿真输出TXT文档中的RGB像素,并转换为图片输出;
Matlab程序在第6步时会同时输出原图和图像处理后的图片,形成效果对比;
本FPGA实现PCIe数据通信中的图像处理培训工提供了2套仿真程序,具体如下:
第1套仿真程序
FDMA仿真程序;用于FDMA的专用仿真,目的是让读者掌握FDMA用户操作时序,为FDMA控制器的设计提供扎实基础;同时也是整个图像缓存架构的基础;
第2套仿真程序
图像缩放仿真程序;用图像缩放模块的专用仿真,目的是让读者掌握图像缩放模块的时序,为分析理解图像缩放模块代码做参考;
基于以上2套仿真程序和配套的视频讲解,目的是为读者提供一种仿真架构设计,让读者可以用本套架构仿真自己的图像处理模块;
视频教程介绍+免费试看
FPGA实现PCIe数据通信培训课程的视频教程分为Vivado工程讲解视频、仿真讲解视频、时序约束和时序优化讲解视频三个部分;一共提供9集视频教程,如下:
需要注意的是,视频教程只是方便读者了解设计架构和思想,千万不要迷恋视频教程,不要想通过看视频学会FPGA,要在看视频教程了解架构的前提下深挖代码、理解代码设计、掌握模块用法,才能将FPGA技能装进自己的脑细胞里;
给出前文《FPGA过PCIe到PC框架》章节中工程源码1的Vivado工程完整的搭建、设计视频教程,仅作视频教程试看,如果你觉得还行,可以考虑是否需要本套图像处理培训资料,频教程试看如下:
FPGA PCIe教程第1课-pcie测速工程手把手搭建教学
4、本实现PCIe数据通信培训资料清单
培训资料
本实现PCIe数据通信培训资料清单如下:
所有电子资料已上传网盘,如下:
配套的FPGA开发板
Kintex7–325T 版本的FPGA开发板由核心板+底板构成,配置如下:
核心板配置如下:
板载FPGA型号:Kintex7–xc7k325tffg676-2;Xilinx经济型FPGA;
板载DDR3型号:MT41K256M16TW-107,板载2片该型号DDR3,内存256M,已经够用了;
板载FLASH型号:MX25L12835,板载1片该型号FLASH,128M容量,用于程序固化;
板载3个晶振:27M和50M作为FPGA系统时钟;148.5M作为MGT高速接口时钟;
板载JTAG接口,用于程序调试;
板载2颗用户LED灯,用于用户开发;取消了板载按键,鸡肋设计,直接用VIO调控即可;
底板配置如下:
板载12V直流电源接口,用于开发板供电;
板载FLASH型号:M25P16,板载1片该型号FLASH,16M容量,用于存储用户数据;
板载40 PIN用户2.0间距的IO引脚,可接其他外设;
板载1路LVDS接口,为30 PIN用户2.0间距的IO引脚,可接本博主的LVDS显示屏;可配套本博主开发的LVDS项目;
板载2路SFP光口,用于高速接口开发;速率高达10Gb/s;可配套本博主开发的GTP高速接口项目;
板载PCIE2.0 X4接口,用于PCIE开发;可配套本博主开发的PCIE项目;
板载1路RJ45网口,用于以太网开发,PHY芯片为B50610;可配套本博主开发的以太网项目;
板载1路OV5640摄像头接口,用于图像开发;可配套本博主开发的图像处理项目;
板载1路HDMI输入接口,最大支持1920x1080@60Hz分辨率,IT6802解码芯片;可配套本博主开发的图像处理项目;
板载1路HDMI输出接口,最大支持1920x1080@60Hz分辨率,直连FPGA的HP BANK;可配套本博主开发的图像处理项目;
板载2路SDI输入接口,最高支持3G-SDI;可配套本博主开发的SDI编解码项目;
板载2路SDI输出接口,最高支持3G-SDI;可配套本博主开发的SDI编解码项目;
板载1路USB2.0接口,PHY芯片为Cypress的CY7C68013A;可配套本博主开发的USB收发项目;
板载1路SATA接口,可接固态硬盘;
板载1路耳机输出接口,PHY芯片为TI的TLV320AIC3104;可配套本博主开发的音频项目;
板载1路串口,用于用户调试;
板载1路SD卡接口;
板载4颗用户LED灯,用于用户开发;
板载2颗用户按键,用于用户开发;
配套的FPGA开发板发货清单如下:
5、FPGA实现PCIe数据通信上板测试效果
FPGA实现PCIe测速功能–上板测试演示
XDMA-测速
FPGA实现视频采集转PCIe传输功能(视频采集卡)–上板测试演示
XDMA-图传
FPGA实现视频采集转PCIe传输+图像缩放功能(视频采集卡)–上板测试演示
XDMA-缩放
FPGA实现视频采集转PCIe传输+视频拼接功能(视频采集卡)–上板测试演示
XDMA-拼接
FPGA实现AD7606数据采集转PCIe传输功能(AD数据采集卡)–上板测试演示
FPGA实现简易PCIe显卡功能(HDMI输出版本)–上板测试演示
XDMA-HDMI
FPGA-PC电脑端基于PCIe实现双向数据传输功能(数据计算卡)–上板测试演示
XDMA-双向
6、FPGA图像处理培训资料获取
福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下: