A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Introdução à Lógica Digital Arquitectura de Sistemas Computacionais.

Apresentações semelhantes


Apresentação em tema: "1 Introdução à Lógica Digital Arquitectura de Sistemas Computacionais."— Transcrição da apresentação:

1 1 Introdução à Lógica Digital Arquitectura de Sistemas Computacionais

2 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, ... O que hoje conhecemos da electrónica digital é um 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. A electrónica digital impôs-se à analógica ou, mais vulgarmente, nos casos onde a solução de um problema se pode efectuar de ambas as formas. Além disso, a sua aplicação melhorou sistemas e produtos já existentes e deu lugar ao desenvolvimento a outros até aí impossíveis de construir. A tudo isto acrescentam-se as vantagens que toda a vasta gama de dispositivos digitais disponíveis no mercado oferece em relação aos dispositivos analógicos ou lineares. Estas vantagens reflectem-se numa maior imunidade ao ruído eléctrico, elevada densidade de integração, facilidade de acoplamento de uns blocos com outros, simplicidade de projecto e análise, etc. Arquitectura de Sistemas Computacionais

3 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). Foi feita referência a termos tais como digital ou analógico, sem se esclarecer convenientemente a diferença entre ambos. Um sinal analógico, e, em geral, qualquer grandeza analógica, é aquele que assume uma infinidade de valores ao longo do tempo (p.e. variação da temperatura ao longo de um dia). Arquitectura de Sistemas Computacionais

4 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. Um sinal digital é aquele que assume um número finito de valores e varia de valor por saltos (p.e. variação hora a hora da temperatura ao longo de um dia). Arquitectura de Sistemas Computacionais

5 CIRCUITOS ELECTRÓNICOS DIGITAIS BINÁRIOS:
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 Baixo 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

6 APLICAÇÕES (ELECTRÓNICA DIGITAL):
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... Das diversas aplicações de dispositivos digitais, podemos referir o uso em máquinas de calcular, instrumentos de medida digitais, relógios digitais, etc. A estes juntam-se mais recentemente os computadores pessoais que são, sem dúvida, os mais divulgados equipamentos digitais. No campo da electrónica analógica podemos também referir aplicações em amplificadores de áudio, receptores de rádio, instrumentos de medida analógicos (já pouco usados), etc. Arquitectura de Sistemas Computacionais

7 1 Sistemas de Numeração

8 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. Parece natural a utilização de 10 algarismos diferentes – 0 até 9 – para representação usual de números. A este sistema de numeração, baseado na utilização de 10 algarismos diferentes, chama-se sistema decimal ou de base dez. No entanto há vários países que tiveram sistemas não decimais, nomeadamente para medidas de peso ou comprimento. Como é sabido um pé é igual a doze polegadas, portanto trata-se de um sistema de base doze (12). De igual modo ao usarmos a semana como unidade de contagem dos dias estamos a usar um sistema de base sete (7). Vejamos outros métodos de numeração para que se perceba melhor este assunto: suponhamos por exemplo que não existiam os algarismos 8 e 9. Partindo desta hipótese como realizariamos as operaçóes aritméticas ou, mais simplesmente, a contagem e representação dos números? Do 0 ao 7 não ocorreriam problemas, no entanto o número seguinte já teria que ser escrito com dois algarismos. Como neste sistema não existe mais que o algarismo 7, teriamos que voltar ao 0 e colocavamos um 1 à sua esquerda. Assim a seguir ao 7 vem o 10(8). Então este número lê-se um, zero base oito. O número 8 refere-se precisamente ao sistema de numeração utilizado que, neste caso, é o sistema de numeração de base oito ou 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. Como acabámos de ver o algarismo que vem a seguir ao 7, que na base 10 é o 8, escreve-se 10(8). Podemos então estabelecer a seguinte igualdade: (10) = 10(8). Esta igualdade sem os respectivos índices não teria qualquer significado! Voltando aos circuitos digitais e relembrando que só têm dois estados a que chamámos 0 e 1, facilmente concluímos que 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 e que serão naturalmente o 0 e o 1. Tal sistema é designado por sistema binário ou de base 2. Arquitectura de Sistemas Computacionais

9 FÓRMULA GENÉRICA PARA DEFINIÇÃO DE UM NÚMERO DECIMAL:
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 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

10 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} Os variados sistemas de numeração diferem unicamente uns dos outros pelo número de algarismos ou dígitos que cada um utiliza. Assim, O sistema decimal utiliza 10 algarismos desde 0 até 9. O sistema binário utiliza 2 algarismos desde 0 até 1. O sistema octal utiliza 8 algarismos desde 0 até 7. O sistema hexadecimal utiliza 16 algarismos desde 0 até F (os valores superiores a nove são representados pelas letras A, B, C até F). Arquitectura de Sistemas Computacionais

11 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): Unidades - 7 x 1= 7 Dezenas - 6 x 10= 60 Centenas - 4 x 100= 400 Milhares - 3 x 1000= 3000 3467 Porque anatomicamente os seres humanos dispõem de 5 dedos em cada mão, torna-se natural que a contagem envolva 10 símbolos ou dígitos, ou seja, um sistema de numeração com uma base de 10 [0, 1, ...,9]. Cada um dos símbolos de 0 até 9 representa uma certa quantidade. Com estes 9 dígitos, podemos representar qualquer grandeza superior a 9, usando dois ou mais dígitos para tal. A posição de cada dígito no número diz-nos a grandeza que representa e pode ser designada por peso. Os pesos são potências de 10 e aumentam da direita para a esquerda, iniciando-se com uma potência de valor 0 (100=1). EXEMPLO (número inteiro): (…)= 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

12 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 Exemplo: Valor inteiro e fraccionário: 1101(2) = 1x23+1x22+0x21+1x20 = 13 … em decimal ;) E se for fraccionário? …procede-se da mesma forma! Atenção à base!! É o mais utilizado nos 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} A cada um dos algarismos chama-se bit (Binary Digit). Cada dígito comparticipa na formação do número com um peso, determinado pela posição que ocupa no número. A um agrupamento de 8 bits chama-se BYTE. Se se tratar de um agrupamento de 4 bits designa-se por NIBBLE. A contagem inicia-se com 0, 1. Como se esgotaram os dois dígitos inclui-se um segundo dígito (à esquerda) e continua-se a contar 10, 11. Como se esgotaram as combinações possíveis com dois dígitos, necessitamos de um terceiro. A contagem continua 100, 101, 110 e 111. Necessitamos de um quarto dígito para continuar a contagem e assim sucessivamente. Arquitectura de Sistemas Computacionais

13 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 ( (85), 4096 (84), 512 (83), 64 (82), 8 (81), 1 (80)). Exemplo: Valor inteiro e fraccionário: 347(8) = 3x82+4x81+7x80 = 231 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 !!! É composto por oito dígitos, 0,1,2,3,4,5,6,7. Para destinguirmos estes números dos decimais representaremos as grandezas do sistema octal afectadas do índice 8. Cada dígito terá um peso das sucessivas potências de oito. Para a parte inteira, o dígito mais à direita terá um peso de 80, aumentando o peso à medida que nos deslocamos para a esquerda; na parte fracionária, o dígito à direita da vírgula terá um peso de 8-1, diminuindo os pesos à medida que nos deslocamos para a direita. Arquitectura de Sistemas Computacionais

14 SISTEMA HEXADECIMAL O sistema Hexadecimal é composto por 16 símbolos.
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 ( (164), 4096 (163), 256 (162), 16 (161), 1 (160)). Exemplo: Valor inteiro e fraccionário: 4FA(16) = 4x162+15x161+10x160 = 1274 … e se for fraccionário? 4FA,AB(16) = 4x162+15x161+10x160+10x x16-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 !!! É composto por desaseis dígitos, 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. Para destinguirmos estes números dos decimais representaremos as grandezas do sistema hexadecimal afectadas do índice 16. Como grande número de sistema digitais tratam a informação em agrupamentos de bits em números múltiplos de 4, tornam este sistema de grande utilidade, uma vez que cada dígito que o constitui pode ser representado pode ser representado por um número binário de 4 bits. Como apenas existem dez algarismos, os restantes símbolos deste sistema são as 6 primeiras letras do alfabeto (A,B,C,D,E,F). Arquitectura de Sistemas Computacionais

15 TABELA Decimal Binário Octal Hexadecimal Sistemas de Numeração
00000 1 00001 2 00010 3 00011 4 00100 5 00101 6 00110 7 00111 8 01000 10 9 01001 11 01010 12 A 01011 13 B 01100 14 C 01101 15 D 01110 16 E 01111 17 F 10000 20 Arquitectura de Sistemas Computacionais

