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。