Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後: y% Y- s" r6 G* y9 j" Y8 b( |) K
與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?1 L' I7 p2 T  o; Z" F1 S
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
8 H' R) e8 b3 Z. P6 O3 |0 z! L41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
* B7 f* S0 {- [3 }6 f這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
5 S7 k- _, Z9 k9 D6 }$ O
/ x2 I& u8 t9 i6 K( w所以 浮點加法器內部 運算級6 w( S/ P. c3 z; j2 u3 C5 n
A=1101_1111.1100/ {. T! R# V9 {5 `( S5 a( U
B=0001_0110.0100
' R0 n8 ?' K3 _1 b  j$ }: y$ wA+B=1111_0110.0000 = -(10)9 r1 m/ }8 d$ i1 W. r
7 e7 c+ u1 C. x6 F0 l  S
再透過浮點數加法器輸出級 轉換為IEEE754格式' z0 d0 |+ l2 m! j" \
輸出為C12000007 l1 J/ m7 O/ S
( G: a4 Z% O/ O2 I, _
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^; Z# S: i# q' k

& _/ t; Q* O9 T9 b另外想問做乘法運算
5 Q4 ]. K" I9 i+ q0 Q有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
' ^( ~# M1 {5 H- [2 C* t9 n除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
" E' m7 Y* s3 Q* q: Z假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?6 ]( J+ K" f! i. A1 R
因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式6 R+ o5 B" O/ d( ?0 }
先自行換算22.25 成IEEE-754格式 41b20000 輸入
& m: ?5 }" D% k5 ^4 E, j0 X6 o- T) A$ T: c5 ]0 @" [6 ^! e, E
quartus 用32bit 就可以輸入阿$ y6 k0 F7 S  L* P+ |% H! p
- ]6 Z  d6 Z4 g8 g/ T1 n! @9 w
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
) \7 E5 ]. I9 X: I0 {: A9 t1 Y如果規定要用10進制浮點數輸入
" l6 V6 E+ h) b4 s. m2 ]: ?那你的輸入級就要多一個轉換電路* O* I) \( l3 t' {: Q
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)6 o$ c4 O3 x) m% V1 i

5 N6 F0 C% H; ?( i5 @9 J- l3 @[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
0 h& u7 A1 ?* p/ m: ~! B0 C那你的輸入級就要多一個轉換電路
  B6 D4 C8 e7 J* D6 K( ~0 c可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
9 ]/ c3 t; j! H8 ?----------------------------------------. I; N- l! X% `3 z
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
" F5 L7 D; {3 Z1 |那在quartus看到的input是不是變成1011001 ? 9 v3 `" ^+ n2 k5 l( K
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
+ @+ r0 r! \* ]; k* ]還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
1 [/ E" F; A* Z& ~4 Z3 c6 T" u假如訊號源固定產生小數點3位的訊號~" l& Y( U# E2 S  z% T1 `
22.25=> 10110.010   第3位補0
* i( {7 a) o- _, \2 \: o10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?! Q2 ~9 Z! U# O/ L2 j4 \' G* \

7 u" F0 |& Z" \8 @-----------------------------------3 c0 W7 |9 ?5 W
input有辦法設定輸入10進制浮點數嗎?
. x9 i; p  ^( uquartus 用32bit 就可以輸入阿
% W$ x5 K. ^% k$ S 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0
# N$ v' @1 O2 X0 B硬體運算時對齊小數點即可
( t* J5 k; L9 e
/ m5 W5 T' X" F$ n*******************************************************3 z+ s* \" F6 m2 @
41b20000 ==>32bit
( A2 y, ]. G& P* [  i7 k這邊是說輸入已經是IEEE-754格式
8 H- g$ r9 G1 p  H3 ^' |1 y$ l*******************************************************, l2 Y7 l7 Z# |4 F' [; \
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point4 @1 z2 v6 _9 j# @+ f- F
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 $ ?% ^+ e4 c) \2 K6 I

" Y0 D- D. p8 H) [% M用fixed-point to float-point 轉換電路
. n9 v' h! q. q+ P換算成IEEE-754浮點數格式
5 q4 V* t$ D, k3 \8 _6 U) h就可以給浮點數ALU 作運算3 ~. u( g- L3 L' `' d( V' c
* t9 [1 O+ }& I
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了* e2 e' d7 J$ p$ J& L6 r
$ @# |9 |6 F& ]" y
另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除, Z, b, y1 Z  _7 S* `* r
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B* E2 b) Q% b1 L% b/ {
如果A<B則無法運算
  k2 {. C  m' S% Y0 @是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
  r1 ]' a! X, |4 i+ ?所以可用布斯Booth 或 SRT 的演算法來完成3 ?1 w. S* C9 P4 K' A
* A1 v& `' v4 Y
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
2 w5 X( W; U8 j# K( ~, c9 n如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~! J7 G0 _9 F* d' \' `
2 k8 ^% X% ~: L5 S
另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-21 07:13 AM , Processed in 0.108013 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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