CAPÍTULO 6. Introdução aos Circuitos Lógicos Seqüenciais

Documentos relacionados
Circuitos Digitais. Tipos de circuitos digitais: Circuitos combinacionais Circuitos sequenciais

Flip-Flop. Uma das coisa importantes que se pode fazer com portas booleanas é criar memória.

Aula 12. Flip-Flop Parte 1. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

ELD - Eletrônica Digital Aula 6 Circuitos Sequenciais Latches e Flip-Flops. Prof. Antonio Heronaldo de Sousa

Sistemas Digitais Módulo 10 Circuitos Sequenciais: Latches e Flip-Flops

Biestáveis R S, J K e D

Circuitos Digitais. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

Capítulo VII Elementos de Memória

CIRCUITOS SEQÜENCIAIS. Um modo de classificar os circuitos digitais seria subdividi-los em: - circuitos combinacionais; - circuitos seqüenciais.

Capítulo 5 - Flip-Flops e Dispositivos Correlatos

Capítulo 3 Circuitos lógicos seqüenciais: flip-flops, latches, contadores e registradores

Circuitos Seqüenciais Latches e Flip-Flops

CONTADORES DIGITAIS (Unidade 6)

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Aula 14. Contadores Assíncronos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

SSC512 Elementos de Lógica Digital. Latches e Flip Flops. GE4 Bio

Eletrônica Digital. Circuitos Lógicos Sequenciais PROF. EDUARDO G. BERTOGNA UTFPR / DAELN

SISTEMAS DIGITAIS CONTADORES E REGISTRADORES. Professor Carlos Muniz

Lógica: Combinacional x Sequencial

CAPÍTULO 2 ELEMENTOS DE LÓGICA SEQUENCIAL

Circuitos Sequenciais

Circuitos Digitais. Conteúdo. Circuitos Sequenciais. Combinacionais x Sequenciais. Circuitos Sequenciais. Circuitos Sequenciais

Organização e Arquitetura de Computadores I

CIRCUITOS SEQUENCIAIS (Unidade 5)

MINISTÉRIO DA EDUCAÇÃO CEFET/SC - Unidade de São José. Curso Técnico em Telecomunicações REGISTRADORES. Marcos Moecke. São José - SC,

Circuitos Seqüenciais

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

Contador. A ideia básica de um contador. Os flip-flops podem ser conectados juntos para realizar

Eletrônica Digital I TE050. Circuitos Seqüenciais

Universidade Federal do ABC

CEFET/RJ Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Arquitetura de Computadores

INSTITUTO DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SERGIPE COORDENADORIA DE ELETRÔNICA. Flip - Flops

Sistemas Digitais Circuitos Sequenciais Básicos (Latches e Flip-Flops) Horácio Neto Nuno Horta João Paulo Carvalho

SÍNTESE DE SIST. SEQUENCIAIS SÍNCRONOS. Sel Sistemas Digitais Prof. Homero Schiabel

PCS 2304 PROJETO LÓGICO DIGITAL 19/05/2006 Gabarito Preliminar 6 a Lista de Exercícios Contadores

Circuitos Digitais. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional

CAPÍTULO 7 CONTADORES

Eletrônica Digital. Prof. Gilson Yukio Sato sato[at]utfpr[dot]edu[dot]br

Revisão de Circuitos Digitais

Circuitos Sequenciais

Eletrônica Digital II. Flip-Flop s. Prof. Msc. Getúlio Teruo Tateoki 1

ELETRÔNICA DIGITAL 1 CAPÍTULO 4 FLIP-FLOP E LATCH

Flip-Flops, Registros e Contadores

ELETRÔNICA DIGITAL APLICADA Aula 8- Registradores de deslocamento como contadores

Os circuitos seqüenciais podem ser classificados em três tipos:

UFJF FABRICIO CAMPOS

Normalmente o registrador de deslocamento é constituído de um conjunto de FFs (Flip-Flops) destinados a armazenar dados binários.

Shift Registers e Contadores Assíncronos

SISTEMAS DIGITAIS PROJETOS DE SISTEMAS SEQUENCIAIS. Professor Carlos Muniz

CURSO DE ELETRÔNICA DIGITAL OS FLIP-FLOPS E FUNÇÕES LÓGICAS EM CIRCUITOS INTEGRADOS

UFAL- Campus Arapiraca- Equipe:Igor Rafael, Matheus Torquato, Onassys Constant, Arthur Erick, Luis Eduardo. LÓGICA SEQUENCIAL

Sistemas Digitais (SD) Contadores

CIRCUITOS SEQUENCIAIS (Unidade 5)

Organização e Arquitetura de Computadores I

LÓGICA DIGITAL CONCEITOS DE CLOCK RELÓGIOS (CLOCK) Prof. Celso Candido ADS / REDES / ENGENHARIA

ELETRÔNICA DIGITAL II

Eletrônica e Circuitos Digitais Aula 14 Contadores e Registradores. Daniel S Batista

CIRCUITOS SEQUENCIAIS. Adão de Melo Neto

FIGURA 5-1 Diagrama geral de um sistema digital. Sistemas Digitais: Princípios e Aplicações Ronald J. Tocci e Neal S. Widmer Capítulo 5 Prentice Hall

Universidade Federal do ABC

UNIVERSIDADE FEDERAL DO PARANÁ SETOR DE CIÊNCIA E TECNOLOGIA ENGENHARIA ELÉTRICA

