Você está na página 1de 40

Circuitos lgicos

1 Introduo
1.1 Circuito analgico vs circuito digital
funes. Para dar somente alguns exemplos: Exibir uma imagem Medir uma temperatura Gravar ou reproduzir um som Controlar o regime de um motor Calcular ... Hoje em dia, se encontram circuitos eletrnicos para realizar uma quantidade impressionante de

Nos tempos passados, as funes citadas antes eram realizadas por sistemas mecnicos ou qumicos. Hoje em dia, os circuitos eletrnicos substituram a grande maioria deles. De fato, eles so menores, mais baratos, mais rpidos e oferecem um melhor desempenho. Em um circuito eletrnico, a grandeza usada para realizar as operaes uma grandeza eltrica (tenso ou corrente). Ento, precisa de interfaces (display, alto-falante, rotor, sensor, ...) para interagir com o meio ambiente (olho, orelha, motor, temperatura, ...). Essas interfaces vo transformar uma grandeza eltrica em estimulo acstico, mecnico, visual, ... e fazem o sentido inverso tambm. Existe duas formas de tratar as grandezas eltricas: Diretamente realizando as operaes no sinal adquirido ou gerado. o caso de um circuito eletrnico analgico. Ou transformando o sinal eltrico em uma srie de nmeros (quantizao) para poder tratar em seguida esses nmeros. o caso de um circuito eletrnico digital.

Aos poucos, os circuitos digitais vo substituindo os circuitos analgicos. Eles tem uma melhor imunidade ao rudo, uma flexibilidade maior, um menor custo e uma menor complexidade de concepo para uma funo equivalente. Mas muitos circuitos analgicos ainda no podem ser substitudos por um equivalente digital, notadamente em alta frequncia. O circuito lgico o bloco elementar que est na base de todo sistema digital.

1.2 O sistema de numerao

Ns vimos na introduo que um circuito digital vai tratar uma srie de nmeros. Nosso sistema de contagem natural chamado de sistema decimal, ou seja, a base do sistema decimal a base 10 (a origem dessa escolha simplesmente o nmero de dedos do ser humano). Ele usa 10 algarismos para descrever os nmeros: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Cada nmero simbolizado por uma srie de algarismos que indicam quantos pacotes de 10n precisam para representar ele. Exemplo: 274 = 2x102 + 7x101 + 4x100 Em eletrnica digital, impossvel representar os nmeros usando a base 10. De fato, um circuito digital composto de chaves que podem ficar abertas ou fechadas, ento, existem somente 2 nveis (2 valores de tenso), chamados de nveis lgicos, que so representados pelos algarismos 0 e 1. A base desse sistema de numerao a base 2. Ele chamado de sistema binrio. Decimal 0 1 2 3 4 5 6 7 8 9 Binrio 0 1 10 11 100 101 110 111 1000 1001

No sistema binrio, cada algarismo representa uma potncia de 2. Ento, para converter um nmero binrio, em nmero decimal, tem que substituir o 10 do exemplo precedente por um 2. Exemplo: (100111)2 = 1x25 + 0x24 + 0x23 + 1x22 + 1x21 + 1x20 = (39)10 Para realizar a converso inversa, passar de binrio a decimal, tem que realizar algumas divises sucessivas. Exemplo: 41

2 2 20

0 2 sentido da leitura

0 2

2 2 10

2 2 5
1 2

2 2 2 0 2

2 2 1 1 2

2 2 indica o fim da converso 0

(41)10 = (101001)2
Para facilitar a leitura dos nmeros binrios (um grande nmero de 1 e 0 dificilmente interpretvel por nosso crebro), so usados outras bases como a base octal (8) ou a base

hexadecimal (16). Em relao ao sistema decimal, essas bases tem a vantagem de oferecer uma converso direta com sistema binrio. O sistema hexadecimal precisa de 16 algarismos (tem que acrescentar 6 a mais do sistema decimal) para poder representar todos os nmeros: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Binrio 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11

Se pode notar na tabela precedente que cada algarismo no sistema octal corresponde a 3 algarismos no sistema binrio e uma algarismo no sistema hexadecimal corresponde exatamente a 4 algarismos no sistema decimal. A converso de um sistema para outro ento facilitada. O mtodo o seguinte: para a converso do sistema binrio para o sistema octal, agrupar os 0 e 1 por pacotes de 3 e substituir pelo nmero correspondente no sistema octal. Para a converso entre sistema binrio e sistema hexadecimal, o mtodo o mesmo com uns pacotes de 4. Exemplo : (1100111011)2 = (001 100 111 011)2 = (1473)8 (1100111011)2 = (0011 0011 1011)2 = (33B)16

1.3 O bit, o byte e a palavra

O bit (b) a menor unidade de informao que pode ser armazenada ou transmitida. Ele pode receber o valor 1 ou 0. Mas no possvel realizar muitas operaes com um bit s. Ento a informtica junto vrias bits para formar os carteres. A codificao chamada ASCII (American Standard Code for Information Interchange) foi inventada para representar um carter a partir de 8 bits. Ou seja, possvel representar 256 (28) carteres usando esse cdigo. Ele vai variar de acordo com a regio do mundo em qual est utilizado. O conjunto de 8 bits chamado de byte (B). O byte geralmente usado para representar a quantidade de memria disponvel em uma unidade de armazenamento, como um HD. Existe uma confuso em relao ao mltiplo usado com o byte. Geralmente, a unidade SI, com o prefixo decimal, utilizada. Mas alguns sistemas

como o Windows usam a unidade do IEC, com um prefixo binrio e o mesmo smbolo que a unidade SI, criando uma confuso. A tabela seguinte mostra o bom uso dessas unidades. Unidade SI Prefixo decimal Smb. Pot. Valor decimal B 100 1 kB MB GB TB 103 106 109 1012 1.000 1.000.000 1.000.000.000 1.000.000.000.000 Unidade IEC Prefixo binrio Smb. Pot. Valor decimal B 20 1 KiB MiB GiB TiB 210 220 230 240 1.024 1.048.576 1.073.741.824 1.099.511.627.776

Nome byte quilobyte

Nome byte kibibyte

megabyte gigabyte terabyte

mebibyte gibibyte tebibyte

Enfim, a palavra, geralmente mltipla do byte a unidade de informao elementar usada por um tipo de processador. um grupo de bits de tamanho fixo, que processado em conjunto. Os microprocessadores mais novos so de 64 bits. A palavra usada pelo microprocessador, por exemplo, para designar um endereo na memria RAM. Um microprocessador de 32 bits ento limitado a 232 = 4.294.967.296 endereos diferentes, ou seja 4 GiB. Um processador de 32 bits no capaz de usar mais que isso. Por isso que apareceram os processadores de 64 bits.