16 CONVERSÃO DE DECIMAL PARA BASE b
Sistemas de Numeração CONVERSÃO DE DECIMAL PARA BASE b Números Inteiros: Base 2  Divisões sucessivas por 2; Exº = (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

17 Conversões de Números Inteiros
Sistemas de Numeração CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO Conversões de Números Inteiros Binário Octal Hexadecimal Decimal Divisões Consecutivas por 8 Divisões Consecutivas por 2 Divisões Consecutivas por 16 Dn…D2D1=Dn*8n-1+…+D2*81+D1*80 Dn…D2D1=Dn*16n-1+…+D2*161+D1*160 Dn…D2D1=Dn*2n-1+…+D2*21+D1*20 Decimal-Binário (Inteiros): O método mais sistemático consiste em efectuar divisões sucessivas por 2. O equivalente encontrado será formado pelo último quociente (MSD – Most Significant Digit) e pelos restos escritos pela ordem contrária àquela de que foram obtidos. O primeiro resto encontrado será o LSD (Least Significant Digit). Decimal-Octal (Inteiros): Tal como na conversão decimal para binário, a conversão para octal efectua-se também pelo método das divisões sucessivas, agora por 8. Decimal-Hexadecimal (Inteiros): Divisões sucessivas da parte inteira do número decimal por 16 produzirão o número equivalente em hexadecimal. Arquitectura de Sistemas Computacionais

18 Conversão da Parte Fraccionária
Sistemas de Numeração CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO Conversão da Parte Fraccionária Binário Octal Hexadecimal Decimal Produtos Consecutivos por 8 0,D1D2… Dn=D1*8-1+D2*8-2+…+Dn*8-n Produtos Consecutivos por 2 Produtos Consecutivos por 16 0,D1D2… Dn=D1*2-1+D2*2-2+…+Dn*2-n 0,D1D2… Dn=D1*16-1+D2*16-2+…+Dn*16-n Decimal-Binário (Fraccionários): As fracções decimais podem converter-se para binário pelo método das multiplicações sucessivas por 2. Multiplica-se até se obter o número de bits pretendido.Os dígitos obtidos são as partes inteiras dos produtos obtidos, sendo o primeiro o MSB e o último o LSB. Decimal-Octal (Fraccionários): Tal como na conversão decimal para binário, a conversão para octal efectua-se também pelo método das multiplicações sucessivas, agora por 8. Decimal-Hexadecimal (Fraccionários): Por multiplicações sucessivas por 16 da parte fraccionária obtém-se o equivalente em hexadecimal, pelo agrupamento das partes inteiras obtidas. Arquitectura de Sistemas Computacionais

19 CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO
Binário Octal Hexadecimal Cada n.º é convertido para um binário de 4 Bits Cada n.º é convertido para um binário de 3 Bits Agrupam-se os Bits em grupos de 3 Agrupam-se os Bits em grupos de 4 Passa-se por uma base intermédia (Decimal ou Binária) Octal-Binário(inteiros e fraccionários): Dado que cada dígito octal pode ser representado por um número binário de 3 bits, a conversão entre estes dois sistemas é directa. Hexadecimal-Binário(inteiros e fraccionários): Para converter um número hexadecimal em binário substitui-se cada símbolo hexadecimal pelo seu equivalente formado por 4 bits. Binário-Octal e Hexadecimal (inteiros e fraccionários): Para se converter de binário para octal e hexadecimal, divide-se o número a partir da vírgula em grupos de 3 e 4 bits respectivamente. Cada grupo possui um equivalente na base respectiva. Arquitectura de Sistemas Computacionais

20 Transporte ou Carry (C)
Sistemas de Numeração OPERAÇÕES EM BINÁRIO SOMA a b Soma Transporte ou Carry (C) 1  Carry EXEMPLO O transporte ou Carry obtido ao operar com dois bits é a quantidade que se tem que adicionar à soma de dígitos de ordem superior. Arquitectura de Sistemas Computacionais

21 OPERAÇÕES EM BINÁRIO SUBTRACÇÃO a b Diferença Borrow (B) 1 1 0 1 1 0 1
Sistemas de Numeração OPERAÇÕES EM BINÁRIO SUBTRACÇÃO a b Diferença Borrow (B) 1  Borrow O transporte ou Carry obtido ao operar com dois bits é a quantidade que se tem que adicionar à soma de dígitos de ordem superior. Nota: Dar exº de multiplicação em binário.... Arquitectura de Sistemas Computacionais

22 OPERAÇÕES EM HEXADECIMAL
Sistemas de Numeração OPERAÇÕES EM OCTAL SOMA SUBTRACÇÃO 2 4 7(8) + 5 6(8) 3 2 5(8) 3 2 5(8) - 5 6(8) 2 4 7(8) OPERAÇÕES EM HEXADECIMAL SOMA SUBTRACÇÃO Operações em OCTAL: Soma em OCTAL Soma-se dígito a dígito como em decimal, caso dê maior ou igual a 8 subtrai-se 8 obtendo-se o resultado da subtracção e carry. EXº, 6+4=10-8=2 e vai carry. Subtracção em OCTAL Quando o algarismo de cima (subtraendo) é maior que o de baixo (subtractor), junta-se 8 ao de cima, subtrai-se como em decimal e vai borrow que se vai subtrair na coluna seguinte. Operações em HEXADECIMAL: Soma em HEXADECIMAL Soma-se dígito a dígito como em decimal, caso dê maior ou igual a 16 subtrai-se 16 obtendo-se o resultado da subtracção e carry. EXº, 9+9=18-16=2 e vai carry. Subtracção em HEXADECIMAL Quando o algarismo de cima (subtraendo) é maior que o de baixo (subtractor), junta-se 16 ao de cima, subtrai-se como em decimal e vai borrow que se vai subtrair na coluna seguinte. A 3 7(16) + 5 9 B(16) F D 2(16) A A 5(16) - 6 E D(16) 3 B 8(16) Arquitectura de Sistemas Computacionais

23 OPERAÇÕES EM OCTAL/HEXADECIMAL
Sistemas de Numeração OPERAÇÕES EM OCTAL/HEXADECIMAL MULTIPLICAÇÃO 5 6(8) x 1 4(8) 3 0 2 4 5 6 (8) A B(16) x 4 C(16) 8 4 7 8 2 C 2 8 3 2 C 4(16) Multiplicam-se os dígitos em decimal e convertem-se para Octal/Hexadecimal. Arquitectura de Sistemas Computacionais

24 REPRESENTAÇÃO DE NÚMEROS NEGATIVOS COMPLEMENTAÇÃO
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: EXEMPLO O complemento para 1 do número 1001: A necessidade de representar em binário números relativos (positivos ou negativos) e a vantagem de transformar as subtracções apenas em somas para tornar mais fácil a sua execução pelos dispositivos digitais, leva-nos a utilizar a representação em complemento. Assim o complemento de um número N, é a diferença entre a base (B) e esse número. Complemento para um – Consiste em complementar todos os dígitos, i.é, trocar os 1´s por 0’s e os 0’s por 1’s. Como é a base 1 torna-se lógico que o complemento de 0 seja 1 e vice-versa! REGRA PRÁTICA: Trocar os 0’s por 1’s e vice-versa. Arquitectura de Sistemas Computacionais

25 COMPLEMENTAÇÃO (cont.)
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: 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. Existem algumas regras práticas a que se pode recorrer, por uma questão de poupança de tempo, para determinar o Complemento para dois de um número: Primeira – Determinar o complemento para 1 do número e somar ao resultado o valor 1 Segunda – 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

26 REPRESENTAÇÃO DE NÚMEROS RELATIVOS (2´C)
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. 1 +53 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: Nos computadores digitais, os números são guardados num conjunto de dispositivos de armazenamento, designados por registos, e são constituídos basicamente por flip-flops. Cada flip-flop tem a capacidade de armazenar um bit. Um registo de 7 flip-flops tem a capacidade de armazenar valores desde 0 até 127 (decimal). Esse valor representa a grandeza do número. No entanto como existe a necessidade de representar valores negativos e positivos temos de arranjar um processo de indicar o respectivo sinal. O método mais corrente consiste em inserir um novo bit, designado por bit de sinal. A norma mais utilizada faz corresponder ao 0 os números positivos e ao 1 os números negativos. Por exemplo o número 1100(2) considerado no universo dos números positivos e negativos não tem o valor 12 mas sim -5. Deste modo o maior número positivo com 4 bits em complemento para 2 será 0111(2) = 7, cujo simétrico será o valor 1001(2) = -7. 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

27 OPERAÇÕES COM NÚMEROS RELATIVOS ADIÇÃO
Sistemas de Numeração OPERAÇÕES COM NÚMEROS RELATIVOS ADIÇÃO 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 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

28 EXERCÍCIO: RESOLUÇÃO: a) 12 + 9 b) 12 - 9 c) -12 - 9 d) -12 + 9
Sistemas de Numeração EXERCÍCIO: a) b) c) d) RESOLUÇÃO: Arquitectura de Sistemas Computacionais

29 Complemento para 2 do valor obtido
Sistemas de Numeração RESOLUÇÃO(cont.): 3. a) b) c) d) 4. a) e d) não  carry b) e c)  carry desprezá-lo!! 5. a) b) c) d) (2’C) - 3(2’C) Complemento para 2 do valor obtido Arquitectura de Sistemas Computacionais

30 3 Álgebra de Boole Arquitectura de Sistemas Computacionais

31 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, ...} Em meados do século passado o matemático Georges Boole desenvolveu uma teoria matemética das Leis da lógica que não teve grande aplicação na altura. Essa teoria foi redescoberta com o aparecimento dos circuitos electrónicos digitais e é hoje designada correntemente por Álgebra de Boole. Ganhou grande relevância pois verificou-se que as leis que relacionam as proposições lógicas são as mesmas que regem os circuitos de comutação de dois estados, designados por 0 e 1, verdadeiro ou falso, baixo ou alto por influência da teoria lógica. A lógica matemática baseia-se na teoria dos conjuntos e, um meio gráfico de representar as suas propriedades e através dos Diagramas de Venn, no qual o universo é representado por um rectângulo e um dado conjunto P por um circulo no seu interior. O conjunto complementar de P é ~P (lê-se não P). Seja o conjunto Universo o dos números naturais e definamos: P(x) – como o conjunto dos números pares; Q(x) – como o conjunto dos números múltiplos de 3; Arquitectura de Sistemas Computacionais

32 Conjunção, Intersecção ou Produto Lógico
Á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) Disjunção, Reunião ou Soma Lógica q(x) II- p(x) Assim podemos representar no Diagrama de Venn várias funções lógicas baseadas nos conjuntos P(x) e Q(x), definidas a sombreado (laranja se for a cores). Complementação ou Negação Lógica p(x) III- Arquitectura de Sistemas Computacionais

33 CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO
Álgebra de Boole CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO q(x) p(x) I - Conjunto representado pela proposição: Resulta da intersecção dos conjuntos q(x) e p(x). II - Conjunto representado pela proposição: Resulta da intersecção dos conjuntos q(x) e o complementar de p(x). III - Conjunto representado pela proposição: Resulta da intersecção dos conjuntos p(x) e o complementar de q(x). IV - Conjunto representado pela proposição: Resulta da intersecção dos conjuntos complementar de p(x) e complementar de q(x). Arquitectura de Sistemas Computacionais

34 CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.)
Á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: 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 = a  b F V Se por convenção representarmos o conjunto vazio por 0 ou falso e o conjunto universo por 1 ou verdadeiro podemos definir através das expressões a tabela de verdade para a conjunção, produto lógico ou intersecção. Arquitectura de Sistemas Computacionais

35 CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.)
Álgebra de Boole CONJUNÇÃO, INTERSECÇÃO OU PRODUTO LÓGICO (cont.) ESQUEMA DE CONTACTOS ELÉCTRICOS TABELA DE VERDADE TABELA DE VERDADE a b M Aberto Parado Fechado Actuado Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: Aberto; Parado  0 Fechado; Actuado  1 a b M 1 A função intersecção é também conhecida por produto ou função E (AND em inglês). Vejamos um exemplo prático deste circuito: Uma guilhotina eléctrica de corte de papel tem dois interruptores, um de cada lado da máquina, que têm que ser carregados simultaneamente para o motor ser ligado e a guilhotina descer. Os interruptores estão bastante afastados para cada um deles ser actuado por uma mão e garantir que o operador tem as mão ocupadas e portanto a salvo do corte da guilhotina (ver esquema de contactos eléctricos). Como é evidente as entradas são os interruptores a e b. A saída será o motor M que comanda o movimento da guilhotina. Assim podemos dispôr numa tabela todas as possibilidades de combinações dos interruptores (tabela de verdade da esquerda). Verifica-se que quando os interruptores a e b estão fechados é que o motor é actuado, caso contrário está parado. Ao fazermos a correspondência dos estados aberto, parado e fechado, actuado para os estados lógicos 0 e 1 respectivamente obtemos uma nova tabela de verdade (à direita). O nome atribuído a este circuito lógico (AND lógico) provém da sua própria definição, i. é, A saída M é igual a 1 só quando a=1 e b=1. Para representar o circuito lógico AND usa-se a simbologia representada em baixo à direita. Existrem expressões matemáticas para representar as funções lógicas, designadas por equações lógicas ou Booleanas. Assim a porta lógica AND de duas entradas escreve-se em notação booleana: M=a.b FUNÇÃO LÓGICA DA INTERSECÇÃO OU PRODUTO LÓGICO PORTA LÓGICA (AND) Arquitectura de Sistemas Computacionais

