• Nenhum resultado encontrado

Utilizando Altera com VHDL

N/A
N/A
Protected

Academic year: 2021

Share "Utilizando Altera com VHDL"

Copied!
27
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE ITAJUBÁ

Instituto de Engenharia Elétrica

Engenharia da Computação

Software Altera – Linguagem VHDL

Compilando VHDL com o ALTERA MAX PLUS II

(2)

Compilando VHDL com o ALTERA MAX PLUS II

Introdução

Neste tutorial, será apresentada uma pequena descrição de como criar, de maneira rápida e objetiva, projetos usando o software ALTERA MAX PLUX II.

O software em questão é uma poderosa ferramenta na implementação de FPGA’s (Field Programmable Field Arrays), ou seja, circuitos integrados que podem ser gravados e regravados conforme a necessidade. Demora-se um pouco para se adquirir habilidade com o software, entretanto, se por um lado aprender a trabalhar com o ALTERA é demorado, os resultados nas implementações e simulações se mostraram muito bons.

Este tutorial se inicia indicando ao usuário como obter a licença para habilitar os diversos recursos do software, embora este seja gratuito. Em seguida, será mostrado passo a passo como proceder a fim de se implementar um simples projeto. Conceitos sobre o software serão apresentados à medida que forem necessários para o processo de implementação.

Ao final, o usuário estará habilitado a criar e implementar projetos básicos uma vez que o objetivo deste texto é de apenas introduzir os conceitos iniciais de implementação via esquemático e VHDL.

(3)

1. Pré requisitos

Para se obter um maior aproveitamento dos conceitos apresentados, se sugere que o usuário possua alguns pré-requisitos. A saber:

• Conhecimentos básicos em eletrônica digital;

• Facilidade em trabalhar com softwares com ambiente gráfico reduzido;

• Visão e criatividade para detectar falhas e soluções para problemas; • Conhecimentos básicos de inglês;

• Conhecimentos básicos de VHDL; • Paciência e persistência!

2. Licença

Embora o MAX PLUX II seja um software gratuito é necessário obter uma licença a fim de se habilitar a maior parte dos recursos oferecidos pelo programa. Obter a licença se torna rápido e fácil seguindo os passos a seguir. 2.1. Obtendo a licença

Deve-se acessar o endereço www.altera.com tendo em mãos o número do volume do HD da máquina onde está instalado o software.

NOTA Para se obter o volume do HD, entre no prompt do MS-DOS e digite VOL, pressionando enter em seguida. Anote o número que será fornecido.

_______________________________________________________________ Na página inicial, clique em Licencing no topo a direita.

(4)

Na página seguinte, role-a até o fim e clique em MAX PLUX II SOFTWARE FOR STUDENTS AND UNIVERSITIES. Em seguida, preencha o formulário não esquecendo de colocar corretamente o e-mail para o qual se deseja que a licença seja envidada.

ATENÇÃO: NÃO SE DEVE TENTAR AVANÇAR SEM TER PREENCHIDO TODO O FORMULÁRIO OU OCORRERÁ ERRO

(5)

Após preencher corretamente, clique em NEXT. Preencha o campo mostrado com o número do volume do HD e clique em OK . Uma mensagem confirmado o envio da licença deverá ser mostrada.

Ao consultar sua conta de e-mail, uma mensagem enviada pela ALTERA deverá ser encontrada. Ao abrir a mensagem, você encontrará uma arquivo anexo com o nome licence.dat . Copie o arquivo para o seu computador em uma pasta reservada.

2.2. Habilitando a licença

Após conseguir a licença, abra o software e clique em OPTIONS-> LICENCE SETUP. Indique no primeiro campo o caminho para a pasta onde está salvo o arquivo de licença e clique em OK. Se tudo foi feito corretamente, a licença liberará a maioria das ferramentas disponíveis. O software está pronto para o trabalho.

(6)

3. Como criar um novo projeto

Neste tutorial, implementaremos uma estrutura básica e amplamente utilizada em eletrônica digital: o MUX. Para começar, vá ao menu FILE -> PROJECT->NAME. Na janela mostrada, digite o nome desejado para o projeto que será implementado. No caso em questão, digite mux. Você acaba de criar um projeto ao qual todos os arquivos criados posteriormente farão parte. Um dos problemas do MAX PLUS é o de não haver a criação de pastas separadas para cada projeto criado.

Para manter a organização, crie, no seu computador, uma pasta e dê o nome de maxwork. Dentro dela, crie outra pasta e a nomeie de mux2x1. Volte ao software e repita os passos mostrados anteriormente mas desta vez procurando a pasta mux2x1 no campo Directories. Feito isso, dê ao projeto o mesmo nome da pasta, mux2x1. Clique em OK. Dessa maneira, todos os arquivos gerados para o projeto serão gravados dentro de uma única pasta, não ficando misturados com outros projetos.

