logo资料库

仿真比较器的offset.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
比较器失调的仿真用到了蒙特卡罗分析: 首先是蒙特卡罗分析窗口的一些设置,如下图所示,在此不再赘述。 其中 Analysis Variation:Process 是指 device mismatch on two different dies(die to die)。 Mismatch 是指 device mismatch on the same die。 记得要把“Save Data Between Runs to Allow Family Plots”勾选,通过 Calculator 可以获 取 output 的表达式。 比较器失调仿真的整体仿真图如图 1 所示:(其中包含有①单端到差分的转换(xfmr), 输入的共模电平值由 VCM 确定,②理想的采保电路 sah_ideal,其属性设置如图 2 所示。 ③比较器) 本实例中的比较器是由预放大器与锁存器组成,锁存器由时钟控制,当时钟的上升沿到 来后,比较器产生比较结果,当时钟变为低电平后,比较器的输出复位到 Vdd。
图 1 输入源 vpwl 的设置如图 3 所示: 图 2 仿真后得到 Comp 的 VP 和 VN 的输入分别如图 4 所示。对于每一个输入值 Xi,在时钟 的上升沿到来后,比较器都有一个确定的输出值。由于对称性,我们只选取 16.4ns 之前的 41 组 Xdata 数据: 图 3
图 4 在理想的情况下,当 Xi>Xth 时,比较器输出为高电平;当 XiXth 时,比较器输出可能为低电平;同时 XiXoff)=ni/N=zi,其中 N 是蒙特卡罗分析的总次 数,ni 是某个 Xi 下输出为 1 的次数。这个函数是 Xoff 的概率密度函数的积分,从而得到比较 器失调的统计特性。拟合出 Zi 和 Xi 的关系曲线,z=p1*X+p2。 代码部分 导出 cadence 仿真数据到 matlab 处理的 ocean 脚本程序: openResults("/home/music/simulation/SIM_pre_amp1/spectre/schematic/psf") selectResult('tran) ocnPrint(?output "/home/music/simulation/SIM_pre_amp1/spectre/schematic/psf/comp.txt" ?precision
2 ?numberNotation `none ?from 0.1e-6 ?to 16.1e-6 ?step 0.4e-6 v("/OUTP")) offset 仿真的第一段 matlab 代码: xdata=-20:1:20; x=load('J:\comp.txt'); ydata=[]; %ydata原来为空 x(:,1)=[]; %删除x中的第一列,为时间 x1=x; %将新的x记作x1 for i=1:41 y=sum(x1(i,:))/(1.8*50); %输出为1的概率(本实例进行了50次蒙特卡罗仿真) ydata=[ydata y]; %每次存入新的y end plot (xdata,ydata); axis([-20 20 0 1.05]); offset仿真的第二段matlab代码: v=sqrt(2)*erfinv(ydata(1:41)*2-1); i=find(v>-3&v<3); %3sigma原则 [p,s]=polyfit(xdata(i), v(i),1); %对离散点进行拟合,1表示直线拟合 sigma=1/p(1); %标准差 mu=-p(2)/p(1); %平均值 figure(2); plot(xdata(i),v(i),'.k',xdata(i),polyval(p,xdata(i)),'r'); axis([-15 15 -3 3]); text(-4,2,sprintf('sigma=%2.2f mV \n mu=%3.2f uV',sigma,mu*1000)); 更详细的情况请参见文档《A Methodology for the offset Simulation of Comparators》。 ---西安电子科技大学
分享到:
收藏