Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
5 f, P, |8 r9 b4 s! _8 U7 [% r' G與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?, |6 [2 w+ V- s  p) D* }) I3 M
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
) q' ?0 v* W0 f6 ?( |, A; B41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
' Y4 G" X( m9 V這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加: B3 X. @1 L* \8 A3 j; V* j& x( V
- H. z1 ^( r/ Y+ U- G/ ]
所以 浮點加法器內部 運算級) L2 `3 L% f% @5 D
A=1101_1111.1100
1 H! o) p- n( `; S6 Z* t' JB=0001_0110.0100
9 ~9 u# ^; I) r- Z8 p( g6 }, |" K3 V# sA+B=1111_0110.0000 = -(10)1 ]  Y% p% N! N
# a& \, ]% W: I
再透過浮點數加法器輸出級 轉換為IEEE754格式
2 t# O4 Q7 w$ r  Q# x9 u! F  Z: x; {輸出為C1200000, ~, w% e. s- h' g7 W2 ]
5 Y$ R" o3 ~) O. E' w
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^8 r3 Y* q8 R. V; C  H: l
, N) L, s( q- P. T3 e* T- y1 b6 B
另外想問做乘法運算
. H2 F5 M, h1 X3 K: s2 h有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
; s6 e+ W- a% L. _2 C除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
4 ]$ A1 J4 {# P- \$ t假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?9 R! x0 B' y" s
因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
  S" E7 C/ k) G) Q, @1 `先自行換算22.25 成IEEE-754格式 41b20000 輸入3 v2 F! Q" H: ?
  N" Q. e7 H, }$ G, r
quartus 用32bit 就可以輸入阿
) e/ J- [/ z+ M# k7 x0 W
3 i- Z, M3 \6 s5 G; C- \( |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~& N; y. @" o. {# y+ E$ ]8 W" J
如果規定要用10進制浮點數輸入! I1 T  ~# ^) j, O* E' O+ B
那你的輸入級就要多一個轉換電路
/ F% i% ~6 W( y- n可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
( r2 ]3 k( g* Y% {4 R. a6 w$ c/ W2 s" u' c
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入: v4 |" @7 i3 s6 W
那你的輸入級就要多一個轉換電路' Q9 _. ?+ O& E0 u1 n/ `$ V' _
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
. \1 d. Q  p0 C6 f* ^9 u----------------------------------------. a# F- |' ~. ~7 d4 d! g8 X! B
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?$ Y, l7 X7 O6 N8 ]
那在quartus看到的input是不是變成1011001 ?
. a9 l) [7 x# K' Y2 t1 e8 i這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.14 J/ b; _  d/ J4 i$ X" W
還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.0 W9 T, r1 w: d
假如訊號源固定產生小數點3位的訊號~9 W, O' a9 X' _- h' h* _. D
22.25=> 10110.010   第3位補0
8 a! S" ]0 Q4 G% @: K! k% I10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
0 \& N: v, x7 z4 o9 K) q2 L* h( a5 m4 e+ Y( g+ Q, T
-----------------------------------1 x4 j. f2 V% X; D1 U
input有辦法設定輸入10進制浮點數嗎?* x- m: e( m: y* n$ {# ~2 c
quartus 用32bit 就可以輸入阿
* A" G& R# H! q& ] 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補01 b2 N% Y6 r, Z9 j+ f5 f
硬體運算時對齊小數點即可7 v  K8 J# R7 [. w' p

- K8 i, g4 _4 R; Q2 Q*******************************************************
4 B) B0 P. T5 F/ o41b20000 ==>32bit
" z4 D: U" y# ~7 j9 Y這邊是說輸入已經是IEEE-754格式
/ \; \4 A- A: I7 u6 K) y& z  M4 s5 `; C8 M*******************************************************
1 n0 C& ^( W' q+ {如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point4 M1 b0 S; e% Q# l
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
$ |- l$ M, F$ ^% e: n* U: ]& p" M$ L% g( d/ g- `) q/ s1 r+ h
用fixed-point to float-point 轉換電路 ! B7 [1 g  n" W$ B# ^- S
換算成IEEE-754浮點數格式/ V: d# S1 F2 [; Q! E& W' w
就可以給浮點數ALU 作運算
. S! V) R5 r- ?! A
' O1 Z  X  K9 u/ o$ f; U[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了, D6 {( k( R1 W: o2 k' B' Y

; D0 k4 x( d; e- ~7 r另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
2 z1 R0 x; u8 W2 A2 h但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
! d' z; u/ W/ C' a如果A<B則無法運算- n+ E: x0 R! N; @5 w
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
7 q3 C1 U3 c* F' Y6 C7 z( n所以可用布斯Booth 或 SRT 的演算法來完成
4 K; A! F% F; U# t. ~0 N4 y9 T+ l. f; r' @0 E
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
, h0 m1 ?; k; |8 W! r如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
+ A7 }% R) \2 [
: a; J5 q2 o5 }% l5 x% ^. G另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-4-3 04:57 PM , Processed in 0.205011 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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