基于直方图算法的FPGA设计架构.docx

上传人:lao****ou 文档编号:841788 上传时间:2024-06-17 格式:DOCX 页数:11 大小:120.82KB
下载 相关 举报
基于直方图算法的FPGA设计架构.docx_第1页
第1页 / 共11页
基于直方图算法的FPGA设计架构.docx_第2页
第2页 / 共11页
基于直方图算法的FPGA设计架构.docx_第3页
第3页 / 共11页
基于直方图算法的FPGA设计架构.docx_第4页
第4页 / 共11页
基于直方图算法的FPGA设计架构.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于直方图算法的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

7、utregfin1_sum_va1id);reg1TREE_DEPTH-1:Omid1_va1id;genvardept_i,1eaf_i;generatefor(dept_i=TREE_DEPTH-1;dept_i=0;dept_i=dept_i-1)begin:ADDDPETIoca1param1EAF_N=2*dept_i;wireDATA_BW-1:Omid1_sum1EAF_N-1:O;for(1eaf_i=O;1eaf_iregDATA_BW-1:0mid1_add_x;regDATA_BW-1:Omid1_add_y;if(dept_i=TREE_DEPTH-1)begina1w

8、ays(posedgee1k)beginmid1_add_xmid1_add_yendende1sebegina1ways(posedgee1k)beginmid1_add_xmid1_add_yendendadder#(.DATA_BW(DATA_BW)u_adder(.adnd_x(mid1_add_x),.adnd_y(mid1_add_y),.sum(mid1_sum1eaf_i);endif(dept_i=TREE_DEPTH-1)a1ways(posedgee1k)beginmid1_va1iddept_iende1sea1ways(posedgee1k)beginmid1_va1

9、iddept_iendendendgeneratea1ways(posedgee1k)beginfin1_sumenda1ways(posedgee1k)beginif(rst)fin1_sum_va1ide1sefin1_sum_va1idendendmodu1e4) accum:累加器。如果加法树没有完成M个hist数据的求和,那么就需要通过累加器来完成。验证结构1) img_trans:这个是随机化图像数据定义,主要通过SV中COnStraint来对图像大了做一些约束;c1assimg_trans;randintimg_w;randintimgh;randintimg_b1ank;ran

10、dIogiCPIX_BW-1:0imgMAX_IMG_W*MAX_IMG_H;constraintimg_cfg_cnstimg_wimg_w0;img_w%PRA11=0;img_himg_hO;img_b1ankimg_b1ank=O;externfunctionvoidwrite(inputstringfname);endc1ass2) driver:产生image并且发送给DUT,同时通过mai1box发送给ref_mode1用于对比;c1assimgobj;1ogicPIX_BW-1:Oimg_que$;endc1assc1assdriver;intimgw;intimg_h;int

11、img_b1ank;1ogic:PARA11*PIX_BW-1:0img;1ogicPIX_BW-1:Oimg_e1e;img_objimgbj;img_transimgTrans;externtaskdrive(mai1boximgmbx,virtua1imginf.testimg1nf);endc1ass3) ref_mode1:自己统计直方图和DUT的结果进行比对;c1assref_mod1;1ogic:PIX_BW-1:Oimg;intaddr;img_objimgbj;inthistHIST,1EN;externtaskca1c(input1ogice1k,mai1boximgmbx

12、);externtaskcomp(virtua1imginf.testimg1nf);externtaskrun(input1ogice1k,mai1boximg_mbx,virtua1img_inf,testimg1nf);externfunctionvoidc1ear();enc1c1assenvMai1box(img_trans)DUT图3.1验证架构图最后添加一下mode1篁m饯真波形文件和结果,纯粹为了增加篇幅。VSIM3run#c1earthehistdata* img_transgenerated:img_w=260,img_h,img_b1ank=41ihavesentoneimage!iiputimgbjinmai1box* getoneimgdatafrommai1box!* img_transgenerated:img_w=332,img_h* histconnatepassed!图3.2mode1sim仿真波形和结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服