Você está na página 1de 14

Universidade Federal de Pelotas

Centro de Engenharias
Engenharia Eletrnica
Disciplina de Microeletrnica
Professor Denis Teixeira Franco

Simulao de portas lgicas CMOS


(45 nm) atravs de NGSpice.

Carlos Caldern Aller

Data: 10/06/2015

1. INTRODUO:
O objetivo deste trabalho a simulao digital de portas logicas. da famlia
CMOS- dentro da tecnologia de 45nm para seu processo de fabricao dos transistores
Pmos e Nmos.
Para isso, se utilizar a ferramenta de programao informtica NGSpice. Um
programa desenvolvido a partir do standard internacional de simulao de circuitos
SPICE e que trabalha a partir de linhas de comando. NGSpice gratuito e pode-se
conseguir desde o prprio site.
O processo de simulao se centra no circuito inversor unitrio CMOS para, a
partir dele, desenvolver as diferentes portas propostas.
O inversor unitrio realiza a funo logica NOT, processando na sada o sinal
inverso da entrada.

Cada inversor unitrio est composto de dois transistores como se mostra na


figura anterior. Um transistor Pmos e um transistor Nmos, cada um composto por um
drenador (D), surtidor (S) e porta (G), como mostra a seguinte figura e que ser til
lembrar para poder desenvolver os comandos de simulao.

Na hora da simulao dever ser definido cada transistor do conjunto inversor


mediante parmentros caracteristicos de ligao entre as partes do circuito especifico.
Os comandos gerados sero mostrados nos captulos Anexos.

2. INVERSOR CMOS UNITRIO:


Neste primeiro caso, se deve conseguir o dimensionado dos transistores do
inversor para tempos de subida e descida similares, determinar a carga unitria para
conseguir um tempo de propagao similar entre ambos inversores unitrios e calcular
as caractersticas de velocidade de propagao para uma carga unitria x1 e uma carga
x5 a carga unitria.
Para o analises do circuito inversor, se realizar o sistema composto por um
inversor unitrio alimentado por uma entrada de pulso e ligado em serie a uma carga
composta por mais um inversor unitrio que por sua vez tem ligado em serie na sua
sada uma carga capacitiva.

Em primeiro lugar preciso conseguir tempos de subida e descida similares no


inversor unitrio, com o qual vamos trabalhar nos restantes circuitos. Para isso, vamos
ter que modificar a largura (W) do substrato do transistor Pmos sabendo que o
comprimento (L) de ambos Ln=Lp=45nm.
Em geral, a largura do transistor igual ou o doble do comprimento. por isso
que para Nmos utilizamos 45 ou 90nm. Neste trabalho foi escolhido o valor de
Wn=45nm j que isso produzir menor tamanho geral do dimensionado do sistema e
tornar melhor a resposta em tempo dos circuitos ainda sendo a um nvel mnimo.
Com essas premissas, se foi variando o valor de Wp ate chegar a Wp=77nm no
circuito inversor unitrio a analisar, com Ln=Lp=Wp=Wn=45nm para o inversor de
carga, e uma carga capacitiva de 50 fF.
Os tempos conseguidos foram trise=4.996755x10-12 s para o tempo de subida e
tfall=4.990398x10-12 s para o tempo de descida.
Para determinar os tempos de propagao similares devemos variar o valor da
carga capacitiva ate conseguir valores similares nos tempos. O valor alcanado foi
0.16fF com tpd1=4.56497x10-12s para o inversor testado e tpd2=4.50336x10-12s para o
inversor de carga.
-Valor para o inversor unitrio baixo o analise para diferente carga:
Carga (fF)
0.16 (x1)
0.8 (x5)

Tlow-high (ps)
4.441223
4.460759

Thigh-low (ps)
4.687817
4.696695

Tpd (ps)
4.56497
4.57873

Trise (ps)
5.913079
5.637474

Tfall(ps)
6.272032
5.761119

3. OSCILADOR EM ANEL:
A partir do desenho conseguido no captulo anterior com o inversor unitrio,
agora devemos testar um oscilador em forma de anel composto de 7 e 15 inversores
cada um e analisar sua unidade bsica de atraso () para cada estrutura de anel.

O processo de conexo entre os inversores unitrios em serie essencialmente


ligar a entrada de um com a sada do anterior e a sada com a entrada do seguinte
inversor. O resultado similar para 7 ou 15 inversores em anel.
Para calcular a unidade bsica de atraso precisa-se de uma serie de formulas para
chegar a ela a partir dos tempos de propagao:
Tempo de propagao:

Perodo:

Frequncia:

Unidade bsica de atraso ():


*n=nmero de inversores no anel.
Com esse desenvolvimento das frmulas chegamos a os seguintes resultados
para n=7 e n=15:

n
7
15

tplow-high (ps) tphigh-low (ps) tpd (ps)


T(ps) f(GHz)
(ps)
3.997976
4.33194
4.16496 58.3094 17.1499 2.08248
3.997634
4.333855
4.16574 124.972 8.00177 2.08287

4. PORTAS LGICAS XOR:


Para este ltimo caso, temos que analisar as caratersticas de velocidade de
propagao para trs topologias diferentes de portas lgicas XOR com cargas de x1 e x5
o valor da carga capacitiva unitria conseguida no apartado 1 (0.16fF).

Para o desenvolvimento das diferentes topologias se considera o inversor


unitrio CMOS do primeiro caso para, partindo dele realizar os desenhos seguintes,
elegidos pela sua simplicidade e pelas diferenas visveis de afinamento de sinal de
sada entre os diferentes casos:

Para os trs casos se utilizam duas fontes de pulsos, A e B, desfasadas entre elas
no tempo para conseguir todas as possveis combinaes lgicas:

- Representao grfica das tenses de entrada A e B.

Para o primeiro caso com 3 transistores, e apenas alimentando os transistores


com as prprias entradas do circuito, se consegue os seguintes resultados nos tempos de
propagao e de subida e descida, para as diferentes cargas exigidas:
Carga (fF)
0.16 (x1)
0.8 (x5)

Tlow-high (ps)
4.780859
10.78414

Thigh-low (ps)
2005.208
2007.168

Tpd (ps)
1004.99
1008.98

Trise (ps)
4.124908
6.618727

Tfall(ps)
3.395457
10.70826

Para o segundo caso, com 4 transistores, precisamos de uma fonte de


alimentao (Vdd), alm de utilizar o sinal de entrada (A) e a sada da primeira fase para
alimentar o segundo conjunto de transistores com sua prpria entrada de alimentao
(B).
Os resultados conseguidos com essa simulao XOR so os seguintes:
Carga (fF)
0.16 (x1)
0.8 (x5)

Tlow-high (ps)
5015.321
5016.633

Thigh-low (ps)
3.587502
3.450673

Tpd (ps)
2509.45
2510.04

Trise (ps)
9.05547
13.36089

Tfall(ps)
9.740805
32.74944

Por ultimo, para o caso de uma porta XOR formada por 5 transistores, a entrada
de cada conjunto inversor ser combinao da entrada e a sada do outro conjunto
inversor:
Carga (fF)
0.16 (x1)
0.8 (x5)

Tlow-high (ps)
5.140303
9.387601

Thigh-low (ps)
7014.211
7017.863

Tpd (ps)
3509.68
3513.63

Trise (ps)
6.532655
11.43704

Tfall(ps)
1288.444
2978.51

Os tempos de propagao foram medidos com respeito a entrada A.

