Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
21#
 樓主| 發表於 2009-10-19 20:05:06 | 只看該作者
mas大..但是如果轉成二補數42010000之後
& z  z+ O, {! S3 Z* ?$ @, D6 k與41b20000 偏移值調整後42590000 做有效位數相加=425A0000 ←這樣吧@@?
8 w0 ~: j8 P+ k1 o3 Q4 c並不等於C1200000 的說....
22#
發表於 2009-10-21 12:08:33 | 只看該作者
42010000 (-32.25) 是IEEE754格式 也就是浮點數加法器的輸入A
: @4 u; h1 g1 P3 y7 e41b20000 (22.25) 是IEEE754格式 也就是浮點數加法器的輸入B
4 O9 W* g: F, p) m, U" B; P這個浮點加法器內部輸入級 的功用就是偏移值調整後做有效位數相加
3 N2 o1 Y, M' b/ A! C: {" f( i1 g5 Q4 _2 p0 t1 Y0 m
所以 浮點加法器內部 運算級
6 I* y# u+ r$ a1 V0 _A=1101_1111.1100
- H/ b/ r7 p5 t0 YB=0001_0110.0100
, W. D7 L, M* E. j; [; A7 `A+B=1111_0110.0000 = -(10)
( x/ p! ^8 R+ z" u6 `7 n; ~
1 q: A6 a! g* x2 L4 i% g% o& Y3 P. c: {再透過浮點數加法器輸出級 轉換為IEEE754格式
* X9 u" T) j7 u3 X& m' S輸出為C1200000. G/ E1 W' X# k8 g5 V" ~+ g9 s; m
9 [: D0 |8 _: ?
[ 本帖最後由 masonchung 於 2009-11-2 11:16 AM 編輯 ]

評分

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

查看全部評分

23#
 樓主| 發表於 2009-10-21 20:20:14 | 只看該作者
謝謝大大提點~又學到東西了...^^
+ p! a1 c$ ?4 V) Y! o/ B, C5 y
5 |* ]! I5 D# D0 _% [另外想問做乘法運算
! w6 u/ @! n) N, P, @- o: }# ]2 `4 u有效位數直接a*b跟  a+a 加b次  哪一種作法在硬體上速度較快呢?, i1 q$ R) n2 i! |4 r
除法也是如此嗎?
24#
 樓主| 發表於 2009-10-23 20:43:11 | 只看該作者
