基于直方图算法的FPGA设计架构.doc
《基于直方图算法的FPGA设计架构.doc》由会员分享,可在线阅读,更多相关《基于直方图算法的FPGA设计架构.doc(7页珍藏版)》请在三一文库上搜索。
1、基于直方图算法的FPGA设计架构引言直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图。直方图的不同种类和统计方法请见之前的文章。本章就是用FPGA来进行直方图的计算,并且利用FPGA的特性对计算过程进行加速。安排如下:首先基于直方图算法进行FPGA架构设计,这里主要考虑了如何加速以及FPGA资源的利用两个因素;最后基于system Verilog搭建一个验证系统。FPGA设计架构不论是图像灰度直方图还是梯度直方图,本质上是对数据的分布进行计数。从FPGA角度来看,只关心以下几点:1) 根据数据大小确定其分布区间,统计分布在不同区间的数据个数,区间的大小可以调节,比如灰度
2、直方图区间为1,梯度直方图通常大于1;2) 如何利用FPGA对直方图统计进行加速,以及如何考虑到芯片有限资源;首先来考虑加速方式,直方图统计过程用伪代码表示为:For(int i=0;i Index = get_index(datai);Histindex+;Get_index函数是为了确定数据属于哪个区间,如果区间大小为1,那么index就是数据自身。如果区间是平均分布,那么就需要进行数据的大小比较。如果区间大小是2的幂次,那么index只需要数据进行移位得到。FPGA在加速计算中最主要就是利用并行化和流水线,并行化就是将一个任务拆解成多个子任务,多个子任务并行完成。而流水线是在处理一个子任
3、务的时候,下一个来的子任务也可以进行处理,处理模块不会等待。流水线本质上是对子任务也进行“分割”,分割的每一块可以在处理模块中同时进行。统计N个数据,可以将N分成M份,在FPGA上同时进行M个统计,用伪代码表示为:For(int k=0;k /并行化For(int i=0;i Index = get_index(dataki);Histkindex+;如果区间不是2的幂次,就需要比较器,这样并行M次,就需要M个同等比较器,这对资源消耗很大。因此目前设计仅仅支持2的幂次的区间。整个设计架构如图1.2。图2.1 流水线处理图2.2 直方图统计架构主要分为以下几个模块:1)statis:这个是核心计
4、算模块,统计数据分布。ram中存放直方图统计数据,地址对应着数据分布区间。这里有一个问题需要考虑,在对ram中直方图统计数据计数时,需要读出然后计数。如果ram读端口没有寄存器,那么读出来直接加1,再写入。但是这样并不好,因为ram不经过寄存器时序不好。所以增加了一级寄存器,这样就造成了写入的延时,那么有可能下一次数据来临也会读取同样地址的数据,此时读取到的直方图数据就是还没有写入的。为了解决这个问题,判断进入的前后两个数据是否相同,如果相同就不写入而继续计数,如果不同就写入。并行多个staTIs模块的代码为:genvar i;generatefor(i=0;istaTIs #(.PIX_BW
5、(PIX_BW),.HIST_BW(HIST_BW),.ADDR_BW(HIST_LEN_BW),.BIN_W(BIN_W)u_staTIs(.clk(clk),.rst(rst),.clr(clr),.enable(1b1),.pix_valid(pix_valid),.pix(img_ii*PIX_BW +: PIX_BW),.hist_rd(branch_hist_rd),.hist_raddr(branch_hist_raddr),.hist(branch_histi*HIST_BW +: HIST_BW);endendgenerate2)serders:这个是并转串。M个staTIs
6、模块会产生M组hist结果,这些结果还要进行求和,那么就要用到加法树,如果M较大,会造成加法树很大,多以这里加了serders可以调节加法树资源。3) addTree:加法树。module addTree #(parameter DATA_BW = 32,/bit width of dataparameter TREE_DEPTH = 3,/depth of the add treeparameter ADD_N = 4/add number)(input clk,input rst,input ADD_N*DATA_BW-1:0 adnd_x,input ADD_N*DATA_BW-1:0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 直方图 算法 FPGA 设计 架构
链接地址:https://www.31doc.com/p-3418008.html