Simulando sua primeira porta AND com ISE Design Suite

ISE

O FPGA é uma tecnologia muito interessante, com capacidade de fazer desde pequenas lógicas, até processadores inteiros (vide o artigo AHMES, do Fábio Pereira). No entanto, ainda é pouco difundida no Brasil. Começar com essa tecnologia pode parecer algo complicado, mas de fato não é. Ferramentas gratuitas e documentos sobre o assunto podem ser encontrados sem muitas dificuldades nos sites dos fabricantes. No entanto, aquele primeiro empurrãozinho para a pessoa fazer sua primeira brincadeira com lógica programável pode ajudar, e muito. Essa foi a motivação deste artigo. Você terá seu primeiro contato com o ambiente de desenvolvimento ISE Design Suite, de maneira a dar o pontapé inicial para você se desenvolver sozinho. O que vamos fazer aqui é simular uma porta AND, e nada mais.

Já tivemos dezenas de outros artigos aqui no Embarcados, como por exemplo:

No entanto, destaco um artigo em especial: Tutorial de Verilog – O Primeiro projeto com Quartus, por Thiago Lima. Nesse artigo foi apresentado passo a passo como criar seu primeiro projeto com o Quartus II, da Altera. Aqui faremos igual, só que diferente. Você fará seu primeiro projeto com o ISE, da Xilinx.

Criando Seu Projeto no ISE Web Pack Suite

ISE Design Suite 14.7
Figura 1: ISE Design Suite 14.7

A ferramenta que vamos utilizar se chama ISE Design Suite na versão 14.7, que pode ser encontrada no site da Xilinx. A versão que estamos utilizando é a Web Pack, que pode ser baixada gratuitamente. No entanto, é necessário fazer um cadastro e baixar um arquivo de licença para o sistema funcionar.

Logo durante a carga do software.
Figura 2: Logo durante a carga do software.

Assim que o sistema carrega, apresenta uma janela de ambiente de desenvolvimento. Há sempre uma janela com dicas quando o programa inicializa. O que vamos fazer aqui é criar um novo projeto, então nada mais simples que File->New Project.

ISE Project Navigator.
Figura 3: ISE Project Navigator.

A janela New Project Wizard irá abrir. Nela vamos indicar o nome do projeto e o diretório de trabalho. Há uma seleção para o tipo de arquivo a ser desenvolvido, mas vamos deixar em HDL.

New Project Wizard.
Figura 4: New Project Wizard – Create New Project.

Na janela seguinte, faremos a seleção do dispositivo a se trabalhar. Como vamos trabalhar com simulação e com algo muito simples, qualquer dispositivo atende. No entanto, deixaremos a configuração como Spartan 3. Se você for continuar a desenvolver a partir desse artigo, este dispositivo atenderá a praticamente tudo mais o que lhe possa ser necessário.

New Project Wizard - Project Settings.
Figura 5: New Project Wizard – Project Settings no ISE.

Por último, apenas um sumário é apresentado com as características iniciais do seu projeto. 

New Project Wizard - Project Summary.
Figura 6: New Project Wizard – Project Summary.

Uma vez terminada esta etapa, o nosso ambiente já está com o projeto aberto.

Ambiente de desenvolvimento com seu novo projeto.
Figura 7: Ambiente de desenvolvimento com seu novo projeto no ISE Design Suite.

Agora vamos adicionar um novo módulo ao sistema. Basta clicar com o botão direito do Mouse sobre nosso projeto e adicionar um novo arquivo fonte.

Adicionando novo arquivo fonte.
Figura 8: Adicionando novo arquivo fonte.

Vamos criar um módulo Verilog. Não é obrigatório, tão pouco mais ou menos recomendado o uso do Verilog. Apenas vamos seguir por ele. Se você se sente confortável com VHDL, pode faze-lo. Seguiremos, então selecionando Verilog Module e escolhendo o nome do arquivo, MeuPrimeiroAnd parece bom.

New Source Wizard.
Figura 9: New Source Wizard – Select Source Type.

Em seguida, adicionaremos os IOs necessários para esse módulo. Como trata-se de uma porta AND, nada mais clássico que duas portas, A e B, e uma saída S. Lembre-se de certificar-se das direções.

New Source Wizard.
Figura 10: New Source Wizard – Define Module.

Por último, é apresentado um sumário com suas opções. Agora o arquivo MeuPrimeiroAnd.v foi adicionado à árvore de projetos. O fonte criado automaticamente é apresentado logo abaixo.

New Source Wizard - Sumary.
Figura 11: New Source Wizard – Sumary.

