tags
课程
摸鱼的笔记
type
Post
status
Published
date
Jan 3, 2026
slug
dashudian
summary
category
摸鱼的笔记
password
icon

#1 直流特性

其中,具体推导见纸质笔记
notion image
💡
Keff等效:串联K1||K2,并联K1+K2
恒通管粗略估计认为也与输入相连,恒断管从电路中去掉
Rmk:反相器具有“可恢复性逻辑”,任意初始电平最后都能稳定地收敛到0/VDD,这一点用“蛛网图”就能说明
  • 例题1
notion image
3区高度从Vout=Vit向上|VTP|,向下VTN,合计|VTP|+VTN
  • 例题2
思路:找到最大(NMOS强)和最小的Kr,分别对应最小(NMOS强)和最大的Vit
notion image
电路比较复杂,上下两部分耦合,难以一下看出Kr的最值。这时候最好的办法就是遍历。先枚举0/1,而某一个信号连到输入表示“N1P0”。匹配其中Kn和Kp的最值从而计算Kr的最值,不能出现某个信号N和P都不导通的状态(N0P1)
本题中,AB对称
A
B
C
D
Keff
0
0
0
0
3/5Kp(Kpmax)
0
0
0
1
Kn
0
0
1
0
1/3Kp(Kpmin)
0
0
1
1
Kn
0
1
0
0
1/2Kp
0
1
0
1
Kn
0
1
1
0
1/2Kn(Knmin)
0
1
1
1
3/2Kn
1
1
0
0
1/2Kp
1
1
0
1
Kn
1
1
1
0
2/3Kn
1
1
1
1
5/3Kn(Knmax)
Krmax:Knmax/Kpmin,N:1111 P:0010 ⇒ ABD作为输入,C=1 ⇒ 5/3Kn / 1/3Kp
Krmin:Knmin/Kpmax,N:0110 P:0000 ⇒ BC作为输入,A=D=0 ⇒ 1/2Kn / 3/5Kp

#2 瞬态特性

其中
u1和u2分别为计时开始和终止的电平比例,一般取u1=0.1,u2=0.9,即监控Vout从0.1VDD→0.9VDD的时间
tf只需要把PMOS换成NMOS,此处省略
通常用非阶跃近似简化为
💡
如果Keff仍然采取“恒通~input”的估计,则充放电时间只由终态决定。
如果负载电容占主导,提升器件W/L可以提升速度;而如果寄生电容(栅电容、漏区电容与W成正比)占主导,就见效甚微
  • 环振
N(奇数)个反相器收尾相连。如果不计连线延时,需要N>1
  • 例题1
notion image
A
B
X (Cn+Cp=3C0)
Y (10fF=5C0)
path
K
max delay
0
0
1
0
→X→Y
1/2Kp + Kn
11t0
0
1
0
1
→X→Y
Kn + 1/2Kp
13t0
1
0
0
1
→X→Y
Kn + 1/2Kp
13t0
1
1
0
0
→Y
2Kn + 1/2Kn
10t0
💡
由于Keff只由末态确定,因此只需要枚举输入的末态,并对应给出各节点的末态电平。
注意点1:为方便计算,把所有电容化归到C0,并把所有时间化归到t0。
注意点2:path需要小心甄别,如A=B=1时,第二级能够直接放电而不需要等待前一级的信号,因此第一级不在path中。 如果求最大延时,需要验证存在一组先前状态,使得path中每一级都依赖前一级结果。 如果求最小延时,则一些path可能被缩短。比如A=B=1 → A=1,B=0,X没有变化,因此求最小延时不应计入路径。表格中计入的是最长路径,因为从A=B=0 → A=1,B=0,X变化了。
path正确的必要条件一:节点电平0101间隔。正确的path一定由数个等效反相器构成。
path正确的必要条件二:K一定是KnKp间隔的,因为Kp对应节点=1,Kn对应节点=0。据此,A=B=1时不应计入第一级延时。
注意点3:如果只求特定输入→输入的延时,需要排除Y不变的情况,如FA中A=B=1,就不能计算Cin→Cout的延时。

