5.a aula pratica t8llc mef quartus ii - ifprofessorcesarcosta.com.br/upload/imagens_upload/8.a...

16
1 Prática (Parte 1)Criação de Máquina de Estados Finitos (MEFs) no ambiente Quartus II 13.0sp1 1. Se familiarizar com a ferramenta de criação de MEFs do Quartus II; 2. Habilidade para usar o Quartus II para resolver problemas; 3. Adquirir conceitos práticos sobre MEFs. Situação Problema Deseja-se identificar o recebimento de duas letras distintas, segundo a tabela ASCII, por uma entrada serial. O protocolo adotado será: Start bit em nível alto, um Byte e um Stop bit em nível alto, respectivamente. As letras escolhidas foram I e F, que são representadas na Tabela ASCII por 49h e 46h, respectivamente. Desenvolva uma Máquina de Estados Finitos que identifique estes caracteres segundo este protocolo. Dica: Converta os códigos hexadecimais em binários e divida-os em nibbles (grupos de 4 bits), use um Detector de Sequências. OBJETIVO:

Upload: dangdung

Post on 10-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

1

5ª Prática (Parte 1)– Criação de Máquina de Estados Finitos

(MEFs)

no ambiente Quartus II 13.0sp1

1. Se familiarizar com a ferramenta de criação de

MEFs do Quartus II;

2. Habilidade para usar o Quartus II para

resolver problemas;

3. Adquirir conceitos práticos sobre MEFs.

Situação Problema

Deseja-se identificar o recebimento de duas letras distintas, segundo a tabela

ASCII, por uma entrada serial. O protocolo adotado será: Start bit em nível alto, um Byte

e um Stop bit em nível alto, respectivamente.

As letras escolhidas foram I e F, que são representadas na Tabela ASCII por 49h

e 46h, respectivamente. Desenvolva uma Máquina de Estados Finitos que identifique

estes caracteres segundo este protocolo.

Dica: Converta os códigos hexadecimais em binários e divida-os em nibbles

(grupos de 4 bits), use um Detector de Sequências.

OBJETIVO:

Page 2: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

2

Figura 1 - Preview da MEF utilizada

Criando uma nova máquina de estados

Vá em File > New File (Ctrl + N) > State Machine File > OK

Figura 2 - Opção de arquivo para Máquina de Estados Finitos

Salve o arquivo criado na Área de Trabalho com nome de “MEF_Pratica”

acessando File > Save.

Page 3: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

3

A seguir, clique no ícone STATE MACHINE WIZARD na barra superior de

ferramentas da janela de edição que foi criada.

Figura 3 - Icone da ferramenta State Machine Wizard

Selecione a opção “Edit an existing state machine design”

A seguinte tela irá surgir, na aba General pode-se alterar a máquina criada para

modo síncrono e assíncrono, bem como o reset da máquina, que pode ocorrer em nível

alto ou baixo. Neste caso, nenhuma opção foi alterada nesta aba.

Figura 4 - Aba General da ferramenta State Machine Wizard

Na aba Inputs selecione a célula <New> e aperte Enter, a célula ficará editável,

digite Entrada1.

Page 4: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

4

Figura 5 - Aba Inputs da ferramenta State Machine Wizard

Repita o procedimento na aba Outputs e crie duas saídas chamadas Saida1 e

Saida2, configurando também a opção “Output State” para “Next clock cycle”

Note que nesta etapa você pode criar uma máquina que atualize sua saída no

ciclo de clock atual ou no próximo ciclo de clock, permitindo a configuração de máquinas

de estado finito no modelo Mealey ou Moore respectivamente.

Figura 6 - Aba Outputs da ferramenta State Machine Wizard

Na aba States, crie os onze estados, como por exemplo da letra A até a letra L.

Observe que na coluna “Reset” aparece uma correspondência escrito “Yes”, isto

significa que o estado da linha correspondente corresponde ao estado inicial do

programa.

Page 5: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

5

Figura 7 - Aba States da ferramenta State Machine Wizard

Na aba Transitions, crie transições de estados conforme as indicadas na Figura

1. Note que tanto em Source State quanto em Destination State pode-se selecionar

estados criados anteriormente na aba States.

Note que, caso esta etapa se torne demorada, pode-se dar um OK na ferramenta

State Machine Wizard e usar a ferramenta Transition Tool. Para retornar à edição pelo

assistente, clique novamente na ferramenta State Machine Wizard.

Figura 8 - Ferramenta Transition Tool

A coluna Transition (In Verilog or VHDL’OTHERS’) representa as condições

necessárias para que a transição de estados descrita naquela linha seja verdadeira.

Nível alto pode ser descrito pelo nome da entrada, e nível baixo por ser descrito pelo

nome da entrada precedido por ~.

Tabela 1 – Uso das entradas no campo de Transições.

Nível Alto Entrada1

Nível Baixo ~Entrada1

Page 6: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

6

Figura 9 - Aba Transitions da ferramenta State Machine Wizard

Note que, caso esta etapa se torne demorada, pode-se dar um OK na ferramenta

State Machine Wizard e clicar duas vezes sobre o arco que representa transição de um

estado a outro. Para retornar à edição pelo assistente, clique novamente na ferramenta

State Machine Wizard.

Figura 10 - Exemplo dos Estados e Arcos de Transição

Page 7: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

7

