Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline....

8
Tutorial do Max Plus II Baseline Thiago Valentin de Oliveira 10/08/2010 1 Baixando, Licenciando e Instalando o Software O primeiro passo ´ e adquirir o software Max Plus II com uma licen¸ ca. Isso pode ser feito seguindo os passos abaixo. Acesse o site http://www.altera.com/maxplus2-student e clique em ‘Get Licenses’. No final da p´ agina clique em ‘MAX+PLUS II Software for Students and Universities’. Escolha uma vers˜ ao (de preferˆ encia a 10.2) e clique em ‘Continue’. Abra o prompt de comando do MS-DOS e digite ‘dir /p’. O n´ umero de s´ erie do seu disco r´ ıgido ser´ a mostrado. Anote-o. Preencha o formul´ ario e o question´ ario e conclua o pedido de licen¸ ca. Clique no link fornecido e em ‘Download MAX+PLUS II Baseline’. Baixe e instale o arquivo ‘base- line10 2.exe’. Vocˆ e deve verificar em qual pasta do seu disco r´ ıgico foi instalado o Max Plus II Baseline pois a licen¸ca ser´ a enviada para o seu email e vocˆ e dever´ a baix´ a-la e coloc´ a-la na mesma pasta que o Max PLus II Baseline. O nome do arquivo ´ e ‘license.dat’. Abra o ‘Painel de Controle’ e v´ anase¸c˜ ao ‘Sistema’. Clique em ‘Avan¸cado’ e v´ a em ‘Vari´ aveis de Ambiente’. Crie uma nova vari´ avel de ambiente com o nome ‘LM LICENSE FILE’ e valor ‘C:\ <NOME DO DI- RET ´ ORIO> license.dat’ e confirme a opera¸c˜ ao. Isso finaliza o processo de instala¸c˜ ao e autentica¸ ao do software Max Plus II Baseline. Agora basta abri-lo e m˜ aos ` a obra! 2 Introdu¸ ao O software Max Plus II Baseline da Altera nos oferece uma grande facilidade para trabalhar com descri¸c˜ ao de circuitos. Basicamente, devemos escrever um c´ odigo em VHDL, que ser´ a compilado pelo programa. Obtendo ˆ exito, podemos simular o resultado atrav´ es de formas de onda, verificando, assim, a validade da implementa¸c˜ ao do circuito descrito em VHDL. Finalmente, se tudo estiver correto, fazemos a programa¸c˜ ao descrita no chip dispon´ ıvel (usando uma FPGA). Todos esses passos ser˜ ao descritos sucintamente ` a seguir. Em paralelo, um exemplo de c´ odigo em VHDL ser´ a utilizado para mostrar o funcionamento do programa, bem como algumas caracter´ ısticas intr´ ınsecas do mesmo que ser˜ ao muito ´ uteis em nossas simula¸ oes. Utilizaremos como exemplo um circuito que realiza a opera¸c˜ ao ogica OR entre dois bits de entrada (A e B), cuja sa´ ıda ´ e o bit S1; e, tamb´ em, a opera¸ ao l´ ogica AND bit a bit entre dois vetores de 4 bits (C e D), cuja sa´ ıda ´ e o vetor S2. 3 Desenvolvendo um Projeto 3.1 Iniciando o Programa Verifique em que local foi instalado o programa e execute-o. O arquivo de execu¸ ao tem nome ‘MAX+plus II 10.2 BASELINE’. A Figura 1 mostra a janela principal do programa, ap´ os este ser carregado. 1

Transcript of Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline....

Page 1: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

Tutorial do Max Plus II Baseline

Thiago Valentin de Oliveira

10/08/2010

1 Baixando, Licenciando e Instalando o Software

O primeiro passo e adquirir o software Max Plus II com uma licenca. Isso pode ser feito seguindo os passosabaixo.

• Acesse o site http://www.altera.com/maxplus2-student e clique em ‘Get Licenses’.

• No final da pagina clique em ‘MAX+PLUS II Software for Students and Universities’.

• Escolha uma versao (de preferencia a 10.2) e clique em ‘Continue’.

• Abra o prompt de comando do MS-DOS e digite ‘dir /p’. O numero de serie do seu disco rıgido seramostrado. Anote-o.

• Preencha o formulario e o questionario e conclua o pedido de licenca.

• Clique no link fornecido e em ‘Download MAX+PLUS II Baseline’. Baixe e instale o arquivo ‘base-line10 2.exe’.

• Voce deve verificar em qual pasta do seu disco rıgico foi instalado o Max Plus II Baseline pois a licencasera enviada para o seu email e voce devera baixa-la e coloca-la na mesma pasta que o Max PLus IIBaseline. O nome do arquivo e ‘license.dat’.

• Abra o ‘Painel de Controle’ e va na secao ‘Sistema’. Clique em ‘Avancado’ e va em ‘Variaveis de Ambiente’.

• Crie uma nova variavel de ambiente com o nome ‘LM LICENSE FILE’ e valor ‘C:\ <NOME DO DI-RETORIO> license.dat’ e confirme a operacao. Isso finaliza o processo de instalacao e autenticacao dosoftware Max Plus II Baseline. Agora basta abri-lo e maos a obra!

2 Introducao

O software Max Plus II Baseline da Altera nos oferece uma grande facilidade para trabalhar com descricao decircuitos. Basicamente, devemos escrever um codigo em VHDL, que sera compilado pelo programa. Obtendoexito, podemos simular o resultado atraves de formas de onda, verificando, assim, a validade da implementacaodo circuito descrito em VHDL. Finalmente, se tudo estiver correto, fazemos a programacao descrita no chipdisponıvel (usando uma FPGA).

Todos esses passos serao descritos sucintamente a seguir. Em paralelo, um exemplo de codigo em VHDL serautilizado para mostrar o funcionamento do programa, bem como algumas caracterısticas intrınsecas do mesmoque serao muito uteis em nossas simulacoes. Utilizaremos como exemplo um circuito que realiza a operacaologica OR entre dois bits de entrada (A e B), cuja saıda e o bit S1; e, tambem, a operacao logica AND bit a bitentre dois vetores de 4 bits (C e D), cuja saıda e o vetor S2.

3 Desenvolvendo um Projeto

3.1 Iniciando o Programa

Verifique em que local foi instalado o programa e execute-o. O arquivo de execucao tem nome ‘MAX+plusII 10.2 BASELINE’. A Figura 1 mostra a janela principal do programa, apos este ser carregado.

1

Page 2: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

Figura 1: Tela principal

Clique em ‘File’ → ‘New...’ na barra de ferramentas no topo da pagina. Selecione a opcao ‘Text Editor File’e clique em ‘OK’. Uma janela branca sera aberta e nela deve se digitar o codigo em VHDL do circuito quedesejamos implementar.

3.2 Escrevendo o Codigo em VHDL

O exemplo em questao do codigo em VHDL segue abaixo.

-- Implementacao das funcoes logicas (A or B) e (C[3..0] and D[3..0])

library IEEE;

use IEEE.std_logic_1164.all;

entity Exemplo is

port (

A,B: in std_logic;

C,D: in std_logic_vector (3 downto 0);

S1: out std_logic;

S2: out std_logic_vector (3 downto 0)

);

end Exemplo;

architecture Comportamento of Exemplo is

begin

S1 <= A or B;

S2 <= C and D;

end Comportamento;

Para salvar o arquivo, clique em ‘File’ → ‘Save’. Escolha como nome do arquivo o mesmo utilizado paraa entidade do programa. Utilize como extensao do arquivo (Automatic Extension) ‘.vhd’, conforme mostra aFigura 2. Escolha o diretorio que desejar e salve o arquivo. Uma dica que pode ser util: nao utilize comodiretorio padrao para seus arquivos .vhd um path que contenha caracteres especiais, como acentos. Isso geraraerro na hora de salva-lo. O atalho (CTRL + S) tambem pode ser utilizado para salvar. Uma vez salvo um

2

Page 3: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

programa, o atalho nao abrira nenhuma janela nova ao ser executado, apenas ira salvar o programa, atualizando-o; para abrir um arquivo salvo, clica-se em ‘File’ → ‘Open’ (atalho CTRL + O). Fique atento para a extensaodo arquivo que desejar abrir.

Figura 2: Salvando o arquivo texto

3.3 Compilacao

O primeiro passo agora e selecionar o nosso programa como arquivo atual. Isso pode ser feito clicando em‘File’ → ‘Project’ → ‘Set Project to Current File’, que e equivalente ao atalho (CTRL + SHIFT + J).

Para compilar o programa, clique em ‘File’ → ‘Project’ → ‘Save & Compile’, que equivale ao atalho (CTRL+ L). Algumas abas serao abertas (Figura 3). Se isso nao ocorrer, os erros serao indicados na aba inferior quese abriu, em letras vermelhas. Volte ao codigo e corrija-os. Apos compilado o arquivo, estas abas podem serfechadas.

Algumas mensagens de warning tambem podem ser indicadas. Isso nao impede a compilacao, mas e bomverifica-los antes de prosseguir. As mensagens em letras verdes nao indicam nenhum tipo de erro, apenasmostram informacoes do chip utilizado, o que veremos no futuro como configurar.

Figura 3: Compilacao

3.4 Simulacao

Para simular o resultado, primeiro devemos criar um arquivo onde serao guardadas as formas de onda detodos os bits do circuito. Para isso, clique em ‘File’ → ‘New...’ e escolha a opcao ‘Waveform Editor File’,indicando a extensao .scf ao lado. Uma nova janela sera aberta; maximize-a. Clique em ‘Node’ → ‘EnterNodes from SNF...’. Esta operacao tambem pode ser feita clicando com o botao direito do mouse sobre a area

3

Page 4: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

branca da janela e escolhendo ‘Enter Nodes from SNF...’. A Figura 4 mostra o que estamos visualizando natela neste momento.

Figura 4: Inclusao das formas de onda

Clique em ‘List’ e depois em ‘=>’, de forma que os dados na janela branca da esquerda sejam copiadospara a janela branca da direita. Isto estara selecionando os sinais que visualizaremos na simulacao (Figura 5).Escolhemos ver todos eles. Clique em OK. Repare que agora todos eles estao dispostos na tela.

Figura 5: Edicao das formas de onda

Vamos analisar agora como manipular as ferramentas de simulacao. Note, inicialmente, a diferenca dossımbolos de entrada (A, por exemplo) e saıda (S1, por exemplo), representados na coluna da esquerda, comfundo branco. Para entradas, o fio vermelho fica a direita do sımbolo cinza (com uma letra I, de Input);para saıdas o fio vermelho fica a esquerda do sımbolo cinza (com uma letra O, de Output). Clicando sobrecada um deles e arrastando para baixo ou para cima, podemos reorganizar a ordem de modo a facilitar nossavisualizacao e interpretacao. Faca o seguinte: arraste a entrada A para cima e, depois, selecionando C, D e S2juntos, desloque esse grupo inteiro para baixo, deixando uma linha no meio para separar o conjunto A, B e S1 doconjunto C, D e S2. Note, ainda, a diferenca da simbologia de bits e vetores. Os vetores sao representados pelosmesmos sımbolos cinzas agrupados, indicando ser um grupo de bits. Dispomos agora da organizacao mostradana Figura 6.

Figura 6: Edicao das formas de onda

4

Page 5: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

