第24讲 案例分析:采用HLS实现CORDIC算法

  • 2019 年 10 月 31 日
  • 筆記

CORDIC (Coordinate Rotation Digital Computer)是坐标旋转数字计算机算法的简称,由Vloder于1959年在设计美国航空导航控制系统的过程中首先提出,主要用于解决导航系统中三角函数、反三角函数和开方等运算的实时计算问题。1971年,Walther将圆周系统、线性系统和双曲系统统一到一个CORDIC迭代方程里,从而提出了一种统一的CORDIC算法形式。

CORDIC算法应用广泛。例如,离散傅立叶变换、离散余弦变换、离散Hartley变换、Chirp-Z变换、各种滤波以及矩阵的奇异值分解中都可应用CORDIC算法。从广义上讲,CORDIC算法提供了一种数学计算的逼近方法。由于它最终可分解为一系列的加减和移位操作,故非常适合硬件实现。例如,在工程领域可采用CORDIC算法实现直接数字频率合成器。

采用C++描述CORDIC算法简单易行。用到了for循环,用到了移位、加减操作。从HLS的角度看,是一个经典的快速理解for循环优化策略的案例。同时,体会HLS较之RTL更为快速地完成算法建模和验证。

视频内容