Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
' t5 h$ f2 l/ D與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?/ [* t* l, d. q- v: u' s- X2 B
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
, Y1 V8 _+ w: c9 D& W4 _41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B) J& Z1 m' L6 x/ u9 h5 k
這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加9 w$ q" v/ g) o/ C# H

0 i/ e* E8 d% W  u9 l所以 浮點加法器內部 運算級. v2 R' i6 r% I- ]& K
A=1101_1111.1100- O0 ]- y# c9 K* W4 L) S; M
B=0001_0110.0100# U; E' e* g; x1 z; T
A+B=1111_0110.0000 = -(10)
: l" `8 J1 K+ q+ D
5 I0 `5 z# x8 x! P再透過浮點數加法器輸出級 轉換為IEEE754格式2 O: k5 [* H% Q) i: o7 l5 z! d
輸出為C1200000
% i$ J; `  K! q: k& C. |7 G4 @0 l4 n6 U% Y3 c
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
; e: _- W% [+ H% G$ V
. i3 @" d, E4 `另外想問做乘法運算
& B' q; T4 j% j. d0 B+ e+ T* M有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?$ m- m  h, {- f8 M4 c
除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)+ z5 s! P6 c, S( V* W- H" w1 Y
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
6 q: T' x5 f, r" ~! z9 x因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式+ {5 E& N$ k0 c" K" @
先自行換算22.25 成IEEE-754格式 41b20000 輸入
( R+ x/ Z- M+ M0 F
9 ^4 }- B' U# A7 W0 Mquartus 用32bit 就可以輸入阿
8 w1 D7 B. P; ]8 b! U; ^
1 L5 ~/ x; z/ b  w~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  [, t3 i! I3 H& I' z1 y5 A如果規定要用10進制浮點數輸入; f9 c8 r( R* `" x2 E
那你的輸入級就要多一個轉換電路
6 y& [3 M* u3 x2 ~' \+ J0 R- _可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
% q+ R4 A  W; t2 I/ V5 V7 }" L$ V# j
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
; k6 P; A( v. C6 G  ?* `那你的輸入級就要多一個轉換電路+ N2 @3 [( [3 \6 Z" P
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
1 h6 ?$ N7 n& z1 `----------------------------------------6 ?) L7 u9 a7 C- B* V( k) x! @# Y! @
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
% D2 u" H! U3 ?( t% b# R) S. a% k. A那在quartus看到的input是不是變成1011001 ? . |9 S* l3 e, |; G& X2 _
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1+ Y" d  ?. X5 G  ?9 R  O+ @: P9 C
還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
1 Y1 k3 _7 P) g% \9 j: H假如訊號源固定產生小數點3位的訊號~' K& p% C/ p4 d  c7 ~* L$ r
22.25=> 10110.010   第3位補0: H! {. x3 t/ c# g. L8 l* d
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
  M- Q1 [" y$ |- O3 w) {4 G8 ]& M! q7 W, O5 g# I/ o
-----------------------------------
: g& [2 |6 m- T' o9 D5 Iinput有辦法設定輸入10進制浮點數嗎?
1 Y; V' u: c, [0 O; Wquartus 用32bit 就可以輸入阿
3 y  l9 _( f: ]( A" U6 B 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0
$ Q1 m2 @" c# u5 S9 V9 a% I( |硬體運算時對齊小數點即可
/ j) C; T7 ?- R  v8 S
$ S  v5 x$ N- |4 j2 a6 t# ]! w*******************************************************. M# a/ ~/ l0 Q5 v. ?" e2 P% V4 s9 T
41b20000 ==>32bit% W- J- i3 q. ^9 x8 I6 {
這邊是說輸入已經是IEEE-754格式& h- l# U' g/ v4 O! }  _( m
*******************************************************% R3 B6 ^) d, Y9 a
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point. Y$ e  v/ o; P
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 $ B7 l# m& |2 n

' d& I0 V  ~7 r% t% I用fixed-point to float-point 轉換電路 7 H6 A5 F$ J" i7 A) Y6 i
換算成IEEE-754浮點數格式
2 P7 Q' \/ N6 F7 D% |就可以給浮點數ALU 作運算
! y: w0 @" ~! N) v  A' h, D1 K  B, I  S0 H
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了0 `8 b( w( h# t& n
5 V% \; V8 t1 K) {
另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除, c& I, k& u' P  p$ x1 C
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B. X( N' Z2 q8 x
如果A<B則無法運算* \( \6 x! z1 e( ]" ]; u" i
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
; w( K- y1 F7 p; y% y6 |) g所以可用布斯Booth 或 SRT 的演算法來完成$ J- ?3 P4 o2 Y$ O* T
* I3 y+ K4 z3 y4 g2 g
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"# C2 \8 Y. e, Y0 M; W+ M9 D5 L
如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~5 w- Q- c0 m8 Q

* A+ A8 Z& ?+ p8 i另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-13 03:46 PM , Processed in 0.125016 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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