Figura 11 - Inserção manual da Transição

Na aba Actions pode-se atribuir o valor das saídas, 0 ou 1, em cada estado.

Page 8: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

8

Figura 12 - Aba Actions da ferramenta State Machine Wizard

Feito isto, clique em OK e note que a o grafo de estados já foi criado.

Figura 13 - Diagrama da MEF finalizada

Page 9: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

9

Figura 14 - Diagrama de estados gerado pelo State Machine Wizard

Salve novamente o arquivo em File > Save.

Page 10: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

10

5ª Prática (parte 2) – Implementação da Máquina de Estados

Finitos (MEF) em um projeto existente

1. Se familiarizar com a ferramenta de criação de

máquinas de estado finito do Quartus II;

2. Habilidade para usar o Quartus II para

resolver problemas;

3. Adquirir conceitos básicos do Máquinas de Estado

Finito.

Criando um arquivo compilável

Para implementação de uma MEF desenvolvida no Quartus II em um FPGA,

deve-se converter esta para uma linguagem HDL ou para um Símbolo utilizável. Isto

ocorre devido ao fato do software Quartus II compilar apenas arquivos HDL, como

Verilog, VHDL ou System Verilog, ou Diagrama de Blocos/Arquivo Esquemático.

Desta maneira, abra o arquivo “MEF_Pratica.smf” e clique em Generate HDL File

localizado na barra de ferramentas superior. Você também pode clicar com o botão

direito dentro da janela de edição e selecionar a opção Generate HDL File ou Generate

Other Files.

Figura 15 - Gerando arquivos compiláveis

OBJETIVO:

Page 11: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

11

Escolha a linguagem desejada na tela que surgir, neste caso VHDL.

Figura 16 - Opções para geração de arquivos HDL

O código em VHDL aparecerá na Tela, salve-o com o nome de

“MEF_Pratica.vhdl” na Área de Trabalho.

Figura 17 - Parte do arquivo VHDL gerado

Com o código gerado em VHDL gerado, você poderá inclui-lo em seu projeto do

Quartus II e fazer as devidas simulações.

Page 12: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

12

Incluindo o arquivo gerado no projeto

Abra seu projeto em File > Open Project.

No grupo Project Navigator, navegue até Files e clique com o botão direito no

item Files

Figura 18 - Adicionando arquivos pela Janela de Navegação do Projeto

Clique em “...” ao lado de Add e encontre o arquivo VHDL “MEF_Pratica.vhdl”,

clique em Add e em seguida OK.

Figura 19 - Janela de gerenciamente de arquivos do projeto

No grupo Files localize o arquivo que foi adicionado e clicando com o botão

direito defina este como entidade de nível mais alto na hierarquia.

Figura 20 - Definindo o arquivo como Top-level entity

Page 13: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

13

Clique em Start Analysis & Synthesis, ou navegue até Processing > Start > Start

Analysis & Synthesis.

Figura 21 - Ícone Start Analysis & Synthesis

Se todos passos até aqui foram feitos de forma adequada, o compilador não

deve gerar nenhum erro.

Compile o arquivo em seguida clicando em Compile.

Inserindo estímulos no arquivo VHDL gerado

Crie um novo arquivo em File > New, selecione University Program VWF

Figura 22 - Opção de arquivo para simulação de estímulos

Page 14: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

14

Vá em Edit > Insert > Insert Node or Bus, logo após isso, clique em Node

Finder…

Figura 23 - Inserindo Nós ou Barramentos

Clique em “List”, depois em “>>” e então em “OK” duas vezes.

Figura 24 - Localizando nós e barramentos

Todas entradas e saídas devem aparecer do lado esquerdo da tela.

Para máquinas maiores, pode-se utilizar um bus indicando o estado atual, para

isso vá novamente em Edit > Insert > Insert Node or Bus, digite fstate no campo name

e dê OK. Note que este nome se refere ao type mencionado em VHDL.

Page 15: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

15

Figura 25 - Inserindo o indicador de estado atual

Para começar a inserir estímulos nos sinais, clique no sinal clock e depois no

botão “Overwrite Clock”. Preencha o valor do período com 20.0 ns e duty cycle em 50%.

Figura 26 - Entradas e saídas inseridas

Selecionando um pedaço do sinal da Entrada1 no diagrama temporal, altere o

seu valor para nível alto clicando em Forcing High (1).

Figura 27 - Ícone Forcing High (1) na barra de tarefas

Figura 28 - Inserindo estímulo na Entrada 1

Page 16: 5.a Aula Pratica T8LLC MEF Quartus II - IFprofessorcesarcosta.com.br/upload/imagens_upload/8.a Aula_T8LLC... · 6H WRGRV SDVVRV DWp DTXL IRUDP IHLWRV GH IRUPD DGHTXDGD R FRPSLODGRU

16

Clique em Run Functional Simulation ou vá até Simulation > Run Functional

Simulation

Figura 29 - Ícone de Run Functional Simulation

Salve a simulação com o nome de “MEF_Pratica.vwf”

Uma janela será aberta e após algum tempo o resultado será apresentado em

uma nova janela contendo o diagrama temporal com o valor da Saida1 atualizado.

Clicando na ferramenta Zoom Tool pode-se observar mais detalhadamente a

atualização da saída em relação à entrada e ao clock.

Analise o funcionamento de sua MEF.

Bibliografia: