Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

UFPA / ITEC / FEE Eletrônica Digital 
 68
CAPÍTULO 6 
 
 
Introdução aos Circuitos Lógicos Sequenciais 
 
 
 
 
6.1. Conceito de Circuito Sequencial 
 
Os circuitos sequenciais são uma classe de circuitos digitais em que os 
valores lógicos das saídas, num determinado instante tn, podem depender das 
combinações de valores das variáveis de entrada nesse mesmo instante, e 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. 
Os estados atuais das saídas podem depender dos valores atuais das entradas, e 
também dos estados anteriores dessas mesmas saídas. Por isso, os circuitos 
sequenciais 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 sequencial, 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 tn) é representado por Qn, enquanto o próximo estado ou estado futuro (num 
instante tn+1 > tn) é representado por Qn+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 sequencial 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. 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 69
Um latch só implementa uma variável de estado, que é Qn, e nQ é apenas o 
seu inverso, não se constituindo em uma nova variável de estado. 
 
O latch SR tem esse nome porque as entradas S e R "levam a 1” (set) e “levam 
a zero” (reset) o seu estado Qn, 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 (Qn+1) vai depender também de 
seus valores atuais (Qn). 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 Qn nQ Qn+1 1nQ + Comentário 
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” 
0 0 1 1 Indeterminado Indeterminado Condição de corrida 
 
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 nQ = Qn, mas principalmente porque pode provocar uma “condição de corrida” 
(race) 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 Qn e nQ nunca poderão ser ambas iguais a ‘0’, então somente será ‘0’ a saída 
da porta mais rápida dentre as duas. 
 
UFPA / ITEC / FEE Eletrônica Digital 
 70
A diferença entre as versões NOR e NAND do latch SR está apenas nos valores 
das saídas Qn e nQ no “estado proibido”, mas essa diferença é irrelevante. A tabela-
verdade final do latch SR é a tabela 6.2. 
 
S R Qn+1 
0 0 Qn 
0 1 0 
1 0 1 
1 1 X 
Tabela 6.2 – Tabela-verdade de um latch SR. 
 
A equação fechada para a próxima saída Qn+1 do latch SR com portas NAND é 
Qn+1 = S + R .Qn. 
 
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 memorizar a informação. 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, é necessário sincronizar a execução 
das operações para que o funcionamento seja ordenado e as etapas do 
processamento ocorram em sequê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 frequência constante, e corresponde à 
“pulsação” de um circuito digital sequencial. 
 
Como uma primeira medida para resolver o problema do latch SR, acrescenta-
se 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 
Å proibido 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 71
relógio for igual a ’1’; enquanto Ck=’0’, o latch “trava”, mantendo fixo o seu estado Qn 
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': Qn+1 = Qn, 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 Qn+1 
0 X Qn 
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. 
 
UFPA / ITEC / FEE Eletrônica Digital 
 72
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 Qn 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 (edge-
triggered), 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 
ou R mudarem, tal como pode acontecer com os FF's sensíveis ao nível do relógio. O 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 73
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. 
 
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 tabela-
verdade é a seguinte: 
 
J K Qn+1 1nQ + Comentário 
0 0 Qn nQ Mantém o estado atual 
0 1 0 1 Reset 
1 0 1 0 Set 
1 1 nQ Qn 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, enquanto K 
tem a função de “levar a 0” o FF. O FF JK tem uma funcionalidade extra de inversão 
do estado atual (toggle), no lugar do estado indesejável do FF SR. A saída nQ é 
Ck Qn+1 
↑ D 
UFPA / ITEC / FEE Eletrônica Digital 
 74
