利用Xilinx的cordic ip做開方運算


Xilinx的 CODRIC IP利用的coordic算法,可以求三角函數和開方運算。

  進行開方運算時,需要注意輸入和輸出位數的問題:

1)輸入為整數的情況:(如2321)

  INPUT :  24bit 整數

  OUTPUT :  24bit開方后,整數值占輸入總位數的一半加1    等於 13bit,即[23:11] ; 小數值占 11bit,即 [10:0]。

  如: input  i_value = 97 ;

     output  o_sqrt_bvalue[10:0] 為小數部分,    o_sqrt_bvalue[23:11] 為整數部分。

2)輸入為整數+小數的情況:(如23.75  ----->  10111.11 )

  input :  24bit =  整數位數 +  小數位數

  output : 開方后,整數值占輸入總位數的一半 加1  即 整數位數/2+ 1, 占輸出的高位。小數占剩下的位置。

  如: 輸入位為  23.75  ----->  10111.11   小數為占兩位,  整數位為 (24-2)/2 + 1  = 12 bit

    即 輸出:  o_sqrt_bvalue[11:0] 為小數部分,    o_sqrt_bvalue[23:12] 為整數部分。

      sqrt_int =  o_sqrt_bvalue[23:12]  = b 0100 ;

      sqrt_decmail =   o_sqrt_bvalue[11:0]  = b 110111111001

 

 

 

 

 

 

 

 

 

 

    通過和計算器求得結果比較,誤差在0.0001之內,還是比較准確的。不過crodic算法會延遲10個cycle輸出。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM