Title: Sistemas Digitais

Capítulo 1 - Introdução aos Sistemas Digitais e Sistemas de Numeração

Sem título CustomCSS

Introdução

Neste capítulo, você vai compreender como funcionam os sistemas digitais, por que eles são tão importantes para os computadores e a relevância do matemático Claude Shannon. Conhecerá um pouco sobre a relação dos sistemas digitais com os computadores e, para completar, aprenderá sobre os mais famosos sistemas de numeração e sobre como se dá a formação de seus números. Além de entender a diferença entre grandezas analógicas e digitais. Será uma jornada incrível! Vamos nessa?

Sem título Text

Entendendo um pouco sobre números e os sistemas digitais

Tudo começou há muito tempo, em Petoskey, Michigan, onde nasceu Claude Shannon a quem vamos nos referir como  Shannon. Ele se tornou um matemático muito respeitado, que trabalhava em um laboratório chamado Bell Labs. Em 1948, Shannon estabeleceu os conceitos que formam a base da teoria da informação. Ele deu quantidades a cada tipo de informação, chamadas de bits, que nada mais são que zeros e uns. A partir daqui já temos números, sendo eles formados e alterados a partir do que chamamos de sistemas de numeração. Assista ao vídeo abaixo para saber mais sobre a trajetória do matemático Claude Shannon.

Sem título Text

Bit, byte e palavra

O termo bit vem de uma abreviação da expressão em inglês binary digit, e geralmente é representado por dois dígitos: 0 e 1. Dentro do mundo da computação, o bit é a menor informação possível, e um conjunto deles representa informações e dados do ambiente digital.

Entendendo o bit, fica mais fácil entender o byte, que é uma abreviação de binary term. O conjunto de oito bits forma um byte. Em um sistema de computação, existem 256 combinações possíveis para um byte. E, sendo assim, dois bytes, ou 16 bits, podem representar 65.536 possíveis combinações.

A palavra binária é o número máximo que pode ser expressado por bits. No exemplo a seguir, temos uma palavra de oito bits ou um byte.

1 byte = 8 bits = 1 caractere

Tabela 1

1

0

Sem título Text

Por exemplo, para armazenar na memória de um computador a palavra “LIVRO”, será necessário ocupar cinco bytes.

E por que é importante aprender sobre isso? Bem, tudo na informática é medido em bits e bytes. Portanto, a internet da sua casa ou do seu celular é medida em bits, e os arquivos e softwares são mensurados em bytes.

A partir dessa lógica de medição, sabemos que os arquivos ou taxas de transmissão são mensurados em kilo (K), mega (M) e giga (G). O kilo é a representação de 1.000 vezes, logo um Kbit (Kb) seria igual a 1.000 bits, no sistema decimal. Porém, no sistema binário, o kilo é 210, ou seja, 1 KB é igual a 1.024 bits. Note que para kilobit (Kb) usamos o b minúsculo, já no kilobyte (KB) usamos o B maiúsculo. A mesma coisa se aplica a MB (Megabyte) e Mb (Megabit).

Continuaremos aprendendo sobre o sistema de numeração mais adiante, nesta unidade. Mas antes de passarmos para o tópico sobre grandezas analógicas e digitais, responda ao quiz abaixo.

Quiz 1

Q: Quantos bits formam um byte?
- 8 (correct)
- 4
- 12
- 16

Q: Você contratou um novo pacote de internet para seu celular. A empresa ofereceu um pacote promocional de 10 Mbps de velocidade de conexão para download. Nesse caso, a taxa de conexão seria de
- 10.000.000 bits por segundo (correct)
- 1.000.000 bits por segundo
- 1.000 bytes por segundo
- 1.024.000 bits por segundo

Sem título Text

Grandezas analógicas e digitais

Para avançar na compreensão do funcionamento da informática, é necessário considerar também os sistemas digitais. Antes disso, porém, precisamos distinguir os tipos de sistemas existentes. Como os sistemas digitais são aqueles que não são sistemas analógicos, vamos começar pelos sistemas analógicos.

Uma grandeza analógica é aquela cujos valores são contínuos ao longo do tempo. Ou seja, podem assumir diversos valores dentro de uma escala definida. Um exemplo é a temperatura da cidade onde você mora. Ela fica mais quente durante o dia e esfria mais à noite. Ao longo do dia, a temperatura varia, e usando um termômetro você observará diferentes valores. (Figura 1).

Figura 1

Expand Image

Minimize Image

Figura 1 – Gráfica de uma grandeza analógica de Floyd (2011)

Fonte: Adaptada pelo autor.

Gráfica de uma grandeza analógica de Floyd

Sem título Text

As grandezas analógicas estão ao nosso redor, como som, pressão, tempo etc. Imagine que você está em um sebo de livros e discos, cheio de relíquias, e começa a tocar uma música num toca-discos. Ela é armazenada no disco de vinil em forma de pequenas ondas. Quando a agulha do toca-discos passa por essas ondas, ela vibra, e essas vibrações são transformadas nos sons que você ouve. Nesse exemplo, as ondas do som são convertidas diretamente em um movimento físico e, depois, novamente transformadas em som. Esse é um sistema analógico, pois a música (nossa informação) é representada de forma contínua, como uma onda suave.

Figura 2

Expand Image

Minimize Image

Figura 2 - Ilustração sobre assobio enquanto elemento analógico

Fonte: Elaboração própria para este material com apoio de ferramenta de geração de imagem por IA (2026).

Ilustração sobre assobio enquanto elemento analógico

Sem título Text

Já a grandeza digital é aquela definida somente por um valor em um tempo finito e determinado. Para essa situação, dizemos que a informação é digital. Vamos tomar como exemplo a temperatura, que é um valor analógico. Ela também pode ser representada de forma digital, porém seus valores serão guardados em um tempo definido, e não mais o tempo inteiro. Assim, cada valor de temperatura terá uma representação digital (Figura 2). Mais à frente, nesta mesma unidade, veremos como converter  um valor analógico (decimal) em um valor binário (0 e 1).

Figura 3

Expand Image

Minimize Image

Figura 3 – Representação digital da temperatura (ºF) em tempos amostrados

Fonte: Floyd, 2011

Representação digital da temperatura (ºF) em tempos amostrados

Sem título Text

No caso da Figura 2, cada valor que foi mostrado a cada hora pode ser digitalizado, sendo representado por um código que consiste em uma série de 1s e 0s. Agora, imagine que você está ouvindo música no seu smartphone ou CD. A música foi transformada numa longa sequência de números, os bits 0 e 1, que são como pequenos blocos de montar. Quando você aperta o play, esses números são convertidos em som pelo aparelho, e os blocos de montar formarão um todo, deixando de ser pecinhas separadas (Figura 3). Esse é um sistema digital, porque a música é armazenada em pequenos pedaços, e não em ondas contínuas.

Figura 4

Expand Image

Minimize Image

Figura 4 – Diagrama de blocos mostrando a conversão digital-analógico do som de Floyd (2011)

Fonte: Adaptada pelo autor

Diagrama de blocos mostrando a conversão digital-analógico do som

Sem título Text

Os sistemas digitais são muito bons em guardar, copiar e transmitir dados. Sabe por quê? Eles não perdem a qualidade, pois trabalham com números que são muito precisos. Já os sistemas analógicos guardam e reproduzem o som de maneira mais direta, sendo mais sensíveis a ruídos e interferências. Posso contar um segredo? Se não fosse Claude Shannon, não teríamos a nossa tão amada internet!

Os sistemas digitais e os computadores

Então, como você já deve saber, os computadores são como cérebros gigantes que nos ajudam em nossas atividades diárias, como jogar, assistir vídeos, escutar músicas, desenhar, calcular, estudar, programar e trabalhar. Bem, para que os computadores possam entender e fazer todas essas coisas, eles usam os sistemas digitais e pedaços de informação muito pequenos, chamados de bits.

Pense nos bits como as menores peças de informação que um computador pode usar. Eles são como as peças de um quebra-cabeças muito pequeno, mas com uma característica muito especial: só podem ser de duas cores: preto ou branco.

Quando um computador quer dizer algo, ele usa essas peças. O preto seria o número 0, e o branco seria o número 1. É como se estivéssemos conversando em uma linguagem muito simples em que só temos duas palavras: “preto” e “branco”.

Agora, imagine que temos um monte de bits, todos enfileiradinhos, como miçangas de uma pulseira. Se colocarmos alguns desses bits juntos, poderemos ter informações mais complexas. Por exemplo, se tivermos a sequência de bits: 01000100, poderemos dizer que isso representa a letra "D" em um código especial chamado ASCII. É como se estivéssemos escrevendo mensagens secretas usando apenas preto e branco!

Como o computador utiliza eletricidade, o preto poderia ser considerado como tendo energia e o branco, sem energia, a exemplo da luz de um quarto durante a noite. Ao acionar o interruptor, só podemos optar por deixá-la acesa ou apagada, trazendo luminosidade ou deixando tudo escuro.

Quando um computador está ligado, a energia flui por todas as suas partes, incluindo os bits. Se um bit está ligado (1), isso significa que está usando um pouco dessa energia. Mas, quando está desligado (0), não está gastando energia nenhuma.

Figura 5

Expand Image

Minimize Image

Figura 5 - Gráfico da relação entre os números binários e as voltagens correspondentes

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN

Gráfico mostrando a relação entre os números binários e as voltagens correspondentes

Sem título Text

Podemos ver um exemplo na Figura 5. Imagine um aparelho digital que usa tensões de 0 a 5 volts. Nesse caso, o binário 0 representaria tensões de 0 a 0,8 volts, sendo praticamente sem energia. Entre 0,8 e 2 volts, teríamos tensões inválidas. E se tivéssemos a voltagem entre 2 e 5 volts, teríamos o binário 1. Então, geralmente, chamamos a representação binária 1 de nível lógico 1 ou nível lógico alto; de igual forma, chamamos o 0 de nível lógico 0 ou nível lógico baixo.

Dentro de um computador, as formas de ondas digitais consistem em como esses dois níveis lógicos estão comutando entre duas tensões, conforme a Figura 6.

Figuta 6

Expand Image

Minimize Image

Figura 6 – Nível lógico alto representa bit 1 (a) e Nível lógico baixo representa bit 0 (b)

Fonte: Adaptada pelo autor de Floyd, 2011

Sem título Text

Veja que interessante! A sequência de voltagens 4 volts, 5 volts, 0,8 volts, 4 volts seria representada por 1101. Então, assim como é necessária energia para manter suas luzes acesas em casa, os bits também precisam de energia para funcionar nos computadores. E essa energia vem de onde? Bem, ela pode vir de baterias em laptops ou de tomadas em computadores de mesa.

Os mais famosos sistemas de numeração

Está preparado para pensar e imaginar mais um pouco? Então, vamos lá! Imagine agora que necessitamos medir e dizer com precisão a velocidade de um carro ou o nível de água de uma barragem. É aí que os números entram! Eles são as palavras especiais que usamos para contar e dizer a quantidade ou o nível de diversas coisas.

Figura 7

Expand Image

Minimize Image

Figura 7 - Nível da água da barragem do Boqueirão, na cidade de Parelhas/RN.

Fonte: Blog do Marcos Silva. Acesso em 18 de maio de 2024.

Sem título Text

O que seriam então os sistemas de numeração? São as regras que devemos adotar para escrever e utilizar esses números. Podemos pensar neles como diferentes idiomas, por exemplo, o português, o inglês e o japonês. Todos são utilizados para falar, mas cada um tem suas próprias palavras e regras para a construção de frases. Todos os números nos ajudam a contar, mas, dependendo do sistema em que estão, possuem regras e quantidades diferentes.

Em nosso dia a dia, o sistema que mais usamos é o sistema de numeração decimal. Nos dedos, em nossa fala e na escrita, contamos com os números de zero até nove. E se quisermos continuar contando? Nesse caso, vamos combinar esses símbolos de várias formas até conseguirmos criar todos os números de que precisamos.

São diversos os sistemas de numeração que foram criados desde a Antiguidade, como o sistema de numeração romano, com as letras I, V, X, C, D e M. Temos também o hexagonal, usado pelo povo babilônico, em que a contagem era feita até 60 e depois novos números eram formados. Este último parece praticamente impossível de utilizar, não é? Mas sabia que ele está em uso entre nós até hoje? O exemplo mais comum é no registro do tempo: cada sessenta segundos formam um minuto e cada sessenta minutos, uma hora.

Assim como você pode usar uma régua para medir o tamanho ou uma balança para medir o peso, diferentes sistemas de numeração são usados para contar e resolver problemas!

Neste material, vamos estudar os sistemas de numeração mais importantes para a computação: o sistema de numeração decimal, com números de 0 a 9, o sistema de numeração binário, que só possui os números 0 e 1, o sistema de numeração octal, que conta de 0 a 7, e, por fim, o sistema de numeração hexadecimal, que conta de 0 a 15 com os dígitos de 0 a 9 e A a F.

Sem título Emphasis Card

As civilizações criaram vários sistemas de contagem, cada um útil para fins diferentes. O sistema binário é usado em computadores por funcionar com 0 e 1, ligados aos estados ligado e desligado. Já o sistema decimal é comum no dia a dia e facilita cálculos rápidos.

Sem título Text

Sistema de numeração decimal

Como já estudamos, o sistema de numeração decimal possui dez símbolos, de 0 a 9. Quando chegamos em 9 precisamos de mais um símbolo, que será chamado de dígito. O dígito mais à esquerda é o mais significativo do número, com maior peso, e o dígito mais à direita, o menos significativo, com menor peso.

Mas, como esses números são formados? Que valores representam? No sistema decimal, como o próprio nome sugere, temos uma base 10, e tudo será contado a partir dela. Onde essa base entra na história? Cada dígito do número decimal será multiplicado por uma potência de 10, sempre começando por 100, que é igual a 1, para o primeiro dígito do número à esquerda da vírgula, conforme a ilustração a seguir.

Figura 8

Expand Image

Minimize Image

Figura 8 - Representação das potências de 10 na formação do número 23

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Decomposição do número decimal 23 segundo o valor posicional de seus algarismos

Sem título Text

Vamos ver como seria a formação dos números 7, 17 e 417? Presta bem atenção.

Figura 9

Expand Image

Minimize Image

Figura 9 - Formação dos números 7, 17 e 417 em decimal

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Figura 11 - Formação dos números 7, 17 e 417 em decimal.

Sem título Text

E se o número tiver casas decimais? Como será? Nesse caso, a potência de 10 inicia em -1 a partir do primeiro dígito à direita da vírgula. E à esquerda da vírgula? Continua da mesma forma!

Vamos ver como seria a formação dos seguintes números 3,3 e 86,55? Presta bem atenção.

Figura 10

Expand Image

Minimize Image

Figura 10 - Formação dos números 3,3 e 86,55 em decimal

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Formação dos números 3,3 e 86,55 em decimal

Sem título Text

O sistema de numeração decimal é posicional, ou seja, a ordem de cada dígito importa. Cada posição tem um peso e está associada a uma potência de 10 diferente!

Sem título Text

Sistema de numeração binário

Acabamos de conhecer a história do Léo. Mas, você ficou confuso como eu? Como o Léo pode ter nascido no mês 101? Será que ele está enganado? Não, gente! Acabo de descobrir que o Léo só utiliza números em binário! Os números em binários são formados apenas por 0 e 1, mas podem dizer muitas coisas.

Que tal aprendermos a passar os dados do Léo de binário para decimal? Vamos seguir o mesmo procedimento que utilizamos para os números decimais, mas agora a base não é mais 10, e sim 2. Então, cada dígito vai ser multiplicado por uma potência de 2 relativa à sua posição. Primeiro, vamos descobrir sua idade.

Figura 11

Expand Image

Minimize Image

Figura 11 - Conversão do número 1011 na base 2 para a base 10

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Conversão do número 1011 na base 2 para a base 10

Sem título Text

Descobrimos com esse cálculo que o Léo tem 45 anos! Observe que, assim como os dígitos em decimal, cada dígito em binário possui um valor de posição, começando de 2°, depois 2¹, 2² e assim por diante. Outra coisa bem importante é que todo número elevado a 0 é igual a 1.

Quiz 2

Q: Em que dia de maio o Léo nasceu?
- 7 (correct)
- 15
- 11
- 9

Sem título Text

Agora me veio à mente algo que me deixou um pouco confusa… Como os computadores só entendem binário, se neles conseguimos usar números em decimal ou texto? Você teve essa mesma dúvida? O que será que ele faz?

Sem título Text

Os computadores passam boa parte do seu tempo fazendo conversões para que a gente possa entender o que está sendo processado. Os textos e os números que nós escrevemos, na verdade, viram um monte de dígitos 0 e 1. E para que possamos ler? Existe uma tabela de conversão bem conhecida, chamada tabela ASCII, onde cada número em binário corresponde a alguma letra, ou símbolo.

Tabela 1 - Alfabeto na tabela ASCII

ASCII Alphabet Table

Letra

Binário

A

1000001

N

1001110

B

1000010

O

1001111

C

1000011

P

1010000

D

1000100

Q

1010001

E

1000101

R

1010010

F

1000110

S

1010011

G

1000111

T

1010100

H

1001000

U

1010101

I

1001001

V

1010110

J

1001010

W

1010111

K

1001011

X

1011000

L

1001100

Y

1011001

M

1001101

Z

1011010

Sem título Text

Fonte: Elaborada pelo autor.

Na tabela 1, podemos observar uma parte da tabela ASCII. Ela é bem grande e mostra as conversões entre números, letras e símbolos. Que tal dar uma busca no Google por “Tabela ASCII” e aprender um pouco mais sobre ela?

Existe algum método para converter os números em decimal para binário sem utilizar tabelas? Existe, sim. Vamos aprender convertendo agora o número 8 para binário? O método que vamos utilizar se chama divisões sucessivas.

Figura 12

Expand Image

Minimize Image

Conversão do número 8 na base 10 para a base 2

Figura 12 - Conversão do número 8 na base 10 para a base 2

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

No método das divisões sucessivas, vamos dividir sempre por 2. Se o número terminar em 0,5, guardamos o número 1; se terminar em 0, guardamos 0. O último número a ser guardado será o dígito mais significativo, ou seja, o número mais à esquerda. O primeiro a ser guardado será o número menos significativo, ou seja, o número mais à direita. O número deve ser dividido até obtermos o quociente 0.

Sem título Text

Sistemas de numeração octal

O sistema de numeração octal, ou na base 8, serve de ponte entre os números binários, e é uma forma mais fácil de ler para nós, humanos. A base de funcionamento dos computadores, os números binários, pode gerar sequências muito longas de dígitos.

Utilizando o sistema octal, vamos facilitar a diminuição da sequência de dígitos, agrupando os números binários em grupos de três. Mas, por quê? Na verdade, é bem simples: cada dígito em octal corresponde a exatamente três dígitos binários. Que tal vermos como isso acontece? Como exemplo, vamos utilizar o número binário 101010010100 e converter para octal.

Tabela 2 - Tabela de correspondência entre números binários e decimais

Sem título Tabela Visual com Scroll

Octal

Binário

0

000

1

001

2

010

3

011

4

100

5

101

6

110

7

111

Sem título Text

Fonte: Elaborada pelo autor.

A conversão é bem fácil. Primeiro, vamos fazer grupos de três em três dígitos. Depois disso, vamos converter cada grupo de três dígitos para octal. A conversão pode ser feita da mesma forma que fizemos a dos números binários para decimal.

Figura 13

Expand Image

Minimize Image

Conversão do número 101010010100 na base 2 para a base 8.

Figura 13 - Conversão do número 101010010100 na base 2 para a base 8

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN

Sem título Text

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Atividade 4 Capítulo 1

Q: Qual número em octal corresponde ao número binário 111000101?
- 705 (correct)
- 101
- 057
- 507

Sem título Text

Comparados aos números binários, os números octais são bem mais curtos e, portanto, mais fáceis de ler e escrever. Isso é especialmente útil na programação em linguagem de máquina.

Sem título Text

Com o aumento da complexidade dos computadores e a melhoria dos processadores, as cadeias de bits utilizadas se tornaram cada vez maiores. Por isso, o sistema de numeração octal, que foi muito útil no início da computação, passou a ficar sem uso muito cedo.

Sistema de numeração hexadecimal

Lá pela década de 1950, conforme a tecnologia dos computadores avançava, matemáticos e engenheiros começaram a usar a base 16, sistema de numeração hexadecimal, para facilitar o trabalho com números binários, especialmente em programação e design de hardware. Esse sistema de numeração segue um formato e regras muito parecidas com o sistema de numeração octal, mas agora, ao invés de juntarmos os números binários de três em três, vamos juntá-los de quatro em quatro.

O sistema hexadecimal possui 16 símbolos. Tudo isso? Sim! E como representamos os números após o 9? O 10 seria escrito como 10? E os números 11, 12 e 13? Escreveríamos da mesma forma? Calma, vamos por etapas. A contagem em hexadecimal acontece assim: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Na tabela 3, a seguir, mostramos as correspondências entre os símbolos em hexadecimal e suas correspondências em decimal e binário.

Tabela 3 - Correspondências entre números em decimal, hexadecimal e binário

Sem título Tabela Visual com Scroll

Decimal

Hexadecimal (16 símbolos)

Notação hexadecimal (grupos de quatro bits)

0

0000

1

0001

2

0010

3

0011

4

0100

5

0101

6

0110

7

0111

8

1000

9

1001

10

A

1010

11

B

1011

12

C

1100

13

D

1101

14

E

1110

15

F

1111

Sem título Text

Fonte: Elaborada pelo autor.

Vamos aprender fazendo uma conversão de binário para hexadecimal? A gente vai converter o número 1110010111000000. O primeiro passo será dividir os números em grupos de quatro dígitos binários. Em seguida, vamos converter substituindo esses grupos de quatro dígitos por seus equivalentes em hexadecimal.

Figura 14

Expand Image

Minimize Image

Conversão do número 1110010111000000 na base 2 para a base 16

Figura 14 - Conversão do número 1110010111000000 na base 2 para a base 16

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN

Sem título Text

A conversão de hexadecimal para binário pode ser feita substituindo cada dígito em hexadecimal por seu correspondente em binário. E como seria a conversão de hexadecimal para decimal? Os dois sistemas são posicionais, onde cada posição importa. Dessa forma, cada uma tem um peso. Esses pesos agora estão na base 16. A conversão será da mesma forma que de binário para decimal, mas agora considerando a base 16 ao invés de 2.

Vamos converter o número 7A2 de hexadecimal para decimal?

Figura 15

Expand Image

Minimize Image

Conversão do número 7A2 na base 16 para a base 10.

Figura 15 - Conversão do número 7A2 na base 16 para a base 10

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Conclusão

Neste capítulo, aprendemos o que são os sistemas digitais e como eles processam dados. Entendemos sobre os principais sistemas de numeração existentes e como se dá a conversão de números entre bases.

Compreendemos que os computadores processam apenas 0 e 1 e que nos números formados com esses dígitos a posição importa, pois os números binários estão em um sistema de numeração posicional.

No próximo capítulo, vamos aprender como funciona na prática. Sobre 0 e 1 já ouvimos falar, mas como os computadores fazem o processamento? Por enquanto, isso é tudo. Veremos mais no próximo capítulo!

Glossário

Base numérica: sistema de contagem e representação de números que usa um conjunto específico de dígitos e uma base.

Números binários: usados em computação e eletrônica, utilizam os dígitos 0 e 1.

Sistemas analógicos: sistemas analógicos são aqueles em que os sinais têm valores pertencentes a um conjunto infinito de valores, como, por exemplo, os números decimais.

Sistemas digitais: um sistema digital é um sistema no qual os sinais têm um número finito de valores, 0 e 1, por exemplo.

Capítulo 2 - Portas Lógicas e suas Regras

Sem título CustomCSS

Sem título ObjetivoCapDEAD

No capítulo anterior entendemos sobre os sistemas digitais e os sistemas de numeração. Aprendemos que no fim das contas para sistemas digitais o que está sendo processado são zeros e uns. Mas como isso funciona na prática? Vamos para mais uma jornada de muito conhecimento digital? Como é feita a aritmética computacional? Neste capítulo vamos entender um pouco mais sobre como é feito a aritmética binário dentro de um ambiente digital, os circuitos lógicos, o que são portas lógicas, quais portas lógicas existem e quais as suas regras de funcionamento. Prepare-se!

Sem título Text

Aritmética binária

Vimos no capítulo anterior que as informações dentro do mundo digital são basicamente representadas pelo sistema binário, em que as informações são organizadas em bits e esses bits podem ser organizados em palavras como o byte. Também vimos que cada letra dentro do computador é representada por uma sequência de bits dentro de uma tabela ASC II.

Mas, como é feito as operações aritméticas dentro do computador? Essas operações são feitas em uma componente chamada ULA (unidade de lógica aritmética), que é um circuito lógico combinacional que processa as informações lógicas binárias e realiza as operações aritméticas.

Circuito combinacional, guarde esse nome, pois veremos esses circuitos lógicos mais adiante.

Nesta seção, veremos como são feitas as operações binarias mais básicas: adição, subtração, multiplicação e divisão, usando o sistema binário.

Adição Binária

Na adição binária, a soma é feita bit a bit usando uma regra conforme a tabela a seguir.

Tabela 1

Soma | Resultado | Carry
0 | + | 0 | = | 0 | 0
0 | + | 1 | = | 1 | 0
1 | + | 0 | = | 1 | 0
1 | + | 1 | = | 0 | 1

Tabela 1 – Regra para adição binária

Fonte: Elaborada pelo autor.

Sem título Text

O “carry”, na prática, significa o “vai 1” ou “sobe um” que aprendemos lá no ensino básico.

Vejamos um exemplo de soma binário 011+0011. Iremos analisar a soma binária de 011 com 001 passo a passo.

\[ \begin{array}{r@{\,}r@{\,}r@{\,}r} & 0 & 1 & 1 \\ + & 0 & 0 & 1 \\ \hline \end{array} \]

Seguindo a regra da tabela de adição binária, a soma da primeira coluna acima seria 0 com Carry 1, ou seja, vai 1.

\[ \begin{array}{r@{\,}r@{\,}r@{\,}r} & & \boxed{1} & \\ & 0 & 1 & 1 \\ + & 0 & 0 & 1 \\ \hline & & & 0\end{array} \]

Na coluna seguinte, tem o 1 a mais, logo uma soma com 3 bits. Todavia, faça a soma de dois em dois bits seguindo a regra da tabela. Ou seja, 1 + 1=0 e Carry 1, depois 0 + 0 = 0.

\[ \begin{array}{r@{\,}r@{\,}r@{\,}r} & \boxed{1} & \boxed{1} & \\ & 0 & 1 & 1 \\ + & 0 & 0 & 1 \\ \hline & & 0 & 0\end{array} \]

Por fim, faça a soma 1 + 0 = 1 e o depois 1 + 0 = 1.

\[ \begin{array}{r@{\,}r@{\,}r@{\,}r} & \boxed{1} & \boxed{1} & \\ & 0 & 1 & 1 \\ + & 0 & 0 & 1 \\ \hline & 1 & 0 & 0\end{array} \]

