Anda di halaman 1dari 14

Sumrio

Circuitos lgicos sequenciais


Definio de circuito sequencial Elementos bsicos de memria
Latches Flip-flops

Circuitos Lgicos Sequenciais

Anlise de circuitos sequenciais Projecto de circuitos sequenciais Registos e contadores Circuitos sequenciais para controlo
1 2

Circuitos Sequenciais
Definio: um circuito diz-se sequencial quando os valores das sadas dependem do estado do circuito.

Circuitos Sequenciais
Modelo geral
Circuito sequencial Entradas Sadas

Um circuito sequencial possui elementos de memria O estado do circuito corresponde aos bits armazenados nos elementos de memria A mesma combinao de entradas pode originar valores diferentes na(s) sada(s)
Latches e Flip-flops
3

Circuito combinatrio Estado Elementos de memria

Latches e Flip-Flops
Elementos de memria
Latch elemento bsico que permite armazenar um bit de informao Flip-flop elemento que permite sincronizar o armazenamento da informao com um sinal de referncia (clock)

Latches
Vamos comear por analisar este circuito

R (reset)

R S Q

1 0 0

0 0 0

0 1 1

0 0 1

S (set)

tempo

Repare que para a combinao de entradas SR = 00, o valor da sada diferente em instantes de tempo diferentes depende do que se passou antes.

Latch SR
Sintetizando
S 0 0 1 1 R 0 1 0 1 Qt+1 Qt 0 1 0 Obs. Manter estado anterior Reset (guardar 0) Set (guardar 1) No se utiliza *

Latch SR
Exemplo de evoluo temporal
Set Reset

R S

Smbolo
S R
7

* Pode conduzir a estado indefinido

Q Q
Inicialmente no se conhece o estado Impossvel de prever

?? ??

Latch SR com controlo


Parecido com o SR simples, mas agora existe uma varivel de controlo C que s permite as operaes Set e Reset quando est ao nvel lgico 1.
Latch SR
R C S Q S C R
9

Latch SR com controlo


Smbolo Funcionamento
C 0 1 1 1 1 S x 0 0 1 1
Q
Circuito equivalente com NANDs (implementao mais comum)

S C R

R x 0 1 0 1

Qt+1 Qt Qt 0 1 -

Obs. Manter estado anterior Manter estado anterior Reset Set No se utiliza

Portas de controlo

Q
10

Latch D com controlo


Obtido a partir de um latch SR Smbolo:
D C S C R Q D C Q

Flip-flops
Geralmente so compostos por 2 latches ligados em srie e lgica adicional Permitem sincronizar o armazenamento da informao com as transies de um sinal de referncia (Clock)

C 0 1 1

D Qt+1 x Qt 0 0 1 1

Entradas

Circuito combinatrio Estado

Sadas

Muito usados como clulas de memria

Clock

Flip-flops

11

12

Flip-flop D Edge-Triggered
D Clock D C S C R Q Q

Flip-flop D Edge-Triggered
Funcionamento: Clk 0 1 D x x 0 1 Qt+1 Qt Qt 0 1
D Q

Smbolos:
D Q

Negative edge triggered

Um FF edge-triggered s reage quando ocorre uma transio no nvel lgico do sinal de relgio (Clock) Neste exemplo, o FF reage nos instantes em que Clock varia de 1 para 0 negative edge-triggered.

Positive edge triggered

13

14

Flip-flop JK Edge-Triggered

Flip-flop JK Edge-Triggered
Funcionamento (positive-edge)
Clk J 0 0 1 1 K 0 1 0 1 Qt+1 Qt 0 1
Qt

Obs. Manter estado anterior Reset Set Complementar estado anterior

J Clock K

Smbolos:
Um FF JK edge-triggered pode ser construdo a partir de um FF D; Possui duas entradas, J e K, permitindo mais operaes que o FF D. Positive-edge
K
15

Negative-edge
K
16

Exemplo de funcionamento
Vamos ver o funcionamento de um FF JK negative edge triggered ao longo do tempo

Tabelas de Funcionamento
Sintetizando...

Flip-flop JK
J 0 0 1 1 K 0 1 0 1 Qt+1 Qt 0 1 Qt
K J Q

Flip-flop D
D 0 1 Qt+1 0 1
D Q

Importantes para a anlise e o projecto de circuitos sequenciais.


17 18

Anlise de Circuitos Sequenciais


Ferramentas para anlise e projecto de circuitos sequenciais
Equaes de entrada dos flip-flops e das sadas do circuito Tabela de transio de estados do circuito Diagrama de estados

Anlise de Circuitos Sequenciais


