Computing">
Nothing Special   »   [go: up one dir, main page]

Slides 165 186

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 11

V 1.

00 09052003

Contadores
• Um contador é um circuito sequencial que conta...
– em binário, decimal ou segundo outras sequências
– podem ser assíncronos ou síncronos (máquinas de estados)
• Aplicações
– contar coisas...
• por exemplo, os carros que entram num parque de estacionamento
– certas máquinas de estados podem ser projectadas
facilmente recorrendo a contadores e circuitos adicionais
• Disponíveis como circuitos da série 74xxx
– binários, decimais ou up/down

FEUP/DEEC - Sistemas Digitais 165


http://www.fe.up.pt/~jca/feup/sd

Contador assíncrono
• Com FFs tipo T:
flip-flop tipo T
EN T Q Q0 T CLK Q
0 Q ant.
CLK CLK QN 1 Q ant.

T Q Q1

CLK QN

T Q Q2

CLK
CLK QN
Q0

Cada flip-flops tem como relógio a saída QN Q1


do flip-flop anterior (ripple counter) Q2

FEUP/DEEC - Sistemas Digitais 166


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 1
V 1.00 09052003

Contador síncrono
• Com FFs tipo T:
EN T Q Q0

CLK CLK

T Q Q1

CLK

T Q Q2

CLK

Todos os flip-flops têm o mesmo sinal de relógio (circuito síncrono)


A saída Q i troca quando todos os bits anteriores (Q0 a Qi-1) são iguais a 1

FEUP/DEEC - Sistemas Digitais 167


http://www.fe.up.pt/~jca/feup/sd

Contador síncrono
• Com FFs tipo D:

D Q Q0
EN A B XOR
CLK
0 0 0
CLK
0 1 1
1 0 1
1 1 0
D Q Q1

CLK

D Q Q2

CLK

FEUP/DEEC - Sistemas Digitais 168


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 2
V 1.00 09052003

Contador com load paralelo


EN 0 Q Q0
D
D0 1

CLK CLK

0 Q Q1
D
D1 1

CLK

0 Q Q2
D
D2 1

CLK
load

Quando load está activo, o contador é “carregado” com o que está nas entradas Di (Qi* = Di)
Como acrescentar uma entrada de reset (síncrono) ?
FEUP/DEEC - Sistemas Digitais 169
http://www.fe.up.pt/~jca/feup/sd

Contador binário 74x163


74x163 estado próximo
presente estado
/CLR /LD ENT ENP QD QC QB QA QD* QC* QB* QA*
0 x x x x x x x 0 0 0 0
1 0 x x x x x x D C B A
1 1 0 x x x x x QD QC QB QA
1 1 x 0 x x x x QD QC QB QA
1 1 1 1 N (se N<15) N + 1
1 1 1 1 1 1 1 1 0 0 0 0

74x163
clock
CLK
RCO=0 quando QD~QA=1111 e ENT=1
CLR
LD
ENP
ENT
D QD
C QC
B QB
A QA
RCO

FEUP/DEEC - Sistemas Digitais 170


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 3
V 1.00 09052003

74x163 – contador módulo 10


Vcc (5V)
74x163 Estado
CLK
QD QC QB QA CLR=QD.QA
0 0 0 0 1
CLR 0 0 0 1 1
LD sequência 0 0 1 0 1
ENP
de estados 0 0 1 1
0 1 0 0
1
1
ENT
0 1 0 1 1
A QD 0 1 1 0 1
B QC 0 1 1 1 1
C QB 1 0 0 0 1
D QA 1 0 0 1 0
0 0 0 0 1
RCO . . .
CLR é activado quando
o estado actual é 1001

sequência de valores gerados na saída do contador: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ...


FEUP/DEEC - Sistemas Digitais 171
http://www.fe.up.pt/~jca/feup/sd