Assista ao vídeo a seguir, nele você verá vários exercícios resolvidos.

Sem título Text

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 1

Q: A soma binária de 100+10 terá como resultado o número decimal
- 6 (correct)
- 10
- 110
- 8

Sem título Text

Subtração binária

Na subtração binária, a operação também é feita bit a bit usando uma regra conforme a tabela a seguir.

Tabela 2

Soma | Resultado | Borrow
0 | - | 0 | = | 0 | 0
1 | - | 1 | = | 0 | 0
1 | - | 0 | = | 1 | 0
10 | - | 1 | = | 1 | 1

Tabela 2 – regra para subtração binária

Fonte: elaborada pelo autor.

Sem título Text

Opa! A regra da última linha está estranha, o que houve? Bem, na subtração binária quando se tem a operação de diminuir 0 por 1, o zero sempre pedirá um empréstimo (borrow) de 1 do bit mais à esquerda, ou sejam o “vem 1”, ficando a operação como 10-1=1. Veja um exemplo na figura a seguir.

Figura 1

Expand Image

Minimize Image

Figura 1 – Exemplo de operação de subtração binária com borrow de 1

Fonte: Adaptada pelo autor.

Exemplo de operação de subtração binária com borrow de 1

Sem título Text

Assista ao vídeo a seguir, nele você verá vários exercícios resolvidos. Aproveite a explicação para revisar os conceitos estudados, identificar estratégias de resolução e comparar os procedimentos apresentados com suas próprias tentativas. Ao final, procure praticar outros exercícios para consolidar sua aprendizagem e esclarecer possíveis dúvidas.

Sem título Text

Multiplicação binária

A multiplicação com números binários é realizada de forma semelhante com a operação com números decimais. Ela envolve a formação de produtos parciais, deslocamento de cada produto parcial sucessivo uma posição à esquerda, para então somar todos os produtos parciais. A operação também é feita bit a bit usando uma regra conforme a tabela a seguir.

Tabela 3

Soma | Resultado
0 | X | 0 | = | 0
0 | X | 1 | = | 0
1 | X | 0 | = | 0
1 | X | 1 | = | 1

Tabela 3 – regra para multiplicação binária

Fonte: Elaborada pelo autor.

Sem título Text

Vejamos dois exemplos de multiplicação, conforme a figura a seguir.

Figura 2

Expand Image

Minimize Image

Figura 2 – Exemplos resolvidos de multiplicação binária

Fonte: Adaptada pelo autor.

Exemplos resolvidos de multiplicação binária

Sem título Text

A solução, como dito, é feita de forma semelhante ao feito com números decimais. Vejamos o exemplo (a), pega-se o primeiro bit 1 e multiplica pelos dois bits 1´s de cima, teremos como resultado 1 1. Depois pega o segundo bit 1 e multiplica pelos bits 1´s de cima, tendo como resultado 1 1. Após isso, faz a operação de soma dos dois resultados da multiplicação.

Assista ao vídeo a seguir, nele você verá vários exercícios resolvidos. Aproveite a explicação para revisar os conceitos estudados, identificar estratégias de resolução e comparar os procedimentos apresentados com suas próprias tentativas. Ao final, procure praticar outros exercícios para consolidar sua aprendizagem e esclarecer possíveis dúvidas.

Sem título Text

Divisão binária

A divisão binária é um pouco mais completo e envolve mais regras. Todavia, ela se assemelha com a divisão decimal.

Para um melhor entendimento da divisão binária, sugerimos que confira o vídeo a seguir.

Sem título Text

O que são e como os circuitos digitais funcionam?

Os circuitos lógicos fazem parte dos sistemas digitais e são os responsáveis por tomar as decisões. Mas como essas decisões são tomadas? Elas sempre são feitas analisando os dados que possuem, aplicam um conjunto de regras para poder dar uma resposta.

Os circuitos lógicos são como caminhos por onde a eletricidade passa. Imagine que a eletricidade é como água fluindo por canos. Nos circuitos, essa "água" pode seguir por diferentes caminhos dependendo se as portas lógicas estão ligadas, número binário 1 ou desligadas, número binário 0. Mas o que são portas lógicas? Guarda esse nome que logo vamos compreender.

Na realidade, um circuito lógico é um conjunto de componentes eletrônicos que processam os sinais, as informações digitais. Esses sinais digitais são binários, o que significa que eles só podem ter dois valores possíveis: 0 e 1. Em termos elétricos, 0 geralmente representa uma tensão baixa (ou nenhuma tensão), enquanto 1 representa uma tensão alta. Como foi visto no capítulo anterior, podemos chamar também de nível lógico alta e nível lógico baixo.

Figura 4

Expand Image

Minimize Image

Figura 3 - Sinal Digital

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Como podemos observar na imagem anterior o sinal digital vai estar em 1, quando a tensão estiver alta, no caso representado na imagem a tensão alta é de 5V. E o sinal vai estar em 0 quando a tensão estiver baixa, no caso representado na imagem a tensão baixa é de 0V.

Portas lógicas

Enquanto os 0’s e 1’s nos circuitos lógicos são como interruptores de luz, as portas lógicas são as regras que decidem como a eletricidade deve fluir. Juntas, essas portas ajudam os computadores e outros dispositivos digitais a tomar decisões e realizar tarefas simples ou complexas. Podemos imaginar que um circuito digital é como uma grande orquestra sinfônica onde cada músico, porta lógica, tem um papel específico para fazer a música, no caso os circuitos, funcionarem como desejado!

Sem título Text

Toda porta lógica possui um símbolo, uma ou mais entradas e uma única saída. A saída vai depender das regras da porta lógica que está sendo utilizada. Na imagem a seguir podemos ver um exemplo de uma porta lógica, seu símbolo está em preto e parece com a letra D. Ela possui duas entradas e uma saída. A saída vai depender da regra da porta que está em uso.

Figura 5

Expand Image

Minimize Image

Figura 5 - Exemplo de porta lógica com duas entradas e uma saída

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Exemplo de porta lógica com duas entradas e uma saída

Sem título Text

Então, vamos aprendermos que porta é essa e quais são as outras existentes? Vamos aproveitar, também, e estudar sobre as regras de cada uma delas para descobrir qual vai ser a saída dependendo das suas entradas.

Lembrete 1

As entradas e saídas das portas lógicas são sempre representadas pelo número binário 0 ou 1.

Sem título Text

Tabela-verdade

Antes de continuarmos, é muito importante compreendermos o conceito de tabela-verdade. Algumas literaturas chamam de tabela da verdade, mas vamos padronizar nos nossos estudos como tabela-verdade.

A tabela-verdade é uma ferramenta usada no campo da matemática lógica para determinar se uma ou mais proposições são verdadeiras ou falsas. Ela funciona utilizando conectivos lógicos, como Não (negação), E (conjunção) e OU (disjunção).

Vejamos um exemplo de uma tabela-verdade entre duas situações usando o conectivo E, em que F seria falso e V verdadeiro.

Responda a seguinte pergunta usando a tabela abaixo com conectivo E:

“O céu é azul E tem nuvens brancas”.

Situação 1: O céu é azul

Situação 2: tem nuvens brancas

Tabela 4

Tabela 4 - O céu é azul E tem nuvens brancas

Situação 1 | Situação 2 | Resultado
F | F | F
F | V | F
V | F | F
V | V | V

Fonte: Elaborada pelo autor.

Sem título Text

Mas, como se entende essa tabela?

Vamos lá, perceba primeiro que se você quiser testar duas situações, você precisa montar todas as combinações possíveis entre duas situações: FF, FV, VF e VV. Para três situações, seriam necessários testar 8 situações, ou seja, 2n combinações, em que, n seria o número de situações ou entradas para o teste.

O segundo passo é testar cada linha usando o conectivo e anotar o resultado do teste lógico. Note que para responder a frase do exemplo, o resultado só será verdadeiro se as duas situações/entradas forem verdadeiras.

Agora, vamos fazer o mesmo teste usando o conectivo OU.

“O céu é azul OU tem nuvens brancas”.

Situação 1: O céu é azul

Situação 2: tem nuvens brancas

Tabela 5

Tabela 5 - O céu é azul OU tem nuvens brancas

Situação 1 | Situação 2 | Resultado
F | F | F
F | V | V
V | F | V
V | V | V

Fonte: Elaborada pelo autor.

Sem título Text

Perceba agora que o resultado da tabela-verdade mudou, mas as situações para teste continuam as mesmas.

Testando cada linha, podemos perceber, logicamente, que se a situação 1 for verdadeira OU a situação 2 for verdadeira, o resultado ou saída final será verdadeira. A exceção, será quando as duas situações forem falsas, então o resultado/saída será falso.

Mas, por que devemos entender o conceito de tabela-verdade?

Porque será muito usado no entendimento do funcionamento das portas lógicas e será uma das principais ferramentas usadas na lógica e circuitos combinacionais.

Lógica combinacional? Sim, guarde isso, logo tudo fará sentido.

Sem título Text

Portas lógicas básicas

As primeiras portas que veremos são as portas lógicas básicas. Existem 3 delas: AND, OR e NOT. Elas são chamadas de básicas pois são as portas fundamentais existentes, as outras portas e circuitos lógicos são formados a partir da composição destas três.

Porta lógica AND

A primeira porta lógica que vamos estudar é a porta AND, “E” em português. Ela pode possuir duas ou mais entradas e sempre apenas uma saída. Mas qual será o valor da saída? O valor da saída vai ser 1, apenas se todas as suas entradas forem 1. O símbolo da porta AND está representado na figura a seguir. Perceba que ela possui duas entradas e uma saída.

Figura 6

Expand Image

Minimize Image

Figura 6 - Símbolo da porta lógica AND com duas entradas e uma saída

Símbolo da porta lógica AND com duas entradas e uma saída

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Na prática esta porta só permite que a eletricidade passe se as suas entradas estiverem em 1, com energia. Se alguma das entradas estiver em 0, desligada, nada vai passar, ou seja, a saída será 0.

Figura 7 - Porta lógica AND com entradas A e B

[Image: Porta lógica AND com entradas A e B]

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Para facilitar nossos estudos, e por convenção, vamos chamar as entradas pelas primeiras letras do alfabeto, começando de A, sempre em maiúsculo. A saída, vai ser uma combinação destas duas entradas, no caso da porta AND, a saída será \(A \cdot B\)

Figura 8 - Porta lógica AND com entradas A e B e saída \(A \cdot B\)

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

É interessante perceber que como temos duas entradas vamos ter 4 possíveis combinações dos valores de A e B para que possamos descobrir o valor correspondente da saída \(A \cdot B\). Para facilitar podemos montar uma tabela, chamada de tabela verdade.

Na tabela verdade vamos ter de um lado todas as entradas e do outro lado a saída. No lado esquerdo vamos preencher os valores das entradas A e B com os seus valores em binários. No lado direito teremos a saída da tabela, \(A \cdot B\), que terá seu valor descoberto quando aplicarmos as regras da porta lógica nos valores que tivermos.

Veremos então a tabela-verdade da porta lógica AND. Perceba que foram dispostas do lado esquerdo as combinações possíveis entre dois dígitos binários.

Para preencher a tabela, as sequências das combinações binárias de A e B seguem uma ordem crescente binário-decimal, ou seja, a prima linha será 0 0 (zero zero) binário que será igual a 0 (zero) na base decimal, a segunda linha será 0 1 (zero um) binário que será igual a 1 (um) na base decimal, a terceira linha será 1 0 (um zero) binário que será igual a 2 (dois) na base decimal e a quarta linha será 1 1 (um um) binário que será igual a 3 (três) na base decimal. A mesma lógica deve ser aplicada caso se tenha mais combinações.

Tabela 6 - Tabela verdade da porta lógica AND

Tabela 6

\(A\)

\(B\)

\(A \cdot B\)

1

0

Sem título Text

Fonte: Elaborada pelo autor.

Que tal testarmos cada uma dessas condições da porta lógica AND? Observe bem o circuito a seguir, as caixinhas com borda preta do lado esquerdo são os valores que vão ser utilizados nas entradas A e B, já a caixinha com borda azul será o valor da saída. Se as duas caixinhas da esquerda estiverem em 1, ligadas, A e B estará em 1, dessa forma, de acordo com a tabela-verdade teremos a saída também em 1.

Figura 9 - Representação do circuito da segunda linha da tabela verdade da porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Se trocarmos o valor de B para 0? Teremos o valor lógico de A em 1, mas o valor lógico de B em 0 fará com que a saída seja  0. Como mostrado na figura a seguir. É bacana observar que as linhas em verde claro representam por onde o valor lógico 1 está passando, ou seja que estão com energia, e as linhas em verde escuro representam por onde não passa energia, ou seja, valor lógico 0.

Figura 10 - Representação do circuito da terceira linha da tabela verdade da porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Vamos ver agora invertendo os valores de A e B? Teremos então A em 0, desligado, e B em 1, ligado. A saída permanecerá em 0, pois não entraremos na condição em que \(A \cdot B\) será igual a 1, conforme a tabela verdade.

Figura 11 - Representação do circuito da quarta linha da tabela verdade da porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Vamos descobrir agora como ficará o circuito quando colocarmos as duas entradas A e B em 0? O circuito agora representa a última linha da tabela verdade. Observe que todas as linhas dele estão em verde escuro, isso quer dizer que não tem energia passando em nenhum local. Dessa forma, a saída será 0.

Figura 12 - Representação do circuito da quinta linha da tabela verdade da porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Na prática, você deve fazer o teste da tabela-verdade da primeira para a última linha. Aqui foi invertido essa ordem somente para ficar de forma mais didática.

Vejamos um exemplo simples da lógica AND em um circuito elétrico. No circuito a seguir, temos uma bateria de 12Volts, comum em carros e motos, para ligar uma lâmpada LED de 12V representado pelo “S”.

Sem título Imagem

Figura 13 - Circuito de ligação da lâmpada LED com lógica AND

Fonte: Adaptada pelo autor.

Expand Image

Minimize Image

Circuito de ligação da lâmpada LED com lógica AND

Sem título Text

Como as chaves A e B estão em série, percebam que a energia que ligará a lâmpada (S com lógica de saída binária 1) só fluirá se as chaves A e B estiverem fechadas. A chave aberta indicaria a lógica com bit 0 e a chave fechada indicaria a lógica com bit 1.

Então, baseado neste entendimento, podemos definir uma expressão booleana para esse circuito como S = A•B.

A expressão booleana é uma descrição lógica que indicará um resultado booleano como saída, seja verdadeiro ou falso. “Expressão booleana, guarde essa definição, pois usaremos bastante”

Sem título Text

Porta lógica OR

Agora vamos aprender sobre a porta lógica OR, que seria o “OU” em português. Ela pode possuir duas ou mais entradas e sempre apenas uma saída. Qual a diferença da porta OR para a porta AND? O valor da saída da porta OR vai ser 1 se pelo menos uma de suas entradas for igual a 1. O seu símbolo está representado na figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 14 - Símbolo da porta lógica OR com duas entradas e uma saída

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Símbolo da porta lógica OR com duas entradas e uma saída

Sem título Text

Na prática, esta porta só permite que a eletricidade passe se ao menos uma de suas entradas estiverem em 1. Se todas as suas entradas estiverem em 0, desligadas, nada vai passar, ou seja, a saída será 0.

Vamos chamar as entradas pelas primeiras letras do alfabeto, começando de A, sempre em maiúsculo. O resultado, ou melhor, a saída vai ser uma combinação destas duas entradas, no caso da porta OR, a saída será \(A+B\). De igual forma, a expressão resultante da saída \(A+B\) da porta OR é conectado por um “+” (sina de mais) que indica que entre A e B tem uma lógica OR.