36 DIJUNÇÃO, REUNIÃO OU SOMA LÓGICA
Álgebra de Boole DIJUNÇÃO, REUNIÃO OU SOMA LÓGICA ESQUEMA DE CONTACTOS ELÉCTRICOS TABELA DE VERDADE TABELA DE VERDADE a b L P. Fech. L. Desl. P. Aberta L. Ligada Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: P Fech.; L. Desl.  0 P. Aberta; L. Ligada 1 a b S 1 A função reunião é também conhecida por soma ou função OU (OR em inglês). Vejamos a sua implementação mecânica através de um exemplo. Toda a gente sabe que a lâmpada interior de um automóvel acende quando se abre a porta do lado esquerdo ou a do lado direito. O esquema de contactos eléctricos representa através dos interruptores a e b as portas direita e esquerda e a lampâda por L. Assim podemos dispôr numa tabela todas as possibilidades de combinações dos interruptores (tabela de verdade da esquerda). Para efeitos lógicos e simplificação da tabela de verdade fazem-se corresponder aos estados P. Fech. (Porta Fechada) e L. Desl. (Luz Desligada) o estado lógico 0 e P. Aberta (Porta Aberta) e L. Ligada (Luz Ligada) o estado lógico 1, obtendo uma nova tabela de verdade (à direita). O nome atribuído a este circuito lógico (OR lógico) provém da sua própria definição, i. é, A saída M é igual a 1 só quando a=1 ou b=1. Para representar o circuito lógico OR usa-se a simbologia representada em baixo à direita. Existem expressões matemáticas para representar as funções lógicas, designadas por equações lógicas ou Booleanas. Assim a porta lógica OR de duas entradas escreve-se em notação booleana: M=a+b, mas lê-se a ou b. Deve-se ter atenção para não confundir com a operação aritmética de soma!! FUNÇÃO LÓGICA DA REUNIÃO OU SOMA LÓGICA PORTA LÓGICA (OR) Arquitectura de Sistemas Computacionais

37 COMPLEMENTAÇÃO OU NEGAÇÃO LÓGICA
Álgebra de Boole COMPLEMENTAÇÃO OU NEGAÇÃO LÓGICA ESQUEMA DE CONTACTOS ELÉCTRICOS TABELA DE VERDADE TABELA DE VERDADE a S Aberto Ligada Fechado Desligada Para efeitos lógicos e simplificação da tabela faz-se a correspondência dos estados em que: Aberto; Desligada  0 Fechado; Ligada  1 a S 1 FUNÇÃO LÓGICA DA NEGAÇÃO OU INVERSOR LÓGICO A função negação também é conhecida por complementação ou função NÃO (NOT em inglês). Portanto vê-se que S tem sempre o valor oposto de a. Para representar o circuito lógico NOT usa-se a simbologia representada em baixo à direita. Existem expressões matemáticas para representar as funções lógicas, designadas por equações lógicas ou Booleanas. Assim a porta lógica NOT de duas entradas escreve-se em notação booleana: S=~a, e lê-se não a ou a negado. PORTA LÓGICA (NOT) Arquitectura de Sistemas Computacionais

38 OUTRAS FUNÇÕES BÁSICAS IMPORTANTES
Álgebra de Boole OUTRAS FUNÇÕES BÁSICAS IMPORTANTES Denominação Tabela Função Porta Lógica NAND a b S 1 NOR EXOR (exclusive OR) EXNOR (exclusive NOR) Arquitectura de Sistemas Computacionais

39 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. A Álgebra de Comutação não é mais que uma aplicação da Álgebra de Boole aos circuitos lógicos. 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...). As expressões ou equações da Álgebra de Boole, embora apresentem algumas diferenças em relação à Álgebra Clássica compartilham de muitas propriedades, tais como: Propriedade Comutativa. Propriedade Associativa. Propriedade Distributiva. Uma das diferenças mais salientes em relação à Álgebra Clássica, é não ser possível passar termos de um membro para o outro de uma equação. Arquitectura de Sistemas Computacionais

40 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 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. Regras gerais de simplificação ou Leis de Absorção. Arquitectura de Sistemas Computacionais

41 EXPRESSÕES SÓ COM CONSTANTES
Álgebra de Boole EXPRESSÕES SÓ COM CONSTANTES Constantes da Álgebra de Boole: ‘0’ e ‘1’ Função AND: Função OR: Na Álgebra de Boole só existem duas constantes: o “zero” e o “um”. Função NOT: Arquitectura de Sistemas Computacionais

42 EXPRESSÕES COM UMA CONSTANTE E UMA VARIÁVEL
Álgebra de Boole EXPRESSÕES COM UMA CONSTANTE E UMA VARIÁVEL Função AND: Função OR: Arquitectura de Sistemas Computacionais

43 EXPRESSÕES COM MAIS DE UMA VARIÁVEL
Álgebra de Boole DUPLA NEGAÇÃO EXPRESSÕES COM MAIS DE UMA VARIÁVEL Propriedade Comutativa: Propriedade Associativa: Propriedade Distributiva: Expressões com mais de uma variável: As regras básicas de cálculo são as seguintes: comutativa, associativa, distributiva e princípio da dualidade ou Leis de De Morgan. As propriedades comutativa, associativa e distributiva podem demonstrar-se de um modo praticamente igual ao da álgebra clássica. O princípio da dualidade ou Leis de De Morgan pode demonstrar-se por comparação entre as tabelas de verdade da conjunção e da disjunção, ou através dos Diagramas de Venn. A propriedade distributiva tem grande importância para a transformação e simplificação de expressões. - em relação à multiplicação - em relação à Soma Arquitectura de Sistemas Computacionais

44 EXPRESSÕES COM MAIS DE UMA VARIÁVEL (cont.)
Álgebra de Boole EXPRESSÕES COM MAIS DE UMA VARIÁVEL (cont.) Princípio da dualidade ou Lei de De Morgan: ou com 3 variáveis, 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. O princípio da dualidade permite transformar conjunções em disjunções e vice-versa. Este princípio consiste em que a negação de um produto lógico (conjunção) é equivalente à soma lógica (disjunção) dos termos negados ou que a negação de uma soma lógica é equivalente ao produto lógico dos termos negados. Arquitectura de Sistemas Computacionais

45 REGRAS GERAIS DA SIMPLIFICAÇÃO OU LEIS DE ABSORÇÃO
Álgebra de Boole REGRAS GERAIS DA SIMPLIFICAÇÃO OU LEIS DE ABSORÇÃO 1ª Regra: 2ª Regra: 3ª Regra: Tente Demonstrar... EXERCÍCIO: Simplifique a seguinte expressão lógica: Arquitectura de Sistemas Computacionais

46 FORMA CANÓNICA DE UMA FUNÇÃO BOOLEANA
Á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: 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). Chama-se forma canónica 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. São exemplos de formas canónicas as seguintes funções: S1=a.b.~c+a.~b.~c+~a.~b.~c S2=(a+b+~c).(a+~b+~c).(~a+~b+~c) 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). Toda a função pode ser escrita na sua forma canónica realizando as devidas transformações. Arquitectura de Sistemas Computacionais

47 FUNÇÃO LÓGICA A PARTIR DA TABELA DE VERDADE
Álgebra de Boole FUNÇÃO LÓGICA A PARTIR DA TABELA DE VERDADE Seja definida pela tabela de verdade: a b c f 1 O processo lógico começa geralmente por representar a tabela de verdade, assumindo a função os valores desejados para cada combinação das variáveis de entrada. A partir da tabela é possível obter a função na forma canónica em qualquer das suas duas modalidades. A primeira forma canónica obtém-se somando todos os produtos lógicos que dão à função o valor 1. A segunda forma canónica obtém-se multiplicando todas as somas lógicas que dão à função o valor 0. Para representar a primeira forma canónica da função, devemos deter-nos nos pontos onde o valor da função é 1. O número de termos da expressão será igual ao número de 1’s que figuram na coluna correspondente à função de saída. As variáveis aparecem nos termos de forma negada quando o seu valor é 0, já que para que um termo seja 1 lógico é preciso que cada um dos factores que o formam seja também 1. Para representar a segunda forma canónica da função, devemos deter-nos nos pontos onde o valor da função é 0. O número de termos será igual ao número de 0’s que figuram na coluna correspondente à função de saída. As variáveis aparecem nos termos de forma negada quando o seu valor é 1. O valor da primeira e segunda forma canónicas obtido de uma mesma tabela de verdade é o mesmo (demonstre!!). Não é assim necessário representar as duas formas, mas aquela que apresente menos termos. Arquitectura de Sistemas Computacionais

48 Á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: 1 1 2 3 Mapa de três entradas: 00 01 11 10 1 00 01 11 10 1 3 2 4 5 7 6 Arquitectura de Sistemas Computacionais

49 MAPAS DE kARNAUGH (cont.)
Álgebra de Boole MAPAS DE kARNAUGH (cont.) Mapa de quatro entradas: 00 01 11 10 00 01 11 10 1 3 2 4 5 7 6 12 13 15 14 8 9 Mapa de cinco entradas: * - Posições adjacentes. - Posições adjacentes. + - Posições adjacentes. 00 01 11 10 * + 00 01 11 10 * + Elementos em posições correspondentes, mas em quadros diferentes, são adjacentes. Arquitectura de Sistemas Computacionais

