portas lógicas cmos - paginas.fe.up.pt
TRANSCRIPT
VLSI Transístores 1
FEUP/DEECAbril de 2010
Portas lógicas CMOS
João Canas Ferreira
Tópicos deProjecto de Circuitos VLSI
VLSI Transístores 2
Conteúdo
Baseado em:J. Rabaey, A. Chandrakasan, B. Nikolic
Digital Integrated Circuits, 2ª ed, PrenticeHall
Inversor comportamento estático comportamento dinâmico (tempo de propagação) cadeias de inversores
Portas CMOS complexas Esforço lógico (dimensionamento)
VLSI Transístores 3
O inversor CMOS
Polisilício
In Out
VDD
GND
PMOS2λ
Metal 1
NMOS
Contactos
N Well
VLSI Transístores 4
Análise DC de primeira ordem
VOL = 0VOH = VDD
VM = f(Rn, Rp )
VDD VDD
V in = VDD V in =0
VoutVout
Rn
Rp
VLSI Transístores 5
tpHL = f(R on.CL)
= 0.69 Ron CL
Resposta transitória
VoutVout
Rn
Rp
VDDVDD
(a) Low to high (b) High to low
CLCL
Vin = V
DDV
in = 0
VLSI Transístores 6
Linhas de carga PMOS
V DSp
IDp
VGSp=2.5
VGSp=1V DSp
IDnV in=0
V in=1.5
Vout
I DnV in=0
V in=1.5
V in = V DD+VGSpIDn = IDp
Vout = V DD+VDSp
V out
IDnV in = V DD +VGSpIDn = I Dp
V out = VDD +VDSp
VLSI Transístores 7
Característica de carga do inversor CMOS
IDn
Vout
Vin = 2.5
Vin = 2
Vin = 1.5
Vin = 0
Vin = 0.5
Vin = 1
NMOS
Vin = 0
Vin = 0.5
Vin = 1Vin = 1.5
Vin = 2
Vin = 2.5
Vin = 1Vin = 1.5
PMOS
VLSI Transístores 8
Vout
Vin0.5 1 1.5 2 2 .5
0.5
11.
52
2.5
NMOS resPMOS off
NMOS satPMOS sat
NMOS offPMOS res
NMOS satPMOS res
NMOS resPMOS sat
Curva de transferência do inversor CMOS
NMOS offPMOS res
NMOS satPMOS res
NMOS satPMOS sat
NMOS resPMOS sat NMOS res
PMOS off
VLSI Transístores 9
VM em função da razão entre transístores
100 1010.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
MV (
V)
Wp/W
n
V M=V Tn
V DSATn
2 r V DDV TpV DSATp
2 1r
r=k p V DSATp
k nV DSATn
V M≈r V DD
1r
com
para valores elevados de VDD
VLSI Transístores 10
Determinação de VIH e VIL
VOH
VOL
Vin
Vout
VM
VIL VIH
Abordagem simplificada
V IH−V IL=−V OH−V OL
g=−V DD
g
V IH=V M−V M
g
V IL=V MV DD−V M
g
NM L=V IL NM H=V DD−V IH
VLSI Transístores 11
Ganho g do inversor
g≈−1
I D V M
k n V DSATnk p V DSATp
n−p
≈1r
V M−V Tn−V SATn /2n−p
VLSI Transístores 12
Conteúdo
Baseado em:J. Rabaey, A. Chandrakasan, B. Nikolic
Digital Integrated Circuits, 2ª ed, PrenticeHall
Inversor comportamento estático comportamento dinâmico (tempo de propagação) cadeias de inversores
Portas CMOS complexas Esforço lógico (dimensionamento)
VLSI Transístores 13
Atraso de propagação — Abordagem 1
t pHL≈12
C L V swing
I AV
≈C L
k n V DD
com I AV=k n
2V DD−V th
2
(canal longo)
Corrente média calculada como o valor médio de ID(V
DS=V
DD) [saturado] e
ID(VDS
=VDD
/2) [linear], com VGS
=VDD
.
VLSI Transístores 14
Atraso de propagação — Abordagem 2
VDD
Vout
Vin = VDD
Ron
CL
tpHL = f(Ron.CL)
= 0.69 RonCL
t
Vout
VDD
RonCL
1
0.5
ln(0.5)
0.36
VLSI Transístores 15
Cálculo de tpHL
Req≈34
V DD
I DSAT
1−79V DD
I DSAT=k 'WL V DD−V T V DSAT−
V DSAT2
2
t pHL=ln 2Reqn C L=0.69 Reqn C L
com
Logo:
VLSI Transístores 16
Resposta transitória (simulação)
t p=0.69C L
ReqnReqp
2tpHLtpLH
VLSI Transístores 17
Atraso em função de W e L
t pHL=0.6934
C LV DD
I DSATn
=0.52C LV DD
W / Ln k 'n V DSATnV DD−V Tn−V DSATn /2
t pHL≈0,52C L
W / Ln k ' n V DSATn
VLSI Transístores 18
Rapidez: Qual a melhor razão NMOS/PMOS?
Alargar PMOS beneficia tpLH
mas degrada tpHL
. (Porquê?)
opt=r 1 C w
Cdn1C gn2
r=Reqp /Reqn
opt≈r
Ignorando a pista:
tp
β = Wp/Wn
tpHLtpLH
=W /Lp
W /Ln
=W p
W n
⋅Ln
L p
com r = razão entre as resistências de transístores P e N das mesmas dimensões
VLSI Transístores 19
Impacto do tempo de subida no atraso tpt p
HL(n
sec
)
0.35
0.3
0.25
0.2
0.15
trise (nsec)10.80.60.40.20
Influência da forma deonda de entrada.
tr : 10% → 90%
t pHL= t pHL step 2
t r /22
VLSI Transístores 20
Conteúdo
Baseado em:J. Rabaey, A. Chandrakasan, B. Nikolic
Digital Integrated Circuits, 2ª ed, PrenticeHall
Inversor comportamento estático comportamento dinâmico (tempo de propagação) cadeias de inversores
Portas CMOS complexas Esforço lógico (dimensionamento)
VLSI Transístores 21
Cadeia de inversores
CL
Dado CL: Quantos andares para minimizar o atraso?- Como dimensionar os inversores?
In Out
Exemplo da avaliação do tempo de propagação “inserido” em circuito
VLSI Transístores 22
Atraso de inversor: carga capacitiva
• Assumir inversor “equilibrado”• cadeias de pullup e pulldown iguais• aprox. resistências iguais RN = RP
• aprox. tempos tpLH e tpHL
t p=0.69 ReqC intC ext
t p=0.69 Req C int 1C ext /C int=t p0 1C ext /C int
Cint: capacidade intrínseca
Cext: capacidade extrínseca (pista e gates “atacadas”: fanout)
tp0: atraso intrínseco (sem carga)
VLSI Transístores 23
Atraso do inversor: dependência das dimensões
Quando um inversor é aumentado de S (largura: W → S × Wref)
Cint = S Cintref e Req = Reqref / S
Nota: Transístor de referência é o mais pequeno transístor “simétrico”: tpHL = tpLH
Então:
tp0 é independente do dimensionamento
t p=0.69 Rref /S S C intref 1C ext /S C intref
t p=0.69 Rref C intref 1 C ext
S C intref=t p0 1 C ext
S C intref
VLSI Transístores 24
O conceito de "fanout" efectivo
Cint = γ Cgin actualmente com γ ≈ 1
f = CL/Cgin "fanout" efectivo
Cgin : capacidade à entrada da cadeia
t p=t p0 1C ext /C gin=t p0 1 f /
O atraso de um inversor depende apenas da razão entre a sua capacidade de carga externa e a sua capacidade de entrada.
VDD
CintCgin
VLSI Transístores 25
Dimensionamento de cadeias de inversores para N fixo
Equação de atraso tem N1 incógnitas, Cgin,2 a Cgin,N
Minimizar o atraso, determinar N1 derivadas parciais
Resultado: Cgin,j+1/Cgin,j = Cgin,j/Cgin,j1
Tamanho de cada andar é a média geométrica dos vizinhos.
- cada andar tem o mesmo fanout efectivo (Cout/Cin)- cada andar tem o mesmo atraso
C g , j=C g , j−1C g , j1
VLSI Transístores 26
Detalhes...
t p=t p0∑j=1
N
1C g , j1
C g , j
Por exemplo:
t p
C g ,2
=t p0
C g ,2 C g ,1
C g ,2
C g ,2
C g ,3=0
−C g ,1
1C g ,2
2 1
C g ,3
=0
C g ,22=C g ,1C g ,3
C g ,2=C g ,1C g ,3
Derivamse assim N1 restrições
Conclusões:a) Dimensão óptima: média geométrica dos vizinhosb) Cada inversor é f vezes maior que o anterior
Os outros termos são independentes de C
g,2 logo a sua
derivada é nula.
C g ,22=C g ,1C g ,3⇔
C g ,3
cg ,2
=C g ,2
C g1
= f
VLSI Transístores 27
Atraso mínimo e número de andares
Na situação óptima, cada andar é aumentado de f (factor de aumento)e tem fanout efectivo f :
O atraso mínimo pode ser calculado sem dimensionar os andares:
Fanout efectivo de cada andar:
f =NC L /C g ,1
f =NF F é o "fanout" efectivo global
t p=N t p01NF /
VLSI Transístores 28
Qual é o número óptimo de andares?
Problema: Para uma dada carga, CL e uma dada capacidadede entrada Cin, determinar o factor de aumento f óptimo.
Para γ = 0, f =e, logo N = ln (F)
f =e1/ f Equivalente:
NF−
NF ln F
N=0
Diferenciar tp em ordem a N e igualar a zero, resulta em:
C L=F⋅C in= f N C in com N=ln Fln f
VLSI Transístores 29
"Fanout" efectivo óptimo f
Qual é o f óptimo para um dado processo (caracterizado por γ)
fopt = 3.6
para γ = 1
f =e1/ f
VLSI Transístores 30
Impacto de “autocarga” sobre tp
1.0 3.0 5.0 7.0u
0.0
20.0
40.0
60.0
u/l
n(u
)
x=10
x=100
x=1000
x=10,000
Sem autocarga, γ=0 Com autocarga, γ=1
Tempo de propagação normalizado (tp/t
popt) com função de f
VLSI Transístores 31
Impacto da utilização de buffers: exemplo
Tabela de tpopt
/tp0
para três situações (com γ=1):
F sem buffer 2 andares cadeia de inversores10 11 8,3 8,3100 101 22 16,51000 1001 65 24,810000 10001 202 33,1
VLSI Transístores 32
Conteúdo
Baseado em:J. Rabaey, A. Chandrakasan, B. Nikolic
Digital Integrated Circuits, 2ª ed, PrenticeHall
Inversor comportamento estático comportamento dinâmico (tempo de propagação) cadeias de inversores
Portas CMOS complexas Esforço lógico (dimensionamento)
VLSI Transístores 33
Generalização para circuitos CMOS estáticos complementares
VDD
F(In1,In2,…InN)
In1In2
InN
In1In2
InN
PUN
PDN
PMOS
NMOS
PUN e PDN são redes lógicas duais
VLSI Transístores 34
Porta CMOS complexa (complementar, estática)
OUT = D + A • (B + C)
D
A
B C
D
A
B
C
VLSI Transístores 35
Modelo para determinação de atrasos
A
Req
A
Rp
A
Rp
A
Rn CL
A
CL
B
Rn
A
Rp
B
Rp
A
Rn Cint
B
Rp
A
Rp
A
Rn
B
Rn CL
Cint
NAND2 INVNOR2
VLSI Transístores 36
Impacto do padrão de entradas no atraso
Atraso é dependente do padrão das entradas Transição de “0” para “1”
ambas as entradas a zero► atraso é 0.69 (Rp/2) CL
uma entrada a zero► delay is 0.69 Rp CL
Transição de “1” para “0” ambas as entradas a um
► atraso é 0.69 × 2 × Rn CL
CL
B
Rn
A
Rp
B
Rp
A
Rn Cint
VLSI Transístores 37
Atraso em função do padrão de entradas
57A= 1→0, B=1
76A=1, B=1→0
35A=B=1→0
50A= 0→1, B=1
62A=1, B=0→1
69A=B=0→1
Atraso
(ps)
Padrão de entrada
NMOS = 0.5µm/0.25 µmPMOS = 0.75µm/0.25 µmCL = 100 fF
-0.5
0
0.5
1
1.5
2
2.5
3
0 100 200 300 400
A=B=1→0
A=1→0, B=1
A= 1, B=1 →0
tempo [ps]
Ten
são
[V]
VLSI Transístores 38
Questões de "fanin"DCBA
D
C
B
A CL
C3
C2
C1Atraso de Elmore:
t pHL=0.69 Reqn C12C 23C 34C L
Atraso de propagação deteriorase rapidamente com o "fanin" (nº de sinais de entrada): no pior caso, quadraticamente.
t pHL=0.69 R1⋅C 1R1R2⋅C 2R1R2R3⋅C 3R1R2R3R4⋅C L
Supondo todos os transístores iguais:
VLSI Transístores 39
Tempo de propagação em função de "fanin"
Regra prática: Evitar portas lógicas com mais de 4 entradas.
VLSI Transístores 40
Portas rápidas: técnica 1 Aumento dos transístores
Útil enquanto a capacidade de "fanout" (externa) for dominante
Dimensionamento progressivo
InN CL
C3
C2
C1In1
In2
In3
M1
M2
M3
MNModelo de atraso de Elmore:
M1 > M2 > M3 > … > MN (FET mais próximo da saída é o menor)
Pode reduzir atraso mais de 20%; ganhos decrescentes com redução das dimensões
VLSI Transístores 41
Portas rápidas: técnica 2
Ordem de chegada dos sinais de entrada
caminho crítico caminho crítico
atraso determinado pela descarga de CL, C1 e C2
atraso determinado pela descarga de CL
VLSI Transístores 42
Portas rápidas: técnica 3
Estruturas lógicas alternativas
F = ABCDEFGH
Objectivo: diminuir "fanin"
VLSI Transístores 43
Portas rápidas: técnica 4
"Isolar" fanin de fanout inserindo buffers
CLCL
VLSI Transístores 44
Portas rápidas: técnica 5
Redução da amplitude de tensão
redução linear do atraso também reduz consumo de potência
Mas a porta seguinte é muito mais lenta Ou é necessário usar “sense amplifiers” para recuperar o nível de tensão (memórias)
tpHL = 0.5 (CL VDD)/ IDSATn
= 0.5 (CL Vswing)/ IDSATn
VLSI Transístores 45
Conteúdo
Baseado em:J. Rabaey, A. Chandrakasan, B. Nikolic
Digital Integrated Circuits, 2ª ed, PrenticeHall
Inversor comportamento estático comportamento dinâmico (tempo de propagação) cadeias de inversores
Portas CMOS complexas Esforço lógico (dimensionamento)
VLSI Transístores 46
Dimensionamento de portas lógicas Porta lógica caracterizada por quatro grandezas:
Cin, Cp (parasita), Rup, Rdn Porta lógica = instância de um circuito padrão multiplicado por um factor de aumento a Dimensionar porta lógica = determinar a
Características do circuito padrão:
Capacidade de entrada Ct
Capacidade intrínseca (parasita) Cpt
Resistência de pullup = Res. Pulldown = Rt
Para uma porta dimensionada:
Cin = a Ct
Rup = Rdn = Ri = Rt/a
Cpi = a Cpt
VLSI Transístores 47
Modelo para o atraso de uma porta lógicat pabs=0.69 R i CoutC pi
t pabs=0.69 Rt
a Cin Cout
C in 0.69 Rt
a a×C pt
Mapear numa equação da seguinte forma
t pabs=g⋅f p com
f =Cout
C in
e =0.69 Rinv C inv
d=g⋅f p atraso em unidades de
g=Rt C t
Rinv C inv
p=Rt C pt
Rinv Cinv
Usar este tempo como unidade de referência que caracteriza o processo de fabrico para converter entre valores relativos e absolutos.
Para inversores: o esforço lógico g = 1Para inversores: o esforço lógico g = 1
Valor típico para pinv = 1
VLSI Transístores 48
Modelo de atraso de uma porta lógicaAtraso de uma porta:
d= h + p
atraso de esforço(effort delay) atraso intrínseco
Esforço lógico:h = g * f
esforço lógico fanout efectivo = Cout/Cin
O esforço lógico depende apenas da topologia, não das dimensões.O esforço eléctrico ("fanout" efectivo) depende da carga e das dimensões da porta.
d = g * f + p
VLSI Transístores 49
Definições de esforço lógico g
Definição 2: O esforço lógico de uma porta (lógica...) definese como a razão entre a sua capacidade de entrada e a capacidade de entrada de um inversor capaz de fornecer a mesma corrente.
Definição 1: O esforço lógico de uma porta (lógica...) definese como o número de vezes que essa porta é pior a fornecer corrente que um inversor com a mesma capacidade de entrada.
Definição 3: O esforço lógico de uma porta (lógica...) definese como o declive da curva de atraso vs. “fanout” dividido pelo declive da curva correspondente para um inversor.
VLSI Transístores 50
Esforço lógico de algumas portas simplesEsforço lógico é a razão entre a capacidade de entrada de uma porta e a capacidade de entrada de um inversor com a mesma corrente de saída.
g=1 g=4/3 g=5/3
VLSI Transístores 51
Esforço lógico: portas básicas
VLSI Transístores 52
Esforço lógico de portas (1)
Fan-out (h)
No
rmal
ized
del
ay (
d)
t
1 2 3 4 5 6 7
pINV
tpNAND
F(Fan-in)
g = 1p = 1d = h+1
g = 4/3p = 2d = (4/3)h+2
(Nota: Na figura, onde está “h” deve lerse “f”)
VLSI Transístores 53
Esforço lógico de portas (2)
VLSI Transístores 54
Exemplos
1. Determinar o atraso do inversor FO4 (fanoutof4)
d= f g p=1×4 pinv=41=5
2. Determinar o atraso do uma porta NOR4 que ataca 10 portas idênticas.
d= f g p=3×104×1=34
3. Determinar a frequência de oscilação de um anel de N inversores idênticos
d= f g p=1×1 pinv=21
2 N F=d =1 pinv atraso de cada andar de um oscilador
VLSI Transístores 55
Estimação do atraso intrínsecoSituação: Porta lógica com a mesma corrente de saída do inversor de referência. Transístores têm canal com o mesmo comprimento. Relação (W/L)p / (W/L)n = βEntão: (simplificando) O atraso da porta lógica é X vezes o atraso do inversor de referência (pinv), em que X é a razão entre a soma das áreas (larguras) de difusão (fontes ou drenos) ligadas ao nó de saída da porta em consideração e as correspondentes áreas do inversor de referência.
p=∑ wd
1 p inv
NAND2: 1 transístor de pulldown de largura 2 2 transístores de pullup de largura β, o que leva a p = 2 pinv.
NANDn: p = n pinv.Para a porta NORn obtém um resultado idêntico.
Tratase de um simplificação importante. Para melhores resultados, deve calibrarse o modelo a partir de simulações/estudos mais detalhados.
p=C ptx
C inv
=z⋅C pinv
C inv
=z⋅pinv
C ptx=z⋅C ptinv z=C ptx
C ptinv
22×
1=2
VLSI Transístores 56
Tabela de atrasos parasitas
Porta lógica Atraso parasita
Inversor pinv
Nand n entradas n*pinv
NOR n entradas n*pinv
multiplexador n entradas 2*n*pinv
xor, xnor n* 2(n1)*pinv
VLSI Transístores 57
Esforço de ramificação
b=Con− pathC off − path
Con− path
Ci
Ctotal
Coff
ConAo dimensionar “apenas” ao longo do percurso, a porta lógica 1 tem de ser de ser dimensionada “contando” não apenas com a carga da porta 2, mas também com a carga de Coff (que não está a ser
dimensionada).
a dimensionar
21
f 1=C onC off
C i
=C on
C i
×C onC off
C on
= f no_branch×b
VLSI Transístores 58
Minimizar atraso com dois andares
D=g1 f 1 p1g2 f 2 p2
f 1=C 2
C1
f 2=C3C2
f 1 f 2=C 3
C 1
=F
D= g1 f 1 p1 g2 F
f1 p2
D f 1
=g1−g2 F
f 12 =0
g1 f 1=g2 f 2
Generalização: O atraso é minimizado quando cada andar exerce o mesmo esforço (f*g). O resultado é independente das dimensões e dos atrasos parasitas;pode ser generalizado para qualquer número de andares e esforço de ramificação.
VLSI Transístores 59
Atraso óptimo de caminho longo
f 1 f 2 f N=B F com B=∏i
b i
definindo g 1 g 2 g N=G
H =g1 f 1g 2 f 2g N f N =GBFEsforço do caminho:
a) Não é uma medida directa do atraso.
b) Não depende da dimensão dos circuitos
c) Não é alterado pela inserção de inversores
todos iguais, logo h= f g
hN=H h=H 1 /N
D=∑ g i f i p i=N H 1 /NP
VLSI Transístores 60
Número de andares óptimoCenário: caminho com n1 andares e n2 inversores, N = n1+n2
Assumir que se pode alterar n2. (Não altera o esforço do caminho)
D=N H 1/ N∑i=1
n1
piN−n1 pinv
DN
=−H 1/N ln H 1/ N H 1/ N pinv=0
substituindo pelo atraso para número óptimo de andares =H 1/ N
pinv1−ln =0
ρ que satisfaz a equação é o esforço de andar óptimo para todos os andares do percurso: é independente das propriedades do caminho.
VLSI Transístores 61
Aspectos pragmáticos
se p inv=0 então =e=2.718
aproximação
≈0.71 pinv2.82
para p inv=1 temos =3.59
Ou usar a tabela ...
Esforço de caminho H
N F 1 / N p inv= N1F 1 / N 1
p inv
Ou usar ...
N≈log4H
VLSI Transístores 62
Esforço óptimo por andar: resumo
hN=H h=NH
Cada andar "suporta" o mesmo esforço:
D=∑ g i f i pi =NH 1/ NP
Atraso mínimo de percurso:
f i=h/ g i"Fan-out" efectivo de cada andar:
Esforço dos andares: g1f1 = g2f2 = … = gNfN
Número óptimo de andares: N≈log4H
VLSI Transístores 63
Exemplo: Optimização de um percurso(determinação das capacidades de entrada)
g = 1f = a
g = 5/3f = b/a
g = 5/3f = c/b
g = 1f = 5/c
Fanout efectivo: F = 5G = 25/9, B=1H = FGB =125/9 = 13.9h = H1/4 = 1.93c = 5 *Cin * g4 / h = 2.59 * Cinb = 2.59 * Cin g3 / h = 2.23 * Cina = 2.23 * Cin g2 / h = 1.93 * Cin
C ini= g i
C out i
h
h= f i g i=g i
C out i
C ini
Cin
VLSI Transístores 64
Esforço lógico: Exemplo 2
D = N (FBG)1/N + P
(a) D = 2 (3.33 F)1/2 + 9(b) D = 2 (3.33 F)1/2 + 6(c) D = 4 (2.86 F)1/4 + 7
F = 1 : b (9.65)F = 12 : c (16.77)
VLSI Transístores 65
Esforço lógico: Sumário (1)
• Calcular o esforço de percurso: H = GBF
• Determinar o número óptimo de andares: N ~ log4(H)
• Calcular o esforço do andar: h = H1/N
• Fazer um esboço do percurso
• Determinar os tamanhos: Cin = Cout * g / h
Referência: Sutherland, Sproull, Harris, “Logical Effort”, MorganKaufmann 1999.
VLSI Transístores 66
Esforço lógico: Sumário (2)
Adaptado de: Logical Effort, Sutherland, Sproull & Harris
Resumo das definições
Conceito Andar (porta lógica) Percurso
esforço lógico g G=∏ g i
esforço eléctrico f =Cout
C in
F=Cout (percurso)
Cin (percurso)
esforço de ramificação - B=∏ bi
esforço h=gf H=GFB
atraso h DH=∑ hi
número de andares 1 N
atraso intrínseco p P=∑ p i
atraso d=h p D=DHP