Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
& p# e/ z% k  j; w9 O5 b' A$ i與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?* L& ?) E( A! {; E
並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A5 i7 G8 \- Z; ^/ K
41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
# r/ ~, k/ J( L. x' t) |這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
4 K& l9 ?2 {; n6 J- f$ e0 N' b$ r9 R! G0 Z7 @& U
所以 浮點加法器內部 運算級7 v2 a; T4 }4 \  e6 y* {
A=1101_1111.1100" h! r8 b& l) w8 W$ `8 }$ T6 A
B=0001_0110.01000 y% R! X( f5 p( v" C. Z6 Q
A+B=1111_0110.0000 = -(10)1 n/ e0 d+ D5 e8 J9 [5 z
# t4 v2 G0 ~& |* t$ {
再透過浮點數加法器輸出級 轉換為IEEE754格式' u7 d/ K/ i! [$ W4 E. |' F; q
輸出為C1200000
0 b5 B0 t: ^$ d' R0 ~6 |* O0 \3 ^, }( f/ Z
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^) W9 C# C! S8 J& c2 W( [

' O2 E) X5 P0 {; Z另外想問做乘法運算% A4 t) l4 r7 A& ?# l) t
有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?
: u) [. F, ]# |除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)! ?1 C# W0 N/ {( l0 j5 W5 {
假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?& z/ Y) h' {! A) W: |0 ]! D$ {
因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式
1 Q' d, t9 \/ y, C) v. o# m! W先自行換算22.25 成IEEE-754格式 41b20000 輸入
1 m+ M7 V7 s# C% O0 ~2 R  @
. V( O" U) a" P/ S7 i7 lquartus 用32bit 就可以輸入阿. z! x. W& _' W9 P9 G
7 J1 A3 d8 ]) P9 o7 c3 ?7 ]2 ^: A. V
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! k& U$ e% W9 a( }4 T6 m1 y1 e% w
如果規定要用10進制浮點數輸入( a9 @; {! O0 [( H1 h) R( G7 T
那你的輸入級就要多一個轉換電路
. Q1 F8 D/ p. c; p$ m8 w% g可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
' p! G* r! U$ ~7 \9 J9 `8 }
7 j6 \& h) h6 @+ n+ f[ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入
& G; L$ r& R3 V, J那你的輸入級就要多一個轉換電路+ N" ?" e5 t! X) y! E  S
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
" a  {( M8 p6 b% q----------------------------------------  D* P! a7 p1 O$ V8 M
非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?
4 N* q$ k2 g& m: F那在quartus看到的input是不是變成1011001 ? # d: G* V5 X  {: l
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1' R0 @, q& k/ u2 Y4 \0 N  r! @
還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.- R* u3 |$ V4 @1 ^7 L3 O/ L
假如訊號源固定產生小數點3位的訊號~
; g! ]0 Z% Y& {1 V$ ^+ e22.25=> 10110.010   第3位補0
2 [1 G) g) _( o- ~5 q. S10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
" V* O, J* }9 d1 E/ s7 D0 d3 Y1 v& T* b0 X) P7 @# {
-----------------------------------% U* W" O! [  Q- W
input有辦法設定輸入10進制浮點數嗎?" V) s$ _& _; ]: M) o
quartus 用32bit 就可以輸入阿8 @, n+ @, a! D9 m* Y! m
這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0; i8 X$ s% `2 M
硬體運算時對齊小數點即可; G1 N& f. n! \- i  E* B

% ~! c6 l; A$ T& z1 ?9 {5 o*******************************************************& G, g6 j& a# B  M& s) D7 h
41b20000 ==>32bit
  e. g4 i! D2 |3 F% X! K% Q+ m這邊是說輸入已經是IEEE-754格式2 ]( z9 _( F, d6 G
*******************************************************+ q3 A! e! H+ a
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point" S2 P9 w) |( A: t% b+ G6 \
22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 ' Q+ a1 ]# y' K: I' S  Z( S( ~
+ i, ?' ^0 {  G0 ~  r
用fixed-point to float-point 轉換電路
& j6 B$ q4 X6 F% X. T# l7 K2 x換算成IEEE-754浮點數格式1 U  y. k4 Q- _0 f, @5 a. N, Q
就可以給浮點數ALU 作運算! Z( {- e& a% n

% K6 `3 h4 ~- V3 `2 i' |) r[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
- p/ k4 a9 p8 E9 B1 g4 ?
, Y- Q1 \; M& B# c& ]另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
5 ?+ G5 V! L3 n% I3 g5 }3 N, W$ h! o但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B
, w& I: {3 a5 j6 V如果A<B則無法運算
& e% A0 K" _  \: q9 i是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
) J. [$ F+ w0 I, m5 O所以可用布斯Booth 或 SRT 的演算法來完成
# P5 b6 v+ \* |8 j" V) }3 d1 s' |" O- W  o
[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"
: `& K/ v5 x5 w如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
1 Q. R6 Z: Y8 H: v0 x. F/ v% V  A
7 J3 L8 {4 Y* x* ^8 ?' Y另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-14 07:31 AM , Processed in 0.123516 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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