Baixe o app para aproveitar ainda mais
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.
Compartilhar