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 x10 3 x10 2 x10 1 X10 0 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 = d n-1 x b n-1 + d n-2 x b n-2 +... + d 1 x b 1 + d 0 0 x b 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 = 3748 10 N = 3 x 10 3 + 7 x 10 2 + 4 x 10 1 + 8 x 10 0 N = 3000 + 700 + 40 + 8 Em que: b = 10 n = 4 d n 1 = 3, d n 2 = 7, d n 3 = 4, d n 4 = 8 d 3 = 3, d 2 = 7, d 1 = 4, d 0 = 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: 412 5 N = 4 x 5 2 + 1 x 5 1 + 2 x 5 0 N = 4 x 25 + 1 x 5 + 2 x 1 N = 100 + 5 + 2 N = 107 10 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 Kilobyte Megabyte Gigabyte Terabyte Petabyte Exabyte Zettabyte Yottabyte Número de bytes 2 10 ou 1024 bytes 2 20, 1024 KB ou 1048576 bytes 2 30, 1024 MB ou 1073741824 bytes 2 40, 1024 GB, ou 1099511627776 bytes 2 50, 1024 TB, ou 1125899906842624 bytes 2 60 ou 1152921504606846976 bytes 2 70 ou 1180591620717411303424 bytes 2 80 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. 2 10 Dois na base dez (Sistema decimal) 3 2 Três na base dois (Sistema binário) 4 8 Quatro na base oito (Sistema octal) 10 16 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 = 2 3 16 = 2 4 (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 2 n, 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: 111010111 2 = 111-010-111 = 727 8 111010111 2 = 0001-1101-0111X = 1(13)7 = 1D7 16 237 8 = 010, 011, 111 = 10011111X 2 F5A 16 = 1111, 0101, 1010 = 111101011010 2 = 3930 10 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 2 n ). 16
Conversão entre bases (clássico) Exemplo: Converter 10 10 para binário usando divisões sucessivas (por dois): 10 2 0 5 2 1 2 2 0 1 2 1 0 Resultado obtido: 1010 2 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 10 10 posicional para binário usando notação Processo: Etapa 1:Verificar a potência n que ultrapassa o número. 10 < 16 (2 4 ) n = 4 Etapa 2: Utilizar notação posicional de n-1 até 0. bit x 2 3 bit x 2 2 bit x 2 1 bit x 2 0 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: 1010 2 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 1 1 1 1 64 32 16 8 4 2 1 32 + 16 + 4 + 2 20
Conversão entre bases Pausa para exercícios Exemplo1: Converter 40 10 posicional: para binário usando notação Exemplo2: Converter 65 10 posicional: para binário usando notação Exemplo3: Converter 127 10 posicional: para binário usando notação Exemplo4: Converter 109 10 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, 1 6 10 2 10 1 10 0 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,93 10 Parte inteira 10 10 = 1010 2 Parte fracionária 0,93 10 2 x 0,93 = 1,86 2 x 0,86 = 1,72 2 x 0,72 = 1,44 2 x 0,44 = 0,88 2 x 0,88 = 1,76 Portanto 10,93 10 = 1010,11101 2 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: 0 x 0 = 0 0 x 1 = 0 1 x 0 = 0 1 x 1 = 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 3657 8 e 1741 8 (=5620 8 ) 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 1 x 2 + 0 = 2 2 x 2 + 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 possui código binário fixo com 4 dígitos 0 = 0000 5 = 0101 1 = 0001 6 = 0110 2 = 0010 7 = 0111 3 = 0011 8 = 1000 4 = 0100 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) (F) 1111 (0) 0000 (1) 0001 (E) 1110 0010 (2) (D) 1101 (C) 1100 Pular 6 posições (letras) 0011 (3) 0100 (4) (B) 1011 0101 (5) (A) 1010 0110 (6) 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 Proposição ~p V F 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 p v q 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 p v q V V V V F V F V V F F F p q p q V V V V F F F V V F F V 48
Prova de conceito 2º - Obter (~p v ~q) a partir de (p v q) p q p v q V V V V F V F V V F F F ~p ~q ~p v ~q F F F F V V V F V 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 V V V V F F F V V F F V p ~q p ~q V F F V V 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 V F F V A S 1 0 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: AND, (^) OR (v), NOT (~) Funções lógicas compostas: NAND (NOT+AND), NOR (NOT+OR) Funções lógicas complementares: XOR, XNOR ( ) 53