Você está na página 1de 32

José Rufino

Arquitetura de Computadores
e Sistemas Operativos
Informática de Gestão, ESTiG/IPB
José Rufino
2020/2021

Parte AC3
Álgebra Booleana
e Lógica Digital
Objetivos

• compreender a relação entre a lógica booleana e


os circuitos digitais de um computador

• perceber como desenhar circuitos lógicos simples

• compreender como os circuitos digitais operam


para formar sistemas de computação complexos

2
3.1 Introdução

• final do século XIX: George Boole “enfureceu” filósofos


e matemáticos por sugerir que o pensamento lógico era
representável por equações matemáticas
– como é que alguém se atrevia a sugerir que o pensamento humano
podia ser traduzido e manipulado como uma fórmula algébrica?

• os computadores, tal como os conhecemos, são


implementações das leis do pensamento de Boole
– John Atanasoff e Claude Shannon foram dos primeiros a ver esta relação

3
3.2 Álgebra Booleana

• álgebra booleana: um sistema matemático para


manipulação de variáveis com 2 valores possíveis
– lógica formal: valores “true” e “false”
– sistemas digitais: “on” e “off”, 1 e 0 ou “high” e “low”
• as expressões booleanas são criadas através da
aplicação de operações sobre variáveis booleanas
• operadores booleanos + comuns: AND, OR, NOT

4
3.2 Álgebra Booleana

• um operador booleano pode ser


completamente descrito por uma
tabela de verdade
• as tabelas de verdade para os
operadores AND e OR são as
apresentadas à direita →
• AND é também conhecido como
o produto booleano
• OR é também conhecido como a
soma booleana
5
3.2 Álgebra Booleana

• a tabela de verdade para


o operador NOT é
apresentada à direita →

• a operação NOT é comummente representada


por um traço sobre a variável booleana em causa
(i.e., X); é também indicada com ' ou  (X ou X')

6
3.2 Álgebra Booleana

• uma função booleana tem:


• pelo menos uma variável booleana
• pelo menos um operador booleano
• pelo menos uma entrada contida no conjunto {0,1}
• implica também uma saída contida no conjunto {0,1}

percebe-se agora a utilização do sistema


binário nos sistemas de computação

7
3.2 Álgebra Booleana

• a tabela de verdade para a


função booleana

é apresentada à direita
• para facilitar a avaliação da
função, a tabela de verdade
contém colunas adicionais
(a sombreado) com a ava-
liação de partes da função

8
3.2 Álgebra Booleana

• tal como na aritmética


comum, as operações
booleanas têm regras
de precedência
• o operador NOT tem a
> prioridade, seguido do
AND e, por fim, do OR
• o método usado para
particionar a função tem
por base estas regras
checkpoint: exercícios 3.1,
3.2, 3.7.a, 3.8.a, 3.9.a, 3.14.a 9
3.2 Álgebra Booleana

• os computadores digitais contêm circuitos que,


basicamente, implementam funções booleanas
• quanto mais simples for uma função booleana,
mais simples será o circuito correspondente
– vantagens: circuitos mais simples são mais baratos,
consomem menos energia e operam mais rapidamente
• com este pressuposto, tenta-se sempre reduzir
as funções booleanas à sua forma mais simples
• existem um conjunto de propriedades booleanas
que permitem simplificar bastante as funções

10
// 3.2 Álgebra Booleana

• muitas propriedades booleanas apresentam


duas formas: 1) uma para o operador AND
(produto) e 2) outra para o operador OR (soma)
• o primeiro grupo de propriedades é trivial
(elemento neutro, elemento absorvente,
idempotência e complementaridade):

11
// 3.2 Álgebra Booleana

• o 2º grupo também inclui propriedades conhecidas:

12
// 3.2 Álgebra Booleana

• o último grupo é o mais útil nas simplificações


• estas propriedades (leis) são familiares a quem já
tenha estudado teoria de conjuntos ou lógica formal

13
// 3.2 Álgebra Booleana

• as propriedades booleanas podem-se usar para


simplificar consideravelmente a função booleana

14
// 3.2 Álgebra Booleana

• às vezes é mais económico construir um circuito


digital usando o complemento da função
– ou seja, complementando o resultado final
• a lei de DeMorgan oferece uma maneira fácil de
descobrir o complemento de uma função booleana
• recorde-se que a lei de DeMorgan estabelece que:

15
// 3.2 Álgebra Booleana

• no entanto, a lei de DeMorgan pode ser


estendida a qualquer número de variáveis
– basta trocar cada variável pelo seu complemento
e trocar os ANDs por ORs (e vice-versa)
• assim, o complemento de:

será:

16
3.2 Álgebra Booleana

• quando se simplificam expressões booleanas,