Eletrônica Digital para Instrumentação

Registradores e Contadores

Disciplina ELETRÔNICA DIGITAL

CIRCUITOS DIGITAIS. Circuitos Sequenciais e Flip-Flops. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

ELD - Eletrônica Digital Aula 7 Circuitos Sequenciais Contadores. Prof. Antonio Heronaldo de Sousa

TABELA DO F/F. T Q n Q n+1

CIRCUITOS DIGITAIS. Contadores. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau. Slides baseados nas aulas do Prof. Rodrigo Moreira Bacurau

Latches. Flip-Flops ALBERTO WILLIAN MASCARENHAS.

FLIP-FLOPS SINCRONIZADOS, COM ENTRADAS PR e CLR

Flip-Flops. Introdução Tipos Circuitos Integrados. Flip-Flops

Capítulo 7 Contadores e Registradores

FLIP-FLOPS SINCRONIZADOS, COM ENTRADAS PR e CLR

Circuitos Sequenciais

Armazenamento e Transferência de Dados

Circuitos Sequenciais. Sistemas digitais

Flip-Flops Sincronizados tipo D

AULA 2 Implementação de Flip-Flops dos tipos JK e RS Livro Texto pág. 113 a 117 e 124 e 146 a 148 e 150 a 152.

11/12/10. Básculas Flip-flops. Mário Serafim Nunes Guilherme Silva Arroz. Sistemas Digitais - Taguspark

Os sistemas combinacionais a saída depende exclusivamente das condições das entradas, portanto o sistema não possui memória interna.

SISTEMAS DIGITAIS (SD)

EELi02. Prof. Vinícius Valamiel

LATCHES e FLIP-FLOPs. Aula 15 GRECO-CIN-UFPE

Centro Federal de Educação Tecnológica de Pelotas CEFET-RS. Aula 09. Projeto de Blocos Seqüenciais. Prof. Sandro Vilela da Silva

SISTEMAS DIGITAIS (SD)

ELETRÔNICA DIGITAL II. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Circuitos Sequenciais

CIRCUITOS DIGITAIS. Circuitos Sequenciais e Flip-Flops. Prof. Denis Fantinato Prof. Rodrigo Moreira Bacurau

Flip-flops e Dispositivos Correlatos (parte 1) Sistemas de Informação CPCX UFMS Slides: Fernando Maia da Mota

TABELA DO F/F. T Q n Q n+1

Marco A. Zanata Alves PROJETOS DIGITAIS E MICROPROCESSADORES 1

Eletrônica Digital II

ELETRÔNICA DIGITAL. Parte 12 Latches e Flip-Flops. Professor Dr. Michael Klug. 1 Prof. Michael

Sistemas Digitais. Módulo 14 Prof. Celso CIRCUITOS SEQÜÊNCIAIS

Organização e Arquitetura de Computadores I

Eletrônica Digital para Instrumentação. Herman Lima Jr.

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Transcrição:

CAPÍTULO 6 Introdução aos Circuitos Lógicos Seqüenciais 6.1. Conceito de Circuito Seqüencial Os circuitos seqüenciais são uma classe de circuitos digitais em que os valores lógicos das saídas, num determinado instante t n, podem depender não somente das combinações de valores das variáveis de entrada nesse mesmo instante, como também dos valores anteriores das próprias saídas. Não é necessária a manutenção da entrada que gerou um certo estado na saída, para que esse estado continue existindo. Por isso, os circuitos seqüenciais formam a classe dos circuitos digitais com memória. A idéia-chave para fazer-se um elemento lógico com memória é a realimentação das saídas de volta para as entradas do circuito. As saídas dos elementos lógicos com memória, em um circuito seqüencial, são chamadas de variáveis de estado e são representadas pela letra Q. O estado ou valor atual de uma variável de estado (no instante t n ) é representado por Q n, enquanto o próximo estado ou estado futuro (num instante t n+1 > t n ) é representado por Q n+1. Uma combinação particular de valores das variáveis de estado é chamada de um "estado do sistema". 6.2. Elemento Biestável de Memória: Latch Para que um circuito digital possa armazenar informação, ele precisa ser um circuito biestável, isto é, que possui dois estados estáveis, para assim poder armazenar tanto o bit '1' quanto o bit '0'. O circuito seqüencial biestável mais elementar é o latch ( trava ). 6.2.1. Latch SR (Set/Reset) O principal tipo de latch é o latch SR (ou RS), mostrado na figura 6.1 em implementações com portas NOR e NAND. (a) (b) Figura 6.1 Latches SR implementados com portas (a) NOR e (b) NAND. 66

