refri

38
“EEL7020 – Sistemas Digitais” Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica Prof. Eduardo Augusto Bezerra [email protected] Florianópolis, março de 2010.

Transcript of refri

Page 1: refri

“EEL7020 – Sistemas Digitais”

Universidade Federal de Santa Catarina

Centro Tecnológico – CTC

Departamento de Engenharia Elétrica

Prof. Eduardo Augusto Bezerra

[email protected]

Florianópolis, março de 2010.

Page 2: refri

Plano de Aula

“Finite State Machine (FSM)”

EEL7020 – Sistemas Digitais 2/38

• Objetivos: – Conhecer a estrutura de FSMs

– Classificar máquinas Moore e Mealy

– Identificar opções para codificação de estados para síntese de FSMs

– Implementar e relatar estudo de caso

Page 3: refri

• Sistemas computacionais, normalmente, são compostos por um módulo de “controle” e um módulo para “execução das operações”.

Finite State Machine (FSM)

Máquina de vendade refrigerantes

ComputadorAutomóvel (sistemas

embarcados)

EEL7020 – Sistemas Digitais 3/38

Execução:- Recebe R$- Devolve troco- Fornece produto

Controlador

de refrigerantes Execução:- Busca instrução- Decodifica- Executa- Acessa memória- Escreve resultados

Controlador

Execução:- Alarme- Vidros- ABS

Controlador

embarcados)

Page 4: refri

• O “controlador” é responsável por coordenar a sequência de atividades a ser realizada em um determinado processo (ou sistema)

• Em sistemas digitais são utilizados “circuitos sequenciais” na geração de sinais de controle

• Um circuito sequencial transita por uma série de estados

Finite State Machine (FSM)

EEL7020 – Sistemas Digitais 4/38

• Um circuito sequencial transita por uma série de estados e, a cada estado (a cada momento), poderá fornecer uma determinada saída

• As saídas são utilizadas no controle da execução de atividades em um processo

• A lógica sequencial utilizada na implementação de uma FSM possui um número “finito” de estados.

Page 5: refri

• O comportamento de circuitos sequenciais pode ser representado por FSMs de diversas formas:

EstadoAtual

Próximo EstadoX=0 X=1

Saída Atual(z)

S0 S0 S2 0

S1 S0 S2 1

Diagramas de estados (grafos) Tabelas de transição de estados

Finite State Machine (FSM)

EEL7020 – Sistemas Digitais 5/38

S1 S0 S2 1

S2 S2 S3 1

S3 S3 S1 0

Linguagens de

descrição de hardware

case NEXT_STATE is

when S0_C =>

if (x = 0)

z = 0;

NEXT_STATE <= S0_C;

else

z = 0;

NEXT_STATE <= S2_C;

end if;

when S1_C =>

Page 6: refri

Modelo de comportamento composto por:• Estados• Transições• Ações

EstadosArmazena informação sobre o passado refletindo as modificações

Finite State Machine (FSM)

EEL7020 – Sistemas Digitais 6/38

Armazena informação sobre o passado refletindo as modificações das entradas do início até o presente momento

TransiçãoIndica uma troca de estado e é descrita por uma condição que habilita a modificação de estado

AçãoDescrição da atividade que deve ser executada em um determinado instante

Page 7: refri

Finite State Machine

Máquina de estados finitos

Finite State Machine (FSM)

EEL7020 – Sistemas Digitais 7/38

Máquina com um conjunto finito de estados

Máquina de estados finita

?

Page 8: refri

Estrutura de uma FSM

EEL7020 – Sistemas Digitais 8/38

Page 9: refri

Estrutura de uma FSM

Entradas Primárias Saídas Primárias

Circuito Combinacional

• Dois módulos:• Armazenamento do “estado atual”; e

• Cálculo da “saída” e do “próximo estado”

EEL7020 – Sistemas Digitais 9/38

Próximo Estado Estado Atual

Sinal de relógio ("Clock")

Registrador de Estado

Circuito Combinacional (Funções de Saída e

Funções de Próximo Estado)

Sinal de inicialização ("Reset")

Page 10: refri

• Armazenamento do “estado atual”• Registrador construído a partir de flip-flops

• Cálculo da “saída” e do “próximo estado”

Estrutura de uma FSM

EEL7020 – Sistemas Digitais 10/38

• Circuito combinacional; ou

• Tabela verdade da lógica de saída e da lógica de próximo estado armazenada em uma memória (ROM, Flash, RAM, ...)

Page 11: refri

ROM armazena tabela verdade da lógica de saída e de próximo estado

ROM

A0

A1

.

D0

D1

.

Entrada(x)

Saída(z)

x A2 A1 A0 z D2 D1 D0

0 0 0 0 1 0 0 1

0 0 0 1 1 0 1 1

0 0 1 0 0 1 0 0

Endereços

da ROM

Saídas

da ROMFunções de saída e funções de próximo estado

Usada no

controle do

processo

Estrutura de uma FSM

EEL7020 – Sistemas Digitais 11/38

ROM

Flip-flops

.

.

.

An

.

.

.

Dn

(x) (z)

Próximo estado

Estado atual

0 0 1 0 0 1 0 0

0 0 1 1 0 1 0 1

0 1 0 0 1 1 0 1

0 1 0 1 0 0 0 0

0 1 1 0 1 0 0 0

0 1 1 1 X X X X

1 0 0 0 0 0 1 0

1 0 0 1 0 1 0 0

Registrador de estado

Cada posição da ROM armazena uma linha da tabela de estados.

clock

Page 12: refri

• FSM é um circuito sequencial que realiza transições em uma sequência de padrões predeterminados

• Uma FSM utiliza um ou mais flip-flops para armazenar seu estado interno

Moore e Mealy

EEL7020 – Sistemas Digitais 12/38

armazenar seu estado interno

• O “estado atual” de uma FSM é utilizado na definição de seu próximo estado

• A saída fornecida por um circuito sequencial pode ser função apenas do seu estado atual, ou também de sua entrada

Page 13: refri

Moore e Mealy

EEL7020 – Sistemas Digitais 13/38

Moore e Mealy

Page 14: refri

• Máquina Moore – a saída do circuito sequencial é função apenas do estado atual

Moore e Mealy

Lógica de

próximo estado

(combinacional)

Registradores

de estado atual

(sequencial)

Lógica de saída

(combinacional)

próximo

estado

estado

atual

saídaentrada

reset

assíncrono

EEL7020 – Sistemas Digitais 14/38

• Máquina Mealy – a saída do circuito sequencial é função do estado atual e das entradas

assíncrono

Lógica de

próximo estado

(combinacional)

Registradores

de estado atual

(sequencial)

Lógica de saída

(combinacional)

próximo

estado

estado

atualsaídaentrada

reset

assíncrono

Page 15: refri

• Máquina Moore – a saída do circuito sequencial é função apenas do estado atual

x = entradaz = saída

• No estado S0, saída é z = 0• No estado S1, saída é z = 1

Moore e Mealy

EEL7020 – Sistemas Digitais 15/38

• Máquina Mealy – a saída do circuito sequencial é função do estado atual e das entradas

x ; zx = entradaz = saída

• No estado S0, com entrada 0, saída é z = 0• No estado S0, com entrada 1, saída é z = 1

Page 16: refri

• Estrutura de uma FSM: cálculo da “saída” e do “próximo estado” usando circuito combinacional

• Geração de tabela de transição de estados a

EEL7020 – Sistemas Digitais 16/38

• Geração de tabela de transição de estados a partir de um circuito sequencial

Page 17: refri

• Considerando FSMs onde é utilizado um circuito combinacional para o cálculo do próximo estado e da saída, a tabela de estados da FSM pode ser obtida da seguinte forma:

1. Determinar as equações de entrada e saída para os flip-flops

2. Determinar as equações de próximo estado para os flip-flops

Tabela de Estados de uma FSM

EEL7020 – Sistemas Digitais 17/38

3. Construir o mapa de Karnaugh para o próximo estado para cada flip-flop

Dica: flip-flop D: Q’ = Dflip-flop T: Q’ = T xor Qflip-flop SR: Q’ = S or RQflip-flop JK: Q’ = JQ or KQ

4. Combinar os mapas para formar a tabela de estados. Essa tabela, também conhecida por “tabela de transição de estados”, fornece o próximo estado dos flip-flops como uma função do estado atual e das entradas do circuito sequencial

Page 18: refri

JA

KA

A

A

JB

KB

B

B

Exemplo 1: Moore

EEL7020 – Sistemas Digitais 18/38

1. Equações de entrada/saída para os FFs:

JA = x KA = x and B z = B

JB = x KB = x xor A

2. Equações de próximo estado para os FFs:

A’ = JAA + KAA = x A + (x + B) A

B’ = JB B + KB B = x B + (x xor A) B = x B + (x A + x A) B

Page 19: refri

Equações de próximo estado para os FFs:

A’ = x A + (x + B) A

B’ = x B + (x A + x A) B

Exemplo 1: Moore

EEL7020 – Sistemas Digitais 19/38

3. Mapas de Karnaugh:

0 1

00 0 1

01 0 1

11 1 1

10 1 0

ABx

A’

0 1

00 0 1

01 0 1

11 1 0

10 0 1

ABx

B’

Page 20: refri

4. Combinando os mapas de Karnaugh para obter a tabela de estados:

AB X=0 X=1 z

00 00 11 0

01 00 11 1

11 11 10 1

A’ B’EstadoAtual

Próximo EstadoX=0 X=1

Saída Atual(z)

S0 S0 S2 0

S1 S0 S2 1

S2 S2 S3 1

=>

Exemplo 1: Moore

EEL7020 – Sistemas Digitais 20/38

10 10 01 0

S2 S2 S3 1

S3 S3 S1 0

Moore: Saída z (dentro do retângulo) depende apenas do estado atual do FF.

Grafo da FSM possibilita melhor entendimento do funcionamento do circuito sequencial.

Page 21: refri

JA

KA

A

A

JB

KB

B

B

Exemplo 2: Mealy

EEL7020 – Sistemas Digitais 21/38

1. Equações de entrada/saída para os FFs:

JA = x B KA = x z = x B A + x A + x B

JB = x KB = x A

2. Equações de próximo estado para os FFs:

A’ = JAA + KAA = x B A + x A

B’ = JB B + KB B = x B + (A x) B = x B + x B + A B

Page 22: refri

3. Mapas de Karnaugh:

Equações de próximo estado para os FFs:

A’ = x B A + x A

B’ = x B + x B + A B

Exemplo 2: Mealy

EEL7020 – Sistemas Digitais 22/38

3. Mapas de Karnaugh:

0 1

00 0 0

01 0 1

11 1 0

10 1 0

ABx

A’

0 1

00 0 1

01 1 1

11 1 0

10 0 1

ABx

B’

0 1

00 0 1

01 1 0

11 0 1

10 0 1

ABx

Z

Page 23: refri

4. Combinando os mapas de Karnaugh para obter a tabela de estados:

AB X=0 X=1 X=0 X=1

00 00 01 0 1

01 01 11 1 0

11 11 00 0 1

10 10 01 0 1

A’ B’EstadoAtual

Próximo EstadoX=0 X=1

Saída Atual(z)

S0 S0 S1 0 1

S1 S1 S2 1 0

S2 S2 S0 0 1

S3 S3 S1 0 1

=>

z

Exemplo 2: Mealy

EEL7020 – Sistemas Digitais 23/38

10 10 01 0 1 S3 S3 S1 0 1

As transições indicam entrada ; saída

(ou x ; z)

Mealy: Saída z depende do estado atual e da entrada.

Grafo da FSM possibilita melhor entendimento do funcionamento do circuito sequencial.

Page 24: refri

Estudo de casoControlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 24/38

Controlador de uma máquina de venda de refrigerantes

Page 25: refri

Projetar o circuito de controle (FSM) para gerência das operações de uma máquina de venda de refrigerantes.

Especificação:

A máquina fornece dois tipos de refrigerantes, denominados MEET e ETIRPS. Estes estão disponíveis para escolha pelo usuário a partir de duas teclas no painel com o nome dos refrigerantes. Ambos refrigerantes custam R$1,50 e existe na máquina uma fenda para inserir moedas com um sistema eletromecânico capaz de reconhecer moedas de R$1,00, R$0,50 e R$0,25, e

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 25/38

eletromecânico capaz de reconhecer moedas de R$1,00, R$0,50 e R$0,25, e capaz de devolver automaticamente qualquer outro tipo de moeda ou objeto não reconhecido. Além disso, durante a compra, o usuário pode desistir da transação e apertar a tecla DEV que devolve as moedas inseridas até o momento. Somente após acumular um crédito mínimo de R$1,50 o usuário pode obter um refrigerante. A devolução de excesso de moedas é automática sempre que o valor inserido antes de retirar um refrigerante ultrapassar R$1,50. Uma terceira simplificadora consiste em ignorar a composição exata das moedas inseridas na máquina, atendo-se apenas ao montante total inserido.

Link para a especificação completa.

Page 26: refri

