基于直方图算法的FPGA设计架构.docx
《基于直方图算法的FPGA设计架构.docx》由会员分享,可在线阅读,更多相关《基于直方图算法的FPGA设计架构.docx(11页珍藏版)》请在第一文库网上搜索。
1、基于直方图算法的FPGA设计架构引言直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图。直方图的不同种类和统计方法请见之前的文章。本章就是用FPGA来进行直方图的计算,并且利用FPGA的特性对计算过程进行加速。安排如下:首先基于直方图篁去进行FPGA架构设计,这里主要考虑了如何加速以及FPGA资源的利用两个因素;最后基于systemVeri1Og搭建一个验证系统。FPGA设计架构不论是图像灰度直方图还是梯度直方图,本质上是对数据的分布进行计数。从FPGA角度来看,只关心以下几点:D根据数据大小确定其分布区间,统计分布在不同区间的数据个数,区间的大小可以调节,比如灰度直方图
2、区间为1,梯度直方图通常大于1;2)如何利用FPGA对直方图统计进行加速,以及如何考虑到后有限资源;首先来考虑加速方式,直方图统计过程用伪代码表示为:For(inti=0;iIndex=get_index(datai);Histindex+;Gctjndex函数是为了确定数据属于哪个区间,如果区间大小为1,那么index薪是数据自身。如果区间是平均分布,那么就需要进行数据的大小比较。如果区间大小是2的事次,那么index只需要数据进行移位得到。FPGA在加速让算中最主要就是利用并行化和流水线,并行化就是将一个任务拆解成多个子任务,多个子任务并行完成。而流水线是在处理一个子任务的时候,下一个来的
3、子任务也可以进行处理,处理模块不会等待。流水线本质上是对子任务也进行“分割”,分割的每一块可以在处理模块中同时进行。统计N个数据,可以将N分成M份,在FPGA上同时进行M个统计,用伪代码表示为:For(intk=O;k并行化For(inti=0;iIndex=get_index(dataki);Histkindex+;如果区间不是2的事次,就需要比较器,这样并行M次,就需要M个同等比较器,这对资源消耗很大。因此目前设计仅仅支持2的塞次的区间。整个设计架构如图1.20图2.1流水线处理ready图2.2直方图统计架构主要分为以下几个模块:1) statis:这个是核心计算模块,统计数据分布。ra
4、m中存放直方图统计数据,地址对应着数据分布区间。这里有一个问题需要考虑,在对ram中直方图统计数据计数时,需要读出然后计数。如果ram读端口没有寄存器,那么读出来直接加1再写入。但是这样并不好,因为ram不经过寄存器时序不好。所以增加了一级寄存器,这样就造成了写入的延时,那么有可能下一次数据来临也会读取同样地址的数据,此时读取到的直方图数据就是还没有写入的。为了解决这个问题,判断进入的前后两个数据是否相同,如果相同就不写入而继续计数,如果不同就写入。并行多个StatiS模块的代码为:genvari;generatefor(i=0;istatis#(.PIX_BW(PIX_BW),.HIST_B
5、W(HIST_BW),.ADDRBW(HIST_1EN_BW),.BINJV(BINJV)u_statis(.c1k(e1k),.rst(rst),.c1r(dr),.enab1e(1b1),.pixva1id(pixva1id),.pix(img_ii*PIX_BW+:PIX_BW),.hist_rd(branch_hist_rd),.histraddr(branch_hist_raddr),HISTBW).hist(branchhisti*HISTBW+:endendgenerate2) serders:这个是并转串。M个StatiS模块会产生M组hist结果,这些结果还要进行求和,那么就
6、要用到加法树,如果M较大,会造成加法树很大,多以这里加了Serc1erS可以调节加法树资源。3) addTree:加法树。modu1eaddTree#(parameterDATA_BW=32,/bitwidthofdataparameterTREEDEPTH=3,/depthoftheaddtreeparameterADDN=4addnumber)(inpute1k,inputrst,inputADD_N*DATA_BW-1:0adnd_x,inputADDN*DATA_BW-I:0adnd_y,inputadnd_va1id,outputregDATA_BW-1:0fin1_sum,outp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 直方图 算法 FPGA 设计 架构