Aula 14: Aplicações de Flip-flops

Transcription

Aula 14: Aplicações de Flip-flops
Aula 14: Aplicações de Flip-flops
Circuitos Digitais
Rodrigo Hausen
CMCC – UFABC
15 de março de 2013
http://compscinet.org/circuitos
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
1 / 24
Relembrando: Flip-flop S-R
Flip-flop S-R sensível à borda de descida do clock (borda negativa)
S
Ck
R
S
Q
S
En
En
R
R
Q
S
0
0
1
1
Rodrigo Hausen (CMCC – UFABC)
R
0
1
0
1
Ck
?
1→0
1→0
1→0
Q
Q
Q
Q
Qi
Qi−1
0
1
X
Q
S
=
Ck
R
Q
(mantem Q)
(reset Q)
(set Q)
(proibido)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
2 / 24
Relembrando: Flip-flop S-R
Flip-flop S-R sensível à borda de subida do clock (borda positiva)
S
S
Ck
En
En
R
R
R
Q
S
Q
S
0
0
1
1
Rodrigo Hausen (CMCC – UFABC)
R
0
1
0
1
Ck
?
0→1
0→1
0→1
Q
Q
Qi
Qi−1
0
1
X
Q
Q
Q
S
=
Ck
R
Q
(mantem Q)
(reset Q)
(set Q)
(proibido)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
3 / 24
Relembrando: Flip-flop D
Flip-flop D sensível à borda de descida.
D
Q
S
Ck
Ck
D
0
1
R
Q
Ck
1→0
1→0
Qi
0
1
Rodrigo Hausen (CMCC – UFABC)
=
Q
D
Ck
Q
(reset = armazena 0)
(set = armazena 1)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
4 / 24
Relembrando: Flip-flop J-K
J
Ck
K
Q
=
J
K
Ck
Qi
Qi
0
0
1
1
0
1
0
1
?
1→0
1→0
1→0
Qi−1
0
1
Qi−1
Qi−1
1
0
Qi−1
Rodrigo Hausen (CMCC – UFABC)
Q
J
Q
Ck
K
Q
(mantem)
(kill = reset)
(jump = set)
(inverte)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
5 / 24
Flip-flops: Aplicações
Contador de 3 bits:
'1'
'1'
Q
J
Ck
'1'
K
Q
a0
Rodrigo Hausen (CMCC – UFABC)
Q
J
Ck
Ck
K
Q
J
Ck
K
Q
Q
a1
Aula 14: Aplicações de Flip-flops
a2
15 de março de 2013
6 / 24
Flip-flops: Aplicações
Problema: Faça um contador de 0 até 5.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
7 / 24
Flip-flops: Aplicações
Problema: Faça um contador de 0 até 5.
Estados de a2 , a1 , a0 , respectivamente:
000, 001, 010, 011, 100, 101, 000, . . .
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
7 / 24
Flip-flops: Aplicações
Problema: Faça um contador de 0 até 5.
Estados de a2 , a1 , a0 , respectivamente:
000, 001, 010, 011, 100, 101, 000, . . .
Como fazer com que todas as saídas Q dos flip-flops J-K tornem-se 0
antes da transição 111→000 dos estados das saídas?
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
7 / 24
Flip-flops: Aplicações
Problema: Faça um contador de 0 até 5.
Estados de a2 , a1 , a0 , respectivamente:
000, 001, 010, 011, 100, 101, 000, . . .
Como fazer com que todas as saídas Q dos flip-flops J-K tornem-se 0
antes da transição 111→000 dos estados das saídas?
Precisamos alterar o flip-flop J-K para que possamos zerar Q
independentemente de detectarmos uma borda do clock. Para isso,
precisamos voltar ao latch S-R com enable.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
7 / 24
Latch S-R com Enable, Preset e Clear
Problema: latch S-R só responde às entradas S e R quando En = 1.
Queremos poder fazer reset e set, independentemente do estado de En.
S
Q
En
Q
R
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
8 / 24
Latch S-R com Enable, Preset e Clear
Problema: latch S-R só responde às entradas S e R quando En = 1.
Queremos poder fazer reset e set, independentemente do estado de En.
PRE
S
Q
En
Q
R
CLR
Solução: adicione duas entradas ativas em nível baixo, PRE e CLR, às
portas NAND das saídas.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
8 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
PRE
S
Q
En
Q
R
CLR
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
1
S
Q
En
Q
R
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
quando PRE = 1 e CLR = 0, ocorre reset (Q = 0);
1
S
0
En
1
R
0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
quando PRE = 1 e CLR = 0, ocorre reset (Q = 0);
quando PRE = 0 e CLR = 1, ocorre set (Q = 1);
0
S
1
En
0
R
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
quando PRE = 1 e CLR = 0, ocorre reset (Q = 0);
quando PRE = 0 e CLR = 1, ocorre set (Q = 1);
é proibido PRE = 0 e CLR = 0
PRE
S
Q
En
Q
R
CLR
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
quando PRE = 1 e CLR = 0, ocorre reset (Q = 0);
quando PRE = 0 e CLR = 1, ocorre set (Q = 1);
é proibido PRE = 0 e CLR = 0
PRE
S
Q
=
En
Q
R
CLR
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Latch S-R com Enable, Preset e Clear
Comportamento do Latch S-R com Enable, Preset e Clear:
quando PRE = 1 e CLR = 1, idêntico ao latch S-R com enable;
quando PRE = 1 e CLR = 0, ocorre reset (Q = 0);
quando PRE = 0 e CLR = 1, ocorre set (Q = 1);
é proibido PRE = 0 e CLR = 0
PRE
S
Q
S
=
En
Q
R
PRE
Q
En
R
CLR
Q
CLR
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
9 / 24
Entradas assíncronas: Preset e Clear
Usando latches S-R com Enable, Preset e Clear, é possível fazer flip-flops
S-R, D e J-K com entradas Preset e Clear ativas em nível baixo.
As entradas PRE e CLR são ditas assíncronas pois elas interferem
no funcionamento dos flip-flops independentemente do clock (ao
contrário das demais entradas, que só afetam o flip-flop em uma das
bordas do clock)
S
PRE
Q
Ck
R
CLR
D
PRE
Q
J
Ck
Q
Rodrigo Hausen (CMCC – UFABC)
CLR
PRE
Q
Ck
Q
Aula 14: Aplicações de Flip-flops
K
CLR
Q
15 de março de 2013
10 / 24
Voltando ao contador
Voltando ao problema original: fazer um contador de 0 até 5.
Contador de 3 bits (conta de 0 a 7):
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
11 / 24
Voltando ao contador
Voltando ao problema original: fazer um contador de 0 até 5.
Contador de 3 bits (conta de 0 a 7):
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Como evitar a transição 101 → 110, transformando-a em 101 → 000?
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
11 / 24
Voltando ao contador
Voltando ao problema original: fazer um contador de 0 até 5.
Contador de 3 bits (conta de 0 a 7):
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Como evitar a transição 101 → 110, transformando-a em 101 → 000?
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Idéia: fazer reset dos flip-flops do contador assim que a contagem for
excedida!
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
11 / 24
Voltando ao contador
Voltando ao problema original: fazer um contador de 0 até 5.
Contador de 3 bits (conta de 0 a 7):
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Como evitar a transição 101 → 110, transformando-a em 101 → 000?
000 → 001 → 010 → 011 → 100 → 101 → 110 → 111
6
Idéia: fazer reset dos flip-flops do contador assim que a contagem for
excedida!
Isto acontece quando chegamos em 5 + 1 = (110)2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
11 / 24
Voltando ao contador
Agora, o problema é detectar, por meio de um sinal ativo de nível baixo,
quando (a2 a1 a0 )2 = (110)2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
12 / 24
Voltando ao contador
Agora, o problema é detectar, por meio de um sinal ativo de nível baixo,
quando (a2 a1 a0 )2 = (110)2
Detecção por nível alto: a2 a1 a0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
12 / 24
Voltando ao contador
Agora, o problema é detectar, por meio de um sinal ativo de nível baixo,
quando (a2 a1 a0 )2 = (110)2
Detecção por nível alto: a2 a1 a0
Detecção por nível baixo: a2 a1 a0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
12 / 24
Voltando ao contador
Agora, o problema é detectar, por meio de um sinal ativo de nível baixo,
quando (a2 a1 a0 )2 = (110)2
Detecção por nível alto: a2 a1 a0
Detecção por nível baixo: a2 a1 a0
'1'
'1'
J
Ck
PRE
Q
'1'
J
CLR
Q
J
K
Q
a0
Rodrigo Hausen (CMCC – UFABC)
CLR
PRE
Q
Ck
Ck
Ck
K
PRE
K
Q
a1
Aula 14: Aplicações de Flip-flops
CLR
Q
a2
15 de março de 2013
12 / 24
Voltando ao contador
Agora, o problema é detectar, por meio de um sinal ativo de nível baixo,
quando (a2 a1 a0 )2 = (110)2
Detecção por nível alto: a2 a1 a0
Detecção por nível baixo: a2 a1 a0
'1'
'1'
J
Ck
PRE
Q
J
CLR
PRE
Q
J
K
Q
a0
Rodrigo Hausen (CMCC – UFABC)
CLR
PRE
Q
Ck
Ck
Ck
K
detector 6 = (110)2
'1'
K
Q
a1
Aula 14: Aplicações de Flip-flops
CLR
Q
a2
15 de março de 2013
12 / 24
Contador módulo m
Contador módulo m: circuito digital com uma entrada de clock que conta
de 0 até m − 1.
Exemplo: contador módulo 6, que conta de 0 a 5.
'1'
'1'
J
Ck
PRE
Q
J
CLR
PRE
Q
J
K
Q
a0
Rodrigo Hausen (CMCC – UFABC)
CLR
PRE
Q
Ck
Ck
Ck
K
detector 6 = (110)2
'1'
K
Q
a1
Aula 14: Aplicações de Flip-flops
CLR
Q
a2
15 de março de 2013
13 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz.
'1'
'1'
Q
J
Ck
'1'
K
Q
a0
Q
J
Ck
Ck
K
Q
J
Ck
K
Q
Q
a1
a2
(Solução na lousa)
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
14 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz.
'1'
'1'
Q
J
Ck
'1'
Q
K
Q
J
Ck
Ck
K
Q
J
Ck
Q
K
Q
a0
a1
a2
(Solução na lousa) É um contador regressivo para 3 bits: 111, 110, 101,
. . . , 001, 000, 111, . . .
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
14 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, saída: Q)
Q
D
Ck
Q
Ck
Q
(Solução na lousa)
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
15 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, saída: Q)
Q
D
Ck
Q
Ck
Q
(Solução na lousa) Funciona como um flip-flop J-K com as entradas J = 1
e K = 1, ou seja, inverte a saída a cada borda de descida do clock.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
15 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, saídas: a2 , a1 , a0 )
Q
D
Ck
Q
D
Ck
Ck
Q
Ck
Q
a0
Q
D
Q
a1
a2
(Solução na lousa)
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
16 / 24
Flip-flops: Aplicações
Faça o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, saídas: a2 , a1 , a0 )
Q
D
Ck
Q
D
Ck
Ck
Q
Ck
Q
a0
Q
D
Q
a1
a2
(Solução na lousa) Outra maneira de implementar um contador de 3 bits.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
16 / 24
Flip-flops: Aplicações
Registrador síncrono: só atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nível baixo.
Entrada de dados
D
Q
Ck
CLR
D
Q
Ck
Q
CLR
D
Q
Ck
Q
CLR
D
Q
Ck
Q
CLR
Q
Ck
CLR
Saída de dados
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
17 / 24
Flip-flops: Aplicações
Registrador síncrono: só atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nível baixo.
Entrada de dados
D
Q
Ck
CLR
D
Q
D
Ck
Q
CLR
Q
Ck
Q
CLR
D
Q
Ck
Q
CLR
Q
Ck
CLR
Saída de dados
=
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
17 / 24
Flip-flops: Aplicações
Registrador síncrono: só atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nível baixo.
Entrada de dados
D
Q
Ck
CLR
D
Q
D
Ck
Q
CLR
Q
Ck
Q
CLR
D
Q
Ck
Q
CLR
Q
Ck
CLR
Saída de dados
Entrada
=
Ck
CLR
Registrador
4 bits
Saída
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
17 / 24
Flip-flops: Aplicações
O que faz o circuito abaixo? (Entrada: Ck, Saídas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Registrador 4 bits
Saída
'0 0 0 0'
Somador completo c
in
4 bits
Rodrigo Hausen (CMCC – UFABC)
'1'
Aula 14: Aplicações de Flip-flops
15 de março de 2013
18 / 24
Flip-flops: Aplicações
O que faz o circuito abaixo? (Entrada: Ck, Saídas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Contador de 4 bits
Registrador 4 bits
Saída
'0 0 0 0'
Somador completo c
in
4 bits
Rodrigo Hausen (CMCC – UFABC)
'1'
Aula 14: Aplicações de Flip-flops
15 de março de 2013
18 / 24
Flip-flops: Aplicações
O que faz o circuito abaixo? (Entrada: Ck, Saídas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Contador de 4 bits
Registrador 4 bits
Saída
'0 0 0 0'
Somador completo c
in
4 bits
Rodrigo Hausen (CMCC – UFABC)
'1'
Aula 14: Aplicações de Flip-flops
Diferentemente
dos
anteriores, este contador é síncrono:
todas as saídas são
sincronizadas
15 de março de 2013
18 / 24
Projeto de contadores síncronos
...
Modelo geral de um contador síncrono:
...
Ck
Entrada de dados
...
Saída de dados
saída próx. estado
Registrador n bits
...
...
entrada estado
atual
Ck
Circuito combinacional
para o cálculo do
próximo estado
an-1 an-2 ...a 1 a 0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
19 / 24
Projeto de contadores síncronos
Exemplo: projetar um contador de código Gray.
Passo Zero: Fazer o diagrama de estados.
000
100
001
101
011
010
111
110
Cada transição é feita em uma borda de descida do clock.
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
20 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
atual
a 2 a 1 a0
0
0
0
próximo
A2 A1 A0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
atual
a 2 a 1 a0
0
0
0
próximo
A2 A1 A0
0
0
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
atual
a 2 a 1 a0
0
0
0
0
0
1
próximo
A2 A1 A0
0
0
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
atual
a 2 a 1 a0
0
0
0
0
0
1
próximo
A2 A1 A0
0
0
1
0
1
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
atual
a1
0
0
1
a0
0
1
1
próximo
A2 A1 A0
0
0
1
0
1
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
atual
a1
0
0
1
a0
0
1
1
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
atual
a1
0
0
1
1
a0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
atual
a1
0
0
1
1
1
a0
0
1
1
0
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
atual
a1
0
0
1
1
1
1
a0
0
1
1
0
0
1
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
atual
a1
0
0
1
1
1
1
0
a0
0
1
1
0
0
1
1
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
1
atual
a1
0
0
1
1
1
1
0
0
a0
0
1
1
0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
1
atual
a1
0
0
1
1
1
1
0
0
a0
0
1
1
0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
Rodrigo Hausen (CMCC – UFABC)
Para casa: faça o mapa de Karnaugh
para cada saída. Você obterá:
A0 = a1 a2 + a1 a2
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
1
atual
a1
0
0
1
1
1
1
0
0
a0
0
1
1
0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
Rodrigo Hausen (CMCC – UFABC)
Para casa: faça o mapa de Karnaugh
para cada saída. Você obterá:
A0 = a1 a2 + a1 a2 = a1 ⊕ a2
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
1
atual
a1
0
0
1
1
1
1
0
0
a0
0
1
1
0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
Rodrigo Hausen (CMCC – UFABC)
Para casa: faça o mapa de Karnaugh
para cada saída. Você obterá:
A0 = a1 a2 + a1 a2 = a1 ⊕ a2
A1 = a0 a2 + a0 a1
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Um: Obter e simplificar as expressões para cada uma das saídas do
circuito combinacional para o próximo estado.
a2
0
0
0
0
1
1
1
1
atual
a1
0
0
1
1
1
1
0
0
a0
0
1
1
0
0
1
1
0
próximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
Rodrigo Hausen (CMCC – UFABC)
Para casa: faça o mapa de Karnaugh
para cada saída. Você obterá:
A0 = a1 a2 + a1 a2 = a1 ⊕ a2
A1 = a0 a2 + a0 a1
A2 = a0 a1 + a0 a2
Aula 14: Aplicações de Flip-flops
15 de março de 2013
21 / 24
Projeto de contadores síncronos
Passo Dois: Diagrama do circuito.
a0
a1
a2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
22 / 24
Projeto de contadores síncronos
Passo Dois: Diagrama do circuito. A0 = a1 ⊕ a2
A0
a0
a1
a2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
22 / 24
Projeto de contadores síncronos
Passo Dois: Diagrama do circuito. A1 = a0 a2 + a0 a1
A0
A1
a0
a1
a2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
22 / 24
Projeto de contadores síncronos
Passo Dois: Diagrama do circuito. A2 = a0 a1 + a0 a2
A0
A1
A2
a0
a1
a2
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
22 / 24
Projeto de contadores síncronos
Passo Dois: Diagrama completo do circuito.
A0
Ck
A1
A2
Entrada
Reg. 3 bits
Saída
a2 a1 a0
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
22 / 24
Para casa
Leia as seções 7-3 e 8-1 do livro do Floyd
Exercícios do capítulo 7: autoteste 9, problemas 14, 15, 16, 17, 18,
25 e 26.
Exercícios do capítulo 8: autotestes 1, 3 até 7, problemas 1 a 3.
Leia o texto “Projeto de Máquinas de Estado” no site
Resolva os problemas 14 a 19 do capítulo 8.
I
Nos problemas 16 a 19, use registradores síncronos
(ignore a parte da questão onde é dito “use flip-flops J-K”)
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
23 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
2. Usando flip-flops J-K, faça o circuito de um contador de década (também
chamado contador decádico, é um contador módulo 10)
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
2. Usando flip-flops J-K, faça o circuito de um contador de década (também
chamado contador decádico, é um contador módulo 10)
3. Usando flip-flops J-K, faça um contador decádico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
2. Usando flip-flops J-K, faça o circuito de um contador de década (também
chamado contador decádico, é um contador módulo 10)
3. Usando flip-flops J-K, faça um contador decádico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensíveis à borda de descida, faça um registrador síncrono
para palavras de 4 bits, sensível à borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
2. Usando flip-flops J-K, faça o circuito de um contador de década (também
chamado contador decádico, é um contador módulo 10)
3. Usando flip-flops J-K, faça um contador decádico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensíveis à borda de descida, faça um registrador síncrono
para palavras de 4 bits, sensível à borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
Em cada exercício abaixo, assuma que os únicos componentes disponíveis são um
registrador de 4 bits e um somador completo de 4 bits.
5. Faça um contador progressivo para 4 bits com passo 2: 0000, 0010, 0100,
0110, . . . Entradas: Ck (clock) e CLR (zera o contador).
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24
Exercícios adicionais
1. Como fazer um contador com flip-flops J-K sensíveis à borda de subida?
2. Usando flip-flops J-K, faça o circuito de um contador de década (também
chamado contador decádico, é um contador módulo 10)
3. Usando flip-flops J-K, faça um contador decádico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensíveis à borda de descida, faça um registrador síncrono
para palavras de 4 bits, sensível à borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
Em cada exercício abaixo, assuma que os únicos componentes disponíveis são um
registrador de 4 bits e um somador completo de 4 bits.
5. Faça um contador progressivo para 4 bits com passo 2: 0000, 0010, 0100,
0110, . . . Entradas: Ck (clock) e CLR (zera o contador).
6. Faça um contador progressivo/regressivo (up/down) para 4 bits com três
entradas: Ck (clock), CLR (zera o contador) e U/D (se 0 = progressivo; se 1 =
regressivo).
Rodrigo Hausen (CMCC – UFABC)
Aula 14: Aplicações de Flip-flops
15 de março de 2013
24 / 24