Perceba que os IOs foram definidos no código, mas não existe implementação nenhuma. Vamos, então, à difícil tarefa de criar uma porta AND. Adicione a seguinte linha no código:

Para ter mais detalhes sobre os operadores do Verilog, acesse este ótimo artigo do Thiago Lima. Seu módulo ficará assim:

Salve o código para verificar a sintaxe. Para isso, abra a árvore Synthesize – XST e clique com o botão direito em Check Syntax. Selecione Run, isso iniciará o processo de checagem de sintaxe.

Check Syntax.
Figura 12: Check Syntax.

Você poderá acompanhar o processo pela janela Console. Lá, você encontrará o resultado. Se fez o procedimento corretamente até aqui, você verá Process Check Syntax completed successfully.

Resultado no Console.
Figura 13: Resultado no Console.

Simulando Sua Porta AND no ISE

Agora vamos iniciar o processo de simulação do módulo que criamos. Para fazer isso, primeiro precisamos mudar o modo de visualização de Implementação para Simulação. Para fazer isso, basta clicar no objeto Simulation.

Selecionando Simulation.
Figura 14: Selecionando Simulation.

Precisaremos adicionar um novo arquivo fonte no nosso projeto, o Verilog Test Fixture. O procedimento é exatamente o mesmo que fizemos para criar nosso Verilog Module. Vamos dar o nome de SimulandoMinhaAnd e clicar em Next.

New Source Wizard - Select Source Type.
Figura 15: New Source Wizard – Select Source Type.

Em seguida, o ISE lhe perguntará quais os módulos você deseja testar. Como nós criamos apenas um módulo, teremos apenas ele como opção. Vamos, então, seguir com Next.

and_15
Figura 16: New Source Wizard

Por último, como em todos os casos, uma janela de sumário é apresentada com as características de nossa criação.

New Source Wizard - Summary.
Figura 17: New Source Wizard – Summary.

Agora, um novo arquivo foi adicionado ao projeto. Ele controla todo o processo de testes, e precisamos definir como esse stript vai funcionar. O fonte automaticamente criado se apresenta da seguinte forma:

O que nos interessa está entre initial begin e end. Perceba que nossas duas entradas estão definidas, e recebem valores padrão 0. O valor apresentado com # é o tempo que será aguardado, nesse caso #100 representa 100ns. Como trata-se de uma simulação, o tempo não nos fará diferença.

Adicione os outros casos de teste, onde as entradas AB serão 01, 10 e 11. É interessante realizar essas mudanças a cada passo de tempo. Dessa forma, a cada nova composição de A e B, vamos adicionar um passo de 100ns. Nosso arquivo ficará assim:

Perceba que adicionamos duas vezes o ciclo de entrada, pois queremos deixar bastante evidente o resultado da nossa porta AND. Também é importante verificar a linha, $monitor. Ela irá apresentar o resultado de cada passo no Console, de forma a acompanharmos os dados.

Vamos, então, abrir a árvore ISim Simulator e clicar com o botão direito em Simulate Behavioral Model, selecionando a opção Run.

Simulate Behavioral Model.
Figura 18: Simulate Behavioral Model.

Da mesma forma que vimos anteriormente, você poderá acompanhar o andamento pela janela Console. Estando tudo correto, o sistema automaticamente abrirá o software ISim, responsável pela simulação.

Software ISim.
Figura 19: Software ISim.

Perceba que este software também possui a janela de console, e nele você vê o resultado da formatação feita em $monitor. Agora, para verificar a forma de onda, clique no ícone Zoom to Full View.

Ícone Zoom to Full View.
Figura 20: Ícone Zoom to Full View.

Aqui vemos toda a forma de onda criada, e o resultado de nossa porta AND. Perceba que S apenas é 1 quando A e B são 1 simultaneamente, conforme esperávamos.

Forma de onda final de nossa simulação.
Figura 21: Forma de onda final de nossa simulação.

A partir daqui você pode evoluir os módulos, desenvolver lógicas complexas, e evoluir os estudos dentro das tecnologias de FPGA. Boa sorte!

Referências

ISE Web Pack Design Software – Xilinx

Xilinx ISE Simulation Tutorial – YouTube

Step by Step Simulation ISE+MATLAB – Vihang Naik

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

[wpseo_breadcrumb]
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu
Privacy Settings saved!
Configurações de Privacidade

Entenda quais dados e informações usamos para ter melhor entrega de conteúdo personalizado para você.

These cookies are necessary for the website to function and cannot be switched off in our systems.

Para usar este site, usamos os seguintes cookies tecnicamente exigidos

  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec

Decline all Services
Accept all Services