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實現時採用定點數。