Soft-Processor LEON3 – Instalação Básica em Linux

leon3

O presente post tem por objetivo mostrar os primeiros passos para o desenvolvimento de projetos utilizando o soft-processor LEON3. Este post é baseado em um documento interno utilizado pela Universidade do Vale do Itajaí (UNIVALI) e pela Universidade Federal de Santa Catarina (UFSC). Foi desenvolvido pelo Lucas Pereira e pelo Professor Douglas R. Melo. Como existem dicas valiosas, os autores acreditam que vale a pena listá-las no Embarcados. Obrigado Lucas e Douglas.

Segundo a Cobham Gaisler, o processador LEON3 (Figura 1) consiste em um soft-processor sintetizável de 32 bits, descrito em VHDL (VHSIC Hardware Description Language), Rad-Hard, baseado na arquitetura Sparc V8, projetado tanto para uso comercial quanto para aplicações espaciais. Consiste portanto em um processador configurável e ideal para projetos de Sistemas on-Chip (SoC). Opera sobre licença GNU GPL, cujo fonte é aberto e liberado de forma gratuita para uso em pesquisa e educação. Para uso comercial possui um “preço camarada” quando comparado a outros IP-Cores. Abaixo são listadas algumas das principais características desse processador:

  • ISA baseado no Sparc V8;
  • 7 estágios de pipeline;
  • Barramento AMBA-AHB;
  • SPARC Reference MMU (SRMMU) com TLB configurável;
  • On-Chip debug de instruções e dados;
  • Suporte a Symmetric Multi-Processor (SMP);
  • Modo Power-down e Clock Gating;
  • Até 125MHz de frequência de operação em FPGA e 400MHz em ASIC com tecnologia 0.13 μm;
  • Tolerante a faltas e tolerante a SEU na versão paga para aplicações espaciais;
  • Possui uma gama de ferramentas de software como compiladores, kernels, simuladores e ferramentas de debug;
  • Performance de 1.4DMIPS/MHz, 1.8CoreMark/MHz (gcc -4.1.2).

O processador LEON3 integra a biblioteca GRLIB IP, que por sua vez inclui projetos sintetizáveis para diversas plataformas de fornecedores como Synopsys, Mentor, Xilinx e Altera.

Representação em Blocos do Processador LEON3
Figura 1 – Representação em Blocos do Processador LEON3

Requisitos de Instalação – Hardware e Software

Você deve ter disponíveis os seguintes itens para começar a trabalhar com o LEON3:

  • KIT desenvolvimento (para quem necessita da síntese em FPGA);
  • Sistema Operacional: Ubuntu, CentOs, KDE Neon, ou qualquer distribuição derivada que comporte as ferramentas da Intel Altera;
  • Intel Altera Quartus Prime (ou Quartus II 13sp1 – versão mais sólida do Quartus II);
  • GRLIB Library;
  • Bare-C Cross Compile System (BCC).

Instalação – Quartus Prime ou Quartus II

  • Acesse o site da Intel Altera, em Support -> Download faça o download do Quartus Prime ou Quartus II;
  • Descompacte o arquivo: tar -xvf <arquivo Quartus Prime ou Quartus II>.tar;
  • Execute o instalador: ./setup.sh;
  • Aceite todos os termos e faça a instalação – uma sugestão, instale o Quartus na pasta /opt do seu computador para melhor organizar as instalações.

Instalação – Compiladores C

  • Sempre vale a pena verificar e instalar todos os compiladores C/C++. Execute o seguinte comando (para KDE Neon e Ubuntu, respectivamente):

sudo apt install autoconf ou sudo apt-get install autoconf

Instalação – GRLIB/LEON3

  • Acesse este link;
  • Faça o seguinte download1: LEON3 and GRLIB IP Library -> LEON3/GRLIB source code -> grlib-gpl-2017.3-b4208.tar.gz;
  • Descompacte o arquivo: grlib-gpl-2017.3-b4208.tar.gz na pasta /home/{nome_do_usuario}/ ou crie uma pasta para melhor organizar as instalações;
  • (Opcional) Renomeie a pasta criada de grlib-gpl- 1.5.0-b4164 para grlib.

Instalação – GRMON

  • Acesse este link;
  • Faça o download1 da versão Acadêmica/Avaliação para Linux (Evaluation/Academic) – Aqui cabe uma observação. No tempo de escrita deste artigo, a versão utilizada do GRMON é a de 32 bits. Essa versão funciona sem maiores problemas na plataforma LINUX de 64 bits;
  • Descompacte o arquivo baixado na pasta /home/{nome_do_usuario}/;
  • (Opcional) Renomeie a pasta criada de grmon-eval- 2.0.88 para grmon.

Instalação – BCC (sparc-elf)

  • Acesse este link;
  • Faça o download da última versão disponível;
  • Descompacte o arquivo na pasta /home/{nome_do_usuario}/;
  • (Opcional) Renomeie a pasta criada de sparc-elf-3.4.4-1.0.46.tar.bz2 para sparc-elf.

Configuração das Variáveis de Ambiente

Aqui chegamos em momento muito pessoal para cada usuário Linux – configurar as variáveis de ambiente da sua distribuição. Uma forma para configurar as variáveis de ambiente é descrita a seguir.

  • Digite o comando a seguir como super-usuário para editar o arquivo que inicializa as variáveis de
    ambiente do seu profile:

sudo gedit ~/.profile

  • Adicione as variáveis de ambiente, descritas a seguir, no final do arquivo (INSTALAÇÃO PARA QUARTUS II SP1):

Variáveis de Ambiente:

 
  • Salve e feche o arquivo;
  • Agora vamos editar o seu bash.bashrc. Digite o o comando:

sudo gedit /etc/bash.bashrc

  • Adicione as seguintes configurações no fim do arquivo:
  • Salve e feche o arquivo;
  • Recarregue as variáveis de ambiente. Digite o comando a seguir ou reinicie o computador:

source ~/.bashrc

Verifique a JTAG

Caso você não tenha configurado a JTAG, seguem algumas dicas. Como super-usuário crie o arquivo altera-usb-blaster.rules na pasta /etc/udev/rules.d.

  • Acrescente as seguinte linhas de código:
  • Salve e feche o arquivo;
  • Conecte o kit e verifique o correto funcionamento acessando a pasta:

cd /opt/altera/13.0sp1/quartus/bin

Através do comando ./jtagconfig certifique o corrento funcionamento da jtag.

Conclusão

A princípio o ambiente está configurado. Podem ocorrer variações nos caminhos das variáveis de ambiente, por conta das instalações das aplicações e dos nomes dos arquivos. Dessa forma não esqueça de testar o caminho fim-a-fim (através do comando echo $<variável> para verificar o caminho correto).

Em um segundo momento trataremos mais detalhes sobre a criação do projeto utilizando LEON3 – iremos cada vez mais afundo nesse assunto. Bons estudos.

[1] O nome do arquivo pode variar conforme atualizações

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.

Comentários:
Notificações
Notificar
guest
1 Comentário
recentes
antigos mais votados
Inline Feedbacks
View all comments
Lucas
Lucas
09/03/2018 13:42

Usei esse processador no meu TCC. Me deu bastante trabalho mas foi uma experiência interessante 🙂

Talvez você goste:

Séries

Menu