Devemos agora configurar as entradas para obter as saıdas em funcao destas. O intervalo de simulacao padraoe de um microssegundo (1.0 us), mas pode ser alterado em ‘File’ → ‘End Time...’ e alterando o valor indicado.Cuidado: intervalos muito grandes e com muitas operacoes podem deixar sua maquina lenta para operar, oumesmo trava-la. Vamos optar por manter o intervalo de 1.0 us.

Os comandos (CTRL + SPACE) e (CTRL + SHIFT + SPACE) sao utilizados para ampliar ou reduzira visualizacao do grafico, respectivamente. Esses comandos equivalem as lupas com um sinal de + e de -,respectivamente, na barra de ferramentas a esquerda da tela. Com a primeira opcao, vemos mais detalhesdentro de um intervalo menor. Ja com a segunda, observamos menos detalhes, mas podemos visualizar boaparte do intervalo estudado, ou todo ele. E exatamente isso que faremos. Use o comando (CTRL + SHIFT+ SPACE) sucessivas vezes ate que todo o intervalo (1.0 us) seja mostrado na tela. Observe ainda que umareta azul vertical marca a posicao (no eixo do tempo) exata para facilitar a leitura do grafico. Neste instante,os valores das variaveis sao mostrados a esquerda do grafico, na segunda coluna. Obtemos, entao, o resultadomostrado na figura 7.

Figura 7: Edicao das formas de onda

Agora vejamos as funcoes dos outros itens na barra de ferramentas a esquerda da tela. Elas sao usadas paraconfigurar as entradas do circuito para simularmos o resultado. Escolha uma das entradas (A, por exemplo),clicando sobre ela. A primeira linha deve ficar com fundo preto. Veja a Figura 8. Antes de prosseguir, cliquesobre um vetor de entrada (C, por exemplo). Observe que algumas opcoes nao estao disponıveis para bits eoutras para vetores; veremos isso a frente com detalhes. Quando uma opcao for exclusiva para bits ou exclusivapara vetores, essa informacao sera fornecida.

Figura 8: Ferramentas de Simulacao

As ferramentas sao compostas de dois grupos. Um inclui as tres primeiras opcoes, utilizadas para selecao,texto e marcacao. Apenas uma pode ser utilizada por vez. O outro inclui as outras opcoes e estas sao utilizadaspara manipular as formas de onda.

• (I) Selecao: Opcao de selecao dos sinais; e a opcao que ja estava marcada previamente.

• (II) Texto: Opcao de texto; utilizada para adicionar comentarios ao grafico.

• (III) Marcacao: Opcao de marcacao de tempo; e utilizada para selecionar um intervalo qualquer detempo em um sinal.

5

Page 6: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

• (IV) Ampliar: Opcao de ampliar tela de exibicao. (Utilizado na Figura 7)

• (V) Reduzir: Opcao de reduzir tela de exibicao. (Utilizado na Figura 7)

• (VI) Ajustar em Pagina: Opcao equivalente a utilizar reducao (V) sucessivas vezes ate que o intervalototal seja ajustado na pagina. Esse processo poderia ser utilizado anteriormente, quando precisamosrealizar esse processo.

• (VII) Nıvel Logico 0: Impoe o nıvel logico 0 em toda a regiao selecionada. Se um bit e selecionado ea opcao (VII) e acionada, este permanece fixo em 0. Se um bit e selecionado e a opcao de marcacao (III)e utilizada para delimitar uma regiao especıfica, ao clicar em (VII), apenas a regiao delimitada assumevalor 0; exclusiva para bits.

• (VIII) Nıvel Logico 1: Impoe nıvel logico 1 com o mesmo comentario feito em (VII); exclusiva parabits.

• (IX) Nıvel Logico Indeterminado: Nao determina o nıvel logico (chamado Don´t Care), com o mesmocomentario feito em (VII); exclusiva para bits.

• (X) Alta Impedancia: Determina alta impedancia ao sinal, com o mesmo comentario feito em (VII);exclusiva para bits.