(7)

4. Editando o código VHDL

Neste projeto, o MUX 2x1 será implementado utilizando os recursos da linguagem descritiva VHDL (Very High Speed Integrated Circuit). O software conta uma biblioteca com alguns códigos fontes pré-escritos. Pode-se encontrar alguns códigos escritos na íntegra ou apenas partes de código como a declaração de uma entity, por exemplo. Assim, mesmo que o usuário não esteja acostumado às regras da linguagem, não encontrará dificuldades.

4.1. Usando o editor de textos

Clique em MAX+PLUX II -> TEXT EDITOR. Uma tela em branco deverá ser aberta.

(8)

Um box contendo vários modelos de códigos VHDL abrirá. Supondo que você não saiba como iniciar uma declaração de código VHDL, selecione Entity Declaration no box que se abriu e clique em OK.

Após, você verá o modelo de declaração de uma Entity impressa no editor de texto. Proceda da mesma maneira para cada etapa da descrição de código de que não se lembrar. Não esqueça de adicionar a biblioteca padrão no início do código.

_______________________________________________________________ NOTA É possível mudar as cores do editor de texto de acordo com o gosto do usuário, evitando que o código fique confuso. Para isso, clique em OPTIONS =>COLOR PALLETE e certifique-se de que a opção SYNTAX COLORING está selecionada.

(9)

__________________________________________________________ Para poupar tempo, segue a descrição completa de um Mux 2x1.

library IEEE; use IEEE.std_logic_1164.all; entity mux2x1 is port ( a: in STD_LOGIC; b: in STD_LOGIC; s: in STD_LOGIC; z: out STD_LOGIC ); end mux2x1;

(10)

architecture mux2x1_arch of mux2x1 is signal S1, S2, S3 : STD_LOGIC; begin S1 <= a and s; S2 <= b and S3; S3 <= not(s); z <= S1 or S2; end mux2x1_arch;

Copie o código acima para um novo arquivo de texto EM BRANCO. Em seguida, clique em FILE -> SAVE . Na caixa de diálogo, procure a pasta mux2x1 criada anteriormente e digite mux2x1.vhd no campo referente ao nome do arquivo. Clique em OK.

(11)

4.2. Explorando a multiportabilidade

Aproveitando da multiportabilidade da linguagem VHDL, o usuário pode importar um arquivo fonte pronto de outro software similar ao MAX PLUS ,como o XILINX FOUNDATION ou de um editor de texto comum ( bloco de notas). Basta apenas clicar em FILE -> OPEN. Na caixa de diálogo, procure o diretório onde se encontra o texto e marque a opção TEXT EDITOR FILES e role a caixa de seleção a extensão *.vhd aparecer.

Ao clicar em OK o texto deverá ser aberto e estará pronto para ser editado e compilado.

(12)

4.3. Compilando o código VHDL

Com o código VHDL aberto, clique em FILE -> PROJECT -> SAVE&COMPILE.

Em seguida, uma tela se abrirá e o processo de compilação será iniciado. Se o código VHDL conter algum erro, este será apontado na caixa MESSAGES-COMPILER. Ocorrendo erros, verifique possíveis falhas de lógica ou sintaxe, corrija-os e repita os passos anteriores até que mensagem de sucesso apareça.

(13)

5.

Usando o editor gráfico

5.1. Criando um símbolo a partir do código VHDL

Após compilar o código VHDL com sucesso, um símbolo que representa o componente criado é gerado automaticamente. Esse símbolo estará disponível no editor gráfico para facilitar a visualização e simulação do projeto.

Com a janela do editor de texto ativa, clique em FILE => CREATE DEFAULT SYMBOL. Um box perguntará se o usuário deseja recriar o símbolo. É recomendável que a cada modificação do código VHDL se crie um novo símbolo.

As telas abertas na seqüência serão idênticas às abertas no processo de compilação descrito no tópico 4.3.

(14)

5.2 Criando um novo projeto no editor gráfico

Executando os mesmos passos mostrados na seção 3.0, crie um novo projeto com o nome mux2x1_gráfico. Em seguida, crie um novo arquivo com a extensão *.gdf clicando em FILE => NEW => GRAFIC EDITOR FILE => OK.

(15)

5.3 Editando no modo gráfico

Após ter criado um novo projeto gráfico, uma tela em branco deverá se abrir juntamente com a barra de ferramentas para edição. Dê um duplo clique na área em branco. Um box para a seleção de símbolos deverá se abrir.

