Baixe o app para aproveitar ainda mais
Prévia do material em texto
Eletrônica digital Técnicas digitais e dispositivos lógicos programáveis L E A N D R O P O L O N I D A N T A S R I C A R D O A R R O I O ELETROELETRÔNICA Estruturado em dez capítulos, o livro conduz o leitor grada- tivamente a um entendimento profundo da eletrônica digital. Aborda princípios e fundamentos como circuitos básicos, téc- nicas para criação e desenvolvimento de projetos de circuitos digitais, tecnologias utilizadas na fabricação de dispositivos digitais e muito mais. Para melhor fixação do aprendizado, traz uma série de exercícios ao final de cada capítulo. Dire- cionado aos cursos de graduação tecnológica em Eletrônica Industrial e superior em Engenharia, é indicado também para cursos técnicos e de qualificação profissional em Eletrônica. E letrô nica d ig ital – Técnicas d ig itais e d isp o sitivo s ló g ico s p ro g ram áveis ISBN 978-85-65418-91-1 Eletrônica digital Técnicas digitais e dispositivos lógicos programáveis Dados Internacionais de Catalogação na Publicação (CIP) Dantas, Leandro Poloni Eletrônica digital: técnicas digitais e dispositivos lógicos programáveis / Leandro Poloni Dantas; Ricardo Arroio. – São Paulo: SENAI-SP Editora, 2019. 560 p.: il. Inclui referências; biografia ISBN 978-85-65418-91-1 1. Circuitos eletrônicos 2. Dispositivos digitais 3. Eletrônica digital 4. Lógica digital I. Arroio, Ricardo II. Título III. Série. CDD 621.3815 Índice para o catálogo sistemático: Circuitos eletrônicos 621.3815 Eletrônica digital 621.3815 SENAI-SP Editora Avenida Paulista, 1313, 4o andar, 01311 923, São Paulo – SP F. 11 3146.7308 | editora@sesisenaisp.org.br | www.senaispeditora.com.br Eletrônica digital Técnicas digitais e dispositivos lógicos programáveis L E A N D R O P O L O N I D A N T A S R I C A R D O A R R O I O ELETROELETRÔNICA Departamento Regional de São Paulo Presidente Paulo Skaf Diretor Superintendente Corporativo Igor Barenboim Diretor Regional Ricardo Figueiredo Terra Gerência de Assistência à Empresa e à Comunidade Celso Taborda Kopp Gerência de Inovação e de Tecnologia Osvaldo Lahoz Maia Gerência de Educação Clecios Vinícius Batista e Silva Escola SENAI “Anchieta” Augusto Lins de Albuquerque Neto (Diretor) Comissão editorial Milton Gava Osvaldo Lahoz Maia João Ricardo Santa Rosa Vilson Polli Adelmo Belizário Ophir Figueiredo Júnior José Carlos Dalfré Prefácio O leitor tem em mãos uma obra de vulto, fruto do trabalho de dois auto- res que combinam largas experiências acadêmicas e de exercício profissional em instituições de ensino superior e técnico, bem como em indústrias de base eletrônica. Experiências combinadas deram o esteio para um livro que encer- ra uma sucessão coesa de exemplos e outras contextualizações para o seu con- teúdo, completamente escoradas nas aplicações do mundo real, sobre uma base técnico-científica jamais descuidada. Ao desenvolverem esta obra, contaram ainda com amplo acesso aos artefatos tecnológicos do Senai de São Paulo, re- ferenciados no livro, por meio da Faculdade de Tecnologia Senai Anchieta, instituição de referência nacional na área de Eletrônica, onde atuam como do- centes do ensino superior. De grande proveito em cursos de graduação tecnológica em Eletrônica, supe- riores em Engenharia e outros correlacionados, esta obra é recomendada como livro-texto da disciplina Eletrônica Digital ou equivalente. Também é prevista sua utilização em outros níveis de educação, principalmente nos cursos técnicos de nível médio em Eletrônica ou semelhante e nos cursos de qualificação profis- sional, como obra complementar ou de aprofundamento dos estudos. O livro foi pensado para a unidade curricular de um curso superior em Eletrô- nica Industrial, com duração de um ou dois semestres, de acordo com a organi- zação curricular. Neste contexto, é especialmente útil na fundamentação técnico- -científica, como livro-texto de referência para apropriação dos conteúdos, obra de referência auxiliar para elaboração das atividades de aprendizagem, de exercícios e de preparação para as atividades de prática profissional. Para utilização em con- textos diferentes, o livro possui flexibilidade suficiente para o necessário suporte, cabendo às instituições de ensino interessadas na obra identificar a forma, o grau e a ordem de abordagem do conteúdo. Estruturado com base num amplo espectro de conteúdo tecnológico de ele- trônica digital, esta obra compreende desde os mais elementares conceitos até os mais avançados do campo, em ordem crescente de complexidade e por acúmulo de conteúdo. Trata-se, portanto, de um livro com relevante preocupação didática, distinguindo-se da aridez da linguagem normalmente enfrentada em obras de nível e conteúdo equivalentes da área. Poderá, nas mãos de todos aqueles que se propõem a estudar eletrônica digital, transformar-se em uma poderosa fonte de formação acadêmica e profissional, nesta fascinante área do conhecimento, a Eletrônica. Boa leitura! Augusto Lins de Albuquerque Neto Diretor da Escola e Faculdade de Tecnologia Senai Anchieta Sumário 1. Sistemas de numeração e códigos 23 1.1. Conceitos fundamentais 23 1.2. Representações numéricas 24 1.3. Representação de dados numéricos 25 1.4. Sistemas de números e bases numéricas 27 1.4.1. Sistema de numeração decimal 27 1.4.2. Sistema de numeração binário 28 1.4.3. Sistema de numeração hexadecimal 29 1.5. Conversão de base 30 1.5.1. Conversão de uma base qualquer para a base 10 30 1.5.2. Conversão da base 10 para uma base qualquer 31 1.5.2.1. Números inteiros 31 1.5.2.2. Números fracionários 31 1.6. Conversão da base 2 para a base 16 33 1.7. Conversão da base 16 para a base 2 34 1.8. Decimal codificado em binário (BCD) 34 1.9. Aritmética binária 36 1.9.1. Adição 36 1.9.2. Subtração 37 1.9.3. Multiplicação 39 1.9.4. Divisão 40 Exercícios propostos 42 2. Introdução à lógica digital, portas e circuitos lógicos 44 2.1. Introdução à lógica digital 44 2.2. Constantes e variáveis boolianas 45 2.3. Representação de uma porta lógica e tabela-verdade 47 2.4. Função e porta lógica OR (OU) 49 2.5. Função e porta lógica AND (E) 52 2.6. Função e porta lógica NOT (NÃO) 55 2.7. Diagrama de tempo 59 2.8. Descrição de circuitos lógicos 60 2.8.1. Expressão algébrica booliana a partir do circuito lógico 61 2.8.2. Circuito lógico a partir da expressão algébrica booliana 65 2.9. Portas lógicas derivadas 69 2.9.1. Função e porta lógica NOR (NOU) 69 2.9.2. Função e porta lógica NAND (NE) 71 2.9.3. Função e porta lógica XOR (Exclusive OR ou OU Exclusivo) 74 2.9.4. Função e porta lógica XNOR (Coincidência) 76 2.10. Porta lógica real 78 Exercícios propostos 81 3. Álgebra booliana e simplificações 84 3.1. Introdução 84 3.2. Operações básicas da álgebra booliana 85 3.2.1. Operação de adição lógica 85 3.2.2. Operação de multiplicação lógica 86 3.2.3. Operação de inversão lógica 88 3.3. Leis fundamentais e teoremas da álgebra booliana 89 3.4. Teoremas de De Morgan 91 3.5. Extração de expressão booliana a partir de tabela-verdade 92 3.5.1. Extração de expressões boolianas por soma de produtos 93 3.5.2. Extração de expressões boolianas por produto de somas 95 3.6. Modos de representações das formas de soma de produtos e produto de somas 97 3.7. Construção de circuitos lógicos nas formas padrão e não padrão 101 3.8. Simplificação de expressões boolianas usando mapas de Karnaugh 104 3.8.1. Mapas de Karnaugh para duas, três e quatro variáveis 109 3.8.2. Identificação de agrupamento dos mapas de Karnaugh 114 3.9. Determinação de expressões boolianas para funções não totalmente especificadas 118 3.10. Mapeamento da expressão booliana 120 Exercícios propostos 124 4. Aritmética digital e circuitos aritméticos 130 4.1. Representação de números binários 130 4.1.1. Representação no formato sinal-magnitude 131 4.1.2. Representação no formato complemento de 1 132 4.1.3. Representação no formato complemento de 2 133 4.2. Adição binária 138 4.3. Subtraçãobinária 140 4.4. Adição BCD 141 4.5. Adição hexadecimal 144 4.6. Subtração hexadecimal 146 4.7. Circuitos aritméticos 148 4.7.1. Meio somador 149 4.7.2. Somador completo 150 4.7.3. Meio subtrator 154 4.7.4. Subtrator completo 156 4.7.5. Somador-subtrator 159 4.7.6. Unidade lógica aritmética (ULA) 161 4.7.7. Circuitos integrados aritméticos 163 4.7.7.1. Somador completo binário de quatro bits – 74x283 163 4.7.7.2. Unidade lógica aritmética de quatro bits – 74x181 164 Exercícios propostos 168 5. Circuitos lógicos combinacionais 172 5.1. Codificadores 176 5.2. Decodificadores 180 5.2.1. Decodificador 3x8 180 5.2.2. Decodificador com entrada de habilitação 182 5.2.3. Decodificador BCD para ativação de display de sete segmentos 184 5.3. Circuitos geradores e verificadores de paridade 188 5.3.1. Código de paridade 188 5.3.2. Geração e verificação de paridade 188 5.4. Circuitos lógicos para habilitar e desabilitar 192 5.4.1. Com uma entrada para controle 192 5.4.2. Com duas entradas para controle 193 5.5. Comparador de magnitude 196 5.5.1. Circuito do comparador de magnitude de quatro bits 196 5.5.2. Comparador de magnitude com circuito integrado 7485 197 5.6. Buffers de três estados 200 5.6.1. Apresentação do terceiro estado ou estado de alta impedância 200 5.6.2. Circuitos lógicos com buffers de três estados 200 5.6.3. Barramento com buffers de três estados (alta impedância) 201 Exercícios propostos 203 6. Circuitos lógicos sequenciais 207 6.1. Definição 207 6.2. Latch do tipo SR 208 6.2.1. Latch do tipo SR com portas NAND 209 6.2.2. Latch do tipo SR com portas NOR 215 6.3. Definição de flip-flop 217 6.3.1. Flip-flop do tipo SR 218 6.3.2. Flip-flop do tipo JK 223 6.3.3. Flip-flop do tipo D 226 6.3.4. Sinais assíncronos em flip-flop 227 6.4. Circuitos com flip-flop 230 6.4.1. Eliminador de trepidação de contato 230 6.4.2. Registradores 232 6.4.2.1. Registrador série-paralelo ou registrador de deslocamento 233 6.4.2.2. Registrador série-série 235 6.4.2.3. Registrador paralelo-série 235 6.4.2.4. Registrador paralelo-paralelo ou latch 238 6.4.3. Contadores 238 6.4.3.1. Contadores assíncronos 240 6.4.3.1.1. Contador assíncrono crescente 240 6.4.3.1.2. Contador assíncrono de década 243 6.4.3.1.3. Contador assíncrono de 0 a n 245 6.4.3.1.4. Contador assíncrono decrescente 246 6.4.3.1.5. Contador assíncrono de n a 0 247 6.4.3.2. Contadores síncronos 249 6.4.3.2.1. Contador síncrono crescente módulo 2n 250 6.4.3.2.2. Contador síncrono de década 254 6.4.3.2.3. Contador síncrono personalizado 255 6.5. Aplicações práticas com circuitos baseados em flip-flop 260 6.5.1. Chave de toque do tipo liga-desliga para lâmpada 260 6.5.2. Frequencímetro 261 6.5.3. Impressora térmica 263 6.6. Circuitos integrados relacionados 265 6.6.1. Flip-flop 266 6.6.2. Registradores 268 6.6.3. Contadores 271 6.7. Sinal de clock e multivibradores 277 6.7.1. Multivibrador biestável 278 6.7.2. Multivibrador astável 278 6.7.3. Multivibrador monoestável 283 Exercícios propostos 285 7. Multiplexadores, demultiplexadores e conversores 289 7.1. Multiplexadores 289 7.1.1. Definição e funcionamento 289 7.1.2. Expansão da capacidade de um sistema multiplexador 292 7.1.3. Multiplexador na forma de circuito integrado 295 7.1.4. Implementação de funções lógicas utilizando multiplexador 296 7.2. Demultiplexador 300 7.2.1. Definição e funcionamento 300 7.2.2. Expansão da capacidade de um sistema demultiplexador 303 7.2.3. Demultiplexador na forma de circuito integrado 305 7.3. Transmissão de dados 307 7.3.1. Transmissão serial de dados 307 7.3.2. Transmissão paralela de dados 311 7.4. Conversores de sinais D/A e A/D 313 7.4.1. Conversor D/A 315 7.4.1.1. Conversor D/A com rede resistiva 315 7.4.1.2. Conversor D/A com amplificador operacional 321 7.4.2. Conversor A/D 325 7.4.2.1. Conversor A/D do tipo contador de rampa 326 7.4.2.2. Conversor A/D do tipo contador de rampa contínuo 327 7.4.2.3. Conversor A/D de aproximação sucessiva 329 7.4.3. Parâmetros dos conversores D/A e A/D 331 Exercícios propostos 334 8. Famílias lógicas 339 8.1. História dos circuitos integrados 339 8.2. Características elétricas e físicas de um circuito integrado 341 8.2.1. Tensão de alimentação 342 8.2.2. Margem de ruído 343 8.2.3. Corrente-limite 345 8.2.4. Fan-in e fan-out 347 8.2.5. Tempo de comutação 348 8.2.6. Atraso de propagação 349 8.2.7. Potência dissipada 349 8.2.8. Encapsulamento 351 8.3. Família lógica TTL 356 8.3.1. Porta lógica NAND simplificada 356 8.3.2. Porta lógica NAND completa 358 8.3.3. Porta lógica NOT (inversora) 361 8.3.4. Porta lógica NOR 362 8.3.5. Demais portas lógicas 363 8.3.6. Características da família lógica TTL e suas variações 363 8.4. Tecnologia MOS 368 8.5. Família lógica CMOS 371 8.5.1. Porta lógica NOT (inversora) 372 8.5.2. Porta lógica NAND 373 8.5.3. Porta lógica NOR 374 8.5.4. Demais portas lógicas 374 8.5.5. Características da família CMOS e suas variações 375 8.6. Outras famílias lógicas e tendências 379 8.6.1. Família lógica RTL 379 8.6.2. Família lógica DTL 380 8.6.3. Família lógica I2L 381 8.6.4. Família lógica ECL 382 8.6.5. Família lógica BiCMOS 386 8.6.6. Famílias lógicas CMOS de baixa tensão 390 8.6.7. Famílias lógicas LVDS (low voltage differential signaling) 393 8.6.8. Família lógica 74G (noise cancellation GHz) 394 8.7. Dicas para projetar usando circuitos integrados TLL e CMOS 395 8.7.1. Entradas desconectadas 395 8.7.2. Sinais com variação muito lenta 396 8.7.3. Capacitores de desacoplamento 397 8.7.4. Lógica mista entre CIs 397 8.7.4.1. Diferentes famílias TTL ou CMOS 397 8.7.4.2. CMOS acionado por TTL 398 8.7.4.3. TTL acionado por CMOS 398 8.7.4.4. Diferentes tensões de alimentação 399 Exercícios propostos 400 9. Dispositivos de memória 403 9.1. Conceituando memória 404 9.2. Terminologia dos dispositivos de memória 405 9.2.1. Memória volátil 405 9.2.2. Memória não volátil 405 9.2.3. Memória estática 405 9.2.4. Memória dinâmica 405 9.2.5. Célula de memória 405 9.2.6. Palavra ou conteúdo 406 9.2.7. Endereço 406 9.2.8. Entradas de dados 406 9.2.9. Saída de dados 406 9.2.10. Capacidade 406 9.2.11. Velocidade ou tempo de acesso 406 9.2.12. Potência consumida 407 9.2.13. Nibble 407 9.2.14. Byte 407 9.2.15. Word 407 9.2.16. Double word 407 9.2.17. Kilobyte (kB) 407 9.2.18. Megabyte (MB) 407 9.2.19. Gigabyte (GB) 408 9.3. Operações realizadas em memórias 408 9.3.1. Operação de escrita 408 9.3.2. Operação de leitura 408 9.3.3. Habilitação da memória 409 9.3.4. Seleção da memória 409 9.3.5. Habilitação da saída de dados da memória 409 9.4. Arquitetura da memória semicondutora 411 9.5. Critérios de escolha de memórias 413 9.5.1. Forma de acesso 414 9.5.2. Tecnologia utilizada 414 9.5.3. Capacidade de armazenamento de dados 415 9.5.4. Saídas da memória 415 9.6. Tipos de memórias 416 9.6.1. Memórias voláteis 416 9.6.1.1. RAM estática (SRAM) 416 9.6.1.2. RAM dinâmica (DRAM) 420 9.6.2. Memórias não voláteis 422 9.6.2.1. ROM 422 9.6.2.2. PROM 426 9.6.2.3. EPROM 426 9.6.2.4. EEPROM 428 9.6.2.5. Flash EEPROM 429 9.6.3. Outros tipos de memórias 430 9.6.3.1. NVRAM 430 9.6.3.2. FIFO 431 9.6.3.3. FRAM 432 9.7. Ampliação de memórias em paralelo 433 9.7.1. Ampliação de posições de memória 433 9.7.2. Ampliação de bits por palavra de memória 435 9.7.3. Decodificador de endereços de memórias 436 9.7.4. Mapa de memória 438 Exercícios propostos 440 10. Dispositivos lógicos programáveis 443 10.1. História dos dispositivos lógicos programáveis 443 10.2. PROM 447 10.3. PLA 450 10.4. PAL 451 10.5. GAL 453 10.6. CPLD 454 10.7. FPGA 456 10.8. Programação VHDL 460 10.8.1. Código VHDL 461 10.8.1.1. Bibliotecas e pacotes 463 10.8.1.2. Entidade 464 10.8.1.3. Arquitetura 466 10.8.1.4. Sinais 467 10.8.1.5. Variáveis 468 10.8.1.6. Constantes 469 10.8.1.7. Operadores 470 10.8.1.8. Componentes 471 10.8.1.9. Instruções concorrentes 473 10.8.1.10. Instruções sequenciais 476 10.9. Criando projetos usando PLDs 480 10.9.1. Circuito lógico combinacional usando linguagem VHDL 481 10.9.2. Circuitológico sequencial usando linguagem VHDL 497 10.9.3. Circuito lógico combinacional usando esquema elétrico 505 Exercícios propostos 514 Respostas dos exercícios propostos 517 Referências 551 Índice remissivo 553 Sobre os autores 558 Introdução Neste livro, vamos estudar uma das áreas mais fascinantes e que tem avançado muito rapidamente nas últimas duas décadas: a eletrônica digital. Vários circuitos e sistemas digitais são desenvolvidos frequentemente e aplicados aos mais diversos tipos de dispositivos e equipamentos eletroeletrônicos. No cotidiano, deparamos, usamos, compramos, trocamos, emprestamos, damos e descartamos equipamentos repletos de tecnologia digital. É curioso pensar que, apesar de a eletrônica digital estar tão presente na nossa vida, poucos são aqueles que realmente conhecem os seus princípios e pouquíssi- mos são capazes de utilizá-la como ferramenta de trabalho. As gerações recentes são ótimas usuárias de tecnologia, consumindo-a in ces- santemente, o que estimula a indústria eletrônica a lançar novos produtos com periodicidade cada vez menor. Quem já não ouviu alguma história sobre consu- midores que fizeram filas por dias e literalmente brigaram para comprar um equi- pamento no dia de lançamento? Mas, afinal, qual o significado da eletrônica digital? O leitor mais leigo deve imaginar que, por ser digital, ela deve ter alguma coisa a ver com os dedos. De certa forma está correto, pois a eletrônica digital é exata, descreve as coisas com valores bem definidos, assim como a contagem feita com os dez dedos das mãos. Os dedos das mãos muito possivelmente são os responsáveis pela criação do nosso sistema de numeração, baseado em dez algarismos (de 0 a 9) que, agrupa- dos, podem representar qualquer quantidade finita; dizemos que a quantidade de algarismos que compõem um número é sua quantidade de dígitos. A eletrônica digital é um pouco mais específica e restrita, talvez simples. Nela, cada dígito pode assumir apenas os valores 0 ou 1. Durante o estudo dos dez capítulos que compõem esta obra, o leitor entenderá mais sobre esse ramo da eletrônica. Ao final, ficará claro por que tantos tipos de equipamentos, que antes eram grandes, pesados, de alto custo, consumiam muita energia, agora, mediante o uso da tecnologia digital, tornaram-se pequenos, leves, relativamente baratos e muito econômicos. Placa de circuito eletrônico totalmente baseado em lógica digital. Este livro foi elaborado para ser utilizado em cursos de tecnologia, engenharia e ciência da computação. Embora alguma noção de eletrônica básica seja necessária, a maior parte do seu conteúdo não requer conhecimento prévio. Como citado, este livro é dividido em dez capítulos organizados de forma que conduz o leitor gradativamente a um entendimento mais profundo da eletrônica digital. Ele aborda princípios e fundamentos, como os circuitos básicos, as técnicas para criação e desenvolvimento de projetos de circuitos digitais, as tecnologias uti- lizadas na fabricação de dispositivos digitais e muito mais. Tomamos o cuidado de sempre que possível contextualizar os assuntos mediante fatos históricos e destacar os inventores ou desenvolvedores de equipamentos e dispositivos. Apesar da sequência lógica dos capítulos, nada impede o leitor de pular alguns e buscar informações específicas no capítulo cujo assunto lhe interesse mais. Nesse caso, existindo alguma dúvida, basta recorrer aos capítulos anteriores para com- plementação e bom entendimento. No primeiro capítulo são abordados diferentes sistemas de numeração e codificação amplamente utilizados, além de como executar a conversão de um sistema de numeração para outro. Aqui o leitor entenderá sobre o sistema binário, que é a base da eletrônica digital e microprocessada, e entenderá como realizar as operações fundamentais da álgebra usando números binários. O segundo capítulo introduz a lógica digital, baseada na álgebra inventada pelo matemático George Boole, que consiste em três operações fundamentais: E, OU e NÃO. Sua aplicação na descrição de circuitos eletrônicos faz uso de símbolos que as representam, as chamadas portas lógicas. Aqui o leitor poderá se familiarizar com esses conceitos, com outras operações derivadas das três operações funda- mentais e saber como essas portas são disponibilizadas fisicamente para o uso em circuitos, os chamados circuitos integrados ou simplesmente chips. O terceiro capítulo encerra a parte introdutória e básica da eletrônica digital. Nele o leitor aprenderá a criar projetos de circuitos digitais com base em expressões boolianas*, bem como utilizar técnicas para simplificação de circuitos e extração das expressões tomando-se por base circuitos preexistentes. Os quatro capítulos seguintes descrevem e ensinam os fundamentos de circui- tos digitais específicos. No quarto capítulo o foco é a representação de números binários sinalizados (positivos e negativos); a partir deles é feito o estudo de ope- rações aritméticas e circuitos aritméticos projetados e comerciais. O quinto capítulo aprofunda o estudo de circuitos combinacionais (aqueles em que os níveis lógicos aplicados às entradas definem as saídas) com ênfase no proje- to de circuitos codificadores, decodificadores, geradores de paridade, entre outros. No sexto capítulo abordamos dispositivos e circuitos com capacidade de me- morização do estado de suas saídas, os chamados circuitos sequenciais. O circuito fundamental para que isso se torne possível é chamado de biestável ou flip-flop. Estudaremos suas diferentes variações e modos de construção. Muitos outros cir- cuitos serão desenvolvidos após esse estudo, com destaque para os registradores e os contadores. Esse capítulo ainda apresenta uma série de aplicações práticas e novos circuitos integrados. Antes de finalizá-lo, apresentamos como gerar o sinal mais importante no controle do funcionamento de um circuito sequencial, o chamado sinal de clock. Destacamos também os circuitos conhecidos como multivibradores. O sétimo capítulo faz alusão a dois assuntos distintos e muito importantes na prática de projetos eletrônicos. O primeiro refere-se aos circuitos multiplexadores e demultiplexadores de dados, utilizados para concentração de múltiplas informa- ções em uma única via de dados e também quando uma informação única pode ser encaminhada para diferentes pontos em um circuito ou sistema eletrônico. A segunda parte do capítulo trata da interface entre a eletrônica digital, basea- da em zeros e uns, e a natureza do mundo real, onde as grandezas físicas (tem- peratura, posição, velocidade, umidade, entre outras) variam de forma contínua, isto é, sem saltos. Aprenderemos como transformar uma grandeza física em uma representação digital, e vice-versa. Sem essas transformações, o desenvolvimento da eletrônica digital estaria restrito à troca de dados e operações extremas, na qual o tudo e o nada (aberto/fechado, liga/desliga, sobe/desce) são as únicas opções. No oitavo capítulo estudaremos as características físicas e elétricas dos dispo- sitivos digitais. Aqui o leitor adquirirá conhecimentos primordiais para realizar projetos reais em eletrônica digital. Aprenderá o que é uma família lógica e suas derivações, estudará com profundidade suas características elétricas. Além das mais populares (TTL e CMOS), conhecerá as famílias que antecederam as atuais, as mais complexas utilizadas em circuitos específicos de alta densidade de minia- turização e as que são tendência para o futuro. O capítulo é finalizado com uma série de informações para execução de proje- tos digitais utilizando dispositivos TLL e CMOS. O nono capítulo é totalmente dedicado ao estudo dos diferentes tipos de me- mórias semicondutoras. Aqui o leitor aprenderá as características de cada uma delas, a terminologia usada na identificação das diferentes capacidades de armaze- namento de dados e conhecerá técnicas para ampliar a capacidade de um sistema baseado em memórias. O décimo e últimocapítulo do livro trata do estudo de arquitetura de hardware programável. De forma cronológica, o aluno conhecerá os diferentes tipos de dis- positivos utilizados no passado e atualmente para criação de hardware programável. Cabe aqui esclarecer que o conceito hardware programável está associado à possibi- lidade de criação do circuito personalizado e de gravação dele em um chip genérico, tornando-o um representante real do circuito projetado. Destaque à linguagem de descrição de hardware chamada VHDL. Aprendere- mos como utilizá-la para representação do funcionamento do circuito por meio de instruções (semelhante às linguagens de programação de computador). Além dis- so, o capítulo aborda, no formato passo a passo, todas as etapas para a construção de um projeto utilizando lógica programável, não deixando de lado a simulação computacional dos circuitos desenvolvidos. Além da exposição do conteúdo teórico, ao final de todos os capítulos existe uma série de exercícios com todo o conteúdo estudado. São mais de cem exercícios com respostas no final do livro. O livro contempla ainda um índice remissivo, para rápida localização dos ter- mos essenciais. Esperamos que este livro possa de alguma forma ajudar o leitor, estudante das áreas da tecnologia ou simplesmente interessado em conhecer com profundidade os conceitos da eletrônica digital, a aprender sobre os assuntos aqui propostos e que possa servir como base para consulta na vida profissional, seja na manutenção de circuitos digitais, seja no projeto deles. * Booliano: relativo a George Boole (1815-1864). Adotamos nesta obra a grafia dicionarizada e de acordo com o novo Acordo Ortográfico da Língua Portuguesa, mas é provável que o leitor encontre publicações em que conste a forma "booleano". 1. SISTEMAS DE NUMERAÇÃO E CÓDIGOS 1.1. Conceitos fundamentais Iniciaremos este livro estudando os principais sistemas de numeração, uma vez que em todas as áreas de conhecimento tecnológico manuseamos quantidades e grandezas numéricas. Por isso, é necessário saber representar valores de forma pre- cisa e eficiente no campo dos sistemas digitais e dos microprocessadores. Os sistemas digitais são circuitos eletrônicos que representam grandezas mate- máticas ou informações por meio de valores discretos. As informações são repre- sentadas por valores constituídos por um número finito de zeros e de uns (0 e 1) e geralmente utiliza-se o sistema numérico chamado binário. Os sistemas microprocessados (Figura 1.1) também são digitais, porém mais especializados, constituídos basicamente de um processador, isto é, de um circui- to eletrônico miniaturizado e integrado em um único chip que realiza as funções de cálculo e tomada de decisões de um computador. Todos os computadores e equipamentos eletrônicos baseiam-se nele para executar suas funções. Figura 1.1. Placa de um sistema microprocessado. 24 SiStemaS de numeração e códigoS Enquanto esses sistemas trabalham intensamente com zeros e uns, o ser humano representa suas grandezas numéricas usando a base numérica decimal. Para via- bilizar a comunicação entre o ser humano e os equipamentos digitais, há técnicas para converter esses valores decimais nos sistemas numéricos desses equipamentos. Os sistemas numéricos mais utilizados pela tecnologia digital são o binário e o hexadecimal. 1.2. Representações numéricas A base de um sistema de numeração é a quantidade de algarismos utilizados para escrever todos os números. O sistema de base decimal é usualmente empre- gado em nosso cotidiano, embora não seja a única base de numeração utilizada. Os computadores utilizam a base 2, isto é, o sistema binário. Os programadores, por facilidade, utilizam em geral uma base que seja uma potência de 2, tal como a base 16 ou o sistema hexadecimal. Um número expresso numa determinada base possui dígitos que representam a sua grandeza. Exemplificando as bases decimal, binária e hexadecimal e seus respectivos dígitos, temos: A base 10 (decimal) possui os dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. A base 2 (binária) possui os dígitos 0 e 1. A base 16 (hexadecimal) possui os dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F. Os símbolos A, B, C, D, E e F representam, respectivamente, as grandezas 10, 11, 12, 13, 14 e 15, na base decimal. A seguir, mostramos a tabela de conversão dos números decimal, binário e hexadecimal. Tabela 1.1. Tabela de conversão dos números Decimal Binário Hexadecimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 (continua) eLetrÔnica digitaL 25 Decimal Binário Hexadecimal 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 1.3. Representação de dados numéricos Os dados numéricos são geralmente representados em um sistema de valor po- sicional, em que a posição de cada dígito define seu peso no número representado. Por exemplo, no número 1962 representado em decimal, o dígito 1 não repre- senta apenas uma unidade, e sim um milhar (1 x 1000 = 1 x 103), o dígito 9 repre- senta nove centenas (9 x 100 = 9 x 102), o dígito 6 representa seis dezenas (6 x 10 = 6 x 101) e finalmente o dígito 2 representa duas unidades (2 x 1 = 2 x 100). Dessa forma, podemos representar o número decimal 1962 como uma soma de quatro termos, em que cada termo é representado pelo dígito multiplicado pela base numérica (neste caso 10) elevada ao valor correspondente a sua posição no número (valor posicional), onde o expoente do dígito da unidade será sempre 0 e incrementado a cada dígito do número. 1962 = 1 x 103 + 9 x 102 + 6 x 101 + 2 x 100 Ainda observando o exemplo, o dígito mais à esquerda do número possui o maior valor posicional e é identificado como dígito mais significativo (MSD — most significant digit). Da mesma forma, o dígito mais à direita possui o menor valor posicional e é identificado como dígito menos significativo (LSD — least significant digit). 26 SiStemaS de numeração e códigoS A Figura 1.2 mostra a representação dos valores posicionais associados a cada dígito do número 1962. Valores posicionais 103 102 101 100 ↓ ↓ ↓ ↓ Dígitos do número 1 9 6 2 MSD LSD Figura 1.2. Valores posicionais do número 1962. Generalizando o que foi explicado anteriormente, num sistema numérico cuja base é b, um número positivo N pode ser decomposto numa soma de termos cons- tituídos do produto do dígito pelo seu valor posicional: N = dn x b n + dn – 1 x b n – 1 + ... + d1 x b 1 + d0 x b 0 + d–1 x b –1 + d-2 x b –2 + ... Onde: • d representa o dígito; • n representa a posição; • b representa a respectiva base. Observação: a posição zero do número, que é representada por b0, está à es- querda da vírgula. À direita da vírgula estão todos os dígitos fracionários que pos- suem expoentes negativos. Exemplo de número fracionário: 4368,75 = 4 x 103 + 3 x 102 + 6 x 101 + 8 x 100 + 7 x 10–1 + 5 x 10–2 eLetrÔnica digitaL 27 1.4. Sistemas de números e bases numéricas 1.4.1. Sistema de numeração decimal O sistema de numeração decimal utiliza como base dez algarismos para a sua codificação: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Com esses dez algarismos, é possível representar qualquer grandeza numérica, combinando-os e alterando as posições que ocupam, a saber: • números que representam as unidades: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9; • números que representam as dezenas: 10, 20, 30, ..., 90; • números que representam as centenas: 100, 200, 300, ..., 900. Assim, tomando como exemplo o número 472, temos: Centenas Dezenas Unidades ↓ ↓ ↓ 4 7 2 4 x 100 7 x 10 2 x 1 ↓ ↓ ↓ 400 70 2 ↓ ↓ ↓ 400 + 70 + 2 = 472 Uma maneira mais usual de representar o número 472 é através da potência de base dez, que indica o valor da posição do número. Centenas Dezenas Unidades ↓ ↓ ↓ 4 7 2 4 x 100 7 x 10 2 x 1 ↓ ↓ ↓ 4 x 102 + 7 x 101 + 2 x 100 = 472 28 SiStemaS de numeração e códigoS 1.4.2. Sistema de numeração binário O sistema de numeração binário utiliza como base apenas dois algarismos paraa sua codificação: 0 e 1. Nesse sistema, qualquer número positivo N é constituído apenas por dígitos ze- ros e uns, que a partir de seu valor posicional definem uma quantidade. Essa mesma quantidade pode ser expressa no sistema decimal pela decomposição desses dígitos em sucessivas somas de produtos, compostos do valor do dígito (d) multiplicado pela base 2 elevada à posição do dígito. Observe a representação: N2 = dn x 2 n + d n-1 x 2 n-1 + ... + d 1 x 2 1 + d 0 x 2 0 + d -1 x 2 -1 + d -2 x 2 -2 + ... N10 A seguir, mostramos a representação de um número positivo na base 2 e a re- presentação de sua quantidade na base 10, por meio da decomposição do núme- ro. Observe que os índices 2 e 10, após a representação dos números, indicam a base numérica em que estamos trabalhando. O mesmo vale para as outras bases. 1101102 = 1 x 2 5 + 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20 ↓ ↓ ↓ ↓ ↓ ↓ 32 + 16 + 0 + 4 + 2 + 0 = 5410 Já a representação de um número binário fracionário na base 2 segue o modelo: 1110,112 = 1 x 2 3 + 1 x 22 + 1 x 21 + 0 x 20 + 1 x 2-1 + 1 x 2-2 ↓ ↓ ↓ ↓ ↓ ↓ 8 + 4 + 2 + 0 + 0,5 + 0,25 = 14,7510 Parte inteira Parte fracionária eLetrÔnica digitaL 29 1.4.3. Sistema de numeração hexadecimal O sistema de numeração hexadecimal utiliza como base para a sua codificação dezesseis símbolos formados por dez algarismos e seis letras: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F, e as letras A, B, C, D, E e F representam, respectivamente, os valores 10, 11, 12, 13, 14 e 15 da base decimal. Nesse sistema, qualquer número positivo N é constituído pelo agrupamen- to dos dezesseis símbolos, que a partir de seu valor posicional definem uma quantidade. Essa mesma quantidade pode ser expressa no sistema decimal pela decomposição desses dígitos em sucessivas somas de produtos, compostos do valor do dígito (d) multiplicado pela base 16 elevada à posição do dígito. Ob- serve a representação: N16 = dn x 16 n + dn-1 x 16 n-1 + ... + d1 x 16 1 + d0 x 16 0 + d-1 x 16 -1 + d-2 x 16 -2 + ... N10 A seguir, mostramos a representação de um número positivo na base 16 e a re- presentação de sua quantidade na base 10 por meio da decomposição do número. FA916 = 15 x 16 2 + 10 x 161 + 9 x 160 ↓ ↓ ↓ 15 x 256 + 10 x 16 + 9 x 1 ↓ ↓ ↓ 3840 + 160 + 9 = 400910 30 SiStemaS de numeração e códigoS 1.5. Conversão de base 1.5.1. Conversão de uma base qualquer para a base 10 Como vimos no item anterior, para converter um número representado em uma base qualquer (b) para a base 10, aplica-se a decomposição numérica (soma de termos com seus respectivos pesos), conforme a expressão a seguir: N10 = dn x b n + dn – 1 x b n–1 + ... + d1 x b 1 + d0 x b 0 + d–1 x b –1 + d–2 x b –2 + ... Uma regra prática para converter um número inteiro positivo N representado numa base qualquer b para a base 10 consiste em aplicar o algoritmo dado a seguir: 1. Inicie pelo dígito mais significativo (dígito da esquerda). 2. Multiplique o valor do dígito pela base. 3. Some o resultado ao dígito posicionado à sua esquerda, obtendo um subtotal. 4. Repita os passos 2 e 3, multiplique os subtotais calculados pela base e some ao dígito posicionado à sua esquerda até atingir o dígito menos significativo. Primeiro exemplo: conversão do número 1B216, representado na base hexade- cimal, para a base decimal. 1B216 = (?)10 1o passo: 1 x 16 +11 (B) = 16 + 11 = 27 2o passo: 27 x 16 + 2 = 432 + 2 = 43410 Portanto, o resultado da conversão de 1B216 para decimal é 43410. Segundo exemplo: conversão do número 1101002, representado na base biná- ria, para a base decimal. 1101002 = (?)10 1o passo: 1 x 2 + 1 = 3 2o passo: 3 x 2 + 0 = 6 3o passo: 6 x 2 + 1 = 13 4o passo: 13 x 2 + 0 = 26 5o passo: 26 x 2 + 0 = 5210 Portanto, o resultado da conversão de 1101002 para decimal é 5210. eLetrÔnica digitaL 31 1.5.2. Conversão da base 10 para uma base qualquer 1.5.2.1. Números inteiros Divide-se sucessivamente o número representado na base 10 pela base dese- jada (b), até que o quociente seja igual a zero. O número desejado será formado pela composição dos restos das divisões, lidos na ordem inversa da sua obtenção. Primeiro exemplo: conversão do número 2710 representado na base 10 para a base binária. Segundo exemplo: conversão do número 1810 representado na base 10 para a base hexadecimal. 1.5.2.2. Números fracionários Se o número decimal for fracionário, a representação do número na base 2 será obtida realizando-se multiplicações sucessivas do número decimal por 2. O processo é encerrado quando obtivermos a precisão desejada ou a representação exata da fração (parte fracionária igual a zero). Os dígitos que devem ser conside- 32 SiStemaS de numeração e códigoS rados são os à esquerda da vírgula, após a realização da multiplicação do número decimal por 2. Primeiro exemplo: conversão de um número fracionário com parte inteira nula. 0,312510 = (?)2 0,3125 x 2 0,6250 x 2 1,2500 x 2 0,5000 x 2 1,0000 O resultado da conversão de 0,312510 é 0,01012. Para verificar se o resultado da conversão obtida está correto, basta aplicar a decomposição numérica da base 2 para a base decimal, como segue: 0 x 2–1 + 1 x 2–2 + 0 x 2–3 + 1 x 2–4 = 0 + 0,25 + 0 + 0,0625 = 0,312510 Segundo exemplo: conversão de um número fracionário com parte inteira di- ferente de zero. Neste caso devem ser feitas as duas conversões, da parte inteira e da parte fracionária. O resultado da conversão de 21,62510 é 10101,1012. eLetrÔnica digitaL 33 Para verificar se o resultado da conversão está correto, basta aplicar a represen- tação numérica da base 2 para a base decimal, como segue: 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2–1 + 0 x 2–2 + 1 x 2–3 = = 16 + 0 + 4 + 0 + 1 + 0,5 + 0 + 0,125 = = 21,62510 1.6. Conversão da base 2 para a base 16 A conversão de um número binário para a base hexadecimal é realizada atra- vés da associação dos dígitos binários de quatro em quatro, seguindo a ordem da direita para a esquerda. Primeiro exemplo: mostra a conversão do número da base 2 para a base 16. 110101100111101101012 = (?)16 O resultado da conversão do número 110101100111101101012 é D67B516. Segundo exemplo: mostra a conversão do número da base 2 para a base 16. 101100011110102 = (?)16 O resultado da conversão do número 101100011110102 é 2C7A16. 34 SiStemaS de numeração e códigoS 1.7. Conversão da base 16 para a base 2 A conversão de um número hexadecimal para a base 2 é obtida através da re- presentação de cada dígito hexadecimal especificado pelo número binário corres- pondente, escrito por quatro bits (nibble). Exemplo: mostra a conversão do número da base 16 para a base 2. 2BC16 = (?)2 O resultado da conversão do número 2BC16 é 0010101111002. Mas também pode ser escrito sem os zeros à esquerda: 10101111002. 1.8. Decimal codificado em binário (BCD) Algumas máquinas binárias representam números decimais em códigos em vez de representá-los diretamente em binário. Um desses códigos é o decimal codifi- cado em binário (BCD – binary coded decimal). Cada dígito decimal é representado em BCD por quatro bits (nibble), conforme o sistema de pesos 8, 4, 2 e 1. O exemplo a seguir mostra a conversão do número 192610 em BCD. O resultado da conversão do número 192610 é 0001100100100110BCD. Observe que são acrescentados zeros nas posições mais significativas para ga- rantir que cada dígito seja representado por quatro bits. A conversão de BCD para decimal também é fácil. Começando do bit menos significativo do número BCD e movendo-se para a esquerda, faz-se o agrupamento eLetrÔnica digitaL 35 em conjuntos de quatro bits. Depois, converte-se cada conjunto no dígito decimal correspondente. O exemplo a seguir mostra a conversão do número 111010100110110BCD em número decimal. O resultado da conversão do número 0111010100110110BCD é 753610. Note que, usando quatro bits, podemos contar de 0 a 15. Os seis números após o número 9 não são números válidos para BCD,porque não podem ser converti- dos em um único dígito decimal. Deve-se tomar cuidado para que esses números não sejam utilizados no sistema BCD. Por exemplo, 1010 não é um número BCD válido, pois não pode ser convertido em um único dígito decimal. A Tabela 1.2 mostra os dez números válidos de quatro bits que são usados em números BCD e os seis números inválidos de quatro bits que não são usados em números BCD, pois as suas conversões para decimal excedem o valor do dígito decimal 9. Tabela 1.2. Números BCD válidos e inválidos Números BCD válidos Números BCD inválidos 0000 1010 0001 1011 0010 1100 0011 1101 0100 1110 0101 1111 0110 0111 1000 1001 36 SiStemaS de numeração e códigoS 1.9. Aritmética binária Os sistemas digitais representam grandezas e informações utilizando o siste- ma binário. Por esse motivo, é interessante que todos os cálculos sejam realizados utilizando-se a base 2. Neste tópico, serão mostrados alguns procedimentos para realizar as operações aritméticas básicas no sistema binário, como adição, subtração, multiplicação, di- visão, subtração por complemento de 1 e subtração por complemento de 2. 1.9.1. Adição A adição binária ocorre da mesma maneira que a adição decimal: somamos bit a bit partindo dos menos significativos e terminando nos mais significativos. O resul- tado da soma de dois ou mais bits sempre deve ser zero ou um; quando o valor for superior a um, um bit identificado como vai um – ou em inglês, carry – é gerado. Isso é semelhante à soma de dois valores decimais, 5 + 7, por exemplo. O resultado não pode ser representado em um único dígito, dessa forma, teremos 2 na posição da unidade e um vai um enviado para posição da dezena, o que resultará em 12. A operação de adição binária pode ser representada na Tabela 1.3, que mostra a soma de dois bits (A e B) e um possível bit vai um fruto de uma adição anterior (CIN). O resultado é expresso pelo bit de soma (S) e um possível bit vai um (COUT). Tabela 1.3. Operação de adição binária Bits de entrada da operação de adição Bits de saída da operação A B CIN S COUT 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 eLetrÔnica digitaL 37 Primeiro exemplo: mostra a adição de dois valores sem a presença do bit vai um. 10002 + 1012 = (?)2 O resultado da adição é 11012. Segundo exemplo: mostra a adição de dois valores com a presença do bit vai um. 11002 + 11012 = (?)2 O resultado da adição é 110012. 1.9.2. Subtração A subtração binária ocorre da mesma maneira que a subtração decimal: subtraí- mos bit a bit partindo dos menos significativos e terminando nos mais significativos. O resultado da subtração de dois ou mais bits sempre deve ser zero ou um; quando o valor for menor que zero, um bit identificado como empresta um ou, em inglês, borrow, é gerado. Isso é semelhante à subtração de dois valores decimais, 25 – 7, por exemplo. O 7 não pode ser subtraído do 5, dessa forma o dígito seguinte empresta um para que a subtração seja possível, teremos 10 + 5, que subtraindo 7 resulta em 8. Como restou um no segundo dígito do minuendo, o resultado da operação será 18. Assim é possível perceber que, sempre que um dígito toma um emprestado (BIN), o dígito seguinte perde um (BOUT). Em decimal, a operação de empresta um tem peso de uma dezena (1010), já em binário tem peso de 2 (102). 38 SiStemaS de numeração e códigoS A operação de subtração binária pode ser representada na Tabela 1.4. Ela mos- tra a subtração de dois bits (A e B) e um possível bit empresta um fruto de uma subtração anterior (BOUT). O resultado é expresso pelo bit de diferença (D) e um possível bit empresta um (BIN), que será necessário sempre que (A – B – BOUT) < 0. Tabela 1.4. Operação de subtração binária Bits de entrada da operação de subtração Bits de saída da operação A B BOUT D BIN 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 Primeiro exemplo: mostra a subtração de dois valores sem a presença do bit empresta um. 11012 – 1012 = (?)2 O resultado da subtração é 10002. eLetrÔnica digitaL 39 Segundo exemplo: mostra a subtração de dois valores com a presença do bit empresta um. 11102 - 10112 = (?)2 O resultado da subtração é 112. 1.9.3. Multiplicação A multiplicação binária, assim como a adição e a subtração, segue o mesmo molde da operação realizada com números na base decimal. A grande facilidade aqui é que a multiplicação de um bit por outro sempre resulta em zero ou um. Cada bit do multiplicador é multiplicado pelo multiplicando, e os resultados são sobrepostos, sempre deslocando um bit para a esquerda. Finalmente, realizam-se somas sucessivas. O exemplo a seguir mostra a operação de multiplicação binária. 11002 x 10102 = (?)2 40 SiStemaS de numeração e códigoS 1.9.4. Divisão Uma das técnicas utilizadas para a divisão binária é a subtração sucessiva do di- videndo pelo divisor. A cada subtração, incrementa-se uma unidade no quociente. Essa operação é realizada enquanto o dividendo for maior ou igual ao divisor. O resto da operação é identificado como o resultado da última subtração realizada. Primeiro exemplo: mostra a divisão de dois valores com resto igual a zero. 10002 ÷ 102 = (?)2 Foram realizadas quatro subtrações sucessivas, portanto o quociente é igual a quatro (1002). eLetrÔnica digitaL 41 Segundo exemplo: mostra a divisão de dois valores com resto diferente de zero. 11012 ÷ 1002 = (?)2 Foram realizadas três subtrações sucessivas, portanto o quociente é igual a três (112). Após isso sobrou um, esse é o resto. Observação: para números binários grandes, deve ser usada outra técnica de cálculo para a obtenção do quociente. A seguir descrevemos suas etapas: 1. Desloca-se o divisor para a esquerda até se alinhar com o bit mais significa- tivo do dividendo. 2. O número de posições deslocadas será o valor parcial do quociente, em po- tência de dois (2núm. deslocamentos). 3. Realiza-se a operação de subtração do dividendo pelo divisor deslocado. 4. Do resultado obtido, será subtraído o divisor novamente, alinhado com o bit mais significativo desse resultado. 5. Novamente o número de posições deslocadas do divisor será o valor parcial do quociente, em potência de dois (2núm. deslocamentos). 6. O processo se repete até zerar a diferença. 7. O valor do quociente final será a somatória dos quocientes parciais obtidos em cada subtração. Observe a aplicação dessa técnica no exemplo a seguir. 42 SiStemaS de numeração e códigoS 110100102 ÷ 1012 = 21010 ÷ 510 Foram realizadas três subtrações com deslocamentos de 5, 3 e 1 dígito, que re- presentaram os seguintes valores parciais do quociente: 25, 23 e 21; com base na soma deles, obtivemos o quociente final igual a 4210 ou 1010102 com resto igual a zero. No capítulo 4 veremos outras técnicas para realização de operações matemáti- cas em binário. Nele aprenderemos como representar números com sinal (positi- vos e negativos) em binário e vamos conhecer circuitos digitais capazes de realizar operações matemáticas. Exercícios propostos 1. Converta os números fornecidos na respectiva base para a base indicada: a) 1101112 = (?)10 b) 110101112 = (?)10 c) 29110 = (?)2 d) 10,6910 = (?)2 e) A6F516 = (?)10 f) FFFF16 = (?)10 g) 3276810 = (?)16 h) 110010012 = (?)16 i) 111100000011112 = (?)16 j) C3A716 = (?)2 eLetrÔnica digitaL 43 2. Converta os números decimais em BCD. a) 390610 b) 543710 3. Converta os números BCD em número decimal. a) 11010010011BCD b) 10011100001110100BCD 4. Realize as seguintes adições em binário. a) 111102 + 11002 b) 10112 + 1012 + 10012 5. Execute as seguintes subtrações em binário. a) 100112 – 10012 b) 10110102 – 100012 6. Execute as seguintes multiplicações em binário. a) 110012 x 100012 b) 1012 x 110002 7. Execute as seguintes divisões em binário e apresente seus quocientes e restos. a) 100102 ÷ 1102 b) 101002 ÷ 112 2. INTRODUÇÃO À LÓGICA DIGITAL, PORTAS E CIRCUITOS LÓGICOS 2.1. Introdução à lógicadigital Ao iniciar o estudo deste capítulo, presume-se que já está claro o que é uma base numérica e como representar grandezas utilizando a base binária, na qual os valores são representados exclusivamente por zeros e uns (exemplo: 510 → 1012). A palavra “lógica” faz parte do nosso vocabulário e a utilizamos principalmen- te quando tentamos entender algo ou temos algum problema que parece não ter solução. Aí vem aquela frase clássica: “Isso não tem lógica!”. Mas, afinal, o que é lógica? A lógica foi criada por Aristóteles, discípulo de Platão que viveu em Atenas mais de três séculos antes de Cristo. Ela é a ciência que descreve as leis que regem o pensamento a fim de permiti-lo descobrir algo de novo, sem que se possa existir uma possibilidade de erro, pois somente a verdade absoluta é aceita. Imagine a seguinte situação: alguém lhe pede uma ajuda para montar uma ár- vore de Natal. Assim que você abre a caixa da árvore, depara com diferentes par- tes, todas separadas e agrupadas em conjuntos de partes similares (bolas, galhos, laços, base, fitas). A sua experiência anterior vai guiá-lo na montagem, correto? É claro. Você provavelmente montaria seguindo esta sequência: 1. base; 2. estrutura principal; 3. galhos; 4. bolas; 5. laços e fitas. ELETRÔNICA DIGITAL 45 Mas e se você nunca tivesse montado uma árvore de Natal, será que a sequência seria a mesma? Provavelmente sim. Você usaria experiências diferentes, porém parecidas, como um guia para rea- lizar a tarefa. Isso é usar a lógica. Quando colocamos nossa cabeça para funcionar corretamente, estamos trabalhando com lógica. Com isso, podemos concluir duas coisas: 1. lógica faz parte de sua vida; 2. você sabe como trabalhar com ela. O que vamos fazer agora é apresentar uma forma matemática e gráfica para representar o uso da lógica associada à eletrônica digital. Para isso, não podemos deixar de citar um importante matemático britânico chamado George Boole, que viveu no século XIX e é conhecido como criador de um novo tipo de álgebra, hoje conhecida como álgebra booliana. Ela deriva de seu livro publicado em 1857, Uma investigação das leis do pensamento. A álgebra booliana tem como base três operações matemáticas: E (AND), OU (OR) e NÃO (NOT). Cada uma dessas operações é associada a uma representação gráfica, conhecida como porta lógica. Antes de conhecermos cada uma dessas operações e suas representações, va- mos entender melhor qual o papel dos números binários na álgebra booliana e em circuitos digitais. 2.2. Constantes e variáveis boolianas A álgebra booliana, diferentemente da álgebra convencional, trabalha apenas com os algarismos 0 e 1. Qualquer expressão algébrica booliana é baseada em valores iguais a 0 ou 1 e tem como resultado os mesmos valores. Ou seja, nada é maior que 1 ou menor que 0. Uma conclusão rápida poderia ser que uma álgebra tão restrita só pode ser muito fraca ou muito fácil. Realmente, esperamos que a conclusão seja que ela é realmente fácil de aprender, porém é poderosíssima. Como dito anteriormente, a álgebra booliana é baseada em zeros e uns que po- dem e devem ser associados a ideias opostas. Veja a Tabela 2.1. 46 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Tabela 2.1. Ideias associadas ao 0 e ao 1 0 1 não sim desligado ligado noite dia escuro claro baixo alto off on aberto fechado Considerando esse conceito, uma janela aberta pode ser representada como: Janela = 0. E uma lâmpada acesa como: Lâmpada = 1. Avançando um pouco mais, se agora são 8 horas da manhã, é possível afirmar que: Agora = 1. Quando chegarmos às 8 horas da noite, teremos: Agora = 0. Quando trabalhamos com circuitos digitais, nos baseamos em sinais conheci- dos, chamados de entradas do circuito, para determinar um valor desconhecido, chamado de saída do circuito. Variável booliana é todo sinal que representa uma entrada ou uma saída de um circuito lógico. Quando esse sinal não varia ao longo do tempo, pode ser identifi- cado como uma constante booliana. A representação dos níveis de tensão aplicados nas entradas e presentes nas saídas é conhecida como nível lógico. Ou seja, cada variável booliana apresenta um nível lógico. Comumente, dizemos nível lógico 1 para uma tensão alta (exemplo: 5 V) e nível lógico 0 para uma tensão baixa (exemplo: 0 V). Os circuitos digitais trabalham com tensões realmente baixas, na ordem de 0 V a 15 V no máximo. Atualmente, existem circuitos que trabalham com ten- sões menores que 1 V, em que, por exemplo, entendemos como nível lógico 0 a tensão de 0 V e nível lógico 1 uma tensão de aproximadamente 1 V. ELETRÔNICA DIGITAL 47 2.3. Representação de uma porta lógica e tabela-verdade Uma porta lógica é representada graficamente por um bloco, onde de um lado estão suas entradas e do outro sua saída única. O formato do bloco indica sua fun- ção, ou seja, qual tipo de operação matemática (lógica) ela executa. A Figura 2.1 mostra a representação genérica de uma porta lógica. Figura 2.1. porta lógica genérica. Na Figura 2.1 podemos identificar três variáveis boolianas: A, B e S. Se conhecer- mos todos os possíveis valores para as entradas e seus respectivos valores de saída, saberemos qual a função da porta lógica analisada (esse conceito será expandido para circuitos ao longo do capítulo). A representação das entradas versus saída é conhecida como tabela-verdade ou tabela da verdade. Esse nome decorre do fato de nela estarem contidas todas as possíveis combinações de entradas e seus respectivos valores de saída. A Tabela 2.2 exemplifica o comportamento de portas lógicas hipotéticas com duas, três e quatro entradas. 48 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Tabela 2.2. Tabela-verdade (a) duas entradas, (b) três entradas e (c) quatro entradas Entradas Saída Entradas Saída Entradas Saída A B S A B C S A B C D S 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 2 1 0 1 2 0 1 0 1 2 0 0 1 0 1 3 1 1 1 3 0 1 1 0 3 0 0 1 1 0 4 1 0 0 0 4 0 1 0 0 0 (a) 5 1 0 1 1 5 0 1 0 1 0 6 1 1 0 1 6 0 1 1 0 1 7 1 1 1 0 7 0 1 1 1 1 8 1 0 0 0 1 (b) 9 1 0 0 1 1 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 1 (c) A tabela-verdade deve ser interpretada linha a linha, entradas versus saída. Perceba que, para cada um dos casos apresentados, foram realizadas todas as possíveis combinações de entradas. Essas combinações são apresentadas na forma crescente. Considera-se que as entradas compõem um número binário que sem- pre deve ser iniciado em zero e incrementado de um em um até atingir seu valor máximo. No caso da Tabela 2.2(a), inicia-se em 002, passando por 012, 102 e, por fim, 112 (máximo valor = 310). A quantidade de combinações em uma tabela-verdade é dada pela equação: Q = 2n Onde: • Q é a quantidade de combinações (linhas); • n é o número de variáveis de entrada. ELETRÔNICA DIGITAL 49 Como treino, verifique qual será o nível lógico da saída da tabela com três en- tradas quando: A = 1, B = 0 e C = 1. Repita a análise para a tabela com quatro entradas quando: A = 0, B = 1, C = 0 e D = 1. Se suas respostas foram 1 e 0, respectivamente, você já está preparado para es- tudar as portas lógicas reais. 2.4. Função e porta lógica OR (OU) A função lógica OR, ou, em português, OU, trabalha com duas ou mais entra- das e apresenta nível lógico 1 na saída sempre que uma ou mais entradas assumir nível lógico 1. Ela descreve situações nas quais existe mais de uma alternativa para alcançarmos um objetivo. Imagine a seguinte situação: você vai à praia em todos os feriados ou durante suas férias. Se montarmos uma tabela que descreva esse comportamento, teremos (Tabela 2.3): Tabela 2.3. Idas à praia Feriado Férias Praia não não não não sim sim sim não sim sim sim sim Perceba que basta uma das condições ser verdadeira para que sua ida para a praia esteja garantida. Outra maneira de representar a função lógica OR é através de um circuito elé- trico com duas chaves em paralelopara o acionamento de uma lâmpada. 50 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos A Figura 2.2 representa esse circuito. Basta uma das chaves ser fechada para que a lâmpada se acenda. Dessa forma, ficamos com a tabela-verdade mostrada na Tabela 2.4. Figura 2.2. Lógica oR com chaves. Tabela 2.4. Tabela-verdade da função OR com chaves CH1 CH2 Lâmpada aberta aberta apagada aberta fechada acesa fechada aberta acesa fechada fechada acesa A expressão algébrica booliana que representa a lógica OR é: S = A + B Neste caso, o sinal + não representa a operação de adição e sim a operação OR. A expressão é lida como: “S é igual a A or/ou B”. Lembre-se de que, na álgebra booliana, trabalhamos apenas com os algarismos 0 e 1. Portanto, 1 + 1 = 1. Lê-se: “um or/ou um é igual a um”. Os símbolos aceitos para porta lógica OR e a sua tabela-verdade estão repre- sentados a seguir. ELETRÔNICA DIGITAL 51 Figura 2.3. (a) símbolo de uma porta oR de duas entradas; (b) símbolo de uma porta oR de duas entradas de acordo com a norma IEEE std 91-1984. Neste livro, utilizaremos a primeira simbologia, encontrada na maioria dos do- cumentos técnicos e dos programas de circuitos eletrônicos. Porém, é importante conhecer as duas representações. Para isso, na sequência deste capítulo, sempre que apresentarmos uma nova simbologia de porta lógica daremos as duas for- mas, contemplando a mais encontrada (item (a) da Figura 2.3) e a da norma do Institute of Electrical and Electronics Engineers (IEEE), largamente reconhecida na comunidade internacional diretamente envolvida com as tecnologias elétrica e eletrônica (item (b) da Figura 2.3). Tabela 2.5. Tabela-verdade da função OR com duas entradas A B S = A+B 0 0 0 0 1 1 1 0 1 1 1 1 A representação anterior trata de uma porta lógica com duas entradas, mas co- mumente utilizaremos portas com três ou até quatro entradas. Antes de passarmos para o próximo item, vamos analisar as expressões algé- bricas boolianas a seguir: X = R + S + T Onde: • X representa a variável booliana de saída de uma porta lógica com três en- tradas; • R, S e T representam as variáveis boolianas de entrada desta porta lógica; 52 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos • + descreve o tipo de operação booliana (OR). Lê-se: “X é igual a R or S or T” ou, ainda, “X é igual a R ou S ou T”. Figura 2.4. símbolo de uma porta oR de três entradas. Y = 1 + 0 + 1 Onde: • Y representa a variável booliana de saída de uma porta lógica com três en- tradas; • 1, 0 e 1 representam os níveis lógicos das entradas desta porta lógica; • + descreve o tipo de operação booliana (OR). Lê-se: “Y é igual a um or zero or um” ou, ainda, “Y é igual a um ou zero ou um”. Logo, Y vale 1. Figura 2.5. símbolo de uma porta oR de três entradas e expressão de saída. 2.5. Função e porta lógica AND (E) A função lógica AND, ou, em português, E, trabalha com duas ou mais entra- das e apresenta nível lógico 1 na saída sempre que todas as entradas assumirem nível lógico 1. Ela descreve situações nas quais existe obrigatoriedade de ações simultâneas para alcançarmos um objetivo. Imagine a seguinte situação: você vai à praia em todos os feriados em que faz sol. Se montarmos uma tabela que descreva esse comportamento, teremos (Tabela 2.6): ELETRÔNICA DIGITAL 53 Tabela 2.6. Idas à praia Feriado Sol Praia não não não não sim não sim não não sim sim sim Perceba que as duas condições devem ser verdadeiras para que sua ida para a praia esteja garantida. Outra maneira de representar a função lógica AND é através de um circuito elétrico com duas chaves em série para acionamento de uma lâmpada. A Figura 2.6 representa esse circuito. É obrigatório que as duas chaves sejam fechadas para que a lâmpada se acenda. Dessa forma, ficamos com a tabela-verda- de mostrada na Tabela 2.7. Figura 2.6. Lógica AND com chaves. Tabela 2.7. Tabela-verdade da função AND com chaves CH1 CH2 Lâmpada aberta aberta apagada aberta fechada apagada fechada aberta apagada fechada fechada acesa A expressão algébrica booliana que representa a lógica AND é: S = A · B 54 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Neste caso, o sinal · representa a operação AND. Porém, é comum representar a função AND sem o sinal: S = AB A expressão é lida como: “S é igual a A and/e B”. Os símbolos aceitos para porta lógica AND e a sua tabela-verdade são repre- sentados a seguir. Figura 2.7. (a) símbolo de uma porta AND de duas entradas; (b) símbolo de uma porta AND de duas entradas de acordo com a norma IEEE std 91-1984. Tabela 2.8. Tabela-verdade da função AND com duas entradas A B S = AB 0 0 0 0 1 0 1 0 0 1 1 1 A representação anterior trata de uma porta lógica com duas entradas, mas, assim como na lógica OR, é comum utilizarmos portas com três ou até quatro entradas. Antes de passarmos para o próximo item, vamos analisar as expressões algé- bricas boolianas a seguir: X = RST Onde: • X representa a variável booliana de saída de uma porta lógica com três en- tradas; • R, S e T representam as variáveis boolianas de entrada desta porta lógica; • a ausência de sinal descreve o tipo de operação booliana (AND). ELETRÔNICA DIGITAL 55 Lê-se: “X é igual a R and S and T” ou, ainda, “X é igual a R e S e T”. Figura 2.8. símbolo de uma porta AND de três entradas. Y = 1 · 0 · 1 Onde: • Y representa a variável booliana de saída de uma porta lógica com três en- tradas; • 1, 0 e 1 representam os níveis lógicos das entradas desta porta lógica; • · descreve o tipo de operação booliana (AND). Lê-se: “Y é igual a um and zero and um” ou, ainda, “Y é igual a um e zero e um”. Logo, Y vale 0. Figura 2.9. símbolo de uma porta AND de três entradas e expressão de saída. 2.6. Função e porta lógica NOT (NÃO) A função lógica NOT, também conhecida como inversora ou inversor, trabalha com apenas uma entrada e apresenta nível lógico na saída oposto ao nível presente na entrada. Ela descreve situações de contrariedade. Com certeza você já falou algo do tipo: “É só chegar o feriado que o Sol vai embora”. Se montarmos uma tabela que descreva este comportamento, teremos (Tabela 2.9): 56 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Tabela 2.9. Feriado e Sol Feriado Sol não sim sim não Perceba que o feriado e o Sol nunca estão presentes ao mesmo tempo, ou me- lhor, eles são opostos (complementares). Outras maneiras de representar a função lógica NOT são através de um circuito elétrico com uma única chave ou de um transistor bipolar funcionando como chave. A Figura 2.10 representa esses circuitos. Note que a entrada é sempre oposta à saída. Dessa forma, ficamos com as tabelas-verdade mostradas na Tabela 2.10. Figura 2.10. (a) Lógica NoT com chave; (b) lógica NoT com transistor bipolar. Tabela 2.10. (a) Tabela-verdade da função NOT com chave; (b) tabela-verdade da função NOT com transistor bipolar, considerando-o ideal, funcionando no corte ou na saturação CH Lâmpada In Out aberta acesa 0 V 5 V fechada apagada 5 V 0 V (a) (b) A expressão algébrica booliana que representa a lógica NOT é: S = A ELETRÔNICA DIGITAL 57 A barra (─) sobre a variável booliana A representa a função de inversão. Isso quer dizer que S será sempre o inverso de A. A expressão pode ser lida das seguintes formas: “S é igual ao inverso de A”; “S é igual ao complemento de A”; “S é igual a A negado”; “S é igual a A barrado”. Outra possibilidade para representação da lógica NOT é: S = A’ O apóstrofo (’) após a variável booliana também representa inversão. Os símbolos aceitos para porta lógica NOT e a sua tabela-verdade são repre- sentados a seguir. Figura 2.11. (a) símbolo de uma porta NoT; (b) símbolo de uma porta NoT de acordo com a norma IEEE std 91-1984. A Figura 2.11(a) apresenta um círculo na saída S que se chama bolha e dá a ideia de inversão de sinal. O mesmo ocorre na Figura 2.11(b), em que o triângulo na saída representa a mesma ideia. Tabela 2.11. Tabela-verdade da funçãoNOT A S 0 1 1 0 Para que fique bem clara a ideia de inversão de sinal, é válido dizer que: 0 = 1 e 1 = 0 58 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Antes de passarmos para o próximo item, vamos analisar as expressões algé- bricas boolianas a seguir: X = R Onde: • X representa a variável booliana de saída de uma porta lógica com uma entrada; • R representa a variável booliana de entrada desta porta lógica; • ─ descreve o tipo de operação booliana (NOT). Lê-se: “X é igual a R barrado”. Figura 2.12. símbolo de uma porta NoT. Y = 1 Onde: • Y representa a variável booliana de saída de uma porta lógica com uma entrada; • 1 representa o nível lógico da entrada desta porta lógica; • ─ descreve o tipo de operação booliana (NOT). Lê-se: “Y é igual a um barrado”. Logo, Y vale 0. Figura 2.13. símbolo de uma porta NoT e expressão de saída. ELETRÔNICA DIGITAL 59 2.7. Diagrama de tempo Outra forma de analisarmos o comportamento de uma porta lógica e circuitos lógicos é através de uma ferramenta conhecida como diagrama de tempo. Nele, o comportamento de entradas e saídas é analisado ao longo do tempo. Linhas horizontais sobrepostas são criadas para representação de cada um dos sinais digitais. Geralmente, as saídas são os últimos sinais, aqueles que são deter- minados com base nos anteriores. Analisemos o exemplo a seguir: Figura 2.14. Diagrama de tempo de uma porta lógica com duas entradas. À esquerda do diagrama são identificadas as entradas (A e B) e a saída (S) de nossa porta lógica. Em seguida, para cada uma delas são identificados os níveis lógicos 0 e 1. As linhas grossas descrevem os níveis lógicos de cada sinal ao longo do tempo. Note que as entradas não respeitam nenhum padrão de comportamento. Para cada variação de nível lógico nas entradas foi traçada uma linha vertical que termina em uma identificação de tempo (t). Além disso, os intervalos em que a saída esteve em nível lógico 0 e 1 são apresentados em cores diferentes. Esses ar- tifícios facilitam a análise da lógica de funcionamento da porta em questão. Por último, a seta horizontal nos mostra o sentido do tempo. Vamos à análise do diagrama para identificar qual porta lógica está por trás dele. Observa-se nos intervalos t0→t1 e t4→t5 que, sempre que a saída S vale 0, as entradas A e B também valem 0. Nos demais intervalos, ao menos uma entrada vale 1 e a saída S é igual a 1. 60 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Pergunta-se: qual porta lógica estudada até aqui apresenta nível lógico 1 sempre que ao menos uma de suas entradas vale 1? É isso mesmo, a porta lógica OR está por trás desse diagrama de tempo. Essa breve apresentação e esse exemplo visam apenas introduzi-lo a essa fer- ramenta. Há muitos outros diagramas como esse ao longo do livro, porém nem sempre serão tão completos como ele. Essa forma de representação lógica assemelha-se bastante ao que pode ser vi- sualizado na tela de um osciloscópio durante a análise de um circuito real. Dessa forma, deve ficar claro que, em um diagrama de tempo, os elementos fundamentais são os sinais de entrada e saída com níveis lógicos bem definidos representados ao longo do tempo. As demais representações apresentadas em nosso exemplo são apenas artifícios para facilitar a análise. 2.8. Descrição de circuitos lógicos Este tópico marca o início da análise de circuitos lógicos. Mas o que são circuitos lógicos? Nada mais que circuitos formados a partir da associação de portas lógicas. Todo circuito lógico pode ser representado através de uma expressão algébrica booliana, assim como toda expressão algébrica booliana pode ser transformada em um circuito lógico. Os tópicos a seguir mostram como realizar essas transformações em detalhes. Figura 2.15. Transformação de circuito lógico em expressão algébrica booliana, e vice-versa. ELETRÔNICA DIGITAL 61 2.8.1. Expressão algébrica booliana a partir do circuito lógico Qualquer circuito lógico pode ser representado por uma expressão algébrica booliana. Para isso, analisamos uma porta lógica de cada vez, partindo das portas mais afastadas da saída e caminhando em direção a ela. A saída de uma porta intermediária do circuito serve de entrada para uma porta subsequente; dessa maneira, uma saída se torna uma entrada; isso ocorre quantas vezes for necessário. Em nossa análise, chamamos essas saídas de intermediárias e as representare- mos com a letra S seguida de um índice numérico (Si). Esse índice é iniciado em 1, sendo incrementado à medida que se aproxima da saída final do circuito (S). Observe os primeiros exemplos a seguir: Figura 2.16. Circuitos lógicos e expressões algébricas boolianas de saída. No circuito da Figura 2.16(a), tem-se uma porta NOT conectada à saída de uma porta AND. A saída da porta AND é considerada uma saída auxiliar de índice S1, ou simplesmente S1, que representa AB. S1 ao passar pela porta NOT torna-se S1, como S1 = AB, teremos S = AB . O leitor poderia pensar que o certo seria S = A ∙ B, porém essa expressão repre- sentaria a aplicação da lógica AND a A e B, ou seja, seriam os valores de entrada na porta AND. Como podemos ver, isso não é verdade. A e B se combinaram em um único nível lógico, que foi invertido ao passar pela porta NOT. Neste caso, a barra deve ser contínua e estar sobre as duas entradas. Os exemplos (b) e (c) são complementares. Em (b), S1 é saída de uma porta AND e se combina com a entrada C através de uma porta OR. A expressão algé- brica booliana provisória é S = S1 + C, e, assim que substituímos S1 por seu valor real, temos a expressão de saída: S = AB + C. No exemplo (c), a posição das portas é invertida e S1 passa a valer A + B. A ex- pressão de saída passa a ser: S = (A + B) · C. 62 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Mais uma vez, o leitor atento deve estar se perguntando: “Por que antes não tinha parênteses e agora tem?”. A explicação é baseada na regra de precedência de operações lógicas. Assim como na álgebra convencional, as operações de multiplicação e divisão são realiza- das antes da adição e da subtração. Na álgebra booliana também existe uma regra, que é apresentada na Tabela 2.12. Tabela 2.12. Precedência de operações lógicas Prioridade Operação 1a Parênteses 2a NOT 3a AND 4a OR Agora fica fácil entender que, se não tivéssemos utilizado os parênteses para re- presentar a saída do exemplo (c), ficaríamos com S = A + B · C, e a resposta estaria errada, uma vez que a regra da precedência diz que a operação AND é executada antes da operação OR. B · C seria calculado, e o resultado combinado com A atra- vés de uma porta OR. Os parênteses em A + B priorizam a operação OR e só então o resultado é combinado com C através de uma porta AND. Logo: (A + B) · C ≠ A + B · C. Para que não fique dúvida sobre o exemplo, a tabela 2.13 compara o resultado das duas expressões algébricas. ELETRÔNICA DIGITAL 63 Tabela 2.13. Aplicação da regra de precedência em operações boolianas A B C S = (A + B)C S = A + BC 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 Vamos analisar um exemplo um pouco mais sofisticado. Na Figura 2.17 temos um circuito lógico composto de cinco portas lógicas. Figura 2.17. outro exemplo de circuito lógico. Esse exemplo possui três sinais de entrada (X, Y e Z) que são combinados atra- vés de portas AND, OR e NOT até alcançarem a saída S. Na figura, não é determinada a expressão de saída em função de X, Y e Z, e sim em função das saídas intermediárias. Perceba que cada porta é tratada separadamente, no sentido da entrada do cir- cuito para a saída dele. Dessa forma, chega-se a quatro saídas intermediárias, mas isso não deve ser preocupante. A partir delas faremos o caminho de volta para chegarmos à expressão de saída. Sabemos que: S1 = X S2 = XZ S3 = S1 + Y + Z S4 = S2 S = S3S4 64 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Solução: 1o Substituição de S3 e S4 em S: S= (S1 + Y + Z) · (S2) 2o Substituição de S1 e S2 em S: S = (X + Y + Z) · (XZ) Pronto, eis a expressão algébrica booliana do circuito. Lê-se: “S é igual ao termo X barrado or Y or Z and o termo barrado X and Z”. De posse da expressão algébrica booliana de um circuito lógico, é possível de- terminar o valor de sua saída para qualquer valor presente em suas entradas. Considerando o exemplo da Figura 2.17, se X = 0, Y = 1, Z = 0, qual o valor de S? Basta substituir os níveis lógicos informados na expressão algébrica booliana do circuito e resolvê-la de acordo com a regra da precedência. Vejamos como fica a solução: 1o S = (0 + 1 + 0) · (0 · 0) 2o S = (1 + 1 + 0) · (0) Observação: neste caso, a operação AND precede a NOT em razão da barra única sobre 0 e 0. 3o S = (1) · (1) 4o S = 1 Quando é preciso realizar o levantamento do valor de S para uma série de va- lores de entrada, o método apresentado aqui é bastante útil: 1o descobre-se a expressão algébrica booliana do circuito; 2o substituem-se os valores de entrada na expressão e obtém-se o valor da saída. Pois bem, será que sempre que for necessário saber o valor da saída de um cir- cuito é preciso realizar esses dois passos? A resposta é não. É possível efetuar a substituição dos valores diretamente no circuito e calcular o valor de saída de cada porta até chegar ao valor da saída do circuito. Para exemplificar essa técnica utilizamos o mesmo circuito do exemplo ante- rior, porém agora fazendo a substituição direta. A Figura 2.18 mostra o resultado dessa técnica. ELETRÔNICA DIGITAL 65 Figura 2.18. solução por substituição direta. 2.8.2. Circuito lógico a partir da expressão algébrica booliana Neste item, seguimos o conceito oposto ao apresentado no anterior. Partindo de uma expressão algébrica booliana qualquer, chegaremos ao circuito lógico que a representa. A técnica para a construção do circuito lógico é baseada na análise da expres- são algébrica booliana seguindo a regra da precedência. De acordo com essa regra, o termo com a mais baixa prioridade é o primeiro a ser transformado em porta lógica e será responsável pela saída final do circuito. À medida que a prioridade aumenta, novas portas vão sendo criadas até chegarmos às entradas do circuito. Ou seja, caminha-se da saída em direção à entrada. Uma exceção à regra é quando há a aplicação da operação NOT em mais de uma variável simultaneamente (exemplos: AB, A + B). Neste caso, essa operação tem prioridade mais baixa que as demais operações presentes abaixo da barra sinaliza- dora de inversão e, de acordo com a técnica descrita, deverá ser realizada primeiro. Primeiro exemplo: considere a expressão a seguir: S = AB + BC + A Passo 1: identificar as operações lógicas presentes na expressão algébrica booliana. São identificadas as três operações lógicas básicas na expressão anterior. 66 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Passo 2: identificar a operação lógica com menor prioridade. Dentre elas, as de menor prioridade são as operações OR, entre AB, BC e A. Logo, utiliza-se uma porta lógica OR de três entradas para representar a saída do circuito (Figura 2.19). Figura 2.19. Circuito lógico parcial – parte 1. Passo 3: aplicar a mesma técnica para as três entradas da porta OR. • A operação com menor prioridade no termo AB é a AND entre A e B. • A única operação restante no termo BC é a AND entre B e C. • A única operação restante no termo A é a NOT de A. Estas são as novas portas agregadas ao circuito (Figura 2.20): Figura 2.20. Circuito lógico parcial – parte 2. Passo 4: aplicar a mesma técnica para a entrada B que restou. Uma porta NOT é colocada na entrada B. A Figura 2.21 mostra o resultado final. Figura 2.21. Circuito lógico final. ELETRÔNICA DIGITAL 67 Segundo exemplo: visa fixar a técnica para a construção de circuito lógico a partir da expressão algébrica booliana que segue: Ω = δ + α + αβ A saída do novo circuito é representada pela letra grega ômega maiúsculo (Ω) e as entradas pelas letras alfa (α), beta (β) e delta (δ). Passo 1: identificar as operações lógicas presentes na expressão algébrica booliana. São identificadas as três operações lógicas básicas, além da operação NOT apli- cada a mais de uma variável simultaneamente. Passo 2: identificar a operação lógica com menor prioridade. Dentre elas, a de menor prioridade é a OR entre os termos δ + α e αβ. A outra operação OR só poderá ser resolvida após a eliminação da barra de inversão que une δ e α. Dessa forma, uma porta lógica OR de duas entradas é utilizada para re- presentação da saída do circuito (Figura 2.22). Figura 2.22. Circuito lógico parcial – parte 1. Passo 3: aplicar a mesma técnica para as duas entradas da porta OR. • A operação com menor prioridade no termo δ + α é a NOT entre δ e α. • A única operação restante no termo αβ é a AND entre α e β. Estas são as novas portas agregadas ao circuito (Figura 2.23): 68 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos Figura 2.23. Circuito lógico parcial – parte 2. Passo 4: aplicar a mesma técnica para entrada da porta NOT. A operação de menor prioridade no termo δ + α é a operação OR entre δ e α. A Figura 2.24 mostra o circuito com mais uma porta OR. Figura 2.24. Circuito lógico parcial – parte 4. Passo 5: aplicar a mesma técnica para a entrada α que restou. Uma porta NOT é colocada na entrada α. A Figura 2.25 mostra o resultado final. Figura 2.25. Circuito lógico final. As duas técnicas apresentadas neste item têm como proposta aumentar a fami- liaridade com circuitos lógicos e expressões algébricas boolianas. Agora é possível perceber que ambas representam a mesma coisa, mas apenas utilizam formas di- ferentes de apresentação. No desenrolar do livro ficará mais claro quando utilizar uma ou outra. Este estudo preliminar nos habilita a estudar com maior profundidade os pró- ximos quatro itens do livro, que tratam de portas lógicas derivadas de associações entre as portas lógicas básicas. ELETRÔNICA DIGITAL 69 2.9. Portas lógicas derivadas Neste item é concluído o estudo das funções lógicas com a inclusão de mais quatro portas lógicas, chamadas NOR (NOU ou Não OU), NAND (NE ou Não E), XOR (OU Exclusivo) e XNOR (Coincidência). Todas elas são obtidas pela associação das portas lógicas básicas NOT, OR e AND. Por isso, são conhecidas como portas lógicas derivadas. 2.9.1. Função e porta lógica NOR (NOU) A função lógica NOR, ou, em português, NOU, trabalha com duas ou mais entradas e apresenta nível lógico 0 na saída sempre que uma ou mais entradas as- sumir nível lógico 1. É obtida através da conexão de uma porta lógica NOT na saída de uma porta lógica OR. Ou seja, tem comportamento contrário ao de uma porta OR. A representação da função lógica NOR também pode ser reproduzida em um circuito elétrico com duas chaves em paralelo para acionamento de uma lâmpada. A Figura 2.26 representa esse circuito. Perceba que basta uma das chaves ser fechada para que a lâmpada se apague e toda a tensão caia sobre o resistor. Dessa forma, ficamos com a tabela-verdade mostrada na Tabela 2.14. Figura 2.26. Lógica NoR com chaves. Tabela 2.14. Tabela-verdade da função NOR com chaves CH1 CH2 Lâmpada aberta aberta acesa aberta fechada apagada fechada aberta apagada fechada fechada apagada 70 INTRoDução à LóGICA DIGITAL, poRTAs E CIRCuITos LóGICos A expressão algébrica booliana que representa a lógica NOR é: S = A + B A expressão é lida como: “S é igual a A nor/nou B”. Os símbolos aceitos para uma porta lógica NOR e a sua tabela-verdade são re- presentados a seguir. Figura 2.27. (a) Construção de uma porta NoR; (b) símbolo de uma porta NoR de duas entradas; (c) símbolo de uma porta NoR de duas entradas de acordo com a norma IEEE std 91-1984. Tabela 2.15. Tabela-verdade da função NOR com duas entradas A B S = A + B 0 0 1 0 1 0 1 0 0 1 1 0 A representação anterior trata de uma porta lógica com duas entradas, mas existem portas com mais entradas. Independentemente da quantidade
Compartilhar