CORDIC平方根

CORDIC平方根


作為純數字電路的FPGA,實現平方根是比較麻煩的。畢竟硬件不支持這種算法。

好在廠家的IP核中有相關的平方根IP庫,所以用起來也很方便。

CORDIC平方根

上圖是在QUARTUS下調用庫中的IP核,綜合適配後的資源使用情況,邏輯單元使用的1369個,佔總資源的22%,片上硬件乘法器使用了16個。可以說是在資源有限的情況下,使用資源量還是很大的。

CORDIC平方根

前幾篇文章中,我們介紹了使用CORDIC算法計算三角函數sin和cos的值。計算三角函數sin和cos的值是利用CORDIC算法的旋轉模式來進行的。而在向量模式下,可以使用CORDIC算法計算平方根。

CORDIC平方根

如圖,使用CORDIC算法計算平方根,FPGA資源的使用情況。邏輯單元使用了10%,乘法器使用的6個,片上ram只是用的不到1%。可以說在資源有限的情況下,是非常好的選擇 。但是要注意,算法本身可使用流水線操作,也可使用其他方式操作,計算週期要根據迭代的次數決定,迭代次數越大,計算越精確,同樣,計算的週期也越長。

CORDIC平方根

上圖是迭代16次後的結果,可以清楚地看到,輸入xi,yi,輸出sqrt_out,結果非常精確。在時序不是很緊的情況下,可以使用這種方法。

具體詳細的算法,可根據之前介紹的CORDIC算法自行推理。

CORDIC平方根

原文地址:卿萃科技FPGA極客空間 微信公眾號


分享到:


相關文章: