coml@b – laboratório de comunicações digitais aula 10 – exp 8: implementação de máquinas...

19
ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP www.decom.fee.unicamp.br/~cardoso

Upload: internet

Post on 18-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Aula 10 – Exp 8: Implementação de Máquinas de Estado

Fabbryccio Cardoso

Dalton S. Arantes

DECOM-FEEC-UNICAMP

www.decom.fee.unicamp.br/~cardoso

Page 2: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Exemplo1: identificar seq 1000

0 1

23

1/0

0/0

0/0

1/0

0/0

1/00/11/0

Estado1

Estado10

Estado100

Page 3: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Exemplo1: identificar seq 1000

0 1

23

1/0

0/0

0/0

1/0

0/0

1/00/11/0

I n Out Next

1 0 1

1 0 1

0 0 2

0 0 3

1 0 1

0 0 2

0 0 3

0 1 0

1 0 1

Estado1

Estado10

Estado100

Page 4: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Help (right click in Mcode)

Page 5: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Modelo

dbl fpt

vld

fpt dbl

out

dbl fpt

fonte

fpt dbl

estadoTime

Scope

[1 1 1 1 1 1 1 1 1]

Signal FromWorkspace1

[1 1 0 0 1 0 0 0 1]

Signal FromWorkspace xlmcodeseq1000

din

vin

dout

estado

MCode

Sy stemGenerator

double

din

double

v in

UFix_1_0

UFix_1_0

UFix_1_0 double

dout

UFix_2_0 doubleestado

Page 6: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Script em linguagem M (1/3)

function [dout, estado] = seq1000( din, vin )

persistent next, next = xl_state(0, {xlUnsigned, 2, 0});

atual = next;

dout = 0;

estado = atual;

if vin == 1

.......................... Switch .....

end

Page 7: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Script (2/3)

switch(atual)

case 0;

if din == 1

next = 1;

end

case 1;

if din == 0

next = 2;

end

case 2;

if din == 0

next = 3;

else

next = 1;

end

Page 8: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Script (3/3)

case 3;

if din == 0

next = 0;

dout = 1;

else

next = 1;

end

end

0 1

23

0/11/0

Estado1

Estado10

Estado100

Page 9: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Experimento

Identificar a seguinte seqüência de

pressionamento de botões: Up Down Up Down.

Entradas: Botões Up e Down.

Saída: Led_0 para indicar identificação de

sequência.

Saídas: Led_2 e Led_3 para indicar o estado atual.

Implementar a lógica de “debouncing” do

Experimento 7 usando o bloco Mcode.

Utilizar dois registradores (regU e regD) internos e

um único contador interno.

Page 10: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Modelo

dbl fpt

U

Terminator2

Terminator1

xlslice[a:b]

xlslice[a:b]

[1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1]

Signal FromWorkspace1

[1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1]

Signal FromWorkspace

Scope1

Scope

xlmcodedebouncer

Uin

Din

Uout

Dout

regU_D

MCode1

xlmcodeseqUDUD

Uin

Din

dout

estado

MCode

fpt dbl

Led_3

fpt dbl

Led_2

fpt dbl

Led_1

fpt dbl

Led_0

xlinv not

xlinv not

xlinv not

xlinv not

xlinv not

xlinv not

fpt dbl

fpt dbl

fpt dbl

dbl fpt

D

Sy stemGenerator

Uin

double

Uin

Din

double

Din

UFix_1_0

UFix_1_0

reg

double

reg

double

double

UFix_2_0 UFix_1_0

UFix_1_0

double

dout

doutUFix_1_0UFix_1_0

UFix_1_0

UFix_1_0

UFix_1_0

UFix_1_0

UFix_1_0

UFix_1_0

Dout

double

Dout

Uout

double

Uout

UFix_1_0

UFix_1_0

double

estado

{'ah4'}

{'ag3'}

{'ac4'}

{'ac3'}

{'aa6'}

{'aa5'}

10 nsAJ15

Page 11: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Máquina de Estados

0 1

23

D/0

U/0

U/0

D/1

D/0 U/0

D/0

U/0

Estado UD

Estado UDU

Estado Inicial

Estado U

Page 12: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Saída do Debouncer

Page 13: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Saída da Máquina de Estado

Page 14: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Implementação Debouncer 1/2

function [Uout, Dout, regU_D] = debouncer(Uin, Din)

persistent counter, counter = xl_state(0,

{xlUnsigned,27,0});

persistent regU, regU = xl_state(0, {xlUnsigned,1,0});

persistent regD, regD = xl_state(0, {xlUnsigned,1,0});

constante = xfix({xlUnsigned,27,0},100e6-1);

Uout = 0;

Dout = 0;

Page 15: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Implementação Debouncer 2/2

if Uin == 1

regU = 1;

end

if Din == 1

regD = 1;

end

regU_D = xl_or(regU, regD);

if regU == 1 | regD == 1

…………………………….

end

Page 16: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Implementação Máquina de Estados

function [dout, estado] = seqUDUD(Uin, Din)

persistent next, next = xl_state(0, {xlUnsigned,2,0});

persistent reg_dout, reg_dout = xl_state(0, {xlUnsigned, 1,

0});

atual = next;

estado = atual;

if Uin == 1 | Din == 1

............................................

end

dout = reg_dout;

Page 17: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Exemplo 2

Implementar passo a passo oscilador 0-1 de

período 1 segundo.

Page 18: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Exercício Parte 1

Repetir o exemplo do modelo “exemplo1.mdl”

para identificar a seqüência binária 0011.

Page 19: ComL@b – Laboratório de Comunicações Digitais Aula 10 – Exp 8: Implementação de Máquinas de Estado Fabbryccio Cardoso Dalton S. Arantes DECOM-FEEC-UNICAMP

ComL@b – Laboratório de Comunicações Digitais

Avaliação

Realização do experimento: 5,0 pontos.

Fontes do experimento e do exercício: 5,0 ponto.