Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Circuitos Digitais
Rodrigo Hausen
CMCC UFABC
15 de maro de 2013
http://compscinet.org/circuitos
15 de maro de 2013
1 / 24
S
Ck
R
En
En
S
0
0
1
1
R
0
1
0
1
Ck
?
10
10
10
Q
Q
Q
Q
Qi
Qi1
0
1
X
Ck
(mantem Q)
(reset Q)
(set Q)
(proibido)
15 de maro de 2013
2 / 24
Ck
En
En
S
0
0
1
1
R
0
1
0
1
Ck
?
01
01
01
Q
Q
Qi
Qi1
0
1
X
Q
Q
Ck
(mantem Q)
(reset Q)
(set Q)
(proibido)
15 de maro de 2013
3 / 24
Relembrando: Flip-flop D
Flip-flop D sensvel borda de descida.
D
S
Ck
Ck
D
0
1
Ck
10
10
Qi
0
1
D
Ck
(reset = armazena 0)
(set = armazena 1)
15 de maro de 2013
4 / 24
Ck
K
Ck
Qi
Qi
0
0
1
1
0
1
0
1
?
10
10
10
Qi1
0
1
Qi1
Qi1
1
0
Qi1
Ck
(mantem)
(kill = reset)
(jump = set)
(inverte)
15 de maro de 2013
5 / 24
Flip-flops: Aplicaes
Contador de 3 bits:
'1'
'1'
J
Ck
'1'
Q
a0
Ck
Ck
Ck
a1
a2
15 de maro de 2013
6 / 24
Flip-flops: Aplicaes
15 de maro de 2013
7 / 24
Flip-flops: Aplicaes
15 de maro de 2013
7 / 24
Flip-flops: Aplicaes
15 de maro de 2013
7 / 24
Flip-flops: Aplicaes
15 de maro de 2013
7 / 24
En
Q
15 de maro de 2013
8 / 24
En
Q
R
CLR
15 de maro de 2013
8 / 24
PRE
En
Q
R
CLR
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
Q
R
1
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
1
R
0
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
0
R
1
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
Q
R
CLR
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
Q
R
CLR
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
En
Q
PRE
En
R
CLR
CLR
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
9 / 24
PRE
Ck
CLR
PRE
Ck
CLR
PRE
Ck
CLR
15 de maro 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
15 de maro 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
15 de maro 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
Idia: fazer reset dos flip-flops do contador assim que a contagem for
excedida!
15 de maro 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
Idia: fazer reset dos flip-flops do contador assim que a contagem for
excedida!
Isto acontece quando chegamos em 5 + 1 = (110)2
15 de maro de 2013
11 / 24
Voltando ao contador
Agora, o problema detectar, por meio de um sinal ativo de nvel baixo,
quando (a2 a1 a0 )2 = (110)2
15 de maro de 2013
12 / 24
Voltando ao contador
Agora, o problema detectar, por meio de um sinal ativo de nvel baixo,
quando (a2 a1 a0 )2 = (110)2
Deteco por nvel alto: a2 a1 a0
15 de maro de 2013
12 / 24
Voltando ao contador
Agora, o problema detectar, por meio de um sinal ativo de nvel baixo,
quando (a2 a1 a0 )2 = (110)2
Deteco por nvel alto: a2 a1 a0
Deteco por nvel baixo: a2 a1 a0
15 de maro de 2013
12 / 24
Voltando ao contador
Agora, o problema detectar, por meio de um sinal ativo de nvel baixo,
quando (a2 a1 a0 )2 = (110)2
Deteco por nvel alto: a2 a1 a0
Deteco por nvel baixo: a2 a1 a0
'1'
'1'
J
Ck
PRE
'1'
CLR
Q
a0
CLR
PRE
Ck
Ck
Ck
PRE
Q
a1
CLR
Q
a2
15 de maro de 2013
12 / 24
Voltando ao contador
Agora, o problema detectar, por meio de um sinal ativo de nvel baixo,
quando (a2 a1 a0 )2 = (110)2
Deteco por nvel alto: a2 a1 a0
Deteco por nvel baixo: a2 a1 a0
'1'
'1'
J
Ck
PRE
CLR
PRE
Q
a0
CLR
PRE
Ck
Ck
Ck
detector 6 = (110)2
'1'
Q
a1
CLR
Q
a2
15 de maro de 2013
12 / 24
Contador mdulo m
Contador mdulo m: circuito digital com uma entrada de clock que conta
de 0 at m 1.
Exemplo: contador mdulo 6, que conta de 0 a 5.
'1'
'1'
J
Ck
PRE
CLR
PRE
Q
a0
CLR
PRE
Ck
Ck
Ck
detector 6 = (110)2
'1'
Q
a1
CLR
Q
a2
15 de maro de 2013
13 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz.
'1'
'1'
J
Ck
'1'
Q
a0
Ck
Ck
Ck
a1
a2
(Soluo na lousa)
15 de maro de 2013
14 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz.
'1'
'1'
J
Ck
'1'
Ck
Ck
Ck
a0
a1
a2
(Soluo na lousa) um contador regressivo para 3 bits: 111, 110, 101,
. . . , 001, 000, 111, . . .
15 de maro de 2013
14 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, sada: Q)
D
Ck
Ck
Q
(Soluo na lousa)
15 de maro de 2013
15 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, sada: Q)
D
Ck
Ck
Q
(Soluo na lousa) Funciona como um flip-flop J-K com as entradas J = 1
e K = 1, ou seja, inverte a sada a cada borda de descida do clock.
15 de maro de 2013
15 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, sadas: a2 , a1 , a0 )
D
Ck
Ck
Ck
Ck
Q
a0
Q
a1
a2
(Soluo na lousa)
15 de maro de 2013
16 / 24
Flip-flops: Aplicaes
Faa o diagrama de forma de onda para o circuito abaixo e diga o que ele
faz (entrada: Ck, sadas: a2 , a1 , a0 )
D
Ck
Ck
Ck
Ck
Q
a0
Q
a1
a2
15 de maro de 2013
16 / 24
Flip-flops: Aplicaes
Registrador sncrono: s atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nvel baixo.
Entrada de dados
Ck
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
CLR
Sada de dados
15 de maro de 2013
17 / 24
Flip-flops: Aplicaes
Registrador sncrono: s atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nvel baixo.
Entrada de dados
Ck
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
CLR
Sada de dados
=
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
17 / 24
Flip-flops: Aplicaes
Registrador sncrono: s atualiza o dado na borda de descida do
clock. Possui uma entrada CLR, ativa em nvel baixo.
Entrada de dados
Ck
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
Q
CLR
Ck
CLR
Sada de dados
Entrada
Ck
CLR
Registrador
4 bits
Sada
15 de maro de 2013
17 / 24
Flip-flops: Aplicaes
O que faz o circuito abaixo? (Entrada: Ck, Sadas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Registrador 4 bits
Sada
'0 0 0 0'
Somador completo c
in
4 bits
'1'
15 de maro de 2013
18 / 24
Flip-flops: Aplicaes
O que faz o circuito abaixo? (Entrada: Ck, Sadas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Contador de 4 bits
Registrador 4 bits
Sada
'0 0 0 0'
Somador completo c
in
4 bits
'1'
15 de maro de 2013
18 / 24
Flip-flops: Aplicaes
O que faz o circuito abaixo? (Entrada: Ck, Sadas: a3 , a2 , a1 , a0 )
Ck
Ck
a3
a2
a1
a0
Entrada
Contador de 4 bits
Registrador 4 bits
Sada
'0 0 0 0'
Somador completo c
in
4 bits
'1'
Diferentemente
dos
anteriores, este contador sncrono:
todas as sadas so
sincronizadas
15 de maro de 2013
18 / 24
...
...
Ck
Entrada de dados
...
Sada de dados
Registrador n bits
...
...
entrada estado
atual
Ck
Circuito combinacional
para o clculo do
prximo estado
15 de maro de 2013
19 / 24
001
101
011
010
111
110
15 de maro de 2013
20 / 24
prximo
A2 A1 A0
15 de maro de 2013
21 / 24
prximo
A2 A1 A0
0
0
1
15 de maro de 2013
21 / 24
prximo
A2 A1 A0
0
0
1
15 de maro de 2013
21 / 24
prximo
A2 A1 A0
0
0
1
0
1
1
15 de maro de 2013
21 / 24
a2
0
0
0
atual
a1
0
0
1
a0
0
1
1
prximo
A2 A1 A0
0
0
1
0
1
1
15 de maro de 2013
21 / 24
a2
0
0
0
atual
a1
0
0
1
a0
0
1
1
prximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
15 de maro de 2013
21 / 24
a2
0
0
0
0
atual
a1
0
0
1
1
a0
0
1
1
0
prximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
15 de maro de 2013
21 / 24
a2
0
0
0
0
1
atual
a1
0
0
1
1
1
a0
0
1
1
0
0
prximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
15 de maro de 2013
21 / 24
a2
0
0
0
0
1
1
atual
a1
0
0
1
1
1
1
a0
0
1
1
0
0
1
prximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
15 de maro de 2013
21 / 24
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
prximo
A2 A1 A0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
15 de maro de 2013
21 / 24
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
prximo
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
15 de maro de 2013
21 / 24
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
prximo
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
15 de maro de 2013
21 / 24
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
prximo
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
15 de maro de 2013
21 / 24
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
prximo
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
15 de maro de 2013
21 / 24
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
prximo
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
15 de maro de 2013
21 / 24
a0
a1
a2
15 de maro de 2013
22 / 24
A0
a0
a1
a2
15 de maro de 2013
22 / 24
A0
A1
a0
a1
a2
15 de maro de 2013
22 / 24
A0
A1
A2
a0
a1
a2
15 de maro de 2013
22 / 24
A0
Ck
A1
A2
Entrada
Reg. 3 bits
Sada
a2 a1 a0
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
22 / 24
Para casa
15 de maro de 2013
23 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
15 de maro de 2013
24 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
2. Usando flip-flops J-K, faa o circuito de um contador de dcada (tambm
chamado contador decdico, um contador mdulo 10)
15 de maro de 2013
24 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
2. Usando flip-flops J-K, faa o circuito de um contador de dcada (tambm
chamado contador decdico, um contador mdulo 10)
3. Usando flip-flops J-K, faa um contador decdico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
15 de maro de 2013
24 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
2. Usando flip-flops J-K, faa o circuito de um contador de dcada (tambm
chamado contador decdico, um contador mdulo 10)
3. Usando flip-flops J-K, faa um contador decdico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensveis borda de descida, faa um registrador sncrono
para palavras de 4 bits, sensvel borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
15 de maro de 2013
24 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
2. Usando flip-flops J-K, faa o circuito de um contador de dcada (tambm
chamado contador decdico, um contador mdulo 10)
3. Usando flip-flops J-K, faa um contador decdico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensveis borda de descida, faa um registrador sncrono
para palavras de 4 bits, sensvel borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
Em cada exerccio abaixo, assuma que os nicos componentes disponveis so um
registrador de 4 bits e um somador completo de 4 bits.
5. Faa um contador progressivo para 4 bits com passo 2: 0000, 0010, 0100,
0110, . . . Entradas: Ck (clock) e CLR (zera o contador).
15 de maro de 2013
24 / 24
Exerccios adicionais
1. Como fazer um contador com flip-flops J-K sensveis borda de subida?
2. Usando flip-flops J-K, faa o circuito de um contador de dcada (tambm
chamado contador decdico, um contador mdulo 10)
3. Usando flip-flops J-K, faa um contador decdico regressivo:
1001, 1000, 0111, . . . , 0001, 0000, 1001, . . .
4. Usando flip-flops D sensveis borda de descida, faa um registrador sncrono
para palavras de 4 bits, sensvel borda de subida. Entradas: Ck, CLR e WE
(write enable = habilita escrita).
Em cada exerccio abaixo, assuma que os nicos componentes disponveis so um
registrador de 4 bits e um somador completo de 4 bits.
5. Faa um contador progressivo para 4 bits com passo 2: 0000, 0010, 0100,
0110, . . . Entradas: Ck (clock) e CLR (zera o contador).
6. Faa um contador progressivo/regressivo (up/down) para 4 bits com trs
entradas: Ck (clock), CLR (zera o contador) e U/D (se 0 = progressivo; se 1 =
regressivo).
Rodrigo Hausen (CMCC UFABC)
15 de maro de 2013
24 / 24