sempre o inverso da saída Qn. 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 Qn+1 
0 0 Qn 
0 1 0 
1 0 1 
1 1 
nQ 
Figura 6.9 – Tabela-verdade e símbolo do flip-flop JK gatilhado na descida do relógio. 
 
 
Pode-se construir o FF JK usando o FF SR como ponto de partida, pois 
conhecem-se as tabelas-verdade de ambos os flip-flops. Mas para desenvolver o FF 
JK a partir do FF SR, é interessante dispor de uma tabela-verdade expandida, que 
trate a saída atual Qn como uma entrada do circuito e mostre todas as combinações de 
valores de S, R e Qn, com o valor final para Qn+1. Esta é a tabela 6.4. 
 
S R Qn Qn+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-verdade expandida para o FF SR. 
 
 O que se precisa fazer é determinar as expressões de S e R em função das 
entradas globais J, K e Qn. Por isso, o esquemático da figura 6.10 mostra esses três 
sinais como as entradas de um circuito combinacional desconhecido que produz S e R. 
A realimentação da variável de estado Qn para a entrada é necessária porque, para 
que o FF JK possa inverter o estado atual, ele precisa saber qual é o valor desse 
estado. 
 
 
Figura 6.10 – Projeto do FF JK em função do FF SR. 
 
Os valores necessários em S e R para causar as transições de Qn para Qn+1 
desejadas de um FF JK, são dados na tabela de projeto 6.5. Fazendo-se os mapas de 
Karnaugh para S e R em função de J, K e Qn, encontram-se as expressões para S e R: 
 
S = J. nQ R = K.Qn 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 75
 
J K Qn Qn+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. 
 
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. 
 
 
Figura 6.11 – Esquemático do FF JK. 
 
 
 
Figura 6.12 – Esquemático interno didático do FF JK. 
 
 
 
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 frequência, pois 
quando T = 1, ele divide por dois a frequência do sinal de relógio. 
 
UFPA / ITEC / FEE Eletrônica Digital 
 76
Portanto, os FF's sensíveis à borda do sinal de relógio podem ser dos tiposSR, 
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 
Qn+1 após a borda correta do relógio (de subida ou de descida, conforme o circuito). 
 
 
Figura 6.13 – Tabela-verdade e símbolo do flip-flop T gatilhado na subida do relógio. 
 
 
 
6.4.3. Entradas de Preset e Clear 
 
 Não há como prever o estado que a saída Qn 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 Qn. 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 Qn 
0 0 X 
0 1 1 
1 0 0 
1 1 Qn 
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 Qn será imprevisível. 
 
Ck T Qn+1 
↑ 0 Qn 
↑ 1 nQ 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 77
 
 
 
 
Figura 6.14 – Esquema didático e símbolo do FF JK com entradas de preset e clear. 
 
UFPA / ITEC / FEE Eletrônica Digital 
 78
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 flip-
flops. 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. 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 79
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 sequência armazenada no registrador seria: 
10000000, 01000000, 00100000, 00010000, 00001000, 00000100, 00000010 e 
00000001. 
 
 
Figura 7.2 - Registrador de deslocamento série-paralelo de 8 bits. 
 
 
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 flip-
flops. A palavra de dados finalmente armazenada no registrador vai depender dos 
valores lógicos presentes na linha serial de dados, no instante de cada transição 
ativadora do relógio. Para se ter um registrador de deslocamento de saída serial, 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 também 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. 
 
UFPA / ITEC / FEE Eletrônica Digital 
 80
 
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 certa 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 exigiria 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, 
com expoente igual à quantidade de posições deslocadas. 
 
 As entradas assíncronas de Preset e Clear dos flip-flops podem ser 
aproveitadas 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 
depois coloca-se a linha LOAD em nível alto. 
 
 
Figura 7.4 - Registrador de deslocamento com carregamento paralelo assíncrono. 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 81
 Por exemplo, para o registrador carregar a palavra 10012 em seus flip-flops, faz-
se 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 sequencial que gera uma sequência de saída 
específica e recorrente. Contadores são construídos utilizando-se um flip-flop para 
cada bit da sequê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(a) conta de 010 até 1510 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 frequência por 2n, pois a frequência de Q0 é ½ da frequência 
do relógio, a frequência de Q1 é ½ da frequência de Q0, a frequência de Q2 é ½ da de 
Q1, e assim por diante, como mostrado na figura 7.5(b). 
 
 
Figura 7.5(a) - Contador assíncrono (ripple counter) de 4 bits (módulo 16). 
 