ELETRÔNICA DIGITAL Prof. Daniel Cardoso Um latch só implementa uma variável de estado, que é Q n, e seu inverso, não se constituindo em uma nova variável de estado. Q n é apenas o O latch SR tem esse nome porque as entradas S e R "levam a 1 (set) e levam a zero (reset) o seu estado Q n, quando estão em nível alto. As saídas são reaplicadas às entradas das portas juntamente com os sinais de entrada S e R do circuito, e portanto o próximo estado que as saídas irão assumir (Q n+1 ) vai depender também de seus valores atuais (Q n ). As formas de onda e a tabela-verdade do latch SR com portas NAND são mostradas na figura 6.2 e na tabela 6.1, respectivamente. Figura 6.2 Formas de onda do latch SR com portas NAND ( U = não inicializado). S R Q n Q n Q n+1 Q n + 1 Comentário 0 0 1 1 Indeterminado Indeterminado Condição de corrida 0 0 0 1 0 1 Não muda (mantém o estado atual) 0 0 1 0 1 0 Não muda (mantém o estado atual) 0 1 X X 0 1 Leva o latch a '0' 1 0 X X 1 0 Leva o latch a '1' 1 1 X X 1 1 Estado proibido Tabela 6.1 - Tabela-verdade detalhada de um latch SR com portas NAND. As formas de onda mostram que o circuito é mesmo biestável: enquanto S e R estão em nível lógico 0, ele consegue reter tanto o estado lógico 1 (Q=1, Q =0) quanto o estado 0 (Q=0, Q =1). Quando S e R vão ambas para o nível 1, as saídas ficam ambas em 1 (versão NAND). Este último estado é indesejável não só porque leva a Q n = Q n, mas principalmente porque pode provocar uma condição de corrida (race condition) no latch: se S e R voltarem a 0 simultaneamente, o estado que resultará nas saídas é imprevisível, pois dependerá de qual das duas portas for a mais rápida. As saídas Q n e Q n nunca poderão ser ambas iguais a 0, então somente será 0 a saída da porta mais rápida dentre as duas. 67

A diferença entre as versões NOR e NAND do latch SR está apenas nos valores das saídas Q n e Q n no estado proibido, mas essa diferença é irrelevante. A tabelaverdade final do latch SR é a tabela 6.2. S R Q n+1 0 0 Q n 0 1 0 1 0 1 1 1 X proibido Tabela 6.2 Tabela-verdade de um latch SR. A equação fechada para a próxima saída Q n+1 do latch SR com portas NAND é Q n+1 = S + R.Q n. O latch SR pode ser implementado de várias maneiras, isto é, com vários arranjos diferentes de portas. Qualquer circuito que tenha uma tabela-verdade igual à tabela 6.2 é um latch SR. Se os inversores das entradas do latch SR NAND forem removidos, o circuito restante com apenas duas portas NAND continua sendo um latch, apesar de não ser mais um latch SR, porque sua tabela-verdade será diferente. 6.3. Flip-flops Sensíveis ao Nível do Relógio No latch SR, há uma palavra de entrada (S=R=0) que o faz reter (não altera) os valores presentes nas saídas, fazendo-o desempenhar a função de uma memória. O problema é que, se uma das entradas mudar, as saídas também podem mudar logo a seguir em resposta. Como geralmente não se tem controle sobre as entradas, então as saídas podem mudar a qualquer momento, em função dos valores das entradas. Portanto o latch é assíncrono, isto é, não se sabe em que instante suas saídas irão mudar de estado. Isso quer dizer que o latch não pode ser sincronizado com outros blocos lógicos de um mesmo sistema. Isso é indesejável porque, em sistemas digitais, como microprocessadores por exemplo, deseja-se sempre sincronizar a execução das operações para que o funcionamento seja ordenado e as etapas do processamento ocorram em seqüência e em instantes de tempo bem definidos, tudo sob controle de um sinal de sincronismo que coordene os diversos blocos lógicos. Assim os resultados de uma etapa estarão prontos no momento certo para a execução da etapa seguinte. Esse sinal de sincronismo, chamado de relógio (clock), dita a cadência de execução das operações e define a temporização do sistema digital. O relógio é um sinal quadrado periódico, de freqüência constante, e corresponde à pulsação de um circuito digital seqüencial. Como uma primeira medida para resolver o problema do latch SR, acrescentase a ele uma entrada de clock (representada por Ck ou Clk), da forma mostrada na figura 6.3, criando-se assim um latch SR em sincronismo com um sinal de controle ou habilitação. O latch síncrono é chamado de flip-flop (FF). Portanto, o flip-flop da figura 6.3 é um FF SR, cujas saídas agora só podem mudar de estado enquanto o 68

ELETRÔNICA DIGITAL Prof. Daniel Cardoso relógio for igual a 1 ; enquanto Ck= 0, o latch trava, mantendo fixo o seu estado Q n presente. Figura 6.3 Latch SR com entrada de relógio: flip-flop SR. Seu modo de operação pode ser resumido assim: Ck = '0': Q n+1 = Q n, para quaisquer valores de S e R. Ck = '1': O flip-flop SR torna-se igual ao latch SR. As entradas do FF SR da figura 6.3 podem passar para as saídas durante o nível alto do relógio, isto é, enquanto Ck = '1'. Por isso, esse tipo de flip-flop é chamado de flip-flop sensível ao nível do relógio. Neste caso, ele é sensível ao nível alto do relógio (Ck = '1'). Invertendo-se a entrada Ck, ele passaria a ser um FF SR sensível ao nível baixo do relógio (Ck = '0'). Os símbolos esquemáticos para ambos os circuitos são mostrados na figura 6.4. (a) (b) Figura 6.4 Símbolos dos flip-flops SR sensíveis ao nível (a) alto e (b) baixo do relógio. Alguns livros e manuais técnicos não consideram um flip-flop sensível ao nível do relógio como sendo síncrono, e o denominam ainda de latch; nesse caso, considera-se o sinal de relógio como um sinal de habilitação (enable) do latch. Um FF mais simples, somente para armazenar o bit de informação, é o flip-flop tipo D (Data), que pode ser implementado a partir do FF SR. Sua tabela-verdade e símbolo lógico são mostrados na figura 6.5. O inversor colocado entre as entradas S e R garante que o FF D nunca irá para o estado proibido. Ck D Q n+1 0 X Q n 1 0 0 1 1 1 Figura 6.5 Tabela-verdade e símbolo do flip-flop D sensível ao nível alto do relógio. 69