Figura 15 - Porta lógica AND com entradas A e B e saída \(A \cdot B\)

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Lembrando que como temos duas entradas vamos ter 4 possíveis combinações dos valores de A e B para que possamos descobrir o valor correspondente da saída  \(A+B\. Para facilitar o entendimento, montaremos a sua tabela-verdade.

Tabela 7 - Tabela verdade da porta lógica OR

Tabela 7

\(A\)

\(B\)

\(A + B\)

1

0

Sem título Text

Fonte: Elaborada pelo autor.

Como você pode perceber foram dispostas do lado esquerdo as combinações possíveis entre dois dígitos binários. No lado direito, ao aplicar a regra apenas a última coluna ficou com a saída igual a 0, esse é o único caso em que nenhuma das entradas está com valor 1.

Dica 1

A tabela-verdade é montada sempre da mesma forma, no lado esquerdo vamos preencher os valores das entradas com os seus valores em binários com todas as possíveis combinações. E no lado direito teremos a saída.

Sem título Text

Vamos visualizar o que aprendemos verificando a saída da porta lógica OR de acordo com a mudança das suas entradas?

Figura 16 - Representação do circuito da quinta linha da tabela verdade da porta OR

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Na imagem anterior temos que foi conectado na entrada A o valor binário 0 e na entrada B o valor binário 0 também. Nesse caso, a saída será zero, como mostrado na tabela-verdade desta porta lógica.

Agora vamos alterar o valor de A para 1, observe na imagem a seguir o que aconteceu.

Figura 17 - Representação do circuito da terceira linha da tabela verdade da porta OR

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

A da saída do circuito da imagem anterior foi para 1, pois como a entrada A está em 1, ela é suficiente para alterar o valor de saída.

Vejamos agora um outro exemplo com um circuito elétrico, porém agora usando a lógica OR. No circuito a seguir, temos a mesma bateria de 12Volts para ligar uma lâmpada LED de 12V representado pelo “S”. Porém, agora as chaves estão em paralelo. Isso permite que a lâmpada acenda se a chave A ou B estiverem fechadas ou as duas ao mesmo tempo.

Figura 18

Figura 18 - Circuito de ligação da lâmpada LED com lógica OR

Fonte: Adaptada pelo autor.

Expand Image

Minimize Image

Circuito de ligação da lâmpada LED com lógica OR

Sem título Text

De igual forma, a expressão booleana que descreve o circuito acima seria S= A + B. Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz abaixo. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 2

Q: Qual será o resultado \(A + B\) da porta lógica OR se aplicarmos os valores 0 em \(A\) e 1 em \(B\)?
- \(A + B = 1\) (correct)
- \(A + B = 0\)

Sem título Text

Porta lógica NOT

A porta lógica NOT, “não” em português, possui apenas uma entrada e uma saída. Sua função é negar, alternar o que está vindo na entrada. Isto é, se o valor na entrada for 0 a saída será 1, se o valor na entrada for 1 a saída será zero. O símbolo da porta NOT está apresentado na figura a seguir.

Figura 19 - Símbolo da porta lógica NOT com uma entrada e uma saída

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Imagine a porta lógica NOT como alguém do contra, tudo que você fala para a pessoa fazer, ela faz o contrário. Esse contrário, ou negação, é representado por \(\overline{A}\) (fala-se A barrado). Então se a entrada for A a saída será \(\overline{A}\).

Figura 20 - Porta lógica NOT com entrada A e B e saída \(\overline{A}\)

Sem título Emphasis Card

Todas as vezes que aparecer um círculo após uma porta lógica significa que aquela porta lógica está sendo negada. Então todos os seus valores de saída da tabela verdade da entrada deverão ser invertidos.

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Vamos aplicar valores binários a entrada A? Se o valor da entrada A for 1, como mostrado na imagem, \(\overline{A}\) será 0.

Figura 21 - Representação e uma porta NOT com entrada A em 1  e saída \(\overline{A}\) em 0

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

E se o valor da entrada A for 0? Nesse caso, a saída \(\overline{A}\) terá o valor 1.

Figura 22 - Representação e uma porta NOT com entrada A em 0  e saída \(\overline{A}\) em 1

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

A tabela-verdade da porta lógica NOT é bem simplificada, visto que a entrada só pode assumir dois valores possíveis, 0 ou 1.

Tabela 3 - Tabela verdade da porta lógica NOT

Tabela 3

\(A\)

\(\overline{A}\)

0

1

Sem título Text

Fonte: Elaborada pelo autor.

Lembrete 2

A quantidade de combinações possíveis dos valores das entradas das portas lógicas sempre vai ser iguais a \( 2^n \), onde n é a quantidade de variáveis de entrada.

Sem título Text

Composições de portas lógicas

Estudamos sobre as portas lógicas básicas, ou seja, aquelas que são as unidades fundamentais, que não podem ser formadas a partir de nenhuma outra. Pense nas portas AND, OR e NOT como as cores primárias. Agora vamos estudar as portas lógicas que seriam como as cores secundárias, que são formadas pela composição de uma ou mais portas básicas. As composições mais conhecidas são as portas NAND, NOR, XOR e XNOR, que será o foco deste capítulo.

Porta lógica NAND

A porta lógica NAND, do inglês NOT AND, ou NÃO E. Essa porta tem como sua tabela-verdade o inverso da tabela-verdade da porta AND, ou seja, onde a saída da porta AND é 1 a saída da porta NAND é 0 e onde a saída da porta AND é 0, a saída da porta NAND é 1.

Tabela 4 - Tabela verdade da porta lógica NAND

Tabela 4

\(A\)

\(B\)

\( \overline{A \cdot B} \)

1

0

Sem título Text

Fonte: Elaborada pelo autor.

A porta seria o mesmo que uma porta AND com uma porta NOT conectada a sua saída. Observe a figura:

Figura 23

Expand Image

Minimize Image

Figura 23 - Porta AND conectada a uma porta NOT

Porta AND conectada a uma porta NOT

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Lembra que falamos que sempre que tiver um círculo pequeno ao fim da porta lógica quer dizer que estamos negando-a? Então, podemos substituir a porta NOT da imagem anterior por um círculo pequeno antes da saída da porta AND. Observe na imagem a seguir como seria.

Figura 24

Expand Image

Minimize Image

Símbolo da porta lógica NAND com duas entradas e uma saída.

Figura 24 - Símbolo da porta lógica NAND com duas entradas e uma saída

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Porta lógica NOR

A porta lógica NOR, do inglês NOT OR, ou NÃO OU. Possui uma tabela-verdade inversa a da porta OR, ou seja, onde a saída da porta OR é 1 a saída da porta NOR será 0 e onde a saída da porta OR é 0, a saída da porta NOR é 1. Vamos ver como ficaria sua tabela-verdade?

Tabela 5 - Tabela verdade da porta lógica NOR

Tabela 5

\(A\)

\(B\)

\( \overline{A + B} \)

1

0

Sem título Text

Fonte: Elaborada pelo autor.

Pela tabela-verdade podemos observar que o único caso em que sua saída é igual a 1 é o único caso em que a saída da porta OR é igual a 0. A porta NOR seria o mesmo que uma porta OR com uma porta NOT conectada à sua saída. Observe a figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Porta OR conectada a uma porta NOT.

Figura 25 - Porta OR conectada a uma porta NOT

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Lembra que falamos que sempre que tiver um círculo pequeno ao fim da porta lógica quer dizer que estamos negando-a? Então, podemos substituir a porta NOT da imagem anterior por um círculo pequeno antes da saída da porta AND. Observe na imagem a seguir como seria.

Figura 26 - Símbolo da porta lógica OR com duas entradas e uma saída

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Finalmente, podemos descrever a expressão booleana da porta NOR como S=\( \overline{A + B} \) (fala-se A ou B barrado).

Porta lógica XOR

A porta lógica XOR, deriva do inglês Exclusive OR (OU exclusivo). A função que ele executa, como o próprio nome diz, consiste em fornecer 1 à saída quando as variáveis de entrada forem diferentes entre si. Vejamos como seria sua tabela-verdade.

Tabela 6

Tabela 6 - Tabela-verdade da porta lógica XOR

A | B | A⨁B
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

Fonte: Elaborada pelo autor.

Sem título Text

A lógica dessa porta é sempre ter sua saída igual 1, quando não houver igualdade binária nas suas entradas, sejam 0 e 0 ou 1 e 1.

Percebam que entre a A e B tem um símbolo de “+” com um círculo ao redor.

A simbologia para essa porta seria conforme a figura a seguir. Percebam a semelhança com a porta OR, porém com uma meia lua a mais na porta de entrada.

Figura 27

Figura 27 - Símbolo da porta lógica XOR com duas entradas e uma saída

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Expand Image

Minimize Image

Símbolo da porta lógica XOR com duas entradas e uma saída

Sem título Text

A expressão booleana para essa porta seria S=A⨁B (fala-se A OU exclusivo B). Se tiramos a expressão booleana de forma mais simples dessa porta, teríamos a expressão S=\( \overline{A + B} \)+\( \overline{A + B} \), ou seja, A⨁B= \( \overline{A + B} \)+\( \overline{A + B} \), essa analogia será importante nos próximos capítulos para simplificação de circuitos lógicos.

Porta lógica NXOR

E se “barramos” a porta XOR, ou melhor, se colocarmos um NOT na saída da porta XOR? Então, teríamos a porta lógica NXOR, ou seja, Não OU Exclusivo. Essa porta também é conhecida como porta coincidência, pois, a saída será 1 sempre que as entradas A e B forem iguais, sejam 0 e 0 ou 1 e 1 binários. Sua tabela-verdade será conforme a seguir.

Tabela 7

Tabela 7 - Tabela-verdade da porta lógica NXOR

A | B | A⨀B
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1

Fonte: Elaborada pelo autor.

Sem título Text

Percebam que entre a A e B tem um símbolo de “.” com um círculo ao redor. A simbologia para essa porta seria conforme a figura a seguir. Percebam a semelhança com a porta XOR, porém com uma “bolinha” de negação na sua saída.

Figura 28

Figura 28 - Representação da porta lógica XNOR com saída negada

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Expand Image

Minimize Image

Símbolo da porta lógica XNOR (ou NXOR), correspondente à operação de coincidência

Sem título Text

A expressão booleana para essa porta seria S=A⨀B (fala-se A coincidência B). Como falamos, se a porta NXOR e a porta XOR com saída negada, então podemos deduzir que A⨀B=\( \overline{A⨁B} \). Esse tipo de relação será importante, também, nas regras de simplificação de expressão booleana que veremos mais adiante.

Sem título Text

Conclusão

O que achou do nosso aprendizado neste capítulo? Aprendemos sobre os circuitos digitais, como funcionam. E, também, começamos a ver como os dados são processados através das nossas recém conhecidas portas lógicas. O que acharam delas? Foram apresentadas as mais famosas e suas regras.

Outros grandes aprendizados foram o que são para que servem as tabelas verdades, ela vai ser muito importante no capítulo seguinte. Nele aprenderemos como combinar as portas lógicas e formar circuitos maiores. Não se assuste, iremos percorrer todo o caminho com você.

Glossário

Circuito Lógico: é um circuito formado apenas por portas lógicas ou combinações das portas básicas AND, OR e NOT.

Porta Lógica: uma porta lógica é um componente de um  circuito digital que toma uma ou mais entradas binárias, com valores 0 ou 1,  e produzem uma saída binária baseada em uma regra específica.

Sinal Digital: forma de representar informações usando apenas os valores 0 e 1.

Tabela Verdade: uma tabela verdade é uma tabela que mostra todas as possíveis combinações de entradas para uma porta lógica (ou circuito lógico) e as saídas correspondentes.

Expressão Booleana: é uma expressão matemática que resulta em um valor booleano, ou seja, verdadeiro ou falso.

Capítulo 3 - Circuitos lógicos e álgebra booleana

Sem título CustomCSS

Sem título ObjetivoCapDEAD

No capítulo anterior, aprendemos sobre os circuitos lógicos e sua composição. Estudamos, de forma detalhada, o que são as portas lógicas, quais são as principais portas existentes e as regras associadas a cada uma delas. A partir desse estudo, compreendemos o conceito de tabela-verdade e analisamos o funcionamento das portas AND, OR, NOT, NOR, NAND, XOR e XNOR. Esse conhecimento será fundamental para darmos continuidade aos nossos estudos. Neste capítulo, aprenderemos como são formados os circuitos lógicos complexos, constituídos pela combinação de duas ou mais portas lógicas. Em seguida, conheceremos George Boole e a álgebra que leva seu nome: a álgebra booleana. Também compreenderemos suas principais regras e aplicações nos Sistemas Digitais. Vamos lá?

Sem título Text

Os circuitos lógicos não possuem apenas uma porta lógica?

Para tudo! É verdade que os circuitos lógicos realmente não possuem apenas uma porta lógica? Vamos imaginar que construir circuitos lógicos é como montar com blocos, mas em vez de fazermos uma casa ou um carro, estamos fazendo um tipo especial de máquina que toma decisões. Quando juntamos várias portas lógicas, podemos criar circuitos mais complexos e que tomam decisões difíceis. Seria como combinar muitas regras simples para criar uma regra complexa.

Sem título Text

Vamos ver alguns desses circuitos e tentar entender eles com o que já aprendemos até agora? Nesse primeiro circuito temos duas portas lógicas OR e uma porta AND, perceba que ele tem duas entradas e uma única saída.

Figura 1 - Circuito lógico formado a partir de duas portas lógicas OR e uma porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Que tal chamarmos as entradas de A e B? Vamos ver como vai ficar? Quase esquecendo, a saída se chamará S.

Figura 2

Expand Image

Minimize Image

Figura 2 - Circuito lógico com entradas A e B e saída S

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Circuito lógico com entradas A e B e saída S

Sem título Text

Observe que a entrada B ela percorre todo o circuito e vai até a última porta OR antes da saída S. Sempre que houver o encontro circulado em verde como na figura significa que o fio se dividiu em dois ou mais. Seria como um “remendo nos fios”.

Sem título Text

Figura 3 - Indicação de onde os fios se bifurcam

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Nós ainda não conhecemos a saída S, não sabemos ao que ela corresponde. Vamos usar o conhecimento que temos até agora das portas lógicas para ver o que conseguimos descobrir? Vamos começar pela entrada B.

Figura 4 - Indicação de por onde a entrada B passa no circuito

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Agora vamos para a primeira porta OR após as entradas. As entradas dessa porta serão A e B, então teremos \(A+B\) como indicado na Figura 5.

Figura 5 - Representação da saída da primeira porta OR

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Na sequência vamos para a próxima porta, a porta lógica AND. Suas entradas serão \(A+B\)  e B. Teremos então \((A +B)\cdot B\). Observe na Figura 6.

Figura 6 - Representação da saída da porta AND

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Para concluir vamos descobrir qual a saída S colocando as duas entradas encontradas na última porta OR. A primeira entrada seria \((A+B)\cdot B\) e a segunda B.

Figura 7 - Representação da saída do circuito após a segunda porta OR

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

A saída S é igual a \((A+B)\cdot B + B\) . Viu que com regras simples de cada porta lógica conseguimos montar a saída de um circuito mais complexo? Que acha de fazermos outro exemplo para fixar?

Sem título Emphasis Card

As regras das portas lógicas AND, OR e NOT são fundamentais para compreendermos circuitos mais complexos. Sabendo sua tabela-verdade e suas regras, conseguimos achar a saída de qualquer circuito lógico.

Sem título Text

O nosso próximo exemplo será com 2 portas NOT, 2 portas AND e 2 portas OR. O circuito terá três entradas: A e B. A saída, ainda desconhecida do circuito, será chamada de S. Vamos descobrir que saída é essa?

Figura 8 - Circuito com 2 entradas A e B e saída S

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Na Figura 9 podemos observar em que lugares as entradas A e B chegam. Percebam que A chega em uma porta AND e em uma porta OR. A entrada B chega em uma porta AND e em duas das entradas de uma porta OR.

Figura 9 - Mapeamento das entradas A e B

[Image: Mapeamento das entradas A e B]

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Agora, com nossos conhecimentos sobre portas lógicas vamos descobrir a saída de cada uma delas baseada em suas entradas. A porta lógica OR com entradas B e B, terá como saída \(B + B\).

Figura 10 - Saída da porta lógica OR com entradas B e B

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Já a porta lógica AND com entradas A e B terá como saída \(A \cdot B\)

Figura 11 - Saída da porta lógica AND com entradas A e B

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Perceba que agora precisaremos utilizar nossos conhecimentos de portas lógicas com a saída resultante de cada porta lógica inicial. Vamos para a porta OR mais acima, indicada na Figura 13. Teremos como entrada \(A\) e \(A \cdot B\), como podemos ver na Figura 13 a saída resultante será \(A + (A \cdot B)\).

Figura 12 - Saída da porta lógica OR com as entradas A e  \(A \cdot B\)

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Agora vamos para a porta NOT mais abaixo, sua entrada é \(B + B\) e como saída teremos \(\overline{B +B}\). Ou seja, a negação da entrada. Observe que para a porta AND a seguir teremos as duas entradas apresentadas na Figura 14, são elas \(A + (A \cdot B)\) e \(\overline{B +B}\).

Figura 13 - Entradas da última porta lógica AND, são elas \(A + (A \cdot B)\) e  \(\overline{B +B}\)

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Sim, o negócio está aumentando! Parece complicado, mas vamos seguir pensando que são duas entradas em uma porta AND, o que fazemos com elas? Aplicamos o símbolo. Teremos como saída então \((A + (A \cdot B)) \cdot (\overline{B +B})\). Concorda comigo que não foi tão difícil? Pois é, regras simples aplicadas em entradas complexas.

E agora? Como terminamos? Vamos aplicar a última porta NOT no resultado que acabamos de achar! Como fazemos isso? BARRANDO TUDO! A entrada da porta é \((A + (A \cdot B)) \cdot (\overline{B +B})\), então sua saída será \(\overline{(A + (A \cdot B)) \cdot (\overline{B +B})}\). Simples assim? Simples assim! Vamos ver como vai ficar no circuito? Observe a Figura 15.

Figura 14 - Circuito lógico com portas AND, OR e NOT

[Image: Circuito lógico com portas AND, OR e NOT]

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Ficou muito grande a saída não foi? Será que não teria uma forma de simplificar? É aqui que vai entrar a Álgebra Booleana que falamos na introdução. Vamos conhecer um pouco sobre ela no próximo capítulo. Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 1

Sem título Multiple Choice

Q: Considere a figura a seguir com um trem de pulso de entradas lógicas nas portas A e B ao longo de tempo. Quais serão os valores binários de A e B, bem como sua saída no tempo t_3?
- A=0, B=1, saída=1 (correct)
- A=0, B=1, saída=0
- A=1, B=1, saída=0
- A=1, B=0, saída=1

Sem título Text

Construindo tabela-verdade para circuitos lógicos

Para nos ajudar mais ainda nas análises e simplificação das expressões booleanas, precisamos usar de todas as ferramentas possíveis, como a tabela-verdade. Afinal, ela é muito importante para entendermos os resultados gerais de todas as combinações possíveis de uma expressão booleana ou de um circuito lógico.

Então, vamos ver mais um exemplo de um circuito com várias porta lógicas combinadas e montar a sua tabela-verdade? Bora!

Considere o circuito lógico a seguir com 4 entradas e uma saída.

Figura 15 - Circuito lógico com duas portas AND e uma porta OR

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Como já vimos passo a passo como obter uma expressão booleana para um circuito lógico, veremos agora de uma forma mais simplificada e como revisão.

Como vimos, para obter a expressão booleana, comece a montar as expressões resultantes da esquerda para a direita e vá percorrendo o circuito até a saída final.

De forma simples, para esse circuito, faça o seguinte:

1. A expressão para porta AND mais a esquerda tem como entradas A e B, logo a sua saída será \(A \cdot B\).
2. A saída acima será uma das entradas da porta OR. A outra entrada será C, portanto, a expressão para a porta OR será \(C + A \cdot B\).
3. Por fim, a expressão acima é uma entrada da porta AND final, sendo a outra entrada D. Logo, a expressão final será \(D \cdot (C+A \cdot B)\).

A expressão booleana final será \(S = D \cdot (C+A \cdot B)\). O circuito com a expressão booleana que a descreve será conforme a figura a seguir.

Figura 16 - Circuito lógico com expressão booleana

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Agora vamos montar a tabela-verdade com todas as possíveis entradas para A, B, C e D. Como são 4 entradas, então, como já aprendemos, teremos \(2^4\) combinações, ou seja, 16 combinações de entradas possíveis.

Tabela 1

A | B | C | D | S
0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
1 | 1 | 1 | 1 |

Tabela 1 - Tabela-verdade com quatro entradas e uma saída

Fonte: Elaborada pelo autor.

Sem título Text

O passo seguinte é testar na expressão lógica a combinação de cada entrada e anotar na tabela-verdade o resultada da saída lógica final.

Tabela 2

A | B | C | D | S
0 | 0 | 0 | 0 | 0
0 | 0 | 0 | 1 | 0
0 | 0 | 1 | 0 | 0
0 | 0 | 1 | 1 | 1
0 | 1 | 0 | 0 | 0
0 | 1 | 0 | 1 | 0
0 | 1 | 1 | 0 | 0
0 | 1 | 1 | 1 | 1
1 | 0 | 0 | 0 | 0
1 | 0 | 0 | 1 | 0
1 | 0 | 1 | 0 | 0
1 | 0 | 1 | 1 | 1
1 | 1 | 0 | 0 | 0
1 | 1 | 0 | 1 | 1
1 | 1 | 1 | 0 | 0
1 | 1 | 1 | 1 | 1

Tabela 2 - Tabela-verdade para o circuito lógico mostrando a saída final

Fonte: Elaborada pelo autor.

Sem título Text

E aí? Deu um trabalhão testar cada combinação das 4 entradas somente usando a expressão booleana ou até mesmo percorrendo o circuito 16 vezes, né verdade? Mas, é um bom exercício para melhorar nosso conhecimento sobre lógico digital. Mas, será que não poderíamos usar um aplicativo para nos auxiliares mais ainda na construção dos circuitos lógicos? Sim, tem vários. Na seção a seguir aprenderemos a usar um muito simples e gratuito, o Logisim. Aliás, foi ele que usamos para montar o circuito da figura 17.

Conhecendo e usando o Logisim

O Logisim é uma ferramenta gráfica de desenho e simulação de circuitos lógicos, sendo de uso livre sobre a licença GNU (General Public License). Esse software livre pode rodar em Windows, Linux e MAC OS. Não há necessidade de instalação e pode ser baixado clicando aqui .

Figura 18 – Tela principal com circuito lógico montado no Logisim

[Image: Tela principal com circuito lógico montado no Logisim]

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Então, que tal montarmos o circuito lógico da figura acima e testá-la com o Logisim? E tem mais, será possível analisar o circuito mostrando a tabela-verdade, a expressão booleana e um mapa minimizado da simplificação do circuito lógico.

No vídeo a seguir, faremos esse exercício passo a passo, não deixe de assistir, pois usaremos bastante esse aplicativo mais adiante.

Sem título Text

George Boole

Como nós já estamos familiarizados com portas lógicas, agora é hora de levarmos para o próximo nível com a Álgebra Booleana. Essa matemática, baseada em 0s e 1s, nos ajuda a projetar circuitos eficientes e resolver problemas lógicos de forma mais simples e organizada.

Mas antes de começar, vamos conhecer um pouco sobre a história por trás disso tudo!

A Álgebra Booleana foi inventada por George Boole, um matemático britânico que publicou seus estudos sobre esta nova lógica em 1854 no livro "An Investigation of the Laws of Thought", que quer dizer em português “Uma investigação sobre as leis do pensamento”. Boole queria criar uma forma de representar o raciocínio lógico através de equações matemáticas, e sua obra foi fundamental para o desenvolvimento dos circuitos digitais.

Sem título Text

Boole provavelmente não imaginava que, mais de um século depois, seu trabalho seria a base para computadores e sistemas digitais! Se ele visse a tecnologia atual, com certeza ficaria impressionado.

Álgebra Booleana

A Álgebra Booleana é a ferramenta que utilizaremos para projetar circuitos lógicos de maneira eficiente e simplificada. Dominando suas propriedades, postulados e teoremas, estaremos preparados para enfrentar qualquer desafio no design de sistemas digitais. Quanto mais praticar, mais fácil será traduzir expressões booleanas complexas em circuitos de verdade. Partiu?

Agora que você já sabe quem foi o George Boole, vamos direto ao que importa: os postulados, teoremas e propriedades que tornam essa álgebra tão útil nos sistemas digitais. Essas propriedades são essenciais para simplificar expressões lógicas e, consequentemente, os circuitos.

Ao longo desse capítulo, iremos considerar as letras A, B e C como entradas de um circuito lógico e que podem assumir valores binários (0 e 1). O “S” será usado como possível saída de uma lógica a partir de uma expressão booleana, também assumindo como resultado valores binários.

Postulados

Complementação, adição, e multiplicação são os postulados aplicados na álgebra booleana, vejamos cada uma a seguir.

Complementação

É a complementação de A. Se \(A = 1\), logo \(\overline{A}=0\). Se \(A=0\), logo \(\overline{A}=1\).

O Inverso da negação é a própria expressão, ou seja, \(A =\overline{\overline{A}}\).

Adição

A regra para a adição é a analogia para a porta OR, seu postulado será

\(A + 0 = A\)

\(A + A = A\)

\(A + 1 = 1\)

\(A + \overline{A} = 1\)

Multiplicação

A regra para a multiplicação é a analogia para a porta AND, seu postulado será

\(A \cdot 0 = 0\)

\(A \cdot A = A\)

\(A \cdot 1 = A\)

\(A \cdot \overline{A}  = 0\)

Propriedades da álgebra de Boole

A seguir descreveremos as 3 principais propriedades usadas na álgebra de booleana, que serão úteis no manuseio e na simplificação de expressões. Ela é semelhante com as regras que usamos na matemática comum, então, não teremos dificuldade em entender.

Comutativa

Essa propriedade é válida tanto para as operações de adição (OR) quanto paras operações de multiplicação (AND).

- Adição: \(A + B = B + A\)
- Multiplicação: \(A \cdot B = B \cdot A\)

Associativa

Da mesma forma que a comutativa, essa propriedade vale para a adição e multiplicação.

- Adição: \(A+(B+C) = (A+B) + C = A + B + C\)
- Multiplicação: \(A \cdot (B \cdot C) = (A \cdot B)  \cdot C = A  \cdot  B  \cdot  C\)

Distributiva

De forma semelhante ao que ocorre na matemática comum, essa propriedade envolve as operações de adição e multiplicação, quando há a presente de parênteses.

- \(A \cdot (B+C) = A \cdot B + A \cdot C\)

Vejamos a tabela-verdade dessa propriedade analisando todas as possibilidades.

Tabela 3

A | B | C | A(B+C) | AB + AC
0 | 0 | 0 | 0 | 0
0 | 0 | 1 | 0 | 0
0 | 1 | 0 | 0 | 0
0 | 1 | 1 | 0 | 0
1 | 0 | 0 | 0 | 0
1 | 0 | 1 | 1 | 1
1 | 1 | 0 | 1 | 1
1 | 1 | 1 | 1 | 1

Tabela 3 - Tabela-verdade com comprovação da propriedade distributiva

Fonte: Elaborada pelo autor.

Sem título Text

Teorema de De Morgan

Esse teorema é um dos mais empregados na prática em simplificação de expressões booleanas e no desenvolvimento de circuitos digitais. São dois os teoremas de De Morgan.

1º Teorema - O complemento do produto é igual à soma dos complementos: \( \overline{A \cdot B} = \overline{A} + \overline{B} \)

2º Teorema - O complemento da soma é igual ao produto dos complementos: \(\overline{A} \cdot \overline{B} = \overline{A + B}\)

Identidades auxiliares

Dentro das expressões lógicas, podemos nos deparar com situação que não se encaixam perfeitamente nas regras ditas até aqui, mas que podem ser inferidas. Desta forma, apresentaremos 3 identidades que serão úteis nas simplificações de expressões.

- \(A + (A \cdot B) = A\)
- \(A + \overline{A} \cdot B = A + B\)
- \((A \cdot B) + (B \cdot C) = A + B \cdot C\)

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Atividade 2 Capítulo 3

Q: Se \(A = 0\) e \(B = 1\), qual é o resultado da expressão booleana \(A + \overline{A} \cdot B\)?
- 1 (correct)
- 0
- Não é possível determinar

Q: Com o que conhecemos até agora, a simplificação da expressão \((A \cdot (A +B))\) será
- \(A \cdot B\) (correct)
- \(A\)
- \(B\)

Sem título Text

Precedência das operações

Na Álgebra Booleana, assim como em outras formas de álgebra, as operações possuem uma ordem de precedência que determina a sequência em que as operações devem ser realizadas. Essa precedência é essencial para garantir que as expressões sejam interpretadas corretamente, especialmente quando há muitas operações. A ordem de precedência na Álgebra Booleana segue as seguintes regras:

NOT

A operação NOT tem a maior precedência e é sempre avaliada primeiro. Ela inverte o valor de uma variável booleana. Que tal um exemplo? Na expressão \(\overline{A} \cdot B\), devemos primeiro aplicar a regra da porta NOT para só depois aplicar a regra da porta AND. Na figura 20 podemos observar o circuito equivalente.

Figura 19

Expand Image

Minimize Image

Circuito da expressão \(\overline{A} \cdot B\)

Figura 19 - Circuito da expressão \(\overline{A} \cdot B\)

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Sem título Text

AND

A operação AND tem a segunda maior precedência. Ela combina duas variáveis booleanas e retorna 1 apenas se as variáveis de entrada forem verdadeiras. Por exemplo: A expressão \(A \cdot B + C\) devemos primeiro aplicar a regra da porta AND e depois a regra da porta OR. Na figura 21 podemos observar o circuito equivalente, respeitando a ordem de precedência.

Figura 20

Expand Image

Minimize Image

Figura 20 - Circuito da expressão \(A \cdot B + C\)

Circuito da expressão \(A \cdot B + C\)

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Sem título Text

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Atividade 4 Capítulo 3

Q: Se \(A=0\) e \(B=1\), qual será o resultado de \(A \cdot B + \overline{B}\)
- \(0\) (correct)
- \(1\)
- \(A\)

Sem título Text

OR

A operação OR tem a menor precedência. Ela combina duas variáveis booleanas e retorna verdadeiro se pelo menos uma delas for verdadeira. Na expressão do circuito anterior a operação OR é realizada ao término.

Dica

É de extrema importância sempre usar parênteses ao indicar como cada entrada de uma porta lógica vai sair. Isso facilita MUITO a identificação da ordem de precedência das operações.

Sem título Text

Simplificação de expressão utilizando álgebra de Boole

O que acha de antes de finalizarmos nosso capítulo aplicarmos os conhecimentos que aprendemos da álgebra booleana para verificar qual seria a operação resultante do nosso segundo exercício de circuito? Que tal voltar um pouco e dar uma olhada na Figura 15?

E aí, conferiu? A saída daquele circuito foi \(\overline{A + (A \cdot B) + (\overline{B + B})}\), será que conseguimos?  Vamos por passos.

1) \(\overline{A + (A \cdot B) + (\overline{B + B})}\)

Podemos aplicar o postulado da adição em \(B +B\), que resultará em \(B\).

2) \(\overline{A + (A \cdot B) + (\overline{B})}\)\)

Podemos aplicar em \((A + (A \cdot B))\) a propriedade distributiva. Teremos então:

3) \((\overline{(A+A)\cdot(A+B)) + (\overline{B})})\)

Utilizando o postulado da adição temos que \(A + A = A\)

4) \( ( \overline{ ( A \cdot (A \cdot B) ) })\)

Agora utilizando a propriedade comutativa podemos inverter a ordem de \(A \cdot (A \cdot B)\) para \((A \cdot A \cdot B)\) sem que haja prejuízo no valor final. Com ajuste de parênteses, já que a precedência das operações é a mesma.

5) \(\overline{(A \cdot A \cdot B) + (\overline{B})}\)

Utilizando o postulado da multiplicação temos que \(A \cdot A = A\)

6) \(\overline{(A\cdot B)+\overline{B}}\)

Agora podemos aplicar a propriedade distributiva. Teremos:

7) \(\overline{(A + \overline{B})\cdot(B + \overline{B})} \)

Podemos utilizar agora o postulado da complementação em \(B + \overline{B}\) que será 1. Daí obteremos:

8) \(\overline{(A + \overline{B})\cdot 1}\)

Agora aplicaremos o postulado da multiplicação:

9) \(\overline{(A + \overline{B})}\)

Está tomando forma, não é? Vamos aplicar agora a Lei De Morgan?

10) \( \overline{A} \cdot \overline{\overline{B}}\)

O \(\overline{\overline{B}}\) volta ser \(B\), usando o postulada da complementação. Concluiremos então da seguinte forma:

11) \( \overline{A}\cdot B \)

Que tal descobrirmos o circuito equivalente? Fica de tarefa para vocês! Use o Logisim que vimos nesta unidade. Se ficar com dúvida sobre como utilizar o simulador, tem tutorial no site e muitos vídeos explicativos no YouTube.

Sem título Emphasis Card

Sempre que possível, simplifique suas expressões booleanas!

Sem título Text

Conclusão

Neste capítulo, exploramos como funciona a Álgebra Booleana, que é a base de tudo o que envolve os sistemas digitais.  Também discutimos algumas propriedades e teoremas importantes, como o teorema da absorção e o teorema de De Morgan, que nos ajudam a trabalhar com expressões lógicas de maneira mais simples e eficiente.

Agora que você tem uma boa compreensão sobre como essas operações funcionam e como elas podem ser aplicadas em circuitos lógicos, o próximo passo será aprender a simplificar essas expressões. Isso será muito importante para tornar os circuitos mais eficientes, usando menos portas lógicas e economizando espaço e energia.

E aí? O que achou do nosso aprendizado de hoje? Foram muitos teoremas e propriedades, não foi? Mas não se preocupe, no próximo capítulo dedicaremos um bom espaço para aplicar tudo isso. No que depender de mim vocês vão ficar feras, nós vamos mergulhar na simplificação de expressões booleanas. Você vai ver como aplicar tudo o que aprendemos para otimizar circuitos de maneira prática. Te vejo lá!

Glossário

Álgebra Booleana: a Álgebra Booleana é um ramo da matemática que lida com dois valores principais: 0 (falso) e 1 (verdadeiro).

Teorema: um teorema é uma afirmação que foi provada ser verdadeira com base em outras regras ou fatos que já sabemos que são verdadeiros.

Postulados: é um fato reconhecido como verdadeiro sem a necessidade de demonstração.

Capítulo 4 - Simplificação de expressões booleanas e circuito lógicos

Sem título CustomCSS

Sem título ObjetivoCapDEAD

Nos capítulos anteriores, nós aprendemos a trabalhar com circuitos lógicos usando portas como AND, OR e NOT. Nós também exploramos as tabelas verdade, que nos ajudaram a entender o que acontece com as entradas e saídas desses circuitos. Além disso, aprendemos juntos o que é a álgebra booleana e suas principais teoremas e propriedades. Não podemos esquecer que descobrimos juntos quem é George Boole. Neste capítulo, o nosso objetivo é simplificar essas expressões lógicas! Vamos aprender a como fazer uso de duas ferramentas poderosas para isso: as tabelas verdade e a álgebra booleana. Com essas ferramentas, seremos capazes de reduzir a quantidade de portas lógicas de um circuito, tornando-os mais eficientes e mais fáceis de entender.

Sem título Text

Por que simplificar os circuitos lógicos?

Antes de começarmos a simplificar circuitos, é importante entender por que essa tarefa é necessária. Afinal, por que investir tempo e esforço na simplificação de algo que já funciona? A resposta é simples: eficiência.

Ao projetar um circuito lógico, é comum que ele se torne mais complexo do que o necessário. Isso pode resultar no uso de um número maior de portas lógicas e fios, além de aumentar o custo e o espaço ocupado pelo circuito. Circuitos mais complexos também tendem a consumir mais energia e são mais difíceis de compreender, testar e reparar.

Com a simplificação nós conseguimos alcançar cinco metas superimportantes:

1. Redução do número de portas lógicas: menos portas significa um circuito mais simples e barato;
2. Economia de espaço: com menos componentes, o circuito ocupa menos espaço físico, o que é muito importante em projetos pequenos e compactos;
3. Aumento da eficiência: circuitos mais simples consomem menos energia e são mais rápidos;
4. Facilidade de manutenção: um circuito simplificado é mais fácil de entender, encontrar e corrigir problemas, caso algo dê errado;
5. Diminuição do atraso de propagação: período de tempo que um sistema leva para produzir uma saída após receber uma ou mais entradas.

Além disso, simplificar é uma habilidade que ajuda muito em projetos maiores, nos quais qualquer economia de componentes pode fazer uma grande diferença no desempenho geral.

Então, no final das contas, a simplificação é como organizar a bagunça: deixamos tudo mais claro, mais leve e mais fácil de trabalhar. E o melhor de tudo é que não perdemos nenhuma funcionalidade do circuito original; pelo contrário, ganhamos eficiência!

Sem título Text

Expressão booleanas e circuitos lógicos a partir da tabela-verdade

No capítulo anterior, vimos como construir uma tabela-verdade a partir de um circuito ou da expressão booleana que o descreve. Agora, veremos o processo inverso: como obter a expressão booleana a partir da tabela-verdade e, em seguida, montar o circuito lógico correspondente. Na prática, esse é um procedimento muito comum em projetos de sistemas digitais. Os projetistas definem o comportamento desejado do sistema, constroem a tabela-verdade e, com base nela, elaboram a expressão booleana e o circuito lógico.

Vejamos, a seguir, a tabela-verdade de um circuito lógico com duas entradas, A e B, e uma saída definida durante o projeto.

Tabela 1

A | B | C | S
0 | 0 | 0 | 0
0 | 0 | 1 | 0
0 | 1 | 0 | 1
0 | 1 | 1 | 1
1 | 0 | 0 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 1

Tabela 1 - Tabela-verdade de um projeto com três entradas e uma saída

Fonte: Elaborada pelo autor.

Sem título Text

Para montar os circuitos lógicos a partir da tabela-verdade, o importante é analisar as expressões formadas somente pelas saídas que forem iguais a 1 (nível lógico 1). Então, vamos verificar na tabela quais são as linhas nas quais a saída S apresenta nível lógico alto, ou seja, 1. No caso analisado, a saída será igual a 1 em três situações: na terceira, na quarta e na última linha da tabela.