2 As portas lgicas
As portas lgicas consistem em um pequeno grupo de circuitos lgicos elementares e padronizados que foram criados em 1938 por Claude Elwood Shannon para resolver problemas tcnicos de circuitos telefnicos com rel. Elas permitem realizar as funes lgicas que esto na base da lgebra pensada por George Boole no sculo XIX. Nas funes lgicas, como no circuito lgico, existem apenas dois estados distintos: O estado 0: representa por exemplo o nmero 0, um porto fechado, um aparelho desligado, uma chave aberta, um no ... O estado 1: representa por exemplo o nmero 1, um porto aberto, um aparelho ligado, uma chave fechada, um sim ...

2.1 Lista das portas lgicas


O quadro abaixo mostra todas as funes e portas lgicas associadas, alm da tabela da verdade, que d o nvel lgico de sada para todas as combinaes possveis de nveis de entrada.

Porta NOT NO

Smbolo Usual
A S

Tabela da Verdade A 0 1 S 1 0

Funo Lgica Inverte a varivel aplicada a sua entrada

Expresso S=A

OR OU

A B

A 0 0 1 1 A 0 0 1 1 A 0 0 1 1 A 0 0 1 1 A 0 0 1 1 A 0 0 1 1

B 0 1 0 1 B 0 1 0 1 B 0 1 0 1 B 0 1 0 1 B 0 1 0 1 B 0 1 0 1

S 0 1 1 1 S 0 0 0 1 S 1 0 0 0 S 1 1 1 0 S 0 1 1 0 S 1 0 0 1

Assume 0 quando todas variveis de entrada forem 0 e 1 nos outros casos

S = A+B

AND E

A B

Assume 1 quando todas as variveis de entrada forem 1 e 0 nos outros casos

S = A.B

NOR NOU

A B

Inverso da funo OR

S = +

NAND NE

A B

Inverso da funo AND

S = .

XOR OU EXCLUSIVO

A B

Assume 1 quando as variveis de entrada assumem valores diferentes entre si

S=

AB A.B + A. B

XNOR NOU EXCLUSIVO

A B

Assume 1 quando houver coincidncia entre os valores das variveis de entrada

S=

AB . + .

2.2 As portas NAND e NOR: portas universais

Para simplificar problemas de temporizao ou obter um circuito mais verstil, usar uma mesma porta para realizar todas as funes lgicas pode se tornar mais vantajoso. Vamos ver como obter cada funo lgica usando somente portas NAND. Para isso, ns vamos precisar de algumas equaes lgicas vindo do lgebra booleano (regras usadas no domnio da lgica): A complementao o A=A Duas identidades: o A+A=A o A.A=A

Os dois teoremas de de Morgan para transformar as funes OR em funes AND e o inverso: o o A.B=A+B A+B=A.B

2.2.1
S= A S = A.A

Obteno da porta NOT


A S

2.2.2
S = A.B S = A.B

Obteno da porta AND

A.B

S=A.B

B
Obteno da porta OR

2.2.3

S = A+B S = A+B S= A . B

A
S=A.B

2.2.4

Obteno da porta NOR

A porta NOR o inverso da porta OR. Basta acrescentar um inversor porta precedente. S = A+B S = A.B S= A . B

A
A.B

S=A.B

2.2.5

Obteno da porta XOR

S =A.B + A. B S = . + . S = . . .

A A.B S=A.B . A.B

A.B
B B

2.2.6

Obteno da porta XNOR

S =. + . S =. + . S =. . .

A A.B S=A.B . A.B A.B

A lgica de tipo NOR pode se deduzir da mesma forma. Pode realizar esse exerccio em casa.

2.3 Portas lgicas de trs entradas

At agora, ns vimos somente portas lgicas de duas entradas. s vezes, preciso usar portas de mltiplas entradas. Essas portas de n entradas podem ser construdas usando n portas de duas entradas em srie. Disso, vamos deduzir as tabelas da verdade de cada uma para 3 entradas. Smbolo Usual Decomposio Tabela da Verdade A 0 0 0 0 1 1 1 1 A 0 0 0 0 1 1 1 1 A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 B 0 0 1 1 0 0 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 C 0 1 0 1 0 1 0 1 C 0 1 0 1 0 1 0 1 A+B 0 0 1 1 1 1 1 1 A.B 0 0 0 0 0 0 1 1 A+B 0 0 1 1 1 1 1 1 S 0 1 1 1 1 1 1 1 S 0 0 0 0 0 0 0 1 S 1 0 0 0 0 0 0 0 Equao lgica Funo Lgica

A B C
A B C

S = A+B+C
Assume 0 quando todas variveis de entrada forem 0 e 1 nos outros casos

A B C
A B C

S = A.B.C
Assume 1 quando todas as variveis de entrada forem 1 e 0 nos outros casos

A B C
A B C

S = A+B+C
Inverso da funo OR

A B C
A B C

A 0 0 0 0 1 1 1 1 A 0 0 0 0 1 1 1 1 A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1 B 0 0 1 1 0 0 1 1 B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1 C 0 1 0 1 0 1 0 1 C 0 1 0 1 0 1 0 1

A.B 0 0 0 0 0 0 1 1 AB 0 0 1 1 1 1 0 0 AB 0 0 1 1 1 1 0 0

S 1 1 1 1 1 1 1 0 S 0 1 1 0 1 0 0 1 S 1 0 0 1 0 1 1 0

S = A.B.C
Inverso da funo AND

A B C
A B C

S =ABC
Assume 1 quando a soma das variveis de entrada da um nmero impar

A B C
A B C

S =ABC
Assume 1 quando a soma das variveis de entrada da um nmero par

3 lgebra booleano
O lgebra booleano um ramo do lgebra que trata somente das relaes lgicas entre variveis binarias. Ns usamos j algumas regras desse lgebra no captulo anterior para poder deduzir a construo de cada porta lgica usando somente portas NAND. Existem outras que sero apresentadas nesse capitulo. O conhecimento desse lgebra permite notadamente de simplificar as equaes lgicas. Vamos pegar um exemplo para ilustrar o mtodo que permite de realizar a concepo de um circuito lgico a partir de uma situao real. Queremos gerenciar a abertura ou o fechamento dos sinais das ruas A e B se cruzando. Essas duas ruas so equipadas de sensores detectando a presena ou no de veculo. As regras gerenciando a abertura ou o fechamento dos sinais so: quando tem nenhum veculo nas ruas, abrir o sinal da rua A quando tem uns veculos somente em uma rua, abrir o sinal daquela rua quando tem veculos nas duas ruas, priorizar a rua A

Rua B

SB Rua A SA

