3 - Operações Lógicas

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 64

3 - Operações Lógicas

Portas Lógicas, Expressões Lógicas e


Circuitos Lógicos

1
Introdução
• George Boole (1854)
– Álgebra de Boole
– Operações ˅(disjunção) , ˄ (conjunção) e ¬
(negação)
– Constantes: 0, 1
– Axiomas: associatividade, comutatividade, etc.
• Claude Shanon (1938)
– Aplicação das teorias de Boole na área de circuitos
telefônicos  eletrônica digital

2
Introdução
• Lógica  Álgebra de Boole  Portas lógicas 
Circuitos lógicos  Computadores digitais
• A Lógica é a base da eletrônica digital e da
informática
– Ela tenta expressar o mecanismo de raciocínio
humano através de expressões
– Contribuições de Sócrates, Platão e Aristóteles
• Álgebra de Boole: afirmações são representadas
por expressões matemáticas e podem ter seus
valores computados para V ou F
3
Introdução
• Portas lógicas
– Dispositivos que implementam
fisicamente funções lógicas com
uso de eletricidade  aplicação
prática da álgebra booleana
– Circuitos integrados contêm
milhões de portas lógicas em
poucos centímetros de silício

Fonte da imagem: Wikipedia 4


Introdução

 Circuito Integrado 

Implementações:
• TTL: Transistor-Transistor Logic
• CMOS: Metal Oxide Semiconductor

 Microprocessador
5
Introdução
• Escala de Integração:
– SSI (<12)
– MSI (<100)
– LSI (~10.000)
– VLSI (>10.000)

6
Introdução
• Aplicações das portas lógicas:
– Multiplexadores,
– Registradores
– Unidades de Lógica e Aritmética
– Memórias
– Microprocessadores (+100 milhões delas!)

7
Portas Lógicas
• Constantes booleanas: {0, 1}
Como ocorrem fisicamente nos circuitos

• Funções booleanas básicas:

AND OR NOT
(conjunção) (disjunção) (negação)

8
Portas Lógicas
• Tabela Verdade [Ludwig Wittgenstein]
– Tabela usada na lógica para computar o valor
funcional de expressões lógicas para cada uma das
possíveis combinações de seus valores de entrada
– Cada coluna representa uma variável da
expressão, sendo a última coluna o valor final da
expressão
– Cada linha representa uma combinação das
entradas

9
Portas Lógicas
• Conjunção (AND, ˄, .) BINÁRIA

– Equivalente à multiplicação na álgebra numérica


– Na lógica, a conjunção de duas expressões é
verdadeira, somente quando ambas as expressões
componentes são também verdadeiras
A B A AND B A A AND B
B
0 0 0
0 1 0
1 0 0
1 1 1
Tabela Verdade Quando a lâmpada se acende?
10
Portas Lógicas
• Disjunção (OR, ˅, +) BINÁRIA

– Equivalente à adição na álgebra numérica


– Na lógica, a disjunção de duas expressões é
verdadeira, quando uma ou ambas as expressões
também são verdadeiras
A B A OR B A A OR B
B
0 0 0
0 1 1
1 0 1
1 1 1
Tabela Verdade Quando a lâmpada se apaga?
11
Portas Lógicas
• Negação (NOT, ¬, ̅) UNÁRIA

– Não é equivalente à negação numérica, exceto


que sua aplicação seguida retorna ao valor original
– Na lógica, a negação uma expressão é verdadeira,
quando a expressão original é falsa.
A NOT A
A NOT A
0 1
1 0
Tabela Verdade

12
Portas Lógicas
• Experimente-as!
http://turner.faculty.swau.edu/mathematics/materi
alslibrary/truth/

13
Portas Lógicas
• Funções derivadas: A B NAND A B NOR
0 0 1 0 0 1
– NAND 0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 0
– NOR
A B XOR A B XNOR

– XOR 0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
– XNOR 1 1 0 1 1 1

14
Portas Lógicas
• Compare as tabelas verdade de um AND e um
NAND:
A B AND A B NAND
0 0 0 0 0 1
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 0

– São complementares!
– O mesmo acontece para um OR e o NOR
15
Portas Lógicas
• Observe as tabelas verdades abaixo:
A XOR B ¬A.B + A.¬B
A B A XOR B A B ¬A.B A.¬B ¬A.B + A.¬B
0 0 0 0 0 0 0 0
0 1 1 0 1 1 0 1
1 0 1 1 0 0 1 1
1 1 0 1 1 0 0 0

– São equivalentes!
– Construa uma expressão lógica equivalente a um
XNOR (usando apenas as funções básicas)

16
Portas Lógicas
• Exemplos de expressões lógicas:
– A.B+C
– (A+B).(C.D)
– ¬(A+B)
– ¬A . ¬B
– ¬¬A
– ¬(A. ¬B) + C
– ¬A.B + A.B + A. ¬B
– (A xor B).(C xnor D)

17
Álgebra de Boole
• Exemplo: Calcule a tabela verdade da
expressão ¬(A+B) e monte o circuito de portas
A B A+B ¬(A+B)
0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 0

A
B ¬(A+B) (que é equivalente a um NOR!)

18
Álgebra de Boole
• Exemplo: calcule a tabela verdade de A.B+C
A B C A.B (A.B) + C
0 0 0 0 0
0 0 1 0 1
A
0 1 0 0 0 B A.B+C
C
0 1 1 0 1
1 0 0 0 0
1 0 1 0 1
1 1 0 1 1
1 1 1 1 1

19
Portas Lógicas
• Calculadora que gera tabela verdade
http://turner.faculty.swau.edu/mathematics/materi
alslibrary/truth/
• Exercícios:
– Calcule a tabela verdade de um AND, OR e NOT
– Calcule a tabela verdade das expressões do slide
17

20
Portas Lógicas
• Simulador de portas lógicas (Logic Gate Sim)
– http://www.kolls.net/gatesim/

21
Portas Lógicas
• Exemplo 1: um circuito que faça uma lâmpada
se acender quando o motorista liga a ignição e
o tanque está na reserva.

0 0 0
0 1 0
1 0 0
1 1 1

Porta AND
22
Portas Lógicas
• Exemplo 2: elabore um circuito lógico que
diga se duas palavras de N bits são iguais (1)
ou não (0).
1 0 0 1 1 1 0 0

1 1 1 0 0 0 0 1
0

1 0 0 1 1 1 0 0

1 0 0 1 1 1 0 0
1

23
Portas Lógicas
• Solução: as portas XOR e XNOR produzem o
mesmo valor quando os bits são iguais (v. TV)
• Podemos usar um XNOR para saber se os bits
equivalentes em cada palavra são iguais
• Se unirmos as saídas de cada XNOR numa
porta AND, saberemos quando a palavra
inteira é igual!

24
Portas Lógicas
1 0 0 1 XNOR

AND

1 1 1 0

25
Portas Lógicas
• Exercícios:
– Desenhe um circuito de portas lógicas que diga se um
byte é par (0) ou ímpar (1)
– Desenhe um circuito de portas lógicas que diga se um
número binário em um byte é maior que 100
– Escreva um circuito que inverta os bits de um byte
– Escreva um circuito que receba 2 bytes. O primeiro é
um número e o segundo uma máscara. O circuito deve
deixar os bits do primeiro em 1 apenas nas posições
em que o bit da máscara for 1

26
Circuitos Lógicos
• Combinacionais
– As saídas dependem apenas das entradas e não
geram retro-alimentação do circuito
– Ex: multiplexadores, somadores, controle de fluxo,
etc.
• Sequenciais
– As saídas dependem das entradas e da própria
saída gerada num instante de tempo anterior
– Ex: Flip-flops, RAMs, registradores, etc.
27
Circuitos Combinacionais
• Nem sempre um circuito é escrito partindo-se
da expressão lógica (Ex: ¬A.B + ¬A. ¬C + ¬D).
• O mais comum é conhecer-se as entradas
existentes e as saídas desejadas
– Ou seja, tem-se, de princípio, a tabela verdade
• Como partir de uma tabela verdade e chegar
na expressão lógica que define o circuito e no
próprio circuito?

28
Circuitos Combinacionais
• Metodologia:

Problema 1. Determine todas as


variáveis de entrada e saída
2. Monte a tabela verdade
Tabela Verdade conforme a situação do
problema pede
Expressão 3. Obtenha a expressão
booleana
4. Implemente o circuito lógico
Circuito Lógico