Anlise

19

Anlise de Circuitos Sequenciais


Exemplo:
X Y Clock
D0 Q0

Anlise de Circuitos Sequenciais


Equaes
Entrada(s) dos flip-flops: definem qual ser o prximo estado D0 = Q0 X Y

Sadas do circuito: Z = Q0
Entradas: X e Y Sadas: Z
21 22

Anlise de Circuitos Sequenciais


Tabela de transio de estados
Estado actual Q0 0 0 0 0 1 1 1 1 Entradas X 0 0 1 1 0 0 1 1 Y 0 1 0 1 0 1 0 1 Prximo estado Q0 0 1 1 0 1 0 0 1
23

Anlise de Circuitos Sequenciais


Diagrama de estados
00,11 01,10 0/0 01,10 1/1 00,11

As bolas representam os estados


A cada estado esto associados os valores das sadas

As setas representam as transies


a cada transio esto associados valores das entradas

Projecto
20 24

Anlise de Circuitos Sequenciais


Outro exemplo:
X J1 Q1 J0 Q Q 0

Anlise de Circuitos Sequenciais


Equaes
Entradas dos FFs:
J1 = K1 = X

J0 =K0 = XQ1
Estado Sada Y 0 1 1 0
26

FF1
K1

FF1 0
K0

Relgio Y

Sada: Y = Q0 Q1

Q1 0 0 1 1

Q0 0 1 0 1

25

Anlise de Circuitos Sequenciais


Tabela de transio de estados
Estado actual Q1 0 0 0 0 1 1 1 1 Q0 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 Prximo estado Q1 0 1 0 1 1 0 1 0 Q0 0 0 1 1 0 1 1 0
27

Anlise de Circuitos Sequenciais


Diagrama de estados
0 1 00/0 10/1 0

11/0 1 0

01/1

0
28

Modelo a seguir
Modelo de Moore

Projecto de Circuitos Sequenciais

Entradas

Lgica Combinatria

Flip-flops

Lgica Combinatria

Sadas

Estado

Os valores das sadas dependem apenas do estado As entradas influenciam qual ser o prximo estado Circuito sncrono, i.e., s pode haver alteraes ao estado nos instantes definidos pelo sinal de relgio (i.e., nas transies)
29 30

Procedimentos de Projecto
A partir da especificao, obter o diagrama de transio de estados Atribuir uma combinao binria (um nmero) a cada estado do diagrama Obter a tabela de transio de estados Escolher o tipo de flip-flops a utilizar Obter as equaes de entrada de cada flip-flop Obter as equaes das sadas Desenhar o circuito
31

Exemplo de um projecto
Pretende-se obter um circuito que implemente o seguinte diagrama de transio de estados.
1 00/0 1 01/0

0 0

Uma entrada: X Uma sada: Y 4 estados 2 FFs

11/1 0

10/0

0
32

Exemplo de um projecto
Tabela de transio de estados
Estado actual Q1 0 0 0 0 1 1 1 1 Q0 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 Prximo estado Q1 1 0 1 1 1 0 1 0 Q0 1 1 1 0 1 0 1 0
33

Usar FF D ou FF JK?
Feita a tabela, escolhe-se o tipo de flip-flops a usar no circuito:
Flip-flops D
O projecto mais simples, mas o circuito resultante geralmente mais complicado (tem mais portas lgicas)

Flip-flops JK
O projecto d mais trabalho (mais equaes), mas o circuito resultante normalmente mais simples

34

Projecto com flip-flops D


Tabela de excitao do FF D Qt Qt+1 D

Projecto com flip-flops D


Equaes de entrada nos FFs
Q0X Q1 0 1 00 1 1 01 0 0 11 1 0 10 1 1 Q1 0 1 Q0X 00 1 1 01 1 0 11 0 0 10 1 1

0 0 1 1

0 1 0 1

0 1 0 1

D1 = Q1Q 0 + X

D 0 = Q1 Q 0 + X
Q1 0 0 1 1 Q0 0 1 0 1 Y 0 0 0 1

A tabela mostra o que se tem colocar na entrada D, de modo a ter a transio de estados indicada; Com base na tabela, pode-se verificar que o valor a colocar entrada D o que se pretende para o prximo estado.
35

Equao da sada

Y = Q1Q 0

36

Projecto com flip-flops D


Circuito resultante
Y X
D1 Q1 D0 Q0

Projecto com flip-flops JK


Tabela de excitao do FF JK Qt Qt+1 J K

0 0 1 1

0 1 0 1

0 1 X X

X X 1 0

A tabela mostra o que se tem colocar nas entradas J e K, de modo a ter a transio de estados indicada;
Clock

