Buscar

Relatório_incremental_ Final_Microeletrônica_ElaineSouza

Prévia do material em texto

Universidade Federal da Paraíba
Centro de Informática
Relatório Incremental de Microeletrônica
Aluna: Elaine Cristina Lins de Souza.
Matrícula:20170020854.
(elainesouza@eng.ci.ufpb.br)
Professor: Hugo Leonardo Davi de Souza Cavalcante.
Disciplina: Introdução à Microeletrônica.
JOÃO PESSOA, PB.
Março, 2021.
1
ELAINE CRISTINA LINS DE SOUZA.
Relatório Incremental de Microeletrônica
Relatório de atividade prática da disciplina de
Introdução à microeletrônica, do curso de
Engenharia de Computação, da Universidade
Federal da Paraíba como requisito para a obtenção
parcial da primeira nota.
Orientador: Hugo Leonardo Davi de Souza
Cavalcante.
João Pessoa - PB
2021
2
Resumo
Este relatório traz resultados de pesquisa sobre circuitos RC e sobre Design, layout e
diagramas de palito de portas lógicas, assuntos esses que são extremamente necessários para o
conhecimento da disciplina de introdução à microeletrônica. Além disso, traz resultados do
balanceamento do layout de um transistor inversor simples, bem como, diversos resultados de
análises das margens de ruídos do mesmo. O circuito RC caracteriza-se por um filtro
eletrônico com resistores e capacitores ligados em série ou em paralelo. Esses circuitos,
juntamente com outros componentes resultam em portas lógicas, essas podem se transformar
em circuitos integrados, que nada mais é do que um chip de silício com portas lógicas
impressas. Dessa forma, visando ampliar o nosso conhecimento, foi realizada a modelagem e
simulação de um circuito RC através do software Spice Opus que evidenciou através dos
pulsos de onda, o comportamento de um circuito desse tipo, na primeira etapa do relatório.
Posteriormente, na segunda etapa foi feita a elaboração dos transistores de forma horizontal,
vertical, bem como a construção de tabelas verdades, esquemáticos de portas lógicas, e por
fim, os diagramas de palitos de alguns circuitos. Na terceira etapa, foi feito o balanceamento
de um inversor simples, através de softwares como: graal, cougar e spice opus. Por fim, na
quarta etapa foram feitas medições das margens de ruídos pelos métodos DC, e análise no
tempo senoidal e de pulso. Na quarta etapa, foi feita a medição de margens de ruído, bem
como a análise DC de um inversor equilibrado (balanceado), com entradas de 0 V à 1,8 V,
apresentando o conceito de margem de ruído, e ainda, realizando as medições das constantes
VIL, VOL, VIH e VOH. Na quinta etapa, foi feita a construção dos layouts físicos do inversor
tristate e do mux 2:1, que posteriormente foram simulados e tiveram seus gráficos analisados.
Na sexta etapa, foi feito o layout de um flip-flop tipo D mestre-escravo, bem como a geração
do gráfico das ondas de saída e sua análise.
3
Sumário
1. Seção 01 - Circuito RC 5
1.2 Metodologia 5
1.3 Fundamentação teórica 6
1.3.1 Circuito Elétrico 6
1.3.2 Circuito RC/ CR 6
1.3.3 Corrente Elétrica 6
1.3.4 Tensão elétrica 7
1.3.5 Resistência e Resistor 8
1.3.6 Capacitância e Capacitor 9
1.4 Resultados e Discussões 9
2. Seção 02 - Design, layout e diagramas de palito de portas lógicas 14
2.1 Introdução 14
2.2 Metodologia 14
2.3 Fundamentação teórica 15
2.3.1 Transistor 15
2.3.1.1 Transistores MOS 15
2.3.3 CMOS 16
2.3.3.1 Porta Lógica NOT 16
2.3.3.2 Portas Lógicas AND e NAND 17
2.3.3.3 Portas OR e NOR 18
2.3.4 Circuito Integrado 18
2.3.5 Diagrama de Palitos 19
2.4 Resultados e Discussões 19
2.4.1 Inversor 19
2.4.2 NAND 2 20
2.4.3 NAND 3 21
2.4.4 NOR 2 21
2.4.5 NOR 3 22
2.4.6 AOI 22
2.4.7 OAOI 23
3. Seção 03 - Balanceamento de Transistor Inversor 23
3.1 Introdução 23
3.2 Fundamentação teórica 24
3.2.1 Standard cells 24
3.2.2 Graal 24
3.3 Metodologia 24
3.4 Resultados e discussões 25
4
4. Seção 04 - Medições de margens de ruídos 29
4.1 Introdução 29
4.2 Fundamentação teórica 29
4.2.1 Margem de ruído 29
4.2.2 Tensões VIL, VOL, VIH e VOH. 30
4.3 Metodologia 30
4.4 Resultados e discussões 31
5- Seção 05 - Inversor tristate e mux 2:1 37
5.1 Introdução 37
5.2 Metodologia 37
5.3 Resultados e Discussões 38
5.3.1 Inversor tristate 38
5.3.2 Mux 2:1 40
6. Seção 6 - Flip-Flop D mestre-escravo 42
6.1 Introdução 42
6.2 Metodologia 44
6.3 Resultados e discussões 44
7. Considerações Finais 46
8. Referências Bibliográficas 47
5
1. Seção 01 - Circuito RC
1.1 Introdução
Componentes eletrônicos são peças que são interligadas e alimentadas com energia
elétrica a fim de formar um circuito eletrônico que servem para diversos fins, para atender aos
critérios deste relatório serão utilizados conceitos tais como: corrente elétrica, tensão elétrica,
resistência e resistores, capacitância e capacitores entre outros conceitos.
Para o entendimento desses conceitos e para alcançar objetivos propostos, esse
relatório é dividido em: Metodologia, fundamentação teórica, resultados e discussões,
considerações finais e referências bibliográficas. Diante de tudo o que foi exposto, essa
primeira seção do relatório tem como objetivo principal, resumir o comportamento temporal
da resposta ao pulso de um circuito RC e esboçar esse comportamento de forma teórica.
1.2 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Análises dos componentes necessários para a construção do circuito RC da
primeira etapa, que foram:
● Capacitor 1 - 1μ F;
● Capacitor 2 - 2μ F;
● Capacitor 3 - 1μ F;
● Resistor 1 - 2k Ω;
● Resistor 2 - 1k Ω;
● Resistor 3 - 1k Ω;
3) Modelagem do circuito RC principal a ser simulado, e dos 4 sub circuitos
derivados dele;
4) A montagem de arquivos de subcircuitos possuem a extensão (.sub) e (.cir);
5) Simulação do circuito através do software Spice OPUS, o software foi
instalado numa máquina virtual com sistema operacional linux;
6) Análise das curvas que foram encontradas;
7) Construção da primeira seção do relatório.
6
1.3 Fundamentação teórica
1.3.1 Circuito Elétrico
Um circuito elétrico é o caminho fechado percorrido pelos elétrons, formado, na sua
forma mais simples, pelo conjunto: gerador, fio condutor e por uma corrente elétrica, em
outras palavras, um circuito elétrico é nada mais do que o conjunto de vários elementos que
possuem funções diferentes a fim de se obter a finalidade desejada.
1.3.2 Circuito RC/ CR
Circuitos RC ou CR são circuitos formados por capacitores e resistores onde há uma
diferença de potencial nas extremidades do resistor e também nas extremidades do capacitor.
Isto deve-se a queda de tensão gerada por cada um destes dispositivos, onde essa tensão pode
ser contínua ou alternada.
Figura 01. Circuito RC contínuo. Figura 02. Circuito RC Alternado.
1.3.3 Corrente Elétrica
Corrente elétrica é um movimento ordenado dos portadores de cargas elétricas, ou
seja, é o deslocamento de cargas dentro de um condutor, quando existe uma diferença de
potencial elétrico entre as extremidades. Para medir a intensidade da correntes, a fórmula para
isso é a quantidade de carga que atravessa no plano em um intervalo de tempo, levando em
consideração o sistema internacional de unidades(SI): Coulomb(C) para o caso da Carga(Q);
Segundo(S) para o caso do tempo (T); e Ampére(A) para o caso da corrente(I).
Figura 03. Fórmula da intensidade da corrente elétrica.
O sentido da corrente dentro de um circuito elétrico é sempre do maior potencial para
o menor potencial, isso quer dizer que vai do sentido positivo para o negativo. Os elétrons
7
ordenados seguem um sentido específico dentro do circuito que podem ser real ou
convencional isso quer dizer que o sentido convencional da corrente seria o sentido no qual se
moveriam os portadores de carga positiva mesmo que os verdadeiros portadores de cargas
sejam negativos, a corrente elétrica também pode acontecer quando os elétrons vão em
sentido único ou alternada quando as cargas elétricas oscilam e alternam o seu sentido. Para
circuitos que possuem diversas ramificações,a lei de Kirchhoff deve ser aplicada, ou seja, a
soma das correntes que entram em um nó devem ser iguais a soma das correntes que saem do
mesmo nó.
I0 = I1 + I2 + I3 + … + In
Figura 04. Lei de Kirchhoff das Correntes.
Nos circuitos as fontes de correntes podem ser representadas pelos símbolos abaixo:
Figura 05. Fontes de correntes independente e controlada.
A corrente elétrica pode ser ainda dividida em corrente alternada(CA) ou corrente
contínua(CC), a diferença entre esses dois tipos de correntes é que a corrente contínua não
altera o seu sentido de circulação dentro do circuito elétrico.Por outro lado, a corrente
alternada (CA) consegue alterar seu sentido.
1.3.4 Tensão elétrica
A tensão elétrica é a força que necessária para que os elétrons possam se movimentar
dentro de um circuito, em outras palavras, a tensão elétrica é uma diferença de potencial
elétricos. Sua unidade no SI é o volts(V), e a fórmula para calcular o valor da tensão se dá
pela relação entre o valor da energia elétrica(Eel - Joule) e a quantidade de carga
eletrizada(Q). A tensão elétrica também pode ser medida através da lei de Ohm, que vai
resultar no produto entre a corrente elétrica(I) e a resistência elétrica(R), dada em Ohms
presente no circuito.
8
Figura 06. Cálculo da tensão elétrica em relação ao campo elétrico e a carga.
Figura 07. Lei de Ohm no cálculo da tensão elétrica.
Nos circuitos, as fontes de tensão elétrica pode ser representada pelos símbolos abaixo:
Figura 08. Fontes de tensão independentes.
1.3.5 Resistência e Resistor
Resistência elétrica(R) é a oposição da passagem da corrente elétrica que os
condutores oferecem, ou seja é a oposição à passagem dos elétrons. A sua unidade de medidas
no SI é Ohm(Ω), essa unidade foi definida através das leis de Ohm que é relacionada à área
do condutor(A), comprimento(l) e tipo de material(ρ).
Figura 09. Equação da segunda lei de ohm.
Além dessa equação, podemos utilizar a 2ª lei de ohm para calcular a resistência:
Figura 10. Equação da primeira lei de ohm para a resistência.
Nos circuitos a resistência pode ser representada pelo símbolo do resistor, que são
dispositivos que proporcionam a resistência elétrica.
9
Figura 11. Símbolos do resistor no circuito.
1.3.6 Capacitância e Capacitor
Capacitor é um elemento que serve para acumular carga elétrica e armazenar energia
na forma potencial elétrica, ou seja, são componentes eletrônicos que armazenam cargas
elétricas para serem utilizadas sempre que a resistência elétrica dificulte a passagem da
corrente. A capacitância, por sua vez, é a capacidade do capacitor acumular a carga em função
da tensão aplicada para que ele possa ser carregado. Para medir a capacitância de um circuito
faz-se a análise da relação das cargas elétricas(Q) pela tensão, onde sua unidade de medida no
SI é o Farad(F).
Figura 12. Cálculo da Capacitância.
Nos circuitos os capacitores podem ser representados pelos símbolos:
Figura 13.Símbolos do capacitor.
1.4 Resultados e Discussões
Através do gedit foi criado os seguintes arquivos e salvos com a extensão .sub, nesses
arquivos foram feitas as atribuições dos valores dos componentes. As funções .subckt e .ends
foram utilizadas para realizar a delimitação do escopo. Esses arquivos foram referenciados
posteriormente como bibliotecas no arquivo do circuito que será executado.
● Resistor 1: Possui resistência de 2KΩ e está posicionado entre os nós 10 e 20 do
circuito.
Figura 14. Arquivo resistor1.sub
10
● Resistor 2: Possui resistência de 1KΩ e está presente entre os nós 30 e 0 do circuito.
Figura 15. Arquivo resistor2.sub
● Resistor 3: Possui resistência de 1KΩ e possui está presente entre os nós 10 e 40 do
circuito.
Figura 16. Arquivo resistor3.sub
● Capacitor 1: Possui Capacitância de 1uF e está presente entre os nós 20 e 0 do
circuito.
Figura 17. Arquivo capacitor1.sub
● Capacitor 2: Possui Capacitância de 2uF e está presente entre os nós 10 e 30 do
circuito.
Figura 18. Arquivo capacitor2.sub
● Capacitor 3: Possui Capacitância de 1uF e está posicionado entre os nós 40 e 0 do
circuito.
Figura 19. Arquivo capacitor3.sub
Em seguida, foi criado o arquivo do circuito que será simulado. Nele estarão presentes
as bibliotecas criadas anteriormente, em seguida foi definido os terminais externos de conexão
dos componentes. O pulso de tensão varia entre 0V e 5V e os tempos de subida e descida são
11
iguais à a 1ns a 10ms respectivamente. Posteriormente são implementadas as medições das
curvas a cada 0,001ms até 20ms, e por fim o circuito é finalizado.
Figura 20. Desenho do circuito simulado.
Após à criação dos arquivos a serem simulados, devemos abrir o Spice Opus pelo
comando “spiceopus &” acessando a pasta que estão os arquivos através do terminal, em
seguida realizamos a compilação e a execução do arquivo “circuitoRC_.cir” através do Spice
Opus e por fim foram gerados os gráficos presentes nos resultados, através do comando
“plot”.
Figura 21.Arquivo circuito_RC.ci (esquerda) e Comandos utilizados no Spice Opus
(direita).
Por conseguinte, foram plotados os gráficos abaixo:
12
Figura 22. Gráfico com os valores de: V(10), V(20), V(30), V(40).
Figura 23.Gráfico com o valor: V(10) = VG.
Figura 24. Gráfico com o valor: V(20)= V1.
13
Figura 25. Gráfico com o valor: V(30) = V2.
Figura 26. Gráfico com o valor: V(40) = V3.
Através da análise dos gráficos, podemos perceber que é V(10), portanto pode ser
utilizado como terra(ground), já que seu valor é zero. Para analisarmos os demais, precisamos
calcular o valor do tempo de subida e descida. As tensões V(20) e V(40) apresentam
comportamentos comuns para um circuito RC, uma vez que eles estão conectados diretamente
ao terra. O V(30) por sua vez, não apresenta um comportamento similar por não apresentar
essa característica, logo o capacitor já inicia com 5V, já que está diretamente ligado a VG, e
assim ele vai descarregando progressivamente até o resistor conectado a ele (R2), fique com
carga negativa.
A constante de tempo(τ) é o resultado da multiplicação entre Resistor(R) *
Capacitor(C). Assim temos: V(20) = 2ms , V(30) = 2ms, V(40) = 1ms. Comparando a relação
14
do tempo e a posição dos pulsos nos gráficos acima, pudemos perceber que o tempo de
carregamento do capacitor, para que ele atinja 63%, é de aproximadamente 3,15V, logo o
resultado esperado do funcionamento de um circuito RC foi obtido. Após isso, com a
continuação do pulso é percebido uma carga no capacitor até os 5 volts que não chega a
ultrapassar esse valor, quando o pulso volta para 0 percebe-se uma descarga no capacitor até
no valor do terra(zero).
2. Seção 02 - Design, layout e diagramas de palito de portas lógicas
2.1 Introdução
O avanço da tecnologia, dentre muitas coisas, resultou no aumento da criação de
transistores em chips que cada vez mais buscam otimizar o seu desempenho. Para que isso
possa acontecer, é necessário compreender o fundamental dos circuitos e dos designs físicos
dos transistores, além de que os designers precisam planejar mais rapidamente as células e as
áreas do layout.
Para o entendimento desses conceitos e para alcançar objetivos propostos, esse
relatório é dividido em: Metodologia, fundamentação teórica, resultados e discussões,
considerações finais e referências bibliográficas. Diante de tudo o que foi exposto, essa
segunda seção do relatório tem como objetivo principal, criar o diagrama de palitos, o
desenho do esquemático com transistores na horizontal e vertical, o símbolo simplificado da
porta, e a dedução da tabela verdade de cada layout desenhado, que são os: Inversor,
NAND2, NOR2, NAND3, NOR3, AOI (Y = ~(A.B+C) ), OAOI (Y = ~(A.(B+C)+D) ) .
2.2 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
Na segunda etapa do trabalho, foram feitas análises dos componentes necessários paraa obtenção dos resultados de design, layout e diagrama de palitos de portas lógicas,
que foram:
● Inversor;
● NAND 2 e NAND 3;
15
● NOR 2 e NOR 3;
● AOI e OAOI;
Construção dos itens solicitados através do editor online “Drawio”. Essa construção
seguiu a seguinte ordem para cada componente mencionado anteriormente:
1º - Símbolo da porta lógica;
2º - Tabela verdade;
3º - Esquemático dos transistores vertical e horizontal;
4º - diagrama de palitos.
Análise de todos os resultados para a construção das considerações finais;
Construção da segunda seção deste relatório;
2.3 Fundamentação teórica
2.3.1 Transistor
O Transistor é um dispositivo semicondutor, geralmente feito de silício ou germânio,
sua principal função é amplificar um sinal ou barrar sua passagem. Os transistores podem ser
dos tipo PNP (positivo, negativo, positivo), NPN (negativo, positivo, negativo) ou MOSFET.
Portanto, a criação do transistor foi de extrema importância para a tecnologia, uma vez
que, diversos circuitos eletrônicos são fabricados em miniatura e dessa forma, esse componten
pode ser implementando em CIs. Por conseguinte, pode ser usado em circuitos de microfone,
amplificadores, acionar uma carga de alta corrente, e em praticamente em todos os circuitos
digitais formando portas lógicas como as AND, OR, NAND, NOR.
Figura 27.Símbolos do capacitor. Fonte: Wikipédia.
2.3.1.1 Transistores MOS
Os Transistores MOS, são transistores de modelos estáticos, movidos por tensão ao
invés de corrente elétrica. Segundo Ferreira(2004) seu funcionamento dá-se sempre que esta
tensão ultrapassa um dado valor estabelece-se um canal condutor entre fonte e dreno, o que
16
permite o surgimento de uma corrente elétrica entre estes terminais. Podem ser divididos em
PMOS e NMOS. Os dispositivos do tipo N (NMOS) exigem um sinal positivo em relação à
saída para entrarem em condução, enquanto que os dispositivos tipo P (PMOS) exigem um
sinal negativo para conduzir. Esses transistores são ideais para aplicações que envolvam a
amplificação de pequenos sinais de áudio.
Figura 28. Esquemático do funcionamento dos transistores nMOS e pMOS. Fonte: Wikipédia.
2.3.3 CMOS
O Complementary metal-oxide-semiconductor, também conhecido pela sigla CMOS, é
uma tecnologia utilizada para produzir CIs, ele proporciona uma alta proteção contra os
ruídos e consomem pouca potência. Além disso, o CMOS é composto por dois
transistores(NMOS e PMOS) combinados com a implementação de portas lógicas nos
circuitos. Essas portas lógicas fazem parte de um sistema digital, que transmite para o circuito
elétrico informações geradas por sistemas matemáticos, utilizando para esse fim um sistema
binário de zero e um, que representam quando o circuito está ligado(1) ou desligado(0), Nível
alto(1) ou Nível baixo(0), VDD(1) ou GND(0), e ainda podem significar verdadeiro(1) ou
falso(0). Quando as operações matemáticas para a transmissão de informações são baseadas
em três operações primárias: Inversão(NOT), Produto lógico(AND) e soma lógica(OR).
2.3.3.1 Porta Lógica NOT
A porta lógica inversora é equivalente à negação das variáveis binárias. Dessa forma,
se uma variável estiver em 0 o resultado será 1 e vice-versa.
17
Figura 29.Informações sobre a porta lógica NOT.
2.3.3.2 Portas Lógicas AND e NAND
A porta lógica AND funciona da mesma forma que a conjunção E da língua
portuguesa,assim só vai funcionar se todas as condições forem verdadeiras(receber o valor 1
na álgebra booleana). Em outras palavras, a saída será 1(verdadeira) se e somente se todas as
entradas forem iguais a 1.
Figura 30. Informações sobre a porta lógica AND.
A porta lógica NAND por sua vez, equivale a negação da porta lógica AND, ou seja,
as saídas serão inversas às da porta AND, assim, o resultado só será 0 quando todas as
entradas forem 1.
Figura 31. Informações sobre a porta lógica NAND.
18
2.3.3.3 Portas OR e NOR
A porta lógica OR(OU) é equivalente a uma soma booleana das variáveis. Dessa
maneira, a saída só será 0 quando todas as variáveis(entradas) forem 0, para os demais casos a
saída será 1.
Figura 32. Informações sobre a porta lógica OR.
A porta lógica NOR nada mais é do que a porta lógica OR invertida, dessa forma a
saída só será verdadeira(receberá 1) quando todas as entradas forem falsas(Receberem 0).
Figura 33. Informações sobre a porta lógica NOR.
2.3.4 Circuito Integrado
Os circuitos integrados, também conhecido como CIs, são circuitos eletrônicos
formados por diversos componentes(diodos, transistores, resistores, capacitores, etc)
extremamente pequenos. Esses componentes são gravados ou colados em uma pequena
pastilha de silício de tal maneira que forma um circuito eletrônico que desempenha uma
determinada função, como por exemplo: amplificadores, osciladores, temporizadores,
controladores, entre outros.
19
Figura 34. A imagem à esquerda mostra a parte interna de um CI, e à direita temos a parte externa.
Fonte: Master Walker (sem data).
2.3.5 Diagrama de Palitos
O diagrama de palitos é uma forma eficiente de desenhar portas lógicas com arranjos
de transistores , permitindo uma leitura simples do que foi desenhado. Seu funcionamento
dá-se da seguinte forma:
1. Verifica-se a parte superior do agrupamento de transistores ;
2. Usa-se a cor vermelha para representar as entradas;
3. O símbolo do X é utilizado para representar as ligações;
4. Utiliza-se a cor amarela para uma ligação do tipo “p” e a cor verde para a ligação do
tipo “n”;
5. A linha superior é a ligação VDD e a inferior é GND, ambas são representadas pela
cor azul.
2.4 Resultados e Discussões
2.4.1 Inversor
É formada por um transistor nMOS e outro pMOS que invertem o sinal de entrada.
Assim, quando a entrada A é 0, o transistor nMOS está desligado e o transistor pMOS está
ligado. Logo, a saída Y é aumentada para 1 porque está conectada ao VDD, mas não para
GND. O contrário acontece quando a entrada A é igual a 1.
20
Figura 35. Informações sobre o Inversor: 1) Símbolo da porta lógica; 2) Tabela verdade; 5)
Transistores verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
2.4.2 NAND 2
Possui duas entradas, que consistem em dois transistores nMOS em série entre Y e
GND e dois transistores pMOS paralelos entre Y e VDD. E se a entrada A ou B for 0, pelo
menos um dos transistores nMOS estará DESLIGADO, interrompendo o caminho de Y a
GND. Entretanto, pelo menos um dos transistores pMOS estará ligado, criando um caminho
de Y a VDD. Portanto, a saída Y será 1. Se as duas entradas forem 1, os dois nMOS os
transistores estarão ligados e os dois transistores do pMOS estarão desligados. Portanto, a
saída será 0
Figura 36. Informações sobre NAND2: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
21
2.4.3 NAND 3
As portas NAND possui 3 entradas e são construídas usando 3 transistores nMOS da
série e paralelas à 3 transistores pMOS.Em relação à sua tabela verdade, quando houver
qualquer das entradas iguais à 0, a saída é elevada pelos transistores pMOS paralelos. E
quando todas as entradas forem 1, a saída é reduzida através dos transistores da série nMOS.
Figura 37. Informações sobre NAND3: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
2.4.4 NOR 2
Possui duas entradas, onde os transistores nMOS estão em paralelo e deixam a saída
baixa quando uma das entradas é alta. Os transistores pMOS estão em série para puxar a saída
alta quando ambas as entradas são baixas.
Figura 38. Informações sobre NOR2: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
22
2.4.5 NOR 3
Possui três entradas, onde se alguma entrada for alta, a saída será reduzida através dos
transistores nMOS paralelos. Se todas as entradas estiverem baixas, a saída será puxada alta
através dos transistoresda série pMOS.
Figura 39. Informações sobre NOR3: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
2.4.6 AOI
Possui três entradas(A, B e C), e exerce as operações AND, OR e inversor.
Figura 40. Informações sobre o AOI: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Diagrama de palitos; 5) Transistores Horizontalmente;
23
2.4.7 OAOI
Possui quatro entradas(A,B, C e D) e exerce as operações OR, AND, OR e inversor.
Figura 41. Informações sobre o OAOI: 1) Símbolo da porta lógica; 2) Tabela verdade; 5) Transistores
verticalmente; 4) Transistores Horizontalmente; 5) Diagrama de palitos;
3. Seção 03 - Balanceamento de Transistor Inversor
3.1 Introdução
Assim como discutido na seção anterior, o Transistor é um dispositivo semicondutor,
geralmente feito de silício ou germânio, sua principal função é amplificar um sinal ou barrar
sua passagem. O Transistor inversor por sua vez, é aquele que tem como função negar as
entradas. Por possuírem polos negativos e positivos, esse semicondutor pode sofrer alterações
nos valores das constantes βp ou βn, o que resulta na redução da eficiência e confiabilidade do
tempo de resposta. Contudo, para corrigir esse erro, faz-se necessário deixar proporcional as
larguras entre o lado p e n.
Diante disso, essa terceira seção do relatório tem como objetivo principal, transformar
a partir do layout, um transistor inversor simples em um transistor inversor balanceado. Além
24
disso, tem como o objetivo fazer a verificação da análise da simetria na curva da resposta DC
do inversor, conforme discutido durante as nossas aulas.
Para o entendimento desses conceitos e para alcançar objetivos propostos, esse
relatório é dividido em: Metodologia, fundamentação teórica, resultados e discussões,
considerações finais e referências bibliográficas.
3.2 Fundamentação teórica
3.2.1 Standard cells
A metodologia de Standard Cells(célula padrão), é utilizada na projeção de
semicondutores e de circuitos integrados de aplicativos específicos (ASICs), com recursos de
lógica digital. Além disso, é utilizado para a projeção de circuitos VLSI. Para fazer a
simulação elétrica dos calores de atraso, da área e do consumo da célula a ferramenta SPICE é
utilizada.
3.2.2 Graal
O graal é um conjunto de ferramentas para fazer projeções de circuitos integrados,
essas ferramentas estão incluídas no Alliance Package, pacote que contém várias bibliotecas e
softwares para a construção de layouts de circuitos. Posto isso, o Graal possui como padrão a
medida lambida e pode ser chamado no terminal através do comando: $ graal &.
3.3 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Na segunda etapa do trabalho, foram feitas as configurações iniciais para fazer a
importação do circuito do transistor inversor simples no software graal. Para isso, um
layout físico de um inversor simples foi utilizado como base, após a remodelagem
através da retirada e inserção de alguns componentes como ligações de alumínio, o
layout do transistor inversor simples foi criado.
3) Para iniciar o balanceamento do transistor foi preciso gerar um código do layout
criado anteriormente na extensão spice(spi). Com esse propósito foi utilizando uma
sequência de comando a seguir:
25
$ man cougar>cougar.txt
$ more cougar.txt
$ export MBK_OUT_LO=spi
$ cougar -t -ar inv_1
4) Após a transformação do layout físico em código do spice, foi necessário criar o
código de um circuito geral com extensão cir para fazer o devido balanceamento.
5) Através do spice opus foi possível fazer vários testes, através da plotagem de gráficos,
para verificar se o transistor estava balanceado. Enquanto o balanceamento não
aconteceu, mudanças foram feitas no layout do transistor simples, essas mudanças
geraram novos layouts, que por sua vez, geraram novos arquivos spi, que foram
instanciados um a um no circuito geral. Esse processo aconteceu até alcançarmos o
balanceamento.
6) Foi feita a análise dos resultados alcançados;
7) Por fim, deu-se a construção da terceira seção deste relatório;
3.4 Resultados e discussões
Para a construção do transistor inversor simples foi necessário inserir:
● Um poço do tipo n;
● Foram colocadas também, duas faixas de alumínio 1 horizontalmente, e outras duas
faixas também do tipo 1, mas dessa vez verticalmente. Essas faixas foram utilizadas
para fazer as ligações entre os componentes;
● Vias do tipo NTie e PTie foram colocadas nos lados direitos das ligações do poço p e
n, respectivamente.
● Ao lado das vias foram colocados os conectores PDif e Ndif;
● Transistores do tipo P e N foram colocados, respectivamente, nas partes superior e
inferior;
● Um conector PDif ligando o transistor P à faixa de alumínio vertical da direita;
● Um conector NDif ligando o transistor N à faixa de alumínio vertical da direita;
● Um segmento poly foi adicionada para ligar os transistores;
● Uma via poly foi conectada à faixa de alumínio vertical da esquerda e outra foi
conectada ao segmento poly dos transistores;
26
● Por fim foram instanciados os conectores "VDD", "VSS", "a" e "y", todos do tipo
alumínio 1.
Diante de tudo isso, o layout do transistor inversor simples ficou da seguinte forma:
Figura 42.Layout físico do transistor inversor simples.
Após a construção desse layout e da conversão para spice através do cougar, foi
realizada a primeira tentativa de balanceamento através do código:
Figura 43. Código do circuito da primeira tentativa de balanceamento.
Através da simulação no spice opus, pudemos realizar as tentativas de chegar a um
inversor balanceado ideal. Para obter esse resultado foi preciso fazer 5 alterações no layout
físico do transistor, que resultaram em 5 arquivos spi, e que foram instanciados no código do
27
circuito. O critério de parada desse ciclo, foi o fato de metade da decida da onda encontrada
atingir os pontos de 0,9 (com 1% de tolerância de erro) nos eixos x e y. Esse resultado foi
alcançado através de mudanças proporcionais nos poços p e n dos layouts.
Sendo assim, o código final do circuito completo e o layout final do transistor, ficaram
da seguinte forma:
Figura 44. Na imagem à esquerda temos o layout devidamente balanceado. E na imagem à
direita temos o código final do circuito simulado.
Para a realização de testes, foram colocados como valores de V: 40,41,42,43,44. O
V(44) foi o valor do resistor balanceado, fazendo uma comparação com com todos os valores,
obtivemos o gráfico:
Figura 45. Resultados de todas as simulações. OBS: a onda da cor preta representa a onda
balanceada.
28
O resultado da onda do transistor balanceado pode ser observado no seguinte gráfico:
Figura 46. Resultado individual da simulação do transistor balanceado.
Com a imagem acima podemos observar que os cursos X e Y chegar muitos próximos
do 0.9 que era o ideal. Comparando o resultado com o primeiro transistor(simples) na imagem
abaixo, pudemos perceber que o transistor inicial estava bastante distante de obter o
equilíbrio.
Figura 47. Comparação do transistor simples com o transistor balanceado.
29
4. Seção 04 - Medições de margens de ruídos
4.1 Introdução
Inúmeras fontes de interferência eletromagnética podem corromper totalmente o sinal
digital, para evitar, e controlar que um semicondutor realize seu papel de forma eficaz, faz-se
necessário a realização de medições de ruídos. Essas medições são destinadas para fazer
análises do comportamento dos sinais, e dessa maneira garantir que estejam funcionando de
forma correta. Ademais, esse procedimento de controle, permite verificar se os
semicondutores estão operando dentro de suas faixas de operação e não atingiram o ponto de
saturação.
Diante disso, essa quarta seção do relatório tem comoobjetivo principal, fazer uma
análise DC de um inversor equilibrado (balanceado), com entradas de 0 V à 1,8 V,
apresentando o conceito de margem de ruído, e ainda, realizando as medições das constantes
VIL, VOL, VIH e VOH. Além disso, foram feitas a simulação estática com uma excursão de
entrada de VIL até VIH e a verificação de que a saída vai de VOH até VOL. Bem como, a
simulação do comportamento deste conjunto, e ainda, foi feito a mesma demonstração do
efeito de regeneração em uma análise dinâmica (domínio do tempo).
Para o entendimento e organização desses conceitos e resultados, e para alcançar
objetivos propostos, esse relatório é dividido em: Metodologia, fundamentação teórica,
resultados e discussões, considerações finais e referências bibliográficas.
4.2 Fundamentação teórica
4.2.1 Margem de ruído
Margem de Ruído é a capacidade de um circuito de tolerar tensões geradas por ruído
em suas entradas, sem alterar o seu funcionamento. Em outras palavras, Margem de ruído é a
medida quantitativa da imunidade ao ruído(capacidade de tolerância a ruídos sem alteração
dos níveis lógicos de saída) de um circuito lógico, e pode ser aplicada para nível alto(VNH),
através da diferença de VOH e VIH, e para nível baixo(VNL), através da diferença de VIL e
VOL.
30
4.2.2 Tensões VIL, VOL, VIH e VOH.
A tensão VIL é a tensão necessária na entrada do circuito para nível lógico 0 (Voltage
Input Low), a tensão VIH é a tensão necessária na entrada do circuito para nível lógico 1
(Voltage Input High). Além disso, a tensão VOL é a tensão na saída do circuito para nível
lógico 0 (Voltage Output Low), e a tensão VOH é tensão na saída do circuito para nível lógico
1 (Voltage Output High).
4.3 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Na segunda etapa do trabalho, encontramos as tensões VIL,VOH. Para calcular essas
tensões foi preciso criar um novo código de extensão cir, neste código foram
instanciados apenas os arquivos spi resultantes dos layouts do transistor simples e do
transistor balanceado. Para fazer a simulação, utilizamos uma função matemática que
tinha como objetivo traçar uma reta em cima da onda do transistor balanceado, com a
condição de que V fosse igual a 10. Assim, a instrução no spice opus ficou:
● SpiceOpus (c) -> plot V(44) 2.32-V(10).
3) Com o mesmo código, citado anteriormente, descobriu-se o valores de VOL, VIH,
novamente através de uma nova simulação. A instrução no spice opus ficou:
● SpiceOpus (c) -> plot V(44) 2.32-V(10) 1.26-V(10).
4) Nessa etapa foram calculados os valores de NM_L e NM_H que são as margens de
ruídos(limites de tolerância).
5) Verificamos através do domínio DC, como o inversor reage quando o sinal de entrada
possui uma degradação, ou seja, a margem de ruído. Para essa finalidade, foram
montados três inversores em série, em que o primeiro inversor recebeu como entrada
um sinal bastante degradado e assim acompanhamos o que aconteceu com o sinal até
ele chegar no terceiro inversor. Também foi feito outro código de circuito cir, que foi
simulado através do spice opus, cujo a instrução para a geração do gráfico das ondas
de saída foi:
● SpiceOpus (c) -> plot V(40) V(44) V(45).
31
6) Foi verificada a margem de ruído em relação ao tempo, que foi implementada através
de outro código de circuito cir, que mais uma vez, precisou ser simulado para gerar um
novo gráfico de ondas. Nesse código, foi gerado uma função senoidal de entrada ao
invés de uma fonte de tensão constante para o primeiro transistor. A instrução para a
geração dos gráficos dessa etapa foi:
● SpiceOpus (c) -> plot V(10) V(44)+2 V(45)+4.
7) Foi verificada a margem de ruído em relação ao tempo, mas dessa vez através de
sinais de pulso, logo isso, foi implementado através de outro código de circuito cir,
que mais uma vez, precisou ser simulado para gerar um novo gráfico de ondas. Nesse
código, foi gerado uma função de pulso de entrada ao invés de um sinal senoidal. A
instrução para a geração dos gráficos dessa etapa foi:
● SpiceOpus (c) -> plot V(10) V(44)+2 V(45)+4.
8) Nessa etapa foi feita a análise de todos os resultados obtidos.
9) Por fim, deu-se a construção da quarta seção deste relatório;
4.4 Resultados e discussões
Para encontrar as tensões VIL,VOH, foi utilizado o código abaixo:
Figura 48. Código utilizado para encontrar VIL e VOH.
A partir da simulação no Spice Opus do código da imagem anterior, obtemos como
resultado o gráfico abaixo, em que foi possível retirar o valor do eixo x para VIL e o valor do
eixo y para VOH.
32
Figura 49. Gráfico com os valores de VIL e VOH.
Para encontrar os valores de VIH(retirados do eixo x), e VOL(retirados do eixo y)
fizemos outra compilação do mesmo código, utilizando outro comando para plotar o gráfico,
que resultou na seguinte imagem:
Figura 50. Gráfico com os valores de VIH e VOL.
O gráfico a seguir, representa o resultado original extendido dos gráficos anteriores.
33
Figura 51. Gráfico com os valores de VIL, VOH ,VIH e VOL.
Diante o exposto, obtivemos os seguintes resultados:
Figura 52. Resultados da medição da margem de erro.
Com a medição dessa margem, percebemos que se o inversor fosse não balanceado,
uma das margens seria muito diferente da outra, o que acaba criando uma predileção de uma
saída pela outra. Dessa forma as saídas seriam aleatórias por causa do ruído. Portanto, o
inversor está com uma boa simetria.
Para verificar o comportamento da margem de erro através da análise DC foi utilizado
o seguinte código:
34
Figura 53. Código cir da medição da margem de erro pela análise DC.
Após a simulação do código acima, obtivemos os seguintes resultados nos gráficos de
ondas:
Figura 54. Gráfico da análise DC das margens de erros.
A curva vermelha é a saída do inversor, representada por V(40). A curva verde é
V(44) que é também a saída do segundo inversor. A curva azul é a saída do terceiro inversor,
representado por V(45). Com isso, podemos perceber que a tensão de entrada está variando
de 0.5 até 1.3, produzindo uma saída constante. Com a diminuição da tensão, notamos que o
primeiro inversor recuperou as caldas do sinal de entrada que não existiam, recebendo uma
entrada intermediária, mas a saída tornou-se grande novamente, funciona portanto, como um
amplificador com ganho maior que um. Quando a tensão do vermelho é utilizada em relação à
tensão da onda verde, ele inverte novamente o sinal, assim, o baixo da entrada corresponde ao
baixo da saída. Logo, por essa saída estar mais estendida essa onda está mais próxima de
35
possuir uma saída ideal. Da mesma forma, o sinal de cor azul inverte novamente, e assim
como o da cor verde, possuem características de ondas mais quadradas em relação à onda cor
vermelha. Sendo assim, os inversores recuperaram a forma quadrada do sinal de entrada
ruidoso, fenômeno conhecido como regeneração.
Fizemos o resultado através de outro método, baseado no tempo, podemos ver através
da imagens a seguir o código necessário para esse propósito.
Figura 55. Código da análise no tempo das margens de erros.
A partir da simulação do código mostrado na imagem anterior obtivemos o seguinte
resultado:
Figura 56. Gráfico da análise no tempo das margens de erros.
36
Analisando esse gráfico, notamos que a entrada foi a onda senoidal representada pela
cor vermelha.A onda representada pela cor verde, por sua vez, representa a saída do primeiro
inversor, essa onda verde não possui uma forma definida. A saída do segundo inversor é
representada pela curva azul, e a curva da cor roxa está ligeiramente mais rápida do que a da
azul, representando a saída do terceiro inversor. Considerando isso, percebemos que a onda
senoidal de entrada foi regenerada nos inversores, ou seja, cada vez que ela passa pela em um
inversor ela melhora a qualidade.
Da mesma formaacontece na análise em função de tempo com sinal de pulso, para
que isso aconteça o código abaixo foi criado:
Figura 57. Código da análise no tempo das margens de erros com sinal de pulso.
A partir da simulação do código anterior obtivemos o seguinte resultado:
Figura 58. Gráfico da análise no tempo das margens de erros com sinal de pulso.
37
5- Seção 05 - Inversor tristate e mux 2:1
5.1 Introdução
Como visto anteriormente, um sistema digital é um sistema matemático que possui
níveis lógicos binários. Ademais, a porta lógica inversora é equivalente à negação das
variáveis binárias. Dessa forma, se uma variável estiver em 0 o resultado será 1 e vice-versa.
Entretanto, é possível que um sistema possua uma terceira porta(Z), além do 0 e 1, esses
circuitos são conhecidos como tristate. Nesse terceiro estado, a saída do circuito forma um
caminho que oferece alta resistência à passagem de corrente, desligando-a dos circuitos aos
quais está conectada(HEXSEL, 2021). Assim, o inversor tristate produz saída restaurada,
violando a regra de complemento de conduta, uma vez que precisamos de uma saída Z.
Além disso, O Multiplexador(mux) é um circuito capaz de colocar sequencialmente
várias informações paralelas, é utilizado para enviarmos as informações contidas em vários
canais a um só canal(MORAES, 2019). O mux 2:1, possui então, 2 sinais de entrada de dados,
1 sinal de entrada de controle, e um sinal de saída de dados. Como ele permite selecionar o
sinal de saída, tornam-se dispositivos de hardware importantíssimos.
Diante de tudo isso, essa quinta seção do relatório tem como objetivo principal, a
criação do design e implementação do layout físico de um inversor tristate e de um
multiplexador inversor 2:1, além da verificação dos seus funcionamentos em análise
transiente. Para o entendimento desses conceitos e para alcançar objetivos propostos, esse
relatório é dividido em: introdução, metodologia, resultados e discussões, considerações
finais e referências bibliográficas.
5.2 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Em seguida, foi feito o design e implementação dos circuitos utilizando o software
graal, da mesma forma que foram feitos nas seções anteriores. Para fazer o inversor
tristate foi utilizando o inversor balanceado da seção anterior, esse foi transformado
38
em um transmission gate e por fim em um inversor tristate. Após isso, o inversor
tristate foi utilizado de base para a construção do mux 2:1.
3) Para a simulação dos testes foi utilizado o software spice opus, utilizando-o da mesma
forma que nas seções anteriores;
4) Nessa etapa foi feita a análise de todos os resultados obtidos;
5) Por fim, deu-se início à construção da quarta seção deste relatório.
5.3 Resultados e Discussões
5.3.1 Inversor tristate
Para fins de melhor visualização, foi feita a representação de transistores do inversor
tristate restaurador, bem como seu diagrama de palitos que estão sendo mostrados nas
imagens abaixo:
Figura 59. Representação de transistores do inversor tristate restaurador.
39
Figura 60. Representação do diagrama de palitos do inversor tristate restaurador.
O layout físico feito através do software graal foi necessário para a simulação e para
gerar o gráfico do funcionamento do inversor tristate.
Figura 61. Representação do layout físico utilizando o graal do inversor tristate restaurador.
No layout do inversor tristate, podemos notar que ele possui dois transistores
pmos(barra amarela) e dois transistores nmos(barra verde) conectados em série, com a saída y.
Um dos transistores pmos e um nmos estão conectados na entrada A, o outro nmos está
conectado no enable, e o pmos no enable barrado.
40
Figura 62. Representação gráfica das tensões do tristate inversor restaurador.
Para plotar o gráfico acima, foi utilizado o comando plot no spice opus, após o
documento do circuito (.cir) ter sido compilado. Os valores das tensões para obter esse
resultado foram: V(10) representando o A, V(20)+4 representando o enable e o V(50)+8 que é
a saída y. Além disso, podemos perceber que a entrada A é representada pela onda senoidal de
cor vermelha, a onda quadrada verde é o valor do enable. Quando o enable estiver valendo 1,
ele vai passar o sinal do A para a saída de forma invertida, quando o sinal do enabled fica em
0 ele vai tentar travar o último valor que tem na onda azul, e vai ficar o sinal baixo, e esse
processo vai repetindo.
5.3.2 Mux 2:1
Para fins de melhor visualização, foi feita a representação de transistores do mux 2:1,
bem como seu diagrama de palitos que estão sendo mostrados nas imagens abaixo:
41
Figura 63. Representação de transistores do mux 2:1 restaurador.
Figura 64. Representação do diagrama de palitos do mux 2:1 restaurador.
O layout físico feito através do software graal foi necessário para a simulação e para
gerar o gráfico do funcionamento do inversor tristate.
42
Figura 65. Representação do layout físico utilizando o graal do mux 2:1 restaurador.
A partir do layout acima, podemos notar que o mux 2:1 possui duas entradas que são
na verdade dois transmissions gate, elas são respectivamente o d0 e o d1. A saída y é
conectada no d0 e d1. Além disso, a barra amarela(pmos) do d0, que é negada, está conectada
ao S, e a barra verde(nmos) do d1 está conectada no igualmente S. Existe também, a ligação do S
barrado, que conecta-se no nmos do d0 e no pmos do d1.
43
Figura 66. Representação gráfica das tensões do mux 2:1 restaurador.
Analisando o gráfico acima, notamos que o mux vai selecionar uma das duas entradas
(representadas pelas ondas da cor verde e vermelha) e inverter a saída, ou seja, percebemos
que quando o sinal da cor azul(que representa o S) está em 1 a saída(representada na cor
verde) é copiada, invertida em relação à onda (representada pela cor roxa), e esse processo se
repete.
6. Seção 6 - Flip-Flop D mestre-escravo
6.1 Introdução
Como visto nas seções anteriores, os circuitos digitais possuem uma lógica baseada no
sistema binário, representados de 0 e 1 para guardar uma condição específica. Esses circuitos
são responsáveis pelo funcionamento de diversos componentes eletrônicos que estão
presentes em nosso cotidiano, como é o caso do flip-flop, que são utilizados em computadores
digitais, contadores, entre outros.
Assim como muitos componentes eletrônicos, o flip-flop possui duas saídas que
podem estar em um nível alto ou baixo(1 ou 0). Além disso, eles podem ser síncronos(
44
necessita de um clock externo para que uma alteração na entrada seja refletida na saída) ou
assíncronos(responde imediatamente a uma mudança na entrada, são conhecidos como
Latch).
Existem vários tipos de configurações para o flip-flop, como por exemplo: flip-flop
RS básico e com clock, flip-flop jk, flip-flop tipo D, etc. Para alcançar nossos objetivos é
necessário a compreensão do conceito do flip-flop tipo D, que possui apenas uma entrada
chamada D, possui também, um terminal de clock e saídas Q e Q barrado.
Figura 67: Representação gráfica e tabela verdade do flip-flop tipo D. Fonte:VERTULO, 2015.
O flip-flop tipo D, também pode ser construído a partir de mestre e escravos com
latches D. Sua montagem pode ser feita a partir de dois latches que estão conectados juntos,
com um sinal do clock que vai no segundo latch e volta barrando o primeiro latch.
Figura 67: esquemático do flip-flop tipo D com mestre e escravo. Fonte: Hugo, 2021.
Diante de tudo isso, essa sexta seção do relatório tem como objetivo principal é obter
o layout físico (usando graal) de um flip-flop tipo D, construído com latches mestre e escravo,
além da geração e análise de de gráficos resultantes da simulação do layout através do spice
opus. Para o entendimento desses conceitos e para alcançar objetivos propostos, esse relatório
é dividido em: introdução,metodologia, resultados e discussões, considerações finais e
referências bibliográficas.
45
6.2 Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Em seguida, foi feito o design e implementação dos circuitos utilizando o software
graal, da mesma forma que foram feitos nas seções anteriores. Para fazer o flip-flop
tipo D, foi utilizado dois latches D e um inversor, que foi feito nas seções anteriores.
Para a criação do latch D, foi utilizado como base, o mux 2:1 da seção anterior.
3) Para a simulação dos testes foi utilizado o software spice opus, utilizando-o da mesma
forma que nas seções anteriores;
4) Nessa etapa foi feita a análise de todos os resultados obtidos;
5) Por fim, deu-se início à construção da quarta seção deste relatório.
6.3 Resultados e discussões
Para a construção do layout do flip-flop D, foi necessário incialmente fazer a
construção do layout do latch, que teve como base o mux 2:1, após algumas mudanças o
layout do latch ficou assim:
Figura 68: Layout do latch feito no Graal.
Analisando o gráfico abaixo, percebemos que quando o clock está em 1(representado
pelo pulso vermelho) o sinal é copiado na saída, e quando o clock está em 0, o sinal é parado.
46
Esse processo é repetido e a saída irá se basear nos pulsos de entrada d(representado pela
onda da cor verde).
Figura 69: Gráfico do latch.
Após a construção do latch, foi feito o layout do flip-flop tipo D, esse utilizou dois
latches e mais um inversor balanceado entre eles. Após realizada as configurações
necessárias, obtivemos o seguinte resultado:
Figura 70: Layout do flip-flop tipo D.
No gráfico abaixo, podemos notar que o flip-flop é acionado quando o clock está indo
para 1, ou seja, em sua borda de subida, como consequência, o valor atual de D é passado para
a saída. quando o clock está passando para 0(borda de descida), o flip-flop não é acionado.
47
Figura 71: Gráfico do flip-flop tipo D.
7. Considerações Finais
A partir da análise de todos os dados apresentados neste relatório foi possível alcançar
os objetivos propostos e assim, verificar os diversos comportamentos temporais da resposta
ao pulso do circuito RC, bem como, o toda a modelagem de algumas portas lógicas. Dessa
forma, o conteúdo apresentado durante as aulas pode ser posto em prática com o auxílio do
software Spice Opus e o editor Drawio, o que foi essencial para discorrer o comportamento
dos componentes aqui apresentados. Além disso, a construção da tabela verdade de cada uma
dos componentes da seção 2, foi essencial para entender o comportamento em nível lógico, à
construção dos desenhos, por sua vez, foi fundamental para a compreensão de como são
projetados os layouts. Na terceira seção, pudemos perceber o comportamento do transistor
inversor diante de diversas situações, e todo o procedimento de projeção e análise em função
do tempo desse componente. Na quarta seção pudemos ressaltar a importância de se utilizar
um transistor balanceado, e como funciona de maneira mais profunda o comportamento do
mesmo. Além disso, aprendemos como funcionam de maneiras diferentes a análise da
margem de erros, e como as saídas atuam. Na quinta seção, pudemos compreender o
comportamento de um inversor tristate, bem como o do mux 2:1. Além disso, conseguimos
compreender todo processo para a construção de seus layouts físicos. Na sexta seção,
pudemos atingir nosso objetivo, e entender como funciona o latch tipo D com metre-escravo,
e ainda como funciona todo o processo de criação no Graal. Dessa forma, conseguimos
alcançar mais uma vez o resultado esperado da atividade proposta. Portanto, essa atividade foi
48
essencial para que pudéssemos relacionar os conteúdos aprendidos em sala de aula com um
pouco de prática de programação.
8. Referências Bibliográficas
Eletrônica Digital.PORTAS LÓGICAS.Margem de ruído: Fan-out e Fan-in, Tempo de
propagação e Dissipação de potência-Prof. Edgar Zuim. Disponível em:
https://edisciplinas.usp.br/pluginfile.php/145922/mod_resource/content/1/Apostila%20Sistem
as%20Digitais%20I_SEL405_2013.pdf. Acessado em 19 de abril de 2021.
FERREIRA, Jõao Canas. Circuitos CMOS: Um resumo. Junho de 2004. Disponível em:
https://paginas.fe.up.pt/~jcf/ensino/disciplinas/mieec/pcvlsi/2007-08a/sumario.pdf . Acessado
em 22 de março de 2021.
FISCH, Leandro B. K. Transístor MOSFET de Potência. Eletrônica de Potência, out de 2018.
Disponível em: https://eletronicadepotencia.com/transistor-mosfet-de-potencia/ . Acesso em
22 de março de 2021.
HEXSEL, Roberto André. A Tecnologia de Circuitos CMOS. 2012-2021. Disponível em:
https://www.inf.ufpr.br/roberto/ci210/cmos.pdf.Acessado em 22 de junho de 2021.
JUNIOR, joab. Resistores. Mundo Educação. Disponivel em :
<http://ensinoadistancia.pro.br/EaD/Eletromagnetismo/CircuitoRC/CircuitoRC.html>.
Acessado em: 13 de Março de 2021.
LIMA, Thiago. Portas Lógicas. Embarcados. Julho, 2015. Disponível
em:https://www.embarcados.com.br/portas-logicas/#:~:text=A%20porta%20l%C3%B3gica%
20N%C3%83O%20E,todas%20entradas%20n%C3%A3o%20forem%201. Acessado em 22
de março de 2021.
MALVINO, Albert. Eletrônica [recurso eletrônico] / Albert Malvino, David J. Bates ;
tradução: Antonio Pertence Jr. – 8. ed. – Porto Alegre : AMGH, 2016. v. 1
MALVINO, Albert. Eletrônica [recurso eletrônico] / Albert Malvino, David J. Bates ;
tradução: Antonio Pertence Jr. – 8. ed. – Porto Alegre : AMGH, 2016. v. 2
MASTERWALKER, E. S. Componentes Ativos – Circuito Integrado. Disponível em:
https://blogmasterwalkershop.com.br/eletronica/componentes-ativos-circuito-integrado .
Acessado em 24 de março de 2021.
http://ensinoadistancia.pro.br/EaD/Eletromagnetismo/CircuitoRC/CircuitoRC.html
49
TECMUNDO. Como funciona um circuito integrado? Disponível em:
https://www.tecmundo.com.br/eletronica/45954-como-funciona-um-circuito-integrado-ilustra
cao-.htm .Acessado em 23 de março de 2021.
TUMA, T.; BURMEN, A. Circuit Simulation with SPICE OPUS: Theory and Practice. New
York: Birkhanser Boston, 2009. (Modeling and Simulation in Science, Engineering and
Technology).
VERTULO, Rodrigo Cesar. Tipos de Flip Flops – Flip Flop D. 2015. Disponível em:
<http://labdeeletronica.com.br/tipos-de-flip-flops-flip-flop-d/>. Acessado em: 24/06/2021.
WESTE, Neil H. E. HARRIS, David Money. CMOS VLSI DESIGN: A Circuits and Systems
Perspective. 4ª ed.
50
Universidade Federal da Paraíba
Centro de Informática
Relatório Final de Microeletrônica
Aluna: Elaine Cristina Lins de Souza.
Matrícula:20170020854.
(elainesouza@eng.ci.ufpb.br)
Professor: Hugo Leonardo Davi de Souza Cavalcante.
Disciplina: Introdução à Microeletrônica.
JOÃO PESSOA, PB.
Março, 2021.
51
ELAINE CRISTINA LINS DE SOUZA.
Relatório Final de Microeletrônica
Relatório de atividade prática da disciplina de
Introdução à microeletrônica, do curso de
Engenharia de Computação, da Universidade
Federal da Paraíba como requisito para a obtenção
da terceira nota.
Orientador: Hugo Leonardo Davi de Souza
Cavalcante.
João Pessoa - PB
2021
52
Resumo
Este relatório traz resultados de pesquisa sobre Somador-inversor-acumulador
controlável (ADAC). Além disso, está presente todos os processos metodológicos para a
obtenção dos resultados aqui apresentados, bem como, a análise dos mesmos levando em
consideração todos os conteúdos apresentados em sala de aula.
53
Sumário
1. Introdução 54
2. Metodologia 55
3. Resultados e Discussões 56
4. Considerações Finais 69
5. Referências Bibliográficas 69
54
1. Introdução
Levando em consideração, que a concepção Top-Down utiliza uma sequência lógica
que vai do comportamento (VHDL) para o Circuito Lógico(VBE) finalizando com as células
padrão(Circuito Físico - VST e AP), e que além disso, é utilizada para descrever
comportamento em alto nível, uma vez que as ferramentas descobre como implementar em
termosde funções fundamentais(portas e registradoras) e que se conectam e identificam as
portas implementas em células padrão e fazem o roteamento para que o usuário possa testar o
resultado final. Este trabalho possui como objetivo principal, relatar o processo de construção
de um circuito do ADAC, de acordo com o esquemático mostrado na figura abaixo, a partir de
um arquivo HDL comportamental (VHDL ou Verilog), e ainda, analisar os resultados do teste
comportamento lógico do ADAC sem atraso usando GENPAT e ASIMUT.
Figura 01: Circuito ADAC.
Ademais, esse relatório também tem como objetivo evidenciar os arquivos de
descrição comportamental, estrutural e físico, usando os programas do pacote Alliance. Bem
como, analisar o comportamento do circuito físico, usando GENPAT e ASIMUT com atraso e
período do clock adequado. Para a melhor compreensão de tudo aqui descrito, esse trabalho
foi dividido em: introdução, metodologia, resultados e discussão, considerações finais e
referências bibliográficas.
55
2. Metodologia
A metodologia desta seção do trabalho é divida em fases, sendo elas:
1) Pesquisa bibliográfica para a construção do referencial teórico e auxiliar nos
procedimentos necessários para alcançar os resultados;
2) Separar os arquivos necessários para as simulações, como por exemplo o
adac.vhd, o adac_sem_atraso.c e o adac_com_atraso.c.
3) Através do comando “alliance-genpat” foi gerado um arquivo
“adac_sem_atraso.pat” para analisar o comportamento da implementação do
circuito. Assim, tivemos que partir do arquivo de comportamento, utilizando o
"vasy" para fazer a tradução do VHDL para o VBE (Comportamento restrito);
4) Em seguida, foi gerado o arquivo “adac_vasy_sem_atraso” através do software
vasy, que foi necessário para fazer a comparação do que era esperado para o
que foi simulado;
5) Através do software Asimut foi feita a comparação e gerado o arquivo
responsável por mostrar o esquemático do somador sem atraso;
6) Foi feita a conversão da descrição comportamental para uma descrição "física"
ou estrutural, transformando o VBE em um VST, utilizando o comando
"boog", que vai pegar a descrição comportamental e verificar quais são as
células padrão que serão utilizadas, copiando os parâmetros físicos (tempos de
atraso), possibilitando uma simulação mais realista;
7) Após isso, e já possuindo o arquivo estrutural, foi gerado o layout físico
usando genlib(arquivo vst), e gerar o arquivo físico(.ap);
8) Todos os procedimentos anteriores foram repetidos com o arquivo
adac_com_atraso;
9) foi feita a conversão para a criação do design no graal através do software xpat
e com o software nero foram feitas as conexões para que o circuito pudesse ser
simulado no spiceopus;
10) Nessa etapa foi feita, a análise dos resultados que foram encontrados;
11) E por fim, deu-se a construção deste relatório;
56
3. Resultados e Discussões
Através do gedit foi criado o arquivo adac e salvo com a extensão .vhd, nesse arquivo
foram feitas as atribuições dos valores dos componentes, que possuem componentes com tipo
padrão o standart logic (Std_Logic_vector). Sua descrição comportamental pode ser descrita a
partir do diagrama esquemático de blocos da descrição do problema proposto para essa
atividade.
Figura 02: arquivo adac.vhd parte 1.
Nessa primeira parte, foi feita a descrição das portas lógicas de entrada e saída do
circuito. Em seguida, na imagem abaixo, foi feita a implementação da arquitetura
comportamental do Adac. Nessa parte é descrito quem são os sinais intermediários, que serão:
um sinal para o soma, um sinal inversor, um sinal para a saída do somador, o mux 0 e o mux 1
que são as saídas dos dois multiplexadores, e um acumulador que vai ser a saída do Acc.
Figura 03: arquivo adac.vhd parte 2.
57
A partir do “begin” da imagem acima, foi feita a descrição do comportamento do circuito.
Figura 04: arquivo adac.vhd final.
Após a implementação dos dados nesse arquivo, foi feita a implementação do arquivo
“adac_sem_atraso_2020.2.c”, esse arquivo é responsável por gerar o padrão de testes, que
iremos utilizar para testar se a descrição do adac está funcionando. Assim, vários sinais de
entrada são gerados, utilizando o que foi implementado para gerar uma espécie de tabela
verdade que diz se para os sinais de entrada existentes qual irá ser o sinal de saída que vai ser
produzido pelo adac. Se tudo estiver certo, comparando o resultado da tabela verdade com a
simulação feita no circuito eles deverão ser iguais, o que indica que o circuito estará
funcionando corretamente. A versão sem atraso, é ignorado os atrasos físicos que são criados
pelos elementos de circuito que formam determinado dispositivo, então é mais fácil de testar
se a descrição comportamental do componente que está sendo construído, está correta. E caso
isso seja verdade, será feito a simulação do circuito com atraso, e assim, o simulador vai ter a
opção de incorporar o atraso produzido por aquelas portas lógicas e será verificado se quando
esse atraso acontece, a simulação continuará igual, levando em consideração os atrasos de
propagação que a saída deverá ter.
58
Figura 05: arquivo adac.vhd parte 1.
59
Através do genpat o arquivo "adac_sem_atraso_2021.pat" foi gerado. Como arquivo .c
estava correto, o arquivo .pat apresentou o comportamento esperado de acordo com a
descrição do componente. Que foi comparado com o arquivo vhdl, através do software
"Asimut", assim, ele vai comprar o arquivo previsto, com o arquivo gerado pela simulação.
Entretanto, antes disso, foi gerado o arquivo adac_vasy através do software Vasy, para a
comparação. O arquivo "res_adac_vasy_atraso.pat" deverá possuir os mesmos valores do
arquivo que foi gerado pelo .c, ou seja, o comportamento do circuito é igual ao
comportamento que tinha sido previsto.
Figura 06:Arquivo de saída sendo gerado através do GenPat.
Figura 07: Criação do arquivo Vasy.
Sabendo que o comportamento do circuito está correto, foi feita uma simulação mais
realista do circuito, incluindo os atrasos. Logo, foi produzido um arquivo real com as portas
60
lógicas físicas que tem atraso, isso foi feito através do software “boog”. Esse comando, irá
pegar o arquivo comportamental que foi produzido e, gerar o arquivo estrutural (vst), o
arquivo de saída foi intitulado de “adac_vasy_boog”. Como resultado, foi gerado dois
arquivos “adac_vasy_boog.vst” que é o arquivo estrutural, e o “adac_vasy_boog.xsc” que é o
esquemático do arquivo estrutural, que possui as portas lógicas que foram utilizadas.
Figura 08: Gerando o arquivo de modelo comportamental.
Através do software xsch, foi analisado o arquivo com extensão xsc, que gerou o
diagrama esquemático do somador (figura 09).
Figura 09: Diagrama esquemático do somador.
61
A parte da cor vermelha, é o caminho crítico, que nada mais é do que o maior atraso,
que acabou por aparecer na saída c4, quando ela varia dependendo da entrada sel0. Assim,
quando sel0 muda, o circuito apresenta o caminho mais demorado de propagação, que afeta a
variável c4. Analisando o arquivo “adac_vasy_boog.vst”, podemos notar que ele possui a
descrição das portas e das células padrão que foram utilizadas. Para sabermos o que o circuito
irá produzir em termos de descrição comportamental, foi comparado o resultado da saída que
esse circuito produz com o arquivo de testes, através do software “Asimut”.
Após todos esses procedimentos, foi a vez de simular o arquivo "adac_com_atraso.c".
Que é semelhante ao adac_sem_atraso, mas possui uma variável global atraso1 que recebe
8500 e na hora de que a incrementação do tempo é feita, ao invés do tempo ser incrementado
em uma unidade como no adac_sem_atraso, ele é é incrementado em atraso1(tempo +=
atraso1). Dessa forma, esse arquivo possui duas incrementações de tempo, uma
incrementando logo após a incrementação das mudanças das variáveis de entrada, e outra
após a modificação das variáveis de saída.
Figura 10: Implementação do tempo no arquivo“adac_com_atraso.c”.
Foi gerado o adac_com_atraso.pat, através do software GenPat
62
Figura 11. Gerando o arquivo “adac_com_atraso_13000.pat”.
Olhando a imagem abaixo, percebemos que inicialmente por causa do atraso na
variável de entrada, antes de escrever as variáveis de saída, os valores das variáveis de saída
estão indefinidos, já que nunca foram escritas. Após a definição dos valores das variáveis de
saída em, na linha 32 é que o clock subiu de nível.
Figura 12: Arquivo adac_com_atraso_13000.pat.
Em seguida foi gerado outro arquivo através do Asimut, mas dessa vez comparando o
adac_vasy com o adac_com_atraso_13000. A simulação foi gerada, assim como a testagem
com todos os padrões. Entretanto, foram encontrados alguns erros, que devem ter acontecido
ou pelo clock estar curto de mais para o tempo da saída responder, ou pelo fato do problema
não estar otimizado.
63
Figura 13: Erros apresentados na simulação.
Para corrigir esses erros, foi feito a otimização do atraso através do software boom,
gerando o arquivo comportamental de saída adac_vasy_boom. Com o arquivo otimizado, foi
feito a geração do arquivo “adac_vasy_boom_boog” através do software boog, que gerou os
arquivo esquemático e o arquivo estrutural, gerando o novo esquemático mostrado na figura
abaixo.
Figura 14: Esquemático do arquivo com atraso otimizado.
64
Diferentemente do esquemático anterior, esse é mais simples e teve seu caminho
crítico alterado para a saída s2, que depende da variável da saída do sxor. Com o novo arquivo
estrutural, foi possível rodar novamente o comando de simulação(Asimut), e gerar o arquivo
de comparação “res_adac_com_atraso_vasy_boom_boog”. Como essa simulação ainda
continuou apresentando erros, foi feita a otimização do tempo de atraso com o software loon
que é um otimizador do caminho crítico, ele vai olhar qual é o maior tempo de resposta do
circuito e fazer uma “bufferização” nessa parte, ou seja, ele vai aumentar a capacidade de
drive da saída das portas lógicas que estão sendo utilizadas, o que resultou no arquivo de saída
“adac_vasy_boom_boog_loon”, e gerou um novo esquemático e um novo arquivo vst.
Figura 15: gerando o arquivo adac_vasy_boom_boog_loon.
Figura 16: Esquemático obtido através do loon.
65
Mais uma vez a simulação foi feita novamente, através do Asimut, dessa vez a partir
do arquivo obtido com o loon. Porém, mais uma vez apresentou erro, então foi necessário
fazer o aumento do valor do atraso diretamente no arquivo adac_com_atraso, que passou de
8500 para 11000, após várias tentativas.
Figura 17:Aumentado o valor do atraso.
O padrão foi gerando novamente, através do genpat, e em seguida, foi feita a
simulação mais uma vez, através do Asimut. Dessa vez, a simulação não apresentou erros,
então foi dado continuidade aos teste.
Figura 18: gerando o arquivo adac_vasy_boom_boog_loon.
66
Como o spice é um simulador mais realista, ou seja, mais próxima do comportamento
verdadeiro do circuito, foi gerado um arquivo .spi através do arquivo vst obtido no loon. Com
o software xpat, foi verificado o comportamento das entradas e saídas do somador, e como
não apresentou erro, entende-se que ele se comportou como era esperado.
Figura 19: Gráfico comportamental obtido através do xpat.
Em seguida foi gerado o arquivo de máscaras, utilizando o alliance-ocp, esse arquivo
foi intitulado de “adac_vasy_boom_boog_loon_posicionado”, convertendo assim o arquivo
de tipo vst em ap, possibilitando desenhar no graal o circuito descrito no arquivo, resultando
na imagem abaixo:
Figura 20:Design obtido através do OCP.
Para conectar as instâncias criadas pelo OCP foi utilizado o nero, resultando no
design abaixo.
67
Figura 21: Desgin de roteamento de conexões obtidos com o Nero.
Por fim, foi utilizado o software cougar para criar o arquivo .cir de simulação do
spiceopus, e assim obtivemos o seguinte gráfico de ondas.
Figura 22: Gráfico de ondas obtido através da simulação do spiceopus.
68
4. Considerações Finais
A partir da análise de todos os dados apresentados neste relatório foi possível alcançar
os objetivos propostos e assim, verificar todos os procedimentos necessários para a criação e
simulação do ADAC. Dessa forma, foi possível aprender a como utilizar diversos novos
softwares como por exemplo: genpat, asimut, boog, boon, loon, xpat, nero, entre outros. E
assim, pudemos criar um circuito mais complexo, entendendo todos os seus processos e como
a saída desse circuito se comporta. Portanto, essa atividade foi essencial para que pudéssemos
relacionar os conteúdos aprendidos em sala de aula com um pouco de prática de programação.
5. Referências Bibliográficas
Aulas da disciplina de Introdução a microeletrônica.

Continue navegando