74x163 – exemplo 1
Vcc (5V)
Estado
74x163
QD QC QB QA CLR LD
CLK
valor carregado 0 0 0 0 1 1
CLR 0 0 0 1 1 1
LD quando LD 0 0 1 0 1 1
ENP é activado 0 0 1 1 1 1
ENT 0 1 0 0 1 1
A
0 1 0 1 1 1
QD
B QC
0 1 1 0 1 1
C QB 0 1 1 1 1 0
D QA 1 0 1 0 1 1
RCO 1 0 1 1 1 1
1 1 0 0 0 1
0 0 0 0 1 1
. . .
Gnd
(0V) CLR é activado quando
o estado actual é 1100
LD é activado quando
o estado actual é 0111
FEUP/DEEC - Sistemas Digitais 172
http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 4
V 1.00 09052003

74x163 – exemplo 3
Vcc (5V)

74x163
clock
CLK
CLR
74x138 LD
G1 Y0 Gnd ENP
G2A Y1 ENT
G2B Y2 QD
D QD
Y3 C QC
QC
Y4 B QB
C QB
Y5 A QA QA
B Y6 RCO
A Y7

FEUP/DEEC - Sistemas Digitais 173


http://www.fe.up.pt/~jca/feup/sd

Contador com descodificador 3÷8


Vcc=+5V

G1 Y0 S0
sequência de estados:
74x163
G2A Y1 S1
CLK CLK G2B
S2 S0 S1 S2 S3 S4 S5 S6 S7
CLRL CLR Y2
LD 0 1 1 1 1 1 1 1
Y3 S3 1 0 1 1 1 1 1 1
EN ENP QD
ENT Y4 S4 1 1 0 1 1 1 1 1
QC C 1 1 1 0 1 1 1 1
D
QB B Y5 S5 1 1 1 1 0 1 1 1
C 1 1 1 1 1 0 1 1
B
QA A Y6 S6
1 1 1 1 1 1 0 1
A RCO Y7 S7 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1
. . .

FEUP/DEEC - Sistemas Digitais 174


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 5
V 1.00 09052003

Divisor de frequência
Vcc=+5V

CLK 74x163
CLK
(frequência f)
CLRL CLR
LD
EN ENP QD CLK2 (f/2)
ENT
QC CLK4 (f/4) DC=50%
D
QB CLK8 (f/8)
C
QA CLK16 (f/16)
B
A RCO PULSE16 (f/16) DC=6.25% (1/16)

CLK (f)
CLK2 (f/2)
CLK4 (f/4)
CLK8 (f/8)
CLK16 (f/16)
PULSE16 (f/16)

FEUP/DEEC - Sistemas Digitais 175


http://www.fe.up.pt/~jca/feup/sd

74x169 - contador up/down


74x169
clock
CLK
UP/DWN
LD
ENP
ENT
D QD
C QC
B QB
A QA
RCO

74x169 estado próximo


presente estado
UPDWN LD ENT ENP QD QC QB QA RCO QD* QC* QB* QA*
x 0 x x x x x x a) D C B A
x 1 1 x x x x x 1 QD QC QB QA
x 1 x 1 x x x x a) QD QC QB QA
1 1 0 0 N (se N<15) 1 N + 1
1 1 0 0 1 1 1 1 0 0 0 0 0
0 1 0 0 N (se N>0) 1 N - 1
0 1 0 0 0 0 0 0 0 1 1 1 1

a) RCO=0 se ENT=0 e ( (N=15 e UPDWN=1) ou (N=0 e UPDWN=0) )


FEUP/DEEC - Sistemas Digitais 176
http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 6
V 1.00 09052003

74x169 – exemplo 1
Vcc (5V)
74x169
CLK
UP/DWN
LD
ENP
ENT

D QD
C QC
B QB
A QA
RCO
Gnd
(0V)

FEUP/DEEC - Sistemas Digitais 177


http://www.fe.up.pt/~jca/feup/sd

Contador módulo 256 (8 bits)


74x163
CLK CLK
CLRL CLR
LDL LD
EN ENP QD Q3
ENT
QC Q2
D3 D bits menos significativos
QB Q1
D2 C Q0
QA
D1 B
D0 A RCO

74x163
CLK
CLR Este só conta quando o contador
LD menos significativo atingir o estado 1111

ENP QD Q7
ENT
QC Q6
D7 D bits mais significativos
QB Q5
D6 C
QA Q4
D5 B RCO vale 1 quando for atingido
D4 A RCO RCO o valor máximo 11111111