Solução: Diagrama de blocos Informações enviadas para os atuadores (eletro-mecânicos

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 26/38

Informações fornecidas pelos sensores

Page 27: refri

Solução: Tabela de estados

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 27/38

Page 28: refri

Solução: Tabela de estados

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 28/38

Page 29: refri

Solução: Representação gráfica

Estudo de caso: Controlador de uma máquina de venda de refrigerantes

EEL7020 – Sistemas Digitais 29/38

Reset

Page 30: refri

Codificações de estados para FSMs

EEL7020 – Sistemas Digitais 30/38

Codificações de estados para FSMs

Page 31: refri

• Definição dos estados da FSM da máquina de venda de refrigerantes:

package refri is

type cmd is (Nada, M025, M050, M100, DEV, MEET, ETIRPS);

end package;

• Ferramentas de síntese geram a codificação mais adequada para os estados simbólicos:

Codificação de estados para FSMs

EEL7020 – Sistemas Digitais 31/38

simbólicos:

• Escolha do estilo de codificação visa redução de custos e atrasos

Codificação Exemplo – FSM com 4 estados Otimização

Sequencial (binária) 00, 01, 10, 11 Área

One hot 0001, 0010, 0100, 1000 Velocidade

Grey 00, 01, 11, 10 Ruído

Page 32: refri

Codificação de estados para FSMsBinária

Codificação Binária

Vantagens:• Mais simples e direta, visto que segue a numeração binária padrão

• Número de FFs também é menor, quando comparado a outros métodos tais como one-hot

EEL7020 – Sistemas Digitais 32/38

outros métodos tais como one-hot• Custo de área menor

Desvantagens• Mais de um bit pode mudar de uma transição para outra• Maior consumo (maior atividade de chaveamento nos FFs)

• Lógica mais complexa para determinar o estado atual

Page 33: refri

Codificação de estados para FSMsGray

Codificação Gray

• Estados são identificados através de números binários, mas na codificação Gray

• Para transformar um número binário na codificação Gray:

“Seja o número: b1b2..bn-1bn. Se bn-1 é 1, trocar bn para 1-bn, caso

contrário manter como está. Repetir o procedimento até atingir o bit mais

EEL7020 – Sistemas Digitais 33/38

contrário manter como está. Repetir o procedimento até atingir o bit mais

significativo.”

Ex.: 000 → 000

001 → 001

010 → 011

011 → 010

100 → 110

101 → 111

Page 34: refri

Codificação de estados para FSMsGray

Codificação Gray

Vantagens:• Mesmo número de FFs que a codificação binária• Apenas um bit muda para estados adjacentes• Menor consumo (menos atividade de chaveamento de FFs)

EEL7020 – Sistemas Digitais 34/38

FFs)

Desvantagens• Decodificação mais complexa

Page 35: refri

Codificação de estados para FSMsOne hot

Codificação one hot

• Lógica de decodificação é mais simplificada, mas utiliza um número maior de FFs

• Cada estado possui seu próprio FF com o valor 1 (um), enquanto os demais ficam em 0 (zero).

EEL7020 – Sistemas Digitais 35/38

Ex.: 000 → 000001

001 → 000010

010 → 000100

011 → 001000

100 → 010000

101 → 100000

Page 36: refri

Codificação de estados para FSMs

Codificação one hot

Vantagens:• Facilmente visualizado devido a simplicidade da lógica de decodificação

• Apenas dois FFs mudam de estado – menor consumo

One hot

EEL7020 – Sistemas Digitais 36/38

Desvantagens• Ocupação de área – necessidade de diversos FFs

Page 37: refri

Justificativa para one hot ser default em FPGAs:

• Abundância de flip-flops em FPGAs facilita o mapeamento.

• FSMs one hot são mais rápidas. Uma FSM mais codificada pode ficar mais lenta com a inclusão de novos estados.

Codificação de estados para FSMs

EEL7020 – Sistemas Digitais 37/38

• Facilidade para projetar FSMs one hot. VHDL pode ser escrito a partir de um diagrama de estados, sem necessidade de criação de uma tabela de estados.

• Facilidade para realizar modificações.

• Facilidade para realizar a síntese em VHDL ou Verilog.

Page 38: refri

É possível forçar a utilização de outras codificações no processo de síntese. Incluir no VHDL:

package refri is

type cmd is (Nada, M025, M050, M100, DEV, MEET, ETIRPS);

attribute syn_enum_encoding : string;

Codificação de estados para FSMs

EEL7020 – Sistemas Digitais 38/38

attribute syn_enum_encoding : string;

attribute syn_enum_encoding of cmd : type is “gray";

end package;

-- opções disponíveis: onehot, gray, sequential

Log da síntese do Synplify mostrará:

@N:CD232 : VendingMachine.vhd(29) | Using gray code encoding for type cmd