6.4. Flip-flops Gatilhados pela Borda do Relógio Os flip-flops sensíveis ao nível do relógio ainda apresentam uma característica indesejável: as entradas podem passar para as saídas enquanto o sinal de relógio estiver ativo, isto é, durante toda a duração de um dos níveis do relógio. Portanto, no caso de FF's sensíveis ao nível alto, se as entradas variarem durante o intervalo de tempo em que Ck='1', as saídas podem variar logo a seguir em resposta, ou seja, o circuito ainda é assíncrono durante o intervalo ativo do relógio. Ainda não há uma sincronização total, isto é, em um instante preciso de tempo. Para resolver esse problema, foi criada a arquitetura "mestre-escravo" de flip-flops (Master-Slave ou MS), os quais são sincronizados com o instante de uma das transições (bordas) do relógio. O FF SR mestre-escravo, mostrado na figura 6.6, consiste de dois flip-flops SR sensíveis ao nível e ligados em série, um acionando as entradas do outro; o primeiro FF é chamado de mestre, e o segundo de escravo. O sinal de relógio do escravo é o inverso do sinal de relógio do mestre, de modo que somente um dos FF's estará ativo de cada vez. Enquanto Ck= 1, a informação pode ser escrita no FF mestre, mas não passa para as saídas do FF escravo, pois a entrada de relógio deste é 0. Quando o relógio vai a 0, simultaneamente as entradas do mestre ficam bloqueadas e as entradas do escravo são liberadas, permitindo que a informação, que antes tinha sido escrita no mestre, apareça na saída Q n final do flip-flop. O FF MS, portanto, transfere a informação da entrada para a saída em duas etapas. Figura 6.6 - Conceito do FF mestre-escravo. O FF MS é gatilhado nas transições (bordas) do sinal de relógio (edgetriggered), que ocorrem em instantes bem definidos. Ele somente vai mudar de estado em resposta a uma borda do relógio, e não no instante em que os sinais de entrada S 70

ELETRÔNICA DIGITAL Prof. Daniel Cardoso ou R mudarem, tal como acontece com os FF's sensíveis ao nível do relógio. O FF MS da figura 6.6 é gatilhado na descida do pulso de relógio, transferindo a informação da saída do mestre para a saída do escravo. Para tornar esse FF gatilhado na borda de subida do sinal de relógio, aplica-se este sinal diretamente no FF escravo e o seu inverso no FF mestre (conecta-se a porta NOT do escravo para o mestre). Os símbolos para FF's gatilhados na borda ou transição do relógio são mostrados na figura 6.7. (a) (b) Figura 6.7 Símbolos dos FF's Mestre-Escravo (do tipo SR) gatilhados (a) na subida e (b) na descida do relógio. A tabela-verdade e o símbolo do flip-flop tipo D gatilhado na borda de subida do relógio são mostrados na figura 6.8. Ck D Q n+1 D D Figura 6.8 Tabela-verdade e símbolo do flip-flop D gatilhado na subida do relógio. 6.4.1. Flip-Flop JK O FF SR mestre-escravo ainda tem o mesmo problema de estado proibido do latch SR, no qual ambas as saídas são iguais e que pode levar a uma condição de corrida com saídas imprevisíveis. Para eliminar a entrada proibida, foi criado um novo tipo de flip-flop, o FF JK, que não levará a um estado indeterminado e cuja tabelaverdade é a seguinte: J K Q n+1 0 0 Q n Q n + 1 Comentário Q Mantém o estado atual n 0 1 0 1 Reset 1 0 1 0 Set 1 1 Q Q n n Inverte o estado do latch (toggle) Tabela 6.3 - Tabela-verdade do FF JK. A tabela 6.3 mostra que J desempenha a função de levar a 1 o FF, e K, a de levá-lo a 0. O FF JK tem uma funcionalidade extra de inversão do estado atual (toggle), em lugar do estado indesejável do SR. Além disso, a saída Q é, de fato, n 71

sempre o inverso da saída Q n. A tabela-verdade resumida e o símbolo esquemático de um FF JK (gatilhado na descida do relógio) são mostrados na figura 6.9. J K Q n+1 0 0 Q n 0 1 0 1 0 1 1 1 Q n Figura 6.9 Tabela-verdade e símbolo do flip-flop JK gatilhado na descida do relógio. Para implementar-se o FF JK, parte-se do SR, conhecendo-se as tabelasverdade de ambos: J K Q n+1 0 0 Q n 0 1 0 1 0 1 1 1 Q n S R Q n+1 0 0 Q n 0 1 0 1 0 1 1 1 X (proibido) Para desenvolver o FF JK a partir do FF SR, é interessante dispor de uma tabela-verdade expandida, que mostre também a transição da saída Q n para Q n+1, para todas as combinações de valores de S e R. Essa tabela de transição, que trata a saída atual como uma entrada do circuito, é a tabela 6.4. S R Q n Q n+1 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 X 1 1 1 X Tabela 6.4 Tabela de transição para o FF SR. O que se precisa fazer é determinar S e R em função de J, K e Q n. Por isso, estes sinais são as entradas de um circuito combinacional desconhecido, no esquema da figura 6.10; a realimentação da variável de estado para a entrada é necessária porque, para que o FF JK possa inverter o estado atual, ele precisa saber qual é esse estado. Os valores necessários em S e R para causar as mesmas transições de Q n para Q n+1 do FF JK, são dados na tabela 6.5. Fazendo-se os mapas de Karnaugh para S e R em função de J, K e Q n, encontra-se as expressões para S e R: S = JQ R = KQ n n 72

