Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
) d1 O7 P# _7 C與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
- u  a+ g6 p: u1 `" O. k) }2 g並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
- ~2 q7 f* O0 _! Z& X41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
7 X5 a5 D2 `4 }# W3 j這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加# L5 W/ b1 S* F+ s( S7 X9 [# ^3 h+ L
- J2 O4 Z! |: |; A% F, P( F
所以 浮點加法器內部 運算級* r. D* w& F0 }; D! K5 K6 H
A=1101_1111.11002 s* Q' h3 L. b
B=0001_0110.0100
# u1 j+ Y/ Q4 d/ M3 lA+B=1111_0110.0000 = -(10)) C* Q- H9 J$ d, L
9 E: J. \2 n& I2 z
再透過浮點數加法器輸出級 轉換為IEEE754格式# G% E. Z6 v! M
輸出為C1200000
/ h$ D! S2 ~# @% X. D# F4 b4 P( E/ |" ^3 q1 r3 a5 @6 j
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
7 y7 c# s6 o: {& X! w* @9 [  L+ ^, F
另外想問做乘法運算* }; R2 q' A! n* ^2 |
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?* x9 g7 Z3 n# Q% z
除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)' H* C. `$ m$ z3 A1 m
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
+ B6 O3 |. x; K" [( _因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
5 R2 P& Q& {& |, v8 W8 Q' t先自行換算22.25 成IEEE-754格式 41b20000 輸入
# h7 m! \( M5 o1 B( w2 M$ M3 H/ v9 W" U( v5 S/ F
quartus 用32bit 就可以輸入阿7 X( _$ G0 D' Q" [
6 E* f  |/ J# P- V/ X) m. j
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 b7 f- O5 I  g2 i! y如果規定要用10進制浮點數輸入
1 o" W2 C8 s6 d: L: \5 S3 V那你的輸入級就要多一個轉換電路
& ^+ y4 g! K% ?7 i4 y) U$ b可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)9 v$ x. b2 Q& ]

6 N* j+ N5 L) |! B" ?2 z: U! [[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入+ z% b8 e/ E- Z. c2 {6 B% j) d# a
那你的輸入級就要多一個轉換電路
: X; l* I  S- w& T! K( ~可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
  a3 U4 G+ l1 ?* i----------------------------------------
& y( x* M: ^- [3 H非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
5 b& ~: x9 C  `: c那在quartus看到的input是不是變成1011001 ? 8 b! U% p  B! ?  `
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
0 X- y' c: b! D; S還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值., S# n2 K; q3 a/ h6 A
假如訊號源固定產生小數點3位的訊號~
7 g2 `% F/ Y0 ?9 N7 q- t' ^# p9 B22.25=> 10110.010   第3位補0
' ?% V  e( Q: d! i/ E& [10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
2 E& c/ o, [  b& b5 r5 b* A* y
4 F# R, Z. M/ Z0 C5 l. a; y-----------------------------------
" r/ B+ p% n- M  J' Ginput有辦法設定輸入10進制浮點數嗎?% {5 ~* f' b$ V
quartus 用32bit 就可以輸入阿
) ~; J& b9 R/ C5 d9 q- s 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0; t) |/ \* [. s& ~
硬體運算時對齊小數點即可
9 b$ r5 Q& `' s1 V# Z$ }' K
3 A3 N2 |( O% j2 w3 B( x*******************************************************
4 A# F; t  j; B. H/ Z% M41b20000 ==>32bit: e- Q; y+ `( K: X  f/ y( k) k
這邊是說輸入已經是IEEE-754格式- `2 `  H, `. z+ R% O6 d
*******************************************************' b/ K9 N) W- R
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
; f. j0 P$ b9 i- O# u  q" O# v22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
6 Q9 F/ k* |8 ?
8 b$ Y4 I- w7 _& A! \! H用fixed-point to float-point 轉換電路
, [: P6 ~, w+ b0 x換算成IEEE-754浮點數格式
/ |* [8 C% G5 C* Z& c5 ?就可以給浮點數ALU 作運算6 i# h6 v4 Q$ u; Z+ a  F

' A  k& |$ Z) W, O* y[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了7 N4 ~, F2 ?; @% {) m1 r- a& m# t3 `
6 v% D. v8 {  P  m
另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
) t! W9 ]/ t. o0 T) n但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
4 o- b) O1 F+ w0 }如果A<B則無法運算
3 \2 n3 h8 _! H; d. u是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP # L, k; B! W+ E+ ]) `( Y
所以可用布斯Booth 或 SRT 的演算法來完成7 j6 M' {. w" X
! [7 `, F) _: D
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
. w; [4 W8 s: u6 i( Q+ X如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
, x1 o5 c% }! m/ t. [; B2 G: v
$ a9 D5 e* a3 ^4 p- F7 l0 m另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-18 06:33 AM , Processed in 0.115515 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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