29
Circuitos Combinacionais
• Considere um alarme de um carro:
– Há um sensor em cada uma das 2 portas que,
ligado, indica que a porta não foi violada
– Há um sensor ligado a um GPS que, se acionado,
indica que o carro está sendo rebocado
– Um alarme dispara se uma das portas for violada
e/ou se o carro for rebocado
Determine a expressão e o circuito lógico deste
sistema

30
Circuitos Combinacionais
• Variáveis P1 P2 G A
– P1, P2 = sensores das 0 0 0 1
portas 0 0 1 1
– G = sensor do GPS 0 1 0 1
0 1 1 1
– A = alarme
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Como gerar a expressão lógica a partir da tabela verdade?


Resp: encontrando a forma canônica
31
Circuitos Combinacionais
• Forma canônica de uma expressão booleana:
"Toda expressão booleana possui uma expressão
equivalente (mesma tabela verdade) formada ou
por uma soma de produtos (mintermos) ou por
um produto de somas (maxtermos). Todas as
variáveis devem aparecer em cada mintermo ou
maxtermo, complementada ou não."
• Soma de produtos: ¬A.B + A.¬B mintermo
• Produto de somas: (¬A +¬B).(A+B) maxtermo
32
Soma de Produtos
• Seja a tabela verdade de um XOR, calcular a
forma canônica soma de produtos equivalente
A B XOR
0 0 0
0 1 1
1 0 1
1 1 0

33
Soma de Produtos
• Cada linha em que a função lógica seja 1 é um
mintermo. Se o valor da variável nesta linha da
tabela for 0 ela será complementada (negada), se
for 1 aparecerá normalmente no mintermo.
– Na linha 2, o A é 0, então será
complementado, o B será normal
¬A.B A B XOR

– Na linha 3 ocorre o inverso: 0 0 0


A.¬B 0 1 1
1 0 1
– As linhas 1 e 4 da tabela não geram
1 1 0
mintermos porque a função é 0
34
Soma de Produtos
• Faça a soma de todos os mintermos
encontrados para gerar a forma canônica
soma de produtos da função:
¬A.B + A.¬B
• Ou seja:

A xor B  ¬A.B + A.¬B

35
Produto de Somas
• Seja a tabela verdade de um XOR, calcular a
forma canônica produto de somas equivalente
A B XOR
0 0 0
0 1 1
1 0 1
1 1 0

36
Produto de Somas
• Cada linha em que a função lógica seja 0 é um
maxtermo. Se o valor da variável nesta linha da
tabela for 1 ela será complementada (negada), se
for 0 aparecerá normalmente no maxtermo.
– Na linha 1, o A e B são 0, então
aparecem normalmente
(A + B)
– Na linha 4 ambos são 1, então são A B XOR
complementados no maxtermo: 0 0 0
(¬ A + ¬B) 0 1 1
– As linhas 2 e 3 da tabela não geram 1 0 1
maxtermos porque a função é 1 1 1 0

37
Produto de Somas
• Faça o produto de todos os maxtermos
encontrados para gerar a forma canônica
produto de somas da função:
(A + B) . (¬ A + ¬B)
• Ou seja:

A xor B  (A + B) . (¬ A + ¬B)

38
Forma canônica
• As funções lógicas abaixo são equivalentes:
A B XOR A B ¬A.B + A.¬B A B (A + B) . (¬ A + ¬B)
0 0 0 0 0 0 0 0 0
0 1 1 0 1 1 0 1 1
1 0 1 1 0 1 1 0 1
1 1 0 1 1 0 1 1 0

– Certifique-se disto! Calcule as tabelas verdades.

39
Circuitos Combinacionais
• Variáveis P1 P2 G A
0 0 0 1
– P1, P2 = sensores das
0 0 1 1
portas
0 1 0 1
– G = sensor do GPS 0 1 1 1
– A = alarme 1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1

Voltando ao problema do alarme do carro...


Qual a melhor forma canônica a escolher?

40
Circuitos Combinacionais
• Soma de produtos: P1 P2 G A
0 0 0 1
¬P1¬P2¬G + ¬P1¬P2G + 0 0 1 1
¬P1P2¬G + ¬P1P2G + 0 1 0 1
P1¬P2¬G + P1¬P2G + 0 1 1 1
P1P2G 1 0 0 1
1 0 1 1
1 1 0 0
• Produto de somas: 1 1 1 1
(¬P1 + ¬P2 + G)