Percorrendo a tabela, temos na terceira linha a saída 1, cujas entradas são A=0, B=1, C=0. Isso significa que se fizermos a lógica AND entre essas entradas teremos a expressão que define a saída igual a 1. Então, para a saída da terceira linha a expressão booleana seria \( \bar{A} \cdot B \cdot \bar{C} \). De igual forma, fazendo a mesma análise na quarta linha, a expressão booleana seria \( \bar{A} \cdot B \cdot C \). E para última linha, a expressão seria \( A \cdot B \cdot C \).

De forma resumida, poderíamos escrever a expressão ao lado da linha cuja saída tenha o nível lógico 1. As saídas com nível lógico 0 não interessam na hora de montar o circuito.

Tabela 2

A | B | C | S | Expressão
0 | 0 | 0 | 0 | -
0 | 0 | 1 | 0 | -
0 | 1 | 0 | 1 | \( \bar{A} \cdot B \cdot \bar{C} \)
0 | 1 | 1 | 1 | \( \bar{A} \cdot B \cdot C \)
1 | 0 | 0 | 0 | -
1 | 0 | 1 | 0 | -
1 | 1 | 0 | 0 | -
1 | 1 | 1 | 1 | \( A \cdot B \cdot C \)

Tabela 2 - Tabela-verdade com as expressões booleana de cada saída com nível lógico 1

Fonte: Elaborada pelo autor.

Sem título Text

Agora, a saída S será a soma de todas as expressões definidas, ou seja, teremos um OR ligando todas as três expressões.

A expressão resultante final seria: \( S = \bar{A} \cdot B \cdot \bar{C} + \bar{A} \cdot B \cdot C + A \cdot B \cdot C \)

Pronto, a partir da expressão booleana é possível montar nosso circuito lógico com três entradas e uma saída.

O passo a passo para montar o circuito é simples, primeiro monte o circuito de cada parte ligada com lógica AND. Não esqueça de adicionar as portas NOT. Vejamos a seguir como seriam cada um deles individualmente.

Figura 1 – Circuito lógico a partir da expressão \( \bar{A} \cdot B \cdot \bar{C} \) da terceira linha da tabela-verdade

[Image: Figura 1 – Circuito lógico a partir da expressão \( \bar{A} \cdot B \cdot \bar{C} \) da terceira linha da tabela-verdade]

Sem título Text

Fonte: Adaptada pelo autor.

Figura 2 – Circuito lógico a partir da expressão \( \bar{A} \cdot B \cdot C \) da terceira linha da tabela-verdade

[Image: Figura 2 – Circuito lógico a partir da expressão \( \bar{A} \cdot B \cdot C \) da terceira linha da tabela-verdade]

Sem título Text

Fonte: Adaptada pelo autor.

Figura 3 – Circuito lógico a partir da expressão \( A \cdot B \cdot C \) da terceira linha da tabela-verdade

[Image: Figura 3 – Circuito lógico a partir da expressão \( A \cdot B \cdot C \) da terceira linha da tabela-verdade]

Sem título Text

Fonte: Adaptada pelo autor.

Então, agora juntaremos a lógica dessas três combinações em uma porta lógica OR. O circuito final seria como mostrado na Figura 4.

Figura 4 – Circuito lógico final que representa a expressão booleana a partir da tabela-verdade

[Image: Figura 4 – Circuito lógico final que representa a expressão booleana a partir da tabela-verdade]

Sem título Text

Fonte: Adaptada pelo autor.

Mas será que esse circuito não poderia ser simplificado? Acredito que sim. Mais adiante voltaremos a tratar esse circuito, antes vamos compreender etapas importantes no processo de simplificação de circuitos lógicos.

Passos para simplificação de circuitos lógicos digitais

Agora que entendemos por que a simplificação é tão importante, que tal vermos como isso funciona na prática? A simplificação de circuitos lógicos pode parecer complicada no começo, mas, com alguns passos simples, conseguimos transformar expressões longas e confusas em algo muito mais claro e direto.

E como fazemos isso? Pode ser dividir em 4 passos.

Passo 1: Analisar o Circuito

O primeiro passo para simplificar qualquer circuito é entender o que estamos lidando. Imagine que temos um circuito com várias portas lógicas e que nosso objetivo é reduzir esse número de portas, sem alterar o funcionamento do circuito. Parece simples, né? Mas, para isso, precisamos fazer uma análise cuidadosa. Nessa análise descobrir qual a expressão booleana do circuito é fundamental. Seguindo o que vimos nos Capítulos 2 e 3.

Passo 2: Montar a Tabela-verdade

Depois de analisar o circuito, monte a sua tabela-verdade, caso você não a tenha previamente. Ela vai mostrar todas as possíveis combinações de entradas e suas saídas. A tabela-verdade nos ajuda a visualizar como o circuito funciona em cada situação e nos dá uma boa base para começar a simplificação.

Por exemplo, se o nosso circuito tem duas entradas, A e B, a tabela-verdade montada vai listar todas as combinações dessas entradas e mostrar qual é a saída em cada caso. Com isso em mãos, conseguimos começar a ver se existe alguma simplificação possível.

Passo 3: Aplicar a Álgebra Booleana

Com a tabela-verdade pronta, vamos usar as regras da álgebra booleana para simplificar a expressão lógica. A álgebra booleana tem algumas regras que nos ajudam a combinar termos e eliminar redundâncias.

Essas regras, e outras que aprendemos no capítulo anterior, são nossas principais ferramentas para eliminar termos desnecessários e simplificar a expressão lógica. Quanto mais praticamos, mais fácil será enxergar onde podemos aplicar essas leis.

Passo 4: Reescrever o Circuito

Depois de simplificar a expressão usando a álgebra booleana, podemos redesenhar o circuito com menos portas lógicas. É aqui que a mágica acontece! Com uma expressão mais simples, conseguimos reduzir o número de componentes, deixando o circuito mais limpo e com isso mais eficiente.

Simplificação utilizando os 4 passos a partir de um circuito lógico

Que tal fazermos um exemplo de simplificação seguindo os 4 passos da simplificação de um circuito? Vamos aplicá-los no circuito a seguir!

Figura 5 - Circuito com 2 entradas e 1 saída com 4 portas lógicas.

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

O 1º passo é a Análise do circuito. Nessa análise vamos observar as entradas e encontrar a saída de cada porta lógica até encontrar a saída geral do circuito.

Figura 6 - Circuito com 2 entradas e 1 saída com numeração das portas lógicas

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Agora que já identificamos as 4 portas do circuito vamos aplicar o que já aprendemos para encontrar a saída de cada uma delas, achando a expressão booleana que descreve cada saída.

- Porta 1: \( A \cdot B \)
- Porta 2: \( \bar{B} \)
- Porta 3: \( A \cdot \bar{B} \)
- Porta 4:  \( A \cdot B + A \cdot \bar{B} \)

Como podemos observar na Figura 6 a saída do circuito corresponde a saída da porta 4, dessa forma teremos então \( S = A \cdot B + A \cdot \bar{B} \).

O 2º passo será montar a tabela-verdade para a expressão booleana encontrada. Vamos lá?

Tabela 3

A | B | S
0 | 0 | 0
0 | 1 | 0
1 | 0 | 1
1 | 1 | 1

Tabela 3 - Tabela-verdade resultando a partir da expressão \( S = A \cdot B + A \cdot \bar{B} \)

Fonte: Elaborada pelo autor.

Sem título Text

Agora que temos a tabela-verdade, já podemos ver como a saída S se comporta com diferentes combinações de A e B. Com a tabela-verdade já conseguimos ver se existe, logo de cara, alguma simplificação possível. Como funciona isso?

Como já vimos, para compor a nossa expressão booleana devemos utilizar apenas os casos em que a saída deu 1. São eles, \( A=1 \) e \( B=0 \), sendo o termo \( A \cdot \bar{B} \) e o outro onde \( A=1 \) e \( B=1 \), sendo o termo \( A \cdot B \). O que fazemos depois? Como já aprendemos, fazemos as somas dos termos, ou sejam, aplicamos uma porta OR nos dois termos, visto que são esses os casos em que a saída \(S=1\). Se prestarmos mais atenção e com bastante exercício, a partir da tabela-verdade, já podemos perceber que a saída será \(S=1\) sempre que \(A=1\), ou seja, a saída dependerá somente de A.

Lembrete 1

Podemos trabalhar tanto a partir do passo 2, se já tivermos a equação booleana da saída ou a tabela-verdade, ou a partir do passo 1 se precisarmos encontrar a equação.

Sem título Text

Vamos para o 3º passo? Aplicar os teoremas e fundamentos da álgebra booleana!

Temos \( S = A \cdot B +A \cdot \bar{B} \), perceba que a entrada A se repete nos dois termos \( A \cdot B \) e \( A \cdot \bar{B} \). Vamos começar a utilizar a álgebra booleana.

Propriedade distributiva:

\( S = A \cdot B +A \cdot \bar{B} \)

colocando \(A\) em evidência, teremos

 \( A \cdot (B + \bar{B}) \)

Postulado da adição:

  \( A \cdot (B + \bar{B}) \)

ou seja, \(B + \bar{B} = 1 \), logo

 \( S = A \cdot (1)\)

Postulado da multiplicação:

 \( S = A \cdot (1)\)

Enfim, podemos ver que a saída só dependerá do nível lógico da entrada A.

\( S = A \)

Quer dizer que aquela expressão toda podia ser substituída por \(A\)? Sim, a entrada \(B\) não influenciava na saída. O valor de S vai sempre ser igual ao valor de \(A\). George Boole merece palmas!

Sem título Text

Aplicando o 4º passo, rescreva o circuito e veja quão linda é a simplificação.

Figura 7 - Circuito lógico simplificado

[Image: Figura 7 - Circuito lógico simplificado]

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Conheça bem postulados, propriedades, teoremas e identidades auxiliares da álgebra booleana. Eles serão seus melhores amigos na hora de simplificar. Quanto mais familiarizado você estiver com essas leis, mais rápido conseguirá identificar como reduzir termos e eliminar portas lógicas desnecessárias.

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 2

Q: Qual postulado da álgebra booleana nos permite simplificar a expressão \( S = A \cdot \bar{A}\)
- Postulado da multiplicação (correct)
- Postulado da adição
- Postulado da complementação

Sem título Text

Simplificação de expressão booleanas e circuitos lógicos

Para mostrar o quão eficiente a álgebra booleana pode ser, vamos trabalhar alguns exemplos, resolvendo-os passo a passo utilizando as regras que já vimos da álgebra booleana. Antes disso, para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 2

Q: Qual é o principal objetivo da simplificação de circuitos lógicos?
- Reduzir a complexidade do circuito, economizando portas lógicas e tornando-o mais eficiente (correct)
- Aumentar o número de portas lógicas usadas no circuito.

Sem título Text

Simplificação de Circuitos com 3 entradas

Neste exemplo teremos a expressão booleana de um circuito com 3 entradas: \( A \), \( B \) e \( C \). A expressão é: \(S = A \cdot B + A \cdot \bar{B} \cdot C + A \cdot B \cdot \bar{C}\). Uma dica para os primeiros passos, é sempre procurar entradas semelhantes nos termos e aplicar a propriedade distributiva. Então, vamos simplificar esse exemplo aplicando os postulados, propriedades e leis da álgebra booleana? Bora! será com exercícios e exemplos que entenderemos mais rapidamente.

Propriedade Distributiva:

\(S = A \cdot B + A \cdot \bar{B} \cdot C + A \cdot B \cdot \bar{C}\)

Observe que A ocorre nos três termos, podemos colocar A em evidência.

\(S = A \cdot (B + \bar{B} \cdot C + B \cdot \bar{C})\)

De igual forma, podemos agora colocar o B em evidência.

\(S = A \cdot (B \cdot (1 + \bar{C}) + \bar{B} \cdot C)\)

Postulado da Adição:

Por esse postulado, podemos simplificar \(1 + \bar{C}=1\), ficamos com

\(S = A \cdot (B \cdot (1) + \bar{B} \cdot C)\)

Postulado da Multiplicação:

Com esse postulado, pode simplificar \(B \cdot (1)=B\), logo teremos

\(S = A \cdot (B + \bar{B} \cdot C)\)

Identidades auxiliares:

Observando as identidades auxiliares, podemos reduzir \(B + \bar{B} \cdot C = B \cdot C\), enfim obtendo a expressão:

\(S = A \cdot (B + C)\)

Nesta parte não temos mais como simplificar e finalizamos a simplificação. Então, podemos concluir que a expressão booleana \(S = A \cdot B + A \cdot \bar{B} \cdot C + A \cdot B \cdot \bar{C}\) e a expressão simplificada \(S = A \cdot (B + C)\) têm o mesmo comportamento lógico digital, ou seja, são semelhantes no seu funcionamento lógico, porém a expressão simplificar gerar um circuito lógico com menos portas lógicas.

Viu que bacana? Reduzimos o circuito para uma porta AND e uma porta OR. Vamos ver como era o circuito antes e depois da simplificação? A Figura 7 mostra com seria o circuito sem simplificação e a Figura 8 o circuito simplificado.

Figura 7 - Circuito da expressão \(S = A \cdot B + A \cdot \bar{B} \cdot C + A \cdot B \cdot \bar{C}\) antes da simplificação

Sem título Text

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Figura 8 – Circuito lógico simplificado representando a expressão \(S = A \cdot (B + C)\)

[Image: Figura 8 – Circuito lógico simplificado representando a expressão \(S = A \cdot (B + C)\)]

Sem título Text

Fonte: Adaptada pelo autor.

Sem título Text

Vamos para mais um exemplo de simplificação, agora vamos voltar a analisar o circuito da Figura 4, lá do começo da unidade. A expressão booleana encontrada a partir da tabela-verdade foi: \( S = \bar{A} \cdot B \cdot \bar{C} + \bar{A} \cdot B \cdot C + A \cdot B \cdot C \).

Usando a álgebra e usando a dica de agrupar os termos, podemos colocar \(B \cdot C\) em evidência usando a propriedade distributiva, o resultado ficaria assim:

\( S = \bar{A} \cdot B \cdot \bar{C} + B \cdot C \)

Com o postulado da adição, podemos simplificar \( \bar{A} + A = 1 \) e com o postulado da multiplicação, podemos simplificar \(B \cdot C \cdot (1) = B \cdot C\) Então, teremos:

\( S = \bar{A} \cdot B \cdot \bar{C} + B \cdot C \)

Podemos ver que, mais uma vez, podemos evidenciar o B usando a propriedade distributiva, a expressão ficaria assim:

\( S = B \cdot (\bar{A} \cdot \bar{C} + C) \)

Note, que a partir desse ponto não tem mais redução de termos. Então, vamos montar o circuito lógico no Logisim? O circuito simplificado seria conforme a Figura 9.

Figura 9 – Simplificação do circuito da Figura 4, representado a expressão \( S = B \cdot (\bar{A} \cdot \bar{C} + C) \)

[Image: Figura 9 – Simplificação do circuito da Figura 4, representado a expressão \( S = B \cdot (\bar{A} \cdot \bar{C} + C) \)]

Sem título Text

Fonte: Adaptada pelo autor.

Mas, será que esse circuito é a única simplificação possível?

Se aplicarmos o teorema de De Morgan na expressão \( S = B \cdot (\bar{A} \cdot \bar{C} + C) \), em que \( \bar{A} \cdot \bar{C} = \overline{A + C}\), teríamos a expressão simplificada \(S = B \cdot (\overline{A + C} + C)\).

Será que ficaria melhor? Note na Figura 10 um novo circuito simplificado, em que trocamos duas portas NOT e uma AND por uma porta NOR, sem alterar o funcionamento lógico da saída.

Figura 10 – Circuito simplificado substituindo duas portas NOT e uma AND por uma porta NOR

[Image: Figura 10 – Circuito simplificado substituindo duas portas NOT e uma AND por uma porta NOR]

Sem título Text

Fonte: Adaptada pelo autor.

Podemos ainda refazer a simplificação da expressão \( S = \bar{A} \cdot B \cdot \bar{C} + \bar{A} \cdot B \cdot C + A \cdot B \cdot C \), começando com os passos a partir da evidência da entrada \(B\) e não de \(B \cdot C\), chegado a uma outra expressão simplificada igualmente correta: \(S = B \cdot (\bar{A} + A \cdot C)\). A Figura 11 representaria essa nova simplificação.

Figura 11 – Circuito simplificado para expressão \(S = B \cdot (\bar{A} + A \cdot C)\)

[Image: Figura 11 – Circuito simplificado para expressão \(S = B \cdot (\bar{A} + A \cdot C)\)]

Sem título Text

Fonte: Adaptada pelo autor.

Mas, então, qual simplificação usar? Geralmente escolhemos a simplificação que utilizaria menos portas lógicas. Mas, em um projeto, você depende também dos CI´s (circuito integrados) das portas lógicas disponíveis. E se não houver o CI da porta NOR? Desta forma, sempre é bom ter mais de uma simplificação possível.

Como último exemplo, iremos usar uma expressão booleana mais complexa e utilizar todas as regras possíveis. Vamos lá?

Neste exemplo, vamos simplificar a seguinte expressão booleana:

\(S = \overline{\bar{A} \cdot \bar{B} \cdot \bar{C} + \bar{A} \cdot \bar{B} \cdot C + A \cdot \bar{B} \cdot \bar{C} + A \cdot B \cdot \bar{C}}\)

Para simplificarmos esse exemplo vamos trabalhar primeiro nos 4 termos internos ao barrado. Para isso, vamos primeiramente agrupar os termos semelhantes para então aplicar a propriedade distributiva.

Propriedade distributiva:

\(S = \overline{\bar{A} \cdot \bar{B} \cdot \bar{C} + \bar{A} \cdot \bar{B} \cdot C + A \cdot \bar{B} \cdot \bar{C} + A \cdot B \cdot \bar{C}}\)

Perceba que \(\bar{A} \cdot \bar{B}\) se repete nos dois primeiros termos, podemos então aplicar a propriedade, ficaremos com:

\(S = \bar{A} \cdot \bar{B}(\bar{C} + C) + A \cdot \bar{B} \cdot \bar{C} + A \cdot B \cdot \bar{C}\)

Outro que podemos agrupar e aplicar a propriedade seria \(A \cdot \bar{C}\), ficaremos com:

\(S = \overline{\bar{A} \cdot \bar{B} \cdot (\bar{C} + C) + A \cdot \bar{C} \cdot (B + \bar{B})}\)

Postulado da adição:

Podemos aplicar o postulado em \(\bar{C} + C\) e \(B + \bar{B}\).

\(S = \overline{\bar{A} \cdot \bar{B} \cdot (1) + A \cdot \bar{C} \cdot (1)}\)

Postulado da multiplicação:

\(S = \overline{\bar{A} \cdot \bar{B} \cdot 1 + A \cdot \bar{C} \cdot 1}\)

Aplicando o postulado nos termos multiplicado 1, teremos:

\(S = \overline{\bar{A} \cdot \bar{B} + A \cdot \bar{C}}\)

Teorema De Morgan:

Observando que temos dois termos barrados, e para simplificar o “barrado” maior, podemos fazer o seguinte: \(Y = \bar{A} \cdot \bar{B}\) e \(Z = A \cdot \bar{C}\). Poderíamos reescrever assim:

\(S = \overline{Y + Z}\)

Fizemos isso para que fosse possível enxergar melhor a simplificação usando De Morgan, em que \(\overline{Y + Z} = \bar{Y} \cdot \bar{Z}\). Desta forma, voltando os termos, teremos:

\(S = (\overline{\overline{A +B}}) \cdot (\bar{A} + \bar{C})\)

Perceba que podemos De Morgan novamente no termo \(\bar{A} \cdot \bar{B} = (\overline{A + B})\) e no termo \(\overline{A \cdot \bar{C}} = (\bar{A} + \bar{C})\), resultando em:

\(S = (\overline{\overline{A + B}}) \cdot (\bar{A} + \bar{C})\)

Postulado complementação:

Aplicando esse postulado, teremos que \(S = (\overline{\overline{A + B}}) \cdot (A + B)\) e \(\bar{C} = C\), logo teremos:

\(S = (A+B)\cdot(\bar{A}+C)\)

Propriedade distributiva:

Usaremos essa propriedade, mas não no sentido de evidenciar termos iguais, mas no sentido contrário, como se fosse a multiplicação de produtos notáveis.

\(S = (A + B) \cdot (\bar{A} + C) = A \cdot \bar{A} + A \cdot C + B \cdot \bar{A} + B \cdot C\)

Postulado multiplicação e propriedade distributiva:

Aplicando esse postulado \(A \cdot \bar{A} = 0\) e evidenciando o \(B\), finalmente teremos a expressão simplificada.

\(S = A \cdot C + B \cdot (\bar{A} \cdot C)\)

Chegamos ao fim da nossa simplificação! Conseguiu perceber a importância das leis De Morgan no processo de simplificação? Elas são fundamentais quando os famosos “barrados” começam a aparecer.

Com calma e paciência de fazer operação a operação, você consegue simplificar qualquer circuito! Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 3

Q: Qual é a versão simplificada da seguinte expressão: \(S = A \cdot B + \bar{A} \cdot B + A \cdot D\)
- \(S = B + A \cdot D\) (correct)
- \(S = A \cdot B + C\)
- \(S = A \cdot B + A \cdot D\)

Sem título Text

Circuito lógico simplificado a partir da tabela-verdade com Logisim

Para finalizar essa unidade, iremos usar o Logisim de forma muito prática e fácil. Com ele podemos informar uma tabela-verdade e o programa nos apresentar o circuito lógico montado e simplificado. Legal, né? Assista o vídeo a seguir e insira a tabela-verdade no Logisim.

Tabela 4

A | B | C | S
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 0
0 | 1 | 1 | 1
1 | 0 | 0 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 1
1 | 1 | 1 | 1

Tabela 4 - Tabela-verdade para exercício com Logisim

Fonte: Elaborada pelo autor.

Sem título Text

Para aprofundar e consolidar o que você aprendeu, assista ao vídeo a seguir com atenção. Aproveite esse momento para revisar os principais conceitos, identificar possíveis dúvidas e relacionar as informações apresentadas às suas próprias práticas acadêmicas e profissionais.

Sem título Text

Conclusão

Chegamos ao fim deste capítulo, onde vimos que simplificar circuitos lógicos pode deixar nossos projetos muito mais eficientes, econômicos e bem mais fáceis de entender. Usamos para isso as ferramentas que já conhecemos, a tabela-verdade e a álgebra booleana. Com elas conseguimos simplificar expressões lógicas e reduzir o número de portas lógicas utilizadas nos circuitos.

A beleza da álgebra booleana está no fato de que, mesmo quando simplificamos uma expressão, o circuito continua fazendo exatamente a mesma coisa do circuito original. Ou seja, não importa o quanto a gente reduza a expressão, o comportamento lógico permanece o mesmo. É o mesmo que limpar os arquivos temporários de um computador sem perder nada de importante

A partir de um passo a passo, aprendemos como identificar as expressões booleanas, montar a tabela-verdade, aplicar as leis da álgebra booleana e, finalmente, redesenhar o circuito de forma eficiente. Vimos que, com essas técnicas, conseguimos transformar circuitos complicados em versões mais simplificadas sem perder nada do seu funcionamento.

Mas essa foi só a primeira parte do nosso trabalho. No próximo capítulo, vamos explorar uma ferramenta que vai facilitar ainda mais a simplificação: o Mapa de Karnaugh. Ele vai nos ajudar a enxergar padrões de simplificação de maneira rápida e visual, levando a otimizações ainda maiores nos nossos circuitos.

Glossário

Simplificação de Circuitos: o processo de reduzir o número de portas lógicas necessárias para executar uma operação, mantendo o comportamento lógico, mas tornando o circuito mais eficiente e econômico.

Atraso de propagação: tempo que o sistema leva para produzir saídas após o recebimento das entradas. A velocidade dos circuitos lógicos está diretamente relacionada a isso.

Mapa de Karnaugh: ferramenta visual utilizada para simplificar expressões booleanas. Ele organiza os valores da tabela-verdade de tal maneira que as simplificações possam ser identificadas mais facilmente através de agrupamentos de 0s ou 1s.

Capítulo 5 - Mapa de Karnaugh

Sem título CustomCSS

Sem título ObjetivoCapDEAD

No capítulo anterior, exploramos a importância da simplificação de circuitos lógicos e aprendemos a realizá-la utilizando a álgebra booleana e a tabela-verdade. Esses métodos nos permitiram otimizar circuitos, tornando-os mais eficientes e fáceis de entender. Todavia, ao utilizar a álgebra booleana, você precisará estar sempre familiarizado com todas as regras, leis e teoremas para aplicá-los. Por outro lado, existe um método que funciona como uma receita de bolo e também permite simplificar expressões e, consequentemente, circuitos lógicos: o mapa de Karnaugh. Acredite: uma vez que você aprenda a simplificar expressões com o mapa de Karnaugh, esse será o método que mais utilizará.

Sem título Text

Condições de entradas irrelevantes (don’t care)

O bit de don’t care está associado a uma sequência de entrada para a qual a saída não importa ou é irrelevante, ou ainda a condições que nunca ocorrerão. Ele é representado pela letra “X” e pode assumir os valores binários 0 ou 1, sem que isso altere a importância da saída para o resultado do circuito.

Dessa forma, os projetistas não precisam se preocupar com a saída gerada por esses termos, mas podem utilizá-los de maneira conveniente no projeto de simplificação, principalmente no mapa de Karnaugh, como veremos mais adiante.

Exemplo 1:

Vejamos um exemplo de don’t care (X). Iremos construir uma tabela-verdade para o controle da abertura automática da porta de um elevador em um prédio de dois andares.

O projeto terá três entradas. A primeira entrada informará se o motor do elevador está em movimento ou parado e será representada por M. Os sensores do elevador serão representados por A1 (sensor do térreo) e A2 (sensor do primeiro andar).

- Os sensores A1 e A2 indicarão o nível lógico 1 se o elevador estiver alinhado com o piso correspondente.
- O sinal do motor M = 1 indicará que ele está em movimento, enquanto M = 0 significará que está parado.
- A porta abrirá se a saída for igual a 1.

O próximo passo será montar a tabela-verdade que representa as condições e possibilidades descritas anteriormente.

Tabela 1

M | A1 | A2 | S
0 | 0 | 0 | 0
0 | 0 | 1 | 1
0 | 1 | 0 | 1
0 | 1 | 1 | x
1 | 0 | 0 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 0

Tabela 1 - Tabela-verdade para o funcionamento da abertura automática da porta do elevador

Fonte: Elaborada pelo autor.

Sem título Text

Analisando a tabela-verdade, percebemos que, sempre que o motor estiver em movimento (M = 1), a porta nunca abrirá. Nas condições em que A1 = 0, A2 = 0 e o motor estiver parado (M = 0), a porta não poderá abrir, pois o elevador pode ter parado entre os pisos devido a alguma falha ou à falta de energia. Se A1 = 1 ou A2 = 1 e o motor estiver parado, a porta abrirá automaticamente.

