Simulação do Altera NIOS II no Modelsim

modelsim
Este post faz parte da série Altera Nios II. Leia também os outros posts da série:

Como havia comentado no artigo anterior sobre o Altera Nios ii , neste tutorial veremos um Hello World com o processador Altera Nios simulado no Modelsim. O tutorial será feito em 3 partes:

  1. Primeiramente precisamos gerar o SOPC (System on a Programmable Chip) que irá conter o Nios II e a infraestrutura para que ele interaja com o mundo externo. Este passo será feito nas ferramentas Quartus II e Qsys;
  2. Criação de um programa em C contendo o “Hello World”, que será feito utilizando o Nios2 EDS;
  3. Simulação do design rodando o programa compilado. Será feito no Modelsim.

 

Para quem ainda não tem o Quartus e o Modelsim, eles podem ser encontrados no site da Altera, onde é possível baixar uma versão WebEdition, que tem algumas limitações, mas que é perfeita para o aprendizado.

 

Você pode baixar o arquivo contendo o conteúdo completo, ou somente os arquivos individuais:

  1. Quartus II Software (includes Nios II EDS);
  2. ModelSim-Altera Edition (inclui a Starter Edition);
  3. Cyclone II, Cyclone III, Cyclone IV device support (includes all variations).

 

Isso é o suficiente para rodarmos o tutorial. Instale o software e requisite uma licença Web Edition. Isso será sugerido quando você abrir o Quartus pela primeira vez.

 

Baixe o arquivo de exemplo, AN351_design.zip da app note  da Altera, em que este tutorial é baseado.

 

Descompacte este arquivo em algum local. O Quartus, por algum motivo, não gosta de diretórios que contenham espaços no nome, então descompacte o arquivo para um diretório que possua um caminho sem espaços na nomeação.

 

Abra o Quartus e vamos começar.

 

 

Configurando o Ambiente de Simulação no Qsys

 

Com o Quartus aberto, clique em File > Open Project; Procure pelo diretório onde você descompactou o design do appnote, e selecione o an351_project.qpf. Clique em Open. O projeto será aberto.

 

Para visualizarmos o SOPC que já está pronto neste appnote, clique em Tools > Qsys. Se um formulário de procura de arquivo aparecer, selecione o arquivo niosii_system.qsys. A seguinte janela irá se abrir:

 

modelsim-1
Figura 1: SOPC do appnote

 

Nela podemos observar o SOPC disponibilizado no appnote. Este SOPC é composto por uma fonte de clock de 50 MHz, o processador Nios2, modalidade standard, memória ram do tipo on-chip de 65 KB e um JTAG Uart, utilizado para fazer o debug.

 

Para gerarmos os arquivos da simulação, clique na aba Generation.

 

Configure o formulário da seguinte maneira:

  1. Create simulation model: none;
  2. Create testbench Qsys system: Simple, BFMs for clocks and resets;
  3. Create testbench simulation model: VHDL;
  4. Create HDL design files for synthesis: none;
  5. Create blocks symbol file: unchecked;

 

Por fim clique em Generate. O Qsys irá gerar os arquivos que descrevem as interconexões para a comunicação entre os módulos. 

 

Por fim, clique em File > Save. 

 

 

Criando o Software para o Nios2

 

O software que irá rodar no Nios é um simples Hello World. A mensagem de hello world será enviada para o console via JTAG UART. Para isso, seguiremos os seguintes passos:

  1. Abra o Nios2 SBT para Eclipse; (Sim, é uma customização do eclipse assim como o Code Composer Studio)
  2.  Vá em File > New > Nios II Application and BSP from Template
  3. Escolha o template do projeto Hello World.
  4. Escolha um nome para o projeto.
  5. Selecione o design que geramos anteriormente no Qsys. Procure o SOPC Information File Name, que está na pasta an351_design, arquivo niosii_system.sopcinfo;
  6. Clique em Finish;

 

Como podemos observar, o arquivo .c gerado é bem simples. Iremos compilar o projeto clicando em Project > Build All;
Em seguida, iremos rodar o projeto no Modelsim, clicando em Run > Run as > Nios II Modelsim;

 

Se tudo estiver configurado corretamente, a janela do Modelsim irá se abrir.

 

 

Rodando a Simulação no Modelsim

 

Devemos então inserir as formas de onda de interesse no Modelsim. Estas formas de onda já foram salvas no appnote que estamos usando como referência. Para importar estas formas de onda, no Modelsim temos que ir em File > Import > Column Configurations e iremos selecionar o arquivo wave.do que está localizado no diretório onde estão os arquivos do appnote.

 

Por fim, iremos escolher o tempo de simulação de 2 ms e clicar em Run.

 

A simulação irá tomar algum tempo para ser feita, mas se você quiser acompanhar o desenvolvimento da mesma, é só observar na barra de status o instante que estamos na simulação em Now.

 
O resultado da simulação pode ser observado na figura abaixo:
 
 
modelsim-2
Figura 2: Simulação no Modelsim
 

Podemos observar o “singelo resultado” que é o “Hello World” exibido no console. Apesar do resultado ser básico, este tutorial serve como base para aqueles que quiserem experimentar a API do Nios (HAL – Hardware Abstraction Layer), bem como desenvolver SOPCs mais complexos, com outros periféricos.

 

 

Referências

 

 Figura de destaque  – Fonte: Altera.

 

Outros artigos da série

<< Processador softcore Altera Nios II
Este post faz da série Altera Nios II. Leia também os outros posts da série:
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

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

Deixe um comentário

avatar
 
  Notificações  
Notificar