• (XI) Inverter Nıvel Logico: Complementa o sinal invertendo o nıvel logico em todos os instantes detempo. Para bits, o complemento e feito normalmente. Para vetores, o complemento e feito em cada bit.

• (XII) Clock: Gera uma onda quadrada controlada, isto e, um pulso de clock com perıodo e, con-sequentemente, frequencia ajustaveis. Veja a Figura 9. Na primeira linha da aba que se abre esta ainformacao do intervalo de tempo usado na simulacao (nesso caso, Interval: 0.0ns To: 1.0us). Lembre-seque 1ms = 10−3s, 1us = 10−6s e 1ns = 10−9s. Como o intervalo de tempo tem 1us (um microssegundo),usaremos os submultiplos ns (nanossegundos). A opcao Starting Value indica se o valor inicial e 0 ou 1.Clock Period indica o perıodo do pulso de Clock, que pode ser ajustado tambem determinando um valorconstante de tempo em Clock Period multiplicado por um valor inteiro determinado em Multiplied By.Esta opcao e exclusiva para bits.

Figura 9: (XII) Clock

• (XIII) Contador: Realiza uma contagem, isto e, incrementa uma quantidade ao valor atual. Parabits, equivale a uma onda quadrada. Para vetores, equivale ao valor em binario de um contador comum.Novamente, a primeira linha da aba que se abre e Interval: 0.0ns To: 1.0us. A segunda linha indica omodo como e mostrado o valor da contagem (Radix is:). Para bits, temos, obrigatoriamente, a opcaoBinary. A opcao Starting Value indica o valor inicial de contagem. A opcao Count Type: indica se acontagem deve ser feita, para vetores, em Binario (Binary) ou em Codigo de Gray (Gray Code). Ao lado,Increment By indica quantas unidades devem ser incrementadas em cada perıodo. Finalmente, o ultimocontrole e analogo ao Clock (XII): Count Every: multiplicado pelo valor inteiro em Multiplied By indicao perıodo de contagem.

Figura 10: (XIII) Contador

6

Page 7: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

• (XIV) Grupo: Esta opcao so e utilizada para vetores, para definir um valor constante (Group Value)em um intervalo selecionado.

Figura 11: (XIV) Grupo

Agora ja temos condicoes suficientes de levar a simulacao adiante. A partir do que tinhamos na Figura 7,facamos o seguinte: primeiro, criamos, para a entrada A, um clock com pulso de perıodo igual a 50.0 ns evalor inicial 0, utilizando a opcao (XII) Clock. Para a entrada B fazemos o mesmo, usando a multiplicacao doperıodo por 2, isto e, obtendo um perıodo de 100.0 ns. Para a entrada C, usamos a opcao (XIII) Contadorcom valor inicial 0, em Codigo de Gray e perıodo de 40.0 ns. De um duplo clique sobre C e observe a aba quese abre. Nesta, pode-se escolher a base numerica a ser utilizada: binaria (BIN), decimal (DEC), octal (OCT)ou hexadecimal(HEX). Esta ultima geralmente e mais utilizada devido a compactacao de informacoes; escolhaesta. A opcao Display Gray Code Count As Binary Count nao deve ser usada agora pois ela mostra a contagemem Codigo de Gray como contagem binaria normal. Finalmente, para a entrada D, usamos a opcao (XIII)Contador com valor inicial 5, em Codigo Binario, incremento 2 e perıodo de 40.0 ns. Obtemos, finalmente, aimagem mostrada na Figura 12. Se preferir, pode-se clicar com o botao direito sobre um vetor e depois, clicarem Ungroup para separa-lo por bits. O processo inverso pode ser feito selecionando os bits, clicando com obotao direito e, a seguir, em Enter Group, escolhendo um nome para o grupo.

Figura 12: Edicao das formas de onda