O X representa indiferena, i.e., tanto faz ser 1 ou 0

37

38

Projecto com flip-flops JK


Tabela de transio de estados
Estado actual Q1 0 0 0 0 1 1 1 1 Q0 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 Prximo estado Q1 1 0 1 1 1 0 1 0 Q0 1 1 1 0 1 0 1 0 Flip-flops J1K1 1X 0X 1X 1X X0 X1 X0 X1 J0K0 1X 1X X0 X1 1X 0X X0 X1
39
Q1 0 1 Q1 0 1

Projecto com flip-flops JK


Equaes de entrada nos FFs
Q0X 00 1 x 01 0 x 11 1 x 10 1 x Q1 Q0X 00 0 1 1 1 01 1 0 11 x x 10 x x

J1 = X + Q 0

J0 = X + Q1

Q0X 00 x 0 01 x 1 11 x 1 10 x 0 Q1

Q0X 00 0 1 x x 01 x x 11 1 1 10 0 0

K1 = X

K0 = X

Equao da sada
Y = Q1Q 0

40

Projecto com flip-flops JK


Circuito
X
J1 Q1 J0 Q0

Exemplos
Detector de sequncias de 0s
Y

Pretende-se projectar um circuito sequencial com uma entrada X pela qual entram bits ao mesmo ritmo do sinal de relgio. A sada Y do circuito dever ser 1 quando apresentado o valor 0 entrada durante 2 ou mais impulsos de relgio consecutivos. Nos restantes casos, a sada dever ser 0.

K1

K0

Clock

41

42

Exemplos
Diagrama de transio de estados
1 0 A/0 1 0 B/0

Exemplos
Tabela de transio de estados
Estado actual Q1 Codificao dos estados:
A 00 B 01 C 10

Prximo estado X 0 1 0 1 0 1 0 1 Q1 0 0 1 0 1 0 x x Q0 1 0 0 0 0 0 x x
44

Q0 0 0 1 1 0 0 1 1

0 0 0 0 1 1 1 1
43

1 C/1

3 estados 2 Flip-flops

Exemplos
Projecto com flip-flops JK
Estado actual Q1 0 0 0 0 1 1 1 1 Q0 0 0 1 1 0 0 1 1 X 0 1 0 1 0 1 0 1 Prximo estado Q1 0 0 1 0 1 0 x x Q0 1 0 0 0 0 0 x x J1 0 0 1 0 x x x x K1 x x x x 0 1 x x J0 1 0 x x 0 0 x x K0 x x 1 1 x x x x
45
Q1 Q1

Exemplos
Equaes de entrada nos flip-flops
Q0X 00 0 1 0 x 01 0 x 11 0 x 10 1 x Q1 Q0X 00 0 1 1 0 01 0 0 11 x x 10 x x

J1 = Q 0 X

J0 = Q1 X

Q0X 00 0 1 x 0 01 x 1 11 x x 10 x x Q1

Q0X 00 0 1 x x 01 x x 11 1 x 10 1 x

K1 = X

K0 = 1

46

Exemplos
Equao da sada
Estado actual Q1 0 0 1 1 Q0 0 1 0 1 Sada Y 0 0 1 x
Q0 Q1 0 1 0 0 1 1 0 x

Exemplos
Circuito resultante
Y X
J1 Q1
Vcc

J0

Q0

Y = Q1

K1

K0

Clock

47

48

Exemplos
Divisor de frequncia
Pretende-se projectar um circuito sequencial com duas entradas, designadas S1 e S0, segundo o modelo de Moore. Consoante os valores S1S0 apresentados entrada, a sada dever seguir uma das seguintes sequncias binrias:
Entradas 00 Sequncia 10101010 Entradas 01 Sequncia 100100100 Entradas 10 Sequncia 11001100 Entradas 11 No especificado.

Exemplos
Diagrama de transio de estados
00,01

00/1
00,10 10

01/0

Entradas: S1 e S0 Sada: Y
01

Variveis de estado: Q1 e Q0

10 00,01

11/1
10

00,01

10/0

Na prtica, e tendo em conta as formas de onda da sada, este circuito comporta-se como um divisor da frequncia de relgio.
49 50

Exemplos
Tabela de transio de estados
Estado Actual Q1 Q0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 Entradas S1 S0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 Prximo Estado Q1 Q0 0 1 0 1 1 1 X X 0 0 1 0 0 0 X X 0 0 0 0 0 1 X X 0 1 0 1 1 0 X X
51

