You are on page 1of 29

Sistemas Digitais

Circuitos Sequenciais Bsicos (Latches e Flip-Flops)


Horcio Neto Nuno Horta Joo Paulo Carvalho

Circuitos Sequenciais
Circuitos

Sequenciais: o comportamento do circuito depende no s das entradas no instante presente, mas tambm do seu comportamento anterior dizer que o circuito tem MEMRIA... caracterstica fundamental de um circuito sequencial a existncia de realimentaes, i.e., de ligaes entre a sada e as entradas = Feedback

Pode-se A

Realimentao

Uke2010

Sistemas Digitais

Circuitos Sequenciais Simples

1
Q

2 inversores em cascata elemento bsico de memria

Posso armazenar um 1 (ou um 0) para sempre, mas no posso alterar o valor

1
R Q

A entrada R permite forar Q a 0 (mas no permite for-lo a 1)

1
R Q S

A entrada R permite forar Q a 0. A entrada S permite forar Q a 1.

Uke2010

Sistemas Digitais

Latches
S_H Q_Hn Q_Hn+1 0 0 1 1

0 1 0 1

0 1 1 1

Diagrama temporal:

Uke2010

Sistemas Digitais

Latch RS
R

S 0 0 1 1

R 0 1 0 1

Qn+1 Qn+1 Qn 0 1 U Qn 1 0 U HOLD RESET SET No Utilizada

1
S

R = 1 e S = 0 Q forado a 0 RESET R = 0 e S = 1 Q forado a 1 SET R = 0 e S = 0 mantm estado anterior R = 1 e S = 1 no utilizada (sem significado; valor real depende da implementao).

O valor da sada do elemento de memria designase habitualmente por estado. Um latch tem 2 estados possveis.

Uke2010

Sistemas Digitais

Latch RS (utilizando NANDs)

Quando o Latch RS realizado com portas NAND, as entradas so activas a Low

S_L

&

S_L R_L Qn+1_H


Q_H

0 0

0 1 0 1

U
1 0
Qn_H

No Utilizada SET RESET HOLD

&
R_L

Q_L

1 1

Uke2010

Sistemas Digitais

Latch RS Controlado
EN_H S_H R_H Qn+1_H 1 1 1 1 0

0 0 1 1 X

0 1 0 1 X

Qn
0 1 NU
Qn_H

HOLD RESET SET NOT USED HOLD

A entrada habilitadora ou enable, EN, permite controlar a aplicao das entradas de Set e de Reset ao latch.
S_H R_H EN_H Q_H Q_L
S R S M R NU S

Uke2010

Sistemas Digitais

Latches RS - Simbologia

Latches Simples:
S_L R_L S R Q_H Q_L S_H R_H S R Q_H Q_L

Latch Controlado:

A entrada de sincronismo habitualmente designada por relgio Clock (C) A letra designa funo: C = Clock; S = Set; R = Reset O 1 direita identifica a entrada
S_H EN_H R_H 1S C1 1R Q_H Q_L

O 1 esquerda da letra implica dependncia da entrada 1

Uke2010

Sistemas Digitais

Latch D (Controlado)

Um dos modos de eliminar o estado indefinido no latch RS consiste em assegurar que as entradas R e S so sempre complementares. Obtm-se, assim, o latch D, que tem apenas 2 entradas: D (Data) e (EN) Enable.
D S

&

&

EN_H D_H Qn+1_H 1 0 1 X 0 1


Qn_H

RESET SET HOLD

EN

1
R

&

&

1 0

Simbologia:
D_H EN_H 1D C1 Q_H Q_L

Uke2010

Sistemas Digitais

Latches e Flip-Flops

Os circuitos bsicos de memria podem ser classificados em latches e flip-flops:

Os latches mudam as sadas imediatamente aps uma variao nas entradas (diz-se que as sadas so transparentes); Os flip-flops mudam as sadas apenas quando h uma variao do relgio.

Se as entradas de um latch mudam enquanto o relgio est a 1, o seu estado muda imediatamente. Esta mudana pode implicar novas mudanas de estado noutros latches, o que pode originar uma sequncia imprevisvel de mudanas de estado no circuito.
Uke2010 Sistemas Digitais 10

Flip-Flop RS Master-Slave

Os flip-flops so projectados de modo a permitir apenas uma nica mudana de estado no circuito por perodo de relgio. O flip-flop Master-Slave consiste na ligao em cascata de 2 latches sincronizados, com sinais de controlo complementares.
Master S C R 1S C1 1R QM_H Slave 1S C1 1R Q_L QS_H Q_H

Exemplo com S=1, R=0


C QM_H tPD

QS_H

Funcionamento: o Mestre aceita ordens de Set ou Reset enquanto C = 1, mas s passa a ordem ao Escravo quando C = 0

Do ponto de vista das sadas externas o estado apenas muda aps a transio de 1 0 do relgio.
Sistemas Digitais 11

Uke2010

Flip-Flops RS Master-Slave (II)


CP_H S_H L L H H L H X X R_H L H L H X X Qt+1 Qt L H U Qt Qt

O comportamento no previsvel! No se sabe qual vai ser o valor da sada.

Uke2010

Sistemas Digitais

12

Flip-Flops JK Master Slave

Para evitar a situao de imprevisibilidade, surge o FlipFlop JK. Num FF JK, quando ambas as entradas esto activas, o FF altera o seu estado (faz Toggle)
J_H L L H H L H X X K_H L H L H X X Qt+1 Qt L H Qt Qt Qt
1 J C K & & Master 1S C1 1R Slave 1S C1 1R Q_L Q_H

CP_H

Toggle: inverte o estado anterior

Nota: continua a s existir mudana de estado aps a transio de relgio de H para L


Uke2010 Sistemas Digitais 13

Flip-Flops Master-Slave

Os flip-flops master-slave respondem aos valores na entrada que aparecem durante o semi-perodo em que C = 1. Por isso, so tambm chamados de PULSE-TRIGGERED. No entanto, para que funcionem correctamente, no devem haver variaes nas entradas durante o pulso de relgio. Problema: se durante o pulso de relgio R = 0 e S = 0 1 0, esperar-se-ia que o flip-flop mantivesse o estado, pois a ltima ordem de HOLD, no entanto, o Mestre respondeu ordem de SET e essa ordem que passada ao Escravo (a este comportamento chama-se 1 s catching).
Master S C R 1S C1 1R QM Slave 1S C1 1R QS Q

C S R QM

Uke2010

Sistemas Digitais

14

Flip-Flops Edge-Triggered

Os Flip-Flops Edge-Triggered reagem s entradas num determinado flanco do impulso de relgio, sendo independentes dos valores das entradas excepto num curto intervalo de tempo em torno desse flanco FF Edge-Triggered positivos: reagem no flanco ascendente do impulso de relgio (quando o relgio muda de L para H) FF Edge-Triggered negativos: reagem no flanco descendente (quando o relgio muda de H para L)

Uke2010

Sistemas Digitais

15

Flip-Flops D Edge Triggered

No flip-flop D edge-triggered positivo:


A sada Q_H assume o estado da entrada D_H quando se d uma transio L H na entrada CP_H; A sada Q_H mantm o estado, independentemente de D_H, enquanto CP_H est H, L ou ainda durante as transies H L nessa linha

O flip-flop s reage quando na entrada CP_H ocorrem flancos ascendentes de impulsos No FF D edge-triggered negativo, o comportamento semelhante, mas a reaco dada no flanco descendente do relgio
D_H L H X L H X X Qn+1 L H Qn Qn Qn
1D C1 Flip-flop D edge-triggered positivo 1D C1 Flip-flop D edge-triggered negativo

CP_H

Indica que o FF edge-triggered


Uke2010 Sistemas Digitais

Indica que o FF edge-triggered negativo

16

Flip-Flops D Edge Triggered (II)

Exemplo de realizao de um FF-D Edge Triggered:


D_H

1 &
1

1D C1 Flip-flop D edge-triggered positivo


&

&

5 Q_H

CP_H

D_H L H X

Qn+1 L H Qn Qn Qn

CP

& &
3 6

Q_L

L H

X X

&

Uke2010

Sistemas Digitais

17

Flip-Flops JK Edge-Triggered

O comportamento do flip-flop JK edge-triggered positivo semelhante ao do JK estudado anteriormente, com a diferena de que s reage s entradas no flanco ascendente do relgio Nota: bvio que este FF no apresenta o comportamento 1s catching
J_H L L H H X L H X X K_H L H L H X X X Qn+1 Qn L H Qn Qn Qn Qn
1J C1 1K Flip-flop JK edge-triggered positivo

CP_H

J K Qn+1 0 0 0 1 1 0 1 1 Qn 0 1 HOLD RESET SET

Qn TOGGLE

Uke2010

Sistemas Digitais

18

Entradas Assncronas

Alguns flip-flops incluem entradas adicionais que permitem fazer o SET ou o RESET assncronamente, i.e., independentemente do relgio. A entrada de Set assncrono tambm s vezes designada por direct set ou preset ; A entrada de Reset assncrono tambm s vezes designada por direct reset ou clear . Exemplo FF JK com R e S assncronos:
S_H L L L L H L H R_H L L L L L H H X X X CP_H J_H L L H H X X X K_H L H L H X X X Qn+1
S

Qn L H Qn H L U

1J C1 1K R

Uke2010

Sistemas Digitais

19

Simbologia
S R Latch RS 1S C1 1R Latch RS sincronizado C1 Latch D sincronizado C1 Latch D c/ controlo activo a L 1D 1D

1J C1 1K Flip-flop JK pulse-triggered

