Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
3 T2 j) n$ s$ u' g  V與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
* P6 k; u% O. Q$ ~$ \4 p5 l+ t# h& Q並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
: ]4 q( d( F3 X% Q2 y5 @41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
3 f4 E0 U( B: O這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加# c. {$ s  U6 R3 x+ }3 w2 Z. ~

4 g2 u! }& }, w" K所以 浮點加法器內部 運算級# f3 r0 e2 q& Z, l
A=1101_1111.1100
2 R) S. l/ v/ @9 p- |+ p* gB=0001_0110.0100& _) M$ r) E% O. E: @! P" k
A+B=1111_0110.0000 = -(10)
% \2 a+ u, H- j1 z  q' s) s' r9 g; n+ B" e9 W; Q6 c
再透過浮點數加法器輸出級 轉換為IEEE754格式
2 e; Q/ |, n! J6 o+ z輸出為C1200000; Z( r& `9 }; |) Y$ h  T9 n4 A
3 R5 ^+ Y, H! r
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
+ |- o* a$ F: `; A- \8 d# V0 ^# n
0 M/ ]1 v; S* Q另外想問做乘法運算. F/ r& o& `0 |4 M2 U
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
+ Q# l& _0 c% {  t( x除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
: A+ z+ [: [. @- m' Y; u/ z; J' u% r假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
) i7 V  M4 s+ a7 b5 n2 L6 v  S因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式* `7 r# E5 @5 a. p% X3 h
先自行換算22.25 成IEEE-754格式 41b20000 輸入" _9 \  L( }2 \4 G& U) x
+ D8 f% G7 E7 ?
quartus 用32bit 就可以輸入阿6 y, i  Y$ N" X' M3 J' X. Q. Y! r
+ \. l9 ]: E2 e2 |0 r
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$ g* f: x" o7 z' s1 p( S
如果規定要用10進制浮點數輸入1 u0 P: \, U- V0 c7 X  p0 {# y/ b8 k3 [
那你的輸入級就要多一個轉換電路
: z9 c( E% ~" z: C可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
8 Y5 e: K9 x. H9 J
% Q' u  K2 O7 x6 u3 Q, D[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入7 \( f5 _9 T- P% K: r
那你的輸入級就要多一個轉換電路
& q/ Q* u* Z8 w  T, F可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
6 J& D4 l! q0 Q----------------------------------------7 P0 s( n3 _. H: @
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?: t: G5 p* V* S/ e! _( a
那在quartus看到的input是不是變成1011001 ? 1 f# I" u0 R' @
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
9 R2 G% ?- W6 r6 n: \還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.* X4 C5 B/ R' q& n7 [, J7 P! Q
假如訊號源固定產生小數點3位的訊號~
6 t/ z" O8 a  t8 r" [7 Z) D" F22.25=> 10110.010   第3位補0" T; P5 I5 k: b: n+ d7 F2 w. _8 |
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
. q  r9 q) K1 a8 w* p+ E' F! t7 A: C5 C. i( I9 M$ U3 _1 D) y
------------------------------------ l; w. F/ H6 ^( ]5 T( E9 N
input有辦法設定輸入10進制浮點數嗎?' i4 ^8 @  Y& A2 n% g. x, t
quartus 用32bit 就可以輸入阿
' s. e# K  _) L) i' c 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補08 v: m$ r3 s6 T& G4 y$ N) g
硬體運算時對齊小數點即可
! r' V( T0 j* ?/ p; c8 w3 S' S" X: t+ V
*******************************************************$ m: n, G0 c) {4 D$ g4 H" @
41b20000 ==>32bit
; B' y9 d0 q  z( X! F這邊是說輸入已經是IEEE-754格式
0 x! }' z: F/ t$ o  d& z*******************************************************
/ p- w2 u, k# M; u/ b9 G3 k7 S1 J" U如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point- K8 w/ C1 ~# c; y
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位   p& y& {. }* z* o1 c6 z" H

: H  ~! Z' A9 t1 l% z用fixed-point to float-point 轉換電路 ; d! R+ a/ Y+ D
換算成IEEE-754浮點數格式
, l$ F  Q. R8 A就可以給浮點數ALU 作運算( t! ?, ~4 `! b3 F! A
, i3 i; N" S, z/ I/ n
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了7 O. J( ?$ r( o. o. M

  O$ l& l; C) c& E- s4 S% ~, V3 m另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除. Q5 ?' I# X1 B( U% L
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B: G7 e, f. l7 K/ A+ u
如果A<B則無法運算# v* X  a, V% |
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
7 i  P/ Y4 l" H7 J) @# o& M; K所以可用布斯Booth 或 SRT 的演算法來完成
2 d8 @6 b: N: L( `4 D3 U" R2 H# C/ i; }2 J+ ?) G7 m3 F
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
$ i" T7 N6 ~7 x# n1 l! g如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~, R( h  D- w' o) K# t: n: l0 T: J
3 X! u$ l8 l- W$ I! }% z
另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-8 10:18 AM , Processed in 0.136017 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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