#3 传输门

  • NMOS/PMOS传输门
NMOS传低电平,PMOS传高电平(记忆:与反相器中工作状态一致),否则有阈值损失,而且等效导电因子约*1/2
notion image
  • 例题1
notion image
notion image
图C:上升延时,下降延时
图D:上升延时,下降延时
  • CMOS传输门
notion image
  • 阈值恢复
NMOS传高电平只能到VDD-VTN,通过Mr再拉到VDD。
缺点:NMOS传低电平的时候(此时Out即将0→1)Mr一开始是开启的,(Mn||M1)对X的放电将与Mr对X的充电竞争,因此Mr不能太强
notion image
  • CPL
线与的两条路通且只通一条,本质上就是MUX,有阈值损失,需要加反相器和阈值恢复
每个运算同时给出结果和结果的非。阈值恢复可以从“对方”那里引出
notion image
notion image
  • DPL
比CPL用多一倍的管子,每次有1个NMOS和1个PMOS构成线与,由于传递的信号相同,避免了断路;同时消除了阈值损失;因为有两个通路也加快了速度
notion image

#4 动态电路

NMOS提前预充到VDD;PMOS提前预充到GND
NMOS/PMOS网络结构同CMOS设计
notion image
  • 问题一:电荷分享
notion image
notion image
左图:A=1,B=0,NMOS网络不导通,但是M1作为传输管会使得C1分走部分CL的电荷,造成Vout下降
一般情况下CL>>C1,阈值损失导致C1电压只能到VDD-VTN
右图:解决办法。对每个节点都加入预存管,提前把C1充到VDD。
  • 问题二:级联
如果NMOS直接级联,假设前级输出为0,但其从1→0需要经过一段时间,而后级NMOS接收到“1”的输入,会“错误地放电”。
然而,注意到PMOS面对错误的“1”并不会影响Vout,“0”的延后对其造成的影响只是PMOS网络的导通延后,进而Vout的拉高延后了。同理,NMOS对错误的“0”也具有容忍性。因此,我们可以将NMOS、PMOS交替级联。
notion image
注意PMOS的时钟需要取反,这样当,NMOS和PMOS均能预充,而当时,将在一个周期内一级一级地完成求值,求值总时间为各级下拉/上拉延时之和,
  • 问题三:电荷泄露
NMOS存在电荷泄露问题,添加一个PMOS作为keeper。(会出现类似“2个PMOS的传输门”的结构)
这可以同时解决电荷分享的问题。
notion image
在NMOS网络下拉时,Mkp会与NMOS网络竞争,拖慢下拉速度。
  • 时钟周期
T/2的时间应该允许网络进行 1)预充 2)逐级求值,一般而言2)的时间大于1),尤其是多级电路,预充是同步进行的,而求值则需要逐级进行
同时,在T/2的时间内,电荷应当不至于泄露掉。记电荷保持时间为

多米诺逻辑

在每一级之后加一个反相器。解决N-N和P-P级联问题,并有利于实现不带非的逻辑。
notion image
notion image
左图:(ABCDE)’
右图:前后同类加inv,前后不同类直接连
RMK:如果一级的输入全部来自前级多米诺(言下之意,前后级性质相同),则可以去掉MN1和MP2。例如对NMOS,前级输出全部被充到VDD,经过反相器送到本级都是低电平,NMOS网络不可能导通,因此也就能去掉(原本为了防止预充时NMOS网络导通而加入的)MN1。
  • 其他多米诺结构
notion image
notion image
 

#5 复杂逻辑门

XOR & XNOR

  • CMOS直接实现
左边:XOR,Y=(AB+A’B’)’
右边:XNOR,Y=(AB’+A’B)’
notion image
  • NOR+AOI