A primeira etapa de determinar as entradas e as sadas do sistema. As entradas so as portas do sistema que vo influir sobre o comportamento daquele. As sadas so as portas usadas pelo sistema para controlar ou comunicar com o exterior. Em nosso exemplo, as entradas so os sensores de presena dos veculos SA e SB e as sadas os sinais de acionamento dos semforos VA, VB, RA, RB. Ns vamos usar o formalismo seguinte: SA = 1: tem um veculo na rua A SA = 0: tem nenhum veculo na rua A RA = 1: o sinal vermelho da rua A est ligado RA = 0: o sinal vermelho da rua A est desligado VA = 1: o sinal verde da rua A est ligado VA = 0: o sinal verde da rua A est desligado

O mesmo formalismo usado para a rua B. So ento 2 entradas e 4 sadas. A segunda etapa de montar a tabela da verdade do sistema formalizado, respeitando as regras estabelecidas acima. SA SB RA VA RB VB 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1 0 A questo agora como deduzir as equaes lgicas correspondentes a cada uma das entradas?

3.1 Maxtermos e Mintermos


Existe duas formas de deduzir diretamente as equaes lgicas a partir da tabela da verdade. So os mtodos dos maxtermos e dos mintermos. O maxtermo permite de escrever a equao lgica como um produto de somas enquanto o mintermo permite de escrever a equao lgica como uma soma de produtos. A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Mintermo A.B.C A.B.C A.B.C A.B.C A.B.C A.B.C A.B.C A.B.C Maxtermo A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C A+B+C

Para encontrar a equao lgica correspondente a uma tabela da verdade qualquer, escreva a soma dos mintermos correspondentes s linhas onde o valor lgico da funo seja 1 ou o produto dos maxtermos correspondentes s linhas onde o valor lgico da funo seja 0. Vamos voltar a nosso exemplo e extrair as equaes lgicas da tabela da verdade que ns montamos. SA 0 0 1 1 SB 0 1 0 1 RA 0 1 0 0 VA 1 0 1 1 RB 1 0 1 1 VB 0 1 0 0 Usando os mintermos: VA =R B =SA .SB +SA .SB +SA .SB VB =R A =SA . SB Usando os maxtermos: VA =R B =SA +SB = = ( + ). ( + ). ( + ) Se pode constatar que dependente da funo lgica, a escritura da equao lgica pode se tornar mais simples usando os mintermos ou os maxtermos. Uma regra simples de usar os mintermos quando os 1 da funo lgica so minoritrios em relao aos 0 e de usar os maxtermos quando ocorre o contrrio. As equaes lgicas obtidas a partir dos maxtermos e mintermos no so sempre otimais em termo de simplicidade. Para simplificar uma funo lgica, se pode usar o lgebra booleano.

3.2 Regras do lgebra booleano


Complementao A=A IDENTIDADES OR A+0=A A+1=1 A+A=A A+A=1 PROPRIEDADES A+B=B+A A.B=B.A A + (B + C) = (A + B) + C = A + B + C A . (B . C) = (A . B) . C = A . B . C A . (B + C) = A . B + A . C AND A.0=0 A.1=A A.A=A A.A=0

Comutativa: Associativa: Distributiva:

TEOREMAS DE MORGAN A.B=A+B A+B=A.B IDENTIDADES AUXILIARES A+A.B=A A+A.B=A+B (A + B) . (A + C)= A + B . C Essas regras aplicadas de forma adequada podem ajudar a simplificar uma equao lgica. Vamos pegar nosso exemplo: VA =R B =SA .SB +SA .SB +SA .SB VA =R B =SA .SB +SA .(SB +SB ) (fatorao) VA =R B =SA .SB +SA .1 (identidade OR) VA =R B =SA .SB +SA (identidade AND) VA =R B =SB +SA (identidade auxiliar)

Ns conseguimos voltar forma obtida com os maxtermos. s vezes, a escritura da equao lgica usando os maxtermos ou os mintermos no conduz equao lgica mais simples. Nesse caso, se deve usar o lgebra booleano para simplificar ela.

3.3 Mapa de Karnaugh


Em alguns casos, com equaes mais complexas, o mtodo anterior pode ser trabalhoso. Mas existe um mtodo grfico, baseado no lgebra booleano, para ajudar o projetista a encontrar a equao lgica mais simples. Esse mtodo utiliza os mapas de Karnaugh. O mapa de Karnaugh contm o mesmo nmero de clulas que existem casos na tabela da verdade. Uma tabela da verdade de 2 entradas, como no exemplo precedente contem 4 casos. O mapa construdo da forma seguinte:
Correspondncia entre caso da tabela da verdade (linha) e posio da clula no mapa Mapa de Karnaugh preenchido com o valor da sada correspondente a cada clula

SA

SA
10

SA

SA
1 1

SB SB

00

SA . SB
01

SA .SB SA . SB
11

SB SB

1 0

SA .SB

Uma vez o mapa preenchido, as regras para obter a equao lgica simplificada so as seguintes: agrupar os 1 dentro dos retngulos (um quadrado um retngulo) maiores possvel esses retngulos devem conter 2n clulas (n, o maior inteiro possvel) usar o menor nmero de retngulos possveis (o nmero de retngulos vai determinar a complexidade da equao lgica) um 1 pode ser contido em vrios retngulos

Em nosso exemplo: SA

SA
1 1

SB SB

1 0

Para realizar a leitura da equao final, tem que somar o valor de cada retngulo. Como ler o valor de um retngulo? Ler de qual varivel est dependendo o retngulo Multiplicar essas variveis para obter o valor do retngulo No caso geral, um retngulo de 2m clulas dentro de um mapa de Karnaugh de 2n clulas vai depender de (m-n) variveis. Ou seja, se um retngulo preenche a metade do mapa,

ele depende de uma varivel s. Se ele preenche um quarto do mapa, ele depende de 2 variveis, e assim vai. Se a tabela da verdade contm somente 1 em sada, a equao lgica igual a 1 Um retngulo de tamanho 1 tem por valor o mintermo correspondente celula

A
1 1

A
1 1

A
0 0

B B

1 1 S=1

B B

0 0 S=A

B B

1 1 S=A

A
1 0

A
0 1

A
0 0

B B

1 0 S=B

B B

0 1 S=B

B B

1 0 S=A.B

A
1 0

A
0 0

A
0 1

B B

0 0 S=.B

B B

0 1 S=A.B

B B

0 0 S=A.B

A equao lgica deduzida do mapa de Karnaugh de nosso exemplo ento:

SA

SA
1 1 SB SA VA =R B =SA +SB

SB SB

1 0

Nesse caso simples, usar a leitura direta dos maxtermos a partir da tabela da verdade bem mais rpido. Mas, em alguns casos mais complexos, o mapa de Karnaugh simplifica muito o processo. Para ilustrar esse fato, vamos pegar uma tabela da verdade de 3 entradas (8 casos).

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

S 1 0 1 0 1 0 0 0

