芯片设计-Q格式
发布网友
发布时间:2024-10-18 13:36
我来回答
共1个回答
热心网友
时间:2024-10-19 19:44
物理量如时间、电压等在计算机系统处理中,必须转化为数字信号,因为数字系统只能处理有限位宽的数字。因此,模拟信号需要量化为数字信号进行运算。量化方法有定点数与浮点数。
定点数(Fixed Point Number)表示中,小数点位置固定。实际应用中,小数点通常隐性设定在最高等位与倒数第二高位之间。浮点数(Floating Point Number)使用指数和尾数来表示数值。
Q格式是二进制定点数格式,由整数位数m和小数位数n组成,表示形式为Qm.n。表示数据需要m+n+1位,多出一位用于符号位。例如,Q23表示24位小数,Q15表示15位小数。
在实际应用中,我们通常使用Q15、Q24、Q30等格式表示数据。以Q23为例,表示范围大致为(-1, 1)。使用Q15格式表示数据范围为(-2^15, 2^15-1),对应(-π, (2^15-1)/2^15 * π)。
在Verilog中定义变量时,如`reg signed[15:0] angle;`,表示数据范围(-2^15, 2^15-1)。通过转换关系`angle = 实际弧度值 * (2^15/π)`,进行标幺化计算。
Q格式运算包括定点加减、乘除与移位。加减运算要求数据格式相同,乘除运算中Q值相加或减,移位等效于Q值增减。
在Verilog中,小数点隐性存在于两个比特之间,如`reg signed[15:0] angle;`,可以视作小数点位于bit15和bit14之间,或bit1和bit0之间,不影响计算结果。
关键点是,Q格式运算需保证两个数的隐性小数点位置一致,否则计算结果可能不符合预期。