Chip123 科技應用創新平台

標題: Verilog上算10^N次方(N為小數) [打印本頁]

作者: 呆頭鴨    時間: 2009-12-16 09:51 PM
標題: Verilog上算10^N次方(N為小數)
想請問大大們~9 u4 r4 p, U9 @& z
根據數學式
% A% X3 k9 Y; D3 d1 W+ D$ [用對數的方式算出N次方根的答案之後,答案的格式為10^N
/ i. y0 J+ @, @N如果是整數的話計算上沒什麼問題,
7 g/ \$ U) ?, D不過如果是像1.41598452 這樣的小數,在verilog內要怎麼做才可以% Q, P1 Y$ B/ E3 _  _! n' h& g# [: x
得到10^1.41598452 的答案呢@@?
作者: xcx123    時間: 2009-12-27 04:51 PM
我也想知道,有高人发表一些意见吗
作者: kevin    時間: 2009-12-28 11:46 AM
回復 1# 呆頭鴨
/ T$ @# p) @* b) C3 \如果不想用查表的話,把10^x' 轉成 2^(log2(10)*x') 即  10^x' =  2^(log2(10)*x'); P$ j. A1 N+ J$ a
注意x的整數部分要先提出,即 x = 整數 + x' ---------->> 0 <= x' <= 1,包含0 與 1.
; p" X8 }0 S0 u5 b整數部分的計算沒有問題,小數部分用 泰勒級數逼近如下 即可.8 p2 c8 O* B0 S4 H& r; u/ D( W
2^x ~=
! _; K& H1 `" M, J3 q' y7 S                                 1.09 g1 ^$ V6 e1 A! x8 H! A' r
                        +        0.6930321187 * x0 t1 m( Y- _! q6 ?! x5 i* I, U0 x
                        +        0.2413797743 * x^2
# Y, m4 o/ l( C& k! l. _                        +        0.0520323499 * x^3
9 Z0 w; F6 n7 ]0 }9 d  Q                        +        0.0135557571 * x^4
作者: 呆頭鴨    時間: 2010-1-2 02:30 PM
請問大大~0.6930321187  這個值是怎麼來的@@? ln 2 ?
作者: kevin    時間: 2010-1-5 10:53 AM
請問大大~0.6930321187  這個值是怎麼來的@@? ln 2 ?/ A5 u/ e! z( g& K) B  M, ?
呆頭鴨 發表於 2010-1-2 02:30 PM

- B6 \% t6 {8 f7 X8 h8 g2 g+ C% F1 N/ [+ n( A" Q6 h( P
1 k  D- U; \! M# X& p' z
這些係數是經過用Remez Exchange Algorithm優化過,比單純用有限項數的泰勒級數的係數好,誤差較小.
作者: 呆頭鴨    時間: 2010-1-5 09:29 PM
那X^1/2  (開根號)6 ~$ j! x& N! k" G* [( r
3 m& ^  ^& ~+ u( F7 m. e( P, E& `
也可以用類似作法嗎??
作者: 賈斯丁    時間: 2010-1-13 11:17 AM
可以參考看看牛頓法根號逼近,較簡單
作者: 呆頭鴨    時間: 2010-1-13 09:26 PM
回復 7# 賈斯丁 - w/ n2 o  L9 a% ^7 D8 v9 t# a% T
: A: x1 O3 B. d. y% j2 G2 }. x

! F. g) Q# @% c$ K+ z2 K8 ~- {    大大~牛頓法的公式有用到除法運算,有辦法簡化他不使用"除法"來實現嗎@@?




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2