ELETRÔNICA DIGITAL Prof. Daniel Cardoso Figura 6.10 Projeto do FF JK em função do FF SR. Agora conhece-se o conteúdo da caixa incógnita da figura 6.10: são duas portas AND. O FF JK realimenta as saídas para as entradas, eliminando o estado proibido. Seu esquemático didático é mostrado nas figuras 6.11 e 6.12. J K Q n Q n+1 S R 0 0 0 0 0 X 0 0 1 1 X 0 0 1 0 0 0 X 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 X 0 1 1 0 1 1 0 1 1 1 0 0 1 Tabela 6.5 Projeto das expressões das entradas S e R. Figura 6.11 Esquemático do FF JK. Figura 6.12 Esquemático interno didático do FF JK. 73

6.4.2. Flip-Flop T O flip-flop T (Toggle) é obtido a partir do FF JK colocando-se em curto as entradas J e K. Assim, quando T = 0, o FF T mantém o estado atual e, quando T = 1, ele o inverte. O FF T é muito utilizado em contadores e divisores de freqüência, pois quando T = 1, ele divide por dois a freqüência do sinal de relógio. Portanto, os FF's sensíveis à borda do sinal de relógio podem ser dos tipos SR, JK, D ou T, e as tabelas-verdade são as mesmas dos FF's sensíveis ao nível correspondentes, com a diferença de que a saída Q só assumirá o seu próximo estado Q n+1 após a borda correta do relógio (de subida ou de descida, conforme o circuito). Ck T Q n+1 0 Q n 1 Figura 6.13 Tabela-verdade e símbolo do flip-flop T gatilhado na subida do relógio. Q n 6.4.3. Entradas de Preset e Clear Não há como prever o estado que a saída Q n de um flip-flop irá assumir no instante em que se liga o circuito, a não ser que se apliquem vetores de entrada que o levem seguramente a um estado conhecido. A inicialização do FF em '0' ou '1' é normalmente feita com sinais de controle especiais chamados de preset (preestabelece) e clear (limpa), conforme a tabela 6.6. O sinal de preset leva a saída a 1 e o sinal de clear, também chamado de reset, leva a saída a 0 ( limpa o conteúdo do FF). Portanto, o preset e o clear inicializam a saída Q n. Preset (PR ) e clear (CL ) são geralmente ativos em nível baixo, isto é, a ação acontece quando o sinal correspondente é 0. PR CL Q n 0 0 X 0 1 1 1 0 0 1 1 Q n Tabela 6.6 Funcionamento das entradas preset e clear. A figura 6.14 mostra o esquema didático e o símbolo em bloco de um FF JK com preset e clear. As bolinhas nas entradas PR e CL não são inversores, elas servem para indicar que esses sinais exercem sua função quando estão em nível lógico baixo. Os sinais preset e clear são assíncronos e têm prioridade sobre o sinal de relógio e as entradas de dados. Isso significa que, a qualquer momento, pode-se impor ao circuito assumir Q=1 (ou Q=0) com a entrada PR (ou CL ) em 0. PR e CL não devem ser feitos simultaneamente iguais a 0, pois seria como tentar fazer as duas coisas ao mesmo tempo, e o valor da saída Q n será imprevisível. 74

ELETRÔNICA DIGITAL Prof. Daniel Cardoso Figura 6.14 Esquema didático e símbolo do FF JK com entradas de preset e clear. 75

CAPÍTULO 7 Registradores e Contadores 7.1. Registradores Um flip-flop pode armazenar um bit. Quando se deseja armazenar uma palavra binária, é necessário utilizar um flip-flop para cada bit dessa palavra. Por exemplo, para armazenar um byte, deve-se empregar oito flip-flops. Esse conjunto de flip-flops que armazena uma palavra binária é chamado de registrador. O tamanho do registrador é o tamanho da palavra que ele pode armazenar, ou o seu número de flipflops. Assim, um flip-flop é um caso particular de registrador para armazenar um bit apenas. O flip-flop mais conveniente para armazenar palavras é o flip-flop D. A figura 7.1 mostra oito flip-flops D formando um registrador de 8 bits, com entrada paralela e saída paralela, gatilhado na subida do relógio, e com saídas de três estados. Figura 7.1 - Registrador paralelo/paralelo de 8 bits com habilitação da saída. 76