Mas e se A1 e A2 forem iguais a 1 ao mesmo tempo? Note que essa condição não existe, ou melhor, nunca ocorrerá, pois o elevador não poderia estar nos dois pisos ao mesmo tempo. Nesse caso, a saída será considerada don’t care e marcada com “X”.

Exemplo 2:

Vejamos outro exemplo, um pouco mais elaborado, contendo três entradas e três saídas. Iremos montar a tabela-verdade a partir das condições apresentadas no exercício e analisar se existem situações de don’t care.

As plataformas de petróleo, que também produzem gás, mantêm permanentemente acesa uma chama-piloto no flare para queimar o gás excedente. Suponha que o processo de queima seja realizado conforme a figura a seguir.

Figura 1

Expand Image

Minimize Image

Figura 1 – Exemplo de processo de queima de gás em plataforma de petróleo

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Exemplo de processo de queima de gás em plataforma de petróleo

Sem título Text

Considere que todos os equipamentos estão funcionando sem falhas ou erros. As regras do projeto lógico serão as seguintes:

1. O sensor de gás 1 (S1) ativa a válvula de entrada, permitindo a passagem do gás.
2. O sensor de gás 2 (S2) detecta se há uma pequena quantidade de gás na tubulação.
3. O sensor 3 (S3) detecta se há um grande fluxo de gás.
4. Se o sensor 2 estiver ativado e o sensor 3 não estiver, somente o provocador de chama 1 (E1) será ativado.
5. Porém, se os dois sensores estiverem ativados, os dois elementos (E1 e E2) serão ativados, de maneira a permitir uma combustão eficiente.
6. Se o sensor de gás 1 não estiver ativo, nenhum elemento provocador de chama poderá ser ativado, e a válvula deverá permanecer fechada.

A tabela-verdade desse projeto, que considera três entradas e três saídas, será apresentada a seguir.

Tabela 2

S1 | S2 | S3 | V1 | E1 | E2
0 | 0 | 0 | 0 | 0 | 0
0 | 0 | 1 | 0 | 0 | 0
0 | 1 | 0 | 0 | 0 | 0
0 | 1 | 1 | 0 | 0 | 0
1 | 0 | 0 | 1 | 0 | 0
1 | 0 | 1 | x | x | x
1 | 1 | 0 | 1 | 1 | 0
1 | 1 | 1 | 1 | 1 | 1

Tabela 2 - Tabela-verdade para o projeto de queima do gás excedente em plataforma de petróleo

Fonte: Elaborada pelo autor.

Sem título Text

Analisando a tabela, percebemos que as saídas só atuarão se o sensor S1, que está localizado antes da válvula, estiver no nível lógico 1. Logicamente, a decisão é colocar 0 (zero) em todas as saídas, mesmo que S1 ou S2 estejam, na tabela, em um nível lógico diferente, conforme a regra definida no projeto.

Entretanto, existe uma situação de don’t care nas saídas, com a válvula (V1) aberta e com passagem de gás, que nunca ocorrerá: o sensor de gás S3 apresentar bit lógico 1 enquanto o sensor de gás S2 apresentar bit lógico 0. Ora, não é possível que o sensor S2 apresente 0 e o sensor S3 apresente 1 se o gás tiver de passar primeiro por S2, não é verdade?

Estamos diante de um exemplo diferente dos que tratamos até agora, pois teremos de montar a expressão booleana para três saídas, e não mais para apenas uma. Retomaremos esse exemplo mais adiante, utilizando o mapa de Karnaugh.

O mapa de Veitch-Karnaugh

O mapa de Veitch-Karnaugh, também chamado simplesmente de mapa de Karnaugh ou, informalmente, mapa K, é uma tabela organizada de modo a facilitar o processo de minimização de expressões lógicas. Trata-se de um método gráfico de simplificação criado por Edward Veitch, em 1952, e aperfeiçoado pelo engenheiro de telecomunicações Maurice Karnaugh. Esse diagrama é chamado de mapa porque permite fazer um mapeamento a partir da tabela-verdade da função que está sendo analisada.

Na verdade, o mapa K é semelhante a uma tabela-verdade, pois nele estão representados todos os valores possíveis das variáveis de entrada e das saídas. Todavia, em vez de ser organizado em linhas e colunas como uma tabela-verdade, ele é estruturado como um arranjo de células. A organização dessas células e seus agrupamentos fornecem os caminhos para obter expressões booleanas simplificadas. O mapa é formado por 2ⁿ células, em que n é o número de variáveis de entrada. Portanto, o mapa de Karnaugh tem tantas células quantas são as linhas da tabela-verdade.

A seguir, temos um exemplo de uma tabela-verdade com duas entradas e seu respectivo mapa K.

Tabela 3 - Tabela-verdade de duas entradas e seu mapa de Karnaugh correspondente

[Image: Tabela-verdade de duas entradas e seu mapa de Karnaugh correspondente]

Sem título Text

Fonte: Elaborada pelo autor.

O mapa K nos fornecerá, como resultado, a expressão booleana já simplificada. Ele funciona muito bem para simplificações com até quatro variáveis; a partir desse número, sua utilização se torna um pouco mais complexa.

Distância de Hamming

O código de Hamming, desenvolvido por Richard Hamming, foi criado originalmente para a área de telecomunicações e é bastante utilizado na detecção de erros em transmissões de dados binários. Nesse contexto, existe o conceito de distância de Hamming, que, no sistema binário, corresponde à menor distância entre duas palavras ou códigos binários de mesmo comprimento.

Vejamos um exemplo da representação binária dos números decimais 1, 2, 3 e 4.

Tabela 3

Decimal | 1 | 2 | 3 | 4
Binário | 00 | 01 | 10 | 11

Tabela 3 - Representação binária dos números decimais 1, 2, 3 e 4

Fonte: Elaborada pelo autor.

Sem título Text

De forma simples, podemos explicar a distância de Hamming, neste caso com palavras de dois bits, como a quantidade de bits que mudam entre duas sequências. Por exemplo, entre as sequências 00 e 01, somente o segundo bit mudou de 0 para 1; logo, a distância de Hamming é 1. Entre as sequências 01 e 10, dois bits mudaram: o primeiro passou de 0 para 1, e o segundo, de 1 para 0. Portanto, a distância de Hamming é 2. Por fim, entre as sequências 10 e 11, somente o segundo bit mudou de 0 para 1; consequentemente, a distância de Hamming é 1.

E se quisermos organizar a mesma tabela de modo que a distância de Hamming entre sequências consecutivas seja igual a 1, como faríamos? A tabela ficaria conforme apresentado a seguir.

Tabela 4

Decimal | 1 | 2 | 4 | 3
Binário | 00 | 01 | 11 | 10

Tabela 4 -

Fonte: Elaborada pelo autor.

Sem título Text

Perceba que, nesta representação, a distância de Hamming entre cada par de sequências consecutivas é 1. Ou seja, na sequência 00–01–11–10, apenas um bit varia por vez.

Por que precisamos saber disso? Porque utilizaremos essa sequência no mapa de Karnaugh ao montarmos tabelas com mais de duas variáveis.

Quiz 1

Q: Em qual das opções a seguir a sequência binária apresenta distância de Hamming igual a 1?
- 101 🡪 111 (correct)
- 001 🡪 110
- 010 🡪 100

Sem título Text

Montando o mapa de Karnaugh (Mapa K)

Nesta parte, veremos como montar um mapa K a partir de uma tabela-verdade com até quatro variáveis de entrada. Usaremos as entradas A, B, C e D e suas combinações binárias. Na literatura, existem diversas formas de representar o mapa de Karnaugh; usaremos uma representação que consideramos simples e de fácil compreensão.

Mapa de Karnaugh para 2 variáveis

Considere a tabela-verdade a seguir, na qual S1, S2, S3 e S4 representam as possíveis saídas.

Sem título Table

A | B | S
0 | 0 | S1
0 | 1 | S2
1 | 0 | S3
1 | 1 | S4

Tabela 4 - Tabela-verdade com duas entradas e uma saída

Fonte: Elaborada pelo autor.

Sem título Text

Como vimos, o mapa K terá a mesma quantidade de células que a tabela-verdade tem de linhas. Portanto, o mapa com duas variáveis (A e B) será montado da seguinte forma:

Tabela 5 - Mapa de Karnaugh para duas variáveis

[Image: Mapa de Karnaugh para duas variáveis]

Sem título Text

Fonte: Elaborada pelo autor.

Note que as variáveis A e B são dispostas nas direções horizontal e vertical, respectivamente, ao lado das sequências binárias com todas as combinações possíveis.

E como será feito o preenchimento? A saída de cada linha da tabela-verdade será colocada na célula do mapa K correspondente à combinação binária de suas entradas.

Por exemplo, na primeira linha da tabela-verdade, temos A = 0 e B = 0. No mapa K, a célula localizada na primeira linha e na primeira coluna representa essa combinação. Da mesma forma, a saída da segunda linha da tabela-verdade, correspondente a A = 0 e B = 1, será representada — ou mapeada — na primeira linha e na segunda coluna do mapa K.

A saída da terceira linha da tabela-verdade, correspondente a A = 1 e B = 0, será representada na segunda linha e na primeira coluna do mapa K. Por fim, a saída da última linha da tabela-verdade, correspondente a A = 1 e B = 1, será representada na segunda linha e na segunda coluna do mapa K.

O resultado desse preenchimento será apresentado a seguir.

Tabela 6 - Tabela-verdade e Mapa K correspondente

[Image: Tabela 6 - Tabela-verdade e Mapa K correspondente]

Sem título Text

Fonte: Elaborada pelo autor.

Vejamos um exemplo com informações de saída preenchidos, conforme a seguir.

[Image: Tabela 6 - Tabela-verdade e Mapa K correspondente]

Sem título Text

Mapa de Karnaugh para três variáveis

Veremos como montar o mapa de Karnaugh para três variáveis de entrada. A lógica de preenchimento e mapeamento será a mesma; porém, haverá algumas diferenças na montagem do mapa K.

A primeira diferença é que, em um dos lados da tabela, colocaremos duas variáveis e, no outro, apenas uma. A segunda é que todas as combinações entre A e B, representadas pelo termo AB no mapa, serão organizadas de acordo com a distância de Hamming: 00–01–11–10.

Vejamos um exemplo de como montar o mapa K, mapeando os valores da tabela-verdade.

Tabela 7 - Tabela-verdade e Mapa K correspondente

[Image: Tabela 7 - Tabela-verdade e Mapa K correspondente]

Sem título Text

É importante frisar que 00, no termo AB, significa A = 0 e B = 0. Da mesma forma, 01 significa A = 0 e B = 1, e assim por diante.

Vejamos um exemplo com informações de saída preenchidos, conforme a seguir.

Tabela 7 -  Tabela-verdade e Mapa K correspondente

[Image: Tabela 7 - Tabela-verdade e Mapa K correspondente]

Sem título Text

Fonte: Elaborada pelo autor.

Mapa de Karnaugh para 4 variáveis

Com quatro variáveis de entrada, a lógica de preenchimento do mapa de Karnaugh será a mesma. A diferença estará na organização dos dois lados do mapa, que terão um par de entradas cada um (os termos AB e CD) e suas respectivas combinações, conforme veremos a seguir.

Tabela 8 - Tabela-verdade e Mapa K correspondente

[Image: Tabela 8 - Tabela-verdade e Mapa K correspondente]

Sem título Text

Fonte: Elaborada pelo autor.

Note que, em ambos os lados do mapa K, as combinações binárias obedecem à distância de Hamming igual a 1. Da mesma forma que nos exemplos anteriores, vejamos um exemplo com os valores de saída preenchidos.

Sem título Text

Formando agrupamento de termos no mapa de Karnaugh

A partir deste ponto, consideraremos concluído o estudo sobre a montagem de mapas de Karnaugh com até quatro variáveis. Os exemplos a seguir apresentarão somente o mapa de Karnaugh e as regras para o agrupamento dos termos necessários à simplificação da expressão booleana.

A principal tarefa para a simplificação a partir do mapa de Karnaugh é agrupar os bits 1’s do mapa, buscando formar blocos com a maior quantidade possível de bits 1’s adjacentes. Assim, os primeiros passos no mapa seriam:

1. Unir em blocos os 1´s adjacentes (1´s próximos um do outro);
2. Formar blocos com a maior quantidade de 1´s possíveis, cuja formação será de pares, quadras e oitavas, respeitando a regra de nº blocos = \(2^n\), em que n é o número de agrupamento por bloco.
3. Cada bloco formado terá uma expressão booleana correspondente, sendo o resultado final a “soma” das expressões de cada bloco.

Vejamos um exemplo de mapa K com duas variáveis e dois blocos de agrupamento.

Tabela 9

Expand Image

Minimize Image

Tabela 9 - Mapa K com dois pares formados

Fonte: Elaborada pelo autor.

Sem título Text

Os agrupamentos foram feitos usando os 1´s próximos, formando dois grupos, ou seja, dois pares com bits 1´s adjacentes. Note que os dois pares compartilham o mesmo bit “1” que está na linha 2, coluna 2. Sempre que possível, isso pode ser feito para agrupar ao máximo a quantidade de 1´s.

Vejamos outro exemplo de formação de grupos com um mapa para três variáveis.

Tabela 10

Expand Image

Minimize Image

Tabela 10 - Mapa K com uma quadra formada e um par formado

Fonte: Elaborada pelo autor.

Sem título Text

Neste exemplo, temos dois blocos: um deles formou um par, e o outro, uma quadra com os 1’s. Vamos analisar exemplos de agrupamento em mapas K de três variáveis, considerando diversas outras situações.

Tabela 11

Expand Image

Minimize Image

Fonte: Elaborada pelo autor.

Tabela 11 - Mapa K com uma quadra formada e um par formada

Sem título Text

Esse exemplo também apresenta dois blocos: um par e uma quadra. Mas como isso é possível? No mapa de Karnaugh com três variáveis, devemos imaginá-lo como um cilindro, cujas bordas estão conectadas e, portanto, são adjacentes. Vejamos mais um exemplo de mapa K com três variáveis.

Tabela 12

Expand Image

Minimize Image

Tabela 12 - Mapa K com dois pares e uma unidade sem agrupamento

Fonte: Elaborada pelo autor.

Sem título Text

No exemplo acima, perceba que há uma sequência de três bits 1’s adjacentes. No entanto, eles não podem formar um único bloco, pois a quantidade de células de cada agrupamento deve obedecer à regra \(2^n\). Nesse caso, serão formados dois pares. Note que há um bit na primeira linha e na última coluna que não possui bits 1’s adjacentes capazes de formar um par ou uma quadra. Lembre-se de que células dispostas na diagonal não são consideradas adjacentes.

Nos mapas de Karnaugh com quatro variáveis, veremos alguns agrupamentos interessantes. Nesse caso, podemos imaginar o mapa como uma superfície com conexão entre as bordas opostas, de modo que as células das extremidades também sejam consideradas adjacentes. No exemplo a seguir, teremos a formação de uma oitava, uma quadra e um par.

Tabela 13

Expand Image

Minimize Image

Tabela 13 - Mapa K com uma oitava, uma quadra e um par formados

Fonte: Elaborada pelo autor.

Sem título Text

Neste próximo exemplo, podemos observar a formação de uma quadra utilizando o conceito do cilindro, no qual as extremidades são consideradas adjacentes. Nesse caso, o mapa K abaixo apresenta uma quadra e um par.

Tabela 14

Expand Image

Minimize Image

Tabela 14 - Mapa K com uma quadra e um par formados

Fonte: Elaborada pelo autor.

Sem título Text

Simplificação booleana a partir do mapa de Karnaugh

Até aqui, vimos, em etapas, como montar o mapa K e agrupar os bits 1’s adjacentes para formar blocos com pares, quadras e oitavas. O objetivo é obter, finalmente, a expressão booleana simplificada. Para realizar essa simplificação, devemos observar alguns passos e regras:

Quanto maior for o bloco formado, maior será a quantidade de variáveis eliminadas da expressão booleana e mais simplificada ela ficará.

1. Unidade: nenhuma variável é eliminada.
2. Par: uma variável é eliminada.
3. Quadra: duas variáveis são eliminadas.
4. Oitava: três variáveis são eliminadas.

Na expressão correspondente a cada bloco delimitado, eliminam-se as variáveis que mudam de estado dentro do bloco.

As variáveis que não mudam de estado dentro do bloco são mantidas na expressão, representando seus respectivos valores fixos (ex.: Se \(A =1\), então \(A\). Se \(A = 0\), então \(\bar{A}\)).

Vamos encontrar a expressão booleana simplificada correspondente ao mapa K a seguir, cujo exemplo de agrupamento vimos nesta unidade.

Tabela 15

Expand Image

Minimize Image

Tabela 15 - Expressão booleana simplificada será \(S = A + B\)

Fonte: Elaborada pelo autor.

Sem título Text

Neste exemplo, temos um mapa K com duas variáveis e dois pares formados. Pela regra, cada par elimina uma variável. Observe o par formado e delimitado em vermelho, note que dentro deste bloco, a entrada A varia entre 0 e 1, logo será eliminado, mas o B (B=1) não varia, ficando sempre em nível lógico 1 dentro do bloco. Então, a expressão booleana para esse bloco será \(S = B\). Agora, analisando o outro par delimitado por azul, ao longo do bloco a entrada B pode variar entre 0 e 1, então será eliminada, mas o termo A (A=1) não varia, portanto, a expressão booleana para esse bloco será \(S = A\). Como foi definido, a expressão booleana final será a “soma” das expressões de cada bloco, logo a saída simplificada final será: \(S = A + B\).

Vejamos mais um exemplo que trabalhamos no agrupamento, para obter a expressão simplificada.

Tabela 16

Tabela 16 - Expressão booleana simplificada será \(S = \bar{A} \cdot C + \cdot{B}\)

Fonte: Elaborada pelo autor.

Expand Image

Minimize Image

Sem título Text

Seguindo a regra de eliminação de variáveis, no bloco que formou um par que está destacado de vermelho, percebemos que o termo AB (na horizontal), B varia, mas \(\bar{A}\) (ou seja, A=0) não varia. De igual forma, na vertical, o termo C (C=1) também não varia, logo para esse par a expressão booleana será \(S = \bar{A} \cdot C\). Para o bloco formada pela quadra, destacado em azul, no termo AB, não tem variação de \(\bar{B}\)  (B=0), mas tem variação da entrada A (variável eliminado). Analisando, por fim, o termo C na vertical, concluímos que o C varia, ou seja, variável eliminada. Então, a expressão para essa quadra será \(S = \bar{B}\), já que com uma quadra podemos eliminar duas variáveis das três variáveis no mapa K. Finalmente, a expressão final para esse mapa será \(S = \bar{A} \cdot C + \bar{B}\).

Vejamos um exemplo que no mapa K tem uma unidade que não pode ser agrupada, logo não tendo variável eliminada.

Sem título Imagem

Tabela 17 - Expressão booleana simplificada será \(S = \bar{A} \cdot C + B \cdot C + A \cdot \bar{B} \cdot \bar{C}\)

Fonte: Elaborada pelo autor.

Expand Image

Minimize Image

Sem título Text

Seguindo a mesma lógica dos exemplos anteriores, os dois pares formadas eliminarão uma variável. Para o par delimitado em vermelho, C não varia e entre o termo AB, tem variação no B (variável eliminada) e o \(\bar{A}\) (A=0) não varia, logo para esse par a expressão será \(S = \bar{A} \cdot C\). No outro par delimitado em azul, C não varia e no termo AB, tem variação do A (variável eliminada) e o B (B=1) não varia, então para esse par a expressão resultante será \(S = B \cdot C\). A unidade sem agrupamento não terá variável eliminada, desta forma usaremos todos seus termos na expressão, neste caso, A=1, B=0 e C=0, resultando na expressão \(S = A \bar{B} \cdot \bar{C}\). Por fim, a expressão booleana final será a “soma” de todas as três expressões: \(S = \bar{A} \cdot C + B \cdot C + A \cdot \bar{B} \cdot \bar{C}\).

Por fim, vamos obter a expressão booleana simplificada de um mapa K com quatro variáveis, no qual foram formados blocos de uma oitava, uma quadra e um par, conforme apresentado a seguir.

Tabela 18

Expand Image

Minimize Image

Tabela 18 - Expressão booleana simplificada será \(S = A + B \cdot D + \bar{B} \cdot C \cdot \bar{D}\)

Fonte: Elaborada pelo autor.

Expressão booleana simplificada será \(S = A + B \cdot D + \bar{B} \cdot C \cdot \bar{D}\)

Sem título Text

Usando a mesma linha de entendimento dos demais exemplos, o bloco formado por uma oitava eliminará três variáveis, a quadra eliminará duas variáveis e o par somente uma variável. No bloco que forma uma oitava, no termo AB, há variação de B (variável eliminada) e A (A=1) não varia. Dentro do mesmo bloco da oitava, no termo CD, tanto C quanto D variam, então as duas variáveis serão dispensadas da expressão, resultando na expressão \(S = A\). No bloco que forma uma quadra, no termo AB, há variação de A (eliminada) e não de B (B=1). No termo CD, dentro da mesma quadra, há variação C (eliminada) e não de D (D=1). Portanto, para a quadra a expressão será \(S = B \cdot D\). E para o par formado no mapa K, no termo AB, há variação de A (eliminada) e não de \(\bar{B}\) (B=0). Olhando para o termo CD, dentro do par formada, não existe variação, logo manteremos \(C \cdot \bar{D}\) (C=1, D=0), ficando a expressão para esse par como \(S = \bar{B} \cdot C \cdot \bar{D}\). Somando (OR lógico) para as três expressões, teremos a expressão booleana simplificada para esse mapa: \(S = A + B \cdot D + \bar{B} \cdot C \cdot \bar{D}\).

Para fixar melhor o que aprendeu, pratique os conhecimentos no quiz a seguir. Essa atividade ajudará você a consolidar o processo de conversão e a identificar possíveis dúvidas.

Quiz 2

Q: Em um mapa de Karnaugh com três variáveis foram formados dois blocos, um par e uma quadra. Quantas variáveis serão eliminadas por bloco, respectivamente?
- 1 e 2 (correct)
- 1 e 1
- 2 e 1
- 2 e 2

Sem título Text

Exemplo de simplificação com três entradas e três saídas

Neste exemplo resolvido, voltaremos a analisar o caso do queimador de gás excedente, representado na Figura 1, cuja tabela-verdade é apresentada a seguir. Lembrando que S1, S2 e S3 são os sensores de gás; V1 é a válvula de admissão de gás; e E1 e E2 são os elementos responsáveis por provocar a chama.

Tabela 19

S1 | S2 | S3 | V1 | E1 | E2
0 | 0 | 0 | 0 | 0 | 0
0 | 0 | 1 | 0 | 0 | 0
0 | 1 | 0 | 0 | 0 | 0
0 | 1 | 1 | 0 | 0 | 0
1 | 0 | 0 | 1 | 0 | 0
1 | 0 | 1 | x | x | x
1 | 1 | 0 | 1 | 1 | 0
1 | 1 | 1 | 1 | 1 | 1

Tabela 19 - Tabela-verdade do projeto lógico da Figura 1

Fonte: Elaborada pelo autor.

Sem título Text

Como utilizar o mapa de Karnaugh quando há três saídas? Deve-se montar um mapa K para cada saída individualmente. Com os conhecimentos já adquiridos, podemos montar o mapa K para a saída V1 (a válvula de entrada de gás) e formar os blocos. O resultado será apresentado a seguir.

Tabela 20

Expand Image

Minimize Image

Tabela 20 - Mapa K para \(V1 = S1\)

Fonte: Elaborada pelo autor.

Sem título Text

Perceba que a quadra formada inclui o bit don’t care. Como esse bit pode assumir o valor 0 ou 1, podemos considerá-lo como 1 e, convenientemente, formar uma quadra. Caso contrário, teríamos de formar dois pares. Assim, a expressão booleana da saída será \(V1 = S1\). Para a saída E1, o mapa K será montado e os blocos serão delimitados conforme apresentado a seguir.

Tabela 21

Expand Image

Minimize Image

Tabela 21 - Mapa K para \(E1 = S1 \cdot S2\)

Fonte: Elaborada pelo autor.

Sem título Text

Neste caso, é mais conveniente não utilizar o bit don’t care, pois, caso contrário, teríamos de formar dois pares. Por fim, para a saída E2, o mapa K montado, com os blocos delimitados, será apresentado a seguir.

Tabela 22

Expand Image

Minimize Image

Tabela 22 - Mapa K para \(E2 = S1 \cdot S3\)

Fonte: Elaborada pelo autor.

Mapa K para \(E2 = S1 \cdot S3\)

Sem título Text

Para esse mapa, seria possível usar o bit de don’t care, convenientemente, e formar um par. A expressão booleana para saída será \(E2 = S1 \cdot S3\).

A Figura 2 a seguir, mostra como seria o circuito lógico para atender a esse projeto com três entradas e três saídas.

Figura 2 – Circuito lógico simplificado a partir do mapa K com três entradas e três saídas

[Image: Figura 2 – Circuito lógico simplificado a partir do mapa K com 3 entradas e 3 saídas]

Sem título Text

Fonte: Elaborada pelo autor.

Outro formato para mapa de Karnaugh de 2, 3 e 4 variáveis

Existem várias formas de montar e utilizar o mapa de Karnaugh descritas na literatura. Até aqui, vimos uma dessas formas. Nesta subseção, porém, apresentaremos outra maneira, igualmente eficiente, de construir e utilizar o mapa K, que também pode ser empregada na simplificação de expressões booleanas. A Figura 3 mostra como são esses mapas para duas, três e quatro variáveis.

Sem título Imagem

Expand Image

Minimize Image

Figura 3 – Mapas de Karnaugh para 2, 3 e 4 variáveis

Fonte: Adaptada pelo autor.

Mapas de Karnaugh para 2, 3 e 4 variáveis

Sem título Text

Não existe uma maneira ou um formato necessariamente melhor; existe aquele com o qual você mais se identifica durante o processo de aprendizagem e se sente mais confortável para realizar as simplificações.

Perceba que, nesse formato do mapa K, não utilizamos explicitamente as sequências binárias nas direções horizontal e vertical. Por outro lado, os termos correspondentes às variáveis de entrada são apresentados de forma explícita, o que pode facilitar a montagem da expressão booleana simplificada. As regras de agrupamento dos termos, formando pares, quadras e oitavas, permanecem as mesmas, assim como a eliminação das variáveis que variam dentro de um bloco.

E como seria o preenchimento — ou, melhor dizendo, o mapeamento da tabela-verdade — nesses mapas? Vejamos, a seguir, como é feita a correspondência entre as combinações da tabela-verdade e os mapas K apresentados na Figura 3.

Mapa K para duas variáveis

Na tabela-verdade a seguir, chamaremos as possíveis saídas de “casos” e mapearemos cada “caso” na respectiva interseção do mapa de Karnaugh.

Tabela 23

A | B | S
0 | 0 | Caso 1
0 | 1 | Caso 2
1 | 0 | Caso 3
1 | 1 | Caso 4

Tabela 23 - Tabela-verdade para 2 variáveis

