Processador softcore Altera Nios II

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

 

Em um tutorial passado, Andre Prado e eu apresentamos a ferramenta Modelsim, que possibilita simular o comportamento de circuitos descritos em linguagens de descrição de hardware, tais como VHDL e Verilog. Para acessar o artigo sobre ModelSim. O exemplo apresentado foi simples, mas possivelmente já serviu de ponto de partida para o aprendizado de linguagens de descrição de hardware, pois possibilita testar os conceitos sem a utilização de um FPGA físico. Essa série de tutoriais dará mais um passo no mundo da simulação, e de quebra seremos apresentados ao processador softcore Altera Nios II. Neste tutorial apresentarei a Arquitetura do Altera Nios II e, no próximo artigo, falarei sobre Simulação do Nios II no Modelsim.

 

 

Arquitetura Altera Nios II

 

O Nios II é um processador softcore RISC de 32 bits com arquitetura Harvard desenvolvido pela Altera. Mas o que isso significa? Um processador softcore é uma implementação de um processador descrito em linguagem de hardware, que pode ser customizado e sintetizado em um FPGA ou ASIC. Uma vantagem evidente no uso de softcores está na flexibilidade pois possibilita a fácil conexão com outros periféricos, alteração do conjunto de instruções e, o mais evidente, alteração das estruturas internas do processador, tais como tamanho da memória cache, priorização de interrupções, dentre outros. Um processador com arquitetura Harvard é um processador que tem memórias separadas para alocar dados e instruções.

 

O Altera Nios II apresenta as seguintes características:

  • Processador RISC com pipeline;
  • 32 registradores de propósito geral;
  • 3 formatos de instrução;
  • Instruções de 32bits;
  • Endereçamento de 32bits;
  • Cache de dados e de instruções separados com tamanhos configuráveis;
  • Memória on-chip;
  • Branch Prediction;
  • 32 interrupções priorizáveis;
  • On-chip hardware (Multiplicaçãos, shift, rotate…);
  • Memory Management Unit (MMU);
  • Memory Protection Unit (MPU);
  • Instruções customizadas em hardware;
  • Debug utilizando JTAG;

 

A Altera disponibiliza o softcore em 3 “sabores”:

  • Fast: voltado para o desempenho (maior consumo de espaço no FPGA);
  • Standard: equilíbrio entre consumo de lógica e velocidade;
  • Economy: voltado para a economia de lógica.

 

É interessante notar que o código compilado para a arquitetura Altera Nios II é compatível com as três implementações possíveis do processador.

 

O Nios é livre de Royalties e não precisa nem de licença comercial do Quartus II para que você possa embarcá-lo em suas aplicações, para o caso da versão Economy. O restante das versões necessita que você tenha uma licença comercial do Quartus II para distribuir o Nios embarcado em algum produto. A figura a seguir apresenta a arquitetura de um design de referência utilizado em muitos dos kits de FPGAs da Altera.

 

altera-nios-ii-2
Figura 1: Design de referência de um Kit Altera

 

A figura 1 apresenta dois tipos de componentes: implementados em linguagem de descrição de Hardware (“On-chip” – em laranja) e externos, implementados em CIs presentes nas placas dos kits (“off-chip” – em azul). Pela figura 1, pode-se notar que o Processador Softcore Altera Nios II se comunica com os demais componentes por meio das conexões criadas pelo Qsys (Qsys Interconnect). O Qsys é uma ferramenta desenvolvida pela Altera para criação de SOPCs  (System on a Programmable Chip).

 

 

 

Outros artigos da série

Simulação do Altera NIOS II no Modelsim >>
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.

Raphael Philipe Mendes da Silva
Raphael Silva é Engenheiro de Computação formado pela USP. Obteve o título de Mestre em Engenharia Elétrica na mesma Instituição. Atualmente integra o time do Linux Technology Center da IBM como Engenheiro de Software.

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors
Simulação do Altera NIOS II no Modelsim Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[…] havia comentado no artigo anterior [1], neste tutorial veremos um Hello World com o processador Nios simulado no Modelsim. O tutorial […]