Mudancas Recentes - Buscar:

Principal

 Objetivos  
 Ementa  
 Livros 

OAC

LOAC

Professores:

  JOSEANA
  ELMAR

CONTATO

CRÉDITOS

editar



DE2-NIOS

Objetivo: Contruir conceito de sistema propósito geral (processador + funções específicas) usando o processador em software criado pela altera (NIOS). Para começar, ligaremos o processador NIOS com módulo escrito em C.

Este roteiro mostra como rodar uma aplicação muito simples escrita em C na placa DE2. A aplicação é executada num processador NIOSII que é configurado dentro da FPGA. A aplicação acende os LEDs verdes numa rápida seqüência e acende constantemente um LED verde se a chave SW correspondente estiver acionada. Para um tutorial sobre uCLinux. Ver http://nioswiki.jot.com/%C2%B5Clinux

Em seguida, dá dicas como recompilar alguns dos exemplos do .zip da DE2. Atenção: NÃO use os arquivos de projeto originais(CD que acompanha placa), eles estão ultrapassados. Procure nova versão em http://www.terasic.com/downloads/cd-rom/de2/DE2_System_v1.6.zip ou
em http://lad.dsc.ufcg.edu.br/de2/DE2_System_v1.6.zip
ou on-line via http://lad.dsc.ufcg.edu.br/de2/cd

Requisitos

É preciso ter os seguintes pacotes instalados:

  • Quartus 7.2
  • NIOSII 7.2
  • MegaCore IP 7.2

O diretório altera dentro de /usr/local ou /opt terá a seguinte composição:

drwxr-xr-x 40 root root 4096 Dec 28 12:02 megacore
drwxr-xr-x 7 root root 4096 Dec 27 05:17 nios2_7.2
drwxr-xr-x 14 root root 4096 Nov 3 13:45 quartus7.2

Referência

O documento principal que deve ser usado é o tutorial que se encontra no DE2_System_v1.6.zip que acompanha a placa DE2 //

Ver http://lad.dsc.ufcg.edu.br/DE2/tutorials/tut_sopc_introduction_verilogDE2.pdf

Este roteiro só explica onde se deve proceder diferente do que está escrito naquele documento.

No SOPC Builder

Entre os passos 2 e 3, da página 5, escolhe do menu Tools ► Options ► IP Search Path ► Add... e acrescente /usr/local/megacore (onde a MegaCore IP Library foi instalada).

Entre os passos 10. e 11. da página 10, deve-se clicar em cima de cpu com botão direito do mouse e fazer Edit... Nos campos Reset Vector e Exception Vector deve-se escolher onchip_mem.

Depois continue normalmente com o tutorial.

Criação do Software

Deve-se desconsiderar completamente a seção “Running the Application Program” do tutorial. Para esse fim escolhe a partir do SOPC Builder o menu NIOS II IDE. Escolhe New ► NIOS II New C/C++ Application com o template Hello LED e aperte Finish. Será exibido um arquivo hello_led.c. Dentro deste, acrescente e mude as seguintes linhas:

int alt_main (void)
{
 alt_u8 led = 0x2;
 alt_u8 sw;
 alt_u8 dir = 0;

e

{
   led = led << 1;
}

sw = IORD_ALTERA_AVALON_PIO_DATA(SWITCHES_BASE);
IOWR_ALTERA_AVALON_PIO_DATA(LEDS_BASE, led | sw);

Listagem: arquivo "hello_led.c"

Aperte Ctrl-S (salvar) e Ctrl-B (build). Escolhe Run ► Run... ► Nios II Hardware ► hello_led_0 Nios HW config ► Run. Agora a aplicação está rodando.

Carregar a aplicação NIOS já compilada

Sem usar nem Quartus, nem SOPC-BUILDER, nem NIOS2-IDE pode-se carregar uma aplicação na placa. Par isso só precisa do .sof e do .elf e digitar os comandos:

nios2-configure-sof lights.sof
nios2-download -g software/hello_led_0/Debug/hello_led_0.elf
nios2-terminal

Exemplos do .zip que acompanha a DE2

DE2_NIOS_HOST_MOUSE_VGA

Para compilar na nios2-ide, é preciso dar os seguintes comandos:

mv Binary_VGA_Controller/inc/VGA.c Binary_VGA_Controller/inc/VGA.C
cd ISP1362/inc
mv BASICTYP.H BasicTyp.h
mv COMMON.H common.h
mv HAL4D13.H HAL4D13.h
cd ../..
cd hello_led_0
mv ISA290.H isa290.h
mv REG.H reg.h
mv BUF_MAN.h buf_man.h
mv PORT.h port.h
mv USB.h usb.h
mv PTD.h ptd.h
mv CHEEYU.H cheeyu.h
mv MOUSE.h mouse.h
mv MOUSE.C mouse.c
mv CHEEYU.C cheeyu.c
mv PTD.C ptd.c
mv USB.C usb.c
mv BUF_MAN.C buf_man.c
mv REG.C reg.c
mv PORT.C port.c
cd ..

No arquivo hello_led_0_syslib/system.stf a linha project ptf tem que ser assim:

	<project ptf="../system_0.ptf" target="Nios II System Library">
© 2008 Profs. Elmar Melcher e Joseana Fechine. Monitores: Sergio Espinola e Fabricio Lelis - DSC/UFCG
Modificada em February 01, 2008, at 07:47 PM