50 MAPAS DE kARNAUGH (APLICAÇÃO)
Álgebra de Boole MAPAS DE kARNAUGH (APLICAÇÃO) Tabela de Verdade Dada a seguinte função: d c b a F 1 4 variáveis  24 = 16 quadriculas É prática comum envolver com um laço os 1s adjacentes; Apenas é possível efectuar agrupamentos com um nº de células igual a uma potência de 2 00 01 11 10 1 Uma função Booleana, expressa como soma de mintermos, especifica as condições que levam a função a ser igual a 1. Para compreender a utilidade dos mapas na simplificação de funções, teremos as propriedades das células adjacentes. Quaisquer duas quadrículas adjacentes num mapa diferem apenas de uma variável. A soma de dois mintermos em quadrículas adjacentes pode ser simplificada através da operação AND. É prática corrente envolver com um rectângulo (laço) os 1’s adjacentes. Apenas é possível efectuar agrupamentos com um número de células igual a uma potência de 2. Assim, só poderemos agrupar 2, 4, 8, 16, …etc. 1’s. Uma função booleana, expressa como soma de mintermos, especifica as condições que levam a função a ser igual a 1. Para os restantes mintermos a função vale 0. Nota: O conceito de Don´t care conditions será abordado mais tarde. Arquitectura de Sistemas Computacionais

51 REALIZAÇÃO DE FUNÇÕES (com circuitos lógicos)
Álgebra de Boole REALIZAÇÃO DE FUNÇÕES (com circuitos lógicos) FUNÇÕES NAND E NOR COMO FUNÇÕES UNIVERSAIS FUNÇÃO PORTA NAND PORTA NOR INVERSOR AND OR IMPLEMENTAÇÃO DO XOR COM PORTAS UNIVERSAIS , com portas NOR , com portas NAND Arquitectura de Sistemas Computacionais

52 ETAPAS PARA A SOLUÇÃO DE UM PROBLEMA
Á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

53 “SELECÇÃO PARA INGRESSO EM EMPRESA”
Á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

54 SOLUÇÃO: a - Possuir título académico.
Álgebra de Boole SOLUÇÃO: 2. Tabela de Verdade: a b c F 1 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: 4. Simplificação da função: 00 01 11 10 1 6. Circuito lógico: 5. Conversão em NANDs: Arquitectura de Sistemas Computacionais

55 4 Aspectos Tecnológicos Arquitectura de Sistemas Computacionais

56 FAMÍLIAS LÓGICAS Escalas de integração:
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 A tecnologia associada ao fabrico dos circuitos integrados (CI’s) digitais tem vindo a desenvolver-se a partir da década de 60, possibilitando a implementação de um número cada vez maior de componentes numa pastilha de silício. Os primeiros CI’s foram lançados no mercado em 1958 e a família lógica TTL surgiu em 1964 como produto standard. O número de elementos activos que é possível integrar num único circuito tem decuplicado de cinco em cinco anos. Definem-se presentemente quatro 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

57 FAMÍLIAS LÓGICAS (cont.)
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. O termo família denota um conjunto de CI’s que guardam entre si compatibilidade de interligação e semelhanças na estrutura básica e características. Conforme a especificidade dos objectivos a satisfazer, o projectista de sistemas digitais terá que decidir qual a tecnologia (ou família lógica) dos CI’s que deverá adoptar. Famílias Lógicas: Entre a grande variedade de famílias lógicas, as que vão ser objecto de estudo são as TTL e CMOS. 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

58 CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (1)
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 tPHL Saída VOH 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. Um elemento lógico complexo com múltiplas entradas e saídas pode originar diferentes valores de tempo de atraso de propagação (tp) dependendo do caminho que o sinal seguir. Também diferentes valores de tp podem ser especificados dependendo do estado para o qual a saída comuta. A figura mostra dois tempos de atraso de propagação diferentes para a entrada/saída do sinal num inversor CMOS, dependendo do sentido em que a saída comuta. tPHL – (time propagation high to low), e é o atraso entre a entrada e a saída, quando a onda de saída varia do nível HIGH para o nível LOW. tPLH – (time propagation low to high), e é o atraso entre a entrada e a saída, quando a onda de saída varia do nível LOW para o nível HIGH. Vários factores levam a que este tempo de atraso de propagação não seja nulo. Por exemplo, no dispositivos CMOS o ritmo a que os transistores mudam de estado é influenciado pelas características dos semicondutores e do circuito em si, incluindo o ritmo de transição do sinal de entrada, a capacidade de entrada e carga de saída. Ainda, dispositivos de múltiplos andares tais como portas não inversoras ou funções lógicas mais complexas necessitam que muitos transistores internamente alterem o seu estado antes de produzirem uma mudança na saída. Outra fonte de atrasos consiste no tempo de subida (rise time) e descida (fall time) quando ocorre a transição, levando algum tempo a atravessar a região entre estados. Todos este factores estão incluídos no tempo de atraso de propagação. Ainda relativamente ao último factor, os fabricantes especificam esse tempo como sendo medido entre os pontos médios na transição da entrada e da saída (como se pode verificar pela figura), de modo a minimizá-los. VOL tPHL tPLH Arquitectura de Sistemas Computacionais

59 CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (2)
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)): 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. Exemplo: Porta NAND TTL, ICCH=4mA e ICCL=12mA ICC=8mA, obtemos assim uma potência dissipada de: PD=40mW. Um CI com 4 portas NAND dissipa uma potência total de 160mW. FAN-OUT: O FAN-OUT de uma porta 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. Expressa-se por um número e determina-se pelo quociente entre a corrente disponível numa saída de uma porta e a corrente necessária na entrada de cada porta. Note-se que quando uma saída está no nível ALTO, fornece corrente às entradas das portas a que está ligada e, quando está no nível BAIXO, terá que receber intensidade de corrente. O valor do FAN-OUT é determinado pelo quociente de: Arquitectura de Sistemas Computacionais

60 CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (3)
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). Nível Lógico 1 Margem de Ruído Zona Ambígua Nível Lógico 0 Nível Lógico 1 Margem de Ruído Zona Ambígua Nível Lógico 0 MARGEM DE RUÍDO: Constitui uma margem de segurança do utilizador, para eventual ruído captado no percurso entre a saída da porta excitadora e a entrada da porta excitada. É dado pela diferença entre VOHmin-VIHmin (margem de ruído ao nível lógico 1) e entre VILmáx-VOLmáx (margem de ruído ao nível lógico 0). Margens de ruído TTL – 0,4V. Margens de ruído CMOS – 1,4V (VOHmin = 4,9V; VIHmin = 3,5V; VOLmáx = 0,1V; VILmáx = 1,5V) 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 x Potência consumida Desta forma quanto menor fôr o valor obtido, tanto melhor é o produto!! Margens de Ruído em TTL Margens de Ruído em CMOS Arquitectura de Sistemas Computacionais

61 CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (4)
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: VOHmin – 2,4/2,7 V VIHmin – 2 V VILmáx – 0,8 V VOLmáx – 0,4/0,5 V Níveis típicos para CMOS: VOHmin – 4,9 V VIHmin – 70% de Vcc VILmáx – 30% de Vcc VOLmáx – 0,1 V Arquitectura de Sistemas Computacionais

62 CARACTERÍSTICAS DAS FAMÍLIAS LÓGICAS (5)
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: Desta forma quanto menor fôr o valor obtido, tanto melhor é o produto! Arquitectura de Sistemas Computacionais

63 FAMÍLIA TTL (TRANSISTOR TRANSISTOR LOGIC)
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 A família TTL é sem dúvida a família mais popular em aplicações SSI e MSI. A porta básica consiste numa porta NAND. Surgem no mercado em duas versões, a militar, marcada por 54, que opera na gama de temperatura de –55ºC e +125ºC, e a comercial, marcada por 74 e que opera na gama de temperaturas de 0ºC e 70ºC. Este sufixo é 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. Como príncipais características, possui grande imunidade ao ruído e rapidez. 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

64 CARACTERÍSTICAS DA PERFORMANCE DA FAMÍLIA TTL (1)
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

65 Potência por porta (mW)
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 12 Com o avanço da tecnologia esta família foi-se desdobrando em várias séries que diferem entre si quanto à velocidade de operação e potência consumida por porta. O termo “série” denota, dentro da mesma família, variantes da estrutura básica e de características. Arquitectura de Sistemas Computacionais

66 SAÍDAS TTL EM OPEN COLLECTOR
Aspectos Tecnológicos SAÍDAS TTL EM OPEN COLLECTOR 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’. 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

67 FAMÍLIA CMOS (COMPLEMENTARY METAL OXIDE SEMICONDUCTOR)
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) A designação desta família por CMOS, deve-se ao facto do uso de tansístores MOSFET de canal N e canal P, daí o termo complemetary. Comparativamente com a família TTL possui (família) uma maior facilidade de construção, ocupa menos espaço, consome menos potência, o que a torna ideal em aplicações em equipamentos portáteis e possui um nível mais alto de imunidade ao ruído. Se ainda não se substuiu por completo os circuitos TTL, isso deve-se à sua baixa velocidade de operação. No entanto, as mais recentes séries CMOS de alta velocidade competem com os circuitos das séries 74 e 74LS. Arquitectura de Sistemas Computacionais

68 FAMÍLIA CMOS (cont.) CMOS 4000A/4000B 74C
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”. 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. Existem hoje ainda funções nesta série que não dispõem de equivalentes nas mais recentes. 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

69 FAMÍLIA CMOS (cont.) 74HC (High Speed CMOS)
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) 74HC (High Speed CMOS) Como refere o próprio nome, a principal característica consiste na elevada velocidade de comutação. São compatíveis com os circuitos TTL 74LS, mas não na totalidade. Assim, enquanto que os níveis de saída de um circuito HC são compatíveis com os níveis LS, o contrário não se verifica. Se ligássemos as saídas de um circuito LS a um HC, a saída do HC seria um estado indeterminado. 74HCT (High Speed CMOS–TTL compatible) É ainda uma série CMOS de elevada velocidade. Possui uma total compatibilidade de níveis de tensão com os circuitos TTL. São circuitos com gate de silício o que, aliado aos restantes aspectos construtivos, dota esta série de elevadas qualificações, de que se realça o facto de uma única saída poder alimentar, pelo menos, 10 cargas TTL LS. As características destes circuitos são compatíveis com a série LS, mas com muito menor consumo de potência. 74AC e 74ACT (Advanced CMOS e Advanced CMOS–TTL Compatible) São as mais recentes inovações dos circuitos CMOS. Os transístores de saída podem fornecer ou receber 24mA com tempos de propagação na ordem dos 5ns. Hoje já se obtém tempos de propagação típicos na ordem dos 3ns, comparáveis aos dos circuitos TTL da série 74 ALS. 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

70 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

