Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
12
返回列表 發新帖
樓主: 呆頭鴨
打印 上一主題 下一主題

[問題求助] verilog 浮點數運算疑問@@

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
0 g7 H" l, `- z1 }與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?  P0 Z6 A- L$ u  b* [
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A5 b/ y# D& d- D- A* p
41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
8 x+ w: ^+ o- c4 t2 F$ Y+ i! r這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加' ?! L) p/ _0 c0 y% _1 v$ i  T
7 t4 ~/ M0 B) j% z6 ~8 q
所以 浮點加法器內部 運算級5 b' M% d( e4 [4 |; Y( O1 |% c
A=1101_1111.1100
; u' {& D# O- y% F$ q) V) h  lB=0001_0110.0100( Z; r: `( |8 V2 R1 E
A+B=1111_0110.0000 = -(10)
( a, `  X0 p. K# q1 O% t
7 G( c  G3 z- P6 z& d. y/ R再透過浮點數加法器輸出級 轉換為IEEE754格式
$ g% Z: K0 q& W& x* ^; w1 D+ f輸出為C1200000  M2 q$ V+ K4 E8 y6 H+ `
/ [8 @/ ~3 @) M* k9 G" B
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

參與人數 1 +1 收起 理由
呆頭鴨 + 1 學無止境阿

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^0 Q3 l) q* x% C0 h9 k; O
5 K# F- s- U) T( \4 c' Q5 ]
另外想問做乘法運算. g5 D& b' b$ E0 b7 Z. m' j: ^
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
2 M# W; T; S8 o2 C+ U# n% U' b除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
  i2 M5 I9 |% A. d2 |7 b8 G假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
% x% R( Y8 H3 f4 \  ?3 V" ^' O因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
) k  K. k4 f4 A4 k) i" K2 X先自行換算22.25 成IEEE-754格式 41b20000 輸入" P" X- d3 K  h1 l5 P
2 g) s5 G* z( }8 @
quartus 用32bit 就可以輸入阿: n. Y' ]8 @* y$ t1 u# Q: B* _# x/ W

! H- i; W3 F9 X2 \! e, V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1 F3 Q. s1 z) @2 q  V) Y- l+ g
如果規定要用10進制浮點數輸入
2 W7 o+ n/ b7 ?+ b那你的輸入級就要多一個轉換電路
! G3 }% q9 A0 e2 I可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)9 q0 O1 U# A; l9 E1 H' U

0 V! i" l3 y0 F1 I! _* \8 o[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

參與人數 1 +5 收起 理由
呆頭鴨 + 5 每問一次~就多長知識

查看全部評分

26#
 樓主| 發表於 2009-10-30 20:28:16 | 只看該作者

回復 25# 的帖子

如果規定要用10進制浮點數輸入& r' u5 z5 @  \
那你的輸入級就要多一個轉換電路
7 a/ x  \, b2 h* x可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
' }- p5 S/ i! b, l+ d8 W  Z; A----------------------------------------
! z6 v( T3 C' e( W- l8 v/ q非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
. i5 N6 W5 M) i. C8 f那在quartus看到的input是不是變成1011001 ? 3 [& h% I7 ?% t2 ^& X
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
" @2 p# c$ R2 x: C7 t3 T& E) a0 f還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.7 Y3 }+ K: r/ e6 l, G
假如訊號源固定產生小數點3位的訊號~
6 u& i) h" ^# s0 x$ A4 H22.25=> 10110.010   第3位補04 p) Y7 p7 l, ~7 J/ e4 s
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?4 `9 F& f9 f( ?- \. g. y7 L
- Z- h8 L3 j/ d5 M8 [; f9 v
-----------------------------------
( U) R" |+ C# C; ^) ]7 sinput有辦法設定輸入10進制浮點數嗎?) O+ ]- Q# N7 X! w( u) y
quartus 用32bit 就可以輸入阿
; g" D7 L! f9 H! X( G 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0" R  `2 d. y' z
硬體運算時對齊小數點即可
$ z/ j0 m3 w1 x4 R2 \% [/ h1 J+ p& |6 S( n) J# J7 P4 p
*******************************************************
' \8 `! c. [$ P0 U41b20000 ==>32bit$ l) j3 s0 o& `* ]
這邊是說輸入已經是IEEE-754格式
: G) ^2 @" o9 D4 X& C4 }" \' E* X*******************************************************
1 G, w" H) z  s7 m4 F  W8 K5 T如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point9 M! U5 r& s/ g
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 ! l) d* Q# d0 ^. C" h% \( b$ z

" F+ h5 V, t! }3 X' T1 Z& u! b# z用fixed-point to float-point 轉換電路 ! H+ n; N2 v- a% u& G1 B
換算成IEEE-754浮點數格式
" y6 L3 H$ |8 @) Y4 U就可以給浮點數ALU 作運算
9 A' [& D8 v4 Q+ r0 W1 c) t
9 l8 A( k% E) N1 o' C) k[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了* w# |6 O* G% L9 Q! J

; |; S, z( a. U1 r# z另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除  h2 V5 e* u) q8 w; g& n1 X& o
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
" _# G# ]# ^8 f, ~$ W9 g如果A<B則無法運算# f+ N2 f; @8 L+ C8 O- x2 j( G
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP 4 I  m! O4 U% I! N# }+ U; c, n. W
所以可用布斯Booth 或 SRT 的演算法來完成9 ]( i2 Q' L& ?/ F( ?/ N* L5 Q
2 V- z) H! Z9 z0 E
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

參與人數 1 +3 收起 理由
呆頭鴨 + 3 謝謝大大幫忙~我用BOOTH完成浮點數乘法器了

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"$ I  s* n  m( L) f# S; X% L
如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
; n) [3 g: o% [+ i  M, {- r/ ?2 K4 `5 r( s+ x% A7 l; a& z6 B  F
另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-11-16 12:32 PM , Processed in 0.170009 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表