Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
3 w$ V9 ?- Y; A與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
6 E+ q" H1 P8 b3 @, F" g並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
& D2 [9 I1 X( X5 ]- @+ A41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
. w+ j: p% Q  c, o* P4 k* }6 }這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加2 ]8 @0 }2 H: [
0 n5 M; c; v+ C
所以 浮點加法器內部 運算級
9 Q! r, g) {2 E- N) A) [5 tA=1101_1111.11002 p. K+ z( a: K  k; L) a& _7 L
B=0001_0110.0100
2 Y# O$ ?: ^* F3 _) D' s. ~3 PA+B=1111_0110.0000 = -(10)0 n4 _1 M7 O7 _' k
& l0 B+ v/ r! O$ T3 r6 h
再透過浮點數加法器輸出級 轉換為IEEE754格式5 W, |( O2 p, A
輸出為C1200000) w" e. u( Q8 k3 f8 a3 I$ ?) L
8 x6 Y5 S2 \. p, u; ?( ~
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
& e, u5 g2 @* m+ i% K; ^8 v6 p( `  {9 _; o& e3 |# T/ C$ p
另外想問做乘法運算5 S- T( P& F% L! ]" p8 I0 P7 C. E
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?( s; C( W' w1 a  d& Q
除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)4 O2 R2 {' x1 K* K) @2 p) b
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
) H- D% G$ V7 N0 l# Q- B因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式! ]8 L" m1 W5 J/ C
先自行換算22.25 成IEEE-754格式 41b20000 輸入. I/ F. k  ~+ t; ]/ Q" c& j
/ |8 a8 T# X& w( G* v
quartus 用32bit 就可以輸入阿, @7 T& B2 k. v+ {
( [# O* M' ^/ m
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! Q  i' U  j2 m, y4 \8 t
如果規定要用10進制浮點數輸入0 g1 u: S+ W/ R
那你的輸入級就要多一個轉換電路
: a2 p* i! u/ _可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)( q; O# y* j! m& E9 ], G
0 M' M7 f2 ]* W, f
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
1 P" C! t2 }- i8 g* Z8 W9 T: x那你的輸入級就要多一個轉換電路/ }0 P& |. t7 X: v) b
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)) u" }2 a+ _% f; X/ c: o" u
----------------------------------------8 u' d1 p$ V- d) w6 Y
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?1 o* H8 f& t8 T) {# L& X. {6 [4 M
那在quartus看到的input是不是變成1011001 ? # Z+ ~: z8 K1 A, i! q$ Z, h
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
- ~& K3 X' ]5 ?4 Q還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
7 ^7 V2 A/ V9 ^5 P假如訊號源固定產生小數點3位的訊號~
) T9 I$ ~6 ], y; m% y0 e22.25=> 10110.010   第3位補0) i9 Y+ v" L6 l" ]2 }$ ?' U. t
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
$ j+ _8 [9 x0 w- Q( o1 b& U
" a8 j1 ?% K; R; C/ l( ^  p* m-----------------------------------
3 w+ z1 S: k- G( \5 `: Qinput有辦法設定輸入10進制浮點數嗎?
7 L. s6 R8 w, I2 X& J# i2 {quartus 用32bit 就可以輸入阿
: d$ `9 i4 O! [1 w* V% C( W 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補00 U: e1 N" d: E! w3 g0 D+ J
硬體運算時對齊小數點即可
: U7 @/ b/ D% C. @) Q  l( O; k" L% g6 c
*******************************************************1 _: G6 S( C) C7 X
41b20000 ==>32bit% W; |" k/ M4 M& w
這邊是說輸入已經是IEEE-754格式
. S* @( e, q% o*******************************************************
: Q8 {- U4 P- d& D如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
1 U' B+ g  q+ e- C' v3 y9 J. o22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 * c# |$ l8 h* ~9 n& P3 o
+ U1 a: M% B% a  V
用fixed-point to float-point 轉換電路
8 D1 |, z/ |( X( Z換算成IEEE-754浮點數格式- d* a( V1 y- E8 ]- ^# O
就可以給浮點數ALU 作運算7 a$ j. B  F2 y3 `& _

8 V, D0 t- L9 F[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
, u1 B. `/ a- _7 w# @6 N$ X6 z! n4 z9 b9 D( z, t7 M! L7 d
另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
8 \) F5 U9 D  O) S' x! W1 B0 t但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
6 g5 z* K% Z# F4 z' g如果A<B則無法運算
5 u  {! |5 t4 P1 |% E是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
) _# j$ e/ K+ T2 K! A0 f所以可用布斯Booth 或 SRT 的演算法來完成
$ S8 T, K! l3 c& C+ z9 [- E- c; Z3 d( H1 ^9 f+ f
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"9 z" b2 u3 x0 \! x% k7 D& @
如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
. q; I' @7 L7 [1 [: I' @& H7 B
/ G4 m4 x* }1 t3 r. n另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 04:01 AM , Processed in 0.115006 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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