实现FPGA三角函数定点逼近的方法研究

需积分: 25 0 下载量 14 浏览量 更新于2024-12-03 收藏 2.25MB ZIP 举报
资源摘要信息:"本实验研究了三角函数的定点逼近方法,针对的是无法集成浮点单元的嵌入式硬件系统,如微控制器和FPGA。在硬件资源受限的情况下,需要进行复杂三角运算时,定点正弦和余弦近似器的实现显得尤为重要。实验中探讨了两种常用的三角函数计算方法:泰勒级数和CORDIC算法,并最终选择了泰勒级数法,因为CORDIC算法需要较大的常数查找表,会占用较多内存资源。本实验实现了正弦和余弦函数的定点逼近,主要针对Altera FPGA进行设计,输入输出的位宽设计考虑到了Altera硬件乘法器的特性。输入为20位无符号定点整数,经过升阶处理后输出为18位二进制补码定点整数。实验将输入值归一化在[0,1)范围内,输出值归一化在[-1,+1)范围内,以满足特定的数学要求和硬件设计的需求。" 知识点说明: 1. 嵌入式硬件与三角函数计算的限制: 嵌入式硬件系统,如微控制器和FPGA,通常由于其设计的简单性,可能不包含浮点运算单元。这种限制使得在这些平台上直接实现浮点运算成为一项挑战。 2. 定点正弦和余弦近似器的重要性: 在不能使用浮点运算的情况下,必须采用其他方法来近似计算三角函数的值。定点数表示法因其实现的简便性和硬件友好性成为替代方案之一。 3. 泰勒级数和CORDIC算法: 泰勒级数是一种通过函数的无穷级数展开来逼近函数值的方法。它在计算正弦和余弦函数时,通过多项式近似,可以简单地用加、减、乘操作实现。CORDIC算法( Coordinate Rotation Digital Computer)通过一系列的位移和加减操作来逼近三角函数值。尽管CORDIC算法在某些场合下可以提供很好的精确度,但它需要预计算并存储一系列的常数,这在资源受限的硬件平台上可能不太实际。 4. Altera FPGA与位宽设计: 实验针对Altera FPGA进行了设计,位宽设计是根据Altera硬件乘法器的特性来选择的。硬件乘法器具有18位宽的输入和36位宽的输出,这影响了实现中定点数的位宽选择,包括输入的20位无符号定点整数和输出的18位二进制补码定点整数。 5. 正弦和余弦函数的归一化: 实验中输入和输出值的归一化处理是为了使函数的实现更加简单和高效。输入值的归一化范围为[0,1),是为了将任意角度的输入映射到一个有限的定点数范围;输出值的归一化范围为[-1,+1),是基于三角函数值在该范围内变化的特点。 6. 二进制补码表示法: 输出值采用二进制补码定点整数来表示,这种表示法可以方便地实现数的加减运算,并且在硬件上易于实现。 总结以上知识点,可以看出在设计面向FPGA的三角函数定点逼近器时,设计者需要综合考虑硬件的特性、算法的效率、内存占用以及数值的准确度。泰勒级数作为本实验中的选择算法,因其简洁性和较低的内存需求,成为一种有效的替代方案。通过适当调整位宽和进行数值的归一化处理,可以进一步优化性能,以适应特定的硬件设计和应用需求。