Máquinas de Estados Finitos (cont)

Slides:



Advertisements
Apresentações semelhantes
Flip-Flops e Dispositivos Correlatos
Advertisements

Contadores e Registradores
Introdução Revisão de Conceitos de Circuitos Lógicos e Estruturas para Arquitetura de Computadores.
Máquinas de Estado Sistemas Digitais.
Sistemas Digitais Projeto RTL – Unidade de Controle
Circuitos Lógicos e Organização de Computadores Capítulo 8 –Circuitos Seqüenciais Síncronos Ricardo Pannain
Máquinas de Estado Eletrônica Digital.
Introdução aos Sistemas Digitais
Unidades de Execução e de Controle Sistemas Digitais.
Circuitos Lógicos Sequenciais
Finite State Machines.
MC542 Organização de Computadores Teoria e Prática
Redução do Consumo de Energia
MC542 Organização de Computadores Teoria e Prática
Organização e Arquitetura de Computadores I Parte de Controle
Projeto de Circuitos Sequenciais Síncronos
Contadores Digitais.
Análise de Circuitos Sequenciais Síncronos
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Circuitos sequenciais síncronos
Máquina de Estados Finito
Índice Sumário Implementação de Contadores Implementação de contadores
Índice SUMÁRIO Introdução ao projeto de lógica seqüencial.
Engenharia de Software para Computação Embarcada
Antonyus Pyetro Infra-estrutura de Hardware – IF674
Análise de circuitos sequenciais síncronos
Dezembro de 2005 Sistemas Digitais 1 Síntese com um flip-flop por estado Prof. Carlos Sêrro Adaptado para l ó gica positiva por Guilherme Arroz SISTEMAS.
Fundamentos de Circuitos Sequenciais Modelos de Mealy e Moore
Circuitos Seqüenciais
Técnicas Digitais e de Microprocessadores II
Circuitos seqüenciais síncronos
Síntese clássica de circuitos sequenciais síncronos
ENGA78 – Síntese de Circuitos Digitais
Circuitos Combinacionais Exercícios 2 POSCOMP e ENADE
Circuitos Sequenciais
SISTEMAS DIGITAIS AULA 9
Eletrônica Digital II ELT013
SISTEMAS DIGITAIS AULA 6 Prof. José Bezerra de Menezes Filho CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DA PARAÍBA DA PARAÍBA.
Aplicações com flip-flops
Hardware Description Language Aula 4 -VHDL Prof. Afonso Ferreira Miguel, MSc.
Hardware Description Language Aula 3 – AHDL (conclusão) Prof. Afonso Ferreira Miguel, MSc.
Sistemas Digitais e Arquitetura de Computadores - SDAC
Diagrama de estado ? Exemplo:
Formalismos para Concorrência Por Paulo Maciel Centro de Informática Universidade Federal de Pernambuco.
Eletrônica Digital II ELT013
FLIP-FLOPs.
ANTONIO AUGUSTO LISBOA DE SOUZA
Latches e Flip-Flops (1/2)
Introdução às Máquinas de Estados Finitos (Finite State Machine - FSM)
Registradores Prof.: José Mauricio Neto
Sistemas Digitais Aula 10 GRECO-CIN-UFPE.
LATCHES e FLIP-FLOPs Aula 9 GRECO-CIN-UFPE Como implementar uma célula de memória? Latches e Flip-Flops r n-1 r n-2 r n-3 r n-4 r 0 célula { 0,1} = 1.
Exercício: Trazer próxima aula
Latches e Flip-Flops (2/2)
Exercícios: trazer próxima aula
Sistemas Digitais Projeto do curso Prof. Manoel Eusebio de Lima Centro de Informática Universidade Federal de Pernambuco.
Cap. V – Análise e Síntese de Circuitos Sequenciais Síncronos
Lei de Moore O número de transistores num circuito integrado duplica todos os 18 meses. Isto é extremamente relevante porque... as gates são feitas a partir.
Lógica Matemática e Elementos de Lógica Digital
Circuitos Lógicos Sequenciais
Lógica Programável e VHDL Prof. Marcio Cunha Aula 05 – Projeto RTL.
Circuitos Sequenciais: Latch e Flip-Flop
Lógica Sequencial e Máquina de Estados Finitos
Lógica Programável e VHDL
Prof. Marcio Cunha Aula 13 – Máquina de Estados
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Circuitos Sequenciais
Xx. x x xxx.
Transcrição da apresentação:

Máquinas de Estados Finitos (cont) ANTONIO AUGUSTO LISBOA DE SOUZA

Plano da aula Tipos de FSMs: Modelo de Moore Modelo de Mealy Diagrama de estados de uma FSM tipo Moore Implementação de FSM tipo Moore

Revisão

Tipos de Máquinas de Estado Modelo de Moore: Saídas dependentes (apenas) do estado dos FFs!!!

Tipos de Máquinas de Estado Modelo de Mealy: Saídas dependentes do estado dos FFs e das entradas!!!

Modelo de Moore Saídas dependentes (apenas) do estado dos FFs!!! Vocês conhecem algum circuito assim?

Modelo de Moore Condição de transição A/0 B/0 Diagrama de estados: X W A/0 R B/0 Diagrama de estados: Y V S T Valor da saída Estado (A, B, C) C/1

Modelo de Moore A B C 1 Tabela de estados: A/0 B/0 C/1 Estado atual X Estado atual Próximo estado (X=0) Próximo estado (X=1) Saída Z A B C 1 A/0 X B/0 X X X X C/1

Modelo de Moore Exemplo: =X Z=A0A1A2 X X X 001/0 010/0 011/0 100/0 Diagrama de estados: X X X X X X X X X X 000/0 111/1 110/0 101/0 X X X

Modelo de Moore Exemplo: =X Z=A0A1A2 Tabela de estados: EA PE(X=0) 000 001 111 010 011 100 101 110 1 Tabela de estados:

Diagrama de estados Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore

Diagrama de estados Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset 1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” 1 S1/0 S2/0 1 1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 S3/0 S4/0 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” 1 S1/0 S2/0 1 1 S3/0 S4/0

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 S3/0 S4/0 S5/0 S6/1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” S5 = “100”, S6 = “010” 1 S1/0 S2/0 1 1 S3/0 S4/0 S5/0 S6/1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 S3/0 S4/0 S5/0 S6/1 1 S7/1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” S5 = “100”, S6 = “010” S7 = “1001” 1 S1/0 S2/0 1 1 S3/0 S4/0 S5/0 S6/1 1 S7/1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 S5/0 S6/1 1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” S5 = “100”, S6 = “010” S7 = “1001” 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 S5/0 S6/1 1 S7/1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 1 S5/0 S6/1 1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” S5 = “100”, S6 = “010” S7 = “1001” 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 1 S5/0 S6/1 1 S7/1

Diagrama de estados S0/0 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 1 S5/0 S6/1 1 1 Exemplo: Defina o diagrama de estados de um circuito que detecte tanto a sequência “010” quanto a sequência “1001”. O circuito deve fornecer uma saída em 1 quando o último 0 da sequência “010” for detectado, ou quando o último 1 da sequência “1001” for detectado. Atenção às sequências sobrepostas. Lembre-se de incluir o estado após o reset. Utilizar o Modelo de Moore. S0/0 S0 = Reset S1 = “1” , S2 = “0” S3 = “10” , S4 = “01” S5 = “100”, S6 = “010” S7 = “1001” 1 S1/0 S2/0 1 1 1 1 S3/0 S4/0 1 S5/0 S6/1 1 1 S7/1

Implementação Sim, mas ... Cadê o circuito????????

Implementação X 010101... CLK X=01001011... Z= 00010010 Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore. Detector de 010 X 010101... CLK X=01001011... Z= 00010010

A metodologia parece familiar? Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico A metodologia parece familiar?

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

Implementação Diagrama de estados: 1 Tabela de estados: X 010101... 1 Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore. Diagrama de estados: Detector de 010 SR/0 1 Tabela de estados: X 010101... EA PE(X=0) PE(X=1) Z SR S0 S10 S010 1 S0/0 1 1 S10/0 CLK X=01001011... Z= 00010010 1 S010/1

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

4 estados! Adotemos 2 FFs do tipo D Implementação Exemplo: Projete um circuito que detecte a sequência “010” em uma entrada serial X. O circuito deve fornecer uma saída Z em 1 apenas quando o último 0 da sequência “010” for detectado. Utilizar o Modelo de Moore. Diagrama de estados: Detector de 010 SR/0 1 Tabela de estados: X 010101... EA PE(X=0) PE(X=1) Z SR S0 S10 S010 1 S0/0 1 1 S10/0 CLK X=01001011... Z= 00010010 1 S010/1 4 estados! Adotemos 2 FFs do tipo D

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

Como usaremos 2FFs (A e B), podemos fazer a seguinte associação: Implementação Tabela de estados: Como usaremos 2FFs (A e B), podemos fazer a seguinte associação: S0 = (AB==00) S1 = (AB==01) S2 = (AB==10) S3 = (AB==11) EA PE(X=0) PE(X=1) Z SR S0 S10 S010 1 EA+X A B X PE A B Z 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

Tabela de excitação do FF D Implementação Tabela de excitação do FF D QnQn+1 D 00 01 1 10 11 D=Qn+1

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs, e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

= + Implementação QnQn+1 D 00 01 1 10 11 D=Qn+1 EA+X A B X PE A B Z 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 A B X DA DB Z 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 QnQn+1 D 00 01 1 10 11 = + D=Qn+1

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

Implementação 1 1 1 DA=BX+A B X DB=X Z=AB BX A BX A BX A A B X DA DB Z 1 DA=BX+A B X A B X DA DB Z 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 1 1 BX A 1 DB=X BX A 1 Z=AB

Implementação Passo 1: Estabelecer o diagrama e a tabela de estados Passo 2: Definir número e tipo de FFs Passo 3: Estabelecer um diagrama de Transições “EN  EN+1” para cada FF Passo 4: Estabelecer a Tabela de Excitação do FF Passo 5: Para cada Estado, definir as expressões das entradas dos FFs e das saídas Passo 6: Simplificar as expressões Passo 7: Implementar o Diagrama Elétrico

Implementação DA=BX+A B X DB=X Z=AB Teria outro jeito de implementar a funcionalidade requerida? (poderíamos usar um registrador de deslocamento?)