FEUP/DEEC - Sistemas Digitais 178


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 7
V 1.00 09052003

Outros contadores da série 74xxx


• 74x161
– igual ao 74x163 mas com CLR assíncrono
• logo que CLR é activado as saídas QD~QA são colocadas com 0
• no exemplo do slide 171, o estado 1001 não ocorre
– quando as saídas são 1001 é activado CLR e passam logo para 0000

• 74x160
– igual ao 74x161 mas apenas conta de 0 a 9 (decade counter)
• 74x162
– igual ao 74x163 mas apenas conta de 0 a 9 (decade counter)

FEUP/DEEC - Sistemas Digitais 179


http://www.fe.up.pt/~jca/feup/sd

Problema
Construir uma máquina Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12 Y13 Y14 Y15
de estados com 16 saídas 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Y0, Y1, ... Y15 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
que produza ciclicamente 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
a sequência de valores seguinte: 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
sugestão 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
usar um 74x169 (up/down) 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
para gerar a sequência 0..15..0, 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
e um descodificador 4÷16 para 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
produzir as 16 saídas... 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FEUP/DEEC - Sistemas Digitais 180


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 8
V 1.00 09052003

Registo de deslocamento
(shift-register)
SERIAL_IN D Q Q0
CLK CLK

D Q Q1 saída paralela
CLK

D Q Q2
CLK
SERIAL_OUT

CLK
SERIAL_IN 0 1 0 0 1 1 0 1 0
Q0 0 1 0 0 1 1 0 1

Q1 0 0 1 0 0 1 1 0

Q2 0 0 0 1 0 0 1 1

FEUP/DEEC - Sistemas Digitais 181


http://www.fe.up.pt/~jca/feup/sd

Registo de deslocamento
com carregamento paralelo
carregamento paralelo: Qi* = D i (LOAD/SHIFT=1)

SERIAL_IN 0
D0 1 D Q Q0
CLK CLK

deslocamento para a esquerda


0 Qi*=Qi-1; Q0*=SERIAL_IN
D1 1 D Q Q1
(LOAD/SHIFT=0)
CLK

0
D2 1 D Q Q2
CLK

LOAD/SHIFT SERIAL_OUT

FEUP/DEEC - Sistemas Digitais 182


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 9
V 1.00 09052003

Shift-register 74x194
próximo estado
função s1 s0 QA* QB* QC* QD*
hold 0 0 QA QB QC QD
shift right 0 1 RIN QA QB QC
shift left 1 0 QB QC QD LIN
load 1 1 A B C D

CLK
CLR LIN é a entrada série quando é feito um
deslocamento para a esquerda (de QD para QA)
S1
S0
LIN
D QD
C QC
B QB
A QA
RIN RIN é a entrada série quando é feito um
deslocamento para a direita (de QA para QD)

FEUP/DEEC - Sistemas Digitais 183


http://www.fe.up.pt/~jca/feup/sd

Exemplo 1: detector de sequência


Vcc=+5V

CLK
CLK
CLR
S1
S0
S
LIN
D QD
C QC
Z
B QB
A QA
RIN

Z é quando for detectada na entrada S a sequência 1101 em 4 ticks de relógio consecutivos


São também detectadas sequências parcialmente (como em 1101101)?

FEUP/DEEC - Sistemas Digitais 184


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 10
V 1.00 09052003

Exemplo2: detector de sequência


Vcc=+5V

CLK
CLK
CLR
S1
S0
S
LIN
D QD
C QC
Z
B QB
A QA
RIN

Quando é detectada a sequência as saídas são “estragadas” (é carregado S000 para Q DQCQ BQ A)
Apenas são detectadas sequências não sobrepostas

FEUP/DEEC - Sistemas Digitais 185


http://www.fe.up.pt/~jca/feup/sd

Exemplo 3: contador
Vcc=+5V

CLK
CLK
CLR
S1
S0
LIN
D QD QD
C QC QC
B QB QB
A QA QA
RIN

FEUP/DEEC - Sistemas Digitais 186


http://www.fe.up.pt/~jca/feup/sd

Sistemas Digitais 2002/2003 - FEUP/DEEC -


José Carlos Alves 11

Você também pode gostar