将图像处理的算法转换为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设计论坛】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !