Você está na página 1de 81

Circuitos sequenciais

Agenda
 Circuitos síncronos e assíncronos, clock...
 Latch e flip-flop (funcionamento)
 Latch D com enable
 Flip-flop D com:
 Reset
 Controle de escrita
 Contadores
 Contador de clock sequencial
 Contador síncrono (flip-flop JK)

2
Circuitos sequenciais

 Circuitos digitais
 Combinacionais
 Circuitos onde em qualquer instante de tempo o valor da
saída depende unicamente do valor das entradas
 Exemplo: todos circuitos vistos até agora

 Sequenciais
 Circuito onde o valor das saídas é determinado não
somente a partir do valor das entradas mas também a
partir do estado do circuito
 Exemplo: contador

3
Circuitos sequenciais

 Modelo de circuito combinacional


 Saídas dependem apenas das entradas

 Podem conter diversas saídas, cada uma regida


por uma equação lógica distinta

4
Circuitos sequenciais

 Modelo de circuito sequencial


 Composto por um circuito combinacional e
elementos de memória

Entradas Circuito Saídas


combinacional
n n Elementos de n
memória

 Elementos de memória armazenam informação codificada


em binário (e.g. estado atual)
 Saídas dependem das entradas e do estado atual

5
Circuitos sequenciais

 Modelo de circuito sequencial


 Composto por um circuito combinacional e
elementos de memória Armazenam o
estado atual

Entradas Circuito Saídas


combinacional Estado
n n Elementos de n
atual
Estado memória
atual

 Elementos de memória armazenam informação codificada


em binário (e.g. estado atual)
 Saídas dependem das entradas e do estado atual
O estado atual do circuito é o conjunto de todos os bits armazenados em seus elementos de memória. O estado do circuito, por 6
sua vez, depende da sequencia passada de valores que apareceram nas entradas do circuito.
Circuitos sequenciais

 Modelo de circuito sequencial


 Composto por um circuito combinacional e
elementos de memória Armazenam o
estado atual

Entradas Circuito Saídas


combinacional Estado
n n Elementos de n
atual
Estado Próximo memória
atual estado

 Elementos de memória armazenam informação codificada


em binário (e.g. estado atual)
 Saídas dependem das entradas e do estado atual
O estado atual do circuito é o conjunto de todos os bits armazenados em seus elementos de memória. O estado do circuito, por 7
sua vez, depende da sequencia passada de valores que apareceram nas entradas do circuito.
Circuitos sequenciais

 Modelo de circuito sequencial


 Logisim

8
Circuitos sequenciais

 Assíncronos
 Estado atual pode mudar a qualquer momento
(sensível ao nível)
 Projeto de circuitos deste tipo está fora do
escopo desta disciplina
 Síncronos
 Estado atual pode mudar apenas momentos
exatos determinados por um sinal de
sincronização denominado clock
 Grande maioria dos circuitos sequenciais (e.g.
processador)
 Foco desta disciplina
9
Circuitos sequenciais

 Clock
 Sinal utilizado para sincronizar os elementos de memória
de um circuito sequencial
 Controla a mudança de estado
 Determina a velocidade de operação do circuito em termos de
frequência (e.g. 100 MHz; 2,2 GHz)
 Entrada presente em qualquer circuito sequencial
 Forma de onda quadrada regular
 Gerada por um circuito oscilador (gera 0 e 1 alternadamente)
Pulso positivo (crista) Período (T) Borda de
descida (1→0)

CLK
Ciclo
Borda de Frequência = 1/T
Pulso negativo (vale) subida (0→1)
10
Circuitos sequenciais
 Elementos de memória
 Latch D
 Flip-Flop D
 Dispositivo de armazenamento binário capaz
de armazenar um bit de informação
 Armazenam o valor da entrada d na saída q

Latch D Flip-Flop D
d q d q

en !q clk !q

Armazenamento Armazenamento
sensível ao nível de en (0 ou 1) sensível a borda de clk
(subida ou descida)

11
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)

Latch D Latch D
d q d q

en !q en !q

Sensível ao nível alto (en = 1) Sensível ao nível baixo (en = 0)

Quando en = 1 (transparente), q ← d Quando en = 0 (transparente), q ← d


Quando en = 0, saída q mantém o Quando en = 1, saída q mantém o
último valor armazenado último valor armazenado

12
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)

Latch D
d q
EN
en !q

