3 - Operações Lógicas
3 - Operações Lógicas
3 - Operações Lógicas
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
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
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
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:
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
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
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
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
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.
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.B)'
Depois
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
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
58
Circuitos Sequenciais
• O flip-flop guarda o bit 1 internamente:
=1
=0
59
Circuitos Sequenciais
• O flip-flop volta ao estado de leitura:
=1
=0
60
Circuitos Sequenciais
• Agora vamos guardar um 0 no flip-flop:
=1
=0
61
Circuitos Sequenciais
• O flip-flop volta ao estado de leitura:
=1
=0
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