71 LIGAÇÕES ENTRE FAMÍLIAS LÓGICAS
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 TTL Parâmetro 4000B 74HC 74HCT 74 74LS 74AS 74ALS VIH(min) (V) 3,5 2,0 VIL(máx) (V) 1,5 1,0 0,8 VOH(min) (V) 4,95 4,9 2,4 2,7 VOL(máx) (V) 0,05 0,1 0,4 0,5 IIH(máx) (A) 1 40 20 200 IIL(máx) (A) 1600 400 2000 100 IOH(máx) (mA) 4 2 IOL(máx) (mA) 16 8 Quando os circuitos de duas famílias lógicas forem ligados, os níveis alto e baixo do circuito driver (fornece) devem estar contidos nos níveis alto e baixo do circuito, que funciona como carga (recebe); se tal não acontecer são necessários deslocadores de nível. Se as correntes máximas fornecidadas pelo circuito driver (fornece) excederem as correntes do circuito que funciona como carga (recebe), as duas famílias podem ser ligadas; se tal não suceder, são necessários buffers para se obter a necessária amplificação de corrente. Arquitectura de Sistemas Computacionais

72 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. Da tabela anterior podemos verificar que a tensão de saída do CMOS (VOH), satisfaz os níveis 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. Portanto não é necessário qualquer cuidado para efectuar a ligação CMOS – TTL, no estado alto. Exemplo de ligação Arquitectura de Sistemas Computacionais

73 LIGAÇÃO CMOS – TTL (cont.)
Aspectos Tecnológicos LIGAÇÃO CMOS – TTL (cont.) No estado baixo os circuitos TTL exigem uma entrada relativamente alta que varia de 100A 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. Constata-se da tabela que os circuitos TTL exigem uma entrada relativamente alta no estado baixo, que varia de 100A 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 teriamos que optar por recorrer a um buffer. O buffer pode ser outro CMOS, tal como o 74HC ou o 74HCT. Arquitectura de Sistemas Computacionais

74 LIGAÇÃO CMOS – TTL (cont.)
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. 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. Arquitectura de Sistemas Computacionais

75 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. 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”. O valor dessa resistência de “pull-up” deverá ser tal que: Dos valores típicos de corrente, constata-se que não existe qualquer problema nestes valores necessários ao funcionamento dos circuitos CMOS, pois estes valores de entrada são significativamente inferiores aos que as saídas TTL possibilitam. No entanto, relativamente à 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. 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”. Outro problema surge quando se pretende efectuar o interface com circuitos CMOS operando com tensões elevadas. Um dos métodos de se conseguir os níveis exigidos é o uso de um circuito (p.e. 7407) colector aberto (Open Collector), que dispõe de uma saída com gama de variação de tensão de 30V. Arquitectura de Sistemas Computacionais

76 5 Circuitos Combinacionais Arquitectura de Sistemas Computacionais

77 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 Como vimos, para representar um número decimalem binário temos que utilizar um conjunto de dígitos zero (0) e um (1); isso tem origem na linguagem natural dos componentes de dois estados físicos que constituem os circuitos dos dispositivos electrónicos digitais. Estes só permitem a construção de números com esses dois dígitos, traduzindo os seus dois estados possíveis. Todavia, não é por vezes prático o processamento dos números representados no sistema binário puro, devido a conduzirem a um conjunto de dígitos que não têm uma conversão directa para o sistema decimal normalmente utilizado pelo Homem. Por outro lado, a necessidade de armazenar na memória dos dispositivos outros caracteres que não sejam números, como por exemplo, letras ou outros símbolos gráficos, levou à utilização de códigos que embora baseados no sistema binário, permitem representar nuns casos os caracteres ou símbolos que não sejam numéricos, e noutros, os números, mas de uma maneira fácil de converter para decimal. Em conclusão, podemos referir que todos os códigos possuem uma característica comum: baseiam-se fundamentalmente no Sistema Binário, i. é., utilizam apenas dois dígitos – zero (0) e um (1) – embora agrupados de maneira diferente, conforme o tipo de código. Existem dois tipos de códigos: os numéricos que só permitem a representação de caracteres ou símbolos numéricos e alfanuméricos que permitem a representação de caracteres numéricos e outros, tais como letras, símbolos gráficos e caracteres especiais. Arquitectura de Sistemas Computacionais

78 CÓDIGOS (2) Códigos a estudar: Alfanuméricos: Numéricos: BCD; BCDXS3;
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

79 Palavras de Código não usadas
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 2421 BCD XS-3 Biquinário 1 out of 10 0000 0011 1 0001 0100 2 0010 0101 3 0110 4 0111 5 1011 1000 6 1100 1001 7 1101 1010 8 1110 9 1111 Palavras de Código não usadas 10 11 Arquitectura de Sistemas Computacionais

80 CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(1)
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: 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. Para passar um número decimal para binário, utilizamos o método das divisões sucessivas, o que implica uma operação demorada. O código BCD é denominado de BCD Natural, NBCD ou BCD8421, quando a conversão de cada dígito decimal para binário é directa,i. é., os pesos utilizados têm a sequência normal das potências de 2: Os códigos BCD não Naturais ou de Quatro Bits Ponderados os pesos dos diferentes bits já não tem a mesma sequência das potências de 2. Estes códigos são usualmente utilizados para facilitar operações que utilizem complemento. Como estes tipos de códigos permitem representar o mesmo dígito decimal de diferentes formas, essa forma depende da escolha prévia por parte do utilizador, i. é., no código BCD4421 o valor decimal 4 pode ser representado de duas formas: 0100 ou 1000). Códigos Autocomplementares Alguns dos 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. Este tipo de códigos designam-se de códigos AUTOCOMPLEMENTARES. (p.e., no código BCD2421 o número decimal 924(10) = (BCD2421) o seu complemento a 9 é (BCD2421) = 075(10) que corresponde na realidade ao complemento a 9 de 924(10) = 999(10)-924(10) = 075(10)). Códigos Ponderados: (Os com * são AUTOCOMPLEMENTARES) 2421*, 4321, 5221, 5421, 6321, 7421, 3321*, 4421, 5311, 6221, 6421, 4311*, 5211*, 5321, 6311, 7321, 8421(NBCD) Arquitectura de Sistemas Computacionais

81 CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(2)
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* * * 5211* (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

82 CÓDIGO BCD OU DECIMAL CODIFICADO EM BINÁRIO(3)
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

83 CÓDIGO GRAY (CÓDIGO REFLECTIDO) (1)
Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (1) Arquitectura de Sistemas Computacionais

84 CÓDIGO GRAY (CÓDIGO REFLECTIDO) (2)
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; Código GRAY: Trata-se de um código Cíclico ou Progressivo. Esta propriedade dos códigos consiste em que para passar de um dígito para o seguinte, basta mudar o valor de um único bit. Não é um código autocomplementar. Quando se pretender usar o código GRAY com essa característica recorre-se ao XS-3 GRAY, com a particularidade de para se obter o complemento a 9 bastar mudar o bit mais significativo (o bit mais à esquerda). A forma de construir este código consiste em espelhá-lo diversas vezes. A primeira coluna compreende, inicialmente, os valores 0 e 1 para os dígitos 0 e 1 decimais. Ao espelhar estes valores vamos obter para os dígitos 2 e 3 os valores 1 e 0 (correspondendo a 0 e 1 reflectidos). A esquerda dos dígitos reflectidos colocamos 1’s, enquanto que à esquerda dos dígitos a reflectir colocamos 0’s, obtendo desta forma os valores: 00, 01, 11 e 10. O processo a partir daqui é análogo. Arquitectura de Sistemas Computacionais

85 CÓDIGO GRAY (CÓDIGO REFLECTIDO) (3)
Circuitos Combinacionais CÓDIGO GRAY (CÓDIGO REFLECTIDO) (3) Exemplo do método 2: Binário GRAY 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. bit 0 bit 1 bit 2 Arquitectura de Sistemas Computacionais

86 CÓDIGO GRAY (CÓDIGO REFLECTIDO) (4)
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 0000 0010 1 0001 0110 2 0011 0111 3 0101 4 0100 5 1100 6 1101 7 1111 8 1110 9 1010 Arquitectura de Sistemas Computacionais

87 CÓDIGO JOHNSON A sequência de procedimentos consiste: DECIMAL JOHNSON
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 0000 1 0001 2 0011 3 0111 4 1111 5 1110 6 1100 7 1000 A sequência de procedimentos consiste em 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. Código Johnson de 4 bits Arquitectura de Sistemas Computacionais

88 CÓDIGOS BCO E BCH BCO – Binary Coded Octal
Circuitos Combinacionais CÓDIGOS BCO E BCH DECIMAL BCO BCH 1 2 3 4 5 6 7 8 ... 16 17 31 32 BCO – Binary Coded Octal BCH – Binary Coded Hexadecimal Arquitectura de Sistemas Computacionais

89 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 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 E9 ) 29 5D @ 40 Blank 20 ; 3B 5E 27 7D . 2E 4B _ 2D 60 = 3D 7E ( 28 4D / EF 61 22 7F + 2B 4E , 2C 6B < 3C 4C Os códigos alfanuméricos mais usados são: ASCII (American Standard Code for Information Interchange) – código de 7 bits utilizado em comunicações gráficas o com o computador. EBCDIC – (Extended Binary Coded Decimal Interchange Code) – Este código de 8 bits é utilizado em computadores. Arquitectura de Sistemas Computacionais

90 CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (1)
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. Normalmente para qualquer tipo de código BCD, como os que vimos até agora, a detecção de erros faz-se pelo método das Paridades Longitudinais ou das Paridades Transversais. Os erros podem surgir devido a anomalias no equipamento ou na transmissão dos caracteres, p. e., através das linhas. 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. Na Paridade Longitudinal o acréscimo de um 1 ou um 0 é feita na horizontal. 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

91 CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (2)
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

92 CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (3)
Circuitos Combinacionais CORRECÇÃO DE ERROS ATRAVÉS DE BITS DE PARIDADE (3) EXEMPLO: Suponhamos um número decimal, p. e , 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 1 3 7 6 5 2 4 Arquitectura de Sistemas Computacionais

93 CIRCUITOS COMBINATÓRIOS (1)
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. Estes 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: - Comparadores. - Geradores de bit de paridade. - Conversores. - Descodificadores. - Adicionadores. - Subtractores. Arquitectura de Sistemas Computacionais

94 CIRCUITOS COMBINATÓRIOS (2)
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). a b S = a  b S’ = a  b 1 Exclusive-OR CI 74x86 Arquitectura de Sistemas Computacionais

95 CIRCUITOS COMBINATÓRIOS (3)
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): 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

96 CIRCUITOS COMBINATÓRIOS (4)
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. Gerador Detector Arquitectura de Sistemas Computacionais

