发明内容
有鉴于此,本发明基于Matlab和Verilog-A从行为级和结构级两个方面建模,根据具体的工艺,在精度、速度和功耗上折衷,较快的确定最符合***要求的SAR ADC结构。
本发明提供一种基于统计学的Sar ADC建模方法,具体包括:
S1、根据工艺提供的电阻和电容匹配数据,利用randn函数定义单位电阻的正态分布形式和单位电容的正态分布形式,定义斜坡输入信号;
S2、用Matlab代码以正态分布的电阻和电容模型实现相应结构的逐次逼近量化过程;
S3、将斜坡信号用步骤S2中的相应逐次逼近量化过程一一量化并保存下来;
S4、将步骤S3产生的量化数据用直立方图码密度法计算出ADC的微分非线性DNL和积分非线性INL;
返回步骤S2,循环执行M次步骤S2、S3、S4,所述循环次数M根据SAR ADC结构特点由具体经验选取,M满足M≥100;
S5、在[02N-1]量化数值范围内,每个数值对应M个DNL和INL,产生了M组DNL和INL;比较这M组DNL和INL,取绝对值最大的DNL和INL,所述N为ADC的位数;
S6、以ADC量化值[0 2N-1]为横坐标,每个量化值对应的绝对值最大的DNL和INL为纵坐标,绘制成DNL、INL图;
S7、改变分段位数,返回步骤S2,循环执行M’次步骤S2-S7;所述M’根据SAR ADC结构特点由具体经验选取,M’满足M’≥3;所述分段位数,包括高位分段位数N1和低位分段位数N2,所述N1和N2满足N1+N2=N;
S8、直观比较不同分段位数的DNL、INL图的精度,选择精度最优的分段位数;
S9、用Verilsog-A语言建立结构级模型,模拟电路参数;
S10、判断电路参数是否满足设计要求,如果电路参数满足设计要求,进行相应结构的晶体管电路设计;否则,换一种SAR ADC结构,进入步骤S2,用同样的电阻和电容模型实现另外一种SAR ADC结构的逐次逼近量化过程,循环执行步骤S2-S10,得到对应结构的最优分段位数的DNL、INL图,直到满足电路参数的设计要求为止;
S11、在Matlab和Verilog-A建模的基础上,进行晶体管电路设计。
所述SAR ADC结构,包括但不限于分段电容结构、电阻-电容分段结构、电容-电阻分段结构、电阻-电容-电阻分段结构和电阻梯复用结构。
所述电路参数,包括但不限于电路精度及建立速度。所述电路参数的设计要求,由工艺具体应用要求预先设定。
本发明从统计学的角度用Matlab建立一个行为级模型,确定一种SAR ADC结构的最优分段位数的DNL、INL图。然后用Verilog-A建立结构级模型,模拟电路参数。最后在Matlab和Verilog-A建模的基础上选择一个在精度、速度和功耗方面满足要求的SAR ADC结构进行晶体管电路设计,同时可以参考Verilog-A建立的结构级模型的参数,进而加快晶体管电路设计进程。
具体实施方式
为了更清楚地说明本发明实施例中的技术方案,下面结合附图进行说明。
本发明实施以ADC的位数N=12的电阻梯复用结构为例,其电路的工作原理图如图2所示,电阻串由2N1+2个等值电阻组成,其中2N1个等值电阻串联,并在两端的电阻上各并联一个等值电阻。此处以N1=8,N2=4为例,Vin为ADC输入电压,Vcm是比较器一端的固定电平,Vdac为比较器另外一端的电压。ADC量化参考电压Vref=Vrefp-Vrefn,所述Vrefp、Vrefn为电阻串两端输入参考电压。所述N1为高位分段位数,所述N2为低位分段位数,N1和N2满足N1+N2=N。
VM为8位电阻串的二进制输出:
VL为电阻串低四位的二进制输出:
Va为电阻串输出的一固定电平:
其中Di为8bit二进制数值,Vref为ADC量化参考电压。
如图1所示,具体Matlab建模过程如下:
步骤1,根据工艺提供的电阻和电容匹配数据,利用randn函数定义单位电阻和单位电容的正态分布形式。所述randn函数为Matlab产生正态分布的随机数或矩阵的函数。
在本实施例中,定义斜坡输入信号Vin=[0:1:2N+4-1]/2N+4*Vref,相当于每个LSB电压范围采样为24=16次。所述LSB为ADC最低有效位。所述斜坡信号Vin的阶跃值等于Vref/2N+4,所述N为ADC的位数。
步骤2,用Matlab代码以步骤1中提供的电阻和电容模型实现相应结构的逐次逼近量化过程。
如图2所示,采样时,S1、S2、S5开关闭合,S3、S4开关打开;保持时,S1、S2、S5开关打开,S3、S4开关闭合。由采样和保持阶段电荷守恒得到,
16C(Vcm-Vin)+C(Vcm-Va)=16C(Vdac-VM)+C(Vdac-VL) (4)
所述C为单位电容,进一步得到,
将公式(1)、(2)、(3)带入公式(5)中得到,
根据式(6)可以用Matlab实现SAR ADC逐次逼近算法。
步骤3,将斜坡信号用步骤2中的相应逐次逼近量化过程一一量化并保存下来。
步骤4,在步骤3中产生的量化数据基础上,根据直立方图码密度法计算ADC的微分非线性DNL和积分非线性INL。
直立方图码密度法原理为:以上述斜坡输入信号为例,每个LSB电压范围采样16次,理想ADC转换出16个相同的数值,如果出现次数为m,则对应数值的DNL=(m-16)/16,INL就是对DNL求和。
返回步骤2,重复M次步骤2、步骤3、步骤4,所述循环次数M根据SAR ADC结构特点由具体经验选取,通常循环次数M≥100。
步骤5,同样的过程重复M次,这样ADC量化数值范围[0 2N-1]内,每个数值对应有M个DNL和INL值,也就产生了M组DNL和INL;将每个量化数值对应的M个DNL和INL进行比较,取绝对值最大的DNL和INL。其中,N为ADC的位数,本实施例中N=12。
步骤6,以ADC量化值[0 2N-1]为横坐标,每个量化值对应的绝对值最大的DNL和INL为纵坐标,绘制成DNL、INL图,便于观察。
步骤7,改变分段位数,返回步骤2,循环执行M’次步骤2-步骤7,所述M’根据SARADC结构特点由具体经验选取,M’满足M’≥3;所述分段位数,包括高位分段位数N1和低位分段位数N2;所述N1和N2满足N1+N2=N。
步骤8,直观比较不同分段位数的DNL、INL图的精度,选择DNL和INL相对较小时对应的分段位数为最优分段位数。
图3、图4和图5都是在相同的工艺参数下:电容匹配标准差delt_c=6.8×10-4,电阻匹配标准差delt_r=2.86×10-4,12Bit SAR ADC不同分段位数的Matlab行为级模型仿真100次后,取每个量化值对应的绝对值最大值的DNL和INL图。图3是N1=8,N2=4仿真100次之后的结果,图4是N1=7,N2=5仿真100次之后的结果,图5是N1=6,N2=6仿真100次之后的结果。
通过比较图3、图4和图5,可以发现,电阻梯由8Bit到7Bit,再到6Bit,ADC的DNL和INL逐渐增大。电阻梯每减少一位,电阻减少一倍,电容增加1倍。由工艺文件可以看出面积越大,标准差就越小。在速度、功耗允许的情况下,可以适当增加电容的面积,实现更好的性能。
步骤9,用Verilsog-A语言建立结构级模型,模拟电路参数,具体步骤如下:
用Verilog-A语言编写基本的器件模型,包括电阻、电容、开关、比较器和逐次逼近算法,其中电阻、电容的大小根据前面Matlab建模确定的电阻、电容尺寸来定。
在上面Matlab建立的SAR ADC行为级模型的基础上,用上面做好的Verilog-A基本模块,搭建相应的结构级模型,可以模拟功耗、建立速度等电路参数。
步骤10,判断电路参数是否满足设计要求,如果电路参数满足设计要求,进行相应结构的晶体管电路设计;否则,换一种SAR ADC结构,进入步骤2,用同样的电阻和电容模型实现另外一种SAR ADC结构的逐次逼近量化过程。循环执行步骤2-10,得到对应结构的最优分段位数的DNL、INL图,直到满足电路参数的设计要求为止。
电路参数,包括但不限于电路精度及建立速度。电路参数的设计要求,由工艺具体应用要求预先设定。
步骤11,在Matlab和Verilog-A建模的基础上,进行晶体管电路设计。
SAR ADC结构,包括但不限于分段电容结构、电阻-电容分段结构、电容-电阻分段结构、电阻-电容-电阻分段结构和电阻梯复用结构。
以上所述仅用于说明本发明的技术方案,任何本领域普通技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的保护范围应视权利要求范围为准。