5. CONCLUSIES:
Finalizado o trabalho pode-se observar algumas caractersticas entre os
diferentes captulos.
No primeiro caso, analisando o inversor unitrio chegou-se concluso de
eleger o dimensionado de 45nm para o comprimento do transistor Nmos, (Wn) e no de
90nm, j que o tamanho final do desenho se reduziria na hora de conseguir o
cumprimento unitrio para o Pmos (Wp), assim como a reduo do valor da carga
unitria.
Por outro lado, se observa a influencia do aumento da carga no circuito para os
tempos de subida e descida (rise e fall).
No apartado de osciladores com anel, a principal caracterstica significativa o
aumento do perodo do circuito anel com o aumento do nmero de inversores unitrios
formando o anel. Por tanto, se produz uma diminuio importante na frequncia para
um anel de 15 inversores.
No caso da unidade bsica de atraso, no produz nenhuma variao significativa
com o aumento do nmero de inversores do anel.
Por ltimo, na simulao de portas lgicas XOR, resulta importante assinalar a
dificuldade encontrada na hora de reduzir os tempos de passo alto para baixo e vice
versa para cada um dos modelos. O que produze um aumento do total de tempo de
propagao.
Respeito ao aumento da carga, se produz um aumento pronunciado nos tempos,
tanto de subida como de descida (rise e fall).
Finalmente, podemos concluir que o desenho do circuito CMOS depende de
vrios fatores importantes como o tipo de sinal de entrada ou o valor de carga na sada.
Com esses dois fatores gerais, devemos ser capazes de desenhar o sistema
microeletrnico mais eficaz para cada caso, dependendo das exigncias do projeto.

ANEXOS: CODIGOS NGSPICE


* Inversor Unitario CMOS (Ln=Wn=45nm):
*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100
* Alimentao do Circuito
Vsupply vdd 0 DC supply
*Sinal de entrada: PULSE(V1 V2 TD TR TF PW PER)
Vin in 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0
* transistor analisado
Mpmos out in vdd vdd pmos L=45n W=77n
Mnmos out in vss vss nmos L=45n W=45n
* transistor de carga
M2pmos out2 out vdd vdd pmos L=45n W=77n
M2nmos out2 out vss vss nmos L=45n W=45n
* Carga capacitica
Cload out2 vss 0.16f
*Tipo de simulao
.TRAN 0.001n 15n
* Comandos de Medidas
.meas TRAN tp_LH1 TRIG v(in) VAL=0.5 FALL=1 TARG v(out) val='supply*0.5' RISE=1
.meas TRAN tp_HL1 TRIG v(in) VAL=0.5 RISE=1 TARG v(out) val='supply*0.5' FALL=1
.meas TRAN tpd1 param='(tp_LH1+tp_HL1)/2'
.meas TRAN tp_LH2 TRIG v(out) VAL=0.5 FALL=1 TARG v(out2) val='supply*0.5' RISE=1
.meas TRAN tp_HL2 TRIG v(out) VAL=0.5 RISE=1 TARG v(out2) val='supply*0.5' FALL=1
.meas TRAN tpd2 param='(tp_LH2+tp_HL2)/2'
.meas TRAN trise TRIG v(out) VAL='1.0*0.1' RISE=1 TARG v(out) val='1.0*0.9' RISE=1
.meas TRAN tfall TRIG v(out) VAL='1.0*0.9' FALL=1 TARG v(out) val='1.0*0.1' FALL=1
.meas TRAN trise2 TRIG v(out2) VAL='1.0*0.1' RISE=1 TARG v(out2) val='1.0*0.9' RISE=1
.meas TRAN tfall2 TRIG v(out2) VAL='1.0*0.9' FALL=1 TARG v(out2) val='1.0*0.1' FALL=1
.end

* Oscilador ANEL de 7 Inversores CMOS


*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100
* Alimentao do Circuito
Vsupply vdd 0 DC supply
* Sinal de entrada PULSE(V1 V2 TD TR TF PW PER)
Vin in 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0

* Declarao do transistor
Mp1 1 in vdd vdd pmos L=45n W=77n
Mn1 1 in vss vss nmos L=45n W=45n
Mp2 2 1 vdd vdd pmos L=45n W=77n
Mn2 2 1 vss vss nmos L=45n W=45n
Mp3 3 2 vdd vdd pmos L=45n W=77n
Mn3 3 2 vss vss nmos L=45n W=45n
Mp4 4 3 vdd vdd pmos L=45n W=77n
Mn4 4 3 vss vss nmos L=45n W=45n
Mp5 5 4 vdd vdd pmos L=45n W=77n
Mn5 5 4 vss vss nmos L=45n W=45n
Mp6 6 5 vdd vdd pmos L=45n W=77n
Mn6 6 5 vss vss nmos L=45n W=45n
Mp7 in 6 vdd vdd pmos L=45n W=77n
Mn7 in 6 vss vss nmos L=45n W=45n

