ADC的自适应滤波数字校准电路和方法

申请号 CN201510067902.1 申请日 2015-02-10 公开(公告)号 CN104660260A 公开(公告)日 2015-05-27
申请人 上海华虹宏力半导体制造有限公司; 发明人 张东升;
摘要 本 发明 公开了一种ADC的自适应滤 波数 字校准 电路 ,包括:控 制模 块 ,定点加法器,定点乘法器; 控制模块 包括:有限状态机,移位寄存器,寄存器阵列;定点加法器实现对加数和被加数编码后相加;控制模块控制完成全部校准 算法 运算操作,校准算法运算操作步骤包括:控制模块控制从外部ADC获取原始二进制值;根据权重和扰动 信号 计算误差值,并根据误差值进行权重更新和 扰动信号 更新运算;增益校准运算;进行最后结果运算。本发明还公开了一种ADC的自适应滤波数字校准方法。本发明能提高自适应滤波运算速度以及 精度 ,且具有友好的 接口 协议,方便嵌入到现有各种ADC 逻辑电路 中。
权利要求

1.一种ADC的自适应滤波数字校准电路,其特征在于,自适应滤波数字校准电路包括:
制模,多个定点加法器,定点乘法器;所述控制模块包括:有限状态机,移位寄存器,寄存器阵列;
多个所述定点加法器用于实现并行加法运算,各所述定点加法器都分别包括3个输入端和2个输出端,3个输入端分别输入加数、被加数和数据编码指示信号,1个输出端输出数据溢出指示信号,另1个输出端输出加法运算结果,所述数据编码指示信号由所述有限状态机提供并包括4位,所述加数和所述被加数分别在所述数据编码指示信号的2位信号的控制下进行格式变化、所述定点加法器对格式变化后的所述加数和所述被加数进行加法运算;
所述控制模块控制整个所述自适应滤波数字校准电路的工作状态并控制完成全部校准算法运算操作,校准算法运算操作步骤包括:
步骤一、所述控制模块控制从所述外部ADC获取第一个原始二进制值,在校准使能信号为使能状态时,接着获取第二个原始二进制值,之后进行步骤二;在校准使能信号为非使能状态时,所述控制模块控制获取第一个原始二进制值后直接进入步骤四;
步骤二、根据权重和扰动信号计算误差值,并根据误差值进行权重更新和扰动信号更新运算,完成更新运算后,判断是否已经过M次更新运算,M大于1;如果已经经过M次更新运算,则判断误差值是否小于2LSB,如果误差值小于2LSB则进入增益校准运算并以更新后的权重为最优权重,否则直接停止运算并在所述控制模块的error端口输出一个周期的高脉冲;如果更新运算次数小于M,则重新进行步骤一;
步骤三、增益校准运算,首先计算最优权重和,之后进行增益修正运算,不断调整ADC输出特性曲线增益系数,一直到增益误差小于2LSB,之后进入步骤四;
步骤四、进行最后结果运算,最后结果运算为采样最优权重对所述第一个原始二进制值的各位进行带权重相加,获得求和值后乘以增益系数,最后结果运算之后从所述控制模块的bincode端口给出数据结果,并从eoc端口输出一个周期的高脉冲信号。
2.如权利要求1所述的ADC的自适应滤波数字校准电路,其特征在于:步骤二中所述误差值的计算公式为:
其中[]补表示采用补码表示,error表示误差值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,bi+表示所述第一个原始二进制值的第i位的值,bi-表示所述第二个原始二进制值的第i位的值;Wi表示所述第一个原始二进制值的第i位所对应的权重值,所述第一个原始二进制值和所述第二个原始二进制值的第i位所对应的权重值相同,diff表示扰动信号的值;
所述误差值的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wi时所对应的两位所述数据编码指示信号值为{bi+,bi-},加法运算中操作数为diff时所对应的两位所述数据编码指示信号值为01;
通过所述移位寄存器进行左移一位操作来实现乘2。
3.如权利要求2所述的ADC的自适应滤波数字校准电路,其特征在于:步骤二中所述权重更新公式为:
[Wi(n+1)]补=[Wi(n)]补+U×[-(bi+-bi-)×error(n)]补;
Wi(n)表示所述第一个原始二进制值的第i位所对应的第n次更新前的权重值,error(n)表示第n次更新前的误差值,Wi(n+1)表示所述第一个原始二进制值的第i位所对应的第n次更新后的权重值,所述权重更新公式适用于i的取值为0到k-1的权重,Wk为最高位权重值,Wk初始值为固定值且更新时不改变,i的取值为0到k-1的权重Wi的初始值的都为0;U为收敛因子;所述权重更新运算中操作数为error(n)时所对应的两位所述数据编码指示信号值为{bi-,bi+},操作数为Wi(n)时所对应的两位所述数据编码指示信号值为10;
步骤二中所述扰动信号更新公式为:
[diff(n+1)]补=[diff(n)]补+U×[error(n)]补;
diff(n)表示第n次更新前的所述扰动信号值,diff(n+1)表示第n次更新后的所述扰动信号值;所述扰动信号更新中加数和被加数的两位所述数据编码指示信号值为10。
4.如权利要求1或2所述的ADC的自适应滤波数字校准电路,其特征在于:步骤三的所述增益校准运算的计算最优权重和的公式为:
Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,sum_Wquant表示最优权重和。
5.如权利要求4所述的ADC的自适应滤波数字校准电路,其特征在于:步骤三中的所述增益校准运算的增益修正运算包括如下分步骤:
步骤31、在所述控制模块的控制下由所述定点乘法器完成如下求积运算:
sum_temp=slope×sum_wquant;
slope表示增益修正系数,sum_temp表示增益修正系数带权重积;
步骤32、在所述控制模块的控制下由一个所述定点加法器完成如下增益修正误差计算:
[slope_err]补=16383+[-sum_temp]补;
slope_err表示增益修正误差;操作数为sum_temp时所对应的两位所述数据编码指示信号值为01;如果计算所得的slope_err小于2LSB说明已经找到增益修正系数,直接进入步骤四,否则进入步骤33;
步骤33、更新增益修正系数,采用如下公式进行更新:
-4
[slope(m+1)]补=[slope(m)]补+[slope_err(m)×0.5]补×2.44×10 ;
slope(m)表示第m次更新前的误差值增益修正系数,slope(m+1)表示第m次更新后的误差值增益修正系数,slope_err(m)表示第m次更新前的增益修正误差;slope_err(m)通过所述移位寄存器先完成右移13位,加法中操作数slope(m)和slope_err(m)所对应的两位所述数据编码指示信号值都为10;增益修正系数更新后反回到步骤31。
6.如权利要求1所述的ADC的自适应滤波数字校准电路,其特征在于:步骤四进行最后结果运算的公式为:
result表示最后结果,k表示所述第一个原始二进制值的位数,当校准使能信号不使能时bi表示所述第一个原始二进制值的第i位的值,当校准使能信号使能时bi表示所述第一个原始二进制值和所述第二个原始二进制值的和的第i位数,Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,slope表示所述增益调整系数;所述最后结果运算的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wiopt时所对应的两位所述数据编码指示信号值为由bi决定,bi为1时,对应的两位所述数据编码指示信号值为10,否则为00,计算中乘法运算用所述定点乘法器运算得到。
7.一种ADC的自适应滤波数字校准方法,其特征在于:采用自适应滤波数字校准电路进行校准,自适应滤波数字校准电路包括:控制模块,多个定点加法器,定点乘法器;所述控制模块包括:有限状态机,移位寄存器,寄存器阵列;
多个所述定点加法器用于实现并行加法运算,各所述定点加法器都分别包括3个输入端和2个输出端,3个输入端分别输入加数、被加数和数据编码指示信号,1个输出端输出数据溢出指示信号,另1个输出端输出加法运算结果,所述数据编码指示信号由所述有限状态机提供并包括4位,所述加数和所述被加数分别在所述数据编码指示信号的2位信号的控制下进行格式变化、所述定点加法器对格式变化后的所述加数和所述被加数进行加法运算;
所述控制模块控制整个所述自适应滤波数字校准电路的工作状态并控制完成全部校准算法运算操作,校准算法运算操作步骤包括:
步骤一、所述控制模块控制从所述外部ADC获取第一个原始二进制值,在校准使能信号为使能状态时,接着获取第二个原始二进制值,之后进行步骤二;在校准使能信号为非使能状态时,所述控制模块控制获取第一个原始二进制值后直接进入步骤四;
步骤二、根据权重和扰动信号计算误差值,并根据误差值进行权重更新和扰动信号更新运算,完成更新运算后,判断是否已经过M次更新运算,M大于1;如果已经经过M次更新运算,则判断误差值是否小于2LSB,如果误差值小于2LSB则进入增益校准运算并以更新后的权重为最优权重,否则直接停止运算并在所述控制模块的error端口输出一个周期的高脉冲;如果更新运算次数小于M,则重新进行步骤一;
步骤三、增益校准运算,首先计算最优权重和,之后进行增益修正运算,不断调整ADC输出特性曲线增益系数,一直到增益误差小于2LSB,之后进入步骤四;
步骤四、进行最后结果运算,最后结果运算为采样最优权重对所述第一个原始二进制值的各位进行带权重相加,获得求和值后乘以增益系数,最后结果运算之后从所述控制模块的bincode端口给出数据结果,并从eoc端口输出一个周期的高脉冲信号。
8.如权利要求7所述的ADC的自适应滤波数字校准方法,其特征在于:步骤二中所述误差值的计算公式为:
其中[]补表示采用补码表示,error表示误差值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,bi+表示所述第一个原始二进制值的第i位的值,bi-表示所述第二个原始二进制值的第i位的值;Wi表示所述第一个原始二进制值的第i位所对应的权重值,所述第一个原始二进制值和所述第二个原始二进制值的第i位所对应的权重值相同,diff表示扰动信号的值;
所述误差值的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wi时所对应的两位所述数据编码指示信号值为{bi+,bi-},加法运算中操作数为diff时所对应的两位所述数据编码指示信号值为01;
通过所述移位寄存器进行左移一位操作来实现乘2。
9.如权利要求8所述的ADC的自适应滤波数字校准方法,其特征在于:步骤二中所述权重更新公式为:
[Wi(n+1)]补=[Wi(n)]补+U×[-(bi+-bi-)×error(n)]补;
Wi(n)表示所述第一个原始二进制值的第i位所对应的第n次更新前的权重值,error(n)表示第n次更新前的误差值,Wi(n+1)表示所述第一个原始二进制值的第i位所对应的第n次更新后的权重值,所述权重更新公式适用于i的取值为0到k-1的权重,Wk为最高位权重值,Wk初始值为固定值且更新时不改变,i的取值为0到k-1的权重Wi的初始值的都为0;U为收敛因子;所述权重更新运算中操作数为error(n)时所对应的两位所述数据编码指示信号值为{bi-,bi+},操作数为Wi(n)时所对应的两位所述数据编码指示信号值为10;
步骤二中所述扰动信号更新公式为:
[diff(n+1)]补=[diff(n)]补+U×[error(n)]补;
diff(n)表示第n次更新前的所述扰动信号值,diff(n+1)表示第n次更新后的所述扰动信号值;所述扰动信号更新中加数和被加数的两位所述数据编码指示信号值为10。
10.如权利要求7或8所述的ADC的自适应滤波数字校准方法,其特征在于:步骤三的所述增益校准运算的计算最优权重和的公式为:
Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,sum_Wquant表示最优权重和。
11.如权利要求10所述的ADC的自适应滤波数字校准方法,其特征在于:步骤三中的所述增益校准运算的增益修正运算包括如下分步骤:
步骤31、在所述控制模块的控制下由所述定点乘法器完成如下求积运算:
sum_temp=slope×sum_wquant;
slope表示增益修正系数,sum_temp表示增益修正系数带权重积;
步骤32、在所述控制模块的控制下由一个所述定点加法器完成如下增益修正误差计算:
[slope_err]补=16383+[-sum_temp]补;
slope_err表示增益修正误差;操作数为sum_temp时所对应的两位所述数据编码指示信号值为01;如果计算所得的slope_err小于2LSB说明已经找到增益修正系数,直接进入步骤四,否则进入步骤33;
步骤33、更新增益修正系数,采用如下公式进行更新:
-4
[slope(m+1)]补=[slope(m)]补+[slope_err(m)×0.5]补×2.44×10 ;
slope(m)表示第m次更新前的误差值增益修正系数,slope(m+1)表示第m次更新后的误差值增益修正系数,slope_err(m)表示第m次更新前的增益修正误差;slope_err(m)通过所述移位寄存器先完成右移13位,加法中操作数slope(m)和slope_err(m)所对应的两位所述数据编码指示信号值都为10;增益修正系数更新后反回到步骤31。
12.如权利要求7所述的ADC的自适应滤波数字校准方法,其特征在于:步骤四进行最后结果运算的公式为:
result表示最后结果,k表示所述第一个原始二进制值的位数,当校准使能信号不使能时bi表示所述第一个原始二进制值的第i位的值,当校准使能信号使能时bi表示所述第一个原始二进制值和所述第二个原始二进制值的和的第i位数,Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,slope表示所述增益调整系数;所述最后结果运算的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wiopt时所对应的两位所述数据编码指示信号值为由bi决定,bi为1时,对应的两位所述数据编码指示信号值为10,否则为00,计算中乘法运算用所述定点乘法器运算得到。

