Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
8 a6 [! ~2 Q  w3 v' U  f與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?2 u3 j9 |  P  F- _7 H
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A" X+ J; q; h% B- G* D/ H
41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B  }' }5 J4 E6 F. T, ^4 b9 _
這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加! z1 P7 m. L& S2 E3 {
' U3 w5 F1 D4 _2 f9 B2 l
所以 浮點加法器內部 運算級
: e7 Q' v0 ]" L+ w* j0 pA=1101_1111.1100/ N: X1 A$ q( Z* u( S9 U6 h
B=0001_0110.0100# F3 ]  j( L8 e: |
A+B=1111_0110.0000 = -(10)
* d8 K  }& c! c
3 m. |$ o, r7 K7 {4 l" [/ _再透過浮點數加法器輸出級 轉換為IEEE754格式
. ~, r6 O. X4 Z輸出為C12000006 z) Y) c" N! V6 Y

. M. |/ c- k; X[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
$ n. {; {1 M  S! \; p! g0 g, n& c2 P) X( X4 j! ^& a! f& g
另外想問做乘法運算0 g5 `4 ?. @% L1 e$ ]
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
2 ~. t% u7 S! |% F1 |2 M! G# b除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
  y+ v2 G& A0 ]. |7 ]3 A3 [假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
5 C2 Z5 X6 O2 Y: ~因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式0 O3 a) h, L# n, B* A# W( t3 y
先自行換算22.25 成IEEE-754格式 41b20000 輸入/ i6 N1 `' }- @. D$ r
* D6 w  ]3 L1 G
quartus 用32bit 就可以輸入阿
9 ]2 O2 A8 q3 X
2 j1 V( C6 c- s5 F~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" x8 g3 F% z. d1 ]
如果規定要用10進制浮點數輸入
  |( M; k# ^8 a3 [9 B那你的輸入級就要多一個轉換電路# A) N% X$ Y; J
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
& D. d, q0 Q$ H0 e$ j4 s
5 ~4 V3 ^+ m6 h' ?4 u& [[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入3 w5 r" ~+ w& s) w% B5 d. k, Q/ ?5 A
那你的輸入級就要多一個轉換電路8 J" Q& ~: n0 y7 W7 m
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
/ n: F3 }4 W: L6 x----------------------------------------  D5 W  |* ?; d, G8 {
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
8 I  L& y& k# K% E; ?7 `3 d那在quartus看到的input是不是變成1011001 ?
3 [9 Q/ H- Z. j1 c這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
; N6 N) F! p9 Y& r6 F1 p還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.6 D/ \2 J5 V" Q. v1 |: n
假如訊號源固定產生小數點3位的訊號~; U; M9 Q) e' z3 C6 R/ i
22.25=> 10110.010   第3位補0
+ Y9 }; o# o2 j" ^" C5 A% k10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
2 D* S) F# w) J2 A; a6 j. Z9 q3 f" K* W# v7 C* ?
-----------------------------------5 v( P6 `) p/ o- i9 w6 [
input有辦法設定輸入10進制浮點數嗎?" W8 g+ L9 z6 S
quartus 用32bit 就可以輸入阿3 {8 B% _( x/ r9 f
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0
7 R& [% F$ g% `! n; A8 ~" S2 @硬體運算時對齊小數點即可: Q8 O% r$ P$ v" _% k: B+ O3 X5 \; z

2 {  O' M. N& ~  E*******************************************************
7 b1 E1 F7 N; i( m7 h41b20000 ==>32bit
7 ]& f! d$ o# s, v5 j& g這邊是說輸入已經是IEEE-754格式: w$ ]" g  M/ N4 `( M; b7 c1 b
*******************************************************
) T/ W1 f: O8 b7 o' V. c如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point/ S( t" p" ^" z6 T5 X. d
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 # N9 m2 F$ F& U6 Y- |
) I" ^7 I2 w3 ^- [. _
用fixed-point to float-point 轉換電路
9 F7 n0 ~! k2 C換算成IEEE-754浮點數格式: f" }$ q- m: ~/ O0 u" |5 T
就可以給浮點數ALU 作運算: ^; u/ ~& m6 M3 ?5 S
5 d( D& |/ x( \2 a3 J8 \2 X
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了+ }1 W2 n, h: n/ C$ {1 M+ o" ]

8 ]4 k6 ^+ U8 G% ^* y  s' s% H3 R$ h另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
7 r9 m% S& {5 L$ o3 j& H但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
2 t2 i/ C# S, @$ N; t, N. L如果A<B則無法運算% s( O0 _+ @. h" C, V/ k0 I
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP 7 \; N2 L, I  a1 u8 t
所以可用布斯Booth 或 SRT 的演算法來完成
# j1 f# f! t# w& I: B0 Q) y
# K: H' S5 A. h! c[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
' y/ |) p* t  z0 {) A如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~) s# g0 h- K8 C# p) G

  X, ?! k6 N) |+ ^4 e) ]7 x! T- _: \另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-30 11:27 PM , Processed in 0.166009 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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