en d q
0 X Mantém último valor
1 0 0
Saída q é atualizada Laços de realimentação
enquanto o latch está
1 1 1 transparente (en=1) (armazenamento)

13
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)

Latch D
d q
EN
en !q

en d q
Para criar um Latch D sensível
1 X Mantém último valor
Saída q é atualizada ao nível baixo, basta colocar
0 0 0
enquanto o latch está um inversor na entrada EN
0 1 1 transparente (en=0)
próximo slide

14
Circuitos sequenciais
 Elementos de memória
 Latch D
 Logisim

15
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)

Latch D
d q
EN
en !q

en d q en d q* Saída q do circuito
0 X Mantém último valor 0 X q Valor atual da saída q
1 0 0 1 0 0 (depende do último valor
1 1 1 1 1 1 armazenado)

16
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)

Latch D
d q
EN
en !q

Transparente 17
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)
Latch D
Latch D transparente d q
quando en = 1
en !q

18
Circuitos sequenciais
 Elementos de memória
 Latch D
 Armazenamento controlado pelo nível da entrada en
(enable)
Latch D
Latch D transparente d q
quando en = 1
en !q

19
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
Problema:
SR=11→SR=00
Latch SR (hold)
utilizando
NORs (hold)

Set e Reset com lógica negada Problema:


SR=00→SR=11
Latch SR
utilizando (hold)
NANDs (hold)

20
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR

Flip-Flop D sensível à borda


de subida de Clk

Latches que controlam o


latch de saída a partir das
entradas Clk e D

Latch que gera a saída do


flip-flop

21
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR

Quando clk = 0, o latch SR


de saída está em estado de
hold (S=1,R=1) 1

0
1

22
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
 Armazenamento
Considerando D = 0.
Quando Clk transiciona para 1,
R muda para 0 e o latch SR de
1 0
saída é resetado (Q = 0).
0 →1
1→0

0 1

23
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
 Armazenamento
Considerando D = 0.
Quando Clk transiciona para 1,
R muda para 0 e o latch SR de
1 0
saída é resetado (Q = 0).
0 →1
Se a entrada D mudar de valor
enquanto Clk=1, a saída Q não 1→0
é alterada porque o latch SR de
saída continua resetado. Latch em estado
de hold (mantém
o último estado)
0 →1 1

24
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
 Armazenamento
Considerando D = 0.
Quando Clk transiciona para 1,
R muda para 0 e o latch SR de
1 0
saída é resetado (Q = 0).
0 →1
Se a entrada D mudar de valor
enquanto Clk=1, a saída Q não 1→0
é alterada porque o latch SR de
saída continua resetado.

Quando Clk volta para 0, R


volta para 1 e o latch SR de 0 1
saída volta ao estado de hold.

25
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
0
 Armazenamento 1

Considerando D = 1.
Quando Clk transiciona para 1,
S muda para 0 e o latch SR de
1→0 1
saída é setado (Q = 1).
0 →1
1

1 0

26
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
0 →1
 Armazenamento 1
Latch em estado
Considerando D = 1. de hold (mantém
Quando Clk transiciona para 1, o último estado)
S muda para 0 e o latch SR de
1→0 1
saída é setado (Q = 1).
0 →1
Se a entrada D mudar de valor
enquanto Clk=1, a saída Q não 1
é alterada porque o latch SR de
saída continua setado.

1 →0 0 →1

27
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
0
 Armazenamento 1

Considerando D = 1.
Quando Clk transiciona para 1,
S muda para 0 e o latch SR de
1→0 1
saída é setado (Q = 1).
0 →1
Se a entrada D mudar de valor
enquanto Clk=1, a saída Q não 1
é alterada porque o latch SR de
saída continua setado.

Quando Clk volta para 0, S


volta para 1 e o latch SR de 1 0
saída volta ao estado de hold.

28
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
 Armazenamento

Controla o armazenamento do bit 1


(seta o latch SR de saída)

Flip-Flop D
d q

clk !q
clk D q*
Controla o armazenamento do bit 0 ↑ 0 0
(reseta o latch SR de saída) ↑ 1 1 Próximo
≠↑ X q valor de q

29
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Pode ser construído a partir de três latches SR
 Mestre-Escravo x 3 latches SR

6 portas lógicas

11 portas lógicas

30
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Entrada Flip-Flop D Flip-Flop D


de clock
d q d q

clk !q clk !q

Sensível a borda de subida (↑CLK) Sensível a borda de descida (↓CLK)