ELETRÔNICA DIGITAL Prof. Daniel Cardoso 7.1.1. Registradores de Deslocamento (Shift Registers) Em um registrador de deslocamento, os flip-flops são conectados de modo que a saída de cada flip-flop passa para a entrada do flip-flop adjacente. Na figura 7.2, uma única entrada de dados é aplicada ao primeiro flip-flop, e transições sucessivas do relógio farão os dados se deslocarem para a direita, uma posição a cada subida do sinal de relógio. Portanto, para um valor inicial de 00000000 no registrador de deslocamento e um '1' aplicado ao primeiro flip-flop, pulsos de relógio sucessivos resultarão nos valores 10000000, 11000000, 11100000, 11110000, 11111000, 11111100, 11111110 e 11111111 no registrador, assumindo que o '1' seja mantido aplicado para cada subida do relógio. Se o '1' fosse removido (um '0' fosse aplicado) imediatamente após a primeira transição do relógio, a seqüência armazenada no registrador seria: 10000000, 01000000, 00100000, 00010000, 00001000, 00000100, 00000010 e 00000001. Figura 7.2 - Registrador de deslocamento série-paralelo. Este registrador possui entrada serial e saída paralela, podendo atuar como um conversor serial-paralelo. Isto é, a informação é entrada serialmente (um bit de cada vez) em um terminal de dados único, e é lida em paralelo (todos os bits juntos) dos flipflops. A palavra de dados realmente entrada no registrador vai depender dos valores lógicos presentes na linha de dados, no instante de cada transição ativadora do relógio. Para se ter um registrador de deslocamento de entrada e saída seriais, basta recuperar a palavra de dados serialmente na saída do último flip-flop (Q7). Em algumas aplicações, é necessário estabelecer os conteúdos dos registradores em um valor específico, para fins de inicialização do sistema. Isso pode ser conseguido utilizando-se flip-flops que possuam as entradas assíncronas de Preset (ou Set) e Clear (ou Reset). Para levar todas as saídas de flip-flops a '0', todas as entradas de reset devem ser conectadas juntas e acionadas por um sinal de inicialização. Um registrador de deslocamento pode ser formado com flip-flops JK, conectando-se as saídas Q e Q de cada flip-flop às entradas J e K, respectivamente, do próximo flip-flop, como mostrado na figura 7.3. 77

Figura 7.3 - Registrador de deslocamento série-paralelo de 8 bits com flip-flops JK. A função clássica de um registrador é armazenar palavras (numerais binários). Um registrador de deslocamento pode ser usado também para dividir ou multiplicar o numeral binário por uma potência de 2, pelo deslocamento desse numeral pela quantidade desejada de posições para a direita ou para a esquerda, respectivamente. Por exemplo, se o numeral dez está armazenado em um registrador de 8 bits (00001010 em binário), um deslocamento para a direita resulta na palavra 00000101 (5 em decimal). Se o registrador de deslocamento fosse organizado para deslocar para a esquerda, o que necessitaria que as conexões entre os flip-flops fossem feitas da direita para a esquerda, o numeral armazenado seria multiplicado por uma potência de 2, dependendo da quantidade de posições deslocadas. As entradas assíncronas de Preset e Clear dos flip-flops podem ser usadas para inicializar o conteúdo de um registrador com uma palavra binária qualquer. A figura 7.4 mostra um registrador de deslocamento com um comando de carregamento (LOAD) paralelo e assíncrono de palavras. Enquanto LOAD = '0', as saídas das portas NAND mantém-se em '1', desabilitando os Presets dos flip-flops. Para inicializar os conteúdos dos FF's (Q3, Q2, Q1 e Q0) com uma palavra, é necessário primeiro aplicar um pulso baixo em CLR, zerando as saídas Q. Em seguida, aplica-se a palavra a ser carregada no registrador nas entradas PR3 a PR0, e leva-se a linha LOAD a nível alto. Figura 7.4 - Registrador de deslocamento com carregamento paralelo assíncrono. 78

ELETRÔNICA DIGITAL Prof. Daniel Cardoso Por exemplo, para o registrador carregar a palavra 1001 2 em seus flip-flops, fazse PR3...PR0 = 1001, em seguida aplica-se um pulso baixo em CLR e leva-se LOAD a nível alto. Logo em seguida, Q3..Q0 = 1001. 7.2. Contadores Um contador é um circuito seqüencial que gera uma seqüência de saída específica e recorrente. Contadores são construídos utilizando-se um flip-flop para cada bit da seqüência de contagem. 7.2.1. Contadores Assíncronos O tipo mais simples de contador binário pode ser construído quando as transições das saídas não precisam estar em perfeito sincronismo, isto é, pequenos atrasos nas mudanças das saídas são aceitáveis. Este projeto é chamado de contador assíncrono ou contador com ondulação (ripple counter) pois, embora ainda exista um sinal de relógio aplicado ao circuito, os flip-flops individuais são gatilhados pelas saídas dos flip-flops anteriores (nos contadores ripple, a saída de um flip-flop é conectada à entrada de relógio do próximo). Por causa disso, os sinais ondulam de um lado para outro do contador e haverá pequenos atrasos antes das saídas assumirem seus valores finais. O módulo de um contador é a quantidade de estados da contagem. O contador da figura 7.5 conta de 0 10 até 15 10 e reinicia, por isso trata-se de um contador módulo 16. Na contagem, Q0 é o LSB e Q3 é o MSB. Este contador também pode ser visto como um divisor de freqüência por 2 n, pois a freqüência de Q0 é ½ da freqüência do relógio, a freqüência de Q1 é ½ da freqüência de Q0, a freqüência de Q2 é ½ da de Q1, e assim por diante. O módulo de um contador assíncrono pode ser modificado com o acréscimo de portas lógicas que restabeleçam o estado inicial da contagem, no momento em que o estado final for ultrapassado. Por exemplo, o circuito da figura 7.6 é um contador de década (isto é, módulo 10) assíncrono: ele conta de 0 10 (0000 2 ) até 9 10 (1001 2 ), e quando o estado 10 10 (1010 2 ) é atingido, a porta NAND provoca a reinicialização (reset) do contador para 0 10, e o ciclo recomeça. Um contador de década é muito útil para contar em BCD ou em decimal. Figura 7.5 - Contador assíncrono (ripple counter) de 4 bits (módulo 16). 79

