Chip123 科技應用創新平台
標題:
Verilog上算10^N次方(N為小數)
[打印本頁]
作者:
呆頭鴨
時間:
2009-12-16 09:51 PM
標題:
Verilog上算10^N次方(N為小數)
想請問大大們~
4 Q1 F& f# Z8 @& H$ \
根據數學式
/ g2 k. E4 T. e
用對數的方式算出N次方根的答案之後,答案的格式為10^N
9 R5 \2 f% H- V: x; f
N如果是整數的話計算上沒什麼問題,
# s/ {, O( u7 K5 W! l9 Y
不過如果是像1.41598452 這樣的小數,在verilog內要怎麼做才可以
9 `% A" K- l2 Z; ?/ [4 T- j
得到10^1.41598452 的答案呢@@?
作者:
xcx123
時間:
2009-12-27 04:51 PM
我也想知道,有高人发表一些意见吗
作者:
kevin
時間:
2009-12-28 11:46 AM
回復
1#
呆頭鴨
5 r+ ^& X9 z) B. z: x/ E' f C
如果不想用查表的話,把10^x' 轉成 2^(log2(10)*x') 即 10^x' = 2^(log2(10)*x')
u& u) F0 W9 W2 @! i* }' |
注意x的整數部分要先提出,即 x = 整數 + x' ---------->> 0 <= x' <= 1,包含0 與 1.
/ C8 m* r" a D/ T$ g* X7 [
整數部分的計算沒有問題,小數部分用 泰勒級數逼近如下 即可.
: @ V1 U1 D% |) Q( ?8 P
2^x ~=
" l1 Y. e1 s5 d1 y% D
1.0
8 y9 l( V; Y) z
+ 0.6930321187 * x
$ M( N9 i" w3 \* R& I8 k. X0 m1 u
+ 0.2413797743 * x^2
! ]7 R y& N2 R7 T
+ 0.0520323499 * x^3
4 e% p& I" Q! j# r8 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 ?
/ u+ p, N+ r0 a$ W, l* j7 e4 _
呆頭鴨 發表於 2010-1-2 02:30 PM
" H ^6 F4 X u5 [- m5 f6 n
. R4 G% O) E ~9 {. k3 @3 [9 H
% w6 d: x8 `4 L- a( V
這些係數是經過用Remez Exchange Algorithm優化過,比單純用有限項數的泰勒級數的係數好,誤差較小.
作者:
呆頭鴨
時間:
2010-1-5 09:29 PM
那X^1/2 (開根號)
4 v C% s. T, O+ q7 x& W. [
/ h6 v& I' v0 i! Q8 @
也可以用類似作法嗎??
作者:
賈斯丁
時間:
2010-1-13 11:17 AM
可以參考看看牛頓法根號逼近,較簡單
作者:
呆頭鴨
時間:
2010-1-13 09:26 PM
回復
7#
賈斯丁
6 C8 s Q- q/ S# ?0 K
5 P( _) D8 K: U" ^
% @/ G( f# ~2 G3 C" m) c4 `6 x
大大~牛頓法的公式有用到除法運算,有辦法簡化他不使用"除法"來實現嗎@@?
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2