Quando ↑CLK, q ← d Quando ↓CLK, q ← d
Senão saída q mantém o Senão saída q mantém o
último valor armazenado último valor armazenado

Slide anterior
31
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Flip-Flop D
d q

clk !q

clk d q*
↑ 0 0 Saída q é atualizada
apenas em bordas de
↑ 1 1 subida do clock (clk)
≠↑ X q

32
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Flip-Flop D
d q

clk !q

clk d q*
↓ 0 0 Saída q é atualizada Para criar um Flip-Flop D
apenas em bordas de sensível à borda de descida
↓ 1 1 descida do clock (clk)
do clock, basta colocar um
≠↓ X q
inversor na entrada CLK
próximo slide
33
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Logisim

34
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Flip-Flop D
Saída q atualizada d q
nas bordas de subida
do clock (clk) clk !q

35
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Flip-Flop D
Saída q atualizada d q
nas bordas de subida
do clock (clk) clk !q

36
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D
 Armazenamento controlado pela borda da entrada
CLK (clock)

Flip-Flop D
Saída q atualizada d q
nas bordas de subida
do clock (clk) clk !q

37
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com reset (clear) assíncrono
 Sensível ao nível do reset, independente do clock

Reset sensível ao nível baixo


d q
1
rst 0

clk !q clk
1
0
!rst clk d q*
0 X X 0 Quando rst = 0, q ← 0
1 ↑ 0 0 d Latch em estado
1 ↑ 1 1 Funcionamento de reset
normal quando rst = 1 0
1 ≠↑ X q !rst
38
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com reset (clear) assíncrono
 Sensível ao nível do reset, independente do clock

Reset sensível ao nível alto


d q

rst

clk !q clk

rst clk d q*
1 X X 0 Quando rst = 1, q ← 0
0 ↑ 0 0 d
0 ↑ 1 1 Funcionamento
normal quando rst = 0
0 ≠↑ X q rst
Slide anterior
39
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com reset (clear) assíncrono
 Sensível ao nível do reset, independente do clock

40
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com reset (clear) assíncrono
 Sensível ao nível do reset, independente do clock

Reset sensível ao nível alto

Saída q atualizada d q
nas bordas de subida
do clock (clk) ou rst
quando rst = 1
clk !q

41
Circuitos sequenciais

Análise dinâmica

42
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

43
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

44
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

45
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

46
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

47
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

48
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

49
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

50
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

51
Circuitos sequenciais
 Elementos de memória
 Análise dinâmica

Saída q atualizada
nas bordas de subida
do clock (clk) ou A cada ciclo do clock,
quando rst = 1 a saída q armazena o
valor da saída !q

52
Circuitos sequenciais
 Elementos de memória
 Contador de 2 bits (0-3)

Clock do FF1 é
gerado pela
saída !q do FF0

53
Circuitos sequenciais
 Elementos de memória
 Contador de 2 bits (0-3)
 Analise dinâmica

54
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits (0-7)

55
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits (0-7)

56
Circuitos sequenciais
 Elementos de memória
 Contador de 0-7

57
Circuitos sequenciais
 Elementos de memória Como transformar em um
 Contador de 4 bits (0-15) contador BCD (0-9) ?

58
Circuitos sequenciais
 Elementos de memória
 Contador BCD (0-9)
Detecta o 1010 e
“reseta” o contador

1 0 1 0

59
Circuitos sequenciais
 Elementos de memória
 Contador BCD (0-9)
Detecta o 1010 e
“reseta” o contador

1 0 1 0

60
Circuitos sequenciais
 Elementos de memória
 Contador BCD (0-9)

Como fazer um contador


BCD de 0-99 ?

61
Circuitos sequenciais
 Elementos de memória
 Contador BCD (0-9)
 Contador de década

Cada vez que o contador


chegar em 1010, um pulso
curto (glitch/spike) é gerado

Este pulso pode ser usado


como clock* para outro
contador BCD que conta as
dezenas
*Não estão sendo consideradas questões de restrição do sinal de clock comumente empregadas no projeto de circuitos integrados. 62
Circuitos sequenciais
 Elementos de memória
 Contador BCD de 0-99

Clock gerado pelo


contador de unidades

63
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com controle de escrita
 Armazenamento é controlado através de um sinal de
carga (load) Quando load = 0, o valor atual é
rearmazenado (q ← q)
Quando ↑CLK e load = 1, q ← d