97 CIRCUITOS COMBINATÓRIOS (5)
Circuitos Combinacionais CIRCUITOS COMBINATÓRIOS (5) Circuito Comparador Circuito Comparador de 2 bits, a0 e b0: Circuito Comparador de 2 números digitais de 4 bits, A = a0 a1 a2 a3 e B = b0 b1 b2 b3: Para compararmos dois bits necessitamos de um circuito que seja 1 sempre que as entradas forem iguais entre si. Para tal basta construirmos um circuito que possua um EXOR e um inversor. Da mesma forma se obtém um circuito comparador para dois números de 4 bits cada um. Para tal basta-nos usar quatro implementações do circuito anterior e ligar todas as saídas a uma porta AND. Uma solução alternativa, de modo a minimizar o número de portas a usar, consiste em aplicar as Leis de De Morgan à parte do circuito que contém os inversores e a porta AND. Obtendo-se assim uma porta NOR. Neste circuito verifica-se que a saída S só será 1 quando todas as entradas forem iguais duas a duas, i. é., quando os dígitos do mesmo peso dos dois números forem iguais (0’s ou 1’s). Comparador 4-Bit CI 74x85 Arquitectura de Sistemas Computacionais

98 CIRCUITOS COMBINATÓRIOS (6)
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). Para a implementação de um circuito gerador de bit de paridade, vamos-nos basear no princípio de funcionamento do circuito XOR, por este nos permitir obter directamente o bit de paridade par num grupo de dois bits. Efectivamente, neste circuito, a saída é igual ao bit de paridade par dos bits de entrada (se pretender-mos paridade ímpar basta inverter o XOR). Da análise da Tabela da Verdade do XOR verificamos que 2 das 4 combinações são 1’s, i. é., correspondem a um bit de paridade par. O facto de serem exactamente metade das combinações é geral. Desta forma o número de XOR’s necessários para a implementação de um gerador genérico é determinado pela expressão: (nº de possibilidades com saída igual a um) = 2(nº de XOR’s) Podemos referir que como regra geral o número de XOR’s necessários para um gerador é inferior em uma unidade ao número de bits do número para o qual se pretende obter o bit de paridade. Arquitectura de Sistemas Computacionais

99 CIRCUITOS COMBINATÓRIOS (7)
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). Da tabela resulta: Símbolo Lógico: a b S Cout 1 Diagrama Lógico: Quando a saída S é 0, as saídas de X e Y são iguais o que corresponde à não existência de erros na linha. Se a saída S é 1 então os sinais nas saídas X e Y são diferentes, ou seja, houve deturpação da informação. Arquitectura de Sistemas Computacionais

100 CIRCUITOS COMBINATÓRIOS (8)
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). Da tabela resulta: Símbolo Lógico: a b cin S Cout 1 Diagrama Lógico: Arquitectura de Sistemas Computacionais

101 CIRCUITOS COMBINATÓRIOS (9)
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. Arquitectura de Sistemas Computacionais

102 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 Estes circuitos têm por objectivo converter códigos. Desta forma o circuito que realiza esta conversão é designado de Conversor. O código de origem representa as entradas do circuito e o código de destino representa as saídas do mesmo, representados numa tabela de verdade. Os mapas de Karnaugh podem/são usados para obter as expressões mínimas das somas de produtos ou produtos de somas que por sua vez são usadas para implementar o diagrama lógico do conversor. Diagrama Lógico Conversor Arquitectura de Sistemas Computacionais

103 CONVERSORES (2) Exemplo
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 1 2 3 4 5 6 7 8 9 2. Dos mapas de Karnaugh obtêm-se as expressões: Arquitectura de Sistemas Computacionais

104 CONVERSORES (3) Exemplo (cont.) 3. Implementação do Diagrama Lógico
Circuitos Combinacionais CONVERSORES (3) Exemplo (cont.) 3. Implementação do Diagrama Lógico Arquitectura de Sistemas Computacionais

105 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 Palavra de código de entrada DESCODIFICADOR m Palavra de código de saída Descodificador de n para m linhas (objecto de estudo) onde: p Entradas de Enable Arquitectura de Sistemas Computacionais

106 Descodificador de 2 para 4 (lógica positiva)
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 Saídas EN I1 I2 Y3 Y2 Y1 Y0 x 1 Descodificador de 2 para 4 (lógica positiva) Arquitectura de Sistemas Computacionais

107 DESCODIFICADORES (3) Descodificadores Binários: (cont.)
Circuitos Combinacionais DESCODIFICADORES (3) Descodificadores Binários: (cont.) Diagrama Lógico (lógica positiva) Símbolo Lógico (lógica negativa) Descodificador duplo de 2 para 4 CI 74x139 Arquitectura de Sistemas Computacionais

108 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 x Descodificador 3 para 8 CI 74x138 Arquitectura de Sistemas Computacionais

109 Circuitos Combinacionais
DESCODIFICADORES (5) Circuito Lógico do descodificador binário – octal (lógica negativa) Arquitectura de Sistemas Computacionais

110 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

111 DESCODIFICADORES (7) DESCODIFICADORES LIGADOS EM CASCATA (exemplo)
Circuitos Combinacionais DESCODIFICADORES (7) DESCODIFICADORES LIGADOS EM CASCATA (exemplo) Arquitectura de Sistemas Computacionais

112 DESCODIFICADORES (8) APLICAÇÃO EM CIRCUITOS COMBINACIONAIS (exemplo)
Implementar, com um descodificador 74x138, o circuito correspondente à função: Implementação – Diagrama Lógico Arquitectura de Sistemas Computacionais

113 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: 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 Tabela de Verdade do codificador octal-binário 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 caracteres. O número de bits m necessários na saída do codificador tem que satisfazer a seguinte relação. 2m  n. O EXEMPLO de um codificador octal-binário é representado pela tabela de verdade que possui 8 entradas, uma por cada um dos 8 dígitos octais e três saídas que irão gerar os correspondentes números binários. Presume-se que em dado momento apenas uma das entradas está a 1, caso contrário o circuito não funcionaria convenientemente e não teria significado. Arquitectura de Sistemas Computacionais

114 Circuitos Combinacionais
CODIFICADORES (2) EXEMPLO: Implementação de um codificador OCTAL – BINÁRIO (cont.) Equações Lógicas Este codificador pode ser implementado com portas OR cujas entradas são determinadas directamente a partir da tabela de verdade. Desta forma a saída A será será igual a 1 quando os dígitos octais 4, 5, 6 e 7 estiverem activos. O procedimento é igual para as outras saídas. Como foi referido anteriormente, este codificador apresenta a limitação de apenas permitir que num determinado instante uma das entradas esteja activa. Se tivermos mais do que uma entrada activada, na saída teremos uma combinação indefinida. Para se ultrapassar esta dificuldade, muitos codificadores estabelecem uma prioridade para as entradas de ordem mais alta. Outro problema deste codificador é o de apresentar uma saída 0 quando as entradas estão todas a zero, acontecendo o mesmo quando a entrada D0 é 1. 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

115 CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
Circuitos Combinacionais CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva) Entradas Saídas EN I0 I1 I2 I3 B A IDLE x 1 Tabela de Verdade 00 01 11 10 x 1 00 01 11 10 x 1 00 01 11 10 1 Um codificador de prioridade é um circuito codificador que ínclui a função de prioridade. O funcionamento de prioridade é tal que, se duas ou mais entradas forem simultaneamente iguais a 1, a entrada que tiver mais alta prioridade terá preferência. Arquitectura de Sistemas Computacionais

116 CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE
Circuitos Combinacionais CODIFICADORES (3) - CODIFICADOR DE PRIORIDADE EXEMPLO: Codificador de Prioridade de 4 bits (lógica positiva) Diagrama Lógico 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. 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. Se a informação descodificada de n bits tiver combinações não utilizadas ou combinações opcionais, então o descodificador terá menos de 2n saídas. Codificador Prioridade de 8-entradas CI 74x148 Arquitectura de Sistemas Computacionais

117 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.) 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. Os multiplexers podem ser considerados comutadores. A selecção de uma determinada linha é efectuada através de um conjunto de linhas de selecção ou de endereço. digitais que permitem encaminhar as ligações de várias entradas para uma única saída. Genericamente os multiplexers dispõem de n entradas de informação, em que cada entrada pode ter b bits cada, e uma única saída também com b bits. Para além destas, ainda existem as entradas de selecção, s. O número de entradas de selecção depende do número de entradas de informação. A relação entre o número n e s é n=2s. São comercializados integrados que contêm multiplexers com n=1, 2, 4, 8, 16 e b=1, 2 ou 4. A entrada de enable permite activar ou desactivar todas as entradas, permitindo ou impedindo que a informação chegue à saída. Entradas e Saídas do mux. Esquema Funcional do mux. Arquitectura de Sistemas Computacionais

118 MULTIPLEXERS (Implementação)
Circuitos Combinacionais MULTIPLEXERS (Implementação) Tabela de Verdade S Saídas Y = D0 1 Y = D1 Consideremos a implementação de um multiplexer de duas entradas. Para tal necessitamos de apenas uma linha de Selecção que nos permite escolher, entre as duas entradas, aquela que irá ter acesso à saída. As portas AND e os inversores num multiplexer funcionam, no seu conjunto, como um circuito descodificador pois, na realidade, eles descodificam as entradas de selecção. Em geral, um multiplexer de 2s linhas para 1 é implementado a partir de um descodificador de s para 2s, adicionando-lhe 2s linhas de entrada, uma por cada porta AND. As saídas das portas AND são aplicadas a uma única porta OR para providênciar a única linha de saída (Exercício: Implemente um mux 4:1 usando um descodificador para tal). Como foi referido para os descodificadores, também é possível ligar multiplexers em cascata de forma a obtermos multiplexers de mais entradas para uma única saída. Nota: Implemente um circuito multiplexer de 4 para 1 (mux 4:1) Arquitectura de Sistemas Computacionais

119 APLICAÇÕES DOS MULTIPLEXERS
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. Os multiplexers apresentam diversas aplicações, entre as quais destacamos geradores de funções, conversão paralelo-série, geradores de formas de onda e o direccionamento de dados. Iremos abordar unicamente a aplicação como gerador de funções e conversão paralelo-série. 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

120 MULTIPLEXER COMO GERADOR DE FUNÇÕES (exemplo)
Circuitos Combinacionais MULTIPLEXER COMO GERADOR DE FUNÇÕES (exemplo) Tabela de Verdade: a b c F 1 Arquitectura de Sistemas Computacionais

121 MULTIPLEXER COMO GERADOR DE FUNÇÕES (exercícios)
Circuitos Combinacionais MULTIPLEXER COMO GERADOR DE FUNÇÕES (exercícios) 1. Implementar a função utilizando: Um multiplexer de 8:1 onde as variáveis de endereço são D e C. Um multiplexer de 16:1. 2. Implementar a função utilizando: Um multiplexer de 8:1 onde as variáveis de endereço são C, B e A. Um multiplexer de 4:1 onde as variáveis de endereço são C e D. 3. Implementar a função utilizando: Arquitectura de Sistemas Computacionais