verifica-se que existem muitas (rever slide 14)
formas de apresentar a mesma expressão
– as formas “sinónimas” são logicamente equivalentes,
possuindo tabelas de verdade que são idênticas
• assim, de forma a evitar possíveis confusões, os
engenheiros expressam as funções booleanas
na sua forma normalizada ou forma canónica

17
3.2 Álgebra Booleana

• existem duas formas canónicas para as expressões


booleanas: soma de produtos e produto de somas
– o produto booleano é a operação AND
– a soma booleana é a operação OR

• exemplo de uma soma de produtos:

• exemplo de um produto de somas:

18
3.2 Álgebra Booleana

• é fácil converter uma função


para uma soma de produtos
partindo da tabela de verdade
• interessam os valores das
variáveis que tornam a função
verdadeira (i.e., de valor = 1)
• enumeram-se essas variáveis
usando a representação do
complemento para valores 0
• cada grupo é um produto;
somam-se todos os grupos
19
3.2 Álgebra Booleana

• a soma de produtos será:

note-se que a função não está na sua


forma mais simples; apenas foi rees-
crita usando uma soma de produtos

checkpoint:
exercícios 20
3.18,3.19,3.20
3.3 Portas Lógicas

• as funções booleanas apresentaram-se de forma abstrata

• no entanto, as funções booleanas podem ser implementa-


das com circuitos digitais, a que se dá o nome de portas

• um porta lógica é um dispositivo eletrónico que produz um


resultado com base em 2 ou mais valores de entrada
– na realidade, as portas consistem em transístores (de um a seis),
mas os engenheiros pensam nelas como unidades básicas
– os circuitos integrados são compostos por várias portas lógicas

21
3.3 Portas Lógicas

• as 3 portas mais simples são: AND, OR e NOT

• correspondem às operações booleanas equivalentes,


como se pode ver pelas tabelas de verdade das portas
22
3.3 Portas Lógicas

• outra porta muita utilizada é o OR exclusivo (XOR)


• a saída da operação XOR é verdadeira apenas
quando as entradas são diferentes uma da outra

note-se que é usado o símbolo 


para representar a operação XOR

23
3.3 Portas Lógicas

• NAND (negação do
AND) e NOR (ne -
gação do OR) são
também muito
importantes
• os seus símbolos e
respetivas tabelas
de verdade estão à
direita →

24
3.3 Portas Lógicas

• NAND e NOR são


conhecidas como
portas universais lei da dupla negação
– de construção
barata
– qualquer função
booleana pode
ser implementada
usando apenas
NANDs e NORs
– exemp. à direita: uma das leis
de DeMorgan
NOT, AND e OR
25
3.3 Portas Lógicas

• as portas podem ter múltiplas entradas …


• ... e podem ter mais que uma saída
– uma segunda saída pode servir, por exemplo, para
disponibilizar o complemento da operação

26
3.4 Componentes Digitais

• combinações de portas implementam funções


booleanas mais complexas
• o circuito que se segue implementa a função
booleana

OR
NOT
AND
checkpoint:
expressões booleanas simplificadas exercícios 3.22 a
resultam em circuitos mais simples 3.24, 3.26 a 3.30
27
3.5 Desenho de Circuitos

• os circuitos digitais podem ser estudados segundo:


– a análise digital: explora a relação entre as entradas e as
saídas de um circuito
– a síntese digital: cria diagramas lógicos usando os valores
especificados numa tabela de verdade

• no desenho de circuitos digitais é necessário ter em


conta o comportamento físico dos circuitos, contem-
plando os atrasos que ocorrem entre o momento em
que as entradas de um circuito são ativadas e o mo-
mento em que a saída é correta e estável

28
3.5 Desenho de Circuitos

• o desenho eficiente de circuitos eficientes


faz-se com o apoio de software específico
– software fundamental para construir melhor hardware

• na realidade, tal software é uma coleção de


algoritmos que podem também ser implemen-
tados em hardware
– princípio da equivalência entre hardware e software

29
3.5 Desenho de Circuitos

• sendo necessário implementar um algoritmo simples


e especializado, e se a sua velocidade de execução
for importante, é preferível uma solução em hardware
– esta é a ideia associada aos sistemas embebidos,
que são pequenos computadores dedicados,
usados em sistemas vulgares do nosso quotidiano
– os sistemas embebidos requerem programação
específica, que exige conhecimento do funciona-
mento de circuitos digitais, para os quais foram
introduzidos, nesta unidade, conceitos básicos

30
Conclusões

• os computadores implementam lógica booleana


• as funções booleanas são completamente
descritas por tabelas de verdade
• as portas lógicas são pequenos circuitos que
implementam operadores booleanos
• as portas básicas são o AND, o OR e o NOT
– a porta XOR é muito útil no cálculo da paridade e em somadores
• as portas universais são o NOR e o NAND

31
Referências

• livro ECOA – Capítulo 3

32

Você também pode gostar