购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.4 CORDIC算法的性能分析

理想的CORDIC架构取决于具体应用中速率与面积的权衡。可以将CORDIC算法等式直接翻译成迭代型的位并行设计,然而位并行变量移位器并不能很好地映射到FPGA中。由于需要若干个FPGA单元,因此导致设计规模变大,从而使设计时间变长。

5.4.1 迭代次数对精度的影响

为了达到所需要的精度,需要解决两个问题,即迭代次数和数据宽度。Yu Hen Hu设计了一种算法,该算法可以解决CORDIC迭代中基于总量化误差(Output Quantization Error,OQE)的问题。一旦确定了OQE,即可计算有效小数位的数目。

为了说明增加迭代次数n对硬件成本的影响,下面给出两种情况,即数据通路b为6个小数位和14个小数位。假设一个切片中包含两个LUT,如表5.8所示。

表5.8 不同迭代次数和数据宽度对硬件资源成本的影响

5.4.2 总量化误差的确定

Yu Hen Hu提出OQE由两种误差组成:

(1)近似误差。CORDIC旋转角度存在有限个基本角度量化所带来的量化误差。

(2)舍入误差。取决于实际实现中使用的有限精确度的代数运算。

可根据下面的参数定义上述两种误差:①迭代次数n;②数据路径中小数位的位数b;③最大向量的模值 ( )。

由于总是执行全套的伪旋转,所以基于最坏情况的误差用于保证某个水平的数值精度。为了说明这一点,当尝试找到3个随机向量幅度时,考虑在每个迭代后(标定后)的误差,如表5.9、表5.10和表5.11所示。在每种情况下,数据宽度为19个小数位。

:这个误差是CORDIC输出与浮点参考幅度进行比较的。

表5.9 不同迭代次数时,所得到的幅度和误差(1)

表5.10 不同迭代次数时,所得到的幅度和误差(2)

表5.11 不同迭代次数时,所得到的幅度和误差(3)

使用向量模式时,目标就是通过迭代使向量趋近x轴。有限次的旋转通常导致剩余一个小角度δ,从而引起近似误差,如图5.17所示。

只执行一次迭代的例子,如图5.18所示。开始时,模为1的向量,其初始角度为60°。第一次迭代将向量旋转45°,从而导致了δ=15°的角度量化误差。对于一次迭代,其伸缩因子K为

图5.17 近似误差

图5.18 一次迭代的误差

因此,旋转向量的幅度现在是 。等式给出x的值为 。用这个值除以伸缩因子K(1),得到了真正的量化幅度为cos15°。

图5.18中对应的x的输出表示为

5.4.3 近似误差的分析

为了计算近似误差的上界,必须找出δ的上界。Yu Hen Hu提出δ的上界为

其中,a(n-1)为最终的旋转角度。

从图5.19可知,近似误差可以表示为

图5.19 近似误差的表示

5.4.4 舍入误差的分析

Yu Hen Hu 推导出的舍入误差可以表示为

式(5.27)中,b为数据路径中的小数位个数;n为迭代次数。

5.4.5 有效位d eff 的估算

为了计算有效位d eff ,必须首先计算OQE。前面已经提到了OQE的计算方法:

因此有效位d eff 表示:

这种方法求得的d eff 依赖于所选择的b和n。然而,希望先指定d eff ,然后求出b和n。因此,Yu Hen Hu采用的方法是通过取不同组的b和n,将计算出的d eff 值编制成表,通过查表找到所需的d eff ,其对应的b和n即为可知。

一小部分OQE与d eff 之间的关系如表5.12所示。

表5.12 一小部分OQE与d eff 之间的联系

并不是所有计算器都允许计算以2为底的对数运算。因此,可使用下面的运算来代替:

5.4.6 预测与仿真

使用OQE方程可以计算出一个表,从而对一组n和b可以预测出d eff 。假如输入被限制在±0.5的范围内,那么 。使用 的值,3≤n≤9和8≤b≤10,仿真值如表5.13所示。

表5.13|v(0)|=0.5,且3≤n≤9和8≤b≤10时的仿真值

续表

给定一个d eff ,通过d eff 表就可以找出n和b。例如,希望计算包含6个小数位精度的向量幅度。通过查表5.13,能够提供该精确度的最有效的结构是n=4、b=8。当使用这组值设计CORDIC系统时,相对于浮点设计,最坏情况下所产生的误差小于2 -6 HUn1McOsc/8rYlq7VlconKP/3rNFKMP3Nx+TdeztwR8WX0F8MGxD9Bys2yr4cb7M

点击中间区域
呼出菜单
上一章
目录
下一章
×