H730硬件三角函数,DSP库和C库三角函数性能比较,其中硬件三角函数优势明显(2021-03-13)

测试条件:
1、MDK5.33 AC5 ,开启最高等级三级优化,开启时间优化
2、测试平台自制H730VBT板子。
3、工作主频550MHz。
4、开启硬件双精度。
5、开启硬件三角函数。


测试:
1、H730硬件三角函数。
开启20bit最高测试精度,对应6个时钟周期24次迭代。注意这里的时钟周期是相对Cordic来说的,由于Cordic是在550MHz主频的二分频下工作,所以实际测试应该是12个时钟周期完成一次三角函数计算。

这里计算了10000次sin,DMA方式。

最终需要时钟周期是200506个,也就是20个时钟周期计算一次,即36ns一次计算,这个速度还是相当给力的。

正常情况下的理论值应该是12个时钟周期就计算完毕,额外的8个时钟周期耽误在DMA等传输上了。

 

当然如果采用最大误差精度情况下,可以做到13.5个时钟周期一次,不过实用价值不高。

2、DSP库测试
(1)函数arm_sin_q31

由于是查表法实现,精度有点低,只有10bit左右,所以参考价值不高。

测试100次求平均是27.6个时钟周期一次:

 

(2)函数arm_sin_f32

测试100次求平均是168个时钟周期一次:
 


3、C库测试
(1)双精度测试

使用函数sin

测试100次求平均是240个时钟周期一次:
 

(2)单精度测试

使用函数sinf

测试100次求平均是69.8个时钟周期一次:

 

posted @ 2021-03-25 14:08  硬汉嵌入式  阅读(282)  评论(0编辑  收藏  举报