1J C1 1K Flip-flop JK pulse-triggered negativo 1D C1 Flip-flop D edge-triggered positivo 1D C1 Flip-flop D edge-triggered negativo

S 1J C1 1K R Flip-flop JK edge-triggered positivo c/ R e S assncronas e activas a L

1J C1 1K Flip-flop JK edge-triggered positivo

Uke2010

Sistemas Digitais

20

FFs e Latches for Dummies


FFs

e Latches so circuitos digitais que permitem memorizar um bit Os diferentes tipos de Latches e FFs permitem diferentes funcionalidades (uns mais que outros), por exemplo:

Colocar sada a 1 (Set); Colocar sada a 0 (Reset); Manter estado anterior (Hold); Trocar estado anterior (Toggle); Fazer Set (Preset) ou Reset (Clear) de forma assncrona;

Diferentes

tipos de FFs reagem ao sinal de relgio de forma diferente


Sistemas Digitais 21

Uke2010

FFs e Latches for Dummies (II)


FFs

Edge Triggered so os mais importantes e s reagem durante um dos flancos de transio do relgio
1D C1 Flip-flop D edge-triggered positivo 1D C1 Flip-flop D edge-triggered negativo

D Qn+1 0 1 0 1 RESET SET

1J C1 1K Flip-flop JK edge-triggered positivo

J K Qn+1 0 0 0 1 1 0 1 1
Sistemas Digitais

Qn 0 1

HOLD RESET SET

Qn TOGGLE
22

Uke2010

Caracterizao Temporal

Tempo de atraso ou de propagao:

CP

50%

Q_H Q_L

50%

tp LH
50%

tp HL

Durao mnima de um pulso de relgio:

CP

tw

Uke2010

Sistemas Digitais

23

Tempos de Preparao e de Manuteno


O tempo de preparao (tS SETUP) a durao mnima do intervalo de tempo durante o qual as entradas de dados no podem variar antes da transio de relgio. O tempo de manuteno (tH HOLD) a durao mnima do intervalo de tempo durante o qual as entradas de dados no podem variar aps a transio de relgio.

50%

CP

50%

ts
Uke2010

th
Sistemas Digitais 24

Caracterizao Temporal (II)


Caracterizao

dos ts, tw e th para diversos FFs:


ts tw th

Pulse Triggered (Master-Slave) Edge-Triggered Positivo Edge-Triggered Negativo

CP

ts
CP

th

ts
CP

th

Uke2010

Sistemas Digitais

25

Metodologia de Sincronizao Temporal


A utilizao de uma metodologia de sincronizao temporal correcta garante o funcionamento adequado do circuito. Para sistemas sncronos, o funcionamento adequado significa que, para cada evento de relgio, todos os FFs examinam as suas entradas e determinam os seus novos estados. Isto obriga a que: os valores de entrada correctos tm de ser disponibilizados, a tempo, aos FFs que vo mudar de estado; nenhum flip-flop pode mudar de estado mais do que uma vez durante o mesmo evento de relgio.
CP

IN CP

1D C1

Q0

1D C1

Q1

IN

Q0

Q1

Uke2010

Sistemas Digitais

Diagrama Temporal considerando os tempos de atraso deprezveis

26

Comportamento Temporal

As entradas dos FFs tm de estar estveis um intervalo de tempo tS antes do flanco de relgio, e um intervalo de tempo tH depois do flanco de relgio. O tempo de propagao de um FF habitualmente muito maior que o tempo de hold, portanto a verificao da condio de hold nunca problema. Para garantir a condio de setup necessrio que a variao provocada pelo 1 evento de relgio, chegue entrada do FF um tempo de setup antes do 2 flanco de relgio.
tH tSU tH tSU tH

tSU CL K IN

tPLH Q0 tPLH Q1 TCLK tPHL

tPLH

tPHL

Uke2010

Sistemas Digitais

27

Comportamento Temporal (II)

Para uma frequncia de relgio demasiado elevada, o circuito deixa de funcionar correctamente: O funcionamento correcto exige: t P TCLK t SU FF
TCLK t PFF + t SU f CLK t PFF 1 + t SU
tSU CLK

tSU CLK

tH

tSU

tH

IN Q0 tPHL

TCLK

tH

tSU

tH

O caso limite : TminCLK = t PFF + t SU

IN Q0 tPHL

f maxCLK =
Uke2010

t PFF

1 + t SU
Sistemas Digitais

TCLK

28

Bibliografia
Arroz,G.,

Monteiro,J.C., Oliveira,A., Arquitectura de Computadores, dos Sistemas Digitais aos Microprocessadores , seces 6.1 a 6.4, 2 Edio, 2009 Mano,M., Kime,C. Logic and Computer Design Fundamentals, Prentice Hall, seces 4.1, 4.2, 4.3

Uke2010

Sistemas Digitais

29