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^N
4 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^3
8 ?, 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