Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
: n' F/ t: H  L% n% J, F與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
- k5 x- Y  A7 ]( Q) q- J# K3 w並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A$ F7 |! T& z( c8 c8 r
41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B8 q4 S  _9 E$ h  U* n
這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加# ?  [, a2 O4 x5 o* L% }4 Z0 K

' ^' e6 Q! k. `& i) S# O2 J所以 浮點加法器內部 運算級# E6 J% O$ l4 ?/ X  U
A=1101_1111.11009 u% j9 Y. Q$ I
B=0001_0110.01007 e# H/ b. B4 x0 J
A+B=1111_0110.0000 = -(10)
, ?* z9 m# r; ^8 L5 h9 k! r# D/ I" G4 K
再透過浮點數加法器輸出級 轉換為IEEE754格式% p  h1 f8 ?2 s5 u+ E
輸出為C1200000! q" _+ a' k8 G
; ~) W( P6 }, k. F# M  K* Q$ I
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^: e& ^2 L& |( a2 I; S8 K/ a9 X6 L, T
: s; w/ Y2 \( {2 w& ?" j1 l
另外想問做乘法運算' B0 ^+ p& c! P/ M1 x  Q
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
( Y6 a4 C/ Z. z4 ], G( K除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)7 o6 L& D7 G, h( w, s- q- y
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
/ N/ b8 j) c# L! M7 E9 G因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
- \/ f! l% m9 X5 u  B" X+ I先自行換算22.25 成IEEE-754格式 41b20000 輸入
7 l1 F5 N. s  g! ^
: q7 c- I# u) v9 zquartus 用32bit 就可以輸入阿
- h, v8 e- Z# V* n! l3 }4 r9 j7 |( }# Y3 U  m
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
& G# @4 W& }( T5 E. f1 w0 f0 b如果規定要用10進制浮點數輸入
0 q% l1 A" X; [* W5 i/ D( H/ v/ O那你的輸入級就要多一個轉換電路' ?) Y- l6 f. ^8 D& ^2 O
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)+ ^8 Z. I: X6 D0 _

  f9 r( Q+ ^: m1 \5 P) f- z[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
, P, B: v( l5 `- o( C7 ?9 P那你的輸入級就要多一個轉換電路* t6 @* h# W* p/ l- J6 i9 O4 m
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
3 b1 t& ]& Z* Z4 H3 ?0 D----------------------------------------
+ O9 f/ Q8 e9 v% F非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
, v! t3 p" N) P; M, L# D& f那在quartus看到的input是不是變成1011001 ? 6 \( C* \# T  \+ J
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
0 S5 m: |% v2 K7 u還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.. A2 E: n$ b; H. R7 b6 p
假如訊號源固定產生小數點3位的訊號~0 }# A6 G2 A4 U/ r5 |
22.25=> 10110.010   第3位補0
9 u& A- k# `7 b! K- f10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
- x8 H& N% L; U& r' N5 }1 G: A2 a" w" B3 C' w
-----------------------------------1 g9 Y. C1 Q9 u9 W9 i1 S+ M: o9 }, E
input有辦法設定輸入10進制浮點數嗎?3 f( b* [% v2 ~% `
quartus 用32bit 就可以輸入阿! i$ h5 M# e/ d* D6 o- ?! Q- T0 ?
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0# I0 \! k8 f1 G8 g6 |. H7 O
硬體運算時對齊小數點即可% V% \5 A% I9 P( E8 _0 {! E
# h0 u# |$ B* s7 r
*******************************************************
) y* \6 Q2 b2 A; S1 ^41b20000 ==>32bit& P( q( t2 B) K: x* e
這邊是說輸入已經是IEEE-754格式+ D0 c4 s3 j) n
*******************************************************
( ~& Y0 c! @4 z: J1 X8 ^) w如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point: f0 Z! u5 _' k: G8 N5 e9 l
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
, M1 Q9 d' l$ P( [$ O( y/ q/ A
5 M" u. t! h$ J$ A3 l用fixed-point to float-point 轉換電路 ' I7 S, H9 O) a+ d4 }( v
換算成IEEE-754浮點數格式* O2 T0 @3 \! ~$ ^1 t
就可以給浮點數ALU 作運算
7 ?6 a8 k# c/ U, i$ D+ t5 k( v! h1 I; ], @' B+ H$ ^
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
4 |! y: n  s; H; x+ l' B! m
! l( N6 l: Y7 V4 x8 O另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
9 I, y' B3 T. S! d5 l& |) E但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
% p9 i, M: X3 Y3 V4 n  v: U* Z如果A<B則無法運算, x. Z$ U& Q* t0 y  y6 N
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP % p! g6 [6 a( l0 Z' A" q
所以可用布斯Booth 或 SRT 的演算法來完成
0 L, S3 K% l# i7 H1 V. ~8 X* w
' m& T; D& }1 W5 y. u$ H[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"% X4 i. l8 n0 }- ?( T! r: [; r
如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~8 h2 K# v1 U2 G, Y3 `+ D
# |: K/ m0 |5 q4 `, t: s1 J( @% S
另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-8 04:54 AM , Processed in 0.128016 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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