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; fN如果是整數的話計算上沒什麼問題,
# 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^34 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