Figura 7.6 - Contador assíncrono adaptado para contar até 9 10 (decade counter). 7.2.2. Contadores Síncronos Os contadores síncronos são aqueles em que todos os flip-flops são gatilhados pelo mesmo sinal de relógio, que é aplicado a eles simultaneamente. Com isso, eliminam-se os atrasos na passagem de um estado da contagem para o próximo, e na reinicialização forçada do contador para gerar uma contagem de módulo arbitrário, como feito no circuito da figura 7.6. Por causa da sincronização simultânea, todas as mudanças necessárias nas saídas ocorrem juntas, e a palavra binária correta aparece após o tempo de atraso de propagação de um flip-flop ao invés do atraso de n FF's. O circuito da figura 7.7 é um contador síncrono de 4 bits e módulo 16. Os contadores síncronos precisarão sempre ter uma parte combinacional, para definir o próximo estado que seus flip-flops devem assumir após cada transição ativa do relógio. As entradas para essa parte combinacional serão as saídas dos flip-flops (Q's), chamadas de variáveis de estado, e as saídas do bloco combinacional irão acionar as entradas dos flip-flops. Portanto, a parte combinacional de um contador faz a realimentação das saídas para as entradas da parte seqüencial. Figura 7.7 - Contador síncrono de módulo 16. 80

