Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後1 Y1 `* h% p  Q3 Q0 b
與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
1 M. Q  k' l5 o3 j1 P: h並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A$ M  A! H6 ?3 d& J. N6 U' O
41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
. u: S4 j" v. q5 `9 S* @這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
0 U* J6 u1 R# I) h1 [; @( O) l9 Z! }6 r* i3 W/ Z; E
所以 浮點加法器內部 運算級
3 ^( U. n* n% c. o6 d& J" `A=1101_1111.1100
, g: h& {1 y, Y" R$ A: O7 P9 B! _+ oB=0001_0110.0100
7 w$ `9 z( W: G7 _A+B=1111_0110.0000 = -(10)
( X3 K" V& n# W' U# f8 C+ w4 U  A5 ~4 c5 t
再透過浮點數加法器輸出級 轉換為IEEE754格式9 B+ [- w% X4 M1 x: L  k: y% B# e
輸出為C1200000
& A8 J+ m' i1 V- ^5 Y8 Y( L
2 G  n+ c0 N% u/ x+ N; T# t4 I[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^: v2 M+ I) M+ E7 ]

1 P5 E$ @- z0 M另外想問做乘法運算( B2 G' V1 V/ k5 J# t5 e
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
0 S( Q, w7 _5 E3 c6 E8 W1 J除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)' `5 }1 z% a6 X  s5 n
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?, V1 B: k, C* O+ l! \, N1 z: k# B
因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式* [& F# z# U% f8 i9 x0 A
先自行換算22.25 成IEEE-754格式 41b20000 輸入
3 b- Z' P  y- j* r# \' b- p+ q; Z7 H2 R
quartus 用32bit 就可以輸入阿
& |7 {+ S% H7 j/ L1 Y; |0 A
, @; a2 Q( _* M- g% a' q! C~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 m7 l+ E  q& [0 A: J2 J如果規定要用10進制浮點數輸入
9 |. S& J8 g6 N- g  N) e5 i; r( E. K: @那你的輸入級就要多一個轉換電路. k( @- E+ l* K
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)& ?- V2 e: ~) W% x
! z& s) |& T; H! r# v
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入) L9 Y% I+ p" L
那你的輸入級就要多一個轉換電路
+ N6 g# @4 E3 Z  |8 `4 z- Q' ?7 u可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
- C5 b" }/ O& w! n- l3 o; m----------------------------------------6 i, b9 z7 A0 P+ x# j+ Y2 m
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
- Y& p8 W8 M; P6 `& v+ w5 o7 {" S那在quartus看到的input是不是變成1011001 ?
5 \$ y! A. |" K$ ~, D+ f這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
( p. [* ]& i6 B8 y+ c還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
0 N- t, I; ~! Q8 c  E" X  n% G$ A假如訊號源固定產生小數點3位的訊號~9 H9 N4 J9 e0 T5 w5 E+ n) ^
22.25=> 10110.010   第3位補07 k2 a$ U  G( `# J. z
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?6 L  M4 W' Y' T7 M
( z% D! L/ n7 r7 }" b4 q
-----------------------------------8 I+ g1 h0 d( f! ^( r  p
input有辦法設定輸入10進制浮點數嗎?
) h9 t' R5 u" o% Xquartus 用32bit 就可以輸入阿- N: R. ^7 c7 F! F" M* r6 v$ |
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0' l& U' r: `/ O6 v9 u7 m- ]
硬體運算時對齊小數點即可( ^) {4 p- [0 t7 I$ s0 j1 O
0 c. T! s2 i( x5 k/ M3 |! `" l# \
*******************************************************
* R8 B4 O4 h1 w1 f% @% O2 U41b20000 ==>32bit
8 K# ^2 S7 m5 f& L這邊是說輸入已經是IEEE-754格式
$ }& I6 q* p$ Z*******************************************************
7 ~" ]# l1 F+ _7 b$ L, v如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
6 T  Y: U7 V% c0 w22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位
& _, v  o8 T5 Z! c  ~# M8 g2 }0 |3 A4 g$ a
用fixed-point to float-point 轉換電路 . @5 \1 Q5 \" A$ s5 B7 S
換算成IEEE-754浮點數格式
" U+ o8 j# m' Y4 z6 j就可以給浮點數ALU 作運算
7 Y5 I& b# _4 j  j1 w# A+ I$ D: J- \' }! R
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
: U. u8 a0 K0 N, P
6 p+ k& C2 h7 O; Y5 o9 V" P$ Y* A另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除2 _4 N% t+ O2 o
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B, a- @6 c5 y. f7 c2 b
如果A<B則無法運算, a8 M3 B5 L, q& L- G2 K
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP / r$ a0 ^" i7 M0 V/ ?3 M
所以可用布斯Booth 或 SRT 的演算法來完成# y0 I+ D& z+ {

( e" R8 ]% o0 m1 ^8 [" X+ W# ][ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
7 e. M+ q: M& f6 I如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~* ~) w, W) U5 G5 A1 Y0 k) {8 L" _
$ Z8 R8 S6 \" s9 u0 z& x$ v
另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-3 12:50 PM , Processed in 0.129516 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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