*Tipo de simulao
.TRAN 0.001n 15n
* Comandos de Medidas
.meas TRAN tp_LH TRIG v(4) VAL=0.5 FALL=1 TARG v(5) val='supply*0.5' RISE=1
.meas TRAN tp_HL TRIG v(4) VAL=0.5 RISE=1 TARG v(5) val='supply*0.5' FALL=1
.meas TRAN tpd param='(tp_LH+tp_HL)/2'
.meas TRAN T param='7*2*tpd'
.meas TRAN F param='1/T'
.meas TRAN Tau param='1/(4*7*F)'
.end

*Oscilador Anel de 15 Inversores CMOS


*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100
* Alimentao do Circuito
Vsupply vdd 0 DC supply
* Sinal de entrada PULSE(V1 V2 TD TR TF PW PER)
Vin in 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0
* Declarao do transistor
Mp1 1 in vdd vdd pmos L=45n W=77n
Mn1 1 in vss vss nmos L=45n W=45n
Mp2 2 1 vdd vdd pmos L=45n W=77n
Mn2 2 1 vss vss nmos L=45n W=45n
Mp3 3 2 vdd vdd pmos L=45n W=77n
Mn3 3 2 vss vss nmos L=45n W=45n
Mp4 4 3 vdd vdd pmos L=45n W=77n
Mn4 4 3 vss vss nmos L=45n W=45n
Mp5 5 4 vdd vdd pmos L=45n W=77n
Mn5 5 4 vss vss nmos L=45n W=45n
Mp6 6 5 vdd vdd pmos L=45n W=77n
Mn6 6 5 vss vss nmos L=45n W=45n
Mp7 7 6 vdd vdd pmos L=45n W=77n
Mn7 7 6 vss vss nmos L=45n W=45n
Mp8 8 7 vdd vdd pmos L=45n W=77n
Mn8 8 7 vss vss nmos L=45n W=45n
Mp9 9 8 vdd vdd pmos L=45n W=77n
Mn9 9 8 vss vss nmos L=45n W=45n
Mp10 10 9 vdd vdd pmos L=45n W=77n
Mn10 10 9 vss vss nmos L=45n W=45n
Mp11 11 10 vdd vdd pmos L=45n W=77n
Mn11 11 10 vss vss nmos L=45n W=45n
Mp12 12 11 vdd vdd pmos L=45n W=77n
Mn12 12 11 vss vss nmos L=45n W=45n
Mp13 13 12 vdd vdd pmos L=45n W=77n
Mn13 13 12 vss vss nmos L=45n W=45n

Mp14 14 13 vdd vdd pmos L=45n W=77n


Mn14 14 13 vss vss nmos L=45n W=45n
Mp15 in 14 vdd vdd pmos L=45n W=77n
Mn15 in 14 vss vss nmos L=45n W=45n

*Tipo de simulao
.TRAN 0.001n 15n
* Comandos de Medidas
.meas TRAN tp_LH1 TRIG v(3) VAL=0.5 FALL=1 TARG v(4) val='supply*0.5' RISE=1
.meas TRAN tp_HL1 TRIG v(3) VAL=0.5 RISE=1 TARG v(4) val='supply*0.5' FALL=1
.meas TRAN tpd1 param='(tp_LH1+tp_HL1)/2'
.meas TRAN T1 param='15*2*tpd1'
.meas TRAN F1 param='1/T1'
.meas TRAN Tau1
param='1/(4*15*F1)'
.meas TRAN tp_LH2 TRIG v(11) VAL=0.5 FALL=1 TARG v(12) val='supply*0.5' RISE=1
.meas TRAN tp_HL2 TRIG v(11) VAL=0.5 RISE=1 TARG v(12) val='supply*0.5' FALL=1
.meas TRAN tpd2 param='(tp_LH2+tp_HL2)/2'
.meas TRAN T2 param='15*2*tpd2'
.meas TRAN F2 param='1/T2'
.meas TRAN Tau2
param='1/(4*15*F2)'

.end

* Porta XOR com 3 transistores


*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100

