Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
樓主: 呆頭鴨
打印 上一主題 下一主題

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

[複製鏈接]
1#
發表於 2009-9-22 22:21:46 | 顯示全部樓層
可以實現
) z% P; }. s* y* i請把了解規則 用電路可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)# x  G4 b1 P- F& o% E
然後就可以當成浮點數加法器的輸入% R4 o- r5 a7 B$ J/ o

& ]; \# _; D5 I' i[ 本帖最後由 masonchung 於 2009-9-22 10:24 PM 編輯 ]
2#
發表於 2009-9-30 09:04:45 | 顯示全部樓層
你說的二進制是 二補數的表示法 http://zh.wikipedia.org/zh-tw/%E4%BA%8C%E8%A3%9C%E6%95%B8
, T& a0 v  J  o6 E/ ]2 _+ K% ]1 m4 g7 g
ieee754 的 二進位浮點數格式在此 http://zh.wikipedia.org/wiki/IEEE_754
8 |3 {! x) B2 c! j/ v0 ^
7 g+ F3 V% G8 `/ b' W; \這兩種格式轉換可用電路實現 / T9 ?1 L$ a% E" N6 P3 F& G+ o! S

$ ~+ A0 H- r9 x/ q然後再輸入到浮點數加法器運算
3#
發表於 2009-10-19 12:13:41 | 顯示全部樓層
請問可以直接對ieee754格式的a跟b做四則運算嗎? # h* ]( W! Y* k9 i# i; |, ^
(小數點對齊,實數相對位移後)a+b是否等於C2580000 ?
  P0 W% y# M8 |% T8 I$ I7 C不對
! S% |6 `) ^; z3 P只有浮點數加法器和乘法器+ c- X0 z* c! f3 U& y0 d2 ?+ s
所以負數要用二補數4 w) Z7 l$ w/ a1 i0 w5 S& P/ }
C2010000=1_10000100_0000001_0000_0000_0000_0000  B2 }4 J# }9 }$ I) r
二補數=1101_1111.1100
- L9 i2 |1 ^/ T, Q/ p& n22.25=0001_0110.0100+ T8 g% a, U4 D+ r- S" Y
兩者相加即為答案-10, 透過浮點數加法器輸出為C1200000
' O' M! K( `: u& S2 K6 s& X0 O. N+ F: S# t3 \, r  I- P" v
[ 本帖最後由 masonchung 於 2009-11-2 11:12 AM 編輯 ]
4#
發表於 2009-10-19 14:05:59 | 顯示全部樓層
此二補數 1101_1111.1100 表示成IEEE754格式為420100002 o& U  d% e1 e/ _8 ^- n6 d% e+ O
所以真正的浮點加法器輸入的MSB只要反相 就變成二補數
5#
發表於 2009-10-21 12:08:33 | 顯示全部樓層
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
3 G0 w0 j7 i. n! F/ K41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
7 e1 A$ ?+ \2 w這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
; J" p* y( u1 x1 q# C3 T& q2 f- l1 v8 |0 V4 ~) e& |5 j" k
所以 浮點加法器內部 運算級+ a" b$ R) r, D1 X" f+ _* w
A=1101_1111.1100' Z; k7 k- r3 X
B=0001_0110.0100, d: V, r$ a6 o) i1 }4 ?
A+B=1111_0110.0000 = -(10)- s1 x) l' s" V# _
9 e8 G# B; m0 Z0 T4 i) i# Z0 r. P
再透過浮點數加法器輸出級 轉換為IEEE754格式
$ p( J, N( o/ P2 N" ]' P: H- B輸出為C1200000& Z1 u6 l% M) J! M* Q

' `. v; F2 F, y* K; s+ H: K. X; b[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

6#
發表於 2009-10-29 11:12:30 | 顯示全部樓層
input有辦法設定輸入10進制浮點數嗎?+ F/ B( H6 i9 B, ?9 z
因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
8 b: |" |: x: G# w' t- W先自行換算22.25 成IEEE-754格式 41b20000 輸入
  U) }$ [7 v7 O. S  y5 y! n* B" g/ D0 m, t6 a- ?+ U8 Y8 {
quartus 用32bit 就可以輸入阿
! z+ I0 p& a! u( E' A* K6 C  @2 s
# i& F7 a, m3 t( |# L; K+ R~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3 i% j: H0 E0 K1 Y  W
如果規定要用10進制浮點數輸入+ T6 e) i" E! T% _5 D# P
那你的輸入級就要多一個轉換電路
5 p' @# I5 J9 q9 B& Y  |. R3 r可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
8 T  R- V- y; A# M" |/ y, H. l+ P" O/ o: o" ?4 I1 ]
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

7#
發表於 2009-11-2 11:36:10 | 顯示全部樓層

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補02 a8 D, [* p3 k; a
硬體運算時對齊小數點即可: i6 N/ R$ E. j" i7 A8 P6 ~

0 u: K1 j+ t( r4 U0 L' }2 C; y*******************************************************
' [/ p& v8 F* B& K, C0 }41b20000 ==>32bit
( x/ g! M# ~5 Y' _7 x這邊是說輸入已經是IEEE-754格式) E# Y8 B7 T5 a! ~
*******************************************************& D' n/ |) {  |, v
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
, k! ^9 |) E& x, N& x22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
, C* _* e- {7 u2 x
, f3 R5 _  a1 Q* S. U9 s7 ^用fixed-point to float-point 轉換電路
0 a* t' l& j& {換算成IEEE-754浮點數格式5 `" y+ N, _/ }& e  g
就可以給浮點數ALU 作運算# V. T' p" b6 o: e0 r; l4 O$ k

% q+ Q( I; _( z6 p. b[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
8#
發表於 2009-11-4 10:21:18 | 顯示全部樓層

回復 28# 的帖子

除法運算在FPGA 沒有DW IP : d! r" g5 {: P! ]! j
所以可用布斯Booth 或 SRT 的演算法來完成
+ Q0 W' z6 c8 C) m5 s8 P' _: z% S% g, g8 [' ]
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 01:19 AM , Processed in 0.104006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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