说明书全文

ADC的自适应滤波数字校准电路和方法

技术领域

[0001] 本发明涉及一种半导体集成电路制造领域,特别是涉及一种ADC的自适应滤波数字校准电路;本发明还涉及一种ADC的自适应滤波数字校准方法。

背景技术

[0002] ADC主要的误差来源包括比较器偏移(Offset),电容失配(Mismatch),增益误差(Gain error)等,其中制造带来的DAC电容失配,是不可能避免的,由其引起的ADC输出特性曲线非线性变化,对ADC的性能影响最大。传统的模拟改善方式有采用大电容单元,但带来面积,功耗的开销。或是采用小电容阵列来代替大电容阵列,来改善ADC的线性特性,但这种方式会增加控制难度,降低ADC速度。采用自适应滤波算法的数字校准方式,正在成为校准电容失配的主流技术。现有自适应滤波算法中一般通过将ADC的输出信号和另一高精度的ADC输出信号进行比较得到误差值,根据误差值对权重进行修正,重复运算最后使得ADC的输出信号得到校准。

发明内容

[0003] 本发明所要解决的技术问题是提供一种ADC的自适应滤波数字校准电路,能提高自适应滤波运算速度以及精度,且具有友好的接口协议,方便嵌入到现有各种ADC逻辑电路中。为此,本发明还提供一种ADC的自适应滤波数字校准方法。
[0004] 为解决上述技术问题,本发明提供的ADC的自适应滤波数字校准电路包括:控制模,多个定点加法器,定点乘法器;所述控制模块包括:有限状态机,移位寄存器,寄存器阵列。
[0005] 多个所述定点加法器用于实现并行加法运算,各所述定点加法器都分别包括3个输入端和2个输出端,3个输入端分别输入加数、被加数和数据编码指示信号,1个输出端输出数据溢出指示信号,另1个输出端输出加法运算结果,所述数据编码指示信号由所述有限状态机提供并包括4位,所述加数和所述被加数分别在所述数据编码指示信号的2位信号的控制下进行格式变化、所述定点加法器对格式变化后的所述加数和所述被加数进行加法运算。
[0006] 所述控制模块控制整个所述自适应滤波数字校准电路的工作状态并控制完成全部校准算法运算操作,校准算法运算操作步骤包括:
[0007] 步骤一、所述控制模块控制从所述外部ADC获取第一个原始二进制值,在校准使能信号为使能状态时,接着获取第二个原始二进制值,之后进行步骤二;在校准使能信号为非使能状态时,所述控制模块控制获取第一个原始二进制值后直接进入步骤四。
[0008] 步骤二、根据权重和扰动信号计算误差值,并根据误差值进行权重更新和扰动信号更新运算,完成更新运算后,判断是否已经过M次更新运算,M大于1;如果已经经过M次更新运算,则判断误差值是否小于2LSB,如果误差值小于2LSB则进入增益校准运算并以更新后的权重为最优权重,否则直接停止运算并在所述控制模块的error端口输出一个周期的高脉冲;如果更新运算次数小于M,则重新进行步骤一。
[0009] 步骤三、增益校准运算,首先计算最优权重和,之后进行增益修正运算,不断调整ADC输出特性曲线增益系数,一直到增益误差小于2LSB,之后进入步骤四。
[0010] 步骤四、进行最后结果运算,最后结果运算为采样最优权重对所述第一个原始二进制值的各位进行带权重相加,获得求和值后乘以增益系数,最后结果运算之后从所述控制模块的bincode端口给出数据结果,并从eoc端口输出一个周期的高脉冲信号。
[0011] 进一步的改进是,步骤二中所述误差值的计算公式为:
[0012]
[0013] 其中[]补表示采用补码表示,error表示误差值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,bi+表示所述第一个原始二进制值的第i位的值,bi-表示所述第二个原始二进制值的第i位的值;Wi表示所述第一个原始二进制值的第i位所对应的权重值,所述第一个原始二进制值和所述第二个原始二进制值的第i位所对应的权重值相同,diff表示扰动信号的值。
[0014] 所述误差值的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wi时所对应的两位所述数据编码指示信号值为{bi+,bi-},加法运算中操作数为diff时所对应的两位所述数据编码指示信号值为01。
[0015] 通过所述移位寄存器进行左移一位操作来实现乘2。
[0016] 进一步的改进是,步骤二中所述权重更新公式为:
[0017] [Wi(n+1)]补=[Wi(n)]补+U×[-(bi+-bi-)×error(n)]补;
[0018] Wi(n)表示所述第一个原始二进制值的第i位所对应的第n次更新前的权重值,error(n)表示第n次更新前的误差值,Wi(n+1)表示所述第一个原始二进制值的第i位所对应的第n次更新后的权重值,所述权重更新公式适用于i的取值为0到k-1的权重,Wk为最高位权重值,Wk初始值为固定值且更新时不改变,i的取值为0到k-1的权重Wi的初始值的都为0;U为收敛因子;所述权重更新运算中操作数为error(n)时所对应的两位所述数据编码指示信号值为{bi-,bi+},操作数为Wi(n)时所对应的两位所述数据编码指示信号值为10。
[0019] 步骤二中所述扰动信号更新公式为:
[0020] [diff(n+1)]补=[diff(n)]补+U×[error(n)]补;
[0021] diff(n)表示第n次更新前的所述扰动信号值,diff(n+1)表示第n次更新后的所述扰动信号值;所述扰动信号更新中加数和被加数的两位所述数据编码指示信号值为10。
[0022] 进一步的改进是,步骤三的所述增益校准运算的计算最优权重和的公式为:
[0023]
[0024] Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,sum_Wquant表示最优权重和。
[0025] 进一步的改进是,步骤三中的所述增益校准运算的增益修正运算包括如下分步骤:
[0026] 步骤31、在所述控制模块的控制下由所述定点乘法器完成如下求积运算:
[0027] sum_temp=slope×sum_wqusnt;
[0028] slope表示增益修正系数,sum_temp表示增益修正系数带权重积。
[0029] 步骤32、在所述控制模块的控制下由一个所述定点加法器完成如下增益修正误差计算:
[0030] [slope_err]补=16383+[-sum_temp]补;
[0031] slope_err表示增益修正误差;操作数为sum_temp时所对应的两位所述数据编码指示信号值为01;如果计算所得的slope_err小于2LSB说明已经找到增益修正系数,直接进入步骤四,否则进入步骤33。
[0032] 步骤33、更新增益修正系数,采用如下公式进行更新:
[0033] [slope(m+1)]补=[slope(m)]补+[slope_err(m)×0.5]补×2.44×10-4;
[0034] slope(m)表示第m次更新前的误差值增益修正系数,slope(m+1)表示第m次更新后的误差值增益修正系数,slope_err(m)表示第m次更新前的增益修正误差;slope_err(m)通过所述移位寄存器先完成右移13位,加法中操作数slope(m)和slope_err(m)所对应的两位所述数据编码指示信号值都为10;增益修正系数更新后反回到步骤31。
[0035] 进一步的改进是,步骤四进行最后结果运算的公式为:
[0036]
[0037] result表示最后结果,k表示所述第一个原始二进制值的位数,当校准使能信号不使能时bi表示所述第一个原始二进制值的第i位的值,当校准使能信号使能时bi表示所述第一个原始二进制值和所述第二个原始二进制值的和的第i位数,Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,slope表示所述增益调整系数;所述最后结果运算的计算中的加法运算采用多个所述定点加法器进行并行运算得到,加法运算中操作数为Wiopt时所对应的两位所述数据编码指示信号值为由bi决定,bi为1时,对应的两位所述数据编码指示信号值为10,否则为00,计算中乘法运算用所述定点乘法器运算得到。
[0038] 为解决上述技术问题,本发明提供的ADC的自适应滤波数字校准方法采用自适应滤波数字校准电路进行校准,自适应滤波数字校准电路包括:控制模块,多个定点加法器,定点乘法器;所述控制模块包括:有限状态机,移位寄存器,寄存器阵列。
[0039] 多个所述定点加法器用于实现并行加法运算,各所述定点加法器都分别包括3个输入端和2个输出端,3个输入端分别输入加数、被加数和数据编码指示信号,1个输出端输出数据溢出指示信号,另1个输出端输出加法运算结果,所述数据编码指示信号由所述有限状态机提供并包括4位,所述加数和所述被加数分别在所述数据编码指示信号的2位信号的控制下进行格式变化、所述定点加法器对格式变化后的所述加数和所述被加数进行加法运算。
[0040] 所述控制模块控制整个所述自适应滤波数字校准电路的工作状态并控制完成全部校准算法运算操作,校准算法运算操作步骤包括:
[0041] 步骤一、所述控制模块控制从所述外部ADC获取第一个原始二进制值,在校准使能信号为使能状态时,接着获取第二个原始二进制值,之后进行步骤二;在校准使能信号为非使能状态时,所述控制模块控制获取第一个原始二进制值后直接进入步骤四。
[0042] 步骤二、根据权重和扰动信号计算误差值,并根据误差值进行权重更新和扰动信号更新运算,完成更新运算后,判断是否已经过M次更新运算,M大于1;如果已经经过M次更新运算,则判断误差值是否小于2LSB,如果误差值小于2LSB则进入增益校准运算并以更新后的权重为最优权重,否则直接停止运算并在所述控制模块的error端口输出一个周期的高脉冲;如果更新运算次数小于M,则重新进行步骤一。
[0043] 步骤三、增益校准运算,首先计算最优权重和,之后进行增益修正运算,不断调整ADC输出特性曲线增益系数,一直到增益误差小于2LSB,之后进入步骤四。
[0044] 步骤四、进行最后结果运算,最后结果运算为采样最优权重对所述第一个原始二进制值的各位进行带权重相加,获得求和值后乘以增益系数,最后结果运算之后从所述控制模块的bincode端口给出数据结果,并从eoc端口输出一个周期的高脉冲信号。
[0045] 本发明具有如下有益效果:
[0046] 1、采用简单定点加法器,优化自适应滤波算法更方便电路实现,在控制单元的控制下高效的进行并行运算,快速完成自适应滤波算法运算,完成高精度ADC的各位最优权重值的校准,实现ADC输出特性曲线的线性化。
[0047] 2、增加单周期定点乘法运算器,在完成各最优权重校准后,自动完成增益误差校准,调整ADC输出特性曲线为二进制结果特性曲线,支持非二进制电容阵列的使用,极大的提高ADC的精度和使用范围。
[0048] 3、本发明数字校准电路为独立的算法电路模块,具有友好的接口协议,方便嵌入到现有的ADC逻辑(logic)电路中。附图说明
[0049] 下面结合附图和具体实施方式对本发明作进一步详细的说明:
[0050] 图1是本发明实施例ADC的自适应滤波数字校准电路图;
[0051] 图2是图1中的加法器的实现框图
[0052] 图3是本发明实施例方法的流程图

