1 - Ufersa

Propaganda
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
CURSO: CIÊNCIA DA COMPUTAÇÃO
Aula 1 – Sistemas de numeração posicional
Aula 2 – Modificadores e conectores lógicos
Prof. Leonardo Augusto Casillo
OBJETIVOS DO CURSO
Conhecer os fundamentos da álgebra booleana,
circuitos combinacionais e sequenciais.
Estudar as funções lógicas que atuam como base de
um circuito digital e suas formas de simplificação.
Compreender as técnicas de análise e síntese de
circuitos digitais de baixa e média complexidade.
Projetar e implementar sistemas digitais.
2
PROGRAMA
Introdução e Conceitos Básicos
Funções Lógicas
Expressões e circuitos lógicos
Álgebra Booleana
◦ Simplificação algébrica
◦ Mapas de Karnaugh
Circuitos Combinacionais
Circuitos Sequenciais
Famílias Lógicas
Máquinas de estado
Memórias semicondutoras
3
AVALIAÇÃO
Assiduidade às aulas;
Participação do aluno nas aulas;
Provas escritas;
Listas de exercícios;
Trabalhos realizados individualmente e/ou em
grupo.
4
BIBLIOGRAFIA
◦ TOCCI, Ronald J. Sistemas Digitais: Princípios e
Aplicações.
◦ IDOETA, Ivan Valeije. (et al). Elementos de eletrônica
digital.
◦ Demais livros e apostilas de Circuitos Digitais.
5
Sistemas de numeração posicional
Sistema de numeração: conjunto de regras que nos
permite escrever e ler qualquer número, utilizando para isto
símbolos básicos. Os símbolos que utilizamos (os algarismos
de 0 a 9) são apenas convenções para serem utilizadas em
sistemas numéricos, sendo que podem ser utilizados letras,
símbolos geométricos ou qualquer outra simbologia.
Base de um sistema: quantidade de símbolos necessários
para representar números em um sistema de numeração.
◦ Maior símbolo (algarismo) da base = base - 1
Notação Posicional: Dado um número, seu valor é
calculado de acordo com a base do sistema e a posição que
cada algarismo ocupa com sua potência correspondente.
6
Sistemas de numeração posicional
Um número no sistema de base decimal pode ser
decomposto em uma soma de potências de base 10. E
assim para cada sistema de numeração, com sua base
correspondente.
Ex.: 1998 / 9198
◦ A posição dos algarismos determina a diferença de valor.
Processo de Soma de Potências (de 10)
x1000 x100 x10 x1 1000+900+90+8
1
9
9
8 1998
x103 x102 x101 X100 9000+100+90+8
9
1
9
8
9198
7
Sistemas de numeração posicional
Generalizando, um número N é expresso da seguinte
forma:
N = dn-1 x bn-1 + dn-2 x bn-2 + ... + d1 x b1 +
d0 x b0
Em que:
◦
◦
◦
◦
d -> cada algarismo do número
n – 1, n – 2, etc -> indicam a posição de cada número
b -> base de numeração
n -> número de dígitos
8
Sistemas de numeração posicional
Exemplo: N = 374810
N = 3 x 103 + 7 x 102 + 4 x 101 + 8 x 100
N = 3000 + 700 + 40 + 8
Em que:
◦ b = 10
◦ n=4
◦ dn – 1 = 3, dn – 2 = 7, dn – 3 = 4, dn – 4 = 8
d3 = 3, d2 = 7, d1 = 4, d0 = 8
9
Sistemas de numeração posicional
Importante: Qualquer sistema de numeração, ao ser
descrito na equação de numeração posicional, resultará no
valor correspondente ao sistema decimal (ou seja, é uma
equação de conversão de qualquer base para a base 10).
Ex: 4125
N = 4 x 52 + 1 x 51 + 2 x 50
N = 4 x 25 + 1 x 5 + 2 x 1
N = 100 + 5 + 2
N = 10710
10
Sistemas de numeração
Decimal
Binário
Octal
Hexadecimal
0
0
0
0
1
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
6
6
6
7
7
7
8
8
9
9
A
B
C
D
E
F
11
Sistemas de numeração
◦ Grandezas binárias
Grandeza
Número de bytes
Kilobyte
210 ou 1024 bytes
Megabyte
220, 1024 KB ou 1048576 bytes
Gigabyte
230, 1024 MB ou 1073741824 bytes
Terabyte
240, 1024 GB, ou 1099511627776 bytes
Petabyte
250, 1024 TB, ou 1125899906842624 bytes
Exabyte
260 ou 1152921504606846976 bytes
Zettabyte
270 ou 1180591620717411303424 bytes
Yottabyte
280 ou 1208925819614629174706176 bytes
12
Sistema Binário e equivalentes
Utilizado por sua fácil representação eletrônica. Possui apenas
dois símbolos (0 ou 1), que podem ser facilmente relacionados
aos estados de “aberto” e “fechado” dos transistores do
computador, ou “com corrente” e “sem corrente”.
Para não haver confusão entre os sistemas, já que os símbolos
são basicamente os mesmos, usa-se um índice que indica a que
sistema o número pertence. A ausência do índice indica o
Sistema Decimal.
210
32
48
1016
Dois na base dez
(Sistema decimal)
Três na base dois
(Sistema binário)
Quatro na base oito
(Sistema octal)
Um–zero na base 16 (Sistema hexadecimal)
13
Sistema Binário e equivalentes
Os Sistemas Octal e Hexadecimal também são
amplamente utilizados em Informática devido a
sua fácil relação com o sistema binário.
8 = 23
16 = 24
(Pausa para pergunta!) Quais as aplicações dos
sistemas de base 8 e 16 e qual o motivo do seu
uso nestas aplicações?
14
Conversão entre bases
Para converter um número de base 2 para outro de
base 2n, basta dividir o número binário, da direita para a
esquerda, em grupos de n bits e encontrar o símbolo
equivalente.
O inverso é realizado substituindo o símbolo pelo grupo
de n bits correspondentes.
Exemplos:
◦
◦
◦
◦
1110101112 = 111-010-111 = 7278
1110101112 = 0001-1101-0111X = 1(13)7 = 1D716
2378 = 010, 011, 111 = 10011111X2
F5A16 = 1111, 0101, 1010 = 1111010110102 = 393010
15
Conversão entre bases
A conversão de números em Sistema Decimal para o
Sistema Binário pode ser feita através do mecanismo
de divisões sucessivas ou levando-se em conta as
potências referentes a cada posição, e relacionando-as
com 1’s e 0’s conforme o número a ser representado.
A conversão de números em Sistema Decimal para
qualquer outra base pode ser feita através do
mecanismo de divisões sucessivas ou então
convertendo-os para binário e depois encontrar o
equivalente (se a base desejada for 2n).
16
Conversão entre bases (clássico)
Exemplo: Converter 1010 para binário usando divisões
sucessivas
(por dois): 10 2
0
5
1
2
2
0
2
1
1
2
0
Resultado obtido: 10102
Processo: divide-se por 2 com quociente inteiro, sucessivamente
até que o quociente seja igual a 0. Os restos da divisão, de trás
para frente, formam o número binário.
17
Conversão entre bases (potências)
Exemplo: Converter 1010 para binário usando notação
posicional
Processo:
◦ Etapa 1:Verificar a potência n que ultrapassa o número.
10 < 16 (24) n = 4
◦ Etapa 2: Utilizar notação posicional de n-1 até 0.
bit x 23
bit x 22
bit x 21
bit x 20
bit x 8
Bit x 4
Bit x 2
Bit x 1
18
Conversão entre bases
◦ Etapa 3: Subtrair o valor de cada potência (da mais
significativa para a menos significativa). Caso a subtração
seja possível, inserir o valor “1” na posição
correspondente, caso contrário “0”. O valor resultante de
cada subtração é utilizado na próxima subtração.
10 – 8 = 2 (ok – valor 1)
2 – 4 = -2 (X – valor 0)
2 – 2 = 0 (ok – valor 1)
0 – 1 = -1 (X – valor 0)
1
0
1
0
◦ Resultado obtido: 10102
19
Conversão entre bases
◦ Simplificando, basta utilizar o método das potências (da
direita para a esquerda, começar por 1 e dobrar o
número: 1, 2, 4, 8, ...) e encontrar a “combinação” correta
de 0’s e ‘s, já que só existe uma combinação para cada
número.
◦ Exemplo: converter 52 para binário
64
1
1
32
16
8
1
1
4
2
1
32 + 16 + 4 + 2
20
Conversão entre bases – Pausa para
exercícios
Exemplo1: Converter 4010 para binário usando notação
posicional:
Exemplo2: Converter 6510 para binário usando notação
posicional:
Exemplo3: Converter 12710 para binário usando notação
posicional:
Exemplo4: Converter 10910 para hexadecimal usando notação
posicional:
21
Representação de números fracionários
A representação de números com casas decimais é feita
levando-se em conta, ainda, a Notação Posicional e sua
sequência de potências. Os algarismos a direita da vírgula
correspondem as potências da base com expoentes
negativos, já que o primeiro número a esquerda da vírgula
representa a base elevada a expoente 0.
O valor representado pelos algarismos é correspondente a
posição que ele ocupa. Se o algarismo está na posição
relacionada a 10-1 ele representa o seu valor multiplicado
por 0,1, se está na posição relacionada a 10-2 ele representa
o seu valor multiplicado por 0,01, e assim por diante.
Exemplo:
1
4
5
102 101 100
, 1
6
10-1 10-2
22
Representação de números fracionários
Conversão da parte fracionária de números decimais para
o sistema binário: Multiplica-se o número a ser convertido
pela base equivalente (2), do resultado obtido, extrai-se a
parte inteira, que será sempre 0 ou 1, e o restante (a direita
da vírgula) é utilizado sucessivamente para calcular os
outros dígitos. O processo se encerra quando a parte
fracionária é zero ou quando é atingido um número
razoável de casas decimais.
Exemplo: 10,9310
Parte inteira 1010 = 10102
Parte fracionária 0,9310
2 x 0,93
2 x 0,86
2 x 0,72
2 x 0,44
2 x 0,88
=
=
=
=
=
1,86
1,72
1,44
0,88
1,76
Portanto 10,9310 = 1010,111012 com 5 casas decimais.
23
Aritmética binária
A adição com números binários é feita da mesma forma
que fazemos com qualquer sistema de numeração,
levando-se em conta que o sistema binário é formado por
apenas 2 símbolos (0 e 1). As combinações possíveis
destes símbolos para a execução da adição são:
0+0=0
0+1=1
1+0=1
1 + 1 = 10, neste caso, durante a adição será
usado o bit 0 e ocorrerá um “vai um” para o bit à
esquerda, o que pode gerar overflow.
24
Aritmética binária – Pausa para
exercícios
Somar 45 e 47 (=1011100)
Somar 37 e 87 (=1111100)
Somar 101100101 e 100111011 (=1010100000)
25
Subtração binária
A adição com números binários também é feita da mesma
forma que fazemos com qualquer sistema de numeração.
As combinações possíveis destes símbolos para a execução
da subtração são:
0-0=0
0 - 1 = 1 , neste caso, durante a subtração será
usado o bit 1 e ocorrerá um “empréstimo” do
valor da base do bit 1 mais à esquerda (2 – 1 = 1).
1-0=1
1 - 1 = 0.
26
Subtração binária – Pausa para
exercícios
Subtrair 37 e 26 (=001011)
Subtrair 201 e 187 (=00001110)
Subtrair 100110001 e 10101101 (=010000100)
27
Multiplicação binária
Utilizam-se as mesmas regras da multiplicação
decimal, mas é facilitado devido a ter somente 2
números possíveis. As combinações possíveis
destes símbolos para a execução da subtração são
ou 0 ou o próprio número:
0x0=0
0x1=0
1x0=0
1x1=1
28
Multiplicação binária – Pausa para
exercícios
Multiplicar 6 e 5 (=11110)
Multiplicar 21 e 13 (=100010001)
29
Divisão binária
Verificam-se quantas vezes o divisor cabe no
dividendo por tentativa;
Subtrai-se do dividendo o valor resultante da
multiplicação do quociente pelo divisor,
encontrando-se um valor que é o resto da
divisão;
O resto da divisão deve ser um valor igual, no
máximo, ao divisor menos 1.
30
Divisão binária
Exemplos:
◦ Dividir 1001 por 101
1001 – 101 = resto 0100 e quociente 1
Em decimal: 9 / 5 = 1 com resto 4
◦ Dividir 101010 por 110
(1010)10 – 110 = resto 100 e quociente 1
1001 – 110 = resto 011 e quociente 1
110 = 110 = resto 0 e quociente 1
◦ Dividir 37 / 4 (=1001)
31
Aritmética Octal e Hexadecimal
(Geralmente) apenas para adição e subtração
Mesmas regras da aritmética binárias
Exercícios:
◦ Somar 36578 e 17418 (=56208)
◦ Somar 3A943B e 23B7D5 (=5E4C10)
◦ Subtrair 4C7BE8 e 1E927A (=2DE96E)
32
Aritmética Hexadecimal
◦ Somas elementares em hexadecimal:
+
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
A
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
B
B
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A
C
C
D
E
F
10
11
12
13
14
15
16
17
18
19
1A 1B
D
D
E
F
10
11
12
13
14
15
16
17
18
19
1A 1B 1C
E
E
F
10
11
12
13
14
15
16
17
18
19
1A 1B 1C 1D
F
F
10
11
12
13
14
15
16
17
18
19
1A 1B 1C 1D 1E
33
Outros métodos de conversão de
bases
Forma polinomial multiplicativa (para base 10):
◦
◦
◦
◦
Multiplica dígito mais significativo por B;
Somar ao resultado o algarismo seguinte;
Multiplicar esse novo resultado por B;
Repetir até atingir o último algarismo.
◦ Exemplo: Converter 1011110 para base 10
1x2+0=2
2x2+1=5
5 x 2 + 1 = 11
11 x 2 + 1 = 23
23 x 2 + 1 = 47
47 x 2 + 0 = 94
34
Outros métodos de conversão de
bases
Conversão através do Código BCD (decimal
para binário).
◦ Cada algarismo
dígitos
◦ 0 = 0000
◦ 1 = 0001
◦ 2 = 0010
◦ 3 = 0011
◦ 4 = 0100
possui código binário fixo com 4
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001
◦ 10 = 0001 0000
◦ 95 = 1001 0101
◦ 128 = 0001 0010 1000
35
Representação BCD
Uso: apresentação de um resultado contido em um
registrador em algum tipo de mostrador (ex: display)
O formato BCD utiliza o sistema hexadecimal (?!?)
Como são permitidos apenas os dígitos 0 a 9, é possível ler
os dígitos em Hexa como Decimais.
Não é conversão, é representação !!!
Exemplo: o valor 15 pode ser representado como 15H
◦ 1 -> 0001,
◦ 5 -> 0101,
◦ 15 = 0001 0101 (BCD) = 1 5 H
!! Lembrando que: 15D = 1111B = FH
36
Representação BCD
Aritmética em BCD (Soma e Subtração)
(0)
(F)
1111
0000
(1)
0001
0010 (2)
(E) 1110
(D) 1101
(C) 1100
0011 (3)
“Pular” 6
posições
(letras)
0100 (4)
0101 (5)
(B) 1011
0110 (6)
(A) 1010
1001
(9)
1000
(8)
0111
(7)
37
Representação BCD
Soma:
◦ Somar os dígitos em Hexa (ou binário);
◦ Se a soma for superior a 9, adicionar 6 e
considerar o vai-1 para a soma seguinte.
◦ Ex: somar 56 + 28 em BCD
6 + 8 = 14D (EH) 14 + 6 = 20 (14H) “vai-1”
5 + 2 + 1 = 8D (8H)
56 + 28 = 84 (BCD)
!!Lembrar que 84D = 54H
Representação BCD
Subtração:
◦ Análogo a adição (subtrair 6 do resultado)
◦ Ao invés de vai-1, tem-se “vem-1” (ou
empresta-1)
Ex: 45 – 37
45H – 37H = 0EH
E – 6 = 08H
16
45
37
---E (14)
Lógica Circuitos Digitais
Modificadores e Conectivos Funções Lógicas utilizadas
em circuitos digitais.
Propriedades da Tautologia Propriedades utilizadas na
álgebra booleana.
Tabela Verdade com valores lógicos Tabela verdade na
qual a saída representa a combinação de valores de
entrada de um circuito lógico.
40
Modificador não (~)
Forma outra proposição, com valor lógico oposto ao da
proposição original (negação).
Proposição p
V
F
Proposição ~p
F
V
41
Conectivo “e” (^)
Sejam p e q duas proposições, a proposição p^q é
chamada de conjunção.
A conjunção p^q somente é verdadeira se p e q
forem verdadeiras (intersecção).
p
q
p^q
V
V
V
V
F
F
F
V
F
F
F
F
42
Conectivo “ou” inclusivo (v)
Sejam p e q duas proposições, a proposição p v q é
chamada de disjunção ou adjunção.
A disjunção p v q é verdadeira se p ou q forem
verdadeiras (união).
A disjunção p v q somente é falsa se p e q forem falsas.
p
q
pvq
V
V
V
V
F
V
F
V
V
F
F
F
43
Conectivo “Se...então” (→)
Sejam p e q duas proposições, a proposição p→q é
chamada de subjunção ou condicional.
A subjunção p→q somente é falsa quando a primeira
proposição (p) for verdadeira e a segunda (q) for falsa.
Lembrar que: não é especificado um “senão”
p
q
p→q
V
V
V
V
F
F
F
V
V
F
F
V
44
Conectivo “Se e somente se” (↔
↔)
Sejam p e q duas proposições, a proposição p ↔ q é
chamada de bijunção ou bicondicional.
A bijunção p ↔ q somente é verdadeira quando as
proposições são ambas falsas ou verdadeiras.
Lembrar que: p ↔ q = (p → q) ^ (q → p)
p
q
p↔q
V
V
V
V
F
F
F
V
F
F
F
V
45
Tautologia e Contradição
Tautologia (Verdadeiras)
◦ Proposições que apresentam a tabela-verdade somente com V
Contradição (Falsas)
◦ Proposições que apresentam a tabela-verdade somente com F
46
Tautologia e Contradição
(Propriedades)
Comutativa: p ^ q ⇔ q ^ p / p v q ⇔ q v p
Associativa: p ^ (q ^ r) ⇔ (p ^ q) ^ r / p v (q v r) ⇔
(p v q) v r
Distributiva: p v (q ^ r) ⇔ (p v q) ^ ( p v r) / p ^ (q v r) ⇔ (p ^ q)
v ( p ^ r)
De Morgan: ~(p ^ q) ⇔ ~p v ~q / ~(p v q) ⇔ ~p ^ ~q
Dupla negação: ~(~p) ⇔ p
Contra-recíproco: p q ⇔ ~q ~p
47
Prova de conceito
Provar que: p → ~q é equivalente a ~p v ~q
Objetivos: verificar que dois circuitos lógicos são
equivalentes se possuírem a mesma tabela
verdade
1º - Tabelas-verdade de p v q e p → q
p
q
pvq
p
q
p→q
V
V
V
V
V
V
V
F
V
V
F
F
F
V
V
F
V
V
F
F
F
F
F
V
48
Prova de conceito
2º - Obter (~p
~p v ~q) a partir de (p
p v q)
p
q
pvq
~p
~q
~p v ~q
V
V
V
F
F
F
V
F
V
F
V
V
F
V
V
V
F
V
F
F
F
V
V
V
‘Negando’ os valores de p e q
49
Prova de conceito
3º - Obter (p → ~q) a partir de (p → q)
p
q
p→q
p
~q
p → ~q
V
V
V
V
F
F
V
F
F
V
V
V
F
V
V
F
F
V
F
F
V
F
V
V
Modificando q
50
Prova de conceito
4º - Comparar tabelas obtidas
~p
~q
~p v ~q
p
~q
p → ~q
F
F
F
V
F
F
F
V
V
V
V
V
V
F
V
F
F
V
V
V
V
F
V
V
51
Considerações
Valores Lógicos (V, F) Dígitos binários (0,1)
p
~p
A
S
V
F
1
0
F
V
0
1
Tautologia = Circuito com comportamento sempre 1
◦
Ex: um fio ligado diretamente a uma fonte de energia (Vcc)
Contradição – circuito com comportamento sempre 0
◦
Ex: um circuito aberto, diretamente ligado ao terra
52
Considerações
Nem todos os conectivos vistos possuem uma função
lógica definida com comportamento equivalente, EMBORA
toda função lógica contenha um comportamento válido.
Ex: Não existe uma função lógica “batizada” igual a p → q, mas o
comportamento dessa função pode ser representado sem problemas.
◦
Da mesma forma, existem funções lógicas que não
possuem um “conectivo” visto em lógica proposicional
◦
Ex: “Ou-Exclusivo” (XOR)
Funções lógicas básicas:
Funções lógicas compostas:
AND, (^) OR (v) , NOT (~)
NAND (NOT+AND), NOR (NOT+OR)
Funções lógicas complementares:
XOR, XNOR (↔
↔)
53
Download