Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando...

28
V 2.00 Nov-2006 Laboratório de Sistemas Digitais 2006/2007 - MIEEC - FEUP/DEEC 1 146 FEUP/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 sistema digital de controlo entrada de água saída de água CHEIO VAZIO ABRE CHEIO VAZIO ABRE 0 0 1 1 0 1 0 1 1 0 ou 1 d 0 (nunca ocorre) o valor da saída ABRE depende do que aconteceu antes nas entradas 147 FEUP/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

Transcript of Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando...

Page 1: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 2: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 3: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 4: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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?

Page 5: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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 ?

Page 6: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 7: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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.

Page 8: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 9: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 10: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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)

Page 11: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 12: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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*

Page 13: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 14: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 15: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 16: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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)

Page 17: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 18: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 19: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 20: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 21: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 22: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 23: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 24: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 25: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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)

Page 26: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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

Page 27: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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!

Page 28: Circuitos sequenciais - web.fe.up.ptjca/feup/lsdi/slides/lsdi-0607-slides-aula... · – usando flip-flops com controlo de set ou reset assíncrono – codificar N estados requer

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