122 MULTIPLEXER COMO CONVERSOR PARALELO-SÉRIE (exemplo)
Circuitos Combinacionais MULTIPLEXER COMO CONVERSOR PARALELO-SÉRIE (exemplo) Um grande número de sistemas digitais processa a informação binária de forma paralela dado que assim a transmissão é mais rápida. Quando se pretende que os dados sejam transmitidos a distâncias relativamente longas, este tipo de transmissão pode não ser o mais aconselhado, dado que requer um grande número de linhas de transmissão. Por esta razão a informação paralela é convertida na forma série antes de ser transmitida até um receptor distante. A forma de realizar essa conversão é usar um circuito multiplexer. Arquitectura de Sistemas Computacionais

123 DEMULTIPLEXER Circuitos Combinacionais
O demultiplexer providência a operação inversa do multiplexer. Recebe informação de uma entrada apenas, fazendo a distribuição por várias saídas, previamente seleccionadas. As entradas de endereço ou selecção irão determinar qual das saídas irá receber a informação proveniente da entrada. Arquitectura de Sistemas Computacionais

124 DEMULTIPLEXER ATRAVÉS DE DESCODIFICADORES
Circuitos Combinacionais DEMULTIPLEXER ATRAVÉS DE DESCODIFICADORES Demultiplexer usando o descodificador 74LS138, onde funciona como entrada de informação. Restantes Saídas A constituição de um demultiplexer de 1:8 é basicamente igual à do descodificador de 3 para 8 linhas, tendo apenas que se levar em linha de conta que se irá utilizar uma das entradas de enable para funcionar como entrada de informação. De uma forma geral, os descodificadores podem funcionar como demultiplexers como acontece com o 74LS138. No exemplo do slide a entrada G2A funciona como entrada de informação enquanto que as outras suas duas entradas de enable são colocadas nos seus valores activos. As entradas de selecção são A, B e C. Como se pode verificar a saída Y5 acompanha o valor da entrada G2A 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

125 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: MUX DEMUX Como vimos anteriormente, um multiplexer selecciona uma de várias entradas para a informação ser enviada através de uma saída. Por outro lado o circuito demultiplexer recebe essa informação por uma entrada e encaminha-a por uma de várias saídas, também previamente seleccionada. 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. Arquitectura de Sistemas Computacionais

126 6 Circuitos Sequenciais Arquitectura de Sistemas Computacionais

127 FLIP – FLOPS FLIP – FLOPS
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. Até aqui todos os circuitos baseavam-se em lógica combinatória, i.é, o sinal obtido na saída depende unicamente do valor instantâneo dos diversos sinais de entrada. Vamos agora estudar os circuitos de lógica sequencial, i.é, o sinal de 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. O elemento lógico básico destes circuitos é o Flip-Flop. O Flip-Flop é um circuito bi-estável, i.é, possui dois estados estáveis, passando de um ao outro por acção de sinais exteriores aplicados ao circuito. Este princípio resulta do facto do Flip-Flop ser um circuito memorizador ou armazenador da informação recebida do sinal exterior, a qual se mantém enquanto um sinal exterior não vier substituir a informação armazenada. São os seguintes os tipos de Flip-Flops que vamos estudar: RS. RST (R-S sincronizado ou clocked). D ou LATCH. T ou TOGGLE. J-K. J-K Master-Slave. Arquitectura de Sistemas Computacionais

128 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. Flip-Flop R-S Este Flip-Flop tem duas entradas, S-SET e R-RESET, e duas saídas, Q e o seu complemento, ~Q. Este Flip-Flop pode ser implementado quer com portas NOR quer com portas NAND. No caso de ser implementado com portas NOR o “disparo”, i.é, a mudança de estado ocorre no flanco de subida (ascendente) dos impulsos (Leading Edge Triggered ou Positive Going Inputs ou Positive Edge Triggered). Quando implementado com portas NAND, o “disparo” para a mudança de estado faz-se no flanco negativo (descendente) dos impulsos (Trailing Edge Triggered ou Negative Edge Triggered) e é representado no respectivo símbolo por dois círculos de negação nas entradas S-R. Uma aplicação dos Flip-Flops R-S é o circuito “Contact-Bounce Eliminator” este destina-se a eliminar o efeito transitório na tensão, resultante da acção mecânica do fecho de um comutador que ao vibrar pode fazer e desfazer o contacto várias vezes até estabilizar mecanicamente. Flip-Flop RS com NOR’s e NAND’S Símbolo do Flip-Flop RS Arquitectura de Sistemas Computacionais

129 CONTACT BOUNCE ELIMINATOR
Circuitos Sequenciais CONTACT BOUNCE ELIMINATOR Circuito normal Se o comutador ao passar à posição 2 não fizer um contacto perfeito o sinal entre S e GND irá variar entre 0V e 5V, dependendo da frequência do tempo de vibração. Isto aplicado a um circuito podia trazer-nos problemas. Para evitar tal situação, intercala-se entre o comutador mecânico e o circuito que necessitamos de alimentar um FF RS. Suponhamos que o comutador estava na posição 1 e passava para a posição 2. Enquanto o comutador estiver na posição intermédia os estador Q e ~Q mantêm-se, visto ambas as entradas ficarem a um (atenção que as entradas são negadas!). Quando o comutador atinge a posição 2, Q vai para 1 e ~Q para 0. Se houver o efeito de oscilação mecânica (Bouncing) como o comutador nunca atinge a posição 1 o novo estado vai manter-se porque ficou memorizado pelo FF. Um circuito integrado que contém o FF RS é o 74x279 (quadruple R-S latches). Efeito transitório da tensão Contact-Bounce Eliminator Arquitectura de Sistemas Computacionais

130 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. 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. Flip-Flop RST, implementado com NAND’s Símbolo do Flip-Flop RST Arquitectura de Sistemas Computacionais

131 FLIP–FLOP TIPO D OU LATCH
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. Flip-Flop D 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. Flip-Flop D, com Set e Clear (Reset) Símbolo do Flip-Flop D Arquitectura de Sistemas Computacionais

132 FLIP–FLOP TIPO T OU TOGGLE
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. Este FF tem só uma entrada exterior (T) sendo, as outras, realimentações das saídas de Q e ~Q. Por tal motivo, são necessários dois circuitos de atraso (delay) cuja finalidade é 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 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,... Flip-Flop T Símbolo do Flip-Flop T Arquitectura de Sistemas Computacionais

133 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. 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 à semelhança do que acontecia no toggle. Flip-Flop JK Símbolo do Flip-Flop JK Arquitectura de Sistemas Computacionais

134 FLIP–FLOP JK master-slave
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. 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. Flip-Flop JK master-slave Arquitectura de Sistemas Computacionais

135 FLIP–FLOP RS Princípio de funcionamento:
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! 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! Flip-Flop RS Arquitectura de Sistemas Computacionais

136 Circuitos Sequenciais
FLIP–FLOP RS (cont.) Este princípio de funcionamento traduz-se na seguinte tabela. Casos Saídas Entradas Observações Condições Iniciais Condições Finais Q ~Q R S 1 Não muda 2 3 Muda de Reset para Set 4 Indeterminado 5 6 Muda de Set para Reset 7 8 S R Qn+1 Qn 1 X Tabela Simplificada do FF RS Arquitectura de Sistemas Computacionais

137 Circuitos Sequenciais
FLIP–FLOP RS (cont.) O funcionamento do FF também se pode observar pelo diagrama de impulsos: Nota: O funcionamento do FF é idêntico quando implementado com NAND’s! Arquitectura de Sistemas Computacionais

138 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. Entradas Saídas S R Ck Q ~Q Não actua 1 Indeterminado 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. 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. Como se pode verificar 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. Arquitectura de Sistemas Computacionais

139 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. ENTRADAS SAÍDAS Data Clock Q Não Muda 1 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. Arquitectura de Sistemas Computacionais

140 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. 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, portanto 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. Arquitectura de Sistemas Computacionais

141 FLIP–FLOP D ou LATCH(cont.)
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. Para colmatar essa situação, foi criado dentro do mesmo tipo um circuito mais complexo 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: Partindo das 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 um mas C é agora inibida pela falta de clock, deixando assim a saída do FF no estado de set, sem alteração. Arquitectura de Sistemas Computacionais

142 FLIP–FLOP T ou TOGGLE Funcionamento: Aplicação:
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,... Este FF tem só uma entrada exterior (T) sendo, as outras, realimentações das saídas de Q e ~Q. Por tal motivo, são necessários dois circuitos de atraso (delay) cuja finalidade é evitar que as realimentações mudem de estado enquanto T permanecer no seu estado 1. Funcionamento: Suponhamos que inicialmente o FF está no estado Reset (Q=0 e ~Q=1). Quando 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. 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,... Arquitectura de Sistemas Computacionais

143 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. 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. Arquitectura de Sistemas Computacionais

144 Circuitos Sequenciais
FLIP–FLOP JK Pelo esquema é fácil observar o funcionamento anteriormente descrito: Quando J=0 e K=0 as portas A e B estão bloqueadas (A e B são AND’s!!). Quando J=K=1, as portas A e B estão desbloqueadas, o FF funciona como Toggle e Alterna de estado consoante o clock. 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. Pelo esquema é fácil observar o funcionamento anteriormente descrito: Quando J=0 e K=0 as portas A e B estão bloqueadas (A e B são AND’s!!). Quando J=K=1, as portas A e B estão desbloqueadas, o FF funciona como Toggle e Alterna de estado consoante o clock. 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. Flip-Flop JK Arquitectura de Sistemas Computacionais

145 FLIP–FLOP JK master-slave
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. ENTRADAS SAÍDAS J K Qn+1 Qn 1 ~Qn 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. A razão do nome master-slave resulta de o segundo FF estar condicionado ao primeiro. 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

146 FLIP–FLOP JK master-slave
Circuitos Sequenciais FLIP–FLOP JK master-slave Funcionamento do FF JK master-slave através do diagrama de sinais: 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

147 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. Os contadores são dispositivos digitais que usam o FF como elemento fundamental. Tais circuitos, como já foi atrás referido, são sequenciais porque o seu funcionamento é uma sequência entre os vários estados, i. é, um estado é sempre dependente do anterior. Os circuitos que vão ser objecto de estudo vão ser: Contadores. Divisores de frequência (scalers). Registos de deslocamento (shift registers). 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

148 7 Circuitos Sequenciais Assíncronos
Arquitectura de Sistemas Computacionais

