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