第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更為快速地完成算法建模和驗證。

視頻內容