以XOR为例,XNOR可以用NAND+OAI
notion image
  • 传输门
notion image
左图:6管。A=1是传输门关,后级为正常反相器,Y=B’;A=0时传输门开,Y=B无阈值损失,同时后级实现有阈值损失的Y=B,不冲突
右图:8管。用B来做MUX的控制信号

MUX & DEMUX

  • MUX2
notion image
notion image
左图:S=0时打开左边的反相器;S=1时打开右边的反相器
右图:S控制两个传输门,有且仅有一个打开
可以用2-1MUX实现XOR
  • MUX4
两级共3个MUX2级联
notion image
传输门实现,更加规整。也可以进一步变成MUX2的级联
传输门还有一个好处,只需要把输入输出颠倒,就能直接实现DEMUX
notion image
notion image

Encoder & Decoder

左图:2^n个或非门(或非 等价于 非与)。如果用与非门,需要加一个反相器
右图:也可以采用动态电路来实现。由于是“与”的逻辑,因此富PMOS的动态电路其实会更高效,不会出现图中富NMOS电路一堆NMOS串联的问题
notion image
notion image

HA & FA

  • 2HA+1OR
  • 资源复用
S=1的情况:当Cout=1时,需要ABCin均为1;当Cout=0时,需要ABC有至少一个是1
notion image
  • 镜像逻辑
全加器的输出具有镜像特征:当所有输入均取反,输出也取反
利用这一特征,NMOS和PMOS可以采用【相同】的结构。这样有利于在“或非”型逻辑中,减少PMOS的串联
💡
为什么可以用相同结构?
假设任意一组使得NMOS网络导通的输入,其取反后必然能使相同结构的PMOS网络导通;同时,由于镜像逻辑的保证,NMOS网络(与原本的CMOS设计相同)一定不会导通
notion image
notion image
  • 传输门
用A xor B的结果作为第二级MUX的控制信号
notion image

#6 加法器

行波进位加法器(Ripple-Carry Adder, RCA)

notion image
其中Tcarry为A/B/Cin→Cout的延时,Tsum为A/B/Cin→S的延时。对28管全加器,一般有Tsum>Tcarry。因此上面分析关键路径延时取Ci0→S3的延时,而没有取Ci0→Co3的延时。

跳跃进位加法器(Carry-Skip Adder, CSA)

notion image
为研究进位依赖关系,定义三个信号。表示进位一定是1,从本级产生(generate)与前一级无关。表示进位一定是0,被本级消除(kill)。表示本级Cout=Cin,直接传递前级的进位(propagate)。容易发现三个信号是互斥的,有且仅有一个信号为1。
把FA细化为按顺序执行的三个步骤(第3步只依赖本级的第1步和上一级的第2步)。(定义Ci为第i级的输出Cout)
  1. Setup.
  1. Carry.
  1. Sum.
在每一组中,如果发现4个Pi都是1,说明这一组的Cout=这一组的Cin,直接传输前一组的Cin。因此MUX的控制信号为
  1. setup是并行的。
  1. 最坏情况下,这样MUX无法选择C3=Cin,C3依赖C2依赖C1依赖C0,C0不依赖Cin但是依赖G0P0,因此第一组仍然有M*Tcarry,G0P0→C0→C1→C2→C3
  1. 后面三组如果出现Pi=0,意味着不依赖前一组,前一组不在关键路径中,只会缩短关键路径。因此,最坏情况是后面均为Pi=1,共需要经过(N/M-1)个bypass
  1. 最后一组,我们不再关心Cout(因为再经过一个bypass很快,如果本级有Pi=0,只会更快),我们需要关心S。由于S15=P15xorC14,最坏情况下C14依赖C13依赖C12依赖前一组的Cout。因此还需要(M-1)*Tcarry+Tsum
