Altifigence Academy

5 / 24 · 概念

定點位元與單位

以 F=4 將 0.5 與 −1.25 相乘,再加入 F=8 的偏置 0.25。累加器編碼與實數值各是多少?

為整數附上單位

定點以整數編碼與固定尺度表示實數。我們指定總共八位元、二補數有號儲存,以及四個小數位元 F=4。編碼 q 代表 q×2⁻⁴。Q 格式命名慣例對符號位是否算入整數位可能不同,因此應明確寫出總位元寬度、是否有號與 F。編碼 −128 到 127 代表 −8 到 7.9375。

相同位元樣式會因尺度而改變意義。編碼 24 在 F=4 代表 1.5,在 F=3 卻代表三。即使使用寬位元加法器,將不同單位的編碼相加仍是錯誤的。先對齊尺度,並定義對齊所引入的捨入與溢位。

計算範例

將 1.5 編碼為 24,−0.75 編碼為 −12。整數乘積為 −288。小數位元數相加,因此乘積為 F=8,代表 −288/256=−1.125。兩個有號八位元運算元的完整乘積可容納於十六位元,但多個乘積的總和需要另外計算累加器位元寬度。每個乘積都捨入回 F=4,會在每一項引入誤差。我們的契約在累加期間保留乘積尺度,只在輸出時捨入一次。

實數偏置 0.5 在 F=8 成為編碼 128。加入後得到 −160,代表 −0.625。若加入 F=4 的偏置編碼八,就會使用錯誤的單位。應在儲存編碼旁記錄偏置尺度。

擴寬負的二補數編碼時,複製符號位元。−12 的八位元表示為 11110100;十六位元延伸為 1111111111110100。零延伸會將它變成正 244。將 RTL 運算元與中間值宣告為有號,並明確指定其位元寬度,不要假設窄位元目的端會修正運算式尺寸。

二的冪次尺度讓位移關係容易檢查。一般仿射量化則使用其他正尺度與零點。在設計筆記中一起保留編碼、尺度與表示值,才能清楚理解乘法、累加與最終轉換。

自己試試看

以 F=4 將 0.5 與 −1.25 相乘,再加入 F=8 的偏置 0.25。累加器編碼與實數值各是多少?

查看解說

編碼為八與 −20,乘積為 −160。偏置編碼為 64。F=8 的累加器 −96 代表 −0.375。

此選擇適用於本瀏覽器,隨時可從頁尾變更。