Na caixa SYMBOL LIBRARIES, selecione o caminho para o projeto mux2x1. na caixa SYMBOL FILES, selecione o símbolo criado MUX2X1. Clique em OK. O símbolo criado deverá ser aberto na área de trabalho gráfica.

(16)

Novamente, dê um duplo clique na área de trabalho. Desta vez, selecione a segunda opção apresentada na caixa: c :\maxplus...\prim. Na caixa Symbol Files, escolha output e depois input. Isto deverá ser feito até a seguinte configuração ser alcançada:

Em seguida, analogamente ao feito para o código VHDL, clique em FILE => PROJECT => SAVE&COMPILE. Se tudo estiver certo, um box igual ao apresentado na seção 4.3 abrirá indicando sucesso.

_______________________________________________________________ NOTA É necessário ligar os terminais de entrada e saída aos terminais do componente criado. Para isso, basta apenas clicar nas bordas dos terminais e arrastar o mouse, ligando-os. Não se esqueça de nomear cada terminal de entrada e saída com os mesmos nomes dos terminais do componente ( A,B,S e Z no mux usado).

O passo final da implementação do projeto é a simulação do componente. A descrição dessa etapa é apresentada na próxima e última seção.

6.

Usando o simulador

Após implementar o componente é necessário testá-lo a fim de verificar sua funcionalidade.

6.1 Criando um novo arquivo de simulação

Seguindo os mesmos passos das seções 3.0 e 5.2, será necessário criar um arquivo de simulação de extensão *.scf. Clique em FILE => NEW => WAVEFORM EDITOR FILE.

(17)

Uma nova tela em branco deverá ser aberta. Esta é a tela do simulador onde as formas de onda aparecerão depois de inseridas. Primeiro, entretanto, deve-se salvar o novo arquivo criado. Clique em FILE => SAVE. Não será preciso mudar nenhuma extensão e nem ao menos nomear o arquivo. Basta apenas clicar em OK.

6.2 Inserindo formas de onda

Clique no campo NAME a área de trabalho do simulador. Em seguida, dê um clique no botão direito do mouse para ver o menu. Escolha ENTER NODES FROM SNF. Um box deverá se abrir.

(18)

No box que se abriu, clique em LIST para listar todas as entradas e saídas do componente que está simulado, neste caso, o Mux2x1. As entrada e saídas aparecerão no campo AVAILABLE NODES & GROUPS.

Clique na seta localizada no meio do box ( =>) para selecionar os nós desejados. No nosso caso, selecione todos os nós para a simulação. Clique em OK. Ao voltar para a área de trabalho do simulador, você verá que os sinais foram adicionados, conforme mostrado na figura a seguir.

(19)

Do lado esquerdo do simulador, pode-se ver a barra de ferramentas na qual se encontra os tipos de sinais que podem ser aplicados a cada entrada do componente.

Vamos simular o nosso Mux da seguinte maneira:

• Selecione o sinal A e clique no pulso 1 da barra de ferramentas; • Selecione o sinal B e clique no pulso 0 da barra de ferramentas; • Selecione o sinal S e clique no símbolo de um relógio ( CLOCK )

da barra de ferramentas e OK em seguida

(20)

6.3. Simulando

Na barra de ferramentas principal, clique no ícone assinalado na figura abaixo. Um box deverá abrir.

No box que se abriu, clique em Start para dar início ao processo de simulação.

Se a simulação ocorreu sem erros, um box aparecerá indicando o sucesso da simulação. Clique em OK e em OPEN SCF no box anterior. Na barra de ferramentas da simulação, clique na lupa ZOOM OUT até poder ver um número considerável de pulsos Dessa maneira, você estará vendo o resultado final da simulação. Se nada estiver errado, você observará que conforme os pulso do clock de S, a saída Z muda de valor. Isto significa que o nosso Mux está funcionando perfeitamente.

(21)

Termina, assim, o papel deste tutorial. Com os princípios básicos aqui mostrados, o usuário está capacitado a criar e simular componentes de quaisquer tipos. Recomenda-se aprofundamento nos conhecimentos de VHDL e de outros softwares através de outros tutoriais que podem ser encontrados junto ao Grupo de Microeletrônica da UNIFEI.

(22)

Guia para gravação de FPGA’s

Neste guia serão discutidos os passos a serem seguidos para à gravação de uma FPGA usando o software ALTERA MAX PLUS II.

• PASSO 1

Compile o código VHDL ou o esquemático que se queira implementar. Em seguida, se não houver erros, clique em ASSIGN-> DEVICE.