ELETRÔNICA DIGITAL Prof. Daniel Cardoso O problema do projeto de contadores síncronos passa a ser a determinação das funções lógicas que devem ser aplicadas a cada entrada de flip-flop para criar a seqüência de contagem desejada. Este problema pode ser resolvido para qualquer contagem seguindo-se um procedimento sistemático e formal, com as seguintes etapas: 1. Calcular a quantidade de flip-flops necessária para realizar o contador e decidir que tipo de flip-flop será utilizado para implementá-lo (SR, JK, D ou T). 2. Escrever a tabela de excitação para o tipo de flip-flop escolhido. 3. Fazer um diagrama de transição de estados ou uma tabela de transição de estados, indicando o próximo estado para cada estado assumido pelo contador. 4. Acrescentar, na tabela de transição de estados, colunas extras para as entradas dos flip-flops e preenchê-las com os valores que cada entrada deve ter para produzir a mudança de estado correspondente. 5. Fazer os mapas de Karnaugh para obter a expressão simplificada de cada entrada de flip-flop, em função das variáveis de estado (Q's). 6. Esquematizar o contador. O tipo de flip-flop mais flexível para emprego em contadores é o FF JK, porque ele pode ser levado a complementar as suas saídas com a aplicação das entradas J = K = 1, além de ser capaz de levá-las a '1' (J = 1, K = 0) ou a '0' (J = 0, K = 1). O flip-flop D pode ser usado, mas geralmente ele vai exigir um número maior de portas lógicas para conseguir gerar a seqüência de contagem, isto é, se o flip-flop utilizado for mais simples, então a parte combinacional será mais complexa. Entretanto, embora o flipflop D não seja a escolha mais natural, ele pode acabar sendo escolhido por requerer menos transistores internos que um flip-flop JK. E o projeto final pode requerer menos interconexões do que uma solução com FF JK. Como exemplo, explica-se a seguir o projeto de um contador módulo 8. Tal contador necessita de 3 variáveis de estado, Q2, Q1, Q0, portanto de 3 flip-flops. Decidindo-se utilizar flip-flops JK, precisa-se conhecer a tabela de excitação desse tipo de flip-flop. Trata-se de uma tabela que apresenta os valores necessários nas entradas para produzir um efeito conhecido na saída, ou seja, as entradas são dadas em função das saídas. Essa tabela é mostrada na tabela 7.1. Q n Q n+1 J K 0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0 Tabela 7.1 - Tabela de excitação do flip-flop JK. A tabela de transição de estados para o contador módulo 8 é mostrada na tabela 7.2, e a tabela 7.3 mostra as colunas das entradas em função das transições das saídas. 81

Estado atual Estado futuro Q2 n Q1 n Q0 n Q2 n+1 Q1 n+1 Q0 n+1 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 Tabela 7.2 - Tabela de transição de estados para o contador módulo 8. J2 K2 J1 K1 J0 K0 0 X 0 X 1 X 0 X 1 X X 1 0 X X 0 1 X 1 X X 1 X 1 X 0 0 X 1 X X 0 1 X X 1 X 0 X 0 1 X X 1 X 1 X 1 Tabela 7.3 - Valores de J e K de cada flip-flop para produzir as transições acima. Agora montam-se os mapas de Karnaugh para cada entrada de flip-flop (J, K), em função de Q2 n, Q1 n e Q0 n. As expressões das entradas serão: J0 = K0 = 1 J1 = K1 = Q0 J2 = K2 = Q0.Q1 E o esquema do contador módulo 8 é mostrado na figura 7.8. Figura 7.8 - Contador síncrono módulo 8. 82

ELETRÔNICA DIGITAL Prof. Daniel Cardoso 7.2.2.1. Contadores em anel. O circuito contador em anel (ring counter), mostrado na figura 7.9 com 4 bits, serve para gerar uma seqüência cíclica de pulsos de controle. A entrada Inic deve ser colocada em '0' momentaneamente, estabelecendo o estado inicial do contador em 1000 2, antes de sua operação normal. Para quatro pulsos de relógio, as saídas Q (Q 3,..., Q 0 ) seguirão o padrão 1000, 0100, 0010, 0001, 1000,... ciclicamente. Figura 7.9 - Contador em anel (ring counter). Se a saída Q, e não Q, for retornada para a entrada D do primeiro flip-flop, obtém-se um circuito chamado contador em anel torcido (twisted ring counter), também conhecido como contador Johnson, mostrado na figura 7.10. A entrada Inic deve ser colocada em '0' momentaneamente, estabelecendo o estado inicial do contador em 0000 2, antes de sua operação normal. Os estados das saídas Q (Q 3,..., Q 0 ) após cada pulso de relógio seguirão o padrão 0000, 1000, 1100, 1110, 1111, 0111, 0011, 0001, 0000... Nesta seqüência, somente um bit muda de um estado para o outro. Figura 7.10 - Contador Johnson (twisted ring counter). 83

CAPÍTULO 8 Análise e Projeto de Circuitos Seqüenciais 8.1. Introdução As máquinas de estados finitos são sistemas seqüenciais síncronos genéricos, que percorrem um número finito de estados. A transição de um estado para outro ocorre somente nas bordas ativas do relógio. Um estado é uma combinação particular de valores das variáveis de estado. As variáveis de estado são as saídas dos elementos lógicos com memória (flip-flops). Existem dois modelos gerais para máquinas de estado: as máquinas Mealy e as máquinas Moore. O modelo de uma máquina de estado Mealy é mostrado na figura 8.1, usando flip-flops do tipo D (outros tipos de flip-flops também podem ser usados). O circuito possui um conjunto de n entradas, identificadas X n-1...x 0, e um conjunto de m saídas, Z m-1...z 0. Há dois conjuntos de k sinais internos, Q k-1...q 0 e Y k-1...y 0. Os sinais Q são as variáveis de estado atuais, armazenadas nos flip-flops, que definem o estado atual do circuito. Os sinais Y são as variáveis de estado futuro, geradas para produzir o próximo estado do circuito, e são entradas para os flip-flops. Os sinais Y são funções combinacionais das entradas do circuito, X n-1...x 0, e do estado atual, Q k-1...q 0. As saídas do circuito, Z m-1...z 0, também são funções combinacionais das entradas e do estado atual. Para criar um circuito seqüencial síncrono baseado neste modelo, é necessário deduzir as funções combinacionais das variáveis de próximo estado, Y k-1...y 0, e das saídas, Z m-1...z 0. Primeiramente, é preciso estabelecer quantos flip-flops são necessários para um projeto específico (o valor de k). Se dois estados são requeridos, então uma variável de estado é necessária, que valerá '0' para um estado e '1' para o outro. Se três ou quatro estados são requeridos, então duas variáveis de estado são necessárias, pois há quatro palavras com duas variáveis, 00, 01, 10 e 11, e cada palavra codificará um estado. Em geral, se entre 2 k-1 + 1 e 2 k estados são requeridos, k variáveis de estado e portanto k flip-flops são necessários. Após uma transição ativa do relógio, que pode ser a de subida ou a de descida, um tempo suficiente deve ser dado para os sinais passarem pela lógica combinacional para estabelecer os valores do próximo estado, antes da próxima transição ativa do relógio. Observa-se na figura 8.1 que mudanças de valores nas entradas primárias não causam mudanças de estado imediatas, pois uma mudança de estado será determinada pelas entradas e pelo estado atual, no momento da transição ativa do relógio (levando em conta os atrasos do circuito). Entretanto, como as saídas do circuito são funções combinacionais que incluem as entradas X n-1...x 0, mudanças nestas entradas podem fazer as saídas mudarem imediatamente e não em sincronismo com o relógio. Este comportamento, se for indesejável em uma aplicação, pode ser evitado tornando-se as saídas funções combinacionais somente das variáveis 84

ELETRÔNICA DIGITAL Prof. Daniel Cardoso de estado atuais. Este novo modelo de máquina de estado é o modelo Moore, mostrado na figura 8.2. Figura 8.1 - Máquina de estados finitos de modelo Mealy. Um circuito seqüencial síncrono pode geralmente ser projetado tanto a partir de um modelo Mealy quanto de um modelo Moore, mas se um modelo Mealy for usado, as saídas poderão ser afetadas por mudanças nas entradas imediatamente após elas ocorrerem (isto é, de forma assíncrona), ao invés de após uma transição de relógio. Portanto, os comportamentos de um circuito de modelo Mealy e do seu equivalente de modelo Moore podem ser diferentes neste aspecto. Para projetar uma máquina de estados finitos usando um dos dois modelos, há dois conjuntos de funções para determinar: as funções para as variáveis de estado futuro, Y k-1...y 0, e as funções para as saídas, Z m-1...z 0. O procedimento de projeto inicia-se com a criação de um diagrama de estados derivado da especificação do problema. Quando as saídas dos flip-flops (as variáveis de estado) forem também as saídas do circuito, o modelo mais adequado será naturalmente o modelo Moore. Por exemplo, um contador é geralmente um circuito de modelo Moore porque suas saídas costumam ser tomadas diretamente dos flip-flops, isto é, Z = Q. 85

Figura 8.2 - Máquina de estados finitos de modelo Moore. 86