一种基于FPGA硬件求解函数的简化方法
需积分: 0 80 浏览量
更新于2020-07-30
收藏 167KB PDF 举报
本文研究了一种运用FPGA进行数据处理的方法,包括:提取输入数据的高log2M个比特位的数据,作为高有效位,根据预先设置的目标函数的计算表格,查找所述高有效位对应的目标函数值y(n)以及高有效位+1对应的目标函数值y(n+1);提取输入数据的剩余比特位数据,作为低有效位,并将所述低有效位与y(n)和y(n+1)的差值相乘,得到偏移值off(n),将该偏移值与所述高有效位对应的目标函数值y(n)相加,将计算结果作为所述输入数据对应的目标函数值。本方法具有控制简单、结构规则、单运算周期、计算精度较高的特点,适合于FPGA的数据处理实现。
《基于FPGA硬件求解函数的简化方法》
在当今的数字信号处理领域,FPGA(现场可编程门阵列)因其高度的灵活性和并行处理能力,被广泛应用。然而,面对复杂的数学函数,如三角函数、开方、对数等,直接在FPGA上实现这些函数的计算是个挑战。传统的实现方法,如直接查表法、幂级数展开法以及CORDIC算法,各有其优缺点。本文提出了一种新的简化方法,旨在提高计算效率和精度,同时降低资源消耗。
直接查表法是实现函数计算的一种常见方式,它依赖于存储大量预计算的结果。然而,随着输入和输出位宽的增加,这种方法需要的存储资源呈指数增长,这对于资源有限的FPGA来说是不可持续的。例如,16位输入16位输出的开方计算,若保证精度,需要的存储空间将占据大部分FPGA的BRAM资源。
幂级数展开法则通过多次乘法和加法来逼近函数值,可以控制计算精度,但需要更多的乘法器和加法器资源,而且对于某些复杂的函数,这种方法并不适用。以指数函数exp为例,16位输入的幂级数展开法不仅需要多个乘法器,而且在精度上也有一定限制。
CORDIC算法则通过迭代的移位和加法操作实现,适用于向量旋转和开方等特定功能,但在单周期内实现资源消耗较大,且计算范围有限。
针对上述问题,本文提出的FPGA函数计算简化方法分为两步:利用输入数据的高有效位确定计算结果的大致范围;然后,通过输入数据的低有效位进行误差校正。这种方法巧妙地结合了数据范围预估和精细校正,既能保证计算精度,又能有效地利用FPGA的逻辑资源和乘加器。这种方法的控制流程简洁,结构规则,能够在单个运算周期内完成计算,特别适合FPGA的并行处理特性。
总结起来,该研究提供了一种新颖的FPGA函数计算策略,克服了传统方法的局限性,提高了计算效率和精度,降低了资源消耗。这一方法的提出,对于推动FPGA在数字信号处理、嵌入式系统以及其他领域中的应用具有重要的理论和实践意义。未来的研究可以进一步优化这种方法,以适应更多种类和更复杂程度的数学函数计算,推动FPGA技术的发展。
weixin_38623272
- 粉丝: 5
- 资源: 853