verilog 浮点转定点_定点数和浮点数
定點(diǎn)數(shù)
定點(diǎn)數(shù)是指,數(shù)字在小數(shù)點(diǎn)之后和之前具有固定的位數(shù)。
可以用Qm.n表示法進(jìn)行表示.
m位為整數(shù)部分?
n位小數(shù)部分
有符號(hào)數(shù)的總位數(shù)N = m + n + 1
當(dāng)n=0時(shí),則定點(diǎn)數(shù)用來(lái)存儲(chǔ)整數(shù)。
定點(diǎn)數(shù)(整數(shù))
定點(diǎn)數(shù)可以用來(lái)存儲(chǔ)整數(shù),包括正整數(shù)和負(fù)整數(shù)。定點(diǎn)(整數(shù))表示的常見格式有unsigned integer, offset binary, sign and magnitude, two’s complement。
假設(shè)每個(gè)整數(shù)都用4個(gè)bit來(lái)表示,則在上面四種格式下,二進(jìn)制和十進(jìn)制之間的關(guān)系如下圖所示。
Unsigned integer是最直觀的二進(jìn)制格式,用windows自帶的計(jì)算器就能實(shí)現(xiàn)換算。
?
Offset binary與unsigned integer類似,不同之處是相同的二進(jìn)制表示,offset binary下代表的十進(jìn)制數(shù)與unsigned integer下代表的十進(jìn)數(shù)有一個(gè)整體偏移,這樣就可以表示負(fù)數(shù)。
比如在圖1中,4?bit二進(jìn)制數(shù)對(duì)應(yīng)于整數(shù)-7~8,在offset binary格式下,十進(jìn)制數(shù)整體偏移了7。
對(duì)于這個(gè)偏移量,沒(méi)有固定標(biāo)準(zhǔn),比如上面的偏移量是7,也可以為8。在ADC和DAC中,經(jīng)常會(huì)用到offset binary.
sign and magnitude是表示負(fù)整數(shù)的另一種簡(jiǎn)單方法。?最左邊的位為符號(hào)位,0代表正數(shù),1代表負(fù)數(shù)。其他位是數(shù)字絕對(duì)值的標(biāo)準(zhǔn)二進(jìn)制表示形式。因?yàn)閷?duì)于零有兩種表示形式,即0000(正零)和1000(負(fù)零),所以會(huì)導(dǎo)致一個(gè)浪費(fèi)的位模式。
?
Two’s complement(二進(jìn)制補(bǔ)碼)是硬件工程師喜歡的格式,也是計(jì)算機(jī)中通常表示整數(shù)的方式。?最左邊的位為符號(hào)位,0代表數(shù)字為正數(shù)或0,1代表數(shù)字為1。
其編碼模式可以理解為:
對(duì)于4bit二進(jìn)制,其二進(jìn)制表示仍為0000~1111。如上圖所示,將圓盤分為16等分,把0000~1111依次帶入。然后以0為分界線,按順時(shí)針轉(zhuǎn),即0000~0111代表0~7;按逆時(shí)針轉(zhuǎn),即1111~1000代表-1~-8。
采用二進(jìn)制補(bǔ)碼時(shí),對(duì)于正數(shù),在十進(jìn)制數(shù)和二進(jìn)制補(bǔ)碼之間進(jìn)行轉(zhuǎn)換很簡(jiǎn)單,即從十進(jìn)制到二進(jìn)制的簡(jiǎn)單轉(zhuǎn)換。 對(duì)于負(fù)數(shù),通常使用以下算法:
(1)取十進(jìn)制數(shù)的絕對(duì)值,
(2)將其轉(zhuǎn)換為二進(jìn)制,
(3)對(duì)所有位進(jìn)行補(bǔ)碼(1變?yōu)榱?#xff0c;0變?yōu)?),
(4)在二進(jìn)制數(shù)上加1。
二進(jìn)制補(bǔ)碼對(duì)人類的大腦來(lái)說(shuō)比較復(fù)雜,但是在進(jìn)行數(shù)據(jù)處理時(shí),則非常方便。
定點(diǎn)數(shù)(小數(shù))
?
以上是當(dāng)N=16時(shí),不同的m/n值時(shí),所對(duì)應(yīng)的動(dòng)態(tài)范圍和精度。
浮點(diǎn)數(shù)(實(shí)數(shù))
浮點(diǎn)數(shù)的編碼方案比定點(diǎn)的編碼方案復(fù)雜,其基本概念與科學(xué)計(jì)數(shù)法中的基本思想相同,兩者的不同點(diǎn),在與浮點(diǎn)數(shù)的基為2,科學(xué)計(jì)數(shù)法的基為10。
ANSI/IEEE Std. 754-1985標(biāo)準(zhǔn)將32bit數(shù)據(jù)形式定義為單精度(single precision),64bit數(shù)據(jù)形式定義為雙精度(double precision)。
以單精度為例,將其32位分為三個(gè)獨(dú)立的組:位0到22形成尾數(shù)(記為M),位23到30形成指數(shù)(記為E),位31是符號(hào)位(記為S)。則:
?
IEEE標(biāo)準(zhǔn)將最大數(shù)和最小數(shù)的范圍略微縮小,分別為和。
與定點(diǎn)設(shè)計(jì)相比,浮點(diǎn)設(shè)計(jì)會(huì)消耗更多的FPGA資源,帶來(lái)更高的消耗。所以在滿足指標(biāo)要求的情況下,優(yōu)先采用定點(diǎn)設(shè)計(jì),可以有助于降低FPGA資源的使用、減少功耗。
文獻(xiàn)[3]中,則闡述了,在保證指標(biāo)的情況下,采用定點(diǎn)設(shè)計(jì),可以減少資源使用,進(jìn)而降低功耗。
參考文獻(xiàn):
[1]The Scientist and Engineer's Guide to Digital Signal Processing_Ch4
[2]EE 3610 Digital Systems
[3]Ambrose Finnerty and Hervé Ratigner,Reduce Power and Cost by Converting from Floating Point to Fixed Point
[4]Floating Point Converter:https://babbage.cs.qc.cuny.edu/IEEE-754.old/Decimal.html
相關(guān)文獻(xiàn)下載,可回復(fù)消息:“?定點(diǎn)、浮點(diǎn)數(shù)文獻(xiàn)下載“
總結(jié)
以上是生活随笔為你收集整理的verilog 浮点转定点_定点数和浮点数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php 比java 快_php比java
- 下一篇: shell 字典_腾讯T4周末不陪对象,