Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後# \; y$ S( \/ f
與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?8 V, A% J# P& F; \4 h: o
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
. P" `! F9 x$ L" h4 I41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
# S" f1 w2 M5 x這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
  u6 |. \9 E" d) O- g5 Q* q8 {& K& I/ q
所以 浮點加法器內部 運算級
5 r3 v2 ]8 r( b- iA=1101_1111.1100: Q0 k! B% B7 @! Z$ ^4 g$ m; G) f
B=0001_0110.0100
+ P7 f- T* G, s( v4 _A+B=1111_0110.0000 = -(10)+ c6 k6 d) f% a

, j2 S+ j# j4 q( D; `再透過浮點數加法器輸出級 轉換為IEEE754格式
; H% q1 r7 P( D. j& w輸出為C12000003 c; Y0 u# T1 ~! Z) \
5 i: c' L7 R1 V, x4 I5 C) Y
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
1 M" v6 N* |& n6 T' f2 o* J
* }0 n- t: O  ^' g. h  W. k- ?另外想問做乘法運算
5 Z' F! t  X5 n; }4 Y) L有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
# ~' R5 J& u3 a除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
3 b$ m. P1 L6 q" V+ c假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
5 O0 K" Q! Q; ^* n因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式. c) [* F+ S8 l7 g. u
先自行換算22.25 成IEEE-754格式 41b20000 輸入! Y' t$ J' f  s; l* j8 P
1 Q& w/ U/ [3 f2 i& }) i
quartus 用32bit 就可以輸入阿, {3 w: p/ A% I& ^; C# e# Q, N
# p6 e7 L1 Q1 \6 s2 X
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ l& q: y# `' M- d7 |' ^1 [2 ?# j8 A如果規定要用10進制浮點數輸入
  W; ~) c" y+ G# \/ R5 i: Z% M那你的輸入級就要多一個轉換電路1 d7 ~, _, C) P! k$ h( U. r
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)0 ~3 o5 p' C3 M, s$ ~* W$ k
1 z! g" ~+ T2 p
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
0 f) y9 `2 p9 e2 W: S那你的輸入級就要多一個轉換電路
. g+ h) k. \" Q  ?* `& j: i可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
5 ], i9 o* d! _$ [% e, V----------------------------------------
9 o  w. z6 o9 X非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
) W+ `$ G& u3 ~0 Z( o3 y3 N那在quartus看到的input是不是變成1011001 ?
! V- L& D$ {" @7 |% _1 |2 K這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
5 {' K, n& h( t# E4 X! Q還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
1 E3 U: d, y1 O& t* K1 Z' m假如訊號源固定產生小數點3位的訊號~
9 w. Q0 t) T, S( c22.25=> 10110.010   第3位補0) K. V% Q. P( X0 u4 X
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?& ^0 ?* N" R2 u

  P" g7 O2 {' {* V% t-----------------------------------
9 m. V* q1 B* K) q$ k# p) ~3 Uinput有辦法設定輸入10進制浮點數嗎?: Z, H: B. C1 I) w4 f) V' |& {0 t
quartus 用32bit 就可以輸入阿7 F. r$ N* F" o  o
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0
( w0 C2 G* k4 o5 I% o硬體運算時對齊小數點即可+ {8 ~' e  Y+ c" c% ]+ G

8 Z+ D5 W0 @: A*******************************************************
2 U2 W+ w' J' h% u" h41b20000 ==>32bit$ l5 }9 F" i9 L9 s. A& t
這邊是說輸入已經是IEEE-754格式* y8 a  O% @! D$ x/ B  I
*******************************************************
( y- \/ L: t7 M8 U7 V如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point) A# J# g, I" ?. p
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
" D, x5 X% C- x9 l+ b* }  I. I, X
用fixed-point to float-point 轉換電路 3 r& r# q$ q/ A" p, t9 {5 t+ [" Z
換算成IEEE-754浮點數格式
6 R3 f- H2 ?1 k' P/ s; y+ |9 l6 k就可以給浮點數ALU 作運算. k6 C! P4 f+ P
7 f, _2 X  N# U8 [6 ~% b% p$ n
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
- i- U& ?  C3 z. w* x
  r7 o* `5 R) {  w; o5 e另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除2 A8 B( d5 K% X- i9 N1 d
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B0 z3 o7 s% a; p, `/ O7 }
如果A<B則無法運算& q0 u& w; Y+ M1 I) g0 l
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP , Q: X0 T2 X6 Z5 A
所以可用布斯Booth 或 SRT 的演算法來完成
  X0 b2 p2 B# t4 d+ a* ^( h
. I3 O2 J# u: R- Q! [[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
; |# l( s6 O4 E: g如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~% ]4 h' T( R1 X2 n

& q! q, P5 u5 K* K5 I& j另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-8 07:40 AM , Processed in 0.139018 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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