Você está na página 1de 23

Arquitetura de Computadores I

Portas e funções lógicas


Minimização de circuitos
Simplificação de circuitos
Prof. Marcos W. Rodrigues
marcos.rodrigues@sga.pucminas.br
Roteiro
• Portas lógicas
• Funções lógicas
• Minimização de circuitos
• Simplificação de circuitos
Arquitetura de Computadores I

Portas e funções lógicas


Histórico
• Em meados do século XIX o matemático inglês George Boole
desenvolveu um sistema matemático de análise lógica
• Em meados do século XX, o americano Claude Elwood
Shannon sugeriu que a Álgebra Booleana poderia ser usada
para análise e projeto de circuitos de comutação
Histórico
• A eletrônica, em seus primórdios, solucionava os problemas
da área por meio de sistemas analógicos (valores contínuos)
• Com o avanço tecnológico, os problemas passaram a ser
solucionados por meio da eletrônica digital (2n,8n,10n,16n)
• Na eletrônica digital, os sistemas como os computadores,
processadores de dados, sistemas de controle, codificadores,
decodificadores, empregam um pequeno grupo de circuitos
lógicos básicos, o qual são conhecidos como portas lógicas
– Portas lógicas: E (AND), OU (OR), NÃO (NOT), FLIP-FLOP
• O uso adequado dessas portas torna possível implementar
todas as expressões geradas pela Álgebra de Boole
Álgebra booleana
• Na álgebra de Boole, existem apenas dois estados (valores
ou símbolos) permitidos:
– Estado 0 (zero): Representa NÃO, FALSO, aparelho desligado,
ausência de tensão
– Estado 1 (um): Representa SIM, VERDADEIRO, aparelho ligado,
presença de tensão
• Se 0 representa uma situação, a situação contrária é 1
• Em qualquer bloco (porta ou função) lógico somente os
estados (0 ou 1) são permitidos em suas entradas e saídas
• Logo, uma variável booleana somente assume um dos dois
estados permitidos (0 ou 1)
Portas lógicas
Porta Lógica Expressão Nome Entrada (𝐴 e 𝐵) Saída (𝑆)
0 1
𝑆 = 𝐴 → 𝐴ҧ NOT
1 0

𝑆 =𝐴∗𝐵 AND Ambas entradas = 1 1

𝑆 =𝐴+𝐵 OR Uma entrada = 1 1

𝑆 =𝐴∙𝐵 NAND Uma entrada = 0 1

𝑆 =𝐴+𝐵 NOR Ambas entradas = 0 1

XOR Ambas entradas


𝑆 = 𝐴⨁𝐵 0
= 1 ou = 0
Ambas entradas
𝑆 = 𝐴⨂𝐵 XNOR 1
= 1 ou = 0
Tabela verdade
• A tabela verdade é um mapa de todas os resultados
(situações) possíveis para uma certa expressão booleana
• Para 2 variáveis booleanas (𝐴 e 𝐵), existem quatro valores
ou interpretações possíveis, i.e., 22 = 4
• Em geral, para 𝑛 variáveis booleanas de entrada, há 2𝑛
interpretações possíveis
– Caso a porta ou a função lógica tenha 3 entradas, temos 23 = 8
possibilidades de resultados na saída
– Caso a porta ou a função lógica tenha 4 entradas, temos 24 = 16
possibilidades de resultados na saída
Exemplo de saída das portas lógicas
𝐴 𝐵 NOT AND OR NAND NOR XOR XNOR
𝐴ҧ 𝐴∗𝐵 𝐴+𝐵 𝐴∙𝐵 𝐴+𝐵 𝐴⨁𝐵 𝐴⨂𝐵

0 0 1 0 0 1 1 0 1

0 1 1 0 1 1 0 1 0

1 0 0 0 1 1 0 1 0

