Chip123 科技應用創新平台

標題: 如何用verilog 產生sin cos等三角函數?? [打印本頁]

作者: j7003tim    時間: 2010-4-4 10:55 PM
標題: 如何用verilog 產生sin cos等三角函數??
我看大部分的人都說要產生sin cos等三角函數,只能靠建立table表,存入FPGA裡面的RAM來查表!
- ?7 g1 v/ x* k) h, ?請問各位大大有辦法用程式寫出三角函數嗎? 或者是有已經建立好的table表可以給小弟參考~~~~~~~感恩
作者: masonchung    時間: 2010-4-9 09:53 AM
CORDIC基本方程可以表示为:
3 @: h0 N! i! j+ b: E% Zxi +1 = xi - yidi2^-i
! v+ t# I) i4 g1 E# X2 w8 g3 ryi +1 = yi - xidi2^-i
" M* }: l8 Z) L6 {zi +1 = yi - ditan-i(2^-i)
, D5 R; F/ |( t2 `其中di = -1 if zi < 0, else +1.
) X5 @% k. {( T6 ?8 p% }如果用来计算三角函数可以利用初始条件:" a, {7 S* H9 M' Z. b
x0 = 1 / An (用来抵消迭代过程产生的增益). @& R1 B" Q5 T
y0 = 0
8 U7 Y6 }9 B3 f: r  I得到
+ X+ P; L+ {/ Z: Yxn = cos z0
8 g1 n5 f$ ^8 \' `$ iyn = sin z0
作者: masonchung    時間: 2010-4-9 09:58 AM
除了傳統座標旋轉數位計算器(CORDIC)演算法之外, 角度重新編碼(Angle Recoding)演算法、修改3 d# {. Q. r8 r
之座標旋轉數位計算器(MVR-CORDIC)演算法、以及延伸基礎角度集合(EEAS)演算法
, M% I$ N' o, M( A等都可改善所謂的向量旋轉座標旋轉數位計算器的效能
作者: andyctl    時間: 2010-4-21 11:20 AM
table 是ASIC最常用的方式,9 f; _$ Y( c" E  z+ ~# U
你先把sin 切成16 or 32 等份,; e3 _- R4 S6 |" ~+ O
再將其數值乘256 or 更多倍數,9 ]6 o' W4 y) L9 g
整數部份轉成Hex 既可
作者: fufu1119    時間: 2011-4-20 02:09 PM
我之前也都一直使用這種方式, 就是不知道有沒有其他方式可以完成一樣的事情.
作者: alfred99    時間: 2011-9-14 10:09 AM
Thanks a lot!!
7 Z6 ~  J5 p3 g6 v' K) Q, l學到東西了!!
作者: JaxChang@FB    時間: 2016-5-26 11:45 PM
Thanks a lot!!) ]0 r9 K) d$ }- H. w
學到東西了!!!!!!




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2