Exemplos
Equaes de entrada dos flip-flops
D1
S1S0 Q1Q0 00 01 11 10 00 0 0 0 0 01 0 1 0 0 11 X X X X 10 1 0 1 0 S1S0 Q1Q0 00 01 11 10 00 1 0 1 0 01 1 0 1 0 11 X X X X 10 1 0 0 1

D0

D1 = Q1Q0S1 + Q1Q 0S1 + Q1Q0S 0 = S1 Q1 Q 0 + Q1Q0 S 0

D0 = Q1Q0 + Q0S1 + Q1Q 0 S1

52

Exemplos
Equao da sada
Estado actual Q1 0 0 1 1 Q0 0 1 0 1 Sada Y 1 0 0 1
Y = Q1 Q 0
CLK

Exemplos
Circuito resultante
Y Q0 Q1 0 1 0 1 0 1 0
S0 S1

D1 CP

Q1

D0 CP

Q0

53

54

Registos Registos
Registo Conjunto de flip-flops e portas lgicas adicionais que permite o armazenamento e o manipulao de informao
Flip-flops guardam a informao
Um flip-flop por cada bit que se pretende guardar

Lgica adicional permite operaes sobre os dados


Exemplos:
Inicializar os valores do registo a zero CLEAR ou RESET Carregar o registo com novos dados LOAD Deslocar os bits dentro do registo SHIFT

55

56

Clear
Exemplo: registo de 4 bits com CLEAR
D0 D Q0 R

Carregamento paralelo
Load D0
Mux 2-1 S I0 I1

Q0

D1

Q1

Smbolo
R
D1

Mux 2-1 S I0 I1

Q1

D2

Q2

Mux 2-1 S

Q2

Load Funo

D2

I0 I1

0
D3 Clock R Clear
57

Manter o estado D Q (Carrega valor)


D3 Clock
Mux 2-1 S I0 I1

Q3

Q3

58

Deslocamento
Um registo de deslocamento permite deslocar a informao armazenada numa dada direco.
Deslocamento para a esquerda (shift left) (direco do bit mais significativo)
Exemplo: 0010 1101 => 0101 101b (b um bit que entra)

Deslocamento
Exemplo: registo de deslocamento srie/paralelo

Deslocamento para a direita (shift right) (direco do bit menos significativo)


Exemplo: 0010 1101 => b001 0110

Neste registo, cada impulso do relgio causa um deslocamento para a esquerda. O objectivo distribuir os bits que entram em srie na entrada SI pelo conjunto de linhas Q0 a Q3.
59 60

10

Contadores
Contador

Contadores

Circuito sequencial que segue uma transio de estados pr-programada.


Contador binrio segue a sequncia dos nmeros binrios at uma potncia de 2; Contador BCD segue a sequncia de 0 a 9.

Quanto ao princpio de funcionamento, temos:


ripple a sada de cada flip-flop utilizada como sinal de relgio para accionar outro flip-flop sncrono o sinal de relgio aplicado directamente a todos os flip-flops
61 62

Contadores
Contador ripple
Vcc Vcc Vcc Vcc

Contadores
Contador sncrono
Vcc

Q0

J K

Q1

J K

Q2

J K

Q3

J K

Q0

J K

Q1

J K

Q2

J K

Q3

Clock
K
Reset Clock

Reset

Por cada 2 impulsos na entrada de relgio de um FF, ocorre um impulso no relgio do FF seguinte Os FFs no reagem todos ao mesmo tempo isso pode originar problemas
63

Neste contador todos os flip-flops reagem ao mesmo tempo, o que evita problemas com temporizaes

CTR4
Q0 Q1 Q2 Q3

64

Contadores
Operaes que podem ser feitas
Inicializar a 0 - Clear Contar / parar a contagem Count Enable Carregamento paralelo Load Controlar a direco da contagem (crescente ou decrescente) Up/Down

Contadores
Exemplo: contador com carregamento paralelo (Load) e controlo de contagem (Count Enable)

Load

CE Funo

0 0 1

0 1 x

Mantm o estado Conta normalmente D Q (Carrega valor)

65

66

11

Controladores Controladores
Designamos por controlador ou unidade de controlo um circuito sequencial que gera sinais de controlo para outros componentes Objectivo: ter um circuito que faa tarefas mais complicadas, dividindo-as em vrias etapas ao longo do tempo (por vrios perodos do sinal de relgio)

Entradas

Circuito sequencial de controlo

Variveis de controlo

Componentes a controlar

67

68

Controladores (exemplo 1)
Exemplo
Circuito de controlo para uma mquina de lavar roupa
Incio Encher de gua Lavar Escoar a gua Centrifugar

Controladores (exemplo 1)
Diagrama de transio de estados