Fonte: Elaborada pelo autor.

Sem título Text

O mapa de Karnaugh correspondente é apresentado na Figura 4. Note que esse mapa também é estruturado no formato de células, e cada célula representa uma combinação de variáveis correspondente a uma linha da tabela-verdade.

Figura 4

Expand Image

Minimize Image

Figura 4 – Mapa de Karnaugh para 2 variáveis e todos os casos alocados

Fonte: Capuano, 2014

Mapa de Karnaugh para 2 variáveis e todos os casos alocados.

Sem título Text

Vejamos, a seguir, uma tabela-verdade e o mapa K de duas variáveis preenchidos, já incluindo a formação dos blocos para a simplificação.

Tabela 24

A | B | S
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1

Tabela 24 - Tabela-verdade e mapa K correspondente de 2 variáveis. Expressão: \(S = A + B\)

Fonte: Elaborada pelo autor.

Sem título Text

Note no mapa K que foram formados 2 pares, ou seja, a regra de agrupamentos de bits 1´s adjacentes são as mesmas para formação dos blocos. A regra para eliminação de variáveis também será a mesma. No par que está delimitado em vermelho, perceba que, dentro do bloco, o B varia (entre \(B\) e \(\bar{B}\)), logo será a variável eliminada. Mas, dentre deste mesmo par, o A (A=1) não varia, então será a variável mantida, portanto a expressão para esse bloco será . Para o par delimitado em azul, seguindo a mesma regra, há variação de A (variável eliminada) e não há variação de B (B=1), logo a expressão para esse bloco será \(S = B\). A expressão resultante final será a “soma” da expressão de cada bloco: \(S = A + B\).

Sem título Text

Mapa K para três variáveis

Seguindo o mesmo entendimento do mapa anterior, vejamos como seria o mapeamento de cada caso da tabela-verdade para o mapa de Karnaugh correspondente, quando temos três variáveis de entrada.

Tabela 25

A | B | C | S
0 | 0 | 0 | Caso 1
0 | 0 | 1 | Caso 2
0 | 1 | 0 | Caso 3
0 | 1 | 1 | Caso 4
1 | 0 | 0 | Caso 5
1 | 0 | 1 | Caso 6
1 | 1 | 0 | Caso 7
1 | 1 | 1 | Caso 8

Tabela 25 - Tabela-verdade para três variáveis

Fonte: Elaborada pelo autor.

Sem título Text

O mapeamento da tabela-verdade apresentada anteriormente para o mapa K de três variáveis, incluindo suas respectivas saídas, é mostrado na figura a seguir.

Figura 5

Expand Image

Minimize Image

Figura 5 – Mapa de Karnaugh para três variáveis e todos os casos alocados

Fonte: Capuano, 2014

Sem título Text

Percebam neste mapa que a variável C (C=1) faz interseção em todas as células do quadrante do meio da tabela, enquanto o \(\bar{C}\) são adjacentes nas bordas. O conceito de cilindro entre as bordas também se aplica para este mapa K com três variáveis, ou seja, as bordas são adjacentes. Outro ponto a notar, é que a distância de Hamming (igual a 1) também é utilizada na hora de mapear e montar cada caso neste formato de mapa K.

Como exemplo, vejamos a tabela-verdade e o mapa K para três variáveis, já incluindo a formação dos blocos para simplificação, conforme a seguir.

Tabela 26 - Tabela-verdade e mapa K correspondente de 3 variáveis \(S = A \cdot \bar{C} + B\)

[Image: Tabela 26 - Tabela-verdade e mapa K correspondente de 3 variáveis \(S = A \cdot \bar{C} + B\)]

Sem título Imagem

Expand Image

Minimize Image

Sem título Text

Fonte: Elaborada pelo autor.

Neste exemplo, temos blocos formados por uma quadra e um par. Para o bloco formado pela quadra, pela regra, precisaremos eliminar duas das três variáveis, enquanto no par podemos eliminar somente uma variável. Dentro da quadra delimitado de azul, A varia (entre \(A\) e \(\bar{A}\)) e C também varia (entre \(C\) e \(\bar{C}\)), ficando somente o B (B=1) sem variação dentro desse bloco, logo será a variável não eliminada. A expressão para essa quadra será . Usando o conceito do cilindro, pôde-se formar o par que está delimitado em vermelho. Neste bloco, há variação somente de B (entre \(B\) e \(\bar{B}\)) , fazendo com que a expressão para esse bloco seja \(S = A \cdot \bar{C}\). A expressão booleana simplificada final será \(S = A \cdot \bar{C} + B\).

Mapa K para 4 variáveis

Por fim, veremos o mapa de Karnaugh para quatro variáveis. A seguir, apresentamos o mapeamento de cada caso da tabela-verdade para o respectivo mapa de Karnaugh.

Tabela 27

A | B | C | D | S
0 | 0 | 0 | 0 | Caso 1
0 | 0 | 0 | 1 | Caso 2
0 | 0 | 1 | 0 | Caso 3
0 | 0 | 1 | 1 | Caso 4
0 | 1 | 0 | 0 | Caso 5
0 | 1 | 0 | 1 | Caso 6
0 | 1 | 1 | 0 | Caso 7
0 | 1 | 1 | 1 | Caso 8
1 | 0 | 0 | 0 | Caso 9
1 | 0 | 0 | 1 | Caso 10
1 | 0 | 1 | 0 | Caso 11
1 | 0 | 1 | 1 | Caso 12
1 | 1 | 0 | 0 | Caso 13
1 | 1 | 0 | 1 | Caso 14
1 | 1 | 1 | 0 | Caso 15
1 | 1 | 1 | 1 | Caso 16

Tabela 27 - Tabela-verdade para 4 variáveis

Fonte: Elaborada pelo autor.

Sem título Text

O mapeamento da tabela-verdade apresentada anteriormente para o mapa K de quatro variáveis, incluindo suas respectivas saídas, é mostrado na figura a seguir.

Figura 6

Expand Image

Minimize Image

Figura 6 – Mapa de Karnaugh para 4 variáveis e todos os casos alocados

Fonte: Capuano, 2014

Sem título Text

Nesse formato de mapa de Karnaugh, também se aplica o conceito de esfera, segundo o qual todas as bordas são adjacentes. Como exemplo, vejamos, a seguir, a tabela-verdade e o mapa K de quatro variáveis, já com os blocos formados para a simplificação.

Tabela 28 - Tabela-verdade e mapa K correspondente de quatro variáveis. Expressão: \(S = A + \bar{B} \cdot \bar{D}\)

[Image: Tabela 28 - Tabela-verdade e mapa K correspondente de 4 variáveis. Expressão: \(S = A + \bar{B} \cdot \bar{D}\)]

Sem título Imagem

Expand Image

Minimize Image

Sem título Text

Fonte: Elaborada pelo autor.

Neste exemplo, foram formados blocos com uma oitava e uma quadra. A oitava eliminará três das quatros variáveis. Dentro desse bloco, delimitado por vermelho, a única variável sem variação é A (A=1), sendo a expressão para esse bloco \(S = A\). Usando o conceito da esfera, temos uma quadra formada por 1´s adjacentes nas bordas do mapa K. Neste bloco delimitado em roxo, A e C variam e serão as variáveis eliminadas. Já e  não variam, formando a expressão \(S = \bar{B} \cdot \bar{D}\). A expressão booleana simplificada resultante para esse exemplo será \(S = A + \bar{B} \cdot \bar{D}\).

Como atividade de fixação, vamos construir um circuito lógico para o sistema de controle de carregamento de grãos, conforme a Figura 7. Os elementos A, B e C são sensores que monitoram o nível máximo do silo, o nível mínimo do silo e a presença do caminhão de carregamento, respectivamente. V é uma válvula que permite a abertura ou fechamento da saída do silo. M é um motor, quando acionado permite o carregamento de grãos para o silo. Quando V receber nível lógico 1, a válvula é aberta e permite o carregamento do caminhão, quando receber nível lógico 0 a válvula fecha a saída do silo. O motor M, que carrega o silo, é acionado com nível lógico 1 e desligado com nível lógico 0.

Considerando que todos os elementos estão funcionando e sem falhas ou erros, as regras de funcionamento serão:

1. Se a quantidade de grãos estiver abaixo do mínimo (B=0), então deve-se fechar a válvula de saída (V=0) e ligar o motor (M=1) para entrada de grãos no silo.
2. A válvula de saída abrirá quando o silo estiver cheio (A=1) ou com nível acima no mínimo (B=1) e houve a presença de um caminhão (C=1).
3. Comente quando o silo ficar cheio (A=1) o motor deve ser desligado (M=0).
4. Quando o caminhão encher, ele sai do local de carregamento.

Sem título Imagem

Expand Image

Minimize Image

Figura 7 – Controle de carregamento de grãos a partir de silo de armazenamento

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do IFRN-ZL.

Sem título Text

A tabela-verdade a seguir representa todas as combinações de entradas e saídas desse sistema.

Tabela 29

A | B | C | V | M
0 | 0 | 0 | 0 | 1
0 | 0 | 1 | 0 | 1
0 | 1 | 0 | 0 | 1
0 | 1 | 1 | 1 | 1
1 | 0 | 0 | x | x
1 | 0 | 1 | x | x
1 | 1 | 0 | 0 | 0
1 | 1 | 1 | 1 | 0

Tabela 29 - Tabela-verdade para controle do carregamento de grãos

Fonte: Elaborada pelo autor.

Sem título Text

Note que existem duas situações de don’t care, pois não é possível que o silo esteja cheio e vazio ao mesmo tempo. O mapa K para a saída da válvula V será apresentado a seguir.

Tabela 30

Expand Image

Minimize Image

Tabela 30 - Mapa K para controle da válvula V de saída do silo

Fonte: Elaborada pelo autor.

Mapa K para controle da válvula V de saída do silo

Sem título Text

Neste mapa K, não será conveniente usar os bits de don’t care, senão formaremos dois pares. A expressão booleana que descreve a lógica da válvula será \(V = B \cdot C\), pois dentro desse bloco, B (B=1) e C (C=1) não variam, mas há variação de A. O mapa K para o motor M, que controla a entrada de grãos no silo, será apresentado a seguir.

Tabela 31

Expand Image

Minimize Image

Tabela 31 - Mapa K para controle do motor M

Fonte: Elaborada pelo autor.

Mapa K para controle do motor M

Sem título Text

Para este mapa K, não é interessante, também, usar os bits de don’t care. Logo, teremos um bloco formando uma quadra em que o único termo sem variação é \(\bar{A}\), então a expressão booleana simplificada será \(M = \bar{A}\).

O circuito lógico a seguir, Figura 8, representará o funcionamento para esse sistema.

Figura 8 – Circuito lógico para controle de carregamento de grãos

[Image: Figura 8 – Circuito lógico para controle de carregamento de grãos]

Sem título Text

Fonte: Adaptada pelo autor.

Conclusão

Ao fim deste capítulo, passamos por diversas ferramentas e técnicas disponíveis para a simplificação de circuitos e/ou expressões booleanas. O mapa de Karnaugh é uma técnica de simplificação muito importante e, uma vez aprendido, tende naturalmente a se tornar a metodologia mais recomendada.

Vale ressaltar que o mapa de Karnaugh é recomendado para até quatro variáveis. A partir de cinco variáveis, sua utilização se torna mais complexa e talvez deixe de ser a melhor opção.

Na literatura, há diversas formas de montar o mapa de Karnaugh. Utilize aquela com a qual você se sentir mais à vontade, pois o resultado será o mesmo. Para reforçar seus conhecimentos sobre o assunto, consulte também os diversos vídeos disponíveis no YouTube.

Por fim, uma boa atividade, que pode ser realizada como tarefa, é inserir, no Logisim, a tabela-verdade de um dos exemplos apresentados neste capítulo e comparar o mapa de Karnaugh gerado pelo programa.

Glossário

Distância de Hamming: é o número de posições nas quais duas cadeias de códigos de mesmo comprimento, se diferem entre si.

Don't care: palavra em inglês usada na tabela-verdade para situações de saídas binárias cujas entradas nunca ocorrerão, logo suas saídas serão irrelevantes. Será representado pela letra “x”.

Mapa K: uso informal para se referir ao mapa de Karnaugh.

Bit adjacente: são os bits vizinhos sejam na horizontal ou vertical, geralmente atribuído aos bits 1´s no mapa de Karnaugh.

Capítulo 6 - Circuito integrado, Códigos e Circuitos Combinacionais

Sem título CustomCSS

Sem título ObjetivoCapDEAD

No capítulo anterior, estudamos a simplificação de circuitos e expressões lógicas digitais. Neste capítulo, abordaremos circuitos integrados, códigos e circuitos lógicos combinacionais. Inicialmente, estudaremos codificadores e decodificadores, responsáveis por converter informações entre diferentes formatos.

Sem título Text

Circuitos integrados básicos para portas lógicas

Na prática, as portas lógicas estão presentes em circuitos integrados (CIs) comerciais, disponíveis nas tecnologias CMOS (Complementary Metal-Oxide Semiconductor) e TTL (Transistor-Transistor Logic). Independentemente do CI escolhido, o funcionamento lógico da porta será o mesmo, baseado em operações binárias. A tabela a seguir apresenta algumas referências de CIs para portas lógicas.

Tabela 1

Tabela 1 – CI's de portas lógicas comerciais

TTL | CMOS | Especificações
7400 | 4011 | 4 portas NAND de 2 entradas
7402 | 4001 | 4 portas NOR de 2 entradas
7404 | 4009 | 6 portas INVERSORAS
7408 | 4081 | 4 portas AND de 2 entradas
7432 | 4071 | 4 portas OR de 2 entradas
7486 | 4030 | 4 portas XOR de 2 entradas
7410 | 4023 | 3 portas NAND de 3 entradas
7427 | 4002 | 2 portas NOR de 4 entradas
7430 | 74C30 | 1 porta NAND de 8 entradas

Fonte: Elaborada pelo autor.

Sem título Text

A partir do datasheet, documento que reúne informações detalhadas sobre as características, especificações, funcionamento e aplicações de um componente, é possível conhecer o funcionamento dos CIs e saber como realizar suas ligações. A Figura 1, por exemplo, mostra como utilizar as portas lógicas NAND do CI 7400.

Figura 1

Expand Image

Minimize Image

Figura 1 – Estrutura interna do CI 7400 para porta NAND

Fonte: Adaptada pelo autor.

Sem título Text

Geralmente, para esse tipo de CI, a tensão de alimentação VCC será de 5 V. O GND é a referência do circuito, ou seja, o seu “terra”. Na Figura 2, temos a mesma porta lógica, porém implementada na tecnologia CMOS. Esse tipo de CI é mais adequado para placas com componentes de montagem em superfície. Além de ser menor, ele consome menos energia que um CI TTL.

Figura 2 – Encapsulamento SOIC circuito CMOS 4011 portas NAND

Sem título Emphasis Card

Pesquise sobre o Datasheet de alguns do CIs que foram citados e leiam o que esse “manual” pode oferecer de informações. Na pesquisa use sempre o nome “Datasheet”.

Sem título Text

Vamos construir um exemplo que, ao final, tenha o circuito combinacional, apesar dessa definição ser mais aplicado a um conjunto de circuito pré-definidos que veremos mais a frente, usando alguns CIs de portas lógicas.

Considere um sistema de controle de bombeamento de água, cujo seu funcionamento está representado na Figura 4, em que todos os seus equipamentos estão funcionando sem erros ou falhas.

Sem título Imagem

Expand Image

Minimize Image

Figura 4 – Esquema de funcionamento de controle de um sistema de bombeamento de água

Fonte: Lourenço, 2009

Sem título Text

Os sensores de nível estão indicados por H (nível alto) e L (nível baixo) para a caixa d’água. O B indicar a saída para o funcionamento da bomba e a saída para o alarme será representado por A. As regras de controle desse sistema será conforme a seguir.

1. Se H e L enviarem nível lógico baixo (bit lógico 0), significa que a água está abaixo deles.
2. Se H e L enviarem nível lógico alto (bit lógico 1), significa que a água está sobre ele ou acima dele.
3. Sempre que o nível ficar abaixo de H, a bomba deverá ser acionada.
4. Se o nível da água ficar abaixo de L, o alarme deve ser acionado até que o nível da água suba acima de L.

Como já aprenderemos nos capítulos anteriores, vamos montar a tabela-verdade para duas entradas e duas saídas. Ela será conforme a tabela a seguir.

Sem título Table

H | L | B | A
0 | 0 | 1 | 1
0 | 1 | 1 | 0
1 | 0 | x | x
1 | 1 | 0 | 0

Tabela 2 - Tabela-verdade para controle de bombeamento de água

Sem título Text

Perceba na tabela-verdade que existe uma situação de don’t care, pois não existe a situação em que o sensor H tenha nível lógico 1 e o sensor L tenha nível lógico 0, ou seja, não tem como a caixa está cheia e vazia ao mesmo tempo, logo, essa saída será irrelevante e não iremos considerar.

Obtendo a expressão booleana para cada saída com nível lógico 1, e fazendo as devidas simplificações, temos que:

\(B = \overline{H \cdot L} + \bar{H} \cdot L \to B = \bar{H} \cdot (\bar{L} + L) \to B = \bar{H}\)

\(A = \overline{H \cdot L}\), usando De Morgan, teremos \(\overline{H \cdot L} = \overline{H + L}\), então \(A = \overline{H + L}\)

O circuito lógico que representa essas expressões booleanas será conforme a figura a seguir.

Figura 5 – Circuito lógico para controle de bombeamento de água

[Image: Figura 5 – Circuito lógico para controle de bombeamento de água]

Sem título Text

O circuito resultante utiliza somente duas portas lógicas, a porta NOT e a porta NOR. Podemos, então, usar os CI 7407 e 7402 e montar o circuito lógico para o funcionamento lógico desse projeto. O resultado seria conforme a figura seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 6 – Implementação com CIs do circuito lógico da Figura 5.

Fonte: Lourenço, 2009

Sem título Text

Introdução a códigos digitais

Os sistemas digitais são basicamente constituídos de códigos, contudo sua representação pode ser feita por outras formas de códigos digitais. O mais básico desses códigos é o binário de base \(2^n\), mas existem outras derivações igualmente usadas dentro do mundo digital, que são, por exemplo, os códigos Gray, Johnson, Excesso de 3, BCD, ASCII, 987654321, entre outros. Estudaremos alguns desses exemplos, para servir como base de entendimento na lógica de conversores e nos circuitos combinacionais que veremos mais a frente.

Código BCD 8421

O BCD (Binary Coded Decimal) é uma forma de expressar os números decimais de 0 a 9 com um código binário de 4 bits. 8421 significa os valores decimais representados na base binária, \(2^3\), \(2^2\), \(2^1\) e \(2^0\), cuja formação desse código será como a tabela a seguir.

Tabela 3 - Tabela do código BCD 8421

Sem título Tabela Visual com Scroll

Decimal

BCD 8421

ㅤ

A

B

C

D

0

1

2

3

4

5

6

7

8

9

Sem título Text

As seis combinações do código que não são usadas (1010, 1011, 1100, 1101, 1110 e 1111) são inválidas no código BCD 8421

O exemplo a seguir mostra como seria a conversão em bits de números decimais, sabendo que, cada digito decimal terá seu código equivalente de 4 bits.

Sem título Imagem

Expand Image

Minimize Image

Figura 7 -

Atividade 1 Capítulo 6

Q: Qual seria a conversão do número decimal 23 para o BCD 8421?
- 0010 0011 (correct)
- 0001 0110
- 1010 0010

Sem título Text

Código Gray

A característica do código Gray é que na mudança de uma palavra do código para outra, somente um único bit é alterado. Ou seja, a distância de Hamming entre seus códigos será igual a 1. Dentro de um sistema de transmissão binária, esse código minimiza a chance de erro. A tabela a seguir apresenta uma comparação do código Gray de 4 bits (de 0 a 15) com o código decimal e binário.

Sem título Table

DECIMAL | BINÁRIO | CÓDIGO GRAY
0 | 0 | 0
1 | 1 | 1
2 | 10 | 11
3 | 11 | 10
4 | 100 | 110
5 | 101 | 111
6 | 110 | 101
7 | 111 | 100
8 | 1000 | 1100
9 | 1001 | 1101
10 | 1010 | 1111
11 | 1011 | 1110
12 | 1100 | 1010
13 | 1101 | 1011
14 | 1110 | 1001
15 | 1111 | 1000

Tabela 4 - Tabela do código Gray de 4 bits

Sem título Text

Código Excesso de 3

Código Excesso-3 (XS-3) é um código binário decimal, chamado também de código de Excesso-N, que segue o mesmo princípio de conversão do número decimal para binário, incrementando 3 unidades ao resultado binário, conforme pode ser visto na tabela a seguir.

Sem título Table

Tabela 5 - Tabela do código Excesso de 3

Dígito decimal | Excesso-3
Não usado | 0000 0001 0010
0 | 0011
1 | 0100
2 | 0101
3 | 0110
4 | 0111
5 | 1000
6 | 1001
7 | 1010
8 | 1011
9 | 1100
Não usado | 1101 1110 1111

Sem título Text

Código Johnson

O código é inicializado com 10 bits (00000 11111), dos quais apenas os 5 bits a esquerda são considerados como saída. A cada incremento, o bit mais a esquerda é removido, todos os demais são deslocados para a esquerda, conforme apresentado na tabela a seguir.

Sem título Table

Tabela 6 - Tabela de conversão do código Johnson

Decimal | A | B | C | D | E
0 | 0 | 0 | 0 | 0 | 0
1 | 0 | 0 | 0 | 0 | 1
2 | 0 | 0 | 0 | 1 | 1
3 | 0 | 0 | 1 | 1 | 1
4 | 0 | 1 | 1 | 1 | 1
5 | 1 | 1 | 1 | 1 | 1
6 | 1 | 1 | 1 | 1 | 0
7 | 1 | 1 | 1 | 0 | 0
8 | 1 | 1 | 0 | 0 | 0
9 | 1 | 0 | 0 | 0 | 0

Atividade 2 Capítulo 6

Q: Qual dos códigos a seguir tem distância de Hamming igual a 1 na sua sequência de binário?
- Código Gray (correct)
- Código Johnson
- Códido de Excesso de 3

Sem título Text

Circuitos combinacionais

Você já parou para pensar como os eletrônicos que a gente costuma usar em nosso dia a dia conseguem fazer tantas coisas ao mesmo tempo? Sabe o que está por trás deles? Circuitos lógicos combinacionais. Eles são a base para diversas funções que vão desde operações simples, como somar números em uma calculadora, até as mais complexas, como o roteamento de dados na internet. A grande sacada desses circuitos é que suas saídas dependem apenas do que é colocado em suas entradas. Nestes circuitos as informações do passado são desconhecidas, eles não guardam nada.

Imagine um circuito que precisa somar dois números binários. Você vai colocar as entradas e a saída aparecerá. É isso que acontece nos circuitos combinacionais: eles não têm memória, então a resposta sempre vai depender da combinação atual de entradas.

Dentro desse contexto, os projetos de circuitos que fizemos até agora, por exemplo da Figura 4, se encaixam neste conceito e podem ser considerados circuitos combinacionais.

Para começar a projetar um circuito combinacional, vamos, primeiro, precisar entender o que ele precisa fazer. A melhor maneira de fazer isso é montar uma tabela-verdade, que, como já sabemos, nada mais é do que uma tabela que mostra todas as combinações possíveis de entradas e as saídas correspondentes. A partir dessa tabela, a gente pode criar uma expressão booleana que descreve como o circuito vai se comportará.

Apesar do conceito se encaixar em quase todo tipo de circuito com portas lógicas, nos livros, esse tipo de circuito está relacionado a alguns circuitos combinacionais pré-definidos, devido a sua grande utilização, são eles:

- Codificadores: o circuito combinacional que torna possível a conversão de uma informação específica para um outro tipo de dado, muitas vezes para o código binário. Ver Figura 7.
- Decodificadores: Eles fazem o contrário dos codificadores, pegam um código binário e o transforma de volta em uma informação específica. Ver Figura 7.
- Multiplexadores:  é um circuito combinacional dedicado que tem a finalidade de selecionar, através das variáveis de seleção, uma de suas entradas, conectando-a eletronicamente à sua única saída.
- Demultiplexadores: é um circuito combinacional dedicado que tem a finalidade de selecionar, através das variáveis de seleção, qual de suas saídas deve receber a informação presente em sua única entrada.
- Circuitos Aritméticos: Esses são os que fazem contas, literalmente. Eles são usados para realizar operações matemáticas, como somar, subtrair, multiplicar e dividir números binários.

Onde especificamente podemos encontrar esses circuitos na realidade? Bom, calculadoras, usam circuitos combinacionais para fazer contas rápidas. Nos semáforos, eles controlam a troca de luzes de acordo com um tempo pré-programado. E nas telecomunicações, eles ajudam a direcionar chamadas telefônicas.

Figura 7 – Exemplo do esquema de codificação e decodificação digital

[Image: Figura 7 – exemplo do esquema de codificação e decodificação digital]

Sem título Text

Nesta unidade, focaremos nos codificadores e decodificadores, de forma simples, explorando alguns circuitos que fazem esse tipo de conversão de informações de códigos.

Codificadores

Um codificador é um circuito lógico combinacional que transforma várias entradas em uma saída com um código binário mais compacto. Ele basicamente "comprime" a informação de diversas entradas em um número menor de saídas.

Por exemplo, se tivermos 4 entradas, o codificador pode gerar uma saída em forma de um código binário de 2 bits. Mas como assim? Ele vai dizer qual das entradas está ativa usando a menor quantidade possível de bits.

Mas quando devo usar um codificador? Os codificadores são muito usados em sistemas digitais para fazer a compactação de sinais de entrada em informações menores.

Vamos elaborar um codificador para transformar um código decimal em binário (BCD 8421). A entrada será um teclado decimal composto por dez chaves que devem ser codificadas em BCD, conforme a figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 8 – Codificador decimal-BCD 8421

Fonte: Lourenço, 2009

Sem título Text

Cada tecla quando acionada fornece o nível lógico 1 para o codificador e nível lógico 0 quando não for acionada. Dentro desta lógica, podemos montar a tabela-verdade conforme a seguir.

Sem título Table

E9 | E8 | E7 | E6 | E5 | E4 | E3 | E2 | E1 | E0 | S3 | S2 | S1 | S0
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0
0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1
0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1

Tabela 8 - Tabela-verdade do codificador decimal para BCD

Sem título Text

Para esse codificador, vamos considerar que as teclas serão acionadas uma por vez. O próximo passo é obter as expressões booleanas para cada saída. Por exemplo, a saída S3 será 1 quando E9 ou E8 for acionado, ou seja:

\(S3 = E9 + E8\)

De igual forma, as expressões booleanas podem ser obtidas da mesma forma que aprendemos até aqui, para todas as demais saídas. Vejamos como seriam para as saídas de S0 a S2:

\(S0 = E1  + E3 + E5 + E7 + E9\)
\(S1 = E2 + E3 + E6 + E7\)
\(S2 = E4 + E5 + E6 + E7\)