41
Circuitos Combinacionais
• Circuito lógico de (¬P1 + ¬P2 + G)

42
Exercícios
• Encontra as formas canônicas para as funções
booleanas dadas pelas tabelas verdade
A B F() A B C F() A B C D F()
0 0 1 0 0 0 1 0 0 0 X 1
0 1 1 0 0 1 1 0 0 1 0 1
1 0 0 0 1 0 0 0 0 1 1 0
1 1 1 0 1 1 1 0 1 X X 0
1 0 0 1 1 0 0 0 1
1 0 1 0 1 0 0 1 0
1 1 0 1 1 0 1 X 1
1 1 1 0 1 1 X X 0

43
Exercício
• Exercício:
– A figura ao lado
mostra de forma
esquemática a
conexão de 4
computadores de
uma determinada
empresa a uma
única impressora.
Esta conexão é
feita através de um
circuito de
controle.

Retirado do material da professora Joseana Araújo da UFCG (http://www.dsc.ufcg.edu.br/~joseana/IC.html) 44


Exercício
• Qual a expressão que descreve o funcionamento
do circuito de controle (determine também o
circuito lógico)?
• Devem ser obedecidas às seguintes prioridades:
– Computador do setor administrativo (ADM) – 1a
prioridade
– Computador do setor pessoal (PES) – 2a prioridade
– Computador do setor de engenharia (ENG) – 3a
prioridade
– Computador do setor de vendas (VEN) – 4a prioridade

Retirado do material da professora Joseana Araújo da UFCG (http://www.dsc.ufcg.edu.br/~joseana/IC.html) 45


Propriedades da Álgebra Booleana
• Da adição lógica: Usaremos:
(1) A+0=A • ' para NOT
• + para OR
(2) A+1=1 • . para AND
(3) A+A=A
(4) A + A' = 1
• Da multiplicação lógica:
(5) A.0=0
(6) A.1=A
(7) A.A=A
(8) A . A' = 0

46
Propriedades da Álgebra Booleana
• Da complementação:
(9) A'' = A
• Comutatividade:
(10) A + B = B + A
(11) A + B = B + A
• Associatividade:
(12) A + (B + C) = (A + B) + C = A + (C + B)
(13) A . (B . C) = (A . B) . C = A . (C . B)
• Distributiva:
(14) A . (B + C) = (A . B) + (A . C)

47
Propriedades da Álgebra Booleana
• Leis de DeMorgan:
(15) (A . B . C ...)' = A' + B' + C' + ...
(16) (A + B + C ...)' = A' . B' . C' . ...
• Teoremas da absorção:
(17) A + A.B = A
(18) A + A'.B = A + B

48
Propriedades da Álgebra Booleana
• Simplifique a expressão lógica a seguir:
S = A'.B' + A'.B + A.B'
S = A'.(B' + B) + A.B' pondo A' em evidência

S = A'.(1) + A.B' adição lógica

S = A' + A.B' absorção

S = A' + B' DeMorgan

S = (A.B)'

Retirado do material da professora Joseana Araújo da UFCG (http://www.dsc.ufcg.edu.br/~joseana/IC.html) 49


Propriedades da Álgebra Booleana
• Observe a simplificação do circuito:
S = A'.B' + A'.B + A.B'
A
B
S
Antes

Depois

Retirado do material da professora Joseana Araújo da UFCG (http://www.dsc.ufcg.edu.br/~joseana/IC.html) 50


Completude Funcional
• Conjunto de operadores funcionalmente
completo:
– Aquele que consegue ser usado para representar
qualquer tabela verdade possível
• Conjuntos funcionalmente completos:
– {˄, ¬}, {˅, ¬}
– {NAND}, {NOR}

51
Completude Funcional
• Exemplos:
 ¬A  A NAND A
 A˄B  (A NAND B) NAND (A NAND B)
 A˅B  (A NAND A) NAND (B NAND B)

52
Completude Funcional
• Exemplos:
 ¬A  A NAND A
 A˄B  (A NAND B) NAND (A NAND B)
 A˅B  (A NAND A) NAND (B NAND B)
(NAND = |) (NAND = |)

53
Circuitos Sequenciais
• A saída depende das entradas e da própria
saída
– Efeito: máquina de estados (memória)
• Aplicações:
– Registradores (memória interna da CPU)
– Bancos de memórias voláteis (RAM)
– Buffers

54
Circuitos Sequenciais
• Flip-flop
– Circuito digital que possuem 2 entrada e duas
saída e são capazes de manter seu estado interno
indefinidamente (desde que alimentados)
• Tipos
__
Latch RS com NOR Latch SR com NAND
_

55
Circuitos Sequenciais
• O flip-flop (latch) em detalhes
Entrada RESET Saída normal

Saída complementada
Entrada SET

• RESET: usada para fazer o flip-flop guardar o valor 0


• SET: usada para fazer o flip-flop guardar o valor 1
• Q: exibe o estado atual do flip-flop
• C: é o mesmo que NOT Q (complemento de Q)

56
Circuitos Sequenciais
• Tabela Verdade de um Latch RS NOR:
R S Q QNEXT Observação
0 0 0 0 O flip-flop apresenta seu estado atual
1 1 (estado de leitura, ele não se modifica!)
0 1 0 1 O flip-flop guarda o bit 1 internamente
1 1
1 0 0 0 O flip-flop guarda o bit 0 internamente
1 0
1 1 0 Indefinido Estes valores são proibidos para R e S
1

57
Circuitos Sequenciais
• O flip-flop está com um 0 e no estado leitura:
=1
=0

O flip-flop está produzindo um 0,


pois Q = 0. Este é, portanto, seu estado
interno (em outras palavras, ele guarda
um zero na sua "memória").

A entrada do flip-flop é (R=0, S=0), ou seja,


modo de leitura. Com estes valores de entrada
o flip-flop não modifica seu estado interno, apenas
o informa na saída Q (neste caso, é zero)

58
Circuitos Sequenciais
• O flip-flop guarda o bit 1 internamente:
=1
=0

O flip-flop passa a gerar 1, (Q = 1).


Indicando que este é seu novo
valor interno.

A entrada do flip-flop é (R=0, S=1). Está-se comandando


o flip-flop a guardar o valor 1 internamente (operação SET).
O estado interno dele vai mudar para guardar (lembrar)
que possui o valor 1 a partir de agora.

59
Circuitos Sequenciais
• O flip-flop volta ao estado de leitura:
=1
=0

... ele não altera a sua saída Q,


que continua informando
que ele está guardando um 1.
Compare este slide com o
primeiro desta série!
A entrada do flip-flop é (R=0, S=0), ou seja,
modo de leitura novamente, mas, para surpresa...

60
Circuitos Sequenciais
• Agora vamos guardar um 0 no flip-flop:
=1
=0

O flip-flop passa a gerar 0, (Q = 0).


Indicando que este é seu novo
valor interno.

A entrada do flip-flop é (R=1, S=0).Está-se comandando


o flip-flop a guardar o valor 0 internamente (operação RESET).
O estado interno dele vai mudar para guardar (lembrar)
que possui o valor 0 a partir de agora.

61
Circuitos Sequenciais
• O flip-flop volta ao estado de leitura:
=1
=0

... ele apenas apresenta na saída


seu estado interno atual, que é 0.

Novamente, a entrada do flip-flop é


modo de leitura (R=0, S=0), e ...

62
Referências Bibliográficas
• Introdução aos Sistemas Digitais (Caps. 2 e 3)
http://pt.scribd.com/doc/52102188/12/Form
as-Canonicas-Padrao-e-Nao-Padrao
• INE5365 - Circuitos Lógicos
http://www.inf.ufsc.br/ine5365/clteoria.html
• Introdução à Computação
http://www.dsc.ufcg.edu.br/~joseana/IC.html
• Logic Gate
http://en.wikipedia.org/wiki/Logic_gate
63
Referências Bibliográficas
• Boolean Algebra
http://en.wikipedia.org/wiki/Boolean_algebra_(l
ogic)
• Circuitos combinacionais
http://pt.wikipedia.org/wiki/Circuitos_combinaci
onais#Circuitos_combinacionais
• Circuito sequencial
http://pt.wikipedia.org/wiki/Circuito_sequencial

64

Você também pode gostar