Você está na página 1de 25

Sistemas Digitais (SD)

Contadores
Aula Anterior

 Na aula anterior:
 Registos
 Registos simples
 Banco de registos
 Registos de deslocamento
 Registos multimodo

2
Planeamento
SEMANA TEÓRICA 1 TEÓRICA 2 PROBLEMAS/LABORATÓRIO

Introdução Sistemas de Numeração


17/Fev a 21/Fev

Álgebra de Boole
24/Fev a 28/Fev CARNAVAL P0

Elementos de Tecnologia
02/Mar a 06/Mar Funções Lógicas VHDL

9/Mar a 13/Mar Minimização de Funções Minimização de Funções L0

Def. Circuito Combinatório; Análise Temporal Circuitos Combinatórios


16/Mar a 20/Mar P1

23/Mar a 27/Mar Circuitos Combinatórios Circuitos Combinatórios L1

30/Mar a 03/Abr Circuitos Sequenciais: Latches Circuitos Sequenciais: Flip-Flops P2

06/Abr a 10/Abr FÉRIAS DA PÁSCOA FÉRIAS DA PÁSCOA FÉRIAS DA PÁSCOA

13/Abr a 17/Abr
Caracterização Temporal Registos L2

20/Abr a 24/Abr
Contadores Circuitos Sequenciais Síncronos P3

27/Abr a 01/Mai Síntese de Circuitos Sequenciais Síntese de Circuitos Sequenciais


L3
Síncronos Síncronos
04/Mai a 08/Mai Memórias
Exercícios P4
Teste 1
11/Mai a 15/Mai Máq. Estado Microprogramadas: Circuito de Máq. Estado Microprogramadas: Microprograma
L4
Dados e Circuito de Controlo
18/Mai a 22/Mai Circuitos de Controlo, Transferência e Lógica Programável
P5
Processamento de Dados de um Processador
25/Mai a 29/Mai
P6 P6 L5
3
Sumário

 Tema da aula de hoje:


 Contadores síncronos
 Contadores de módulo 2n
 Projecto de contadores
 Frequência máxima de funcionamento
 Situação de “lock-out”
 Simbologia
 Contador em anel
 Contador Johnson
 Linear feedback shift-register
 Contadores assíncronos
 Contadores por pulsação
 Contadores assíncronos vs. síncronos

 Bibliografia:
 M. Mano, C. Kime: Secções 7.6
 G. Arroz, J. Monteiro, A. Oliveira: Secção 6.6

4
Contador Binário

 Contador Binário
 Um contador binário é um registo que, por aplicação sucessiva de
impulsos de relógio, segue uma sequência de estados
correspondente à numeração binária.

0 1 2 3 4 5 6 7 8

CLK

Q0 0 1 0 1 0 1 0 1 0

Q1 0 0 1 1 0 0 1 1 0

Q2 0 0 0 0 1 1 1 1 0

Q3 0 0 0 0 0 0 0 0 1

5
Contador Binário

 Contador Binário (cont.)


 Exemplo: 0 1 2 3 4 5 6 7 8

CLK
Utilizando FFs Toggle (p.ex. JK
com J = K), o projecto do circuito Q0 0 1 0 1 0 1 0 1 0

aproveita o facto de, na contagem Q1 0 0 1 1 0 0 1 1 0

binária, o Q0 estar sempre a variar,


Q2 0 0 0 0 1 1 1 1 0
o Q1 variar quando Q0 = 1, o Q2
variar quando Q0 = Q1 = 1, etc. Q3 0 0 0 0 0 0 0 0 1

1
& &

Q0 Q1 Q2 Q3
1J 1J 1J 1J
1K 1K 1K 1K
C1 C1 C1 C1

CLK

6
Contador Binário

 Contador Binário (cont.)


 A estrutura do contador é facilmente generalizável para contadores
módulo 2N.
 No entanto, esta estrutura está limitada pelo facto de o fan-in das
portas AND ir aumentando sucessivamente até à última porta, que tem
N entradas.
1 &
& &

Q0 Q1 Q2 Q3 Q7
1J 1J 1J 1J 1J
1K 1K 1K 1K 1K
C1 C1 C1 C1 C1

CLK

 A frequência máxima de relógio a que este contador pode funcionar é:


1 1
f max  
Tmin t pFF  t pAND  t suFF
7
Contador Binário

 Contador Binário (cont.)


 Aproveitando os produtos parciais já realizados, é possível modificar a