149 CONTADORES ASSÍNCRONOS
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. Contador Assíncrono implementado com FF tipo T 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. As figs. Representam dois contadores assíncronos um implementado com FF do tipo T e o outro com FF do tipo JK. Enquanto que o primeiro responde no flanco ascendente do clock, o segundo responde no flanco descendente. Daí o facto de o que usa FF do tipo T ser contador decrescente e o que usa FF do tipo JK ser contador crescente. Este tipo de contador é também designado por contador de RIPPLE porque tudo se passa como se uma ondulação fosse transmitida de FF para FF ao longo do contador. Contador Assíncrono implementado com FF tipo JK Arquitectura de Sistemas Computacionais

150 CONTADORES ASSÍNCRONOS
Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais dos contadores assíncronos implementados com FF tipo T e FF tipo JK. Diagrama de sinais do contador assíncrono implementado com FF tipo T Pela comparação dos dois diagramas de sinais, apercebemo-nos que qualquer dos contadores conta 8 dígitos, i. é, o primeiro, conta de 7 a 0, e, o segundo, de 0 a 7. Como se pode verificar pelos diagramas de sinais o primeiro FF (A) corresponde ao bit menos significativo e o último FF (C) ao mais significativo. Cada FF do contador representa um bit da contagem. O limite é calculado pelo valor da potência de base 2, sendo o expoente o número o número de FF’s utilizado. Desta forma: 2 FF’s contam até 22=4 (0 a 3). 3 FF’s contam até 23=8 (0 a 7). 4 FF’s contam até 24=16 (0 a 15). n FF’s contam até 2n=N (0 a N-1). O sentido da contagem resulta do tipo de montagem utilizado. Assim no caso de querermos tornar o JK decrescente, bastaria pôr os FF’s a actuarem no flanco ascendente dos impulsos de clock, o que implicava pôr inversores nas entradas de clock de cada FF, ou então, ligar a saída ~Q de cada FF (em vez de Q) ao clock do FF seguinte. Pelo que foi referido até aqui, concluimos que há dois tipos de contadores quanto ao sentido de contagem: Progressivos (Up ou Forward). Regressivos (Down ou Reverse). Diagrama de sinais do contador assíncrono implementado com FF tipo JK Arquitectura de Sistemas Computacionais

151 DESENHO DE CONTADORES ASSÍNCRONOS
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. O processo a seguir para implementar um contador assíncrono é o seguinte: Determinar o número de FF’s a utilizar. Como se viu atrás é igual ao expoente de potência de base 2 que seja imediatamente superior ao limite de contagem. 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. Por exemplo, para um contador de módulo 10: D=1; C=0; B=1; A=0. Então as saídas a ligar serão B e D, fazendo passar esses níveis por um NAND por forma a obter um nível 0 quando B e D forem 1. Nota: Para o desenho de contadores assíncronos, noutros códigos não há regras fixas, por conseguinte, temos que proceder por tentativas. Arquitectura de Sistemas Computacionais

152 DESENHO DE CONTADORES ASSÍNCRONOS
Circuitos Sequenciais Assíncronos DESENHO DE CONTADORES ASSÍNCRONOS Exercícios: Implemente, usando FF’s do tipo JK, um contador assíncrono que faça uma contagem de 0 a 3. Implemente um contador, usando FF’s do tipo JK, um contador assíncrono de módulo 12. Realize os pontos 1 e 2 usando FF’s do tipo T e D: Arquitectura de Sistemas Computacionais

153 8 Circuitos Sequenciais Síncronos
Arquitectura de Sistemas Computacionais

154 CONTADORES SÍNCRONOS CONTADOR SÍNCRONO PROGRESSIVO:
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. Como se pode observar pela fig., o impulso de clock é aplicado simultaneamente às entradas C dos FF’s. Daí este tipo de contadores se designarem por Contadores Síncronos, i. é, os seus FF’s actuam em sincronismo. No caso dos contadores assíncronos, fizeram-se os diagramas de sinais através de uma análise directa do esquema porque era relativamente simples. No caso presente, a análise torna-se mais complexa, o que nos leva a optar por outro 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. As expressões 5 e 6 são a combinação de dois níveis lógicos correspondentes às saídas dos FF’s A e B, o que em lógica combinatória significa um circuito AND nas entradas JC e KC. Essas combinações na prática podem representar-se com ou sem AND. Arquitectura de Sistemas Computacionais

155 Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS Tabela de verdade do funcionamento do contador síncrono progressivo: SAÍDAS ENTRADAS C B A JA KA JB KB JC KC 1 A.B Reset 1º clock 2º clock 3º clock 4º clock 5º clock 6º clock 7º clock 8º clock Método para construção da Tabela de verdade: Dividir a tabela em dois grupos: Entradas e Saídas. Colocar no grupo das entradas, JA, KA, JB, etc, com as respectivas expressões. Nas saídas colocam-se as letras A, B, C relativas às saídas Q dos FF’s. Funcionamento: 1. Um impulso de reset leva as saídas A, B, C a zero. Substituem-se nessa linha os valores lógicos de A, B, C nas expressões de JA, KA, etc... 2. Aplicando um impulso de clock, as saídas vão ou não variar de acordo com o princípio de funcionamento do FF JK, i. é, com os valores das entradas J e K. Desta forma, para o primeiro impulso de clock, sendo JA e KA = 1 a saída A vai mudar de 0 para 1, sendo JB e KB = 0 a saída B não mudará e sendo JC e KC=0, a saída C não mudará. Assim o contador apresentará as saídas seguintes após o primeiro impulso de clock: A = 1, B = 0 e C = 0, o que equivale a 1 na contagem binária, visto o FF A corresponder ao bit menos significativo ou de maior peso. Substituindo os novos valores das saídas nas expressões das entradas, temos JA = KA = 1; JB = KB = A = 1; JC = KC = A.B = 1*0 = 0. 3. O próximo impulso de clock irá encontrar novas condições de entrada e os FF’s comutarão ou não de acordo com estas, e assim sucessivamente. Arquitectura de Sistemas Computacionais

156 CONTADORES ASSÍNCRONOS
Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais do contador Síncrono progressivo: Como se pode verificar pelo diagrama de sinais, trata-se de um contador ascendente ou progrssivo porque conta no sentido directo (forward) ou crescente (up). Diagrama de sinais do contador síncrono progressivo implementado com FF tipo JK Arquitectura de Sistemas Computacionais

157 Contador síncrono regrassivo implementado com FF tipo JK
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: Contador síncrono regrassivo implementado com FF tipo JK Comecemos por escrever as expressões das várias entradas a partir do esquema: Arquitectura de Sistemas Computacionais

158 Circuitos Sequenciais Síncronos
CONTADORES SÍNCRONOS Tabela de verdade do funcionamento do contador síncrono regressivo: SAÍDAS ENTRADAS C B A JA KA JB KB JC KC 1 Reset 1º clock 2º clock 3º clock 4º clock 5º clock 6º clock 7º clock 8º clock Arquitectura de Sistemas Computacionais

159 CONTADORES ASSÍNCRONOS
Circuitos Sequenciais Assíncronos CONTADORES ASSÍNCRONOS Diagrama de sinais do contador Síncrono regressivo: Diagrama de sinais do contador síncrono regressivo implementado com FF tipo JK Um factor a tomar em consideração é que o primeiro FF, i. é, aquele que condiciona inicialmente o funcionamento dos restantes (FF mais à esquerda dos esquemas apresentados até aqui) é o que dá o dígito de menor peso, i. é, o menos significativo. Arquitectura de Sistemas Computacionais

160 CONTADORES SÍNCRONOS CONTADOR SÍNCRONO REVERSÍVEL:
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. O Contador Reversível é um contador que pode contar em sentido crescente ou decrescente. O esquema deste contador parte da mesma base que as anteriores, simplesmente como se pretende que conte nos dois sentidos, tem que levar um artifício que é a linha de Count Direction (Sentido de Contagem) CD. Quando o valor de CD é 0, a contagem é crescente, i. é, no sentido ascendente. Desta forma vai abrir as portas I e III dando as condições necessárias para a contagem crescente, i. é, ligar a saída Q às entradas J e K do FF seguinte. Quando o valor de CD é 1, a contagem é decrescente, i. é, no sentido descendente. Desta forma vai abrir as portas II e IV dando as condições necessárias para a contagem decrescente, i. é, ligar a saída ~Q às entradas J e K do FF seguinte. A tabela mostra que as expressões das entradas dos FF são precisamente iguais às já referidas nos contadores anteriores (progressivo e regressivo). Por exemplo: JB=A.(~CD)+~A.CD. Se CD=0  JB=A. Se CD=1  JB=~A. E assim sucessivamente... Count Direction JB KB JC KC 0 (crescente) A A.B Abre I e III 1 (decrescente) Abre II e IV Arquitectura de Sistemas Computacionais

161 DESENHO DE CONTADORES SÍNCRONOS
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

162 DESENHO DE CONTADORES SÍNCRONOS (cont.)
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 3 1 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 Na coluna do lado direito da tabela de verdade, representa-se para cada linha o estado seguinte das saídas, i. é, ao valor 3 do código BCD-XS3 à esquerda, segue-se na contagem o valor 4 do mesmo código e assim sucessivamente até se voltar de novo ao valor 3 do código, que como se sabe corresponde ao zero deste código. Arquitectura de Sistemas Computacionais

163 DESENHO DE CONTADORES SÍNCRONOS (cont.)
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. 00 01 11 10 3 4 5 7 6 12 8 9 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

164 DESENHO DE CONTADORES SÍNCRONOS (cont.)
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 X Não Mudou ou Reset 1 Mudou ou Set Mudou ou Reset Não Mudou ou Set Arquitectura de Sistemas Computacionais

165 DESENHO DE CONTADORES SÍNCRONOS (cont.)
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 JD KD JC KC JB KB JA KA D C B A 1 X Arquitectura de Sistemas Computacionais

166 DESENHO DE CONTADORES SÍNCRONOS (cont.)
Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) Implementação do circuito contador síncrono. Exercício: 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

167 DESENHO DE CONTADORES SÍNCRONOS (cont.)
Circuitos Sequenciais Síncronos DESENHO DE CONTADORES SÍNCRONOS (cont.) Tabelas de excitação para outros FF’s: Flip-Flop S-R Flip-Flop D Estado do FF Estado das Entradas Antes Depois S R X 1 Estado do FF Estado das Entradas Antes Depois D 1 Flip-Flop T Estado do FF Estado das Entradas Antes Depois T 1 Arquitectura de Sistemas Computacionais


Carregar ppt "1 Introdução à Lógica Digital Arquitectura de Sistemas Computacionais."

Apresentações semelhantes


Anúncios Google