Na caixa de diálogo subsequente, selecione a família do chip em DEVICE FAMILY. Remova a seleção SHOW ONLY FASTEST SPEED GRADES, e selecione a especificação do chip a ser gravado. Neste guia, gravaremos uma FPGA da família MAX 3000A de especificação EPM3032ALC44-10. Os passos são iguais para todas as outras famílias.

• PASSO 2

Clique no botão mostrado abaixo (FOORPLAN).

Na tela seguinte, dê um dulplo clique em qualquer área da tela para abrir a visualização das portas da FPGA.

(23)

Nesta tela, pode-se visualizar a numeração e localização de todas as portas da FPGA. Escolha as melhores portas para o projeto a ser implementado e proceda da seguinte maneira: clique em ASSIGN -> PIN/LOCATION/CHIP. Na tela seguinte, clique em SEARCH, e então em LIST. Todas as I/O do projeto a ser implementado deverão aparecer na lista. Selecione uma de cada vez e cliquem em OK.

(24)

Na caixa seguinte, vá ao campo PIN e selecione o número da porta que deseja atribuir à I/O escolhido. Clique, então, em ADD. O sinal com a respectiva indicação da porta atribuída deverá aparecer no campo EXISTING PIN/ LOCATION/PIN ASSIGNMENTS.

(25)

Para mudar a localização de algum pino, clique no nome do pino na lista, mude seu número em PIN e então clique em CHANGE. Cuidado para não atribuir portas repetidas a pinos diferentes. Se o projeto possui alguma entrada que faça a função de clock, não atribua nenhum pino a esta entrada. As FPGA’s possuem uma entrada reservada de clock que é atribuída atomaticamente quando se compila o projeto, desde que a entrada tenha sindo nomeada como CLOCK.

Após selecionar corretamente todas as I/Os, compile novamente o projeto e repita a etapa inicial deste passo clicando em FOORPLAN (não esqueça de fechar o FOORPLAN aberto inicialmente). Ao ver as portas do chip, você notará que as portas selecionadas aparecerão em azul.

(26)

OBS: algumas portas da FPGA são reservadas para programação do chip. Se por algum motivo você atribuir alguma função a estas entradas, o compilador acusará erro. Para corrigir o erro, basta apenas mudar o número da porta por uma outra que não seja reservada.

• PASSO 3

Com o projeto compilado sem erros e com as portas definidas corretamente, pode-se agora gravar a FPGA. Clique no botão PROGRAMMER. A tela de gravação irá aparecer. Caso ainda não tenha sido feita qualquer gravação anterior, uma janela requisitando o tipo de hardware a ser usado será aberta. Selecione o tipo de hardware de gravação a ser usado. Neste guia, selecionaremos BIT BLASTER MV. O arquivo de programação (*.pof) será selecionado automaticamente pelo software.

(27)

Observe as opções oferecidas:

PROGRAM: programa a FPGA com os dados compilados; VERIFY: verifica se a programação foi bem sucedida; EXAMINE: examina se a FPGA está vazia;

BLANK-CHECK: apaga a FPGA. • PASSO 4

Clique em PROGRAM. A barra de status correrá rapidamente e ao término uma mensagem aparecerá indicando que a gravação foi executada com sucesso. O processo é rapido, não levando mais que alguns segundos.

Para verificar se a gravação foi realmente bem sucedida, basta simular a FPGA gravada, aplicando em suas entradas especificadas os mesmos sinais usados para simular via software. Se a placa de gravação permitir, pode-se simular a FPGA usando o próprio software. Para isso, abra o arquivo de simulação do projeto e selecione USE DEVICE, clicando em START.

Referências

Documentos relacionados

Vistos, relatados e discutidos os autos em que são partes as acima indicadas, acordam os Ministros da Corte Especial do Superior Tribunal de Justiça, na conformidade dos

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Reconhecimento de face utilizando banco de imagens monocromáticas e coloridas através dos métodos da análise do componente principal (PCA) e da Rede Neural Artificial (RNA)

Toxicidade para órgãos-alvo específicos - exposição repetida (Categoria 2) Irritação cutânea (Categoria 2).. Toxicidade para órgãos-alvo específicos - exposição

E, para tornar mais explícitos esses “eixos norteadores”, João dos Reis Silva Júnior aborda alguns traços constitutivos da produção do Nupes, entre os quais: embora seja focada

Nas ordens superiores de parturição, o cenário é igualmente distinto: não há mulheres com 12 e mais anos de estudo que progrediram para essas ordens (proporção nula), ao passo

MT29 - Aplicar o princípio da igualdade ou desigualdade no cálculo de valores desconhecidos. MT30 - Resolver situações-problema através do uso de equações e/ou inequações de grau

  Nível 3 3.1 Sequencia Mohawk para ambos os lados... 4.1 Backward outside three turns into