利用矢量旋轉求解平方根的算法及其FPGA實(shí)現*
——
先考察在[0,1]之間的任意實(shí)數。假設待開(kāi)方數為s,且s∈[0,1]。有:
本文引用地址:http://dyxdggzs.com/article/96987.htm
參數討論
為了將該算法在FPGA上實(shí)現,需要選擇合適的參數以降低實(shí)現的復雜度。在FPGA上實(shí)現加減法比較簡(jiǎn)單,而要實(shí)現乘法會(huì )比較復雜,在公式(3)中就涉及到乘法運算,要是能通過(guò)移位實(shí)現乘法將大大提高運算速度。因此Dq要盡量小,以獲得更高的近似度,而且這樣公式(3)中的cos(Dq)≈1,由此可簡(jiǎn)化計算;另外yi-1tan(Dq),xi-1tan(Dq)要能通過(guò)數據移位實(shí)現。因此選擇合適的Dq,使得,這樣公式(3)中的迭代運算就可用右移k位實(shí)現,公式(3)可以簡(jiǎn)化為:
但如果Dq太小,會(huì )使迭代次數增多,因此選取合適的Dq是必要的。
任意數的開(kāi)平方算法
直接利用VR算法只能計算[0,1]內的平方根值,有一定的局限性。因此,設待開(kāi)方數T為任意正數,當T>1時(shí),可通過(guò)對其預處理后映射到[0,1]區間內再進(jìn)行開(kāi)平方運算。步驟如下:
評論