1、定點數定義
定點數是指小數點固定的隱含在某一位置上的一類數據
有符號數:
以四位有符號數1111為例,其數值大小為:1x(-2^(0))(4+2+1)= -7。
2、補碼
正整數的補碼:與原碼相同。
負整數的補碼:將其原碼除符號位外的所有位取反,之后加1。
3、定點純小數
定點純小數是指整數部分為0的定點小數,分為有符號定點純小數和無符號定點純小數,S為符號位,小數點在小數位的最左側。
對於字長為wf的無符號定點小數,其數值可表示為:
Bi表示對應的位為1,以四位無符號定點純小數1001為例:
其值為value=b0 x 2^(0-4) +b3 x 2^(3-4) =0.0625+0.5=0.5625
對於字長為wf+1的有符號定點純小數,其數值表示為:
同樣以1001為例,字長為4,wf=3,符號位為1,尾數位001,其值表示為:
value= (-1)^(1) + 2^(0-3) =-1+0.125 = -0.875
4、定點帶小數
即整數部分不為0的小數,分為有符號定點帶小數額無符號定點帶小數,S為符號位,定點數位寬為w,小數位位寬為wf:
對於無符號定點帶小數,正常計算即可,其計算公式為:
對於有符號定點帶小數,其計算公式為:
5、定點數據的上溢和下溢
上溢(overflow):運算結果超出了定點數的整數部分所能表示的范圍,
下溢(underflow):運算結果小數部分超出了小數部分能表示的范圍。
UFIX_4_2,表示無符號型定點小數,全長為4,小數部分寬度為2,所能表示的范圍為:[0,3.75],精度為0.25,如果運算結果為4,即發生上溢,如果運算結果為0.125,則發生下溢。
6、浮點數和定點數的比較
與定點數相比,采用浮點數進行算法描述:
(1)、具有更寬的動態范圍。
(2)、可縮短復雜運算的開發周期。
(3)、統一的標准數據格式。
劣勢:
(1)、浮點運算會消耗更多的查找表、寄存器和乘法器。
(2)、浮點運算會給布線資源帶來壓力,導致最大運行頻率降低。
通常在算法建模時采用浮點數,而在FPGA實現時采用定點數。