Chip123 科技應用創新平台

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

作者: 呆頭鴨    時間: 2009-12-16 09:51 PM
標題: Verilog上算10^N次方(N為小數)
想請問大大們~
3 E3 A$ x6 t. ?根據數學式. @, X. R! \# a3 ?- I" H( m" K
用對數的方式算出N次方根的答案之後,答案的格式為10^N4 I3 Q1 q- k. ]- i
N如果是整數的話計算上沒什麼問題,
/ l0 u0 g1 y4 ~# r" s不過如果是像1.41598452 這樣的小數,在verilog內要怎麼做才可以) N  ^- v3 j5 w* z. x/ G7 G
得到10^1.41598452 的答案呢@@?
作者: xcx123    時間: 2009-12-27 04:51 PM
我也想知道,有高人发表一些意见吗
作者: kevin    時間: 2009-12-28 11:46 AM
回復 1# 呆頭鴨
7 x- e% A# S! m* B. x/ [) B如果不想用查表的話,把10^x' 轉成 2^(log2(10)*x') 即  10^x' =  2^(log2(10)*x')
8 [% I+ Y2 u3 ~3 P. g注意x的整數部分要先提出,即 x = 整數 + x' ---------->> 0 <= x' <= 1,包含0 與 1.
' O2 s1 d& g5 B' \整數部分的計算沒有問題,小數部分用 泰勒級數逼近如下 即可." r! p+ x8 Z6 q- U
2^x ~=
1 p; `5 y' @2 ^                                 1.0
' A9 Q$ a. }# j6 ~                        +        0.6930321187 * x
1 @  U' C, u$ ^                        +        0.2413797743 * x^2
) Y3 n  ~- O' C* o& r4 E                        +        0.0520323499 * x^38 ?, K& F% X. s
                        +        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 ?
8 ?# F' t0 ?+ S7 K呆頭鴨 發表於 2010-1-2 02:30 PM

& v# v! w) n0 y" S; T  D
: q7 v0 l2 A; U; ]
; B; V- j% {, ~# N/ g. E$ V這些係數是經過用Remez Exchange Algorithm優化過,比單純用有限項數的泰勒級數的係數好,誤差較小.
作者: 呆頭鴨    時間: 2010-1-5 09:29 PM
那X^1/2  (開根號)) g, g1 l( t+ B  `2 M6 }3 O+ t7 V4 ~

: z: ~5 r: d  q/ f3 ]5 Z1 o0 E& p也可以用類似作法嗎??
作者: 賈斯丁    時間: 2010-1-13 11:17 AM
可以參考看看牛頓法根號逼近,較簡單
作者: 呆頭鴨    時間: 2010-1-13 09:26 PM
回復 7# 賈斯丁 * s' o+ o9 o& S0 U
! M+ Y; o; `+ M8 p# y
( W; g6 T0 U8 a* c8 ]5 I& h$ N
    大大~牛頓法的公式有用到除法運算,有辦法簡化他不使用"除法"來實現嗎@@?




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