动态比较器噪声仿真

记录一下自己在IC618进行动态比较器噪声仿真的过程。

 按照17年ISSCC搭建了一个类似于双尾比较器的结构。分为输入级和输出级。

由以上结构推导分析第一级预放大器的增益:

A_{v1}^{}=\frac{Vop-Von}{Vip -Vin}=\frac{-gm12*t}{Con,op}   

 

第二级动态锁存器结构如上图所示:

第一级预放大的结果输入第二级的动态锁存器中,M7和M15构成了一个ClassAB级放大器,作用于C点试图满足M12的阈值电压开启。M7和M13构成另一个ClassAB级放大器,作用于A点试图满足M9的阈值电压开启。

由于AB两个点是充电,所以M7,M8的尺寸需要做大,来满足M9,M10的导通条件。减小M15,M13,M14,M16的尺寸,以和M7,M8形成较大的比值。增加LATCH的宽长比,减少过驱动电压使得电路输出摆幅更大。

噪声仿真

PSS+Pnoise

LATCH是时变系统,受时钟影响,输入噪声的仿真不能用.noise进行仿真,采用spectre里面的tran中的transient noise option 进行仿真。由于噪声是一个随机过程,其瞬时幅值不可预测,但是总幅值服从高斯分布。对输入信号进行扫描,误码率可以反应噪声幅值大于输入的概率,也可以认为是噪声幅值的误差函数。

除了以上码率的计算方式以外,还可以使用PSS+Pnoise的方式进行仿真。一、首先给动态比较器加一个实际的工作频率时钟。二、再给输入端加入一个DC差值(100uV);三、设置PSS,Pnoise仿真;四、Pnoise计算出输出积分噪声;五:输出噪声除以Gain(500),得到输入噪声。

PSS的设置如下:

工作频率为500M的时钟,所以这里时钟为Auto Calculate的500M。

Pnoise设置如下:

上面的noise设置完成后就可以进行仿真,完成后用下面表达式进行积分(表达式中fs/2要替换成数值)fs为比较器的工作时钟:
pow(integ(pow(clip(getData("out" ?result "pnoise_sample_pm0") 1 fs/2) 2)) 0.5)

这里设置的积分噪声是从1到500M,但在计算积分表达式时,只需要积分到250M。同时阈值电压设置为50mV对应输入100uV的输入,得到增益为500。该方法计算出来的等效输入噪声为198uV。

trans-noise

LATCH是时变系统,受时钟影响,输入噪声的仿真不能用.noise进行仿真,采用spectre里面的tran中的transient noise option 进行仿真。由于噪声是一个随机过程,其瞬时幅值不可预测,但是总幅值服从高斯分布。对输入信号进行扫描,误码率可以反应噪声幅值大于输入的概率,也可以认为是噪声幅值的误差函数。

对Transient Noise设置Noise Fmax为100G进行误码率统计,再输入matlab分析。

Vip输入信号为549.0到551.0mV之间,间隔0.1mV的斜坡信号,每个信号统计一千次,单次比较时间为2ns,单输入保持时间为2us。统计每个输入对应的码字次数。

计算得到噪声为257uV。

两个噪声相差较小,互相验证。

问题:

PSS+Pnoise的积分噪声区间为什么是Fs/2?

有说是因为再Pnoise中将频带外的噪声给折叠出去了,具体原因不是很懂。

  • 19
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值