estrutura do contador para usar apenas portas AND de 2 entradas,
mantendo a funcionalidade.
1 & & &

Q0 Q1 Q2 Q3 Q7
1J 1J 1J 1J 1J
1K 1K 1K 1K 1K
C1 C1 C1 C1 C1

CLK

 No entanto, o caminho crítico entre FFs aumenta substancialmente,


limitando a frequência máxima a que o contador pode funcionar.
1 1
f max  
Tmin t pFF  (n  2) t pAND  t suFF

8
Contador Binário

 Contador Binário com Flip-Flops tipo D


 O mesmo contador pode ser realizado definindo um FF Toggle a
partir de FF D e aproveitando directamente a mesma estrutura.

Q0


T 1J Q0
1K T =1 1D
C1
C1

1
& &

Q0 Q1 Q2 Q3
=1 1D =1 1D =1 1D =1 1D

C1 C1 C1 C1

CLK

9
Contador Binário

 Exemplos de Componentes
CTR DIV16
CTR DIV 16
CT=0
5CT=0
M1 [Load]
M1[Load] M2 [Count]
M2[Count]
G3
3CT=15
G3
3CT=15
G4 C5/2,3+
C5/2,3,4+

1, 2D
1,5D [1]

1,5D [1]
[2]
[2]
[4]
[4]
[8] [8]

Contador binário, módulo 16, Contador binário, módulo 16, Contador binário bidireccional,
com carregamento paralelo e com carregamento paralelo e módulo 16, com carregamento
clear síncrono clear assíncrono paralelo e clear assíncrono

10
Contador Decimal

 Contador Decimal
 Um contador decimal pode ser realizado directamente a partir de um contador módulo
16, forçando a reinicialização do contador após o estado 9.
 O sinal DETECTA_NOVE pode ser utilizado como indicador de fim de contagem.
15 0

14 1

13 2

12 3

11 4

10 5

9 6

8 7

11
Contadores

 Contador com 2 “saltos” na contagem


 Este contador conta de 0 a 9, passa para o estado 11, conta de 11 a
13, e volta ao estado 0.

12
Contadores

 Ligação em Série de Contadores (1)


 Um contador módulo 256 pode ser realizado ligando em série 2 contadores módulo 16.
 O 2º contador só é habilitado quando o 1º chega ao fim de contagem (o sinal de fim de
contagem do 1º contador está ligado ao enable do 2º contador)

CTR DIV 16 CTR DIV 16


RESET_L 5CT=0 5CT=0
COUNT_H M1[Load] M1[Load]
3CT=15 3CT=15
M2[Count] M2[Count]
G3 G3
ENABLE_H
G4 G4
CLK C5/2,3,4+ C5/2,3,4+

D0 Q0 D4 Q4
1,5D [1] 1,5D [1]

D1 Q1 D5 Q5
[2] [2]

D2 Q2 D6 Q6
[4] [4]

D3 Q3 D7 Q7
[8] [8]

13
Contadores

 Ligação em Série de Contadores (2)


 Este contador faz uma sequência de contagem de …
33 a 161

14
Contador em Anel

 Contador em Anel – “Ring Counter”


 A ligação de N flip-flops em cascata, como registo de deslocamento, pode
também ser usada como um contador simples, usando o mínimo de
hardware.
1D 1D 1D 1D
CLK C1 C1 C1 C1

 O contador evolui segundo a seguinte sequência de 4 estados e depois


repete:
1000 0100 0010 0001

 O contador é muito rápido (não existem portas 1 1


f max  
lógicas no caminho entre FFs)…, Tmin t pFF  t suFF
 … mas é ineficiente em termos do número total de estados de contagem
disponíveis (só usa N estados, dos 2N estados disponíveis).
15
Lock-Out

 Contadores: “LOCK-OUT”
 Estados de LOCK-OUT: no caso de não serem utilizados todos os
estados disponíveis, pode ocorrer a situação do contador se
encontrar num estado não desejado (fora da sequência de contagem)
devido a ruído no circuito ou à não imposição de estado inicial.
 Nessa situação ou o contador entra na sequência de contagem
pretendida ou fica indefinidamente no exterior (Lock-Out).
Exemplo com possibilidade de Lock-Out:
0000 0101 1010

1000 0100 0010 0001

16
Lock-Out

 Contadores: “LOCK-OUT”
 Estados de LOCK-OUT: no caso de não serem utilizados todos os