Com tudo pronto, podemos salvar o nosso arquivo, da mesma forma que foi salvo o arquivo texto com extensao.vhd; a diferenca e que agora o arquivo deve ter a extensao .scf. Agora basta fazer a simulacao clicando em‘File’ → ‘Project’ → ‘Save & Simulate’ (atalho CTRL + SHIFT + L). Observe ainda, que a Compilacao eSimulacao podem ser feitas com apenas um comando (se a compilacao nao gerar erros, e claro) atraves da opcao‘File’ → ‘Project’ → ‘Save & Compile & Simulate’ (atalho CTRL + SHIFT + K). Esta forma e util quandopequenas mudancas sao feitas no codigo fonte e/ou na simulacao. A Figura 13 mostra as abas que sao abertasao termino da simulacao.

Figura 13: Simulacao Completa

7

Page 8: Tutorial do Max Plus II Baseline - pads.ufrj.brvalentin/ArtPub/Tutorial_MaxPlusII.pdf · Baseline. O nome do arquivo e ‘license.dat’. Abra o ‘Painel de Controle’ e v a na

Clique em OK e depois em Open SCF. O resultado obtido deve ser igual aquele mostrado na Figura 14.Observe que tudo ocorre como esperado, tanto a funcao OR dos bits de entrada quanto a funcao AND bit a bitdos vetores de entrada. No local onde a barra vertical azul esta marcada (182.4 ns), temos: A = 1, B = 1 eS1 = 1, como esperado. Alem disso, C = 6H = 0110, D = 8H = 1000 e S2 = 0H = 0000, como esperado.

Figura 14: Resultado da Simulacao

3.5 Temporizacao

Um recurso que vimos anteriormente era modificar o tempo total de simulacao. Note, agora, na Figura 14,que pequenos atrasos sao indicados nas formas de onda produzidas como saıdas do circuito. Na pratica, isto eo que ocorre de fato, com atrasos da ordem de alguns nanossegundos. Se tentarmos aumentar o intervalo desimulacao para um segundo, por exemplo, esse efeito ja nao sera mais percebido a olho nu. Mas deve-se tero cuidado ja mencionado, pois isso pode sobrecarregar a maquina na qual estamos fazendo a simulacao. Umaalternativa e desconsiderar esse efeito de temporizacao ao compilarmos o codigo: clique em ‘MAX+plus II’ →‘Compiler’. Agora, clique em ‘Processing’ e ative a opcao ‘Functional SNF Extractor’. Clique em Start e acompilacao sera feita novamente. Refaca a simulacao e verifique os resultados.

Agora desfaca o processo que acabamos de ver, desativando a opcao ‘Functional SNF Extractor’. Compile esimule novamente e teremos de volta o resultado mostrado na Figura 14.

3.6 Gravacao

O processo final e gravar todas as informacoes em um chip, que esta disponıvel em uma FPGA. Clique em‘Assign’ → ‘Device’ e escolha o dispositivo no qual devera ser feita a gravacao. Clique em OK. Agora clique em‘Assign’ → ‘Pin/Location/Chip’ (Figura 15).

Nesta etapa, deve-se digitar em Node Name: o nome de cada bit (para vetores usamos o numero de posicaoapos o seu nome, sem parenteses; nesse caso terıamos: A, B, S1, C3, C2, C1, C0, D3, D2, D1, D0, S23, S22,S21, S20) e em Pin: o numero do pino do chip ao qual deve ser associado (o manual do kit FPGA deve ser lidopois ha diversas restricoes a alguns pinos nos chips). Clique em Add para adicionar a nova informacao. Ao finalclique em OK. Todas as informacoes ja estao bem definidas.

Figura 15: Pinagem do Chip

Para concluir o processo clique em ‘MAX+Plus II’→ ‘Programmer’→ ‘Program’ e pronto! A opcao Programso estara disponıvel quando a FPGA estiver conectada ao PC atraves da porta paralela e ligada na fonte. Umavez gravado o circuito, podemos testa-lo no kit da FPGA.

8