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