1 1 0 1 1 0 0 0 1
Funções lógicas
Norma ANSI Função Booleana Nome Função
𝑆 = 𝐴 → 𝐴ҧ Complemento (Negação ou
NOT
𝐴′, ¬𝐴, Ã inversora)
𝑆 =𝐴∗𝐵
AND Multiplicação (Conjunção)
𝐴 𝑒 𝐵, 𝐴 & 𝐵, 𝐴^𝐵, 𝐴, 𝐵
𝑆 =𝐴+𝐵
OR Soma (Disjunção)
𝐴 𝑜𝑢 𝐵, 𝐴 | 𝐵, 𝐴𝑣𝐵, 𝐴; 𝐵
𝑆 =𝐴∙𝐵
NAND
(𝐴 ∙ 𝐵)′,¬(𝐴 ∙ 𝐵)
𝑆 =𝐴+𝐵
NOR
(𝐴 + 𝐵)′,¬(𝐴 + 𝐵)
XOR
𝑆 = 𝐴⨁𝐵 Ou exclusivo

𝑆 = 𝐴⨂𝐵 XNOR Não Ou exclusivo


Circuitos integrados com portas lógicas
Correspondência entre expressões
• Todo circuito lógico executa uma expressão booleana
• Todo circuito lógico, por mais complexo que seja, é composto
pela interligação de blocos lógicos básicos
• Assim, é possível obter as expressões booleanas geradas por
um circuito lógico
Expressões booleanas de circuitos
lógicos
• Seja o circuito:

• Divide-se o circuito em duas partes (1) e (2)


• No circuito (1) tem-se o resultado 𝑆1 = 𝐴 ⋅ 𝐵, o qual é uma
das entradas do circuito (2), obtendo o resultado 𝑆 = 𝑆1 + 𝐶
Expressões booleanas de circuitos
lógicos
• Para obter a expressão final das entradas A,B,C, basta
substituir a expressão S1 na expressão de S, e.g.:
– (1) S1 = A . B
– (2) S = S1 + B
– Tem-se: S = (A . B) + B
• Portanto, a expressão geral do circuito é:
– 𝑆 = (𝐴 ⋅ 𝐵) + 𝐶
Exercício
• Escreva a expressão booleana executada pelo circuito
Exercício
• Escreva a expressão booleana executada pelo circuito
Circuitos lógicos de expressões
booleanas
• É possível obter um circuito lógico, dada uma expressão
booleana
• Como na aritmética elementar, parênteses têm maior
prioridade, seguidos pela multiplicação (função AND) e, por
último, pela soma (função OR)
• Seja a expressão
– S = (A + B) • C • (B + D)
• Basta separar a expressão em subexpressões:
– S = (A + B) • C • (B + D)
Circuitos lógicos de expressões
booleanas
• No primeiro e segundo parênteses temos uma soma
booleana S1=(A+B) e S2=(B+D), respectivamente, portanto o
circuito é uma porta lógica OU
• Entre as duas somas booleanas temos uma multiplicação,
assim, S = S1 • C • S2
Circuitos lógicos de expressões
booleanas
• Assim, a expressão S = (A + B) • C • (B + D) possui o
seguinte circuito completo:
Exercício
• Desenhe o circuito lógico que executa a seguinte expressão
booleana
• S = (A • B • C) + (A + B) • C
Exercício
• Implemente o circuito lógico cuja expressão característica é
• 𝑆 = 𝐴⋅𝐵+𝐶⋅D ′
Expressões ou circuito representados
pela tabela verdade
• Uma forma de verificar uma função booleana consiste em
utilizar sua tabela verdade
• Como visto anteriormente, há uma equivalência entre o
circuito lógico e sua expressão característica
• Podemos obter um circuito a partir de sua expressão
• Podemos obter expressões a partir dos circuitos
• Uma tabela verdade representa o comportamento, tanto do
circuito, como de sua expressão característica
Como obter a tabela verdade a partir
de uma expressão
• Colocar todas as possibilidades (interpretações) para as
variáveis de entrada
– Lembrar que para 𝑁 variáveis, há 2𝑁 possibilidades
• Adicionar colunas para cada sub-fórmula da expressão
– Preencher cada coluna com seus resultados
• Adicionar uma coluna para o resultado final
– Preencher essa coluna com o resultado final
• Considere a expressão 𝑆 = 𝐴 ⋅ 𝐵 ⋅ 𝐶 + 𝐴 ⋅ 𝐷 + 𝐴 ⋅ 𝐵 ⋅ 𝐷
• Como há 4 variáveis de entrada (𝐴, 𝐵, 𝐶, 𝐷), há 24 = 16
interpretações, variando 0s e 1s

Você também pode gostar