1 Introdução à Lógica Digital Arquitectura de Sistemas Computacionais Introdução à Lógica Digital ELECTRÓNICA DIGITAL “...é o conjunto de determinadas técnicas e dispositivos integrados, de vários graus de complexidade, que se utilizam principalmente na realização de circuitos de controlo de processos industriais, de equipamentos informáticos para processamento de dados e, em geral, de outros equipamentos e produtos electrónicos.” Relativamente à Electrónica Analógica: Permitiu melhorar sistemas e produtos já existentes e desenvolver outros até aí impossíveis ou inviáveis de construir. Apresentam uma maior imunidade ao ruído eléctrico, elevada densidade de integração, facilidade de acoplamento com outros circuitos, simplicidade de projecto e de análise, ... Arquitectura de Sistemas Computacionais Introdução à Lógica Digital SINAIS ANALÓGICOS: Toda a grandeza Analógica é aquela que assume uma infinidade de valores ao longo do tempo de uma forma contínua e sem saltos bruscos (p.e. variação da temperatura ao longo de um dia). Temp 40 30 20 10 0 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Horas Arquitectura de Sistemas Computacionais Introdução à Lógica Digital SINAIS DIGITAIS: Toda a grandeza Digital é aquela que assume um número finito de valores e que varia de valor por saltos de uma forma descontínua (p.e. variação hora a hora da temperatura ao longo de um dia). Portanto a sua evolução no tempo consiste precisamente em saltar duns valores discretos para outros. Temp 40 30 20 10 0 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Horas Arquitectura de Sistemas Computacionais Introdução à Lógica Digital CIRCUITOS ELECTRÓNICOS DIGITAIS BINÁRIOS: Definição: São circuitos que funcionam baseados em apenas dois valores de amplitude. Nível Alto 1 Nível Baixo 0 Em lógica positiva, faz-se corresponder ao nível mais elevado de tensão o valor lógico 1. Ao valor mais baixo de tensão (que pode ser 0 volts ou outra tensão qualquer) o valor lógico 0. RAZÕES PARA A SUA LARGA UTILIZAÇÃO: Simplicidade e grande tolerância dos componentes dos CIs; Interligação fácil e versátil com outros componentes; Imunidade ao ruído. Arquitectura de Sistemas Computacionais Introdução à Lógica Digital APLICAÇÕES (ELECTRÓNICA DIGITAL): Máquinas de calcular; Instrumentos de medida; Relógios digitais; Contadores; Computadores digitais; Etc... APLICAÇÕES (ELECTRÓNICA ANALÓGICA): Amplificadores de áudio Receptores de rádio Etc... Arquitectura de Sistemas Computacionais 1 Sistemas de Numeração Sistemas de Numeração INTRODUÇÃO A utilização de 10 algarismos diferentes – 0 até 9 – para representação usual de números; Vários países tiveram sistemas não decimais, nomeadamente para medidas de peso ou comprimento. 1 pé → 12 polegadas. Sistema de base 12 (0 até 11); Usando a semana como unidade de contagem dos dias estamos a usar um sistema de base sete (0 até 6); Supondo que não existiam no sistema de base 10 os algarismos 8 e o 9 → sistema com 8 algarismos diferentes → sistema de base oito ou sistema octal. Quando temos que escrever diferentes números em diferentes bases a seguir ao número representamos. entre parentesis a sua base de modo a evitar ambiguidades e imprecisões. Por exemplo: 8(10) = 10(8) Esta igualdade sem os respectivos índices não teria qualquer significado! Nos circuitos digitais para a representação de números e execução de operações aritméticas com circuitos digitais, temos que usar um sistema de numeração que tenha simplesmente dois algarismos - 0 e 1 - sistema binário ou sistema de base 2. Arquitectura de Sistemas Computacionais Sistemas de Numeração FÓRMULA GENÉRICA PARA DEFINIÇÃO DE UM NÚMERO DECIMAL: Nn Nn-1 Nn-2... N1= Nn.bn-1+ Nn-1.bn-2+...+ N1.b0 Onde, N representa um algarismo qualquer pertencente ao valor; n é o número de algarismos pertencentes ao valor; b é a base de numeração pela qual se representa o valor. Arquitectura de Sistemas Computacionais Sistemas de Numeração DESCRIÇÃO DOS SISTEMAS DE NUMERAÇÃO DECIMAL (base 10) Utiliza 10 dígitos {0,1,2,...,9} BINÁRIO (base 2) Utiliza 2 dígitos {0,1} OCTAL (base 8) Utiliza 8 dígitos {0,1,2,...,7} HEXADECIMAL (base 16) Utiliza 16 dígitos {0,1,...,9,A,B,...,F} Arquitectura de Sistemas Computacionais Sistemas de Numeração SISTEMA DECIMAL Baseia-se no facto de anatomicamente dispormos de 5 dedos em cada mão, torna-se necessário que a contagem envolva 10 dígitos sistema de base 10 Sistema de Base 10 {0,1,2,3,4,5,6,7,8,9} PESO A posição de cada um destes dígitos diz-nos a grandeza que representa e pode ser designada por peso. EXEMPLO (número inteiro): 3 4 6 7 Unidades Dezenas Centenas Milhares - EXEMPLO (número inteiro): 7 6 4 3 x 1= 7 x 10= 60 x 100= 400 x 1000= 3000 3467 1 5 7 2(…)= 1x103+5x102+7x101+2x100 E se for fraccionário? As potências são de base negativa, partindo do valor 1. Arquitectura de Sistemas Computacionais Sistemas de Numeração SISTEMA BINÁRIO É o mais utilizado nos Circuitos Digitais (Sistemas Digitais) porque se baseia nos dois estados possíveis dos elementos neles usados, i. é., há tensão ou não. Sistema de Base 2 {0,1} Cada um dos algarismos designa-se por dígito binário ou bit (Binary Digit). PESO Cada dígito comparticipa na formação do número com um peso, determinado pela posição que ocupa no número (...32 (25), 16 (24), 8 (23), 4 (22), 2 (21), 1 (20)). FORMAÇÃO DOS NÚMEROS NO SISTEMA BINÁRIO 0 1 10 11 100 101 110 111 Exemplo: Valor inteiro e fraccionário: o 1101(2) = 1x23+1x22+0x21+1x20 = 13 … em decimal ;) o E se for fraccionário? …procede-se da mesma forma! Atenção à base!! Arquitectura de Sistemas Computacionais Sistemas de Numeração SISTEMA OCTAL O sistema de numeração Octal é composto por oito dígitos. Sistema de Base 8 {0,1,2,3,4,5,6,7} PESO Cada dígito comparticipa na formação do número com um peso, determinado pela posição que ocupa no número (...32768 (85), 4096 (84), 512 (83), 64 (82), 8 (81), 1 (80)). Exemplo: Valor inteiro e fraccionário: o 347(8) = 3x82+4x81+7x80 = 231 o E se for fraccionário? …procede-se da mesma forma! Atenção à base!! Nota: Todos os números representados num sistema de numeração para além do decimal, INCLUEM ENTRE PARENTESIS A RESPECTIVA BASE !!! Arquitectura de Sistemas Computacionais Sistemas de Numeração SISTEMA HEXADECIMAL O sistema Hexadecimal é composto por 16 símbolos. Sistema de Base 16 {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} PESO Cada dígito comparticipa na formação do número com um peso, determinado pela posição que ocupa no número (...65536 (164), 4096 (163), 256 (162), 16 (161), 1 (160)). Exemplo: Valor inteiro e fraccionário: o 4FA(16) = 4x162+15x161+10x160 = 1274 o … e se for fraccionário? → 4FA,AB(16) = 4x162+15x161+10x160+10x16-1+11x16-2= 1274,0664 Nota: Todos os números representados num sistema de numeração para além do decimal, INCLUEM ENTRE PARENTESIS A RESPECTIVA BASE !!! Arquitectura de Sistemas Computacionais Sistemas de Numeração TABELA Decimal Binário Octal Hexadecimal 0 00000 0 0 1 00001 1 1 2 00010 2 2 3 00011 3 3 4 00100 4 4 5 00101 5 5 6 00110 6 6 7 00111 7 7 8 01000 10 8 9 01001 11 9 10 01010 12 A 11 01011 13 B 12 01100 14 C 13 01101 15 D 14 01110 16 E 15 01111 17 F 16 10000 20 10 Arquitectura de Sistemas Computacionais Sistemas de Numeração CONVERSÃO DE DECIMAL PARA BASE b Números Inteiros: Base 2 Divisões sucessivas por 2; Exº 2672 = 101001110000(2) Base 8 Divisões sucessivas por 8; Exº 315 = 473(8) Base 16 Divisões sucessivas por 16; Exº 675 = 2A3(16) Números Fraccionários: Base 2 Multiplicações sucessivas por 2; Exº 0,125 = 0,001(2) Base 8 Multiplicações sucessivas por 8; Exº 0,125 = 0,1(8) Base 16 Multiplicações sucessivas por 16; Exº 0,125 = 0,2(16) Arquitectura de Sistemas Computacionais Sistemas de Numeração CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO Conversões de Números Inteiros Binário Octal Divisões Consecutivas por 8 Divisões Consecutivas por 2 Dn…D2D1=Dn*2n-1+…+D2*21+D1*20 Arquitectura de Sistemas Computacionais Hexadecimal Dn…D2D1=Dn*8n-1+…+D2*81+D1*80 Decimal Divisões Consecutivas por 16 Dn…D2D1=Dn*16n-1+…+D2*161+D1*160 Sistemas de Numeração CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO Conversão da Parte Fraccionária Binário Octal Produtos Consecutivos por 8 Produtos Consecutivos por 2 0,D1D2… Dn=D1*2-1+D2*2-2+…+Dn*2-n Arquitectura de Sistemas Computacionais Hexadecimal 0,D1D2… Dn=D1*8-1+D2*8-2+…+Dn*8-n Decimal Produtos Consecutivos por 16 0,D1D2… Dn=D1*16-1+D2*16-2+…+Dn*16-n Sistemas de Numeração CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO Cada n.º é convertido para um binário de 4 Bits Binário Agrupam-se os Bits em grupos de 4 Cada n.º é convertido para um binário de 3 Bits Agrupam-se os Bits em grupos de 3 Hexadecimal Octal Passa-se por uma base intermédia (Decimal ou Binária) Arquitectura de Sistemas Computacionais Sistemas de Numeração OPERAÇÕES EM BINÁRIO SOMA a b Soma 0 0 1 1 0 1 0 1 0 1 1 0 Transporte ou Carry (C) 0 0 0 1 EXEMPLO 101101 +110010 1011111 Arquitectura de Sistemas Computacionais Carry Sistemas de Numeração OPERAÇÕES EM BINÁRIO SUBTRACÇÃO a b Diferença Borrow (B) 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 101101 -010010 011011 Nota: Dar exº de multiplicação em binário.... Arquitectura de Sistemas Computacionais Borrow Sistemas de Numeração OPERAÇÕES EM OCTAL SOMA SUBTRACÇÃO 2 4 7(8) 3 2 5(8) + 5 6(8) - 5 6(8) 3 2 5(8) 2 4 7(8) OPERAÇÕES EM HEXADECIMAL SOMA SUBTRACÇÃO A 3 7(16) A A 5(16) + 5 9 B(16) - 6 E D(16) F D 2(16) 3 B 8(16) Arquitectura de Sistemas Computacionais Sistemas de Numeração OPERAÇÕES EM OCTAL/HEXADECIMAL MULTIPLICAÇÃO 5 6(8) x 1 4(8) 30 24 56 1 0 5 0(8) 6(10) 4(10) 24(10) 30(8) 4(10) 5(10) 20(10) 24(8) 1(10) 6(10) 6(10) 6(8) 1(10) 5(10) 5(10) 5(8) Arquitectura de Sistemas Computacionais A B(16) x 4 C(16) 84 78 2C 28 3 2 C 4(16) C(10 ) B(10 ) 12 11 132(10 ) 84(16 ) C(10 ) A(10 ) 12 10 120(10 ) 78(16 ) 4(10 ) B(10 ) 4 11 44(10 ) 2C(16 ) 4(10 ) A(10 ) 4 10 40(10 ) 28(16 ) Sistemas de Numeração REPRESENTAÇÃO DE NÚMEROS NEGATIVOS COMPLEMENTAÇÃO Complemento de um número: É a diferença entre a base (B) e o número (N) COMPLEMENTO PARA UM O complemento para 1 de um número N com k bits é dado pela seguinte expressão: 2k N 1 EXEMPLO O complemento para 1 do número 1001: k 4 2k 24 16 10000 ( 2 ) 2k N 1 10000 ( 2 ) 1001( 2 ) 1( 2 ) 0110 ( 2 ) REGRA PRÁTICA: Trocar os 0’s por 1’s e vice-versa. Arquitectura de Sistemas Computacionais Sistemas de Numeração COMPLEMENTAÇÃO (cont.) COMPLEMENTO PARA DOIS O complemento para 2 de um número N com k bits é dado pela seguinte expressão: 2k N REGRAS PRÁTICAS Determinar o complemento para 1 do número e somar ao resultado o valor 1 . Da direita para a esquerda do número encontrar o primeiro dígito a 1. Mantê-lo e inverter os restantes. Arquitectura de Sistemas Computacionais Sistemas de Numeração REPRESENTAÇÃO DE NÚMEROS RELATIVOS (2´C) Registo de 8 flip-flops onde 7 flip-flops representam a grandeza do número e o 8º representa o sinal, olhando da direita para a esquerda. 0 0 1 1 0 1 0 1 +53 1 1 0 0 1 0 1 1 - 53 Se pretendermos usar um número fixo de bits (k bits), normalmente usado nas máquinas, a expressão seguinte indica-nos a gama de valores possíveis de representar, usando bit de sinal: 2k 1 N 2k 1 1 EXEMPLO Registo com 4 bits (casas) - 8 N 7 O número 3(10) = 0 011(2) O número –3 otém-se: 0011(2) 1100(2) + 1(2) = 1 101(2) Arquitectura de Sistemas Computacionais Sistemas de Numeração OPERAÇÕES COM NÚMEROS RELATIVOS ADIÇÃO 1. 2. 3. 4. 5. Decidir sobre o número de casas com que vamos trabalhar. Tomar módulos dos números, em binário. Representar números negativos na forma de complemento para 2. Usar regra da adição. Analizar resultados: Se existe carry, desprezá-lo. Se o bit mais significativo, após desprezar o carry é: 0 – o resultado é positivo e o bit mais à esq. é o bit de sinal. 1 – o resultado é negativo e está na forma de complemento para 2 SUBTRACÇÃO 1. 2. 3. 4. Idêntico ao ponto 1 da adição. Determinar o complemento para 2 do diminuendo. Adicionar o diminuidor ao diminuendo. Seguir o ponto 5 da adição. Arquitectura de Sistemas Computacionais Sistemas de Numeração EXERCÍCIO: a) 12 + 9 b) 12 - 9 c) -12 - 9 d) -12 + 9 RESOLUÇÃO: 21 resultado 21 Com 5 casas : 16 resultado 15 Com 6 casas : 32 resultado 31 6 casas (mínimo obrigatóri o) 1. 12 (10 ) 001100 ( 2 ) 9 (10 ) 001001( 2 ) 2. Determinar representação de - 12 e - 9 em 2' C : -12( 10 ) 110100( 2 ) 9(10 ) 110111( 2 ) Arquitectura de Sistemas Computacionais Sistemas de Numeração RESOLUÇÃO(cont.): 3. a) 12 + 9 001100 +001001 010101 b) 12 - 9 c) -12 - 9 d) -12 + 9 001100 +110111 1000011 110100 +110111 1101011 110100 +001001 111101 c) 1 0 1 0 1 1 d) 1 1 1 1 0 1 4. a) e d) não carry b) e c) carry desprezá-lo!! 5. a) 0 1 0 1 0 1 + 21 b) 0 0 0 0 1 1 + 3 - 21(2’C) Complemento para 2 do valor obtido Arquitectura de Sistemas Computacionais - 3(2’C) 3 Álgebra de Boole Arquitectura de Sistemas Computacionais Álgebra de Boole FUNDAMENTOS DA ÁLGEBRA DE BOOLE PROPOSIÇÃO – É uma frase ou expressão matemática cujo conteúdo pode ser verdadeiro ou falso. Considerar as seguintes proposições: p(x) = x é PAR = {0, 2, 4, 6, 8, ...} p(x) representa o conjunto dos números pares q(x) = x é MÚLTIPLO de 3 = {3, 6, 9, 12, 15, ...} q(x) representa o conjunto dos números que são múltiplos de 3. Estes conjuntos pertencem a um conjunto mais geral que se designa por universo, e que será o conjunto dos números naturais. U(x) = {0, 1, 2, 3, 4, ...} Arquitectura de Sistemas Computacionais Álgebra de Boole Os conjuntos podem ser representados graficamente através de DIAGRAMAS DE VENN, levando-nos à obtenção de funções lógicas. Conjunção, Intersecção ou Produto Lógico q(x) I- p(x) q(x) ou p(x) q(x) p(x) Disjunção, Reunião ou Soma Lógica q(x) II- p(x) q(x) ou p(x) q(x) p(x) Complementação ou Negação Lógica p(x) III- p(x) Arquitectura de Sistemas Computacionais Álgebra de Boole CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO q(x) p(x) I - Conjunto representado pela proposição: p(x) q(x) Resulta da intersecção dos conjuntos q(x) e p(x). II - Conjunto representado pela proposição: p( x) q( x) Resulta da intersecção dos conjuntos q(x) e o complementar de p(x). III - Conjunto representado pela proposição: p( x) q( x) Resulta da intersecção dos conjuntos p(x) e o complementar de q(x). IV - Conjunto representado pela proposição: p( x) q( x) Resulta da intersecção dos conjuntos complementar de p(x) e complementar de q(x). Arquitectura de Sistemas Computacionais Álgebra de Boole CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.) Verifica-se que as intersecções possíveis entre os dois conjuntos são as seguintes: p( x) q( x) p( x) q( x) p( x) q( x) p( x) q( x) A proposição p(x) é 1 ou verdadeira (V) quando engloba os números pares e q(x) quando engloba os números múltiplos de 3. Por outro lado, os seus complementos, que negam as condições inicais, são 0 ou falsos (F). Isto permite transformar as expressões em cima na seguinte TABELA DE VERDADE: a b S=ab F F F F V F V F F V V V Arquitectura de Sistemas Computacionais Álgebra de Boole CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.) ESQUEMA DE CONTACTOS ELÉCTRICOS a +V M b TABELA DE VERDADE TABELA DE VERDADE a b M 0 0 0 Parado Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: 0 1 0 Aberto Parado Aberto; Parado 0 1 0 0 Fechado Actuado Fechado; Actuado 1 1 1 1 a b M Aberto Aberto Parado Aberto Fechado Fechado Fechado FUNÇÃO LÓGICA DA INTERSECÇÃO OU PRODUTO LÓGICO M a b Arquitectura de Sistemas Computacionais PORTA LÓGICA (AND) a b M Álgebra de Boole DIJUNÇÃO, REUNIÃO OU SOMA LÓGICA ESQUEMA DE CONTACTOS ELÉCTRICOS a L +V b TABELA DE VERDADE TABELA DE VERDADE a b S 0 0 0 L. Ligada Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: 0 1 1 P. Fech. L. Ligada P Fech.; L. Desl. 0 1 0 1 P. Aberta L. Ligada P. Aberta; L. Ligada 1 1 1 1 a b L P. Fech. P. Fech. L. Desl. P. Fech. P. Aberta P. Aberta P. Aberta FUNÇÃO LÓGICA DA REUNIÃO OU SOMA LÓGICA M ab Arquitectura de Sistemas Computacionais PORTA LÓGICA (OR) a b M Álgebra de Boole COMPLEMENTAÇÃO OU NEGAÇÃO LÓGICA ESQUEMA DE CONTACTOS ELÉCTRICOS +V a S TABELA DE VERDADE a S Aberto Ligada Fechado Desligada TABELA DE VERDADE Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: Aberto; Desligada 0 Fechado; Ligada 1 FUNÇÃO LÓGICA DA NEGAÇÃO OU INVERSOR LÓGICO S a Arquitectura de Sistemas Computacionais a S 0 1 1 0 PORTA LÓGICA (NOT) a a Álgebra de Boole OUTRAS FUNÇÕES BÁSICAS IMPORTANTES Denominação NAND NOR EXOR (exclusive OR) EXNOR (exclusive NOR) Tabela Função a b S 0 0 1 0 1 1 1 0 1 1 1 0 a b S 0 0 1 0 1 0 1 0 0 1 1 0 a b S 0 0 0 0 1 1 1 0 1 1 1 0 a b S 0 0 1 0 1 0 1 0 0 1 1 1 Arquitectura de Sistemas Computacionais Porta Lógica S a b a b S S ab a b S S a b a b a b a b S a b a b a S a b a b b S S Álgebra de Boole REGRAS DE CÁLCULO DA ÁLGEBRA DE BOOLE A utilização prática da Álgebra de Boole vai permitir: Apresentar um dado circuito lógico através da sua equação ou expressão. Simplificar a expressão lógica de forma ao circuito poder ser implementado com o menor número possível de portas lógicas (AND’s, OR’s, NOT’s, etc...). Semelhanças da Álgebra de Boole relativamente à Álgebra Clássica: Propriedade Comutativa. Propriedade Associativa. Propriedade Distributiva. A principal diferença é que na Álgebra de Boole não é possível passar termos de um membro para o outro de uma equação. Arquitectura de Sistemas Computacionais Álgebra de Boole REGRAS DE CÁLCULO DA ÁLGEBRA DE BOOLE (cont.) Regras da Álgebra de Boole a estudar: Expressões só com constantes. Expressões com uma constante e uma variável. Dupla negação. Expressões com mais de uma variável: Propriedade Comutativa. Propriedade Associativa. Propriedade Distributiva. Princípio da dualidade ou Lei de De Morgan. Regras gerais de simplificação ou Leis de Absorção. Arquitectura de Sistemas Computacionais Álgebra de Boole EXPRESSÕES SÓ COM CONSTANTES Constantes da Álgebra de Boole: ‘0’ e ‘1’ Função AND: 00 0 0 1 0 1 0 0 1 1 1 Função OR: 000 0 1 1 1 0 1 11 1 Função NOT: 0 1 1 0 Arquitectura de Sistemas Computacionais Álgebra de Boole EXPRESSÕES COM UMA CONSTANTE E UMA VARIÁVEL Função AND: 0a 0 1 a a aa a aa 0 Função OR: 0a a 1 a 1 aaa a a 1 Arquitectura de Sistemas Computacionais Álgebra de Boole DUPLA NEGAÇÃO 00 11 aa EXPRESSÕES COM MAIS DE UMA VARIÁVEL Propriedade Comutativa: a b c a c b b a c ... a b c a c b b a c ... Propriedade Associativa: a b c (a b) c a (c b) ... a b c (a b) c a (c b) ... Propriedade Distributiva: - em relação à multiplicação - em relação à Soma a (b c) (a b) (a c) a (b c) (a b) (a c) Arquitectura de Sistemas Computacionais Álgebra de Boole EXPRESSÕES COM MAIS DE UMA VARIÁVEL (cont.) Princípio da dualidade ou Lei de De Morgan: a b a b a b a b ou com 3 variáveis, a b c a bc a bc a b c EXERCÍCIO: Tente fazer a demonstração das Leis de De Morgan. A demonstração poderá ser feita através: - tabela de verdade. - diagrama de Venn. - circuitos lógicos (ainda por abordar!!). - analiticamente. Arquitectura de Sistemas Computacionais Álgebra de Boole REGRAS GERAIS DA SIMPLIFICAÇÃO OU LEIS DE ABSORÇÃO 1ª Regra: a ( a b) a a ( a b) a 2ª Regra: a ( a b) a b a ( a b) a b 3ª Regra: ( a b) ( a b) a ( a b) ( a b) a Tente Demonstrar... EXERCÍCIO: Simplifique a seguinte expressão lógica: f (a, b, c) cba cba ba cb a Arquitectura de Sistemas Computacionais Resposta : ca ba Álgebra de Boole FORMA CANÓNICA DE UMA FUNÇÃO BOOLEANA A todo o produto de somas ou soma de produtos nos quais aparecem todas as variáveis em cada um dos termos que constituem a expressão, em forma directa ou complementada, da-se a desigação de FORMA CANÓNICA. São exemplos de formas canónicas as seguintes funções: S1 a b c a b c a b c Soma de Produtos S 2 (a b c) (a b c) (a b c) Produto de Somas As funções do tipo S1 tomam o nome de primeira forma canónica ou MINTERMOS (Minterms) e as do tipo S2 denominam-se de segunda forma canónica ou MAXTERMOS (Maxterms). Arquitectura de Sistemas Computacionais Álgebra de Boole FUNÇÃO LÓGICA A PARTIR DA TABELA DE VERDADE Seja f (a, b, c) definida pela tabela de verdade: a b c f 0 0 0 1 Na primeira forma Canónica (soma de produtos) : 0 0 1 1 f (a, b, c) a b c a b c a b c a b c a b c a b c 0 1 0 1 f (a, b, c) (0,1,2,4,5,6) 0 1 1 0 1 0 0 1 1 0 1 1 Na segunda forma Canónica (produto de somas) : 1 1 0 1 f (a, b, c) (a b c) (a b c) 1 1 1 0 f (a, b, c) (3,7) Arquitectura de Sistemas Computacionais Álgebra de Boole MAPAS DE kARNAUGH Um Mapa de Karnaugh é uma representação gráfica de uma função. Trata-se de um diagrama feito de quadrados. Cada quadrado representa um mintermo. Um mapa para uma função lógica com n entradas é um conjunto de 2n células, uma para cada mintermo. Mapa de duas entradas: b 0 1 a a b 0 0 a 0 ab 1 a 1 ab b 0 2 ab ab 1 3 b Mapa de três entradas: bc 00 01 11 10 a a bc 00 0 a 0 abc 1 a 1 abc b c 1 b c b c b c Arquitectura de Sistemas Computacionais 01 11 10 0 abc 1 abc 3 abc 2 4 abc 5 abc 7 abc 6 Álgebra de Boole MAPAS DE kARNAUGH (cont.) Mapa de quatro entradas: cd ab 00 01 11 cd 10 ab 00 01 11 10 00 a b 00 abc d 0 abcd 1 abcd 3 abc d 2 01 a b 01 abc d 11 a b 11 abc d 10 a b 10 abc d abcd abcd c d c d c d ab 00 00 01 01 11 8 e 1 10 * cd ab 00 00 01 01 11 10 12 11 10 * 11 + abcd abcd 5 abcd abcd 13 9 7 15 abcd 6 abcd 14 abc d 11 10 c d Mapa de cinco entradas: e0 cd 4 + 10 Arquitectura de Sistemas Computacionais + + * - Posições adjacentes. - Posições adjacentes. + - Posições adjacentes. Elementos em posições correspondentes, mas em quadros diferentes, são adjacentes. Álgebra de Boole MAPAS DE kARNAUGH (APLICAÇÃO) Dada a seguinte função: f (a, b, c, d ) (0,2,3,4,6,7,8,10) 4 variáveis cd ab 00 24 = 16 quadriculas 01 11 É prática comum envolver com um laço os 1s adjacentes; 10 00 1 1 1 01 1 1 1 Apenas é possível efectuar agrupamentos com um nº de células igual a uma potência de 2 11 10 1 1 F ad bd ac Uma função Booleana, expressa como soma de mintermos, especifica as condições que levam a função a ser igual a 1. Nota: O conceito de Don´t care conditions será abordado mais tarde. Arquitectura de Sistemas Computacionais Tabela de Verdade d c b a F 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 Álgebra de Boole REALIZAÇÃO DE FUNÇÕES (com circuitos lógicos) FUNÇÕES NAND E NOR COMO FUNÇÕES UNIVERSAIS FUNÇÃO INVERSOR '1' a a a '0' a a b a b a OR a b b ab b a PORTA NOR a a a a a AND PORTA NAND a a b ab a b IMPLEMENTAÇÃO DO XOR COM PORTAS UNIVERSAIS (a b) (a b) Arquitectura de Sistemas Computacionais a b b a b a b a b (a b) (a b) a , com portas NOR , com portas NAND ab Álgebra de Boole ETAPAS PARA A SOLUÇÃO DE UM PROBLEMA Definição de variáveis; Obtenção da Tabela de Verdade; Determinação da função; Simplificação da função (analítica, mapas de Karnaugh, Quine-McCluskey); Conversão das funções para o uso de portas pretendidas; Desenho do diagrama lógico; Realização. Arquitectura de Sistemas Computacionais Álgebra de Boole EXERCÍCIO “SELECÇÃO PARA INGRESSO EM EMPRESA” Para realizar uma primeira selecção de ingresso numa determinada empresa são precisos dois ou mais dos seguintes requisitos: - Possuir título académico. - Possuir dois anos de experiência. - Ser recomendado pela direcção da empresa. Construa, com portas lógicas, um circuito que realize, automaticamente, a selecção. Arquitectura de Sistemas Computacionais Álgebra de Boole SOLUÇÃO: 2. Tabela de Verdade: 1. Definição de variáveis: a - Possuir título académico. b - Possuir dois anos de experiência. c - Ser recomendado pela direcção da empresa. 3. Determinação da função: F abc abc abc abc 4. Simplificação da função: bc 00 01 11 10 a 0 1 1 1 b c F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 6. Circuito lógico: a 1 a b c 1 F a c a b bc 5. Conversão em NANDs: F a c a bbc Arquitectura de Sistemas Computacionais S 4 Aspectos Tecnológicos Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIAS LÓGICAS Escalas de integração: SSI (Small Scale Integration) – Integração em pequena escala. Envolve um número de transístores na ordem da dezena e integra entre uma e dez portas por invólucro. MSI (Medium Scale Integration) – Integração em média escala. Integra numa única pastilha de silício, circuitos digitais envolvendo entre 10 e 200 portas lógicas. LSI (Large Scale Integration) – Integração em larga escala. A este nível integram-se, numa única pastilha, sistemas digitais de grande complexidade, envolvendo muitos milhares de transístores (p.e. memórias de elevada capacidade de armazenamento, microprocessadores, etc.). VLSI (Very Large Scale Integration) – Integração em muito larga escala. Tornam-se muito comuns hoje em dia circuitos VLSI, que integram numa única pastilha estruturas de computadores envolvendo várias centenas de milhar de transístores Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIAS LÓGICAS (cont.) Objecto de estudo: TTL (Transistor – Transistor Logic) CMOS (Complementary Metal Oxide Semiconductor) Para projectar um dispositivo digital envolvendo circuitos lógicos de uma dada família é fundamental conhecer as características dessa família, nomeadamente: Tempo de propagação (velocidade). Potência dissipada. Fan-out. Margem de ruído. Factor de mérito. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (1) TEMPO DE ATRASO DE PROPAGAÇÃO (tp) O tempo de atraso de propagação de um sinal é a quantidade de tempo que vai desde que a ocorrência de uma mudança de estado na entrada se reflita na saída. 5V Entrada 0V tPLH VOH VOL Saída tPHL VOH VOL tPHL tPLH Arquitectura de Sistemas Computacionais Aspectos Tecnológicos CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (2) POTÊNCIA DISSIPADA Qualquer circuito necessita de certa potência para poder realizar operações. A dissipação de potência por porta expressa-se em mW e é o produto da tensão de polarização (VCC) pela corrente fornecida pela fonte de alimentação (ICC) à porta. Este valor de corrente depende do nível lógico de saída da porta. Se o nível for ALTO temos ICCH se for BAIXO temos ICCL. A média destas correntes é que nos dá ICC. Assim PD=VCCICC. A potência dissipada é medida por circuito ou por porta lógica. FAN-OUT Indica qual o número máximo de entradas de portas do mesmo tipo poderão ser ligadas a uma saída, sem que se altere o seu funcionamento. Valores típicos (TTL standard (7400)): I OH 400 A I IH 40A I OL 16mA O valor do FAN-OUT é determinado pelo quociente de: Arquitectura de Sistemas Computacionais I IL 1,6mA I OH I OL 10 I IH I IL Aspectos Tecnológicos CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (3) MARGEM DE RUÍDO E NÍVEIS LÓGICOS Constitui uma margem de segurança do utilizador, para eventual ruído captado no percurso entre a saída da porta excitadora (driver) e a entrada da porta excitada (carga). 5V VOH min Nível Lógico 1 VOH min VIH min VIL máx VOL máx Nível Lógico 1 5V 4,9 V Margem de Ruído 2,4 / 2,7V VIH min 70% Vcc Margem de Ruído 2V Zona Ambígua Zona Ambígua 0,8V VIL máx Margem de Ruído 0,4/0,5V Nível Lógico 0 0V Margens de Ruído em TTL Arquitectura de Sistemas Computacionais 30% Vcc Margem de Ruído VOL máx 0,1V Nível Lógico 0 0V Margens de Ruído em CMOS Aspectos Tecnológicos CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (4) MARGEM DE RUÍDO E NÍVEIS LÓGICOS Os parâmetros especificados pelos fabricantes nos data sheets são definidos da seguinte forma: VOHmin Tensão de saída mínima no estado HIGH; VIHmin Tensão de entrada mínima de modo a ser reconhecida como um estado HIGH; VILmáx Tensão de entrada máxima de modo a ser reconhecida como um estado LOW; VOLmáx Tensão de saída máxima no estado LOW; Níveis típicos para TTL: Níveis típicos para CMOS: VOHmin – 2,4/2,7 V VOHmin – 4,9 V VIHmin – 2 V VIHmin – 70% de Vcc VILmáx – 0,8 V VILmáx – 30% de Vcc VOLmáx – 0,4/0,5 V VOLmáx – 0,1 V Arquitectura de Sistemas Computacionais Aspectos Tecnológicos CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (5) MARGEM DE RUÍDO E NÍVEIS LÓGICOS Para além da tensão aplicada à entrada dos circuitos lógicos (TTL ou CMOS), a entrada consome também uma pequena corrente. Então a quantidade máxima de corrente que pode fluir é também especificada pelos fabricantes nos data sheets e é designada por: IIHmáx Corrente máxima que flui para a entrada no estado HIGH; IILmáx Corrente máxima que flui para a entrada no estado LOW; IOLmáx Corrente máxima que uma saída pode absorver (sinking current) no estado LOW de modo a manter a tensão de saída não superior a VOLmáx; IOHmáx Corrente máxima que uma saída pode fornecer (sourcing current) no estado HIGH de modo a manter a tensão de saída acima de VOHmin; FACTOR DE MÉRITO Duas das características mais importantes das famílias lógicas são a velocidade e o consumo. Assim o factor de mérito de um produto é dado pela relação: Tempo de propagação Potência consumida Desta forma quanto menor fôr o valor obtido, tanto melhor é o produto! Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIA TTL (TRANSISTOR TRANSISTOR LOGIC) Principais características: Imunidade ao Ruído; Menor consumo de potência a altas frequências. Surgem no mercado duas versões identificadas pelo sufixo, 54 – militar (-55ºC e +125ºC) e 74 – comercial (0ºC e +70ºC). Este é seguido por uma ou mais letras que identificam a subfamília e 2, 3 ou 4 dígitos que indicam as portas ou a função do integrado. 74/54 FAM xx, onde FAM se refere à mnemónica da subfamília a que pertencem 74 ALS xx Comercial Advanced Low Power Schottky Tipo de Porta Exemplo: Os circuitos integrados (CIs) 74AS00, 74ALS00, 74F00, 74H00, 7400 são todos constituídos por 4 portas NAND de 2 entradas cada. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos CARACTERÍSTICAS DA PERFORMANCE DA FAMÍLIA TTL (1) FAMÍLIA TTL (primórdios) Série TTL Standard 74/54xx; Série TTL 74/54Hxx (H-High Speed); Série TTL 74/54Lxx (L-Low Power); FAMÍLIA TTL Schottky Com o aparecimento do transistor Schottky as séries da família TTL 74xx, 74Hxx e 74Lxx tornaram-se obsoletas. Cronologicamente: -74S (S-Schottky) – Maior velocidade no entanto têm um maior consumo de potência; -74LS (LS-Low Power Schottky) – Mesma velocidade que versões anteriores, no entanto têm um consumo de potência 5 vezes inferior; -74AS (ALS-Advanced Schottky) – Dobro da velocidade que 74S para o mesmo consumo de potência. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos CARACTERÍSTICAS DA PERFORMANCE DA FAMÍLIA TTL (2) FAMÍLIA TTL Schottky (cont.) Cronologicamente: -74ALS (ALS-Advanced Low Power Schottky) – Velocidade superior à 74LS e baixo consumo de potência; -74F (F-Fast TTL) – Posiciona-se entre as séries 74AS e 74ALS. Tem a vantagem de possuir um bom factor de mérito (relação velocidade/consumo de potência). FAMÍLIA TTL Tempo de Propag. (ns) Potência por porta (mW) Factor de mérito S: Schottky – 74Sxx 3 19 57 LS: Low Power Schottky – 74LSxx 9 2 18 AS: Advanced Schottky – 74ASxx 1,7 8 13,6 ALS: Advanced Low Power Schottky – 74ALSxx 4 1,2 4,8 F: Fast – 74Fxx 3 4 12 Arquitectura de Sistemas Computacionais Aspectos Tecnológicos SAÍDAS TTL EM OPEN COLLECTOR VCC VCC R1 A B R2 T1 S T2 T3 R3 NAND com saídas em Open Collector Wired AND O método para se realizar um AND entre várias saídas em “Open Collector” consiste em ligar todas as saídas umas às outras e colocar uma resistência de pull up ligada a essa saída. Este tipo de ligação é designado por wired AND. Quando todas as saídas estiverem a ‘1’ o ponto de ligação estará a ‘1’. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIA CMOS (COMPLEMENTARY METAL OXIDE SEMICONDUCTOR) Principais características: Maior facilidade de construção; Ocupação de espaço, reduzida; Consumo baixo de potência; Imunidade ao ruído. SÉRIES CMOS CMOS Série 4000; 74C (C – CMOS); 74 HC (High Speed CMOS); 74 HCT (High Speed CMOS – TTL compatible); 74 VHC (Very High Speed CMOS); 74 VHCT (Very High Speed CMOS – TTL compatible) 74 FCT (Fast CMOS – TTL compatible) 74 FCT-T (Fast CMOS – TTL compatible with TTL VOH) Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIA CMOS (cont.) CMOS 4000A/4000B Foi introduzida no mercado na década de 60; A corrente de saída não é a mesma para todos os circuitos; Os tempos de propagação dependem da capacidade de carga; A série 4000B está preparada para fornecer maior corrente de saída; Hoje ainda existem funções nesta série que não dispõem de equivalentes nas mais recentes; Dissipação reduzida de potência sendo no entanto bastante lentas. 74C É uma série compatível pino a pino e função a função com os circuitos TTL, desde que disponham dos mesmos números de marcação. Desta forma torna-se possível substituir os circuitos TTL por equivalentes CMOS; As saídas destes circuitos são “bufferizadas”. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIA CMOS (cont.) 74HC (High Speed CMOS) Permitem uma gama de alimentação entre os 2 (menor consumo de potência) e 6V (maior velocidade de comutação); Compatíveis com os circuitos TTL 74LS, mas não na totalidade; Bem adaptadas em sistemas que usem exclusivamente circuitos CMOS. 74HCT (High Speed CMOS–TTL Compatible) Elevada velocidade de comutação; Menor consumo de portência e total compatibilidade de níveis com circuitos TTL; Uma única saída poder alimentar, pelo menos, 10 cargas TTL LS. 74VHC e 74VHCT (Very High Speed CMOS e TTL Compatible) Duas vezes mais rápidas que a versão predecessora, a série HC e HCT; Mantém a compatibilidade com todas as séries anteriores da mesma família; Uma em relação à outra diferem unicamente nos níveis de entrada que reconhecem, sendo as suas características de saída iguais; Arquitectura de Sistemas Computacionais Aspectos Tecnológicos FAMÍLIA CMOS (cont.) 74VHC e 74VHCT (Very High Speed CMOS e TTL Compatible) (cont.) Permitem uma gama de alimentação entre os 2 e os 5,5V; Com estes circuitos já se conseguem obter tempos de propagação na ordem dos 3ns, comparável aos tempos da série TTL 74 ALS. 74FCT e 74FCT-T (Fast CMOS TTL Compatible e Fast CMOS-TTL Compatible With TTL VOHmáx) Surgiram no início dos anos 90; Permitem igualar e mesmo exceder a velocidade e capacidade de servir de driver relativamente às melhores séries TTL, reduzindo o consumo de potência e mantendo compatibilidade. Aplicadas principalmente na implementação de buses e outros circuitos com pesadas cargas, pois pode fornecer (sourcing) ou absorver (sinking) acima dos 64mA no estado LOW. Arquitectura de Sistemas Computacionais Aspectos Tecnológicos LIGAÇÕES ENTRE FAMÍLIAS LÓGICAS Valores típicos de entrada e saída para as famílias TTL e CMOS (casos extremos de Funcionamento). CMOS Parâmetro TTL 4000B 74HC 74HCT 74 74LS 74AS 74ALS VIH(min) (V) 3,5 3,5 2,0 2,0 2,0 2,0 2,0 VIL(máx) (V) 1,5 1,0 0,8 0,8 0,8 0,8 0,8 VOH(min) (V) 4,95 4,9 4,9 2,4 2,4 2,7 2,7 VOL(máx) (V) 0,05 0,1 0,1 0,4 0,5 0,5 0,4 IIH(máx) (A) 1 1 1 40 20 200 20 IIL(máx) (A) 1 1 1 1600 400 2000 100 IOH(máx) (mA) 0,4 4 4 0,4 0,4 2 0,4 IOL(máx) (mA) 0,4 4 4 16 8 20 8 Arquitectura de Sistemas Computacionais Aspectos Tecnológicos LIGAÇÃO CMOS – TTL No estado alto, este tipo de ligação não necessita de qualquer cuidado, pois podemos verificar que, segundo os valores típicos de tensão de saída do CMOS (VOH), satisfaz os níveis de tensão típicos requeridos pela entrada TTL no estado alto VIH. Verifica-se também que a família CMOS fornece uma corrente IOH superior ao valor exigido IIH pela entrada TTL. 74HC00 D C 74AS00 A 74AS00 B Exemplo de ligação Arquitectura de Sistemas Computacionais Aspectos Tecnológicos LIGAÇÃO CMOS – TTL (cont.) No estado baixo os circuitos TTL exigem uma entrada relativamente alta que varia de 100A a 2mA. Assim, e porque as séries CMOS HC e HCT podem fornecer 4mA, podem facilmente servir de driver a qualquer série TTL. No entanto, os circuitos da série 4000B não podem servir de driver a uma única entrada de qualquer circuito das séries 74 e 74AS. Neste caso teríamos que optar por recorrer a um buffer. O buffer pode ser outro CMOS, tal como o 74HC ou o 74HCT. 5V 5V 5V CMOS 4000B CMOS 74HC/HCT TTL GND Arquitectura de Sistemas Computacionais GND GND Aspectos Tecnológicos LIGAÇÃO CMOS – TTL (cont.) Outro problema que surge, é quando o circuito CMOS é alimentado com uma tensão UDD=15V e é necessário ligá-lo a um circuito TTL. Neste caso usamos um circuito deslocador de nível (4050B), que converte a tensão elevada para os 5V necessários aos circuitos TTL. 15V 5V 5V 15V 0V 5V 0V CMOS TTL 4050B GND Arquitectura de Sistemas Computacionais GND GND Aspectos Tecnológicos LIGAÇÃO TTL – CMOS No que diz respeito à tensão, todos os circuitos da série TTL fornecem uma tensão VOHmin demasiado baixa face ao valor VIHmin exigido pelas entradas dos circuitos CMOS. 5V TTL RP CMOS Neste caso é necessário elevar os níveis TTL para poderem ser aceites pelos circuitos CMOS, como também é necessária a utilização de uma resistência de “pull-up”. 5V O valor dessa resistência de “pull-up” deverá ser tal que: TTL RP IOL IRP IIL CMOS 1 VCC VOL ( máx ) Rp I OL (TTL) nI IL (CMOS ) IIL 2 IIL n Arquitectura de Sistemas Computacionais 5 Circuitos Combinacionais Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGOS (1) Definição: “Código pode-se definir como o conjunto de n-bits de combinações diferentes em que cada uma delas representa um determinado valor ou qualquer outra coisa. A uma combinação em particular é atribuído o nome de palavra de código.” Numa palavra de código pode não existir uma relação aritmética entre os vários bits ou o que representam; Um código que utilize combinações de n-bits não necessita de obrigatoriamente utilizar 2n palavras de código válidas Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGOS (2) Códigos a estudar: Numéricos: •BCD; •BCDXS3; •1 out of n; •GRAY; •JOHNSON; •BCO; •BCH; Alfanuméricos: •ASCII; •EBCDIC; Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGOS BINÁRIOS PARA REPRESENTAR VALORES DECIMAIS No mínimo são necessários 4 bits para representar os dez dígitos decimais. Existindo no entanto imensas formas de o realizar. As mais comuns apresentam-se a seguir na tabela: DECIMAL BCD8421 0 1 2 3 4 5 6 7 8 9 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 10 11 … 1010 1011 … 2421 BCD XS-3 Biquinário 0000 0011 0100001 0001 0100 0100010 0010 0101 0100100 0011 0110 0101000 0100 0111 0110000 1011 1000 1000001 1100 1001 1000010 1101 1010 1000100 1110 1011 1001000 1111 1100 1010000 Palavras de Código não usadas 0101 1101 0000000 0110 1110 0000001 … … … Arquitectura de Sistemas Computacionais 1 out of 10 1000000000 0100000000 0010000000 0001000000 0000100000 0000010000 0000001000 0000000100 0000000010 0000000001 0000000000 0000000011 … Circuitos Combinacionais CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(1) BCD é a sigla do nome do código escrita em inglês: Binary Coded Decimal. BCD Natural, NBCD ou BCD8421 • Codifica os digitos de 0 até 9 pelas suas representações binárias de 4 bits, 0000(2) até 1001(2). No entanto as combinações 1010(2) até 1111(2) não são usadas; • É um código pesado: cada dígito decimal é obtido através da palavra de código bastando atribuir a cada dígito bináio o seu respectivo peso, i .é, a sequência normal de potências de base 2: 8 4 2 1. BCD não Natural • Os pesos dos diferentes bits já não tem a mesma sequência das potências de base 2. Estes códigos são usualmente utilizados para facilitar operações que utilizem complemento. Códigos AUTOCOMPLEMENTARES • Códigos BCD não Naturais têm a particularidade de permitirem determinar facilmente o complemento a 9 dos dígitos decimais, bastando para tal inverter os bits que os compõem. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(2) Códigos AUTOCOMPLEMENTARES (cont.) • Por exemplo, complemento a 9 do valor 4 (0100) é 9 – 4 = 5 (1011). Exemplos de Códigos BCD de Quatro Bits Ponderados: 2421* 4321 5221 6321 7421 3321* 4421 6221 4311* 5211* 5321 6311 7321 6421 5421 5311 8421(NBCD) BCD Excesso 3 (XS3) • É obtido a partir do BCD somando 3 a cada dígito. Assim em vez de começar por 0=0000, começa por 0=0011; • Trata-se também de um código AUTOCOMPLEMENTAR. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(3) Biquinário • Os códigos decimais podem ter mais de 4 bits, é o caso do biquinário; • Os dois primeiros bits indicam se o valor se encontra entre 0 – 4 ou 5 – 9. Os últimos indicam o seu valor; • Detecção de erros e apresentada como uma das principais vantagens; • São só utilizadas 10 da 128 combinações possíveis. 1 out of 10 • É o método de codificação mais esparso para dígitos decimais; • Das 1024 combinações possíveis só utiliza 10; Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (1) Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (2) Métodos de Construção do Código GRAY: Método 1: O código Gray para 1-bit tem unicamente duas palavras de código: 0 e 1; As primeiras 2n palavras de código de um código Gray de (n+1)-bit são iguais às do código Gray de n-bit escritas da mesma forma mas com um 0 à esquerda de cada palavra de código; As últimas 2n palavras de código de um código Gray de (n+1)-bit são iguais às de um código Gray de n-bit, escritas de ordem inversa e com um 1 à esquerda de cada palavra de código. Método 2: Os bits de uma palavra de código Binário de n-bits são numerados da direita para a esquerda, desde 0 até n-1; O bit i de uma palavra de código do código Gray é 0 se os bits i e i+1 da correspondente palavra binária forem iguais, caso contrário é 1. Quando i+1=n, o bit n é considerado 0; Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (3) Exemplo do método 2: Binário GRAY 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 bit 0 bit 1 bit 2 Arquitectura de Sistemas Computacionais i=0: •Bit 0 (i=0) do código binário é igual a 1; •Bit 1 (i=1) do código binário é igual a 0; Portanto, •Bit 0 do código Gray é igual a 1. i=1: •Bit 1 (i=1) do código binário é igual a 0; •Bit 2 (i=2) do código binário é igual a 0; Portanto, •Bit 1 do código Gray é igual a 0. i=2: •Bit 2 (i=2) do código binário é igual a 0; •Bit n (i=3) do código binário é igual a 0; Portanto, •Bit 0 do código Gray é igual a 0. Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (4) Representação do sistema decimal em código Gray e Gray excesso 3 DECIMAL GRAY XS-3 GRAY 0 0000 0010 1 0001 0110 2 0011 0111 3 0010 0101 4 0110 0100 5 0111 1100 6 0101 1101 7 0100 1111 8 1100 1110 9 1101 1010 Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGO JOHNSON A sequência de procedimentos consiste: • Iniciar tudo a zeros (0’s). • Convertê-los sucessivamente em 1’s a partir da direita, até se ober tudo a 1’s. • Convertê-los sucessivamente em 0’s a partir da direita até o valor possuir unicamente o dígito mais significativo a 1. DECIMAL JOHNSON 0 0000 1 0001 2 0011 3 0111 4 1111 5 1110 6 1100 7 1000 Código Johnson de 4 bits Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGOS BCO E BCH DECIMAL BCO BCH BCO – Binary Coded Octal 0 000 000 0000 0000 BCH – Binary Coded Hexadecimal 1 000 001 0000 0001 2 000 010 0000 0010 3 000 011 0000 0011 4 000 100 0000 0100 5 000 101 0000 0101 6 000 110 0000 0110 7 000 111 0000 0111 8 001 000 0000 1000 ... ... ... 16 010 000 0001 0000 17 010 001 0001 0001 ... ... ... 31 011 111 0001 1111 32 100 000 0010 0000 Arquitectura de Sistemas Computacionais Circuitos Combinacionais CÓDIGOS ASCII E EBCDIC ASCII – American Standard Code for Information Interchange EBCDIC – Extended Binary Coded Decimal Interchange Code Caracteres Válidos ASCII EBCDIC Caracteres Válidos ASCII EBCDIC Caracteres Válidos ASCII EBCDIC 0 30 F0 | 7C 4F % 25 6C ... ... ... & 26 50 > 3E 6E 9 39 F9 ! 21 5A ? 3F 6F A 41 C1 $ 24 5B : 3A 7A ... ... ... * 2A 5C # 23 7B Z 5A E9 ) 29 5D @ 40 7C Blank 20 40 ; 3B 5E ‘ 27 7D . 2E 4B _ 2D 60 = 3D 7E ( 28 4D / EF 61 “ 22 7F + 2B 4E , 2C 6B < 3C 4C Arquitectura de Sistemas Computacionais Circuitos Combinacionais CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (1) Um erro num sistema digital consiste na corrupção do valor correcto de uma dada informação para qualquer outro valor. É normalmente causado por uma falha física (temporária ou permanente). Uma das formas de realizar a detecção desses erros é através do método das paridades. Método das Paridades Longitudinais Transversais Na Paridade Longitudinal o acréscimo de um 1 ou um 0 é feita na horizontal para todos os bits da mesma linha Na Paridade Transversal o acréscimo de um 1 ou 0 é feita na vertical para todos os bits da mesma coluna. A Paridade pode ser Par ou Ímpar: Na Paridade Par o bit de paridade será 1 ou 0 de forma que o número de bits 1 seja par. Na Paridade Ímpar o bit de paridade será 1 ou 0 de forma que o número de bits 1 seja ímpar. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (2) Algumas características... Para se construir um detector de erros de um bit, em geral são necessários (n+1)bit para palavras de código de 2n-bit. Os n-bit constituem a palavra de código eqnuanto que o bit n+1 representa o bit de paridade (par ou ímpar); A detecção de erros para este tipo de códigos (longitudinal OU transversal – não ambos) só é praticável para erros de 1 bit. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (3) EXEMPLO: Suponhamos um número decimal, p. e. 937651234, que vai ser processado ou transmitido. Antes do processo se iniciar o sistema atribui-lhe uma paridade que vai verificar no final do processo. Dígito Decimal Código (NBCD) Paridade Ímpar 9 1001 1 3 0011 1 7 0111 0 6 0110 1 5 0101 1 1 0001 0 2 0010 0 3 0011 1 4 0100 0 Paridade Ímpar Arquitectura de Sistemas Computacionais 0101 Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (1) São constituídos por uma combinação de gates AND, OR, NOT, NAND, NOR e XOR onde as suas saídas só dependem do valor das entradas e se estas deixarem de estar presentes a saída muda imediatamente. Os circuitos combinatórios que vamos estudar são: - Geradores de bit de paridade; - Comparadores; - Conversores de código; - Adicionadores/Subtractores; - Codificadores/Descodificadores; - Multiplexers/Demultiplexers. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (2) Circuito Gerador de Bit de Paridade Uma porta XOR (OU-exclusivo) é uma porta com duas entradas cuja saída é 1 se uma das entradas for 1, i. é, uma porta XOR produz um 1 na saída se o número de 1’s na entrada for ímpar (PARIDADE PAR). Caso se trate de uma porta XNOR (NÃO OU-exclusivo) o resultado é o inverso, i. é, produz um 1 na saída quando o número de 1’s na entrada for par (PARIDADE ÍMPAR). (nº de possibilidades com saída igual a 1 ) 2(nº de XOR's) a b S=ab S’ = a b 0 0 0 1 S a b a b a b 0 1 1 0 1 0 1 0 S' a b a b a b a b 1 1 0 1 a b S a b S' Arquitectura de Sistemas Computacionais Exclusive-OR CI 74x86 Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (3) Circuito Gerador de Bit de Paridade (cont.) Implementando n portas XOR em cascata, obtém-se um circuito com n+1 entradas e uma saída, originando um circuito de paridade ímpar. Ao invertermos essa saída, resulta um circuito de paridade par (ver figura): I1 I2 I3 I4 Saída Ímpar In Saída Par Outra forma de implementar este tipo de circuito, de modo a que seja mais rápido, é em ÁRVORE. Gerador Bit Paridade CI 74x280 Arquitectura de Sistemas Computacionais Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (4) Circuito Gerador de Bit de Paridade (cont.) Caso Prático Simplificado: Suponhamos que trasmitimos em paralelo ao longo de uma linha e que pretendemos usar um bit de paridade para detecção de erros. A B X Gerador Y S Detector Arquitectura de Sistemas Computacionais Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (5) Circuito Comparador Circuito Comparador de 2 bits, a0 e b0: a0 b0 S Circuito Comparador de 2 números digitais de 4 bits, A = a0 a1 a2 a3 e B = b 0 b 1 b 2 b 3: a0 b0 a1 b1 S a2 b2 a3 b3 Arquitectura de Sistemas Computacionais Comparador 4-Bit CI 74x85 Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (6) Circuito Comparador Iterativo Dois valores de n-bit podem ser comparados de forma iterativa. Para tal tem que se ter em conta o bit resultante da comparação anterior (figura circuito para n-bit). Para implementar este tipo de circuitos, basta juntar n módulos de comparação de um único bit (figura módulo para um bit). a b a CMP EQoutput EQinput EQI EQO a0 b0 a1 b1 an-1 bn-1 a b a b a b CMP EQ0 1 b EQI EQO CMP EQ1 EQI Arquitectura de Sistemas Computacionais EQO EQ2 EQn-1 CMP EQI EQO EQn Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (7) Meio-Somador e Somador Completo O somador mais simples, designado por MEIO SOMADOR (1/2 Somador – Half Adder), soma dois operandos de 1 bit, resultando um valor de 2 bits (pois o resultado varia entre 0 e 2). a b S Cout 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Da tabela resulta: Símbolo Lógico: S a b Cout a b a Half S Adder Cout Diagrama Lógico: a b S Cout Arquitectura de Sistemas Computacionais b Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (8) Meio-Somador e Somador Completo (cont.) Para somar operandos com mais de um bit, temos que produzir carries entre as posições dos vários bits, i. é, entre cada posição de um bit. O bloco que realiza esta operação designa-se por SOMADOR COMPLETO (Full Adder). a b cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Da tabela resulta: Símbolo Lógico: S a b cin a b cin Full S Cout cin (a b) a b Adder Diagrama Lógico: Cout a b cin Arquitectura de Sistemas Computacionais S Cout Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (9) Somadores de Ripple (Ripple Adders) Duas palavras binárias, cada uma com n-bits, podem ser adicionadas usando um somador para n-bits. Este é constituído por n full adders ligados em cascata, onde cada um suporta uma soma de um bit. Este tipo de somadores designam-se por somadores de ripple ou ripple adders. Cn+1 an bn a b cn a2 b2 a b c2 a1 b1 a b c1 a0 b0 a b FA FA FA FA Cout Sn Cout S2 Cout S1 Cout S0 Arquitectura de Sistemas Computacionais c0 Circuitos Combinacionais CONVERSORES (1) Estes circuitos têm por objectivo converter códigos. Desta forma o circuito que realiza esta conversão é designado de Conversor. Procedimento para realização de um CONVERSOR Código de origem Entradas Código de destino Saídas Mapas de Karnaugh Expressões mínimas Diagrama Lógico Conversor Arquitectura de Sistemas Computacionais Circuitos Combinacionais CONVERSORES (2) Exemplo Projectar um conversor de código XS-3 (Excess-3) para o código NBCD 1. Representação do Código de Origem e Destino na Tabela de Verdade Entradas Saídas BCD XS-3 NBCD8421 DECIMAL I3 I2 I1 I0 D C B A 0 0 0 1 1 0 0 0 0 A I0 1 0 1 0 0 0 0 0 1 B I0 I1 2 0 1 0 1 0 0 1 0 C I0 I 2 I0 I1 I 2 I0 I1 I3 3 0 1 1 0 0 0 1 1 4 0 1 1 1 0 1 0 0 D I0 I1 I3 I 2 I3 5 1 0 0 0 0 1 0 1 6 1 0 0 1 0 1 1 0 7 1 0 1 0 0 1 1 1 8 1 0 1 1 1 0 0 0 9 1 1 0 0 1 0 0 1 Arquitectura de Sistemas Computacionais 2. Dos mapas de Karnaugh obtêm-se as expressões: Circuitos Combinacionais CONVERSORES (3) Exemplo (cont.) 3. Implementação do Diagrama Lógico I0 A I1 B I2 C D I3 Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (1) As quantidades discretas de informação podem ser representadas em sistemas digitais através de códigos binários. Um código binário de n bits é capaz de representar até 2n elementos diferentes de uma informação codificada, i. é, cada palavra de código na entrada produz uma palavra de código diferente na saída. Um descodificador é um Circuito Combinatório que converte informação binária desde n linhas de entrada para um máximo de 2n linhas de saída. Estrutura de um descodificador: n DESCODIFICADOR Palavra de código de entrada p Entradas de Enable Arquitectura de Sistemas Computacionais m Palavra de código de saída Descodificador de n para m linhas (objecto de estudo) onde: m 2n Circuitos Combinacionais DESCODIFICADORES (2) Características gerais: O código de entrada mais frequentemente usado é o código binário de n-bits, os quais representam 2n códigos diferentes, normalmente inteiros desde 0 até 2n-1; O código de saída mais frequente é o 1-out-of-n, que contém n-bits, onde simplesmente se encontra activo um bit de cada vez. Descodificadores Binários: Trata-se do descodificador mais usual possuindo na sua entrada palavras de código de n-bits e na saída palavras de código do tipo 1-out-of-2n bits. Entradas EN 0 1 1 1 1 I1 x 0 0 1 1 I2 x 0 1 0 1 Saídas Y3 0 0 0 0 1 Y2 0 0 0 1 0 Y1 Y0 0 0 0 1 1 0 0 0 0 0 Descodificador de 2 para 4 (lógica positiva) Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (3) Descodificadores Binários: (cont.) I0 I1 Y0 Dual Decoder 74x139 Y1 1G 1A Y2 EN Y3 Diagrama Lógico (lógica positiva) 1Y0 1Y1 1B 1Y2 1Y3 2G 2Y0 2Y1 2A 2B 2Y2 2Y3 Símbolo Lógico (lógica negativa) Descodificador duplo de 2 para 4 CI 74x139 Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (4) Exemplo: Implementação de um descodificador BINÁRIO - OCTAL Tabela de Verdade do descodificador binário–octal (lógica negativa) Entradas Saídas EN A B C Yo Y1 Y2 Y3 Y4 Y5 Y6 Y7 1 0 0 0 0 0 0 0 0 x 0 0 0 0 1 1 1 1 x 0 0 1 1 0 0 1 1 x 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 Descodificador 3 para 8 CI 74x138 Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (5) Circuito Lógico do descodificador binário – octal (lógica negativa) Y0 Y1 EN Y2 Y3 Y4 Y5 A Y6 B C Arquitectura de Sistemas Computacionais Y7 Circuitos Combinacionais DESCODIFICADORES (6) TIPOS DE CIRCUITOS DESCODIFICADORES DISPONÍVEIS NO MERCADO Descodificador de BCD/7Segmentos (com drivers): - 74x46/47/48/49. Descodificador BCD/Decimal: - 74x42/45/145. Descodificador 4/10 linhas: - 74x43/44. Descodificador 4/16 linhas: - 74x154. Descodificador 3/8 linhas: - 74x138. Descodificador 2x 2/4 linhas: - 74x139. Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (7) DESCODIFICADORES LIGADOS EM CASCATA (exemplo) VCC Decoder 74LS138 R A G1 Y0 0 G2A Y1 1 G2B Y2 2 Y3 3 Y4 4 Y5 5 Y6 6 Y7 7 G1 Y0 8 G2A Y1 9 G2B Y2 10 Y3 11 Y4 12 Y5 13 Y6 14 Y7 15 A B B C C D Decoder 74LS138 EN A B C Arquitectura de Sistemas Computacionais Circuitos Combinacionais DESCODIFICADORES (8) APLICAÇÃO EM CIRCUITOS COMBINACIONAIS (exemplo) Implementar, com um descodificador 74x138, o circuito correspondente à função: f (a, b, c) a b c a c b c Implementação – Diagrama Lógico Decoder 74x138 G1 G2A G2B A B C Arquitectura de Sistemas Computacionais Circuitos Combinacionais CODIFICADORES (1) Um codificador é um Circuito Lógico Combinacional que é construido para gerar um código de saída binário para n entradas diferentes de caracteres ou grupos de caractres. O número de bits m necessários na saída do codificador tem que satisfazer a seguinte relação: 2m n EXEMPLO: Implementação de um codificador OCTAL - BINÁRIO (lógica positiva) Entradas Io I1 I2 I3 I4 I5 I6 I7 Y2 Y1 Y0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Arquitectura de Sistemas Computacionais Tabela de Verdade do codificador octal-binário Circuitos Combinacionais CODIFICADORES (2) EXEMPLO: Implementação de um codificador OCTAL – BINÁRIO (cont.) Y0 I1 I 3 I 5 I 7 I0 Y1 I 2 I 3 I 6 I 7 I1 Y2 I 4 I 5 I 6 I 7 Equações Lógicas Y2 I2 I3 I4 Y1 I5 I6 I7 Y0 Diagrama Lógico do codificador octal-binário Em geral um codificador de 2n entradas para n saídas pode ser implementado com portas lógicas OR de 2n-1 entradas. Arquitectura de Sistemas Computacionais Circuitos Combinacionais CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva) Entradas Saídas I0 x 1 x x x I1 x 0 1 x x 00 01 11 10 x 1 1 1 01 1 1 11 1 10 1 EN 0 1 1 1 1 I2 I3 I 0 I1 00 I2 x 0 0 1 x I3 x 0 0 0 1 B 0 0 0 1 1 A 0 0 1 0 1 I2 I3 I 0 I1 IDLE Tabela de Verdade 0 1 1 1 1 I2 I3 11 10 1 1 1 1 1 1 1 11 1 1 1 1 10 1 1 1 1 01 11 00 x 1 1 00 1 01 1 1 1 01 1 1 11 1 1 1 1 1 10 1 1 B I2 I3 Arquitectura de Sistemas Computacionais A I 2 I1 I 3 10 01 00 I 0 I1 00 IDLE I 0 I1 I 2 I 3 Circuitos Combinacionais CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva) I0 I1 A I2 B I3 IDLE Diagrama Lógico Codificador Prioridade de 8-entradas CI 74x148 Arquitectura de Sistemas Computacionais Circuitos Combinacionais MULTIPLEXERS A Multiplexagem consiste em transmitir um grande número de unidades de informação através de um pequeno número de linhas ou canais de transmissão. Um multiplexer digital é um circuito combinatório que selecciona a informação binária de uma das várias linhas de entrada e direcciona-as para uma única linha de saída. A selecção de uma determinada linha é efectuada através de um conjunto de linhas de selecção ou de endereço. Estrutura de um Multiplexer (mux.) 1D0 Mux 1D1 Enable D0 b D1 b 1Y 1Dn-1 2D0 b Y 2D1 Dn-1 b 2Y 2Dn-1 bD0 s Selecção Entradas e Saídas do mux. Arquitectura de Sistemas Computacionais bD1 bDn-1 bY Selecção Enable Esquema Funcional do mux. Circuitos Combinacionais MULTIPLEXERS (Implementação) Tabela de Verdade D1 S Saídas 0 Y = D0 1 Y = D1 Y D1S D0 S D0 S Selecção Nota: Implemente um circuito multiplexer de 4 para 1 (mux 4:1) Arquitectura de Sistemas Computacionais Circuitos Combinacionais APLICAÇÕES DOS MULTIPLEXERS Os multiplexers apresentam diversas aplicações entre as quais se destacam: - Geradores de funções. - Conversão paralelo-série. - Geradores de formas de onda. - Direccionamento de dados. GERADORES DE FUNÇÕES Os multiplexers podem ser usados para implementar funções lógicas directamente da tabela de verdade sem recorrer a simplificações. Quando usado com esta finalidade, às entradas de selecção são aplicadas as variáveis lógicas do circuito e cada uma das entradas é ligada permanentemente a 0 ou 1. Arquitectura de Sistemas Computacionais Circuitos Combinacionais MULTIPLEXER COMO GERADOR DE FUNÇÕES (exemplo) Tabela de Verdade: a b c F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 F(a, b, c) m(2,3,6) Arquitectura de Sistemas Computacionais VCC Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A B Mux 8:1 C Y abc abc abc Circuitos Combinacionais MULTIPLEXER COMO GERADOR DE FUNÇÕES (exercícios) 1. Implementar a função F(a, b, c, d) m(0,1,4,5,6,9,12,14,15) utilizando: a) Um multiplexer de 8:1 onde as variáveis de endereço são D e C. b) Um multiplexer de 16:1. 2. Implementar a função F(a, b, c, d) m(1,4,6,7,10,12,13,14,15) utilizando: a) Um multiplexer de 8:1 onde as variáveis de endereço são C, B e A. b) Um multiplexer de 4:1 onde as variáveis de endereço são C e D. 3. Implementar a função F(a, b, c, d) m(6,8,9,10,11,14) utilizando: a) Um multiplexer de 4:1 onde as variáveis de endereço são C e D. Arquitectura de Sistemas Computacionais Circuitos Combinacionais MULTIPLEXER COMO CONVERSOR PARALELO-SÉRIE (exemplo) Y0 Y1 Y2 Registo de armazenamento (8 bits) Y3 Mux 8:1 Y4 Y Y5 Y6 Y7 A B (Contador) Arquitectura de Sistemas Computacionais C Circuitos Combinacionais DEMULTIPLEXER Demux Enable Y D0 b I0 D1 b I1 Dn-1 b In-1 b s Selecção Arquitectura de Sistemas Computacionais Circuitos Combinacionais DEMULTIPLEXER ATRAVÉS DE DESCODIFICADORES Demultiplexer usando o descodificador 74LS138, onde G 2 A funciona como entrada de informação. Decoder 74LS138 VCC G1 Y0 G2A Y1 G2B Y2 Y3 A 1 Y4 Y5 B C 0 1 Y6 Y7 G2A Y5 Restantes Saídas Lógica 1 Nota: O descodificador 74x154 (descodificador de 4 para 16 linhas) é também usado como demultiplexer de 1:16. Arquitectura de Sistemas Computacionais Circuitos Combinacionais TRANSMISSÃO DE DADOS Conjugando um multiplexer e um demultiplexer, podemos estabelecer a ligação através de um bus entre várias entradas e várias saídas. Isso é realizado da seguinte forma: D0 b b I0 D1 b b I1 b In-1 MUX Dn-1 b DEMUX b s s Selecção Selecção Arquitectura de Sistemas Computacionais 6 Circuitos Sequenciais Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP – FLOPS LÓGICA Combinatória LÓGICA Sequencial Saídas dependem unicamente do valor instantâneo dos diversos sinais de entrada. Saída depende não só do valor instantâneo dos sinais de entrada mas também do estado prévio dos elementos lógicos que constituem o circuito. FLIP – FLOPS FLIP – FLOPS – Circuito bi-estável. Circuito memorizador ou armazenador da informação recebida. Sinal mantém-se enquanto um sinal exterior não substituir a informação armazenada. Flip - Flops a estudar: • RS. • RST (RS sincronizado ou clocked). • D ou latch. • T ou toggle. • JK. • JK master-slave. Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP RS FLIP-FLOP RS –Possui duas entradas, S-Set e R-Reset, e duas saídas, Q e o seu complemento. Pode ser implementado com portas NOR ou NAND. NOR – O “disparo” ocorre no flanco ascendente. NAND – O “disparo” ocorre no flanco descendente (apresenta dois círculos na entrada). APLICAÇÃO: Circuito “Contact-Bounce Eliminator”, i.é, evita o efeito transitório na tensão. S Q S Q R Q R Q S Q R Q S R Q Q Flip-Flop RS com NOR’s e NAND’S Arquitectura de Sistemas Computacionais Símbolo do Flip-Flop RS Circuitos Sequenciais CONTACT BOUNCE ELIMINATOR +V +V R R 2 1 S S Q 1 V Q R R +V +V Circuito normal 2 Efeito transitório da tensão Arquitectura de Sistemas Computacionais Contact-Bounce Eliminator Circuitos Sequenciais FLIP–FLOP RST Este FF não é mais do que um FF RS com uma terceira entrada de clock que vai permitir ou inibir o funcionamento do FF conforme estiver ou não presente o impulso de clock. S Q Ck S Q C Q R Flip-Flop RST, implementado com NAND’s Arquitectura de Sistemas Computacionais R Q Símbolo do Flip-Flop RST Circuitos Sequenciais FLIP–FLOP TIPO D OU LATCH Este FF não é mais do que um FF RST onde as entradas RS estão ligadas a uma única entrada D (DATA). Esta é aplicada directamente numa das gates e inversamente na outra. D Q D Q C Ck Q Q SET D Flip-Flop D S C CLR D Q Q Ck D Q SET R Flip-Flop D, com Set e Clear (Reset) Q C CLR Arquitectura de Sistemas Computacionais Q Q Símbolo do Flip-Flop D Circuitos Sequenciais FLIP–FLOP TIPO T OU TOGGLE Este FF tem só uma entrada exterior (T) sendo, as outras, realimentações das saídas de Q e o seu complemento. Por tal motivo, são necessários dois circuitos de atraso (delay) para evitar que as realimentações mudem de estado enquanto T permanecer no seu estado 1. A saída deste FF pode servir para: contar impulsos; servir como divisor (scaler) (na medida em que são necessários 2 impulsos de entrada para 1 impulso de saída (T2=2T1)); servir, também, como contador binário. S Q SET Q T T R Flip-Flop T Arquitectura de Sistemas Computacionais Q CLR Q Símbolo do Flip-Flop T Circuitos Sequenciais FLIP–FLOP JK Tal como o FF Toggle, existem realimentações das saídas Q e do seu complemento, cujas mudanças não devem interferir no funcionamento. J S Q Ck J Q C R k Q Flip-Flop JK Arquitectura de Sistemas Computacionais K Q Símbolo do Flip-Flop JK Circuitos Sequenciais FLIP–FLOP JK master-slave Esta situação levou à concepção de um novo tipo denominado JK master-slave, cuja finalidade é introduzir um atraso entre a entrada e a saída, de forma a eliminar essa interferência. A razão do nome master-slave resulta de o segundo FF estar condicionado ao primeiro. S J Q Ck Q k Slave Master R Flip-Flop JK master-slave Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP RS Princípio de funcionamento: 1. As duas entradas estão normalmente a zero, podendo o FF estar com as saídas num estado qualquer, i.é, estado Reset (Q=0 e ~Q=1) ou estado Set (Q=1 e ~Q=0). 2. Aplicando um sinal um à entrada Reset o FF é conduzido sempre ao estado Reset. Se ele estiver previamente nesse estado permanece nele. 3. Aplicando um sinal um à entrada Set o FF é conduzido sempre ao estado Set. Se ele estiver previamente nesse estado permanece nele. 4. Aplicando simultaneamente sinais Set e Reset nas entradas, o FF cai num estado de indeterminação. Deve ser evitada esta situação! S Q S Q R Q R Q Flip-Flop RS Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP RS (cont.) Este princípio de funcionamento traduz-se na seguinte tabela. Saídas Casos Condições Iniciais Entrada s Saídas Condições Finais Observações Q ~Q R S Q ~Q 1 0 1 0 0 0 1 Não muda 2 0 0 0 1 0 1 Não muda 3 0 1 1 0 1 0 Muda de Reset para Set 4 0 0 1 1 5 1 1 0 0 1 0 Não muda 6 1 0 0 1 0 1 7 1 1 1 0 1 0 8 1 0 1 1 S R Qn+1 0 0 Qn Muda de Set para Reset 0 1 0 Não muda 1 0 1 Indeterminado 1 1 X Indeterminado Tabela Simplificada do FF RS Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP RS (cont.) O funcionamento do FF também se pode observar pelo diagrama de impulsos: S0 R0 Q0 Q0 Nota: O funcionamento do FF é idêntico quando implementado com NAND’s! Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP RST As Gates C e D servem para que o Clock CK quando presente, deixe passar o sinal S ou R. As Gates A e B constituem o FF RS propriamente dito. O impulso de clock CK funciona como trinco (latch) que abre ou fecha as gates de controle, C e D. Continua a existir um estado indeterminado! O FF comporta-se de igual forma ao RS desde que haja sinal de clock. S C Entradas A Q Ck R D B Arquitectura de Sistemas Computacionais Q Saídas S R Ck Q ~Q 0 0 0 Não actua 0 0 1 Não actua 0 1 0 Não actua 0 1 1 0 1 0 0 Não actua 1 0 1 1 1 1 0 Não actua 1 1 1 Indeterminado 1 0 Circuitos Sequenciais FLIP–FLOP D ou LATCH Este FF tem em relação aos anteriores a vantagem de eliminar o estado indeterminado. Isso consegue-se ligando as entradas RS a uma única entrada D (DATA). A qual é aplicada directamente numa das gates e inversamente na outra. Este FF, além da vantagem acima descrita em relação às anteriores, dá-nos oportunidade de avançar para outros processos, utilizando mais algumas alterações em relação ao esquema básico, com o objectivo de eliminar alguns inconvenientes que ainda subsistem neste tipo. D ENTRADAS Q Ck Q Arquitectura de Sistemas Computacionais SAÍDAS Data Clock Q 0 0 Não Muda 0 1 0 1 0 Não Muda 1 1 1 Circuitos Sequenciais FLIP–FLOP D ou LATCH Na zona 1 aparece o que foi descrito na tabela de verdade, i.é, o nível na entrada D aparece na saída Q a partir do impulso seguinte do clock com um certo atraso B devido ao nível 1 da entrada D ter surgido antes desse impulso de clock. Funciona como um trinco (latch) que abre levando a saída Q ao nível da entrada D. Na zona 2 está representada uma situação inconveniente, i.é, durante todo o patamar em que o impulso de clock é 1 a saída pode variar desde que varie a entrada. A frequência de clock é inferior à da entrada de D. Em determinados contadores, isso exigiria criar uma situação de compromisso entre o impulso de clock e o sinal de entrada para não se dar a tal situação que ocorre na zona 2. 1 Ck D B Q Arquitectura de Sistemas Computacionais 2 Circuitos Sequenciais FLIP–FLOP D ou LATCH(cont.) Foi criado dentro do mesmo tipo um circuito mais complexo, para colmatar a situação anteriormente descrita, denominado de Edge Triggered D-type FF, i.é, FF tipo D disparando unicamente ou no flanco ascendente ou no descendente do impulso de clock. Funcionamento: Condições iniciais, Ck=0, D=1 e FF no estado Reset. Quando aparece um impulso de clock, a saída da gate B vai para 0, fazendo com que o FF RS constituido pelas gates E e F vá para estado Set. Se a entrada D vai para 0 durante o tempo em que o Ck ainda é 1, a saída da gate D vai para 1. Isto não causa efeito na saída do FF uma vez que a gate C está inibida pela saída da gate B. Quando o clock por seu turno for 0 a saída B vai para 1 mas C é agora inibida pela falta de clock, deixando assim a saída do FF no estado de Set, sem alteração. A B E Q C F Q Ck D Arquitectura de Sistemas Computacionais D Circuitos Sequenciais FLIP–FLOP T ou TOGGLE Funcionamento: Inicialmente o FF está no estado Reset (Q=0 e ~Q=1). Ao aplicamos um impulso 1 à entrada T, a porta NAND A abre, dando uma saída 0. Após um certo atraso o FF é activado e passa ao estado Set. A gate B fica preparada a actuar após a recepção do próximo impulso que conduzirá à situação inicial, ou seja, Reset. Aplicação: Como foi falado anteriormente, a saída deste FF pode servir para contar impulsos ou servir como divisor (scaler), na medida em que são necessários 2 impulsos de entrada para 1 impulso de saída (T2=2T1). Pode servir também como contador binário pois a sua saída é alternadamente 0, 1, 0, 1, 0, 1,... T1 S Q B T R B B Q T2 Arquitectura de Sistemas Computacionais B Circuitos Sequenciais FLIP–FLOP JK Este FF é o mais utilizado em circuitos lógicos devido a ser aquele que além de não ter estado indeterminado, tem mais possibilidades de funcionamento, uma vez que tem 2 entradas (J e K) além de um clock. Para compreender o seu funcionamento básico apercebamo-nos das seguintes condições: •Só funciona com impulso de clock. •Se ambas as entradas forem iguais a 0, o FF não muda de estado. •Se ambas as entradas forem iguais a 1 o FF funciona como o FF Toggle (muda sempre de estado). •Se as entradas forem iguais às saidas, o FF não muda de estado. •Se as entradas forem diferentes das saídas, o FF muda de estado complementarmente, ficando com as entradas iguais às entradas. 0 || 1|| 0 / 1|| 0 / 1 J Q 0 || 0 1 0 || 0 / 1|| 1 0 / 0 1 C 0 || 1|| 1/ 0 || 1/ 0 Arquitectura de Sistemas Computacionais K Q 1|| 1 0 1|| 1/ 0 || 0 1/ 1 0 Circuitos Sequenciais FLIP–FLOP JK Pelo esquema é fácil observar o funcionamento anteriormente descrito: 1. Quando J=0 e K=0 as portas A e B estão bloqueadas (A e B são AND’s!!). 2. Quando J=K=1, as portas A e B estão desbloqueadas, o FF funciona como Toggle e Alterna de estado consoante o clock. 3. Quando J=0 e K=1 ou vice-versa, A ou B estão bloqueadas. Funciona como o FF RS, pois as saídas dos AND’s são aplicadas directamente às entradas do FF RS. J S Q R Q Ck k Flip-Flop JK Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP JK master-slave Esta montagem é constituida por dois FF RS, no primeiro dos quais o clock actua directamente (flanco ascendente) e no segundo inversamente (flanco descendente). Portanto, a saída do primeiro FF (master) vai ser transmitida ao segundo FF (slave) no flanco descendente do impulso de clock, o que implica dizer haver um atraso igual à duração do clock. Este atraso elimina os efeitos da realimentação sobre a entrada, à semelhança da introdução dos delays no FF Toggle. S J A C E G Q Ck k B Master D H F Q ENTRADAS SAÍDAS J K Qn+1 0 0 Qn 0 1 0 1 0 1 1 1 ~Qn Slave R Flip-Flop JK master-slave Tabela de verdade do FF JK A razão do nome master-slave resulta de o segundo FF estar condicionado ao primeiro. Arquitectura de Sistemas Computacionais Circuitos Sequenciais FLIP–FLOP JK master-slave Funcionamento do FF JK master-slave através do diagrama de sinais: J 1 0 0 1 K 1 0 1 0 Ck QCD Ck QGH B B B Como se pode verificar existe um atraso B entre as saídas QGH e QCD igual à duração do impulso de clock. Arquitectura de Sistemas Computacionais Circuitos Sequenciais CIRCUITOS SEQUENCIAIS Os circuitos que vão ser objecto de estudo vão ser: • Contadores. • Divisores de frequência (scalers). CONTADORES: Estes dispositivos têm como objectivo realizar vários tipos de contagem como: tempo (como um relógio digital), temporização ou sincronismo das operações de um sistema complexo, calculadores, computadores, etc... Tipos principais de CONTADORES: • Assincronos ou de RIPPLE. • Síncronos. Arquitectura de Sistemas Computacionais 7 Circuitos Sequenciais Assíncronos Arquitectura de Sistemas Computacionais Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Nos contadores assíncronos a saída do primeiro FF liga à entrada do segundo e assim sucessivamente. Dizem-se assíncronos porque os vários FF’s não comutam em sincronismo com o clock mas sim com um atraso de um FF para o seguinte. A Q Ck T C B Q Q T CLR Q T CLR Q CLR Q R Contador Assíncrono implementado com FF tipo T 1 J Ck SET Q A 1 J C 1 K C B SET Q 1 J C CLR Q 1 K SET Q C CLR Q 1 K CLR Q R Contador Assíncrono implementado com FF tipo JK Arquitectura de Sistemas Computacionais Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais dos contadores assíncronos implementados com FF tipo T e FF tipo JK. Ck A 1 0 1 0 1 0 1 0 1 0 B 1 1 0 0 1 1 0 0 1 1 C 1 1 1 1 0 0 0 0 1 1 Diagrama de sinais do contador assíncrono implementado com FF tipo T Ck A 0 1 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 0 0 C 0 0 0 0 1 1 1 1 0 0 Diagrama de sinais do contador assíncrono implementado com FF tipo JK Arquitectura de Sistemas Computacionais Circuitos Sequenciais Assíncronos DESENHO DE CONTADORES ASSÍNCRONOS O processo a seguir para implementar um contador assíncrono é o seguinte: • Determinar o número de FF’s a utilizar. • Ligar a saída de cada FF ao clock do FF seguinte. • O reset do contador será feito através das saídas que terão nível lógico 1 no módulo pretendido. Exemplo: Implementar um contador de módulo 5. Ponto 1: o número de FF a usar é igual a 3. Pois, 22 < 5 < 23 3 FF´s. Ponto 2 e 3. A 1 J Ck SET Q 1 J C 1 K C B SET Q 1 J C CLR Q R Arquitectura de Sistemas Computacionais 1 K SET Q C CLR Q 1 K CLR Q Circuitos Sequenciais Assíncronos DESENHO DE CONTADORES ASSÍNCRONOS Exercícios: 1. Implemente, usando FF’s do tipo JK, um contador assíncrono que faça uma contagem de 0 a 3. 2. Implemente um contador, usando FF’s do tipo JK, um contador assíncrono de módulo 12. 3. Realize os pontos 1 e 2 usando FF’s do tipo T e D: Arquitectura de Sistemas Computacionais 8 Circuitos Sequenciais Síncronos Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos CONTADORES SÍNCRONOS CONTADOR SÍNCRONO PROGRESSIVO: A análise dos contadores síncronos torna-se mais complexa que a dos assíncronos, daí se optar pelo método baseado na aplicação da tabela de verdade. Para tal procedemos da seguinte forma: • As entradas J e K de cada FF podem representar-se sob a forma de uma expressão lógica. • Essas expressões lógicas são normalmente função das saídas dos vários FF’s. A 1 J SET Q C 1 K J SET Q C CLR Q C B K SET J Q Ck R Arquitectura de Sistemas Computacionais Q K CLR 2. K A 1 3. J B A C CLR 1. J A 1 Q 4. K B A 5. J C A B 6. K C A B Circuitos Sequenciais Síncronos CONTADORES SÍNCRONOS Tabela de verdade do funcionamento do contador síncrono progressivo: SAÍDAS C B A ENTRADAS JA KA JB KB JC KC 1 1 A A A.B A.B Reset 0 0 0 1 1 0 0 0 0 1º clock 0 0 1 1 1 1 1 0 0 2º clock 0 1 0 1 1 0 0 0 0 3º clock 0 1 1 1 1 1 1 1 1 4º clock 1 0 0 1 1 0 0 0 0 5º clock 1 0 1 1 1 1 1 0 0 6º clock 1 1 0 1 1 0 0 0 0 7º clock 1 1 1 1 1 1 1 1 1 8º clock 0 0 0 1 1 0 0 0 0 Arquitectura de Sistemas Computacionais Método para construção da Tabela de verdade: 1.Dividir a tabela em dois grupos: Entradas e Saídas. 2.Colocar no grupo das entradas, JA, KA, JB, etc, com as respectivas expressões. 3.Nas saídas colocam-se as letras A, B, C relativas às saídas Q dos FF’s. Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais do contador Síncrono progressivo: Ck A 0 1 0 1 0 1 0 1 0 1 B 0 0 1 1 0 0 1 1 0 0 C 0 0 0 0 1 1 1 1 0 0 R Diagrama de sinais do contador síncrono progressivo implementado com FF tipo JK Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos CONTADORES SÍNCRONOS CONTADOR SÍNCRONO REGRESSIVO: Procedendo da mesma forma de análise que para o contador síncrono progressivo temos: A SET 1 J Q 1 K CLR SET J C Q J C Q C B K CLR SET Q C Q K CLR Q Ck R Contador síncrono regrassivo implementado com FF tipo JK Comecemos por escrever as expressões das várias entradas a partir do esquema: JA 1 JB A JC A B KA 1 KB A KC A B Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos CONTADORES SÍNCRONOS Tabela de verdade do funcionamento do contador síncrono regressivo: SAÍDAS C B A ENTRADAS JA KA JB KB 1 1 A A JC KC AB AB Reset 0 0 0 1 1 1 1 1 1 1º clock 1 1 1 1 1 0 0 0 0 2º clock 1 1 0 1 1 1 1 0 0 3º clock 1 0 1 1 1 0 0 0 0 4º clock 1 0 0 1 1 1 1 1 1 5º clock 0 1 1 1 1 0 0 0 0 6º clock 0 1 0 1 1 1 1 0 0 7º clock 0 0 1 1 1 0 0 0 0 8º clock 0 0 0 1 1 1 1 1 1 Arquitectura de Sistemas Computacionais Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais do contador Síncrono regressivo: Ck A 1 0 1 0 1 0 1 0 1 B 1 1 0 0 1 1 0 0 1 C 1 1 1 1 0 0 0 0 1 R Diagrama de sinais do contador síncrono regressivo implementado com FF tipo JK Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos CONTADORES SÍNCRONOS CONTADOR SÍNCRONO REVERSÍVEL: Trata-se de um contador que pode contar quer no sentido ascendente quer no sentido descendente. A C B SET 1 J Q I II C 1 K CLR SET J Q III C Q K Q C IV CLR SET J Q K CLR Q Ck R CD Count Direction JB KB JC KC 0 (crescente) A A A.B A.B Abre I e III 1 (decrescente) A A AB AB Abre II e IV Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS O processo a seguir para implementar um contador síncrono é o seguinte: • Determinar o número de FF’s a utilizar; • Desenhar a tabela de verdade das saídas de acordo com o código de contagem pretendido; • Desenhar o mapa de Karnaugh relativamente às saídas do contador, utilizando a tabela de verdade já construída, na fase anterior, como auxiliar; • Retirar as expressões para todas as saídas J e K; • Implementar o circuito do contador síncrono. Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) Exemplo: Construir um contador para o código BCD-XS3. • Número de FF’s a utilizar: O número de FF a usar é igual a 4. Pois, o código necessita de pelo menos 4 bits para representar os 10 digitos (0 – 9). Assim, 23=8 < 10 < 24=16 4 FF´s. • Desenhar a tabela de verdade das saídas de acordo com o código de contagem pretendido. SAÍDAS Estado Actual Estado Seguinte Decimal D C B A D C B A Decimal 0 — 0 0 1 1 3 0 0 1 1 0 1 0 0 4 1 — 0 1 0 0 4 0 1 0 0 0 1 0 1 5 2 — 0 1 0 1 5 0 1 0 1 0 1 1 0 6 3 — 0 1 1 0 6 0 1 1 0 0 1 1 1 7 4 — 0 1 1 1 7 0 1 1 1 1 0 0 0 8 5 — 1 0 0 0 8 1 0 0 0 1 0 0 1 9 6 — 1 0 0 1 9 1 0 0 1 1 0 1 0 10 7 — 1 0 1 0 10 1 0 1 0 1 0 1 1 11 8 — 1 0 1 1 11 1 0 1 1 1 1 0 0 12 9 — 1 1 0 0 12 1 1 0 0 0 0 1 1 0 Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) • Desenhar o mapa de Karnaugh relativamente às saídas do contador, utilizando a tabela de verdade já construída, na fase anterior, como auxiliar. BA 00 DC 01 00 11 10 3 01 4 11 12 10 8 5 7 6 9 11 10 Os espaços em branco, serão “Don’t Care Conditions” (X) e correspondem aos códigos ilegítimos deste contador. Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) • Desenhar mapas de Karnaugh para as entradas J e K do total de FF’s a utilizar. A tabela de excitação do FF JK é a seguinte: Estado do FF Estado das Entradas Condição do FF Antes Depois J K 0 0 0 X Não Mudou ou Reset 0 1 1 X Mudou ou Set 1 0 X 1 Mudou ou Reset 1 1 X 0 Não Mudou ou Set Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) • Desenhar mapas de Karnaugh para as entradas J e K do total de FF’s a utilizar. De acordo com a tabela de excitação constroi-se nova tabela de verdade, agora com as entradas J e K. SAÍDAS ENTRADAS Estado Actual Estado Seguinte D C B A D C B A 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 1 JD KD JC KC JB KB JA KA 0 0 X 1 X X 1 X 1 JD C B A 0 1 0 X X 0 0 X 1 X 1 1 0 0 X X 0 1 X X 1 KD C 0 1 1 1 0 X X 0 X 0 1 X 1 1 0 0 0 1 X X 1 X 1 X 1 KC B A D 0 0 1 0 0 1 X 0 0 X 0 X 1 X JB D C A 0 0 1 1 0 1 0 X 0 0 X 1 X X 1 1 0 1 0 1 0 1 1 X 0 0 X X 0 1 X 1 0 1 1 1 1 0 0 X 0 1 X X 1 X 1 1 1 0 0 0 0 1 1 X 1 X 1 1 X 1 X Arquitectura de Sistemas Computacionais JC B A KB A JA 1 KA 1 Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) • Implementação do circuito contador síncrono. C D J SET Q C K J SET Q C CLR Q K A B SET J Q 1 J C CLR Q K CLR SET Q C Q 1 K CLR Q Ck R Exercício: 1. Implemente, usando FF’s do tipo D, T e S-R o contador síncrono atrás realizado com FF’s JK. Arquitectura de Sistemas Computacionais Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) Tabelas de excitação para outros FF’s: Flip-Flop S-R Estado do FF Flip-Flop D Estado das Entradas Estado do FF Estado das Entradas Antes Depois S R Antes Depois D 0 0 0 X 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 X 0 1 1 1 Flip-Flop T Estado do FF Estado das Entradas Antes Depois T 0 0 0 0 1 1 1 0 1 1 1 0 Arquitectura de Sistemas Computacionais