我知道,我對與電子有關的所有事情都很著迷,但不論從哪個角度看,今天的現場可編程門陣列(FPGA),都顯得“鶴立雞群”,真是非常棒的器件。如果在這個智能時代,在這個領域,想擁有一技之長的你還沒有關注FPGA,那么世界將拋棄你,時代將拋棄你。
作為純數字電路的FPGA,實現平方根是比較麻煩的。畢竟硬件不支持這種算法。
好在廠家的IP核中有相關的平方根IP庫,所以用起來也很方便。
上圖是在QUARTUS下調用庫中的IP核,綜合適配后的資源使用情況,邏輯單元使用的1369個,占總資源的22%,片上硬件乘法器使用了16個??梢哉f是在資源有限的情況下,使用資源量還是很大的。
前幾篇文章中,我們介紹了使用CORDIC算法計算三角函數sin和cos的值。計算三角函數sin和cos的值是利用CORDIC算法的旋轉模式來進行的。而在向量模式下,可以使用CORDIC算法計算平方根。
如圖,使用CORDIC算法計算平方根,FPGA資源的使用情況。邏輯單元使用了10%,乘法器使用的6個,片上ram只是用的不到1%??梢哉f在資源有限的情況下,是非常好的選擇 。但是要注意,算法本身可使用流水線操作,也可使用其他方式操作,計算周期要根據迭代的次數決定,迭代次數越大,計算越精確,同樣,計算的周期也越長。
上圖是迭代16次后的結果,可以清楚地看到,輸入xi,yi,輸出sqrt_out,結果非常精確。在時序不是很緊的情況下,可以使用這種方法。
具體詳細的算法,可根據之前介紹的CORDIC算法自行推理。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605998 -
數字電路
+關注
關注
193文章
1629瀏覽量
80822 -
乘法器
+關注
關注
8文章
206瀏覽量
37193
原文標題:FPGA中的平方根
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論