以上是最长延时,特定输入能缩短关键路径。如,ABCD+DCBA。每一组中,P0=P1=P2=1,G3=1,因此每一组中的S3依赖于C2-C1-C0-Cin,而每一组的Cin只需要经过一个carry和一个bypass,因为前一组的G3=1。综上T=Tsetup+Tcarry+Tbypass+3*Tcarry+Tsum。
💡
总的来说就是看两个Pi=0之间的路径(包括Pi=0到最终输出的路径)

超前进位加法器(Carry-Lookahead Adder, CLA)

notion image
以上只显示了进位链。以下记组进位信号为GGj,GPj。容易验证,GGj和GPj也是互斥的。
与跳跃进位一样,都是在加速进位的传播。当GPj=1(意味着GGj=0)时,两种加法器都会直接选择GCout=GCin;而当GPj=0,跳跃进位会少走几个carry给出GCout,而超前进位通过提前计算GGj给出GCout。
TG指从PiGi生成GP,GG的过程,TGcarry指的过程。
对比跳跃进位,TG取代了M*Tcarry,TGcarry取代了Tbypass

进位选择加法器(Carry-Select Adder, CSA)

notion image
这里是把进位链和求和分开了。
实际上第一级可以直接输入Cin,可以少一个Tmux。

进位链

  • 多输出多米诺(见多米诺逻辑)
  • 传输门(左图)
以A xor B作为控制信号,具体可见上一章“HA & FA”
notion image
notion image
  • 曼彻斯特进位链(右图)
动态电路实现。当且Pi=1时从左边放电;当Gi=1从下面放电。
延迟~N^2,这与一般N级动态电路不同,是因为前级输入没有连到gate。这里N个横着的串联管用elmore模型估计为N级RC延迟,因此延迟~N^2。
  • 在曼彻斯特进位链中加入进位跳跃
notion image

#7 时序电路

DFF

notion image
前级clk=0透明,后级clk=1透明。
setup从D→A,能把A覆盖掉即可。tcq是从A到Q。
如果改成从两个反相器中间的节点引出输出:后级反相器接收到的是,但因为两极输出都反向了,不影响DFF功能。setup仍然需要经过两极反相器,但tcq只需要经过一级反相器就够了。

动态DFF

notion image
信息存在
  1. ,第一级透明反相器,第二级预充,第三级只有一个上拉PMOS
  1. ,第一级只剩一个下拉NMOS(由于setup要求,此时D还不会变,因此x不变),第二级求值,第三级是反相器。
💡
为什么2)之后就能锁存?
因为要使第二级出错,只能是x:0→1造成误放电,而第一级上拉通路已经关闭。
可以验证一下:如果在期间D:1→0,不会改变x的值。如果在期间D:0→1导致x:1→0,只要第二级已经完成了对y节点的放电,y节点不会再被拉高,因此也不会造成第二级结果错误。从第二种情况中,可以看到

#8 存储器

SRAM

notion image
以下假设阵列大小为2^(R+C)*W b。其中R为行地址长度,C为列地址长度,W为单个word的位宽。
  • 6T cell
notion image
notion image
notion image
读取:BL和BLB一个被拉低,一个被拉高
写入:从内部节点放电(图中从QB向BLB放电),进而将Q拉高。“写0不写1”。
  • 行译码器:R输入→2^R输出
notion image
notion image
左图:最简单的高有效(有且仅有一个输出为1)decoder由2^R个R输入NOR门构成。
右图:(第一级高有效,第二级低有效)当R比较大时,分多级译码。例如,NOR4=NOR2+AND。。这里第二级是NAND,因此整个译码器是低有效。
还可以用树状DEMUX实现,级联就是MUX反过来。比如R=3,可以第一级M1=2,第二级M2=1。
notion image
动态电路来实现:左边是高有效,右边是低有效。
notion image
  • 列译码器
需要实现数据的双向传输 ⇒ 传输门
notion image
notion image
如果一个128*8b存储器,阵列为32*32,则C=2。左图列译码器需要2*INV+4*NOR2+4=24个晶体管;右图列译码器只需要2*INV+6=10个晶体管。
  • Precharge和SA
