如何用
FPGA
实现算法的硬件加速
当设计者试图从算法中获得最佳性能但软件方法已无计可施时,
可以尝试通
过硬件
/
软件重新划分来进行加速。
FPGA
易于实现软件模块和硬件模块的相互交
换,
且不必改变处理器或进行板级变动。
本文阐述如何用
FPGA
来实现算法的硬
件加速。
如果想从代码中获得最佳性能,
方法包括优化算法、
使用查找表而不是算法、
将一切都转换为本地字长尺寸、
使用注册变量、
解开循环甚至可能采用汇编代码。
如果所有这些都不奏效,可以转向更快的处理器、采用一个不同的处理器架构,
或将代码一分为二通过两个处理器并行处理。
不过,
如果有一种方法可将那些对
时间有严格要求的代码段转换为能够以
5-100
倍速度运行的函数调用,
而且如果
这一方法是一种可供软件开发之用的标准工具,
这可信吗?现在,
利用可编程逻
辑作为硬件加速的基础可使这一切都变成现实。
低成本可编程逻辑在嵌入式系统中应用得越来越普遍,
这为系统设计者提供
了一个无需对处理器或架构进行大的改动即可获得更高性能的可选方案。
可编程
逻辑可将计算密集型功能转换为硬件加速功能。
从软件的角度看,
这只是简单地
将一个函数调用做进