Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
6 v0 y4 a! I# x' q5 h* f7 |! ~. I與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?1 n/ u2 ?- I, |) J- U7 }- G) M  W
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
# a- |: m* R0 n41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B' l; \% @# z' U9 z( q
這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
, m- O! u, O9 y2 p
2 x$ O3 u* r) \, Z6 z8 I所以 浮點加法器內部 運算級) h+ y; l1 x! ~) Q6 T
A=1101_1111.1100  |* v, H, o: ^* A
B=0001_0110.0100" }; L6 J) V, Y6 D
A+B=1111_0110.0000 = -(10)
% h9 l: A9 r' M0 O( W& _
$ U4 \1 l& h& F6 O% g- x! ?- F再透過浮點數加法器輸出級 轉換為IEEE754格式9 E7 X+ w7 q5 o  b8 o
輸出為C1200000
& V3 b4 D; {" K5 l4 C4 _
0 o% ?( {% z! _. i. b. {[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
/ ^/ t1 U9 t* T& o% C0 X, k9 W" J9 w* r# @, k7 Q9 [- V
另外想問做乘法運算
& H. |* U( X4 n有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?  `9 ?- ~: W& I9 S. a6 e! R
除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
# G8 g4 ?( D. k# v假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
$ b% V" C7 J- ?因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
2 @2 B6 d. `, c! L1 d先自行換算22.25 成IEEE-754格式 41b20000 輸入
+ J' l8 a+ e: `' i# j% ~# I7 v
. o6 i. O% ?* R9 k$ ?quartus 用32bit 就可以輸入阿$ f" Z7 m: L# [! {+ M

1 S$ D5 e+ v& M4 E! T~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 M1 M+ a/ l+ o4 H* {" r如果規定要用10進制浮點數輸入# o' |) ^1 m) M$ q- K2 [* m3 u& X3 L
那你的輸入級就要多一個轉換電路
/ V3 v, X# h8 I: G可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)) S* f! b0 l0 q
) Q1 d2 T% ^: i7 v5 d9 z
[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
) b* ^+ @3 d0 u2 M0 w, {  ^8 W; {那你的輸入級就要多一個轉換電路
9 Q( s: ^* h5 ]8 \" M: M/ G可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)+ H7 n3 j+ T, L
----------------------------------------& v/ K$ ^5 P: c  m
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
% B( E) B" c1 f那在quartus看到的input是不是變成1011001 ? 2 F8 S* Q/ _/ T, r7 v( t9 ?/ L
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
8 W/ P0 z. i+ @2 S! K. G還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
+ i9 H. ^0 f/ w+ f假如訊號源固定產生小數點3位的訊號~
3 e# A8 ?, e% H; E. A22.25=> 10110.010   第3位補0, z$ _/ f7 q' D: k' o$ `
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
; z7 c1 U& y" i! N
) Y8 I# o9 b; Q/ \/ }. C7 X-----------------------------------, n+ U8 ?9 r0 |2 m
input有辦法設定輸入10進制浮點數嗎?2 Y2 n( B- |* J' v, O8 V  x" b
quartus 用32bit 就可以輸入阿3 x9 u0 a- N" [1 O
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0. s8 S* T% i! P3 `8 ~; d
硬體運算時對齊小數點即可- U3 {9 U: F7 I
/ Q" W+ j5 C% P- Y: V
*******************************************************
4 ^% F) u0 I0 ]3 B; |8 n  j6 f41b20000 ==>32bit  K7 @- M4 m0 V& Z( U
這邊是說輸入已經是IEEE-754格式
& g; u9 z; x! `9 P8 m+ N) m7 M*******************************************************
& c! t  n% }# d! j. E/ N) `, d如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
8 l3 D7 M, h7 l' b  z: g( a$ x7 Z22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 - p6 @* X; Z% A: Y& D7 ~1 b* q
5 q* C: |: w6 c! f
用fixed-point to float-point 轉換電路
" c) i8 t; ^& q& `* ^+ h0 L換算成IEEE-754浮點數格式
0 B' x9 ]* X3 Z6 c* r. y  v6 E就可以給浮點數ALU 作運算4 I/ {+ S7 C( i* h2 Q
3 K1 P" j3 |3 h9 u: E! U
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了/ K  B" {. G2 c+ J/ l

5 Y; b1 ~! m3 z" ]1 _1 Z' [; b+ Z另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除$ H. v$ {# \* ~2 \$ C, F
但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
8 [) M4 y+ |0 {$ m如果A<B則無法運算
* S3 O; L! |( A: a是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP 3 M8 W: ^5 D6 K. s! H4 v6 T9 c
所以可用布斯Booth 或 SRT 的演算法來完成
- J$ y2 k" W# k" B
% L  W/ D! A* b/ d[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
6 c, d2 S# P7 x' G6 a7 q0 q9 q如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
0 K! Y+ S' U7 \! {2 R% q8 m
0 t: q0 F, M' B; ~! c. i+ }另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-27 02:32 AM , Processed in 0.123007 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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