Pelos mintermos: S=A.B.C+A.B.C+A.B.C Pelos maxtermos: S=(A+B+C).(A+B+C).(A+B+C).(A+B+C).(A+B+C) Nenhuma dessas duas solues simples. Para simplificar elas, se pode usar o lgebra booleano ou o mapa de Karnaugh.

Diretamente pela lgebra booleano: S = A.B.C+A.B.C + A.B.C S = C.(A.B+ A.B + A.B) S = C.[A.(B+B)+A.B] S = C.(A.1+A.B) S = C.(A+A.B) S = C.(A+B) S = A.C+B.C de 4 clulas.
Correspondncia entre caso da tabela da verdade (linha) e posio da clula no mapa Mapa de Karnaugh preenchido com o valor da sada correspondente a cada clula

Fatorao Fatorao Identidades - OR Identidades - AND Identidades auxiliares Distribuio

O mapa de Karnaugh de 8 clulas preenchido da mesma maneira que o mapa precedente

A
001 101 100

A
0 0 0 0 1 0

B B

000

A. B.C
010

A. B. C
011

A. B. C
111

A. B. C
110

B B

1 1

A. B. C C

A. B. C C

A. B. C

A. B. C C

Ns vamos identificar os retngulos usando as regras estabelecidas anteriormente. Mas existe agora uma subtilidade, a borda esquerda do mapa igual borda direita. Elas formam ento uma nica borda. Seria equivalente a dobrar o mapa em forma de cilindro.

1 1

0 0

0 0

1 0

1 1

0 0

Ento, um retngulo que comea de um lado pode terminar do outro. Para visualizar isso melhor podemos desenhar duas mapas iguais uma do lado da outra. A

A
0 0 0 0 1 0

B.C 1 1

A 0 0 0 0

A
1 0

B B
A.C

1 1

Com um pouco de costume, no precisa desenhar 2 mapas para identificar os maiores retngulos. A representao pode ento ser feita com um mapa s. A

A
0 0 0 0 1 0

B B

1 1

Todos os 1 da tabela esto includos dentro de um retngulo. Podemos proceder leitura da equao lgica. Existem dois retngulos de dois 1. Cada retngulo representa ento o produto de (3-1)=2 variveis de entrada. A leitura feita como explicado anteriormente, mas ilustrada nos casos seguintes: A

B B C

B B

A.C
C

A.C
C

A.C

A.C
C A

C A

B B C

B B
C C

B B C

A.B A.B
C

A.B A.B
C

A B

B B

C
C

C
C

B.C B.C
C

B.C B.C
C

B.C B.C
C

C
C

Dessa ilustrao, ns deduzimos que a equao lgica correspondente tabela de verdade de 3 entrada de nosso segundo exemplo igual a: S=A.C+B.C Esse resultado est confirmado pela deduo feita usando o lgebra booleano. No caso de 4 variveis de entrada, o principio fica o mesmo, mas o mapa constitudo de 4 linhas e 4 colunas, ento 16 clulas. A figura seguinte mostra a correspondncia entre os mintermos da tabela da verdade e a posio da clula correspondente do mapa de Karnaugh. A 0000 0010 0011 0111 1010 1011 1111 1110

A
1000 1001 1101 D D

A. B.C. D A. B. C. D A. B. C. D A. B. C. D
0001 0101

A. B. C.D A. B. C.D A. B. C.D A. B. C.D B A.B.C.D


0100

A.B.C.D
0110

A.B.C.D

A.B.C.D
1100 D

A. B. C. D A. B. C. D A. B. C. D A. B. C. D C
borda superior igual borda inferior.

Nesse casa, a borda esquerda igual borda direita (como no caso precedente), assim que a

3.4 Casos irrelevantes

Em algumas situaes, existe uns casos da tabela da verdade que no tem como acontecer para o sistema projetado. Esses casos so chamados de irrelevantes. Como esse caso irrelevante no pode acontecer, a sada do sistema pode ser igual a 1 ou 0 sem mudar a funcionalidade do sistema. Ento atribudo a essa sada a letra X para identificar ela. Na hora de realizar a simplificao com o mapa de Karnaugh, esse X pode ser escolhido igual a 1 ou a 0 para ajudar a simplificar a equao lgica final. Um exemplo seria um detector de paridade para um nmero de 0 a 5. Para representar um nmero de 0 a 5, preciso de 3 entradas. Mas com 3 entradas, possvel contar de 0 a 7. Ento, os casos 6 e 7 so irrelevantes, no tem utilidade. As duas ltimas linhas da tabela da verdade podero ento pegar o valor X em sada.

4 Cdigos e decodificadores
Existe uma infinidade de formas de representar os nmeros. Por exemplo, ns vimos como representar um nmero usando o sistema decimal, binrio ou hexadecimal. Ns somos acostumados a contar com o sistema decimal. O sistema binrio mais adequado ao funcionamento das maquinas digitais. Bem que usados na maioria dos casos, para algumas aplicaes, usar diretamente o sistema binrio pode gerar algumas dificuldades. Para esses casos foram criados cdigos. O cdigo permite de transformar a representao clssica dos nmeros por uma forma diferente, mais vantajosa para uma aplicao especifica. Nesse capitulo, ns veremos alguns dos cdigos usados em eletrnica digital assim que os circuitos decodificadores permitindo de transformar os nmeros de um cdigo para outro.

4.1 O cdigo BCD 8421


O cdigo BCD (binary-coded decimal) principalmente usado para aplicaes financeiras ou comerciais para qual o sistema decimal usado para realizar as contas e a exatido dos contas deve ser garantida. Usar diretamente o sistema binrio geraria erros de arredondamento. Pois, um nmero no sistema decimal no tem obrigatoriamente um equivalente exato no sistema binrio. Por exemplo (0,1) 10 = (0,0001100110011...)2. O cdigo BCD permite de representar diretamente um nmero no sistema decimal (0,1,...,9) por 4 bits. Os nmeros 8421 representam o valor de cada um dos bits. Decimal 0 1 2 3 4 5 6 7 8 9 BCD8421 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

Por exemplo: (24,1)10 = (0010 0100,0001)BCD8421 Ento cada nmero decimal possui uma representao exata com o cdigo BCD. Existe outros tipos de cdigos BCD, o cdigo BCD 7421, 5211, 2421 com uns pesos diferentes mas o mais usado o BCD8421.

4.2 O cdigo de Gray

O cdigo de Gray principalmente usado para o monitoramento de sinais analgicos. Nesse tipo de aplicao, a variao do sinal continua. Os nmeros so ento usados de forma sequencial, crescente ou decrescente, seguindo uma ordem.

Exemplos: Velocidade do vento e tamanho das ondas em funo do tempo

ngulo de rotao de um rotor