d q
rst
load
clk !q

load
D

64
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com controle de escrita
 Armazenamento é controlado através de um sinal de
carga (load) Quando load = 0, o valor atual é
rearmazenado (q ← q)
Quando ↑CLK e load = 1, q ← d

d q
rst
load
clk !q

 A entrada que controla o armazenamento (load) pode


ter outros nomes como en (enable), ce (chip enable)

65
Circuitos sequenciais
 Elementos de memória
 Flip-Flop D com controle de escrita
 Armazenamento é controlado através de um sinal de
carga (load) Quando load = 0, o valor atual é
rearmazenado (q ← q)
Quando ↑CLK e load = 1, q ← d

d q
rst
load
clk !q

66
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits com enable

Quando en=0, o
contador mantém o
valor da contagem

67
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits decrescente (7-0)

68
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits decrescente (7-0)
 Basta utilizar as saídas !q dos flip-flops

69
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits decrescente (7-0)
 Basta utilizar as saídas !q dos flip-flops

Como criar um contador


crescente/decrescente
(up/down)?

70
Circuitos sequenciais
 Elementos de memória
 Contador de 3 bits up/down (0-7/7-0)
 Basta utilizar ambas saídas dos flip-flops

up_down = 0, contagem crescente


up_down = 1, contagem decrescente

71
Circuitos sequenciais
 Elementos de memória
 Construir no logisim os circuitos vistos nesta
aula e verificar a sua funcionalidade

72
Circuitos sequenciais
 Elementos de memória
 Relógio 24h
 Utilizar os conceitos aprendidos nesta aula e
construir no logisim um relógio 24h
 Utilizar: BCD-7 segmentos, circuito contador
0-9 visto nesta aula

73
Circuitos sequenciais
 Elementos de memória
 Relógio 24h (organização referência)

74
Circuitos sequenciais
 Elementos de memória
 Contador síncrono
 Em contadores síncronos ou paralelo, todos os FFs são
disparados simultaneamente (em paralelo) pelos pulsos de
clock da entrada.

A ideia básica deste tipo de contador é a mesma


utilizada para o contador de clock serial visto
anteriormente, ou seja, fazer com que cada FF,
partindo do menos significativo, comute a uma
frequência igual à metade do seu antecessor.
No entanto…

75
Circuitos sequenciais
 Elementos de memória
 Contador síncrono
 Em contadores síncronos ou paralelo, todos os FFs são
disparados simultaneamente (em paralelo) pelos pulsos de
clock da entrada.

A ideia básica deste tipo de contador é a mesma


utilizada para o contador de clock serial visto
anteriormente, ou seja, fazer com que cada FF,
partindo do menos significativo, comute a uma
frequência igual à metade do seu antecessor.
No entanto…

Considere o esquemático a seguir com 4 FFs JK, nomeados como A, B, C e D:


76
Circuitos sequenciais
 Elementos de memória
 Contador síncrono

Este FF deve
comutar a cada
borda do clock, por
isto as suas entradas
estão fixas em “1”

77
Circuitos sequenciais
 Elementos de memória
 Contador síncrono

O FF B deve Este FF deve


comutar à metade comutar a cada
da frequência do borda do clock, por
FF A e, SEMPRE isto as suas entradas
que A chegar a “1” estão fixas em “1”

78
Circuitos sequenciais
 Elementos de memória
 Contador síncrono

O FF C deve O FF B deve Este FF deve


comutar SEMPRE comutar à metade comutar a cada
que A e B forem “1” da frequência do borda do clock, por
ao mesmo tempo FF A e, SEMPRE isto as suas entradas
que A chegar a “1” estão fixas em “1”

79
Circuitos sequenciais
 Elementos de memória
 Contador síncrono

O FF D deve comutar O FF C deve O FF B deve Este FF deve


SEMPRE que A, B e C comutar SEMPRE comutar à metade comutar a cada
forem “1” ao mesmo que A e B forem “1” da frequência do borda do clock, por
tempo ao mesmo tempo FF A e, SEMPRE isto as suas entradas
que A chegar a “1” estão fixas em “1”

80
Circuitos sequenciais
 Elementos de memória
 Contador síncrono

Em suma, cada FF
deve ter as suas
entradas J e K
conectadas de modo
que estejam no nível
ALTO apenas quando
as saídas de todos os
FFs de mais baixa
ordem estiverem no
estado ALTO

81

Você também pode gostar