estados disponíveis, pode ocorrer a situação do contador se
encontrar num estado não desejado (fora da sequência de contagem)
devido a ruído no circuito ou à não imposição de estado inicial.
 Nessa situação ou o contador entra na sequência de contagem
pretendida ou fica indefinidamente no exterior (Lockout).
Exemplo sem possibilidade de Lock-Out: o contador acabará sempre
por entrar na sequência pretendida

17
Lock-Out

 Contador em Lock-Out:
 Solução 1: impor a transição de qualquer estado externo para um
estado da sequência de contagem
 Solução 2: considerar uma entrada extra, de inicialização, que
coloque o sistema num dos estados de contagem pretendido.

Alternativas de 1D 1D 1D 1D
Inicialização no CLK C1 C1 C1 C1

Estado “1000”: INIT S R R R

INIT
 & & &
1D 1D 1D 1D
CLK C1 C1 C1 C1

18
Contador Johnson

 Contador Johnson
 O contador Johnson usa 2N dos 2N estados disponíveis, mantendo a
rapidez do contador em anel.

1D 1D 1D 1D
CLK C1 C1 C1 C1

INIT S R R R

1000 1100 1110 1111

0000 0001 0011 0111

19
Linear Feedback Shift-Register

 Linear Feedback Shift-Register (LFSR)


 O LFSR usa 2N-1 dos 2N estados disponíveis, usando apenas uma
porta lógica adicional.

=1
1D 1D 1D 1D
CLK C1 C1 C1 C1

INIT S R R R

1000 0100 0010 1001 1100 0110 1011 0101 0000

0001 0011 0111 1111 1110 1101 1010

20
Contador Assíncrono

 Contadores Assíncronos por Pulsação – “Ripple Counters”


 Os contadores por pulsação são extremamente simples de realizar.
1 1 1 1

Q0 Q1 Q2 Q3
1J 1J 1J 1J
1K 1K 1K 1K
CLK C1 C1 C1 C1

 No entanto, o facto de serem assíncronos (os FF não estão em sincronismo)


torna-os pouco fiáveis, por dependerem dos atrasos de propagação do sinal.

CLK

Q0 0 1 0 1 0 1 0 1 0 1

Q1 0 0 1 1 0 0 1 1 0 0

Q2 0 0 0 0 1 1 1 1 0 0

Q3 0 0 0 0 0 0 0 0 1 1

0 1 2 3 4 5 6 7 8 9

21
Contador Assíncrono

 Contadores Assíncronos vs. Síncronos


 No contador assíncrono, as mudanças de estado não ocorrem todas na
transição de relógio!
Exemplo: na transição de 7 para 8, o contador passa sucessivamente por vários
estados intermédios.

CLK

tP CLK
Q0 1 0

Q0 1 tP 0
Q1 1 tP 0

Q1 1 tP 0
Q2 1 tP 0

Q2 1 tP 0
Q3 0 tP 1

4tP Q3 0 tP 1
Contagem 7 6 4 0 8
Contador Síncrono
Contador Assíncrono

22
Contador Assíncrono

 Contadores Assíncronos vs. Síncronos


 Quanto mais FFs existirem, mais o bit de maior peso demora a transitar, o
que torna os contadores por pulsação de grande dimensão muito lentos (o
que limita, neste caso, o período de relógio).
 As realizações assíncronas são, portanto e genericamente, de evitar.

CLK

tP CLK
Q0 1 0

Q0 1 tP 0
Q1 1 tP 0

Q1 1 tP 0
Q2 1 tP 0

Q2 1 tP 0
Q3 0 tP 1

4tP Q3 0 tP 1
Contagem 7 6 4 0 8
Contador Síncrono
Contador Assíncrono

23
Próxima Aula

 Tema da Próxima Aula:


 Definição de circuito sequencial síncrono
 Máquinas de Mealy e de Moore
 Especificação de circuitos sequenciais síncronos:
 Diagrama de estados
 Projecto de circuitos sequenciais síncronos:
 Codificação dos estados
 Tabela de transição de estados
 Determinação das funções lógicas de saída e estado seguinte

24
Agradecimentos

Algumas páginas desta apresentação resultam da compilação de várias


contribuições produzidas por:
 Nuno Roma
 Guilherme Arroz
 Horácio Neto
 Nuno Horta
 Pedro Tomás

25

Você também pode gostar