




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于直方圖算法的FPGA設(shè)計(jì)架構(gòu)引言直方圖統(tǒng)計(jì)在圖像增強(qiáng)和目標(biāo)檢測領(lǐng)域有重要應(yīng)用,比如直方圖均衡,梯度直方圖。直方圖的不同種類和統(tǒng)計(jì)方法請見之前的文章。本章就是用FPGA來進(jìn)行直方圖的計(jì)算,并且利用FPGA的特性對計(jì)算過程進(jìn)行加速。安排如下:首先基于直方圖算法進(jìn)行FPGA架構(gòu)設(shè)計(jì),這里主要考慮了如何加速以及FPGA資源的利用兩個(gè)因素;最后基于systemVerilog搭建一個(gè)驗(yàn)證系統(tǒng)。FPGA設(shè)計(jì)架構(gòu)不論是圖像灰度直方圖還是梯度直方圖,本質(zhì)上是對數(shù)據(jù)的分布進(jìn)行計(jì)數(shù)。從FPGA角度來看,只關(guān)心以下幾點(diǎn):1)根據(jù)數(shù)據(jù)大小確定其分布區(qū)間,統(tǒng)計(jì)分布在不同區(qū)間的數(shù)據(jù)個(gè)數(shù),區(qū)間的大小可以調(diào)節(jié),比如灰度直方圖區(qū)間為1,梯度直方圖通常大于1;2)如何利用FPGA對直方圖統(tǒng)計(jì)進(jìn)行加速,以及如何考慮到芯片有限資源;首先來考慮加速方式,直方圖統(tǒng)計(jì)過程用偽代碼表示為:For(inti=0;iIndex=get_index(data[i]);Hist[index]++;}Get_index函數(shù)是為了確定數(shù)據(jù)屬于哪個(gè)區(qū)間,如果區(qū)間大小為1,那么index就是數(shù)據(jù)自身。如果區(qū)間是平均分布,那么就需要進(jìn)行數(shù)據(jù)的大小比較。如果區(qū)間大小是2的冪次,那么index只需要數(shù)據(jù)進(jìn)行移位得到。FPGA在加速計(jì)算中最主要就是利用并行化和流水線,并行化就是將一個(gè)任務(wù)拆解成多個(gè)子任務(wù),多個(gè)子任務(wù)并行完成。而流水線是在處理一個(gè)子任務(wù)的時(shí)候,下一個(gè)來的子任務(wù)也可以進(jìn)行處理,處理模塊不會(huì)等待。流水線本質(zhì)上是對子任務(wù)也進(jìn)行“分割”,分割的每一塊可以在處理模塊中同時(shí)進(jìn)行。統(tǒng)計(jì)N個(gè)數(shù)據(jù),可以將N分成M份,在FPGA上同時(shí)進(jìn)行M個(gè)統(tǒng)計(jì),用偽代碼表示為:For(intk=0;k//并行化For(inti=0;iIndex=get_index(data[k][i]);Hist[k][index]++;}}如果區(qū)間不是2的冪次,就需要比較器,這樣并行M次,就需要M個(gè)同等比較器,這對資源消耗很大。因此目前設(shè)計(jì)僅僅支持2的冪次的區(qū)間。整個(gè)設(shè)計(jì)架構(gòu)如圖1.2。圖2.1流水線處理圖2.2直方圖統(tǒng)計(jì)架構(gòu)主要分為以下幾個(gè)模塊:1)statis:這個(gè)是核心計(jì)算模塊,統(tǒng)計(jì)數(shù)據(jù)分布。ram中存放直方圖統(tǒng)計(jì)數(shù)據(jù),地址對應(yīng)著數(shù)據(jù)分布區(qū)間。這里有一個(gè)問題需要考慮,在對ram中直方圖統(tǒng)計(jì)數(shù)據(jù)計(jì)數(shù)時(shí),需要讀出然后計(jì)數(shù)。如果ram讀端口沒有寄存器,那么讀出來直接加1,再寫入。但是這樣并不好,因?yàn)閞am不經(jīng)過寄存器時(shí)序不好。所以增加了一級(jí)寄存器,這樣就造成了寫入的延時(shí),那么有可能下一次數(shù)據(jù)來臨也會(huì)讀取同樣地址的數(shù)據(jù),此時(shí)讀取到的直方圖數(shù)據(jù)就是還沒有寫入的。為了解決這個(gè)問題,判斷進(jìn)入的前后兩個(gè)數(shù)據(jù)是否相同,如果相同就不寫入而繼續(xù)計(jì)數(shù),如果不同就寫入。并行多個(gè)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:這個(gè)是并轉(zhuǎn)串。M個(gè)statis模塊會(huì)產(chǎn)生M組hist結(jié)果,這些結(jié)果還要進(jìn)行求和,那么就要用到加法樹,如果M較大,會(huì)造成加法樹很大,多以這里加了serders可以調(diào)節(jié)加法樹資源。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個(gè)hist數(shù)據(jù)的求和,那么就需要通過累加器來完成。圖2.3對ram的處理驗(yàn)證結(jié)構(gòu)1)img_trans:這個(gè)是隨機(jī)化圖像數(shù)據(jù)定義,主要通過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:產(chǎn)生image并且發(fā)送給DUT,同時(shí)通過mailbox發(fā)送給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:自己統(tǒng)計(jì)直方圖和DUT的結(jié)果進(jìn)行比對;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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安科技大學(xué)高新學(xué)院《臨床生物化學(xué)及檢驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年昌吉回族自治州吉木薩爾縣六年級(jí)數(shù)學(xué)小升初摸底考試含解析
- 北京中醫(yī)藥大學(xué)《學(xué)科課程與教學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春大學(xué)旅游學(xué)院《微電子封裝技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遵義醫(yī)科大學(xué)《中華傳統(tǒng)文化集萃》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶城市科技學(xué)院《電化學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年青海省海南藏族自治州興??h數(shù)學(xué)四下期末調(diào)研試題含解析
- 寧波大學(xué)《多元統(tǒng)計(jì)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林職業(yè)技術(shù)學(xué)院《經(jīng)濟(jì)法學(xué)(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 寵物醫(yī)療講座
- 2023年高三新高考英語復(fù)習(xí)備考策略及方法指導(dǎo)(深度課件)
- 數(shù)字信號(hào)處理(課件)
- 社會(huì)主義核心價(jià)值觀-團(tuán)課課件
- 城市社會(huì)學(xué)(2015)課件
- 年產(chǎn)2萬噸馬來酸二乙酯技改建設(shè)項(xiàng)目環(huán)評(píng)報(bào)告書
- 中國古代文論教程完整版課件
- 中班美工區(qū)角活動(dòng)教案10篇
- SJG 103-2021 無障礙設(shè)計(jì)標(biāo)準(zhǔn)-高清現(xiàn)行
- 皇冠假日酒店智能化系統(tǒng)安裝工程施工合同范本
- 路面工程重點(diǎn)、關(guān)鍵、和難點(diǎn)工程的施工方案(技術(shù)標(biāo))
- 合肥市城市大腦·數(shù)字底座白皮書2020
評(píng)論
0/150
提交評(píng)論