000

001

010

011

100

Variveis a controlar: - EA entrada de gua - SA sada de gua - AD adicionar detergente

Circuito sequencial de controlo

EA SA AD

EA=0 SA=x AD=0

EA=1 SA=0 AD=0

EA=0 SA=0 AD=1

EA=0 SA=1 AD=x

EA=0 SA=x AD=x

69

70

Controladores (exemplo 1)
Tabela de transio de estados
Estado actual Q2 0 0 0 0 1 Q1 0 0 1 1 0 Q0 0 1 0 1 0 Prximo estado Q2 0 0 0 1 0 Q1 0 1 1 0 0 Q0 1 0 1 0 0 Variveis de controlo EA 0 1 0 0 0 SA x 0 0 1 x AD 0 0 1 x x

Controladores (exemplo 1)
Circuito sequencial resultante (ainda sem as sadas)
CTR3
Q0 Q1 Q2 Reset

Relgio

Usou-se um contador de 3 bits com reset sncrono. O sinal de reset fica activo no estado 100.

A sequncia de estados sugere a utilizao de um contador

71

72

12

Controladores (exemplo 1)
Expresses lgicas para as variveis de controlo (sadas do circuito sequencial)
Q1Q0 Q2 0 1
Q1Q0 Q2 0 1 00 x x 01 0 x 11 1 x 10 0 x

Controladores (exemplo 1)
Circuito sequencial resultante
EA

00 0 0

01 1 x

11 0 x

10 0 x

CTR3

EA = Q1Q 0
Q2

SA AD

Q1Q0 00 0 1 0 x 01 0 x 11 x x 10 1 x

Relgio
Reset

Q0 Q1 Q2

SA = Q 1Q 0

AD = Q 1

73

74

Controladores (exemplo 2)
Vamos considerar o seguinte circuito:
Din

Controladores (exemplo 2)
Algumas operaes que podem ser feitas
Din

R0

Load

L0

R0

Load

L0

C1

L1

L0

Op

Funo

0 1 1
Add /Sub Op

x 0 0 1 1 1 1

0 0 1 0 0 1 1

x x x 0 1 0 1

R1 0 NOP R0 Din R1 R1 + R0 R1 R1 R0 R1 R1 + R0, R0 Din R1 R1 R0, R0 Din

Variveis de controlo
Load Clear

Add /Sub

Op

1 1

CLK

R1

L1 C1

CLK

R1

Load Clear

L1 C1

1 1

Barramentos (BUS)

Dout

Dout

75

76

Controladores (exemplo 2)
Mas o que fazer caso se pretenda algo mais D complexo?
in

Controladores (exemplo 2)
Ter que se acrescentar uma unidade de controlo
Din

R0

Load

L0

R0

Load

Por exemplo, usar este circuito para calcular 2 Din


Add /Sub Op
Add /Sub

necessrio mais do que um ciclo de relgio


CLK

L0 Op L1 C1
Load Clear

Unidade de controlo

R1

Load Clear

L1 C1

R1

Dout

Dout

77

78

13

Controladores (exemplo 2)
Projecto da unidade de controlo
Ciclo C1 L1 L0 Op Descrio No final do ciclo tem-se

Controladores (exemplo 2)
Tabela de transio de estados
Estado actual Q1 0 0 1 1 Q0 0 1 0 1 Estado seguinte Q1 0 1 1 1 Q0 1 0 1 1
Q1 0 1
79

Equaes de entrada nos FFs


Tomou-se a opo de usar flip-flops do tipo D
Q0 Q1 0 1 0 0 1 1 1 1

0 1 2 3

0 1 1 1

x 1 1 0

1 0 0 0

x 0 0 x

R1 0, R0 Din R1 R1 + R0 R1 R1 + R0 NOP

R1=0 R0=Din R1=Din R0=Din R1=2Din R0=Din (j est) No faz nada

D1 = Q1 + Q0

Q0 0 1 1 1 0 1

D0 = Q1 + Q0
80

Controladores (exemplo 2)
Equaes das sadas (variveis de controlo)
Estado actual Q1 0 0 1 1 Q0 0 1 0 1 Variveis de controlo C1 0 1 1 1 L1 x 1 1 0 L0 1 0 0 0 Op x 0 0 x

Controladores (exemplo 2)
Circuito resultante para a unidade de controlo
Unidade de controlo
C1 L1

C1 = Q1 + Q0 L1 = Q1Q0 L0 = Q1 + Q0 Op = 0
Clock Reset
81

L0 D1 Q1 D0 Q0 Op

82

14

Anda mungkin juga menyukai