Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando...
-
Upload
phungkhuong -
Category
Documents
-
view
213 -
download
0
Transcript of Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando...
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 1
146FEUP/DEEC – Laboratório de Sistemas Digitais
Circuitos sequenciais
• Saídas dependem da sequência das entradas– não basta uma tabela de verdade!
– Exemplo: controlo do nível de água num tanque:
electro-válvula
nível máximo
nível mínimo
sistemadigital
decontrolo
entradade água
saída de água
CHEIO
VAZIO
ABRECHEIO VAZIO ABRE
0011
0101
10 ou 1d0
(nunca ocorre)
o valor da saída ABRE depende do que aconteceu antes nas entradas
147FEUP/DEEC – Laboratório de Sistemas Digitais
Circuitos sequenciais têm memória
• A memória guarda a história das entradas até agora– não significa uma lista interminável de zeros e uns...
– a história das entradas é codificada no estado do sistema
– o estado é armazenado em elementos de memória
– contém a informação a reter dos valores anteriores das entradas
• No exemplo anterior– sem memória seria impossível realizar o controlo de nível
• mesmo se fosse feito à mão por uma pessoa!...
– basta um bit para representar o estado: a encher ou a esvaziar
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 2
148FEUP/DEEC – Laboratório de Sistemas Digitais
Variáveis de estado (num circuito digital)
• O estado é codificado em um ou mais bits– a estes bits chamam-se “variáveis de estado”
– são guardados em memórias digitais (flip-flops)
• a estudar nos próximos episódios...
– geralmente são “internos” ao circuito
• Num sistema sequencial com N variáveis de estado• existem 2N estados diferentes
• como N é finito, o número de estados também é finito
• Chamam-se “máquinas de estados finitos”• em Inglês Finite State Machine - FSM
149FEUP/DEEC – Laboratório de Sistemas Digitais
Como funciona?
• Num circuito sequencial (máquina de estados)– para além do estado interno tem entradas e saídas
• O estado actual e as entradas definem:– quais são os valores das saídas
– qual vai ser o próximo estado
estado
saídasentradas
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 3
150FEUP/DEEC – Laboratório de Sistemas Digitais
Como funciona? (2)
• Os estados mudam a intervalos regulares– sincronizados com as transições de um relógio
• Modelo conceptual:
período T (frequência=1/T Hz)tL tH
duty-cycle=tH/T (ciclo útil)
estado(memória)
saídasentradas
estadopresente
próximoestado
relógio
151FEUP/DEEC – Laboratório de Sistemas Digitais
Elementos de memória
• Circuitos bi-estáveis
– portas lógicas “normais” com realimentação
– as saídas sustentam valores nas entradas
• O circuito bi-estável mais simples:(as memórias estáticas são feitas assim!)
Q
Qn
Q,Qn pode ser 1,0 ou 0,1
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 4
152FEUP/DEEC – Laboratório de Sistemas Digitais
Análise “analógica”
Vout
V in
V in Vout
Vout1
V in1
V in2
Vout2
1
2V in2
Vout1V in1
Vout2
pontos estáveis
instável!
153FEUP/DEEC – Laboratório de Sistemas Digitais
Latch set/reset
Q
QNS
R S R Q QN0 0 Q ant. QN ant.0 1 0 11 0 1 01 1 0 0 (inválido)
S
R
Q
QN
t
Tp
Tp
Q: qual a duraçãomínima do pulso em S ou R?
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 5
154FEUP/DEEC – Laboratório de Sistemas Digitais
Latch set/reset
• activando a entrada S (set) é colocado Q=1
• activando a entrada R (reset) é colocado Q=0
Exemplo: controlo do nível de água com uma latch set/reset:
Q R
S
ABRE
CHEIO
VAZIOQN
Q
QN
S
R
símbolo: Q
Q
S
R
155FEUP/DEEC – Laboratório de Sistemas Digitais
Latch set/reset com enable
Q
QN
S
R
símbolo:
Q
QN
S
R
EN S R Q QN0 X X Q ant. QN ant. 1 0 0 Q ant. QN ant.1 0 1 0 11 1 0 1 01 1 1 0 0 (inválido)
EN
EN
Q: o que acontece se R=S=1 e EN passa de 1 para 0 ?
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 6
156FEUP/DEEC – Laboratório de Sistemas Digitais
Latch tipo D (ou transparente)
Q
QN
Dsímbolo:
Q
QN
D EN D Q QN0 X Q ant. QN ant. 1 0 0 11 1 1 0
EN
EN
Quando EN=1 a latch é transparente (Q=D)Quando EN passa de 1 para 0, a saída Q memoriza o seu estadoParâmetros temporais de uma latch tipo D: tsetupe thold
D
Q
EN
157FEUP/DEEC – Laboratório de Sistemas Digitais
edge-triggered D flip-flop(flip-flop tipo D)
Q
QN
D
EN
Q
QN
D
EN
Q
QN
D
CLK
D CLK Q QNX 0 Q ant. QN ant. X 1 Q ant. QN ant. 1 1 00 0 1
Q1
CLK
CLK
CLK
D
Q1
Q
1 2
latch 1 é transparente aqui latch 2 é transparente aqui
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 7
158FEUP/DEEC – Laboratório de Sistemas Digitais
flip-flop tipo D
• quando CLK sobe captura o valor na entrada D
• símbolo:
• parâmetros temporais: tsetup e thold
Q
QN
D
CLK
Q
QN
D
CLK
CLK activo na transição negativaindica que éedge-triggered
CLK
D
tsetup thold
Q: o que acontece se estestempos forem violados?
159FEUP/DEEC – Laboratório de Sistemas Digitais
Outros flip-flops edge-triggered
• tipo T (toggle):
• tipo JK:
• outras entradas de controlo:– com enable, com set ou reset assíncronos
Q
QN
T
CLK
Q
QN
J
CLK
K
T CLK Q0 Q ant.1 Q ant.
J K CLK Q0 0 Q ant.0 1 01 0 11 1 Q ant.
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 8
160FEUP/DEEC – Laboratório de Sistemas Digitais
Equação característica de flip-flops
• Q* representa o próximo valor para Q
• Q* é função de Q e das entradas de controlo: – flip-flop tipo D: Q* = D
• copia para Q o que está em D
– flip-flop tipo T: Q* = T.Q+T.Q• se T=0 mantém Q, se T=1 troca o estado de Q
– flip-flop tipo JK: Q* = Q.J+Q.K• se J=K=0 mantém Q; se J=K=1 troca o valor de Q; se J=1 e
K=0 coloca Q=1; se J=0 e K=1 coloca Q=0
161FEUP/DEEC – Laboratório de Sistemas Digitais
Síntese de máquinas de estados
• Exemplo:– circuito com uma entrada X e saída Y
– Y=1 quando é detectada em X a sequência 1011
– o valor de X é “lido” nas transições 0-> 1 de CLK
0 1 1 0 1 1 1 0 0 1 0 1 1
Y
X
CLK
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 9
162FEUP/DEEC – Laboratório de Sistemas Digitais
Diagrama de transição de estados
INI
S1
S2
S3
OK
X=1
X=1
X=1
X=1X=1
X=0
X=0X=0
X=0
X=0
estado
transição entre estados(quando CLK )
condição de transiçãoentre estados
nome do estado
valor da saída emcada estado
Y=1
Y=0
Y=0
Y=0
Y=0
Q: qual é a “história” que cada estado representa?
estado inicial chama-se INI
163FEUP/DEEC – Laboratório de Sistemas Digitais
Significado de cada estado(no exemplo apresentado)
• Cada estado resume os valores anteriores de X:– INI: não foi detectado nada de interesse (inicial)
– S1: foi detectado X=1
– S2: foi detectada a sequência 10 na entrada X
– S3: foi detectada a sequência 101 na entrada X
– OK: foi detectada a sequência 1011 Y=1
• E se as sequências não forem sobrepostas?– sempre que detecta 1011 esquece tudo: estado INI
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 10
164FEUP/DEEC – Laboratório de Sistemas Digitais
Tabela de transição de estados
INI
S1
S2
S3
OK
X=1
X=1
X=1
X=1
X=1
X=0
X=0X=0
X=0
X=0
Y=1
Y=0
Y=0
Y=0
Y=0
S*S X=0 X=1 Y
INI INI S1 0S1 S2 S1 0S2 INI S3 0S3 S2 OK 0OK S2 S1 1
estado actual
próximo estado se X=0
próximo estado se X=1
valores da saída
165FEUP/DEEC – Laboratório de Sistemas Digitais
Modelo da máquina de estados
variáveisde estado
(guarda o estado)
Y
X
S
CLK
Y(S)
S*(X,S)
S*
(modelo de Moore: a saída só depende do estado presente)
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 11
166FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados
• Os estados devem ser codificados em binário– o estado presente é armazenado numa memória
– a memória de estado é realizada com flip-flops• podem ser flip-flops tipo D, T ou JK
• devem ser usados mecanismos para garantir o estado inicial
– usando flip-flops com controlo de set ou reset assíncrono
– codificar N estados requer log2(N) flip-flops
– no nosso exemplo são necessários 3 flip-flops• de quantas maneiras é possível codificar os 5 estados?
– a escolha do “melhor” conjunto de códigos é um problema muito complexo.
167FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados
• codificando os estados em binário:
variáveis deestado
Y
X
CLK
S*
circuitos combinacionais:Y=F(S)S*=G(X,S)
flip-flopsedge-triggered(tipo D, T ou JK)
reset
S
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 12
168FEUP/DEEC – Laboratório de Sistemas Digitais
Tabela de transição de estados(com os estados codificados)
Q2* Q1* Q0*Q2 Q1 Q0 X=0 X=1 Y0 0 0 0 0 0 0 0 1 00 0 1 0 1 0 0 0 1 00 1 0 0 0 0 0 1 1 00 1 1 0 1 0 1 0 0 01 0 0 0 1 0 0 0 1 1
Adoptando a codificação de estados:INI 0 0 0S1 0 0 1S2 0 1 0S3 0 1 1OK 1 0 0
S Q2 Q1 Q0
estado presentepróximo estado
169FEUP/DEEC – Laboratório de Sistemas Digitais
Síntese de S*(X,S) e Y(S)
Tabela de verdade: Q2 Q1 Q0 X Q2* Q1* Q0* Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0
. . .1 1 1 1
e estes valores?
S S*
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 13
170FEUP/DEEC – Laboratório de Sistemas Digitais
Usando flip-flops tipo D
Q2 Q1 Q0 X D2 D1 D0 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0 0 0 0 0
. . . . . . 1 1 1 1 0 0 0 0
como Q*=D:
como estes estados nuncaocorrem, pode-se completara tabela de verdade com zeros
171FEUP/DEEC – Laboratório de Sistemas Digitais
Minimizando as funções lógicas
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 0
0 0 1 0
0 0 0 0
0 0 0 0
11
10
Q1
Q0
X
D2
D2=Q2.Q1.Q0.X
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 1
0 1 0 1
0 0 0 0
0 1 0 0
11
10
Q1
Q0
X
D1
D1=Q2.Q1.Q0.X + Q2.Q1.Q0.X + Q2.Q0.X
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 14
172FEUP/DEEC – Laboratório de Sistemas Digitais
continuando a minimizar...
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 1 1 0
0 1 0 0
0 0 0 0
0 1 0 0
11
10
Q1
Q0
X
D0
D0=Q1.Q0.X+Q2.Q0.X+Q2.Q1.X
Q2
Q1Q0
0
1
00 01 11 10
0 0 0 0
1 0 0 0 Q2
Q1Y
Y=Q2.Q1.Q0
Q0
(Y só depende do estado actual Q2Q1Q0)
173FEUP/DEEC – Laboratório de Sistemas Digitais
Circuito lógico
QD
CLK
QD
CLK
QD
CLK
X
CLK
Y
Q2
Q1
Q0
D2
D1
D0
Q2
Q1
Q0
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 15
174FEUP/DEEC – Laboratório de Sistemas Digitais
Estados não especificados
• A máquina de estados apenas tem 5 estados– usando 3 flip-flops, há 3 estados não usados
• com a codificação adoptada são 101, 110 e 111
– qual deve ser o próximo estado para estes estados?• uma hipótese é o estado INI (estado 000 no nosso caso)
– garante-se que a máquina de estados nunca “encrava”!
– foi a solução adoptada no exemplo
• admitindo que nunca ocorrem, S* pode ser indiferente
– definem-se valores indiferentes na tabela de verdade
– conduz a um circuito (potencialmente) mais simples
– e se a máquina de estados “cair” num destes estados?
risco mínimo
custo mínimo
175FEUP/DEEC – Laboratório de Sistemas Digitais
Projecto com custo mínimo
Q2 Q1 Q0 X D2 D1 D0 Y0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 00 0 1 0 0 1 0 00 0 1 1 0 0 1 00 1 0 0 0 0 0 00 1 0 1 0 1 1 00 1 1 0 0 1 0 00 1 1 1 1 0 0 01 0 0 0 0 1 0 11 0 0 1 0 0 1 11 0 1 0 d d d d
. . . . . . 1 1 1 1 d d d d
com flip-flops tipo D:
como estes estados nuncaocorrem, considera-se
indiferente o próximo estado
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 16
176FEUP/DEEC – Laboratório de Sistemas Digitais
Projecto com custo mínimo
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 0
0 0 1 0
d d d d
0 0 d d
11
10
Q1
Q0
X
D2
D2=Q1.Q0.X
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 1
0 1 0 1
d d d d
0 1 d d
11
10
Q1
Q0
X
D1
D1=Q1.Q0.X + Q2.X + Q0.X
177FEUP/DEEC – Laboratório de Sistemas Digitais
Projecto com custo mínimo
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 1 1 0
0 1 0 0
d d d d
0 1 d d
11
10
Q1
Q0
X
D0
D0=Q1.X+Q0.X
Q2
Q1Q0
0
1
00 01 11 10
0 0 0 0
1 d d d Q2
Q1Y
Y=Q2
Q0
(Y só depende do estado actual Q2Q1Q0)
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 17
178FEUP/DEEC – Laboratório de Sistemas Digitais
Circuito lógico - mínimo custo
QD
CLK
QD
CLK
QD
CLK
X
CLK
Y
Q2
Q1
Q0
D2
D1
D0
Q2
Q1
Q0
179FEUP/DEEC – Laboratório de Sistemas Digitais
Projecto com flip-flops JK
Q2 Q1 Q0 X Q2* Q1* Q0* J2 K2 J1 K1 J0 K0 Y
0 0 0 0 0 0 0 0 d 0 d 0 d 0 0 0 0 1 0 0 1 0 d 0 d 1 d 00 0 1 0 0 1 0 0 d 1 d d 1 00 0 1 1 0 0 1 0 d 0 d 1 0 00 1 0 0 0 0 0 0 d d 1 0 d 00 1 0 1 0 1 1 0 d d 0 1 d 00 1 1 0 0 1 0 0 d d 0 d 1 00 1 1 1 1 0 0 1 d d 1 d 1 01 0 0 0 0 1 0 d 1 1 d 0 d 11 0 0 1 0 0 1 d 1 0 d 1 d 11 0 1 0 d d d d d d d d d d
. . . . . . . . .1 1 1 1 d d d d d d d d d d
Q Q* J K0 0 0 d0 1 1 d1 0 d 11 1 d 0
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 18
180FEUP/DEEC – Laboratório de Sistemas Digitais
Expressões mínimas para J2 e K2
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 0
0 0 1 0
d d d d
d d d d
11
10
Q1
Q0
X
J2
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
d d d d
d d d d
d d d d
1 1 d d
11
10
Q1
Q0
X
K2
J2=Q1.X.Q0 K2=1
181FEUP/DEEC – Laboratório de Sistemas Digitais
Expressões mínimas para J1 e K1
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0 1
d d d d
d d d d
1 0 d d
11
10
Q1
Q0
X
J1
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
d d d d
1 0 1 0
d d d d
d d d d
11
10
Q1
Q0
X
K1
J1=Q0.X+Q2.X K1=Q0.X+Q0.X
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 19
182FEUP/DEEC – Laboratório de Sistemas Digitais
Expressões mínimas para J0 e K0
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 1 1 d
0 1 d d
d d d d
0 1 d d
11
10
Q1
Q0
X
J0
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
d d 0 1
d d 1 1
d d d d
d d d d
11
10
Q1
Q0
X
K0
J0=X K0=Q1+X
183FEUP/DEEC – Laboratório de Sistemas Digitais
Circuito com flip-flops JK
QJ
CLK
Q
Q
X
CLK
Y
Q2
Q1
Q0
J2
J1
J0
Q2
Q1
Q0
K
J
CLK
K
J
CLK
K
K21
K1
K0
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 20
184FEUP/DEEC – Laboratório de Sistemas Digitais
Projecto com flip-flops tipo T
Q2 Q1 Q0 X Q2* Q1* Q0* T2 T1 T0
0 0 0 0 0 0 0 0 0 00 0 0 1 0 0 1 0 0 10 0 1 0 0 1 0 0 1 10 0 1 1 0 0 1 0 0 00 1 0 0 0 0 0 0 1 00 1 0 1 0 1 1 0 0 10 1 1 0 0 1 0 0 0 10 1 1 1 1 0 0 1 1 11 0 0 0 0 1 0 1 1 01 0 0 1 0 0 1 1 0 11 0 1 0 d d d d d d
. . . . . . . . . 1 1 1 1 d d d d d d
Q Q* T0 0 00 1 11 0 11 1 0
185FEUP/DEEC – Laboratório de Sistemas Digitais
Minimizando as funções T2, T1 e T0
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 0 0
11
10
Q1
Q0
X
T2
T2=Q2+X.Q1.Q0
0
0 0 01
d d dd1 1 dd
Q2 Q1Q0 X
00
01
00 01 11 10
Q2
0 0 1
11
10
Q1
Q0
X
T1
T1=Q2.X+Q1.Q0.X+Q1.Q0.X+Q1.Q0.X
0
1 0 01
d d dd1 0 dd
Q2 Q1
Q0 X
00
01
00 01 11 10
Q2
0 1 1
11
10
Q1
Q0
X
T0
0
0 1 11
d d dd0 1 dd
T0=Q0.X+Q1.X+Q0.X
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 21
186FEUP/DEEC – Laboratório de Sistemas Digitais
Modelo de FSM de Mealy
variáveisde estado
(guarda o estado)
Y
X
S
CLK
Y(X,S)
S*(X,S)
S*
No modelo de Mealy as saídas dependem de estado actual e das entradasAs saídas podem ser alteradas durante o tempo de um estado
187FEUP/DEEC – Laboratório de Sistemas Digitais
FSM de Mealy
• Exemplo:– o mesmo circuito anterior (detector de 1011)
– assunção: o valor de X muda logo após o CLK
– a saída Y depende do estado actual e da entrada X
– é detectada a sequência 1011 em 4 estados consecutivos
0 1 1 0 1 1 1 0 0 1 0 1
Y
X
CLK
INI INI S1 S1 S2 S3 S1 S1 S2 INI S1 S2 S3
1
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 22
188FEUP/DEEC – Laboratório de Sistemas Digitais
Diagrama de estados
INI
S1
S2
S3
1/0
1/0
0/0
X / Y
0/0
0/0
1/11/0
0/0
Esta mudança de estado ocorre quando X=1
Y vale 1 quando 0estado actual é S3 e X=1Y vale 0 quando 0
estado actual é S3 e X=0
Os valores das saídas em cada estado dependem dos valores das entradasdurante esse estado.
Desenham-se associados às transições de estado.
Apenas se altera a forma como érepresentado e construído o circuitoque produz as saídasda FSM.
189FEUP/DEEC – Laboratório de Sistemas Digitais
Tabela de transição de estados(FSM de Mealy)
S*,YS X=0 X=1
INI INI,0 S1,0S1 S2,0 S1,0S2 INI,0 S3,0S3 S2,0 S1,1
estado actual
próximo estado e saída Y se X=0
próximo estado e saída Y se X=1INI
S1
S2
S3
1/0
1/0
0/0
0/0
0/0
1/11/0
0/0
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 23
190FEUP/DEEC – Laboratório de Sistemas Digitais
Tabela de transição de estados(com estados codificados)
Q1* Q0*,YQ1 Q0 X=0 X=10 0 0 0,0 0 1,00 1 1 0,0 0 1,01 0 0 0,0 1 1,01 1 1 0,0 0 1,1
Usando a codificação de estados:INI 0 0S1 0 1S2 1 0S3 1 1
S Q1 Q0
estado presente
próximo estado e saída
Y é função de Q1, Q0 e X
191FEUP/DEEC – Laboratório de Sistemas Digitais
Síntese de S*(X,S) e Y(X,S)
Tabela de verdade:Q1 Q0 X Q1* Q0* Y0 0 0 0 0 0 0 0 1 0 1 00 1 0 1 0 00 1 1 0 1 01 0 0 0 0 01 0 1 1 1 01 1 0 1 0 01 1 1 0 1 1
S S*
(...e o resto é igual ao usado para FSMs de Moore)
Na mesma máquina de estados podem coexistir saídas de Mealy e de MooreO processo de especificação e síntese combina as duas formas anteriores:
as saídas de Moore só dependem do estado presenteas saídas de Mealy são função do estado presente e das entradas
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 24
192FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados
• Qual é o melhor conjunto de códigos?– objectivo: minimizar o circuito lógico (# gates)
• Problema muito complexo (NP-completo)– para obter a melhor solução é necessário verificar todas as hipóteses!
– os códigos atribuídos aos estados influenciam• os circuitos que produzem o próximo estado
• os circuitos que produzem as saídas (de Moore ou Mealy)
– Isto é impraticável, mesmo para FSMs pequenas!
193FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(exemplo)
• FSM com 5 estados
• são necessários (no mínimo) 3 flip-flops– com 3 flip-flops há 8 códigos binários
– existem = 56 grupos de 5 dos 8 códigos
– existem 5!=120 formas diferentes de atribuir cada um dos 56 grupos aos 5 estados
– no total há 6720 codificações possíveis!
• e se forem usados 4 flip-flops?
()85
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 25
194FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(exemplo)
• usando o menor número possível de FFs:
nº estados nº FFs nº códigos nº codificações
2 1 1 23 2 4 244 2 1 245 3 56 6,7206 3 28 20,1607 3 8 40,3208 3 1 40,3209 4 11440 4,151,347,20010 4 8008 29,059,430,40011 4 4368 174,356,582,40012 4 1820 871,782,912,000
gastando 1µs/solução seriam necessários 10 dias, 2 h, 9 min e 42 segundos!
195FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados
• Codificações simples (exemplo para 8 estados)– binária (códigos binários por ordem natural)
• 000, 001, 010, 011, 100, 101, 110, 111
– código Gray (troca 1 bit entre estados consecutivos)• 000, 001, 011, 010, 110, 111, 101, 100
– one hot (só um bit=1 para cada estado)• 00000001, 00000010, 00000100, 00001000, 00010000, 00100000,...
– quase one hot (código 0, os outros one hot)• 0000000, 0000001, 0000010, 0000100, 0001000, 0010000,...
(é conveniente usar o estado 000...00 para estado inicial)
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 26
196FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(regras práticas)
• estado inicial
– código fácil de “forçar” com um sinal de reset
– estados 000...00 ou 111...11, dependendo do tipo de FF
• se têm sinal de controlo reset (coloca em 0) ou set (coloca em 1)
• minimizar o número de bits que trocam entre transições
– ou maximizar o número de variáveis de estado que se mantêm entre estados que tenham muitas transições entre eles
000
001010
100011
101
000
001011
010101
100
5 transições em que trocam 2 bits 2 transições em que trocam 2 bits
melhor
197FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(regras práticas)
• se existirem mais códigos do que estados, escolher códigos que permitam minimizar as funções que produzem as saídas
S S* Y
INI 0A ... 1B 1
C1 ... 0C2 1C3 ... 0
Q2Q1Q0 Q* Y
0 0 0 00 0 1 ... 10 1 0 10 1 1 ... 01 0 0 11 0 1 ... 0
Q2Q1Q0 Q* Y
0 0 0 01 0 0 ... 11 0 1 10 0 1 ... 01 1 1 10 1 1 ... 0
Y = Q2.Q1.Q0 + Q1.Q0 + Q2.Q0
Y = Q2
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 27
198FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(regras práticas)
• usar mais FFs do que o mínimo para forçar a aplicação da regra anterior
S S* Y Z
INI 0 1A ... 1 0B 1 0
C1 ... 0 1C2 1 1C3 1 1
SYC 0 1END ... 0 1
Y = Q2.Q1.Q0 + Q1.Q0 + Q2.Q1.Q0
Y = Q3
Q2Q1Q0 S* Y Z
0 0 0 0 10 0 1 ... 1 00 1 0 1 00 1 1 ... 0 11 0 0 1 11 0 1 1 11 1 0 0 11 1 1 ... 0 1
Q3Q2Q1Q0 S* Y Z
0 0 0 0 0 11 1 0 0 ... 1 01 1 0 1 1 00 0 0 1 ... 0 11 0 0 0 1 11 0 0 1 1 10 0 1 0 0 10 0 1 1 ... 0 1
Z = Q2 + Q1.Q0 + Q1.Q0
Z = Q2
199FEUP/DEEC – Laboratório de Sistemas Digitais
Codificação de estados(regras práticas)
• A codificação one-hot conduz (geralmente) a equações de excitação simples
– é conveniente se se pretender ter saídas que indiquem o estado actual
– necessita de mais flip-flops do que o número mínimo
– é melhor usar a codificação quase-one-hot para ter o estado inicial=0
• Estas regras não garantem a obtenção de um circuito mínimo
– a aplicação de algumas regras pode ser contraditória
• por exemplo, escolher códigos que minimizem as funções que produzem as saídas pode implicar a ocorrência de muitas trocas de bits nas transições entre estados
– os resultados da aplicação de cada regra variam de caso para caso
– a experiência também conta!
V 2.00 Nov-2006
Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 28
200FEUP/DEEC – Laboratório de Sistemas Digitais
Minimização de estados• dois estados são equivalentes se:
– as saídas de Moore assumirem o mesmo valor
– as saídas de Mealy forem iguais para todas as combinações das entradas
– os próximos estados forem os mesmos, sob as mesmas condições de transição
• dois estados equivalentes podem reunir-se num só:
...10/1
d1/0
d1/0
10/1S1
S2Ymo=1
Ymo=1
AB/Yme
S3
S4...
d1/0
10/1S12
Ymo=1S3
S4
...
... ...
...
...
...
Ymo: saída de MooreYme: saída de Mealy