Por fim, devemos montar o circuito lógico a partir das expressões booleanas. O circuito seria conforme a Figura 9.

Figura 9 - Circuito lógico do codificador decimal-BCD

[Image: Figura 9 - Circuito lógico do codificador decimal-BCD]

Sem título Text

Decodificadores

Um decodificador é um circuito lógico combinacional que vai receber um código binário e expandir essa informação, ativando uma das muitas saídas possíveis. Ele faz o inverso do codificador, ou seja, transforma uma entrada compactada em várias saídas específicas.

Imagine uma central de controle e que se deseja ativar uma saída entre várias opções, como ligar uma luz ou acionar uma porta. No lugar de criar um sistema separado para cada uma dessas opções, você pode usar um decodificador, bastando inserir um código binário que o decodificador processa e ativa a saída correspondente.

Um bom exemplo de um decodificador, seria o decodificar para o display de 7 segmentos, mostrado na Figura 10, que possibilita escrevermos números decimais de 0 a 9 e alguns outros símbolos que podem ser letras ou sinais.

Sem título Imagem

Expand Image

Minimize Image

Figura 10 – Display de 7 segmentos formado por 7 LEDs

Fonte: Elaborada pela Diretoria de Educação a Distância e Tecnologias Educacionais do campus Zona Leste do IFRN.

Sem título Text

Por exemplo, se quisermos apresentar o número 1 no display de 7 segmentos, então teremos que ligar as saídas, ou melhor, os LEDs “b” e “c” do display.

Faremos um decodificador de BCD 8421 para display de 7 segmentos. A tabela-verdade, considerando as saídas do display de 7 segmentos, será conforme a seguir.

Tabela 9 - Tabela-verdade do decodificador BCD – 7 segmentos para display catodo comum

[Image: Tabela 9 - Tabela-verdade do decodificador BCD – 7 segmentos para display catodo comum]

Sem título Text

O próximo passo é obter as expressões booleanas que representam cada saída do display. Essa situação será um bom exemplo de uso do mapa de Karnaugh para obter as expressões simplificadas. Vejamos então, o mapa K para cada saída do display de 7 segmentos.

Sem título Text

Por fim, podemos montar o circuito lógico a partir das expressões obtidas, cujo circuito combinacional será conforme a Figura 11 a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 11 – Circuito lógico do decodificador BCD – 7 segmentos

Fonte: Lourenço, 2009

Atividade 3 Capítulo 6

Q: Considere o display de 7 segmentos conforme apresentado na Figura 10. Quais os segmentos, ou seja, as letras que precisariam ser acionadas para forma a letra “F”?
- a-f-g-e (correct)
- a-b-c-g
- a-b-g-d

Sem título Text

O CI 74LS47 é um circuito integrado que decodifica uma entrada BCD e aciona um display de 7 segmentos. A Figura 12 mostra o diagrama de pinos desses CI e sua simbologia lógica. Na grande maioria das vezes, podemos recorrer aos CIs que já fazem essa tarefa de decodificação.

Sem título Imagem

Expand Image

Minimize Image

Figura 12 – CI 74LS47, chip decodificador de BCD para display 7 segmentos.

Fonte: Floyd, 2011

Sem título Text

Atividade de aprendizado: Utilizando o Logisim, monte o circuito lógico da Figura 11.

Sem título Text

Conclusão

Nesta unidade, exploramos os circuitos integrados, os códigos e alguns circuitos lógicos combinacionais. Aprendemos como projetar circuitos combinacionais usando técnicas de simplificação como a tabela-verdade, álgebra booleana e mapa de Karnaugh, além de um bom entendimento do problema que desejamos solucionar.

Está cada vez mais claro para nós o poder da tabela-verdade. Ela é uma ferramenta fundamental para entender o comportamento dos circuitos lógicos combinacionais. Quanto mais você praticar e se familiarizar com a construção e análise de tabelas verdade, mais fácil será projetar e simplificar.

Introduzimos os codificadores e decodificadores, que são circuitos combinacionais convencionais, e percebemos que, para esses circuitos pré-definidos, já existem CIs prontos que podemos usar.

No próximo capítulo, continuaremos na temática de circuitos combinacionais, porém focando nos multiplexadores, demultiplexadores e em alguns circuitos aritméticos.

Glossário

Encapsulamento DIP: DIP (Dual In-Line Package), é um tipo de encapsulamento de circuitos integrados e de componentes discretos, como transistores, resistores e capacitores, feito de plástico epóxi opaco ou de cerâmica.

Encapsulamento SOIC: O encapsulamento SOIC (Small Outline Integrated Circuit) é um tipo de encapsulamento para circuitos integrados que possui pinos dispostos em duas fileiras paralelas

CMOS: é a sigla para Complementary Metal-Oxide-Semiconductor, que em português significa "Semicondutor de Óxido de Metal Complementar"

TTL: Transistor-Transistor Logic, uma família de circuitos digitais.

Datasheet: Folha de especificações que resumo as principais características de um componente.

LED: é a sigla para Diodo Emissor de Luz (Light-Emitting Diode).

Catodo Comum: é uma configuração usada em displays de LED e outros dispositivos semicondutores, onde o cátodo (terminal negativo) de cada LED é conectado a um “terra” (GND) comum.

Circuito Combinacional: Circuito lógico em que a saída depende apenas das entradas atuais, sem armazenar informações de estados anteriores.

Codificador: Circuito que converte várias entradas em um código binário de saída.

Decodificador: Circuito que converte um código binário em um sinal específico de saída.

Capítulo 7 - Circuitos Lógicos Combinacionais

Sem título CustomCSS

Sem título Text

Introdução

Nesta unidade, vamos explorar três componentes essenciais dos sistemas digitais: multiplexadores, demultiplexadores e circuitos aritméticos. Esses circuitos são fundamentais para as tarefas exercidas por dispositivos como processadores, memórias e controladores, presentes em quase todos os sistemas eletrônicos que utilizamos.

Introduziremos o conhecimento sobre multiplexadores, também chamados de MUX, que são usados para selecionar uma entrada entre várias e enviá-la para uma única saída, e nos demultiplexadores, também chamados de DEMUX, que fazem o inverso, enviam uma única entrada para várias saídas. Esses circuitos são fundamentais para o controle do fluxo de dados dentro de um sistema, especialmente em aplicações como processadores e sistemas de comunicação.

Para os circuitos aritméticos, mostraremos a base do funcionamento desses circuitos combinacionais, entretanto focando somente nos circuitos somares e subtratores básicos.

Compreender o funcionamento desses componentes vai nos permitir projetar e construir sistemas digitais mais eficientes.

Sem título ObjetivoCapDEAD

Compreender o papel dos multiplexadores e demultiplexadores em sistemas digitais.

Diferenciar a utilização de multiplexadores e demultiplexadores;

Reconhecer o funcionamento dos circuitos aritméticos e suas aplicações;

Sem título Text

Multiplexadores (MUX)

Os multiplexadores, ou MUX, são circuitos digitais que desempenham um papel muito importante na seleção e envio de dados nos sistemas digitais. Eles são usados quando precisamos escolher um de vários sinais de entrada e o direcionar para uma única saída, com base em sinais de controle.

Multiplexadores podem ser encontrados em processadores, sistemas de comunicação e memórias, onde precisam selecionar e enviar informações rapidamente de um lugar para outro.

Vejamos um exemplo prático, nos sistemas de comunicação, um multiplexador de 8 entradas para 1 saída pode ser utilizado para combinar vários fluxos de dados e enviá-los por um único canal. Por exemplo, em um sistema de comunicação digital, diferentes sinais de áudio podem ser transmitidos em um único cabo, e o multiplexador seleciona qual deles será transmitido em um determinado momento, dependendo do sinal de controle.

Sem título Imagem

Expand Image

Minimize Image

Figura 1 - Exemplo de um multiplexador com 8 entradas e 1 saída

Fonte: https://dpi.inpe.br/~carlos/Academicos/Cursos/ArqComp/aula_5bn1.html

Sem título Text

A Figura 1 apresenta um circuito combinacional de 8 entradas, D0 à D7, e uma saída F, que seria um multiplexador de 8 entradas para 1 saída. Notem na Figura 1, que existem 3 entradas seletoras (A, B e C) representando o sinal de controle que indica qual das entradas deve ser enviada para a saída. A quantidade de chaves seletoras está diretamente ligada a quantidade de entradas do MUX, ou seja, se tiver 3 chaves de seleção, então poderemos ter 23 = 8 canais de entradas possíveis no MUX.

Atividade 1 Capítulo 7

Q: Um multiplexador com 4 chaves seletores de entradas, poderá ter quantos canais de entrada?
- 16 (correct)
- 8
- 4

Sem título Text

Multiplexador de 2 entradas (2 canais)

Um MUX de 2 canais, ou melhor, de 2 entradas, precisa de apenas uma variável de seleção (chave seletora), pois:

\(n = 2^m = 2^1 = 2\)

Em que, n é quantidade de entradas e m é a quantidade de chaves de seleção.

Vamos projetar um circuito para esse multiplexador, mas antes vamos refletir um pouco: se temos apenas 2 entradas, como vamos fazer a seleção de qual entrada vai para a saída?

Começaremos identificando as entradas e as saídas.

- Entradas de Dados: Temos duas, vamos chamá-las de \(D0\) e \(D1\).
- Chave de seleção: Como temos duas entradas de dados, teremos somente uma variável de seleção, que chamaremos de A. Como A pode assumir dois valores binários (0 e 1), então se \(A=0\) a saída transmitirá \(D0\) e se \(A=1\) a saída transmitida será \(D1\).
- Saída: Neste circuito temos apenas uma saída, chamaremos de S.

A melhor maneira de representar esse funcionamento e projetar o circuito lógico combinacional, será através da tabela-verdade, conforme a seguir.

Sem título Table

A | S
0 | D0
1 | D1

Tabela x -

Sem título Text

Como a seleção das entradas não depende do seu nível lógico, bem como suas saídas podem ter níveis lógicos 0 ou 1, então a expressão booleana deste multiplexador será:

\(S = \bar{A} \cdot D0 + A \cdot D1\)

O circuito resultante para esse multiplexador será conforme a Figura 2.

Figura 2 - Circuito de um multiplexador com duas entradas de dados e uma saída.

Sem título Text

Multiplexador de 4 entradas (4 canais)

Seguinte a mesma lógica do MUX de 2 entradas, iremos projetar e montar um circuito de um multiplexador com 4 entradas de dados e 1 saída. Para isso, vamos ter que usar 2 bits de controle, possibilitando mais duas entradas.

Identificando entradas e as saída, temos:

- Entradas de Dados: Temos quatro entradas, vamos chamá-las de D0, D1, D2 e D3.
- Chave de seleção ou entrada de controle: Teremos 2 entradas de controle, A e B. Juntas elas poderão formar 00, 01, 10, 11. Sendo possível indicar/selecionar qualquer uma das quatro entradas.
- Saída: Neste circuito temos apenas uma saída, chamaremos de S.

De igual forma do exemplo anterior, a tabela-verdade será conforme a seguir.

Sem título Table

A | B | S
0 | 0 | D0
0 | 1 | D1
1 | 0 | D2
1 | 1 | D3

Tabela x -

Sem título Text

Como a seleção das entradas não depende do seu nível lógico, bem como suas saídas podem ter níveis lógicos 0 ou 1, então a expressão booleana deste multiplexador de 4 canais de entradas, será:

\(S = \bar{A} \cdot \bar{B} \cdot D0 + \bar{A} \cdot B \cdot D1 + A \cdot \bar{B} \cdot D2 + A \cdot B \cdot D3\)

O circuito resultante para esse multiplexador será conforme a Figura 3.

Figura 3 - Circuito de um multiplexador com quatro entradas de dados e uma saída.

Sem título Text

Demultiplexador (DEMUX)

Enquanto o multiplexador seleciona uma única saída entre várias entradas, o DEMUX realiza a operação inversa, ele vai selecionar uma única entrada e enviá-la para uma das saídas. O demultiplexador é muito utilizado em sistemas digitais quando precisamos distribuir dados para diferentes canais ou dispositivos.

Um demultiplexador recebe uma única entrada e, com base em um conjunto de sinais de controle, direciona essa entrada para uma das várias saídas. Imagine o DEMUX como uma "chave de distribuição" que decide para onde o sinal de entrada será enviado.

Vejamos um exemplo, imagine que queremos controlar 16 LEDs diferentes com uma única linha de entrada de controle. Usando um DEMUX de 1 para 16, vamos poder decidir, utilizando os sinais de controle, qual LED deve ser aceso. Lembrando que, apenas um dos LEDs será ativado de cada vez.

Isso é muito útil em sistemas de exibição ou controle de dispositivos, onde diferentes sinais precisam ser enviados para diferentes partes do sistema.

 Figura 4 - Demultiplexador recebendo dados do Arduino em suas entradas e decidindo qual Led deve ser aceso

[Image: Figura 4 - Demultiplexador recebendo dados do Arduino em suas entradas e decidindo qual Led deve ser aceso]

Sem título Text

Demultiplexador de 4 saídas e 1 entrada

Vamos projetar um DEMUX de 1 entrada de dados para 4 saídas. Este circuito vai distribuir um único sinal de entrada para quatro saídas distintas, dependendo dos sinais de controle, ou seja, das chaves seletoras.

Como temos 4 saídas vamos precisar de um sinal de controle, binário, que formem 4 combinações distintas. No nosso caso, ele será composto por 2 bits decidindo qual das 4 saídas receberá o sinal da entrada. Por exemplo:

- Se o sinal de controle for 00 a entrada irá para a primeira saída.
- Se o sinal de controle for 01 a entrada irá para a segunda saída, e assim sucessivamente.

Nosso primeiro passo será identificar as entradas e as saídas.

- Entrada de dados: Temos apenas uma entrada de dados, vamos chamá-la de D.
- Entrada de controle ou chaves de seleção: Teremos 2 entradas de controle, A e B. Juntas elas poderão formar 00, 01, 10, 11. Sendo possível indicar qualquer uma das quatro saídas.
- Saídas: Como é um multiplexador de 1 para 4, teremos 4 saídas. Vamos chamá-las de S1, S2, S3 e S4.

Identificadas as entradas e saídas podemos montar nossa tabela-verdade, que será conforme a seguir.

Sem título Table

A | B | S1 | S2 | S3 | S4
0 | 0 | D | 0 | 0 | 0
0 | 1 | 0 | D | 0 | 0
1 | 0 | 0 | 0 | D | 0
1 | 1 | 0 | 0 | 0 | D

Tabela x -

Sem título Text

Percebam que o sinal de entrada vai sendo distribuído nas saídas à medida que os sinais de controle vão alterando seu valor. Lembrando que a entrada D deve estar presente em todos os termos com as combinações de  e  da tabela. As expressões booleanas para esse DEMUX serão:

\(S1 = \bar{A} \cdot \bar{B} \cdot D\)
\(S2 = \bar{A} \cdot B \cdot D\)
\(S3 = A \cdot \bar{B} \cdot D\)
\(S4 = A \cdot B \cdot D\)

O circuito resultante para esse demultiplexador será conforme a Figura 5.

Figura 5 – Circuito lógico do demultiplexador de 1 entrada e 4 saídas

[Image: Figura 5 – Circuito lógico do demultiplexador de 1 entrada e 4 saídas]

Atividade 2 Capítulo 7

Q: Observando o circuito DEMUX da Figura 5 e sua lógica de funcionamento, se A=1 e B=0 qual a saída que seria acionada?
- S3 (correct)
- S2
- S4

Sem título Text

Demultiplexadores com Maior Número de Saídas

À medida que aumentamos o número de saídas, também aumentamos o número de bits no sinal de controle. Cada bit de controle adicional aumenta a quantidade de saídas possíveis. Vamos ver como deve ser feito o cálculo?

Um demultiplexador com \(N\) bits de controle pode enviar dados para até \(2^N\) saídas, lembrando que apenas uma saída por vez receberá os dados da entrada. Por exemplo:

Um DEMUX de 1 para 4 possui 1 entrada de dado, 4 saídas e 2 bits de controle, pois \(2^2 = 4\);
Um DEMUX de 1 para 8 possui 1 entrada de dados, 8 saídas e, portanto, 3 bits de controle, pois \(2^3=8\).

Circuitos Aritméticos

Os circuitos aritméticos são fundamentais em sistemas digitais, pois eles são os responsáveis por realizar operações matemáticas como soma, subtração, multiplicação, e divisão dos números binários. Esses circuitos estão presentes e são super importantes para praticamente todos os dispositivos digitais, desde processadores até calculadoras e controladores industriais. São utilizados, principalmente, para construir a ULA (Unidade Lógica e Aritmética) dos microprocessadores e, ainda, encontrados disponíveis em circuitos integrados comerciais.

Sem título Emphasis Card

Ao contrário dos números decimais que usamos no dia a dia, os números binários trabalham com uma lógica simplificada, mas extremamente poderosa. E é essa simplicidade que permite que os computadores façam bilhões de cálculos por segundo.

Sem título Text

Os circuitos somadores e subtratores são os blocos de construção mais básicos dos circuitos lógicos aritméticos. Eles realizam operações de soma e subtração de números binários, gerando resultados que podem ser usados em processadores, sistemas de controle e dispositivos eletrônicos. Vamos explorar como esses circuitos funcionam e como são projetados.

Circuitos somadores

Os circuitos somadores se dividem em dois: meio somador e somador completo.

Sem título Emphasis Card

A lógica da adição binária, vista na Unidade 2, será importante no conhecimento e projeto dos circuitos somadores. Uma revisão pode ser importante para melhor entender a lógica desses tipos de circuitos combinacionais.

Sem título Text

Meio Somador

O meio somador é o circuito mais simples para somar dois números binários de um bit. Ele soma dois bits, A e B gera dois resultados:

1. O valor da soma S dos bits.
2. O bit de “vai um” (carry out), é gerado quando a soma excede 1. Por exemplo, quando fizermos a adição binária 1+1=10, usaremos o Cout para identificar este bit.

Sabendo disso e já tendo identificado nossas entradas e saídas, podemos montar a tabela-verdade da adição binária, conforme a seguir.

Sem título Table

A | B | S | Cout
0 | 0 | 0 | 0
0 | 1 | 1 | 0
1 | 0 | 1 | 0
1 | 1 | 0 | 1

Tabela x -

Sem título Text

A partir da tabela-verdade, podemos montar o circuito lógico combinacional para o meio somador. Perceba que podemos utilizar uma única porta XOR para a saída S e uma porta AND para o bit de carregamento Cout. O circuito será conforme a Figura 6.

Figura 6 – Circuito meio somador

[Image: Figura 6 – Circuito meio somador]

Sem título Text

- Somadores Completos

Enquanto o meio somador só soma dois bits, o somador completo também considera o bit de “vai um” (carry out) da soma anterior como uma nova entrada (carry in). Isso permite que o somador completo seja utilizado para somar números binários maiores, bit a bit, em cascata.

Para começar, precisamos identificar as entradas e saídas.

1. Entradas: Teremos como entradas A e B que serão os bits que queremos somar e Cin que é o “vai um” da soma anterior.
2. Saídas: Teremos o resultado da soma S e o Cout que é o “vai um” (carry out) resultante da soma atual.

Montando a tabela-verdade para essa lógica e adição binária, teremos a tabela conforme a seguir.

Sem título Table

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

Tabela x -

Sem título Text

Podemos então montar a expressão booleana da saída S, a partir da tabela-verdade, e fazer as devidas simplificações, conforme as regras que aprendemos.

\(S = \overline{A} \cdot \overline{B} \cdot Cin + A \cdot \overline{B} \cdot \overline{Cin} + \overline{A} \cdot B \cdot \overline{Cin} + A \cdot B \cdot Cin\)

Aplicando a propriedade distributiva em \(\bar{B}\) e \(B\), teremos:

\(S = B \cdot (\overline{A} \cdot \overline{Cin} + A \cdot Cin) + \overline{B} \cdot (A \cdot \overline{Cin} + \overline{A} \cdot Cin)\)

Note que os termos entre parênteses podem ser substituídos utilizando as portas XOR e XNOR, desta forma podemos reescrever a expressão como:

\(S = B \cdot (A \odot Cin) + \overline{B} \cdot (A \oplus Cin)\)

Sabendo que \(A \odot Cin = \overline{A \oplus Cin}\), podemos substituir. Teremos então:

\(S = B \cdot \overline{(A \oplus Cin)} + \overline{B} \cdot (A \oplus Cin)\)

Perceba que a expressão acima tem a lógica da porta XOR. É mais fácil perceber se substituir \(A \oplus Cin\) por \(X\). Desta forma, podemos rescrever a expressão booleana como:

\(S = B \oplus (A \oplus Cin)\)

Finalmente obtendo a expressão booleana simplificado do somador completo:

\(S = A \oplus B \oplus Cin\)

O próximo passo é obter a expressão booleana simplificada para o Cout. Neste caso, será melhor usar o mapa de Karnaugh que será conforme a seguir.

Sem título Text

Foi possível montar 3 pares no mapa K. Usando as regras que já aprendemos, a expressão booleana simplificada será:

\(Cout = B \cdot Cin + A \cdot B + A \cdot Cin\)

Após encontrar as expressões booleanas simplificadas, podemos montar o circuito lógico combinacional que representará o circuito somador completo, que será conforme a Figura 7.

Figura 7 – Circuito somador completo

[Image: Figura 7 – Circuito somador completo]

Sem título Text

Circuitos subtratores

Agora que já vimos como os somadores funcionam, vamos falar sobre outro circuito igualmente importante: o subtrator. Como o nome já diz, ele é o responsável por fazer subtrações nos sistemas digitais. Assim como a soma em binário, a subtração também tem algumas regras e utiliza os mesmos conceitos de carregamento e empréstimo.

Como visto anteriormente, subtrair em binário é parecido com subtrair no sistema decimal, só que, ao invés de "emprestar" 10 (um zero) quando não podemos subtrair, no binário a gente "empresta" 1 (borrow).

Sem título Emphasis Card

A lógica da subtração binária, vista na Unidade 2, será importante no conhecimento e projeto dos circuitos subtratores. Uma revisão pode ser importante para melhor entender a lógica desses tipos de circuitos combinacionais.

Sem título Text

Meio Subtrator

O meio subtrator subtrai dois bits, mas não considera nenhum empréstimo de uma subtração anterior. Para começar nosso projeto vamos identificar as entradas e as saídas.

1. Entradas: As entradas A e B representam os bits que serão subtraídos.
2. Saídas: O resultado da subtração será representado por D, já o bit “emprestado” (borrow), o “vem um”, será chamado de Cout.

Identificadas as entradas e saídas, podemos montar nossa tabela-verdade que será conforme a seguir.

Sem título Table

A | B | D | Cout
0 | 0 | 0 | 0
0 | 1 | 1 | 1
1 | 0 | 1 | 0
1 | 1 | 0 | 0

Tabela x -

Sem título Text

A partir da tabela-verdade, já podemos perceber que existe a lógica da porta XOR para a saída D, logo a expressão booleana será:

\(D = A \oplus B\)

De igual forma, para o Cout, só existe uma saída possível, logo sua expressão booleana será:

\(Cout = \bar{A} \cdot B\)

O circuito lógico resultante será conforme a Figura 8.

Figura 8– Circuito meio subtrator

[Image: Figura 8– Circuito meio subtrator]

Sem título Text

Subtrator completo

Agora, para subtrair números maiores, precisamos considerar um empréstimo que pode vir de uma subtração anterior. É aí que entra o subtrator completo. Ele consegue subtrair dois bits e levar em conta um empréstimo anterior, se houver.

O nosso primeiro passo, como sempre, será identificar as entradas e saídas.

1. Entradas: As entradas A e B representarão os bits que serão subtraídos. E a entrada Cin, será o bit emprestado da subtração anterior.
2. Saídas: O resultado da subtração será representado por D, já o bit “emprestado”, o “vem um”, será chamado de Cout.

De igual feito anteriormente, montaremos a tabela-verdade que presente essa lógica de subtração binária.

Sem título Table

A | B | Cin | D | Cout
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

Tabela x -

Sem título Text

Pela tabela-verdade, podemos perceber que a saída D tem a mesma lógica do somador completo. A diferença estará na saída Cout. Então, a expressão booleana será:

\(D = A \oplus B \oplus Cin\)

Para a saída Cout, usaremos o mapa de Karnaugh para obter a expressão booleana simplificada.

Sem título Text

Usando as regras que já conhecemos para os três pares montados no mapa K, a expressão simplificada será:

\(Cout = \bar{A} \cdot B + \bar{A} \cdot Cin + B \cdot Cin\)

O circuito lógico resultante para o subtrator completo será conforme a Figura 9.

Figura 9 – Circuito subtrator completo

[Image: Figura 9 – Circuito subtrator completo]

Sem título Text

Conclusão

Nesta unidade, exploramos componentes essenciais dos sistemas digitais: multiplexadores, demultiplexadores e circuitos aritméticos. Ao longo do caminho, vimos como esses circuitos desempenham papéis críticos na seleção e distribuição de dados, bem como na realização de operações matemáticas fundamentais. Esses componentes são a compõem a base do funcionamento dos processadores, sistemas de controle e redes de comunicação, presentes em praticamente todos os dispositivos eletrônicos que usamos no dia a dia. A compreensão de como projetar e utilizar esses circuitos nos permite projetar e construir sistemas mais eficientes, rápidos e confiáveis.

Com isso, fechamos mais uma etapa do estudo dos sistemas digitais. Na próxima unidade, vamos explorar os circuitos lógicos sequenciais, que, ao contrário dos combinacionais que estudamos até agora, dependem não apenas das entradas atuais, mas também de estados anteriores, conhecimento que é fundamental para o entendimento de memórias e dos contadores.

Glossário

Multiplexador: Circuito que seleciona uma de várias entradas para ser enviada à saída, com base em um sinal de controle.

Demultiplexador: Circuito que faz o oposto do multiplexador, direcionando um único sinal de entrada para uma das várias saídas.

Circuito Aritmético: Circuitos utilizados para realizar operações matemáticas, como somadores e subtratores.

Sinal de Controle: Bits que determinam qual entrada ou saída será selecionada em um multiplexador ou demultiplexador.

Unidade Lógica e Aritmética: Parte de um processador responsável por realizar operações aritméticas e lógicas. Utiliza somadores, subtratores, e outros circuitos aritméticos.

Capítulo 8 - Circuitos Sequenciais

Sem título CustomCSS

Sem título ObjetivoCapDEAD

Neste capítulo, introduziremos os principais conceitos dos circuitos sequenciais e seus funcionamentos básicos. Veremos que esses circuitos têm um comportamento dinâmico diferente dos circuitos sequenciais devido a dependências de informações passadas, ou melhor, de memória. A saída desses circuitos dependerá de suas entradas e dos seus estados anteriores. Esses tipos circuitos desempenha um papel essencial na arquitetura interna dos sistemas digitais e computadorizados. São compostos por contadores, registradores, memórias eletrônicas e outros sistemas que atuam com auxílio do clock, ou seja, de sinais com pulso.

Sem título Text

Circuitos Sequenciais

