將圖像處理的算法轉換為FPGA系統設計的過程稱為算法映射,CPU并行算法的實現與FPGA并行算法的實現是有一定區別的。1.算法系統結構
圖像處理算法主要有兩種設計結構:流水線結構和并行陣列結構。
1.1 流水線結構
在我看來,流水線結構和我們之前所理解的CPU的串行結構還是有一定區別的。相反,它與處理器的流水線結構很相似,都是依照時鐘來進行流水層級的同步。
1.2并行陣列結構 |--Data1--->Data1-->Data1
|
InputData------Data2--->Data2-->Data2
|
|--Data3--->Data3-->Data32.算法轉換2.1 定常數轉換
對于FPGA而言,做加法與移位較為簡單,而涉及到乘法與除法時需要調用到乘法器或除法器,這在FPGA中是較為寶貴的資源,所以作為定常數,我們盡量轉換為移位和加法運算,如:
ex1:
dout = din * 255
轉換后
dout = ( din << 8 ) - din
ex2:
dout = din * 11
轉換后:
dout = din * 2^2 + din * 2^3 - din * 2^0
= din * (2^2 + 2^3 - 2^0)
上式中的255 和 11就是定常數
2.2 不等式等效轉換
進行轉換的目的也是為了在FPGA實現后能夠更加節省資源。如:
ex1:
√a ̄ < b, a > 0
轉換后:
b^2 > a
ex2:
a/b > c/b (b > 0, d > 0)
轉換后
a * d > b * c2.3 取近似值
最簡單的近似值莫過于四舍五入,假如某數據D[-1~4]為整數部分,D[3~0]為小數部分,那么四舍五入可為:
assign dout = din[3]?(dout[-1~4] + 1) : (dout[-1~4])
泰勒公式定義
那么就可以有如下近似轉換:
1/3 = 1/4 * (1 + 1/4 + 1/16 + 1/64 + 1/256) 3.構造查找表
查找表是使用簡單的查詢操作代替運行時的實時計算,使用查找表代替那些運行時經常需要用到的運算能夠極大的減少時間復雜度,如我們經常用到的三角函數就應該使用查找表替換實時計算。
有你想看的精彩 至芯科技FPGA就業培訓班——助你步入成功之路、9月23號北京中心開課、歡迎咨詢! 為什么要使用格雷碼? 簡述基于EDA技術的FPGA設計
掃碼加微信邀請您加入FPGA學習交流群
歡迎加入至芯科技FPGA微信學習交流群,這里有一群優秀的FPGA工程師、學生、老師、這里FPGA技術交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個在看你最好看
原文標題:FPGA算法映射要點
文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602040
原文標題:FPGA算法映射要點
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論