* PULSE(V1 V2 TD TR TF PW PER)
Vina a 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vinb b 0 PULSE (0 supply 3n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0
* Declarao do transistor
Mpa out a b b pmos L=45n W=70n
Mpb out b a a pmos L=45n W=70n
Mnb out b vss vss nmos L=45n W=45n
*Carga capacitiva
Cload out vss 0.8f
*Tipo de simulao
.TRAN 0.001n 20n
* Comandos de Medidas
.meas TRAN tp_LHa TRIG v(a) VAL='supply*0.5' RISE=1 TARG v(out) val='supply*0.5' RISE=1
.meas TRAN tp_HLa TRIG v(a) VAL='supply*0.5' RISE=1 TARG v(out) val='supply*0.5' FALL=1
.meas TRAN tpda param='(tp_LHa+tp_HLa)/2'
.meas TRAN trise TRIG v(out) VAL='1.0*0.1' RISE=1 TARG v(out) val='1.0*0.45' RISE=1
.meas TRAN tfall TRIG v(out) VAL='1.0*0.45' FALL=1 TARG v(out) val='1.0*0.1' FALL=1

.end

* Porta XOR com 4 transistores


*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100
* Declarao de Fontes/Sinais/Alimentao do Circuito
Vsupply vdd 0 DC supply
* PULSE(V1 V2 TD TR TF PW PER)
Vina a 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vinb b 0 PULSE (0 supply 3n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0
* Declarao do transistor
Mpa out a vdd vdd pmos L=45n W=70n
Mna out a vss vss nmos L=45n W=45n
Mpb out2 b a a pmos L=45n W=70n
Mnb out2 b out out nmos L=45n W=45n

*Carga capacitiva
Cload out2 vss 0.8f
*Tipo de simulao
.TRAN 0.001n 20n
* Comandos de Medidas
.meas TRAN tp_LHa TRIG v(a) VAL=0.5 RISE=1 TARG v(out) val='supply*0.5' RISE=1
.meas TRAN tp_HLa TRIG v(a) VAL=0.5 RISE=1 TARG v(out) val='supply*0.5' FALL=1
.meas TRAN tpda param='(tp_LHa+tp_HLa)/2'
.meas TRAN trise TRIG v(out2) VAL='1.0*0.5' RISE=1 TARG v(out2) val='1.0*0.9' RISE=1
.meas TRAN tfall TRIG v(out2) VAL='1.0*0.9' FALL=1 TARG v(out2) val='1.0*0.1' FALL=1
.end

* Porta XOR com 5 transistores


*incluindo o modelo do transistor
.include 45nm_hp.pm
* parametros constantes
.param supply = 1.0
*Setando a temperatura
*.TEMP = 100
* Declarao de Fontes/Sinais/Alimentao do Circuito
Vsupply vdd 0 DC supply
* PULSE(V1 V2 TD TR TF PW PER)
Vina a 0 PULSE (0 supply 1n 0.01n 0.01n 5n 10n)
Vinb b 0 PULSE (0 supply 3n 0.01n 0.01n 5n 10n)
Vground vss 0 DC 0
* Declarao do transistor
Mp1 n1 xor vdd vdd pmos L=45n W=70n
Mpa a b xor vss pmos L=45n W=70n
Mna a b n1 vdd nmos L=45n W=45n
Mpb b a xor vss pmos L=45n W=70n
Mnb b a n1 vdd nmos L=45n W=45n

*Carga capacitiva
Cload xor vss 0.8f

*Tipo de simulao
.TRAN 0.001n 20n
* Comandos de Medidas
.meas TRAN tp_LHa TRIG v(a) VAL=0.5 RISE=1 TARG v(xor) val='supply*0.5' RISE=1
.meas TRAN tp_HLa TRIG v(a) VAL=0.5 RISE=1 TARG v(xor) val='supply*0.5' FALL=1
.meas TRAN tpda param='(tp_LHa+tp_HLa)/2'

.meas TRAN trise TRIG v(xor) VAL='1.0*0.1' RISE=1 TARG v(xor) val='1.0*0.67' RISE=1
.meas TRAN tfall TRIG v(xor) VAL='1.0*0.67' FALL=1 TARG v(xor) val='1.0*0.55' FALL=1

.end