UFPA / ITEC / FEE Eletrônica Digital 
 82
 
Figura 7.5(b) – Diagrama de formas de onda da contagem crescente em 4 bits, módulo 
16. 
 
 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 010 (00002) até 910 (10012), e 
quando o estado 1010 (10102) é atingido, a porta NAND provoca a reinicialização 
(reset) do contador para 010, e o ciclo recomeça. Um contador de década é muito útil 
para contar em BCD ou em decimal. 
 
 
Figura 7.6 - Contador assíncrono adaptado para contar até 910 (decade counter). 
 
 
 
7.2.2. Contadores Síncronos 
 
 Os contadores síncronos são aqueles em que todos os flip-flops recebem o 
mesmo sinal de relógio e são gatilhados simultaneamente por ele. 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 acontece com os contadores assíncronos. 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 tempo de atraso de n FF's. 
 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 83
 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 sequencial. 
 
 
Figura 7.7 - Contador síncrono de módulo 16. 
 
 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 
sequência de contagem desejada. Este problema pode ser resolvido para qualquer 
contagem seguindo-se o procedimento sistemático com as etapas abaixo: 
 
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 sequência de contagem. Ou seja, se o flip-flop utilizado for mais 
simples, então a parte combinacional será mais complexa. Entretanto, embora o flip-
flop D não seja a escolha mais natural, ele pode acabar sendo escolhido por requerer 
UFPA / ITEC / FEE Eletrônica Digital 
 84
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. 
 
Qn Qn+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. 
 
Estado atual Estado futuro 
Q2n Q1n Q0n Q2n+1 Q1n+1 Q0n+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 Q2n, Q1n e Q0n. As expressões das entradas serão: 
 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 85
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. 
 
 
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 sequência cíclica de pulsos de controle. A entrada Inic deve 
ser colocada em '0' momentaneamente, estabelecendo o estado inicial do contador em 
10002, antes de sua operação normal. Para quatro pulsos de relógio, as saídas Q (Q3, 
..., Q0) 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 
UFPA / ITEC / FEE Eletrônica Digital 
 86
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 
00002, antes de sua operação normal. Os estados das saídas Q (Q3, ..., Q0) após cada 
pulso de relógio seguirão o padrão 0000, 1000, 1100, 1110, 1111, 0111, 0011, 0001, 
0000... Nesta sequência, somente um bit muda de um estado para o outro. 
 
 
Figura 7.10 - Contador Johnson (twisted ring counter). 
 
 
 
 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 87
CAPÍTULO 8 
 
 
Análise e Projeto de Circuitos Sequenciais 
 
 
 
 
8.1. Introdução 
 
 As máquinas de estados finitos são sistemas sequenciais 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 Xn-1...X0, e um conjunto de m 
saídas, Zm-1...Z0. Há dois conjuntos de k sinais internos, Qk-1...Q0 e Yk-1...Y0. 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, Xn-1...X0, e do estado atual, Qk-1...Q0. As 
saídas do circuito, Zm-1...Z0, também são funções combinacionais das entradas e do 
estado atual. Para criar um circuito sequencial síncrono baseado neste modelo, é 
necessário deduzir as funções combinacionais das variáveis de próximo estado, 
Yk-1...Y0, e das saídas, Zm-1...Z0. 
 
 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 2k-1 + 1 e 2k 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 Xn-1...X0, 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 
UFPA / ITEC / FEE Eletrônica Digital 
 88
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 sequencial 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, Yk-1...Y0, e as funções para as saídas, Zm-1...Z0. 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. 
 
ELETRÔNICA DIGITAL Prof. Daniel Cardoso 
 89
 
Figura 8.2 - Máquina de estados finitos de modelo Moore.

Mais conteúdos dessa disciplina