Criando um simples computador com DE0-­Nano e processador NIOS II

Tutorial criado por Henrique Freire e João Dantas

Este tutorial visa o mostrar a implementação do processador Nios II na placa DE-0 ­Nano utilizando o Qsys.

Estrutura

Para esta primeira implantação os componentes utilizados serão:
– Núcleo do processador Nios II
– Memórias SDRAM e On­-Chip para armazenar e executar o software
– Ligação JTAG para comunicação entre o computador host e a placa
– Periféricos I/O: LEDs, switches, botões e pinos de expansão

Criação de Design de Hardware

Com o software Quartus II aberto seguimos o seguinte fluxo:
1.​ O primeiro passo é criar um novo projeto:
File → New Project Wizard

2.​ Selecione a pasta em o projeto será salvo, dê um nome para o projeto e prossiga (​Next​).

3.​ Por hora não temos nenhum arquivo para adicionar ao projeto, então apenas prossiga (​Next​).

 

4.​ Escolha a família e o dispositivo que irá trabalhar. Para a placa DE0­Nano temos:
Family: Cyclone IV E
Name: EP4CE22F17C6
E então prossiga (​Next​)

 

5.​ Nenhuma ferramenta irá ser usada no momento, então para todos os campos selecione <None> e siga em frente (​Next​)

 

6.​ Por fim você terá um sumário das configurações do seu projeto. Se tudo estiver correto  finalize (​Finish​).

 

Qsys

A ferramenta de integração de sistemas Qsys economiza tempo e esforço  significativo no processo de design FPGA gerando automaticamente lógica de interconexão para conectar funções de propriedade intelectual e subsistemas (IP). Qsys é a ferramenta de última geração SOPC Builder alimentado por uma rede-­on-­a-­chip (NOC) a nova tecnologia otimizada para FPGA, oferecendo maior desempenho, melhor reutilização de projetos e verificação mais rápida em comparação com SOPC Builder.

Iniciamos a utilização do Qsys:

Tools → Qsys

Com a ferramenta Qsys aberta observamos que temos um clock (clk_0) já implementado.

Adicionando os componentes

Os componentes do projeto podem ser adicionados usando a biblioteca de componentes. O  usuário pode navegar entre diferentes seções de componentes ou fazer uma busca direta  pelo nome. Para o nosso projeto, além do clock, utilizaremos os componentes a seguir:

Library > Embedded Processors > Nios II Processor
Library > Memories and Memory Control > On­Chip > On­Chip Memory (RAM or ROM) (2 vezes)
Library > Memories and Memory Control > External Memory Interfaces > SDRAM Interfaces SDRAM Controller
Library > Peripherals > Microcontroller Peripherals > PIO (Parallel I/O)​ (5 vezes)
Library > Peripherals > Microcontroller Peripherals > Interval Timer
Library > Interface Protocols > Serial > JTAG UART

Para as duas memórias on-­chip, marque a caixa de seleção Dual-­port access. Na seção Size, escolha Data Width = 32 e Total memory size: 8192 bytes.

Para os outros componentes, por ora, não faremos modificações nas configurações.  Apenas clique em Finish​ até adicionarmos todos.

Podemos renomear os componentes adicionados clicando duas vezes no nome dele, ou usando o atalho ​
Ctrl + R​. Com isso iremos renomear:

  • clk_0 para clk,
  • nyos2_qsys_0 para cpu,
  • onchip_memory2_0 para Onchip_memory_SRAM,
  • onchip_memory2_1 para Onchip_memory,
  • new_sdram_controller_0 para SDRAM,
  • jtag_uart0 para JTAG_UART,
  • pio_0 para LEDs,
  • pio_1 para Dip_switches,
  • pio_2 para Pushbuttons,
  • pio_3 para Expansion_JP1,
  • pio_4 para Expansion_JP2,
  • timer_0 para Interval_timer.

 

Componentes

Clock

A placa DE0-­Nano possui um oscilador de 50MHz. O oscilador é conectado diretamente a um pino de entrada de clock dedicado na Cyclone IV E FPGA. O clock de entrada de 50MHz pode ser usado como fonte de clock para produzir o circuito Phase Lock Loop (PLL).

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *