1、题目
在FPGA中做小数乘法时,一般需要对定点小数量化处理。
量化过程中首先需要确定量化的位宽,位宽越大量化的精度越高。
如题所述,对12.918做无损定点化,首先需要确定对整数部分的量化位数。整数为12,无损量化必须采用4bit;
小数部分为0.918,假如采用12bit位宽,整数部分4bit,那么小数部分只有8bit。8bit所能表达的最大的整数为255(注意,定点小数在FPGA运算过程中是没有小数点的,比如12.918,实际存储的是12.918的二进制形式,所以8bit表示小数部分最大为255,在后续反量化时再除以256,相当于小数点右移8位即可)。0.918256 = 235.008,换算为整数为235,该值即为对0.918做8bit量化后的整数值。
下面需要对235进行反量化得到:235 / 256 = 0.91796875,和0.918相比误差为0.00003125。因为做的是无损定点化,所以考虑的应该是有效位,0.918的有效位为3位,而误差在小数点后面第三位为0,所以可以实现无损定点化。