大大~另外請問使用quartus做波形模擬的時候,input有辦法設定輸入10進制浮點數嗎? EX: (22.25)
$ m3 ]/ H0 k3 s. \) j/ {; [假如無法使用,這樣的話10進制的浮點數數值要如何輸入? 難道是輸入 A1= 22   A2=0.25  A1+A2=A  這樣訊號要怎麼分離@@~不知道大大有沒有聽的懂我的意思^^"
25#
發表於 2009-10-29 11:12:30 | 只看該作者
input有辦法設定輸入10進制浮點數嗎?
; @! v' F% d( z因為你的電路功能是浮點數ALU 輸入自然是IEEE-754格式$ g/ K3 r& Y" _4 D9 y: B
先自行換算22.25 成IEEE-754格式 41b20000 輸入: E# y5 X" K9 m

, G3 f5 I  e' Vquartus 用32bit 就可以輸入阿
3 {* A+ v8 U8 {' T
; |, J7 D8 D2 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~! T+ V7 A6 B& Q. b  m
如果規定要用10進制浮點數輸入2 A1 L; [' ~: N
那你的輸入級就要多一個轉換電路/ G% i) p0 f6 {, E- }: l
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)
* z; z' f. e9 ?1 v, E# M  I( }9 O  r
; j5 {1 ^5 X4 T. U6 q% F& ][ 本帖最後由 masonchung 於 2009-10-29 01:13 PM 編輯 ]

評分

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

查看全部評分

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

回復 25# 的帖子

如果規定要用10進制浮點數輸入3 @/ [2 L  J9 V$ v$ E
那你的輸入級就要多一個轉換電路  W3 y) z; x. _# s. c; l/ e
可把非IEEE 754格式的浮點數(Fixed Point)轉成IEEE 754格式(Float Point)$ \/ ~6 ^: M  f
----------------------------------------
1 L/ X1 w5 n" c5 Y8 E% t5 V非IEEE 754格式的浮點數 輸入~ 是類似(22.25) => 10110.01 輸入至input ?2 b! `; {- W& s/ G
那在quartus看到的input是不是變成1011001 ? ( ^2 G% ^6 L: r9 N
這樣的話我怎麼曉得我輸入訊號小數點位置在哪@@?(10.5)=>1010.1
% b. I! r9 S2 N( ?$ H還是說要給input的訊號,其訊號源必須要產生固定小數點N位的數值.
- e) ~$ Q% Y- y6 `假如訊號源固定產生小數點3位的訊號~
5 u# k6 K' C4 p- k. }22.25=> 10110.010   第3位補0  y6 z/ |8 p8 L
10.5  => 1010.100   後2位補0至第3位....是這樣嗎?  如果是這樣就可以在程式內部判斷[2:0]為小數[3:N]為整數.......不知道是不是這樣做?
* V# A6 e$ l, J- O! r5 _% D% \
-----------------------------------8 D5 `$ x2 X  ?# ?( j+ @; U- {
input有辦法設定輸入10進制浮點數嗎?2 @, b# G* u. E$ x* e
quartus 用32bit 就可以輸入阿
) x2 D* v  m9 G4 h3 w6 l* N 這邊大大是說 我input寫成32bit就可以在模擬的時候使用類似22.25十進制的浮點數?
27#
發表於 2009-11-2 11:36:10 | 只看該作者

回復 26# 的帖子

小數點是人判定的,輸入不足位數要補0
/ u! g3 `; G( X* I8 v9 [0 U硬體運算時對齊小數點即可6 e& P  V9 C+ [6 O" r+ ~/ Q
7 a1 M6 V) P! k
*******************************************************. P: i- z/ Y5 V  y
41b20000 ==>32bit$ t4 z+ |7 F. Z* Z; O; j
這邊是說輸入已經是IEEE-754格式
" O1 z# t7 Q# W- T' ?5 O% z) R1 O+ e$ o*******************************************************$ u' R4 |' ]' O$ d
如果輸入是10進位浮點數 輸入quartus 後 要換成sign bit + 32-bit fixed-point
' J0 y& [& I" C: h$ _& X22.25 = (10110.01) 二進位 = {sign-bit=0,0016.4000} 十六進位 , L  `/ o+ k1 i; _, y2 e
6 y' A. \- Z6 q2 c2 ~- v
用fixed-point to float-point 轉換電路
+ E& Y9 E* b5 H! I$ S+ ?+ \' j5 ^) k換算成IEEE-754浮點數格式- z: [/ O& W1 c! _9 @, \1 n
就可以給浮點數ALU 作運算
( U& D# w8 J* ?6 [% }- O" N: t* f, K$ S# G" x7 i! Q4 y
[ 本帖最後由 masonchung 於 2009-11-2 11:41 AM 編輯 ]
28#
 樓主| 發表於 2009-11-2 19:56:24 | 只看該作者
謝謝大大~我知道怎麼做了
& H7 Z4 O& ?& D* e
6 w- M5 F7 A, G另外請問,做浮點數除法運算時 做法為 指數相減 有效數相除
( X8 N' U8 V, m2 m4 @2 s4 y" p% c但是為何A[22:0]跟B[22:0]的有效數相除時  C=A/B2 F* _0 w6 u  N/ a  Q% G1 P# N
如果A<B則無法運算2 K/ N: i1 ?  ?: {4 p. }3 U* T3 b# q
是除法運算需要用其他方式完成嗎?
29#
發表於 2009-11-4 10:21:18 | 只看該作者

回復 28# 的帖子

除法運算在FPGA 沒有DW IP
; k# {% C1 Q6 g. Z% k) e  _/ P# n所以可用布斯Booth 或 SRT 的演算法來完成
3 i1 M4 j5 k6 ~, X. I" X/ Y6 v
* a  ~4 l) `3 h" `# H3 g( ~[ 本帖最後由 masonchung 於 2009-11-4 10:27 AM 編輯 ]

評分

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

查看全部評分

30#
 樓主| 發表於 2009-11-10 22:47:59 | 只看該作者
大大~請問BOOTH做除法器.是只要把乘法的+ -規則相反變- +就可以了嗎@@"4 H# w) V' ]# x2 I/ d+ W9 N, a
如果我乘法要一次判斷比較多位元規則該怎麼定呢??~因為網上找到的大多都是用2BIT作判斷~
' q# D/ u! u$ s! ^, H1 f
$ r2 O  N* g1 {- w, D" ~/ s另外請問一下.SRT俗稱是^^?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-15 07:55 PM , Processed in 0.128517 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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