Nesses casos, vantajoso usar um cdigo que vai mudar somente um bit de um nmero para o seguinte. Isso permite de evitar erros de leitura. Usar um cdigo binrio puro levaria a mudar vrios bits de um nmero para o seguinte (3-4 11-100), todos esses bits no mudando no mesmo instante ( impossvel garantir uma sincronia perfeita). Existiria, nesse caso, durante um certo tempo de transio, uns valores errados. O cdigo de Gray permite de evitar esse problema. Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Gray Excesso 3 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 Johnson 00000 00001 00011 00111 01111 11111 11110 11100 11000 10000

O cdigo Gray de 4 bits permite, como o binrio, de contar de 0 at 15. O cdigo Gray Excesso 3 (deslocamento de 3 unidades) permite de realizar um cdigo BCD com as vantagens do cdigo Gray. O cdigo de Johnson tambm um cdigo de tipo Gray. Ele apre ciado pela facilidade de realizao de um contador (deslocando simplesmente os nmeros para a esquerda e invertendo o bit de maior peso para realimentar no bit de menor peso. O maior problema do cdigo de Johnson sua densidade (eficincia): N bits permitem de codificar 2N nmeros (N bits em binrio permitem de representar 2N nmeros). Outra vantagem vem do fato que um circuito digital consume energia e emite rudo eltrico durante as transies de estado. Reduzindo o nmero de mudanas reduz ento o consumo e a emisso de rudo eltrico.

4.3 Os decodificadores
Os circuitos decodificadores permitem de transformar os nmeros de um cdigo para outro. A obteno de tal circuito simples e repetitiva, uma vez a tcnica do mapa de Karnaugh entendida. Ns vamos dar o exemplo de um circuito decodificador para passar de um nmero binrio de 4 bits para o mesmo nmero no cdigo de Gray. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Binrio B C 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Gray D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 S3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 S2 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 S1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 S0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0

Pode ver claramente, sem realizar o mapa de Karnaugh que S3 = A.

A 0 0 0 1 1 1 1 0 0

A
1 1 D 0 D 0

A 1 1 0 0 1 1 0 0

A
0 0 D 1 1 D D

B
0 1

B
0 1

B
1 0 D

B
1

S2=A.B+A.B=AB

S1=B.C+B.C=BC

Com um pouco de costume, esses resultados poderiam ter sido obtido diretamente da tabela da verdade. por exemplo evidente que S0=CD porque S3 igual a 1 somente quando as entradas C e D so diferentes. Decodificador binrio para Gray de 4 bits

A B C D S3 S2

S1
S0
Os demais decodificadores podem ser obtidos da mesma forma. Pode considerar isso como um exerccio. O software Logic Friday pode ajudar voc a verificar o resultado obtido. Outro tipo de decodificador bastante comum aquele usado para exibir um nmero decimal numa tela de 7 segmentos. Essa tela constituda de 7 LEDs que podem acender o desligar para formar um nmero ou uma letra como mostrado na tabela em seguida.

Cada segmento corresponde a uma sada. A tabela da verdade descrevendo esse decodificador a seguinte: A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Binrio B C 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 a 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 b 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 c 1 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 7-segmentos d 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 e 1 0 1 0 0 0 1 0 1 0 1 1 1 1 1 1 f 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 g 0 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1

Pode obter os circuitos lgicos correspondentes usando os mapas de Karnaugh ou o software Logic Friday. Como um decodificador bastante comum, existe uns circuitos integrados realizando essa funo, como o 4511B. O manual de uso (datasheet) desse circuito mostra todas as funcionalidades e conexes desse circuito. interessante dar uma olhada.

5 Circuitos lgicos: tecnologia


At agora, ns vimos a teoria associada concepo de circuitos lgicos. Ns vamos agora focar sobre a parte tecnolgica associada a esse tipo de circuitos.

5.1 Circuito integrado


Um circuito integrado um circuito miniaturizado podendo conter vrios componentes, como resistores, transistores, diodos, capacitores na mesma bolacha de silcio, isolante e metal, chamada de chip. Uma vez o chip fabricado, impossvel de dessoldar um componente como para uma placa impressa por exemplo, ele faz parte da estrutura. O conjunto se torna um estrutura indissocivel. A complexidade pode variar de um componente s a bilhes de componentes e o tamanho de alguns dzimos de milmetros at dezenas de milmetros.

Para poder utilizar o chip, necessrio encapsula-o. O tipo mais comum de encapsulamento chamado de DIP (dual in line package). Ele pode ser de plstico ou de cermica. Mas existe uma variedade muito grande de encapsulamentos como mostrado na figura seguinte.

Aos poucos, os componentes de tipo SMD (dispositivo de montagem superficial) esto substituindo os encapsulamentos clssicos de tipo montagem through-hole nos quais os terminais so enfiados em buracos da placa do circuito. As vantagens so umas melhores performances devido aos terminais mais curtos e um aproveitamento maior da placa impressa que se pode usar dos dois lados. No sempre o caso, mas geralmente os componentes so denominados como mostrado na figura seguinte.

Dependendo do fabricante, o sufixo pode ser o tipo de encapsulamento ou a temperatura de funcionamento. O Part # indica a famlia e a funo do componente. Dentro dos circuitos lgicos, existe vrias famlias. As principais so os circuitos TTL (transistor transistor logic) e CMOS. Dentro dessas duas grandes famlias existe subfamlias caracterizadas que foram criadas ao longo do tempo para melhorar as performances. Famlia TTL S LS ALS F HC HCT AC ACT LVC AHC Ano 1968 1974 1976 1979 1983 1975 1975 1985 1985 1993 1996 Descrio rpida bipolar transistor transistor logic TTL com transistor de Schottky TTL Schottky de baixo consumo TTL Schottky de baixo consumo melhorado TTL rpido CMOS de alta velocidade CMOS de alta velocidade (compatvel com TTL) CMOS avanado CMOS avanado (compatvel com TTL) CMOS de baixa tenso CMOS avanado de alta velocidade

5.2 Caratersticas dos circuitos lgicos


5.2.1

As performances dos circuitos lgicos so definidas por vrios parmetros.

Tenses de entrada e sada aceitveis pela tecnologia

Na teoria, se o circuito lgico alimentado por uma fonte de tenso de 5V, um nvel lgico alto seria representado por uma tenso de 5V e um nvel lgico baixo por uma tenso de 0V. Na prtica, existem tenses de limiar intermediarias para representar os nveis lgicos tanto na entrada como na sada: VIH (input high): limite inferior para definir um nvel lgico alto na entrada VIL (input low): limite superior para definir um nvel lgico baixo na entrada VOH (output high): limite inferior para definir um nvel lgico alto na sada VOL (output low): limite superior para definir um nvel lgico baixo na sada

A diferena entre VIL e VOL, assim que a diferena entre VIH e VOH, correspondem s margens de rudo da tecnologia. Se o rudo que se acrescenta ao sinal permanece inferior a essa margem, a informao no corrompida. Segue o exemplo para uma porta de tipo TTL e outra de tipo CMOS:

Se pode notar com esse exemplo, que as portas lgicas de tipo TTL LS so incompatveis com as portas lgicas de tipo CMOS HC. Por exemplo, uma sada alta com uma tenso de 2,7V da porta TTL no reconhecida como alta na entrada da porta CMOS (seria preciso de uma tenso maior que 3,5V).

5.2.2

Nveis de corrente, fanout, fanin

As entradas e sadas dos circuitos lgicos tem valores limites para as correntes que elas podem fornecer ou absorver: IIL: valor mximo de corrente na entrada para um nvel de entrada baixo IIH: valor mximo de corrente na entrada para um nvel de entrada alto IOL: valor mximo de corrente na sada para um nvel de sada baixo IOH: valor mximo de corrente na sada para um nvel de sada alto

Uma corrente positiva significa uma corrente entrando na porta e uma corrente negativa significa uma corrente saindo da porta. Segue o exemplo abaixo para uma porta de tipo TTL:

Esses valores limites determinam o nmero mximo de portas podendo ser ligadas mesma sada. Esse nmero chamado de fanout. No exemplo acima, o fanout igual a 10 (400A / 40 A ou 16mA / 1,6mA). Alm desse nmero, a porta lgica no capaz de fornecer ou absorver a corrente suficiente para controlar a entrada das portas lgicas seguindo ela. O exemplo seguinte mostra uma porta TTL com o nmero mximo de portas lgicas conectadas a ela.

O fanin simplesmente o nmero de entradas que possui uma porta lgica.

5.2.3

Tempos de propagao, potncia dissipada

Outras especificaes importantes de uma porta lgica so os tempos de propagao. Os transistores realizando a funo de chaves tem uma velocidade de comutao limitada. Essa velocidade limitada vai introduzir uns atrasos entre o sinal de comando (entrada) e a resposta da porta (sada): tpLH: tempo mximo de propagao quando a sada transita do nvel baixo(L) para o nvel alto(H) tpHL: tempo mximo de propagao quando a sada transita do nvel alto(H) para o nvel baixo(L)

Os tempos de propagao esto diretamente relacionados com a potncia dissipada. Dentro dos limites da tecnologia disponvel num dado momento, possvel construir circuitos mais rpidos, mas que apresentam maior potncia dissipada, ou circuitos mais lentos, mas que apresentam menor potncia dissipada.

5.3 A famlia TTL

Os circuitos TTL, para transistor-transistor logic, usam transistores bipolares para realizar as chaves. O transistor bipolar foi o primeiro a ser realizado. Basicamente, o funcionamento ilustrador na figura seguinte.

Quando a tenso entre base e emissor suficiente, uma corrente I B criada. Se existe uma tenso adequada entre coletor e emissor, o transistor conduz e pode ser considerado como uma chave fechada entre coletor e emissor. Caso a tenso entre base e emissor no suficiente, o transistor se ope a toda conduo, ele pode ser considerado como uma chave aberta entre coletor e emissor. O maior desvantagem desse transistor em relao ao MOSFET, usado na tecnologia de tipo CMOS que existe uma corrente entrando pelo terminal de comando (base) do transistor e ento um consumo de potncia de forma continua. A famlia TTL a famlia mais diversificada. As caratersticas das subfamlias so mostradas na figura seguinte:

5.4 A famlia CMOS


Os transistores de tipo MOSFET apareceram no mercado depois dos transistores bipolares usados na lgica TTL. Eles so origem da famlia lgica CMOS (complementary MOS: associao de transistores de tipo PMOS e NMOS) que est, aos poucos, substituindo a famlia TTL, devido a um consumo menor e uma maior integrao. O transistor bipolar ainda tem vantagens em aplicaes de alta velocidade. O funcionamento do transistor MOS ilustrado na figura seguinte:

O transistor MOS funciona da forma seguinte: quando o potencial do terminal da porta (gate) suficientemente alto em relao ao potencial da fonte (source), um canal de conduo se cria

entre dreno (drain) e fonte. O transistor se comporta ento como uma chave fechada. Seno, o dreno isolado da fonte, o transistor se comporta como a uma chave aberta. No transistor MOS, o circuito de comando totalmente isolado da chave. Nenhuma corrente circula pelo terminal chamado porta (gate). uma grande vantagem em relao ao transistor bipolar, isso permite de reduzir o consumo da porta lgica e facilita tambm o comando dela. As caratersticas das subfamlias so mostradas na figura seguinte:

N.B.: Hoje, no to verdade, mas antigamente, as portas de tipo CMOS eram muito sensvel s descargas eletroestticas. Para evitar de queimar os circuitos, sempre guardar os CIs dentro de uma embalagem condutiva.

5.5 Sada de trs estados (tri-state)

Algumas portas lgicas oferecem a possibilidade de botar a sada em um estado alta impedncia (high-Z). A sada em high-Z nem est num estado baixo, nem num estado alto. um terceiro estado. Isso equivale a desligar a porta lgica do restante do circuito. Este tipo de sada tem particular aplicabilidade quando se pretende, atravs de um linha comum, enviar dados de diferentes dispositivos de origem para um nico dispositivo de destino.

5.6 Misturando as famlias logicas

Geralmente, melhor evitar de misturar as famlias lgicas. As principais razes so as diferenas entre os nveis lgicos de entrada e sada, as tenses de alimentao ou a capacidade de acionamento. Um outro problema vem da velocidade diferente entre as famlias. Essa diferena pode causar problemas de temporizao. Em alguns casos, impossvel ou at desejvel de misturar tecnologias diferentes. Por exemplo, algumas funes lgicas (memoria, contador, etc.) existem somente em CMOS mas o restante de seu sistema est funcionando com TTL. Misturar as famlias lgicas tambm bastante comum para acionar cargas. Por exemplo, uma lgica de tipo TTL (com coletor aberto) frequentemente usada para servir de interface entre uma lgica de tipo CMOS e uma carga externa, como um rele ou uma luz. Uma sada CMOS, frequentemente no fornece uma corrente suficiente para acionar tal carga. Vamos ver alguns exemplos de interface.

a. TTL pode diretamente estar conectado a HCT, ACT ou ele mesmo. b. CMOS 74C/4000(B) com VDD=5V pode acionar TTL, HC, HCT, AC, ACT ou ele mesmo. c. HC, HCT, AC e ACT podem diretamente acionar TTL, HC, HCT, AC, ACT ou 74C/4000(B). d. Quando 74C/4000(B) usa VDD>5V, um circuito buffer, tipo 4050B pode ser usado. O 4050B alimentado por 5 V, aceita uma lgica 0V / 15V na entrada e fornece uma lgica 0V / 5V na sada. O buffer oferece tambm uma corrente de acionamento maior (74C/4000(B) tem um poder de acionamento menor que o TTL). e. Lembra-te que a tenso de sada do TTL pode ser de 2,7V ao lugar de 5V para um nvel lgico alto. Mas uma porta CMOS precisa de 3,3V (HC) ou 3,5V (4000B) para o mesmo nvel. Para fornecer uma tenso suficiente na entrada do 74C/4000(B), um resistor de pullup pode ser usado. Esse resistor tem por efeito de subir a tenso de entrada para o nvel do VDD. f. Uma outra possibilidade para conectar CMOS e TTL de usar a lgica CMOS compatvel com TTL, como 74HCT ou 74ACT. g. h. Essas duas figuras mostram como conectar uma porta TTL com uma porta CMOS alimentada por uma tenso maior. No primeiro caso, um buffer 4504B usado. Ele alimentado com duas tenses de 5V e 15V. No segundo caso, um buffer de tipo coletor aberto usado com uma resistncia de pull-up para realizar a interface entre o nvel TTL de 5V e o nvel CMOS de 15V.

5.7 Desacoplamento da tenso de alimentao

Durante a transio do nvel lgico, ocorre um aumento brusco do consumo de corrente pela porta TTL. Isso vai ter por efeito de criar variaes abruptas da tenso de alimentao. Essas variaes podem causar comutaes indesejadas para as demais portas lgicas alimentadas pela mesma fonte. Para evitar esse problema, uma soluo de usar capacitores de desacoplamento conectadas entre a fonte de tenso e a terra, o mais prximo possvel das portas lgicas. Uma regra de usar um capacitor para cada 5 ou 10 portas lgicas. Os capacitores geralmente usados so capacitores de 0,01 a 1 F, tipicamente de tntalo. Esses capacitores vo ter por efeito de filtrar as variaes abruptas de tenso para deixar ela mais lisa.

5.8 Conexo das entradas e sadas no utilizadas

As entradas inutilizadas mas que poderiam afetar o nvel de sada do circuito nunca devem ficar desconectadas. Elas devem ser conectadas a um nvel alto ou um nvel baixo, para evitar de captar um rudo externo que poderia causar um comportamento errado. Se todas as portas lgicas contedas em um CI no so usadas, elas podem ficar desconectadas para um circuito de tipo TTL mas as entradas tem que ser aterradas para um circuito de tipo CMOS. De fato, se as entradas no so aterradas, o nvel de entrada da porta CMOS pode flutuar e provocar uma conduo elevada de corrente que pode destruir o CI. No caso de uma porta cuja todas as entradas no so utilizadas, necessrio conecta-as ao nvel baixo para uma porta OR ou NOR, ou a um nvel alto para uma porta AND ou NAND. Exemplos:

6 Multiplexador / Demultiplexador
O multiplexador (tambm chamado de mux) e o demultiplexador (tambm chamado de demux) so chaves controladas digitalmente. No caso do multiplexador, a chave permite conectar uma das n entradas possveis, sada. O demultiplexador realiza a funo inversa. Ele permite conectar a nica entrada a uma das n sadas possveis. No caso de 2 entradas, o multiplexador tambm chamado de seletor de dados (data selector).

Multiplexador
E1 E2 E3 E4 En Seleo S E

Demultiplexador
Seleo S1 S2 S3 S4 Sn

Como explicado precedentemente, a seleo realizada por um sinal digital. Ento, n bits de seleo permitem de enderear 2n entradas (multiplexador) ou sadas (demultiplexador). Uns smbolos frequentemente usados para representar o multiplexador e o demultiplexador so os seguintes:

E2

Demux 2n:1

E1 E2 E3 E4
n

S1 S2 S3 S4 S2
n

A1

Os multiplexadores so usados para juntar num mesmo canal de transmisso diversas fontes de dados sem misturar elas. Nesse caso, cada fonte de dado ocupa um intervalo de tempo definido. O demultiplexador efeitua o trabalho inversa, atribuindo s diversas fontes (presentes no mesmo canal de transmisso) um canal distinto.

6.1 Caso do multiplexador 2:1 (2 entradas, 1 sada)

Para comear, vamos estudar o caso simples de um multiplexador de 2 entradas (E 1 e E2). Para enderear essas duas entradas, um bit de seleo (A) suficiente. Vamos escrever a tabela da verdade da funo logica associada ao multiplexador. E1 0 0 0 0 1 1 1 1 E2 0 0 1 1 0 0 1 1 A 0 1 0 1 0 1 0 1 S 0 0 0 1 1 0 1 1

Mux 2n:1
An
E1 E1

A1

An

A
0 1 0 1 1 1

A
0 0

E2

E2

E2

S=E1 .A+E2 .A
A
E1

E2

No era preciso desse formalismo todo para chegar ao circuito final. De fato, a porta AND (a porta OR tambm) pode ser usada como chave controlada digitalmente. Se uma das entradas esta com um nvel alto, ela deixa passar o sinal da outra entrada. Se uma das entradas esta com um nvel baixo, ela impo um nvel baixo em sada. Ento, quando a entrada de seleo A esta com um nvel alto, E2 passa para a sada S e E1 fica bloqueado pela porta AND. Quando A esta com um nvel baixo, acontece o inverso. Isso exatamente o comportamento de um multiplexador 2:1. Existem vrios CI realizando funes de multiplexagem. Veja, em seguida, o exemplo do CI 74LS157. Ele contm 4 multiplexadores 2:1, assim que uma entrada de ativao ou desativao do CI.

6.2 Generalizao a um multiplexador 2n:1


O conceito precedente pode ser generalizado a um multiplexador de n entradas. Tal multiplexador ento constitudo de n portas AND conectadas a cada uma das n entradas. Dependente do endereo selecionado, uma porta AND vai deixar a entrada correspondente passar enquanto as outras vo cortar as outras entradas.

A1 A2

An

P1 = A1.A2.A3 ... .An


P2 = A1.A2.A3 ... P3 = A1.A2.A3 ... P4 = A1.A2.A3 ... P5 = A1.A2.A3 ... .An .An .An .An

Gerador de endereo

P1 P2 P3
E1 E2

P2

P2n = A1.A2.A3 ... .An S

E3
E2

Exemplo: quando todas as entradas de seleo esto iguais a 0, a nica sada do gerador de endereo igual a 1 a sada P1. Ento, a sada esta conectada entrada E1. Esse gerador de endereo tambm chamado de gerador de produto cannico. O cirtuito demultiplexador realizado da mesma maneira. Mas, cada porta AND conectada a mesma e nica entrada. E as sadas dessas portas AND so as sadas do demultiplexador. Na pratica, existem CI de vrias capacidades de entradas: 4, 8, 16 entradas.

Para realizar um mux 16:1, se pode usar dois mux 8:1 da maneira seguinte:

A entrada de ativao (E) permite de selecionar qual dos dois mux esta ativado e ento conectado em sada. Ento, nesse caso, ela pode ser considerada como entrada de seleo. Ou se pode usar o CI 74HC150, um mux 16:1. Existem tambm CI para demultiplexadores. Veja o exemplo de um demux 1:4 (so dois na mesma pastilha):

7 Circuitos aritmticos
Com poucas portas logicas, ns vamos ver como possvel realizar soma ou subtrao de nmeros lgicos.

7.1 O somador

Veja na figura abaixo como realizada a soma de dois nmeros de 2 bits.

Para os bits de menor peso (LSB, coluna da direita), necessrio realizar a soma de 2 bits. Para os bits de maior peso (MSB), necessrio incluir o bit de transporte (C out) da coluna anterior, ou seja realizar uma soma de 3 bits. O somador de 2 bits chamado de meio somador. O somador de 3 bits (incluindo o bit de transporte da coluna anterior) chamado de somador completo. As tabelas da verdade associadas a esses dois tipos de somadores so as seguintes:

A0 0 0 1 1

B0 0 1 0 1

0 0 1 1 0

Cout 0 0 0 1

A1 0 0 0 0 1 1 1 1

B1 0 0 1 1 0 0 1 1

Cin 0 1 0 1 0 1 0 1

1 0 1 1 0 1 0 0 1

Cout 0 0 0 1 0 1 1 1

Deduzindo as equaes logicas das sadas 0 e Cout a partir da primeira tabela da verdade, ns d o circuito meio somador (half adder):

Da segunda tabela, nos deduzimos o circuito somador completo (full adder):

A operao mais complexa que esses dois circuitos so capazes de realizar soma de nmeros de 1 bit s. Para realizar somas mais complexas, de nmeros de n bits, preciso utilizar n somadores em cascata. Veja o exemplo de um somador de 4 bits abaixo. A soma dos dois primeiro bits (A0 e B0) realizada a travs de um meio somador porque no tem bit de transporte para a primeira coluna. As somas dos bits de peso mais fortes necessitam o uso de somadores completos para incluir o bit de transporte da coluna anterior na soma.

Existe vrios CIs somadores de 4 bits, como 74LS283 ou o 4008. Esses CIs so somadores completos, ou seja oferecem uma entrada e uma sada de transporte. E possvel conectar eles em cascata para realizar soma de 8 bits, 12 bits, 16 bits, etc.

7.2 O subtrator

Veja abaixo como realizada a subtrao de dois nmeros de 2 bits.

A1 A0 B1 B0 Cin Cin 1 0 Cout Cout


O mecanismo anlogo ao da soma. A primeira subtrao realizada entre os dois bits de menor peso. Ela gera um bit de resultado () e um bit de transporte (C out). Essa operao chamada de meia subtrao. A subtrao envolvendo 3 bits, An Bn Cin, chamada de subtrao completa. A0 0 0 1 1 B0 0 1 0 1 0 0 1 1 0 Cout 0 1 0 0 A1 0 0 0 0 1 1 1 1 B1 0 0 1 1 0 0 1 1 Cin 0 1 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 Cout 0 1 1 1 0 0 0 1

Deduzindo as equaes logicas das sadas 0 e Cout a partir da primeira tabela da verdade, ns d o circuito meio subtrator:

A0 B0

D0 Cout

Cout

HS
B D

Da segunda tabela, nos deduzimos o circuito subtrator completo:

A1 B1 Cin

Cout

HS
B D

Cout A Cout

HS
B D

D1

A Cout B FS Cin D

Colocando em cascata n subtratores, possvel realizar a subtrao de n bits, de forma equivalente ao somador.

7.3 O complemento para dois e a subtrao


Outro mtodo pode tambm ser usado para realizar uma subtrao. At agora, consideramos somente nmeros de n bits sem sinal. Mas, na pratica, frequente utilizar uma representao sinalizada. Nesse caso, o bit de maior peso que indica o sinal do nmero. Um MSB=0 indica um nmero positivo. Um MSB=1 indica um nmero negativo. Ex: (5)10 = 0101 (-5)10 = 1101 O problema da representao acima, que ela impossibilita operaes aritmticas de forma simples e direta (tente somar diretamente 5 e -5 por exemplo, voc no encontrara 0). Para resolver esse problema, foi adotado uma representao chamada de complemento para 2. Para formar um nmero negativo em complemento para 2, basta inverter todos os bits de um nmero positivo e acrescentar 1. Ex: (5)10 = (0101)2

0 1 0 1 = 1010 ; 1010 + 1 = 1011


(-5)10 = (1011)comp p/2 Decimal -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Complemento para 2 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

Usando a representao em complemento para 2, se pode realizar subtrao ou adio usando somente um somador. Nesse caso, a subtrao feita somando a representao negativa do nmero a subtrair. Ex: 5 3 = 5 + (-3)

Para realizar o circuito somador / subtrator, se deve usar um circuito capaz de transformar um nmero para seu complemento para dois no caso de uma subtrao ou deixando passar aquele nmero no caso de uma adio. Umas portas XOR e um somador permitem de realizar esse trabalho. Veja o exemplo seguinte:

Quando a chave esta conectada no modo de adio, a primeira entrada de cada porta XOR igual a 0. Ou seja, a porta XOR deixa passar o sinal vindo da outra entrada sem alterar ele. Quando a chave esta conectada no modo de subtrao, a primeira entrada de cada porta XOR igual a 1. Ou seja, a porta XOR inverte o sinal vindo da outra entrada. Isso o primeiro passo para transformar o nmero para seu complemento para 2. O segundo passo a adio do nmero 1. Essa adio feita pelo bit Cin do CI 74LS283, que no caso da subtrao igual a 1. Importante: Quando usa uma representao em complemento para dois, se deve respeitar o nmero de bits escolhido para os nmeros. Ou seja, o bit de transporte resultando da soma dos dois bits de maior peso (MSB) deve ser descartado. E claro, o resultado no pode ultrapassar a capacidade devida ao nmero de bits. Ex: Se ns trabalhamos com 4 bits, podemos representar nmeros includos entre -8 e 7. E o resultado de qualquer operao deve ser includo dentro dessa faixa.

7.4 As unidades aritmticas e logicas


Uma unidade aritmtica e logica (UAL ALU), um CI capaz de realizar vrias funes aritmticas ou logicas. Existe uma entrada de seleo para escolher a operao a realizar. O CI 74181 mostrado na figura seguinte uma UAL de 4 bits que oferece 16 funes aritmticas (entrada M = 0) e 16 funes logicas (entrada M = 1).

Uma vez a funo desejada selecionada com as entradas S0, S1, S2, S3, o CI realiza a operao entre as entradas A e B. Para no confundir operaes logicas com operaes aritmticas, a adio e a subtrao so notados com plus e minus respetivamente. Todos os resultados aritmticos gerados por essa UAL so escritos em complemento para 2.

Você também pode gostar