As características principais dos circuitos sequenciais são que sua saída depende das suas variáveis de entrada e/ou de seus estados anteriores que estão armazenados, operando através de sequencias de pulso que denominamos como clock.

O circuito sequencial é composto, logicamente, por circuitos combinacionais, porém suas saídas são realimentadas para suas entradas, denominada estados, fazendo com que as condições atuais da entrada e do estado interno determinem a condição futura da saída (Figura 1).

Sem título Imagem

Expand Image

Minimize Image

Figura 1 – Modelo genérico de um circuito sequencial

Fonte: Lourenço, 2009

Sem título Text

Além disso, teremos um ciclo periódico de pulso sequenciais acrescido a esses circuitos que determinarão seu funcionamento ao longo do tempo.

Flip-Flops

Um dos principais componentes que representam os circuitos sequenciais, são os flip-flops. Sua principal função será como um elemento de memória, ou seja, de armazenar níveis lógicos (0 ou 1 binário) temporariamente. Como seus estados terão somente dois níveis lógicos (0 ou 1), são chamados de dispositivos biestáveis podendo ser síncrono ou assíncrono. Eles fazem parte da base dos circuitos registradores, contadores e memórias, que veremos mais adiantes nesta unidade.

Os flip-flops são estruturas compostas, da forma mais básica, por uma ou duas entradas, um clock e duas saídas, conforme a Figura 2.

Sem título Imagem

Expand Image

Minimize Image

Figura 2 – Representação geral de um Flip-flop com entradas e saídas

Fonte: Capuano, 2014

Sem título Text

A seguir veremos os principais circuitos de flip-flops e seus diferentes funcionamentos.

Flip-Flop RS

O Flip-flop RS tem duas entradas denominadas de Reset (R) e Set (S), que são formados por duas portas NAND e duas portas NOT, conforme a Figura 3.

Sem título Imagem

Expand Image

Minimize Image

Figura 3 – Circuito básico do flip-flop RS

Fonte: Lourenço, 2009

Sem título Text

Note no circuito do flip-flop RS que temos um novo formato no funcionamento das portas lógicas, que é a realimentação da saída, ou seja, a saída de uma porta lógica passa a ser uma entrada de outra porta lógica a cada ciclo de pulso. Suas saídas serão representadas \(Q\) e \(bar{Q}\), que serão inversas um da outra.

Os flip-flops podem ser síncronos ou assíncronos, focaremos nossos estudos nos flip-flops síncronos, que são os mais usados e que dependem de uma nova entrada do clock (CK), conforme esquema pode ser visto na Figura 4.

Sem título Imagem

Expand Image

Minimize Image

Figura 4 – Circuito básico do flip-flop RS síncrono

Fonte: Lourenço, 2009

Sem título Text

Para melhor entendermos o funcionamento do flip-flop, analisaremos a tabela-verdade de seu comportamento lógico, conforme a tabela a seguir, em que Qa é o estado atual que está em Q, ou seja, a informação binária (0 ou 1) armazenada atualmente em Q antes de um novo evento de subida do clock (CK=1).

Sem título Table

CK | S | R | Q
0 | x | x | Qa
1 | 0 | 0 | Qa
0 | 1 | 0
1 | 0 | 1
1 | 1 | *

Tabela x -

Sem título Text

Quando S=1 e R=1 no mesmo pulso de clock (CK=1), temos um erro lógico (*) e deve ser ignorado. Em resumo, toda vez tem uma borda de subida no clock (pulso no clock, CK=1), se S=1, então Q vai para 1, mas se R=1, então Q vai para 0. Enquanto CK=0, independente dos valores de entrada de S e R, Q será mantido com a informação atual (Qa) armazenada. Caso S=0 e R=0, mesmo com pulso de CK=1, o valor atual guardado em Q (Qa) se mantém, seja ele 0 ou 1 binário.

Agora que entendemos o funcionamento do flip-flop, usaremos os blocos lógicos para representar esses circuitos sequenciais, conforme a Figura 5 a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 5 – Bloco lógico do flip-flop RS síncrono

Sem título Text

Como atividade de aprendizado, use o Logisim e monte o circuito do flip-flop RS conforme a Figura 5 a seguir e faça as simulações para melhor entender seu funcionamento.

Figura 5 – Flip-flop RS síncrono no Logisim

[Image: Figura 5 – Flip-flop RS síncrono no Logisim]

Sem título Text

Flip-flop JK

O flip-flop JK é uma variação do flip-flop RS síncrono, incluindo uma nova realimentação das saídas  e para as portas lógicas de entradas, conforme a figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 6 – Flip-flop JK

Fonte: Lourenço, 2009

Sem título Text

Nesse flip-flop, as entradas J e K executam, respectivamente, as funções set e reset. A tabela-verdade para esse flip-flop será conforme a seguir.

Sem título Table

CK | J | K | Q
0 | x | x | Qa
1 | 0 | 0 | Qa
0 | 1 | 0
1 | 0 | 1
1 | 1 | Osc.

Tabela x -

Sem título Text

Seu funcionamento é similar ao do flip-flop RS síncrono com exceção da condição de entrada J=1 e K=1 na qual, logo que o pulso de clock muda de 0 para 1, as saídas \(Q\) e \(\bar{Q}\)  se complementam, ou seja, passam de 0 e 1 para 1 e 0 ou vice-versa. Ou seja, as saídas  e  ficam sempre oscilando (Osc.), que na prática para pode ser uma situação indesejável e de instabilidade. Para resolver essa situação, tem-se o flip-flop JK mestre-escravo que veremos a seguir.

Flip-flop JK mestre-escravo

O flip-flop JK mestre-escravo é formado por dois flip-flops RS síncronos ligados em cascata com um inversor entre a entrada de clock do primeiro (mestre) e a entrada de clock do segundo (escravo), além de uma outra realimentação que vem das saídas \(Q\) e \(\bar{Q}\) para as portas lógicas de entrada, conforme a figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 6 – Flip-flop JK mestre-escravo

Fonte: Capuano, 2014

Sem título Text

Com essa configuração, quando se tem J=1 e K=1, na subida de pulso de clock, S e R do lado escravo se complementam somente uma vez. Como o lado escravo o pulso equivalente será a borda de descida (\(\overline{CK}\), então nesta situação \(Q\) e \(\bar{Q}\) também se complementam somente uma vez.

Vejamos a seguir como seria a tabela-verdade e o bloco lógico que representam esse flip-flop.

Figura 7 – Bloco lógico do flip-flop JK mestre-escravo

[Image: tabela-verdade]

Sem título Imagem

Expand Image

Minimize Image

Sem título Text

Esse flip-flop resolve o problema da oscilação constante e instável, mas ele tem uma outra característica interessante que é o fato das saídas se atualizarem somente na descida do pulso de clock, sendo, por isso, chamado de sensível à borda de descida. Para que ele seja sensível à borda de subida, basta acrescentar um inversor à entrada CK.

Como atividade de aprendizado, vejam o vídeo do link a seguir referente a mais uma variação do flip-flop JK, quando se acrescenta entradas Preset e Clear.

Sem título Text

Flip-flop D

Esse flip-flop é uma variação do JK, geralmente usado quando se deseja que um único bit de dado (1 ou 0) seja armazenado, conforme a figura a seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 8 – Flip-flop D

Sem título Text

Deste modo, tem-se J = \(\bar{K}\), ou seja:

- Se D=0, então J=0 e K=1 (reset ativado), portanto as saídas futuras do flip-flop serão Q = 0 e \(\bar{Q}\) = 1;
- Se D=1, então J=1 e K=0 (set ativado), portanto as saídas futuras do flip-flop serão Q = 1 e \(\bar{Q}\) = 0.

A tabela-verdade desse flip-flop e seu bloco lógico serão conforme a seguir. Note que ele funciona com a borda de descida e não com a borda de subida.

Figura 9 – Bloco lógico do Flip-flop D

[Image: Figura 9 – Bloco lógico do Flip-flop D]

[Image: Figura 9 – Bloco lógico do Flip-flop D]

Sem título Text

Como atividade de aprendizado, acesso o site dos links a seguir que tem a simulação do funcionamento de um flip-flop JK mestre-escravo. Modifique suas entradas e analise o comportamento das saídas a partir do sincronismo com o clock.

https://www.falstad.com/circuit/e-jkff.html

https://www.tinkercad.com/things/3DqDgxGDJdE-

Flip-flop T

Esse flip-flop é uma variação do JK mestre-escravo com entradas J e K ligadas, mostrado na figura seguir.

Sem título Imagem

Expand Image

Minimize Image

Figura 10 – Flip-flop tipo T e representação do seu bloco lógico

Sem título Text

Deste modo, tem-se J = K, ou seja:

- Se T=0, então J=0 e K=0, portanto as saídas futuras do flip-flop permanecerão iguais (Q=Qa).
- Se T=1, então J=1 e K=1, portanto as saídas futuras do flip-flop serão complementares, ou seja, mudando de 0 para 1 e vice-versa.

A tabela-verdade desse flip-flop será conforme a seguir. Ele age também a partir da borda de descida do clock. Notem que, toda vez que a entrada T=1, a saída Q mudará seu estado de 0 para 1 ou vice-versa.

[Image: tabela verdade flip-flop]

Sem título Text

Como atividade de aprendizado, assista o vídeo do link a seguir que tem um exercício resolvido para o flip-flop JK.

Sem título Text

Registradores

Agora que entendemos como funcionam dos flip-flop, passaremos a usá-lo para construir um tipo de circuito sequencial bastante utilizado nos sistemas digitais, que são os registradores, cuja principal função é de armazenamento e manipulação de dados.

Quando trabalhamos somente com um flip-flop, estamos armazenando somente 1 bit, mas se necessitarmos guardar dados de mais de um bit, o flip-flop torna-se insuficiente. Para isso utilizaremos um sistema denominado Registrador de Deslocamento, que consiste em agrupar os flip-flops de tal forma que a saída de um flip-flop seja a entrada de outro. A Figura 11 mostra uma representação genérica desse registrador.

Figura 11 – Registrador de deslocamento genérico

[Image: Figura 11 – Registrador de deslocamento genérico]

Sem título Text

Fonte: Capuano, 2014

Os registradores podem ter 4 diferentes configurações, dependendo de como os dados são tratados, ou seja, se entram e/ou saem de forma serial ou paralela.

- Modo serial - a informação é recebida ou transmitido bit a bit em uma única linha (Figura 12).
- Modo paralelo - todos os bits da informação são recebidos ou transmitidos simultaneamente, sendo o nº de linhas = nº de bits da informação (Figura 13).

Figura 12 – Transmissão de dados no modo serial

[Image: Figura 12 – Transmissão de dados no modo serial]

Sem título Text

Figura 13 – Transmissão de dados no modo paralelo

[Image: Figura 13 – Transmissão de dados no modo paralelo]

Sem título Text

Nos registradores que utilizam entrada e/ou saídas seriais, os bits movimentam-se internamente, portanto são chamados de registradores de deslocamento que também fazem o papel de conversores serial/parelho/serial. Veremos alguns deles a seguir.

Registrador de série-série

O registrador de deslocamento com entrada serial e saída serial aceita dados seriais, isto é, 1 bit de cada vez numa única linha. A saída da informação armazenada também sairá de forma serial. A figura a seguir mostra um registrador de deslocamento serial/serial de 4 bits utilizando o flip-flop (FF) tipo D.

Sem título Imagem

Expand Image

Minimize Image

Figura 14 – Registrador de deslocamento de 4bits série-série com flip-flop tipo D

Fonte: Floyd, 2011

Sem título Text

A operação de armazenamento serial é realizada com a partir dos pulsos de clock (no caso do FF tipo D, borda de descida), fazendo com que as informações, bit a bit, que chegam à entrada serial sejam deslocadas a cada pulso de clock. A transmissão serial é deslocado bit a bit pela saída de cada FF até chegar à saída \(Q_3\).

Vejamos na tabela a seguir, como seria o deslocamento de 4 bits, no caso usaremos a sequência binária 1001, e sua passagem por cada FF até sua transmissão completa até a saída \(Q_3\).

[Image: Tabela CK, Pulso do CK, Entrada, Q0, Q1, Q2, Q3]

Sem título Text

Como atividade de aprendizado, faça a simulação do circuito registrador de deslocamento, conforme a figura a seguir, a partir do link: https://www.tinkercad.com/things/iYpgZNHCOr3 .

Figura 15 – Registrador de deslocamento de 4 bits usando flip-flops

[Image: Figura 15 – Registrador de deslocamento de 4 bits usando flip-flops]

Sem título Text

Na Figura 15, o 555 é um CI oscilador que faz o papel do clock. O CI 74HC04 é um CI de porta lógica NOT e o 74HC73 são CIs para o flip-flop JK.

Registrador Série-Paralelo

Neste registrador, a entrada dos bits será de forma serial, mas a saída será paralela. A cada período do clock, sempre existirá toda uma palavra em paralelo disponível, porém os dados disponíveis na entrada serial, só estarão exatamente e completamente disponíveis após alguns ciclos do clock, logicamente depende do tamanho da informação e da quantidade de FFs do registrador. A Figura 16 a seguir, mostra um registrador serial/paralelo de 4 bits e a representação de seu bloco lógico, também usando flip-flops (FFs) do tipo D.

Sem título Imagem

Expand Image

Minimize Image

Figura 16 – Registrador de deslocamento serial/paralelo de 4 bits e bloco lógico

Fonte: Floyd, 2011

Sem título Text

Esse tipo de registrador de deslocamento também faz a função de conversor serial/paralelo. Vejamos na tabela abaixo o mesmo exemplo anterior com uma entrada serial de 4 bits (1001) e o comportamento da transmissão serial/paralelo entre os FFs. Notem que após 4 períodos do clock, a entrada serial estará disponível em paralelo.

[Image: Tabela CK, Pulso do CK, Entrada, Q0, Q1, Q2, Q3]

Sem título Text

A principal diferença com o registrador de deslocamento serial/serial é que no registrador deslocamento serial/paralelo todos os 4 bits estarão disponíveis na saída após a transmissão, e não somente 1 bit por vez como no outro registrador (série-série).

Registrador Paralelo-Série

Para esse registrador, a entrada de dados será paralela, os bits são inseridos simultaneamente nos seus respectivos estágios em linhas paralelas em vez de bit a bit numa única linha como acontece com a entrada serial de dados.

A Figura 17 mostra como seria um registrador paralelo/serial de 4 bits.

Figura 17 – Registrador de deslocamento paralelo-série de 4 bits

[Image: Figura 17 – Registrador de deslocamento paralelo-série de 4 bits]

Sem título Text

Fonte: Capuano, 2014

Esse registrador funciona, também, como conversor paralelo/serial. Notem que será necessário que os flip-flops tenham entradas de Preset (PR) e Clear (CLR), assim como portas lógicas adicionais para habilitar (Enable) a entrada dos dados.

Registrador Paralelo-Paralelo

Para esse registrador, tanto a entrada quanto a saída são no modo paralelo. A Figura 18 mostra como seria esse tipo de registrador para 4 bits de entrada/saída. Seu funcionamento é o mais simples de todos, pois a cada pulso do clock, todos os bits disponíveis na entrada passam para as saídas e ficam armazenadas.

Sem título Imagem

Expand Image

Minimize Image

Figura 18 – Registrador de deslocamento paralelo-paralelo de 4 bits com FF tipo D

Fonte: Floyd, 2011

Sem título Text

Um registrador que funciona nesse modo é muito útil em sistemas que recebem, processam ou transmitem informações paralelamente e que necessitam armazená-las temporariamente. Esse tipo de registrador também é chamado de Latch.

Contadores

Os contadores são circuitos sequenciais que dependem do entendimento e funcionamento dos circuitos registradores, principalmente quando utilizados como registradores de deslocamento e dos circuitos combinacionais, pois eles serão circuito auxiliares ao seu funcionamento. Eles podem ser assíncronos e síncronos, em que nas suas saídas são gerados códigos que representam uma sequência (crescente ou decrescente) de contagem em um formato de código, seja binário, decimal, BCD, Johnson, entre outros. Veremos alguns exemplos desses circuitos que utilizam flip-flop, a seguir.

Contador decimal

Esse tipo de contador é do tipo assíncrono e efetuará a contagem de 0 a 9 (dez algarismos) no formato de código BCD 8421, visto na unidade 6. Será assíncrono, pois o clock (CK) não está estará conectado em todas as entradas CK dos flip-flops (FFs).

A Figura 19 apresenta como será o arranjo necessário para tipo de contador de 4 bits, utilizando 4 flip-flop (FF) tipo T, com Clear (CLR) e uma porta NAND como circuito combinacional auxiliar.

Sem título Imagem

Expand Image

Minimize Image

Figura 19 – Contador decimal BCD usando circuito registrador de 4 bits

Fonte: Capuano, 2014

Sem título Text

Note no circuito, que o CK está conectado diretamente somente no primeiro FF e a entrada de CK dos demais FFs estão conectados a saída dos FFs anteriores, ou seja, aos estados de saídas. Outro detalhe importante, é que as entradas T de todos os FFs estão como nível lógico 1, para aproveita a característica desse tipo de FF, como já foi visto, que toda vez que a entrada T=1, a saída Q mudará seu estado de 0 para 1 ou vice-versa.

A tabela a seguir mostra como será a sequência de contagem desse circuito a cada ciclo de clock, lembrando que o FF tipo T usa a borda de descida.

Sem título Table

Contador BCD (4 Bits / Até 9 com Reset em 10)

Ciclo do CK | Q3 | Q2 | Q1 | Q0 | CLR
1º | 0 | 0 | 0 | 0 | 1
2º | 0 | 0 | 0 | 1 | 1
3º | 0 | 0 | 1 | 0 | 1
4º | 0 | 0 | 1 | 1 | 1
5º | 0 | 1 | 0 | 0 | 1
6º | 0 | 1 | 0 | 1 | 1
7º | 0 | 1 | 1 | 0 | 1
8º | 0 | 1 | 1 | 1 | 1
9º | 1 | 0 | 0 | 0 | 1
10º | 1 | 0 | 0 | 1 | 1
 | 1 | 0 | 1 | 0 | 0

Sem título Text

Importante ressaltar que Q0 será o bit menos significativo. A lógica neste contador é que a cada 10 ciclos a contagem seja reiniciada. Somente Q1 e Q3 estão com nível lógico 1, o CLR fica com nível lógico 0 colocando todos os FF em zero, conforme percebesse analisando o circuito da Figura 19.

Na unidade 6, vimos também que é possível projetar um circuito decodificar de BCD para um display de 7 segmentos, apresentando assim um número decimal neste tipo de display.

Contador de 5 estados

A partir do entendimento do contador assíncrono anterior, pode-se projetar, na verdade, contadores de n estados. Para isso, basta verificar quais as saídas do contador para o caso seguinte a n, colocando uma porta NAND adequadamente em algumas saídas para acionar Clear dos flip-flops (FFs).

No caso de um contador de 5 estados, a contagem será 0 a 5, sendo reiniciado no estado 6. A Figura 20 a seguir apresentada como será o circuito para esse contador, também usando FFs tipo T.

Sem título Imagem

Expand Image

Minimize Image

Figura 20 – Contador decimal de 5 estados usando circuito registrador de 3 bits

Fonte: Capuano, 2014

Sem título Text

Como a contagem é até 5, serão necessários 3 bits de resolução, logo somente 3 FFs. A tabela a seguir apresenta a lógica dos ciclos para esse tipo de contador, também apresentando como saída um código BCD.

Sem título Table

Contador BCD (3 Bits / Até 5)

Ciclo do CK | Q2 | Q1 | Q0 | CLR
1º | 0 | 0 | 0 | 1
2º | 0 | 0 | 1 | 1
3º | 0 | 1 | 0 | 1
4º | 0 | 1 | 1 | 1
5º | 1 | 0 | 0 | 1
6º | 1 | 0 | 1 | 1
 | 1 | 1 | 0 | 0

Sem título Text

Contador de Johnson

O contador de Johnson é um contador síncrono, ou seja, o clock (CK) está conectado a entrada CK de todos os flip-flops (FFs) simultaneamente e seu circuito é basicamente um registrador de deslocamento série-série, em que o complemento da saída do último FF é conectado ao primeiro FF do circuito contador, cujo exemplo por ser visto na Figura 21. Para esse tipo de contador, são usados FFs do tipo D.

Sem título Imagem

Expand Image

Minimize Image

Figura 21 – Circuito de um contador Johnson de 5 bits.

Fonte: Floyd, 2011

Sem título Text

A figura a seguir mostra como será a saída de cada FF, a partir do clock, para esse contador de 5 bits.

Sem título Imagem

Expand Image

Minimize Image

Fonte: Floyd, 2011

Sem título Text

Como visto na unidade 6, o código Johnson é uma das maneiras especiais de representar uma numeração decimal, uma releitura desse capítulo pode ajudar a entender melhor o funcionamento desse contador.

A tabela a seguir apresenta a lógica dos ciclos para esse tipo de contador, também apresentando como saída o código Johnson. Percebam que ele faz a contagem de 0 a 9 (10 algarismos), sabendo que cada código tem um equivalente em decimal. Ao chegar em seu último estado, a contagem é reiniciada.

Sem título Table

Contador Código Johnson

Ciclo do CK | Q4 | Q3 | Q2 | Q1 | Q0 | Decimal equivalente
0 | 0 | 0 | 0 | 0 | 0 | 0
1º | 0 | 0 | 0 | 0 | 1 | 1
2º | 0 | 0 | 0 | 1 | 1 | 2
3º | 0 | 0 | 1 | 1 | 1 | 3
4º | 0 | 1 | 1 | 1 | 1 | 4
5º | 1 | 1 | 1 | 1 | 1 | 5
6º | 1 | 1 | 1 | 1 | 0 | 6
7º | 1 | 1 | 1 | 0 | 0 | 7
8º | 1 | 1 | 0 | 0 | 0 | 8
9º | 1 | 0 | 0 | 0 | 0 | 9

Sem título Text

Contador em anel

O contador em anel é um contador síncrono formado por um circuito registrador de deslocamento série-série, em que a saída do seu último estado é conectada ao primeiro estado, ou seja, ao primeiro flip-flop (FF). A Figura 23 mostra a representação, com blocos lógicos, do contador em anel de 10 bits usando FF do tipo D.

Sem título Imagem

Expand Image

Minimize Image

Figura 23 – Contador em anel de 10 bits usando flip-flop tipo D.

Fonte: Floyd, 2011

Sem título Text

Para esse contador, somente uma saída será acionada por vez, ou seja, será usado somente um flip-flop em cada estado na sua sequência. E cada saída única terá seu código decimal equivalente, por exemplo, nível lógico 1 em Q2 representa o 2 em decimal.

A tabela a seguir apresenta a lógica dos ciclos para esse tipo de contador, sabendo que cada saída única com nível lógico 1 representará um número decimal, em outra palavras, teremos como saída o código 9876543210.

Sem título Table

Contador Ring / Anelar

Ciclo do CK | Q9 | Q8 | Q7 | Q6 | Q5 | Q4 | Q3 | Q2 | Q1 | Q0 | Decimal equivalente
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0
1º | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1
2º | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 2
3º | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 3
4º | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 4
5º | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 5
6º | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 6
7º | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7
8º | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8
9º | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9

Sem título Text

Conclusão

Nesta unidade, tivemos uma visão geral dos circuitos sequenciais e algumas de suas aplicações, que sempre terão envolvimento com componentes armazenadores de dados, ou seja, que tenham memória. Essas aplicações, vão desde o armazenamento de dados binários, a circuitos registradores até circuitos contadores. Uma infinidade de outras aplicações existem derivadas desses tipos de circuitos e seriam necessários mais tempo e estudo para assimilar tudo que existe tempo do mundo digital. Percebemos também que vários assuntos e circuitos que aprendermos em outras unidades são usados em circuitos sequenciais, como os circuitos combinacionais e os códigos.

Por fim, tudo o que vimos aqui nos deixam alicerçados em fundamentos básicos e necessários para que possamos alçar voos maiores dentro dos circuitos digitais.

Glossário

Clock: é um sinal lógico eletrônico (tensão ou corrente) que oscila entre um estado alto e baixo em uma frequência constante e é usado como um metrônomo para sincronizar ações de circuitos digitais

Circuito Síncrono: são sistemas que operam em sincronia com um trem de pulsos chamado relógio (clock).

Circuito Assíncrono: é um circuito que altera o seu estado de acordo com o sinal de entrada e que não tem uma entrada de clock comum para todos os flip-flops.

Latch: dispositivos de armazenamento temporário de 1 bit de informação.

Referências

Sem título CustomCSS

Sem título Text

Referências

Boole, G. An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities. Walton and Maberly. 1854.

CAPUANO, Francisco G. Sistemas Digitais - Circuitos Combinacionais e Sequenciais. Rio de Janeiro: Érica, 2014.

CIRCUITVERSE. CircuitVerse - Online Digital Logic Circuit Simulator. Disponível em: https://circuitverse.org/. Acesso em: 29 jun. 2024.

CLAUDE Shannon: o mais importante e ao mesmo tempo mais desconhecido cientista de todos os tempos. [S.l.:s.n.], 2021. 1 vídeo (ca. 3 min.). Publicado pelo canal Verve Científica. Disponível em: https://www.youtube.com/watch?v=owIDIe6qguU. Acesso em: 29 jun. 2024.

FLOYD, T. L. Fundamentos de Sistemas Digitais. 9ª ed. São Paulo: Pearson, 2013.

KASTENSMIDT, Fernanda Gusmão de Lima. Introdução a sistemas digitais. [S.l.:s.n.]. Slides. Disponível em: https://www.inf.ufrgs.br/~fglima/aula1.pdf. Acesso em: 29 jun. 2024.

LOURENÇO, Antônio Carlos de; et al. Circuitos Digitais - Estude e Use. 9ª ed. Rio de Janeiro: Érica, 2009.

MILLS, Virginia. Memorialising George Boole. History of Science Blog Post, The Royal Society, London, 21 Aug. 2023. Disponível em: https://royalsociety.org/blog/2023/08/memorialising-boole/. Acesso em: 29 jun. 2024.

TOCCI, Ronald J.; WIDMER, Neal S. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson Prentice Hall, 2012.

TOCCI, Ronald; WIDMER, Neal S.; MOSS, Gregory L. Sistemas digitais: princípios e aplicações. 10. ed. Prentice Hall, 2007.

WAKERLY, J. F. Sistemas Digitais e Computadores. 4ª ed. São Paulo: Pearson, 2008.

Mostrar 'Tabela de conteúdos'

Ocultar 'Tabela de conteúdos'

Próxima página

Página anterior

Aula concluída!

Aula incompleta

Retornar ao topo

Eu concluí o estudo desta aula

Tela Cheia

Sair da Tela Cheia

Enviar Relatório

Todas as interações

Interações não respondidas

@left de @max interações concluídas

Sem interações

Resumo & enviar

Você não interagiu com nenhuma página.

Você tem que interagir com pelo menos uma página antes de poder ver o resumo.

Suas respostas serão submetidas para revisão!

Progresso do livro

progresso das interações