Академический Документы
Профессиональный Документы
Культура Документы
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
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
Q Q
Inicialmente no se conhece o estado Impossvel de prever
?? ??
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
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
Sadas
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
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.
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
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
19
Sadas do circuito: Z = Q0
Entradas: X e Y Sadas: Z
21 22
Projecto
20 24
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
11/0 1 0
01/1
0
28
Modelo a seguir
Modelo de Moore
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
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
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
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
37
38
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
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
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
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
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
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
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
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
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
EA SA AD
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.
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
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
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
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
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