notion image
notion image
两个设计中横向的晶体管都用于确保预充结束后BL和BLB电压一致

DRAM

  • 1T1C cell
notion image
写“1”:BL=VDD,WL=1,Vx→Vs1=VDD-VTN
写”0”:BL=0,WL=1,Vx→Vs0=0
读取:预充BL=(Vs0+Vs1)/2。如果cell中是“1”,则BL电平上升;如果cell中是“0”,则BL电平下降
电荷传输效率
由于CBL通常大于Cs,因此T通常较小。同时为加快读取速度,需要在外面加Sense Amp。
  • 3T cell
notion image
写“0”则Vx=0,写“1”则Vx=VWWL-VTN。读写分离,读取不再损坏内部数据。

ROM

  • 并联结构
notion image
notion image
左边:D[0]=0100
右边:D[0]=1011
  • 串并联结构(左图)
只有一行WL=0,其余均为WL=1。
D[0]=0100
notion image
notion image
  • 预充ROM(右图)
实现无比逻辑
  • 例题1
假设2-4译码器用的是与非门,单级结构。
notion image
设宽长比1:1的栅电容为C0。外围NMOS/PMOS导电因子为K0.
译码器延时:2*6C0/K0(注意每个inv连了两个NAND)+6C0/0.5K0(NAND串联下拉)+3*C0/K0(一根WL最多挂3个NMOS)=27C0/K0
阵列NMOS放电:6C0/0.5K0(注意阵列中NMOS宽长比为1:1)=12C0/K0
反相器:6C0/K0
共计45C0/K0为反相器驱动反相器的7.5倍。

#9 IO单元

ESD

  • 输入保护
notion image
notion image
对深亚微米工艺,栅氧化层更薄,击穿电压更小。这时候需要提高保护二极管的掺杂浓度以降低其击穿电压
notion image
  • 输出保护
输出端通常为漏端,与衬底形成反偏的PN结。只有对可靠性要求很高时才需要额外加二极管进行ESD保护
  • 电源保护
(左图)栅极接GND的NMOS,源端N+与衬底形成PN结,VDD有正脉冲时被击穿
(右图)VDD正脉冲时Vx上升较慢,使Mp导通,VG上升,使右侧钳位NMOS导通,释放静电
notion image
notion image

输入缓冲器

  • CMOS施密特触发器
notion image
notion image
右图的右侧曲线:考虑Vin从0增加到VDD。一开始Vin=0,Vout=VDD,Vx=VDD-VTN3。当Vin增大到VTN1,MN1导通,与MN3竞争下拉Vx。但Vin进一步上升,达到时,MN2和MN1均导通,Vout=0。
右图的左侧曲线:考虑Vin从VDD减小到0。一开始Vin=VDD,Vout=0,Vy=|VTP3|。对称地,直到Vin下降到时,Vout才会被上拉到VDD。
由于加入了反馈,Vout的情况与其上一时刻的电平有关,因此VTC变为两条,呈现出“回滞”特征。
这样的回滞曲线使得Vin在(V-,V+)间震荡时,Vout不会变化。只有当Vin从小于V-变为大于V+,Vout才会从VDD变成0(反之亦然),从而过滤了很多输入噪声,只有当输入电平呈现出明显的”变化意图“的时候,才会引起Vout的变化。
下图比较了(b)反相器作为输入级和(c)施密特触发器作为输入级
notion image

输出缓冲器

为匹配IO端的宏观输出电容,一般采用多级反相器作为输出缓冲器。
notion image
简化而言,如果不考虑结电容,每个反相器的W依次增大S,则每一级延时不变。
假设输入端驱动Cin延时为Tp0,则反相器链总延迟为
当S=e时,取到最小值。考虑到结电容影响,S可以取大一些,比如S=4.
 
Analog Integrated Circuits浪漫主义时代的欧洲音乐
Loading...