分类目录归档:专业|IC-Design

集成电路

SmartSpice 收敛问题的总结

记得很久之前有谈过遇到 Hspice 不收敛的问题,最近看到有朋友是搜索 SmartSpice 收敛问题过来的,干脆在这里把看过的收敛问题的内容列下(实际上 SmartSpice Manual 中有专门章节介绍收敛的问题,在网站上的 trainning 文档也可参考…)

一般对于 spice convergence 问题,首先考虑电路是否自身有问题,看是否非稳或是双稳态电路,电路中器件(特别是理想元件或是宏模型)的阻抗是否符合实际,可以利用 .option list 检查电路结构与连接;对双稳态电路可以利用 .nodeset .ic 等语句加以限定。

此外,在 SmartSpice 中利用 .option expert=777 可以看到收敛问题的详细报告:

通常大多数的 spice 收敛问题可以通过 .OPTION中 Gmin Gnode(或 Gshunt)的设置来改善:
继续阅读

关于弱反型与匹配

对于弱反型(weak inversion)或者说是亚阈值区(Sub-threshold)的 MOS 器件的匹配问题,很容易产生的一个想法就是由于电流和阈值的指数关系,器件的 matching (匹配)会变差。实际上,这种想法并不全然正确,这一问题在 ’Analog-Design-Essential‘ 书中亦有分析,这里简单叙述一下:

首先如下面的基本电流镜电路,考虑阈值 Vth 的 mismatch 由经由 MOS 管的跨导 gm 变为 Iout 的 mismatch,同时 uCox/2(也即K‘)和宽长比的 mismatch 直接影响输出电流,可以容易推出其输出电流 Iout 的 mismatch 为:

ΔIout/Iout=ΔVth*(gm/Id)+ΔK‘/K’+Δ(W/L)/(W/L)
继续阅读

Gain-boost 电路的反馈类型

最近翻 ‘Analog Design Essentials’,里面介绍电路流反馈的章节里面提到了 gain-boost(或是 regulated cascode)的反馈类型,对我来说有时要直接看出这些反馈结构的类型还真不太容易…

下图是基本的 gain-boost 的结构,利用放大器来提升 cascode 的输出阻抗,从而提升电路的增益。

继续阅读

集成电路中闩锁效应的小结

这里把 CMOS 中的闩锁效应(latch-up)的来源和一些具体的避免 latch-up 的方法的内容做一些小结.

CMOS 中的 latch-up 问题来源于其寄生的 NPN 与 PNP 双极晶体管形成的 PNPN 结构, 具体的闩锁效应产生原理的分析,可以以一对反相器为例(如下图中所示)来说明。

图中 inverter 的 PMOS M2 在阱内形成的纵向双极型晶体管 PNP,NMOS M1 在衬底上形成的横向双极晶体管 NPN,这两个双极晶体管接成一对,可以看到反偏的阱-衬底结是两个晶体管的集电极。

继续阅读

关于抖动时钟的模型

在 IC 设计(如 ADC 电路等)中,有时候要考虑时钟抖动(clock jitter)的影响,通过在设计初期加入带有抖动的时钟模型可以较快的判定其影响。

关于 clock jitter 具体的仿真模型,J.Baker 的混合信号书中提到的方法是利用 spice 中的 SFFM 模型,即单频率频率调制源(Single-Frequency-Frequency-Modulation):
SFFM (Vo Va ...)
也即为如下的函数:
Vsffm(t)=Vo+Va*sin[2*pi*Fc*t+MDI*sin(2*pi*Fs*t)]
在这里,调制率 MDI 决定了峰峰值相位偏移,即 2*MDI=2*pi*dt/Ts=2*pi*dt*Fs, (Ts=1/Fs)
故而,可以简单的认为 peak-peak jitter:dt=MDI/(pi*Fs)
在得到此抖动的正弦信号后,通过理想判决器(比较器)可以将其转换为我们所需的抖动时钟信号

这种方法的问题主要在于:得到的 clock jitter并非随机;J.baker 也在书中也提出通过设置 Fs 与仿真时间来使其更接近实际情况。

事实上,通过 Verilog-A 工具可以更容易的仿真时钟抖动的影响,一个简单的想法是利用 verilog-A 中的 transition 语句在 delay 中引入随机(利用 $rdist_normal 函数),可参考的部分 Verilog-A 代码如下:
继续阅读

关于 Cascode 补偿以截断前馈的理解

之前写过cascode补偿的一些内容,最近看到一些相关的讨论,这里试着从另外的角度来做些分析。

众所周知的,对基本的 miller compensation (米勒补偿)的两级运放,由于存在前馈通路,会引入一个右半平面的的零点,从而使得频率响应的稳定性变差。一般除了常用的加 nulling resistor(调零电阻)的方法之外,cascode compensation 也是常用的消除 miller 补偿的右半平面零点的方法。

下图所示是就一个利用 cascode 补偿的电路
cascode补偿
电路中,通过将补偿电容Cc的一端由X点移到Y点,将补偿从一般的miller补偿变为cascode补偿,并利用cascode将由X点经由电容Cc到输出的前馈通路截断。

继续阅读