具体实施方式

[0053] 如图1所示,是本发明实施例ADC的自适应滤波数字校准电路2图;本发明实施例ADC的自适应滤波数字校准电路2包括:控制模块(controller)4,多个定点加法器(adder)8,定点乘法器(multiplier)9,本发明实施例中采用了两个定点加法器8,图1中分别显示为定点加法器一和定点加法器二;所述控制模块4包括:有限状态机(FSM)5,移位寄存器(shift)7,寄存器阵列(Register array)6;本发明实施例中移位寄存器7共有4个分别显示为shift1、shift2、shift2和shift4。
[0054] 多个所述定点加法器8用于实现并行加法运算,如图2所示,是图1中的加法器的实现框图;各所述定点加法器8都为单周期有符号定点加法器,都分别包括3个输入端和2个输出端,3个输入端分别输入加数add_da、被加数add_db和数据编码指示信号code[3:0],1个输出端输出数据溢出指示信号ov,另1个输出端输出加法运算结果,所述数据编码指示信号code[3:0]由所述有限状态机5提供并包括4位,所述加数add_da和所述被加数add_db分别在所述数据编码指示信号code[3:0]的2位信号的控制下进行格式变化、所述定点加法器8对格式变化后的所述加数add_da和所述被加数add_db进行加法运算。如图2中所示可知,所述定点加法器8包括了2个编码器(code data)8a和一个加法器8b,2个编码器8a分别显示为code data1和code data2,所述加数add_da和所述被加数add_db分别输入到一个编码器8a中,加数add_da输入到code data1中,被加数add_db输入到code data2中,所述数据编码指示信号的前位即code[1:0]输入到code data1用于对加数add_da进行编码形成信号data1,所述数据编码指示信号的后两位即code[3:2]输入到code data2用于对加数add_db进行编码形成信号data2,加法器即adder8b对data1和data2进行相加形成相加结果输出。
[0055] 表一
[0056]code[1:0] data11
[0057]00or 11 0
01 [-add_da]补
10 [add_da]补
[0058] 本发明实施例中code data1的编码规则如表一所示,当code[1:0]为00或11时,data11为0;当code[1:0]为01时,data11为[-add_da]补,[]补表示补码;当code[1:0]为10时,data11为[add_da]补。
[0059] 表二
[0060]code[3:2] data12
00or 11 0
01 [-add_db]补
10 [add_db]补
[0061] 本发明实施例中code data12的编码规则如表二所示,当code[3:2]为00或11时,data12为0;当code[3:2]为01时,data12为[-add_db]补;当code[3:2]为10时,data12为[add_db]补。
[0062] 图1中定点加法器一对应的输入输出数据都在后面加了1,如code1[3:0],add1_da,add1_db,ov1,result1;定点加法器二对应的输入输出数据都在后面加了2,如code2[3:0],add2_da,add2_db,ov2,result2。图1中,add1_da,add1_db,add2_da,add2_db分别由存储于寄存器阵列6中的数据data1,data2,data3,data4经过一个移位寄存器7后输入。所述定点乘法器9为有符号单周期定点乘法器,两个输入端分别从存储于寄存器阵列6输入两个数据即乘数mul_da和被乘数mul_db,输出端输出数据result3。移位寄存器7由FSM5输出的控制信号s_state控制,FSM5还输出所述数据编码指示信号code1和code2。
[0063] 本发明实施例中两个定点加法器8都为单周期有符号定点加法器,完成自适应滤波算法的加法运算addx_da,addx_db分别是加数和被加数,codex数据编码指示信号,ovx数据溢出指示信号。
[0064] 本发明实施例中,控制模块4信号rawdy信号抬高后,完成原始二进制值raw_data的获取,之后控制整个电路的工作状态。控制完成全部算法运算操作,完成之后输出一个时钟周期的信号eoc以及校准后的正确12为结果信号bincode。信号reset为系统复位信号,信号clk为工作时钟信号,信号state为状态指示信号,信号calen是校准使能信号,根据工作状态有效的协调定点加法器一和二以及乘法器三个运算单元并行工作,快速完成算法运算。本发明实施例中所有的数据运算精度28bit。
[0065] 如图3所示,是本发明实施例方法的流程图,所述控制模块4控制整个所述自适应滤波数字校准电路2的工作状态并控制完成全部校准算法运算操作,校准算法运算操作步骤包括:
[0066] 步骤一、自适应算法运算开始前,外部ADC 1提供无校准的原始二进制值raw_data,原始二进制值raw_data为14bit数据,表示为raw_data[13:0];当信号calen为低时,只获取一次原始14bit数据,直接进入计算结果运算。如果信号calen为高时,需要完成两次数据采集分别是raw_data1(增加一扰动分量),raw_data2(减去一扰动分量),开始启动算法运算。也即所述控制模块4控制从所述外部ADC1获取第一个原始二进制值raw_data,,在校准使能信号为使能状态即信号calen为高时,接着获取第二个原始二进制值,之后进行步骤二;在校准使能信号为非使能状态即信号calen为低时,所述控制模块4控制获取第一个原始二进制值后直接进入步骤四。
[0067] 步骤二、根据权重和扰动信号计算误差值,并根据误差值进行权重更新和扰动信号更新运算,完成更新运算后,判断是否已经过M次更新运算,M大于1;如果已经经过M次更新运算,则判断误差值是否小于2LSB,如果误差值小于2LSB则进入增益校准运算并以更新后的权重为最优权重,否则直接停止运算并在所述控制模块4的error端口输出一个周期的高脉冲;如果更新运算次数小于M,则重新进行步骤一。
[0068] 21、所述误差值的计算公式为:
[0069]
[0070] 其中[]补表示采用补码表示,error表示误差值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,由于本发明实施例中原始二进制值raw_data为14bit数据,故k为14;bi+表示所述第一个原始二进制值的第i位的值,bi-表示所述第二个原始二进制值的第i位的值;Wi表示所述第一个原始二进制值的第i位所对应的权重值,所述第一个原始二进制值和所述第二个原始二进制值的第i位所对应的权重值相同,diff表示扰动信号的值。
[0071] 所述误差值的计算中一共需要完成14次加法运算,14次加法运算采用2个所述定点加法器8进行并行运算完成,加法运算中操作数为Wi时所对应的两位所述数据编码指示信号值为{bi+,bi-},加法运算中操作数为diff时所对应的两位所述数据编码指示信号值为01。操作数为Wi和diff通过所述移位寄存器7进行左移一位操作来实现乘2。
[0072] 上述运算中,[]补表示采用补码表示,即所有数据在进行加法运算都是补码格式,方便在加法器实现数据的加减法运算,所有的中间数值,都是补码格式。
[0073] 22、所述权重更新公式为:
[0074] [Wi(n+1)]补=[Wi(n)]补+U×[-(bi+-bi-)×error(n)]补;
[0075] Wi(n)表示所述第一个原始二进制值的第i位所对应的第n次更新前的权重值,error(n)表示第n次更新前的误差值,Wi(n+1)表示所述第一个原始二进制值的第i位所对应的第n次更新后的权重值;也即带n的参数表示上次参与误差运算时使用的参数。本发明实施例中,所述权重更新共需要14次定点加法运算,14次加法运算在控制模块的控制下由个加法器并行完成。
[0076] 所述权重更新公式适用于i的取值为0到k-1的权重,Wk为最高位权重值,Wk初始值为固定值且更新时不改变,i的取值为0到k-1的权重Wi的初始值的都为0,也即W13初始值为固定值且更新时不改变,W12至W0的初始值都为0。
[0077] U为收敛因子,本发明实施例中收敛因子u选取固定步为(0.000001)2,对应操作数即error从寄存器6输出时,在s_state信号的控制下先作右移6位操作。
[0078] 所述权重更新运算中操作数为error(n)时所对应的两位所述数据编码指示信号值为{bi-,bi+},操作数为Wi(n)时所对应的两位所述数据编码指示信号值为10。
[0079] 所述扰动信号更新公式为:
[0080] [diff(n+1)]补=[diff(n)]补+U×[error(n)]补;
[0081] diff(n)表示第n次更新前的所述扰动信号值,diff(n+1)表示第n次更新后的所述扰动信号值;所述扰动信号更新中加数和被加数的两位所述数据编码指示信号值为10。
[0082] 完成权重更新和扰动分量值即扰动信号更新后,如果整个算法重复过程小于M次,重新回到获取原始14bit数据,进行误差error计算,权重与扰动分量值更新。如果整个算法重复过程次数大于等于M次,误差error值小于2LSB,说明已经获取到最优权重,进入增益校准运算,如果已经获取ADC输出特性曲线增益调整系数slope,直接进入结果运算。如果error值大于2LSB端口信号error输出一个时钟周期的高脉冲信号。
[0083] 步骤三、增益校准运算,首先计算最优权重和,之后进行增益修正运算,不断调整ADC输出特性曲线增益系数,一直到增益误差小于2LSB,之后进入步骤四。
[0084] 所述增益校准运算的计算最优权重和的公式为:
[0085]
[0086] Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,k表示所述第一个原始二进制值和所述第二个原始二进制值的位数,sum_Wquant表示最优权重和。
[0087] 所述增益校准运算的增益修正运算包括如下分步骤:
[0088] 步骤31、在所述控制模块4的控制下由所述定点乘法器9完成如下求积运算:
[0089] sum_temp=slope×sum_wqusnt;
[0090] slope表示增益修正系数,sum_temp表示增益修正系数带权重积。
[0091] 步骤32、在所述控制模块4的控制下由一个所述定点加法器8完成如下增益修正误差计算:
[0092] [slope_err]补=16383+[-sum_temp]补;
[0093] slope_err表示增益修正误差;操作数为sum_temp时所对应的两位所述数据编码指示信号值为01;如果计算所得的slope_err小于2LSB说明已经找到增益修正系数,直接进入步骤四,否则进入步骤33。
[0094] 步骤33、更新增益修正系数,采用如下公式进行更新:
[0095] [slope(m+1)]补=[slope(m)]补+[slope_err(m)×0.5]补×2.44×10-4;
[0096] slope(m)表示第m次更新前的误差值增益修正系数,slope(m+1)表示第m次更新后的误差值增益修正系数,slope_err(m)表示第m次更新前的增益修正误差;slope_err(m)在s_state的控制下通过所述移位寄存器7先完成右移13位,加法中操作数slope(m)和slope_err(m)所对应的两位所述数据编码指示信号值都为10;增益修正系数更新后反回到步骤31。
[0097] 步骤四、进行最后结果运算,最后结果运算为采样最优权重对所述第一个原始二进制值的各位进行带权重相加,获得求和值后乘以增益系数,最后结果运算之后从所述控制模块4的bincode端口给出数据结果,并从eoc端口输出一个周期的高脉冲信号。
[0098] 进行最后结果运算的公式为:
[0099]
[0100] result表示最后结果,k表示所述第一个原始二进制值的位数,当校准使能信号不使能时bi表示所述第一个原始二进制值的第i位的值,当校准使能信号使能时bi表示所述第一个原始二进制值和所述第二个原始二进制值的和的第i位数,Wiopt表示所述第一个原始二进制值的第i位所对应的最优权重值,slope表示所述增益调整系数;最后bincode选取result的第24位到13位作为输出。最后结果运算中一共需要13次定点加法运算,所述最后结果运算的计算中的加法运算采用多个所述定点加法器8进行并行运算得到,加法运算中操作数为Wiopt时所对应的两位所述数据编码指示信号值为由bi+决定,bi+为1时,对应的两位所述数据编码指示信号值为10,否则为00;计算中乘法运算用所述定点乘法器运算得到。
[0101] 以上通过具体实施例对本发明进行了详细的说明,但这些并非构成对本发明的限制。在不脱离本发明原理的情况下,本领域的技术人员还可做出许多变形和改进,这些也应视为本发明的保护范围。
QQ群二维码
意见反馈