基于直方图算法的FPGA设计架构_第1页
基于直方图算法的FPGA设计架构_第2页
基于直方图算法的FPGA设计架构_第3页
基于直方图算法的FPGA设计架构_第4页
基于直方图算法的FPGA设计架构_第5页
已阅读5页,还剩6页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于直方图算法的FPGA设计架构引言直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图。直方图的不同种类和统计方法请见之前的文章。本章就是用FPGA来进行直方图的计算,并且利用FPGA的特性对计算过程进行加速。安排如下:首先基于直方图算法进行FPGA架构设计,这里主要考虑了如何加速以及FPGA资源的利用两个因素;最后基于systemVerilog搭建一个验证系统。FPGA设计架构不论是图像灰度直方图还是梯度直方图,本质上是对数据的分布进行计数。从FPGA角度来看,只关心以下几点:1)根据数据大小确定其分布区间,统计分布在不同区间的数据个数,区间的大小可以调节,比如灰度直方图区间为1,梯度直方图通常大于1;2)如何利用FPGA对直方图统计进行加速,以及如何考虑到芯片有限资源;首先来考虑加速方式,直方图统计过程用伪代码表示为:For(inti=0;iIndex=get_index(data[i]);Hist[index]++;}Get_index函数是为了确定数据属于哪个区间,如果区间大小为1,那么index就是数据自身。如果区间是平均分布,那么就需要进行数据的大小比较。如果区间大小是2的幂次,那么index只需要数据进行移位得到。FPGA在加速计算中最主要就是利用并行化和流水线,并行化就是将一个任务拆解成多个子任务,多个子任务并行完成。而流水线是在处理一个子任务的时候,下一个来的子任务也可以进行处理,处理模块不会等待。流水线本质上是对子任务也进行“分割”,分割的每一块可以在处理模块中同时进行。统计N个数据,可以将N分成M份,在FPGA上同时进行M个统计,用伪代码表示为:For(intk=0;k//并行化For(inti=0;iIndex=get_index(data[k][i]);Hist[k][index]++;}}如果区间不是2的幂次,就需要比较器,这样并行M次,就需要M个同等比较器,这对资源消耗很大。因此目前设计仅仅支持2的幂次的区间。整个设计架构如图1.2。图2.1流水线处理图2.2直方图统计架构主要分为以下几个模块:1)statis:这个是核心计算模块,统计数据分布。ram中存放直方图统计数据,地址对应着数据分布区间。这里有一个问题需要考虑,在对ram中直方图统计数据计数时,需要读出然后计数。如果ram读端口没有寄存器,那么读出来直接加1,再写入。但是这样并不好,因为ram不经过寄存器时序不好。所以增加了一级寄存器,这样就造成了写入的延时,那么有可能下一次数据来临也会读取同样地址的数据,此时读取到的直方图数据就是还没有写入的。为了解决这个问题,判断进入的前后两个数据是否相同,如果相同就不写入而继续计数,如果不同就写入。并行多个statis模块的代码为:genvari;generatefor(i=0;istatis#(.PIX_BW(PIX_BW),.HIST_BW(HIST_BW),.ADDR_BW(HIST_LEN_BW),.BIN_W(BIN_W))u_statis(.clk(clk),.rst(rst),.clr(clr),.enable(1‘b1),.pix_valid(pix_valid),.pix(img_i[i*PIX_BW+:PIX_BW]),.hist_rd(branch_hist_rd),.hist_raddr(branch_hist_raddr),.hist(branch_hist[i*HIST_BW+:HIST_BW]));endendgenerate2)serders:这个是并转串。M个statis模块会产生M组hist结果,这些结果还要进行求和,那么就要用到加法树,如果M较大,会造成加法树很大,多以这里加了serders可以调节加法树资源。3)addTree:加法树。moduleaddTree#(parameterDATA_BW=32,//bitwidthofdataparameterTREE_DEPTH=3,//depthoftheaddtreeparameterADD_N=4//addnumber)(inputclk,inputrst,input[ADD_N*DATA_BW-1:0]adnd_x,input[ADD_N*DATA_BW-1:0]adnd_y,inputadnd_valid,outputreg[DATA_BW-1:0]finl_sum,outputregfinl_sum_valid);reg[TREE_DEPTH-1:0]midl_valid;genvardept_i,leaf_i;generatefor(dept_i=TREE_DEPTH-1;dept_i》=0;dept_i=dept_i-1)begin:ADD_DPETlocalparamLEAF_N=2**dept_i;wire[DATA_BW-1:0]midl_sum[LEAF_N-1:0];for(leaf_i=0;leaf_ireg[DATA_BW-1:0]midl_add_x;reg[DATA_BW-1:0]midl_add_y;if(dept_i==TREE_DEPTH-1)beginalways@(posedgeclk)beginmidl_add_xmidl_add_yendendelsebeginalways@(posedgeclk)beginmidl_add_xmidl_add_yendendadder#(.DATA_BW(DATA_BW))u_adder(.adnd_x(midl_add_x),.adnd_y(midl_add_y),.sum(midl_sum[leaf_i]));endif(dept_i==TREE_DEPTH-1)always@(posedgeclk)beginmidl_valid[dept_i]endelsealways@(posedgeclk)beginmidl_valid[dept_i]endendendgeneratealways@(posedgeclk)beginfinl_sumendalways@(posedgeclk)beginif(rst)finl_sum_validelsefinl_sum_validendendmodule4)accum:累加器。如果加法树没有完成M个hist数据的求和,那么就需要通过累加器来完成。图2.3对ram的处理验证结构1)img_trans:这个是随机化图像数据定义,主要通过SV中constraint来对图像大小做一些约束;classimg_trans;randintimg_w;randintimg_h;randintimg_blank;randlogic[`PIX_BW-1:0]img[`MAX_IMG_W*`MAX_IMG_H];constraintimg_cfg_cnst{img_wimg_w》0;img_w%`PARALL==0;img_himg_h》0;img_blankimg_blank》=0;}externfunctionvoidwrite(inputstringf_name);endclass2)driver:产生image并且发送给DUT,同时通过mailbox发送给ref_model用于对比;classimg_obj;logic[`PIX_BW-1:0]img_que[$];endclassclassdriver;intimg_w;intimg_h;intimg_blank;logic[`PARALL*`PIX_BW-1:0]img;logic[`PIX_BW-1:0]img_ele;img_objimgObj;img_transimgTrans;externtaskdrive(mailboximg_mbx,virtualimg_inf.testimgInf);endclass3)ref_model:自己统计直方图和DUT的结果进行比对;classref_modl;logic[`PIX_BW-1:0]img;intaddr;img_objimgObj;inthist[`HIST_LEN];externtaskcalc(inputlogicclk,mailboximg_mbx);externtaskcomp(virtualimg_inf.test

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论