Professional Documents
Culture Documents
Hector Cabrera
Nios II
Introducción al diseño de sistemas con Nios II
Parte I
1
Agenda
Flujo de Diseño
Requerimientos.
Configuración Descarga de
de FPGA Sistema Objetivo aplicacion 3
· Depuración en tiempo
de ejecucion
Requerimientos
El establecimiento de requisitos funcionales del sistema ayuda a planificar IP
necesarios así como hardware. Para este sistema en particular los
requerimientos son:
4
Bosquejo
6
Proyecto Quartus II
La sección de hardware del sistema Nios II es desarrollada en Quartus, por lo
que se tomara como base un proyecto de este software.
7
Proyecto Quartus II
La segunda pagina del asistente permite incluir archivos preexistentes al
proyecto, para este sistema no agregaremos ningún archivo.
8
Proyecto Quartus II
Selección de dispositivo objetivo
10
Finish
Proyecto Quartus II
Se agrega un archivo esquemático donde se realizaran las conexiones del
sistema Nios II con los pines físicos del dispositivo reconfigurable.
11
Flujo SOPC Builder
12
Descripción Nios - SoPC
El sistemas Nios II es descrito por medio de SoPC Builder
Por que?: Este es uno de los periféricos mas importantes del sistema, este
permite a las herramientas de desarrollo de software para Nios II saber si la
aplicación desarrollada pertenece al hardware objetivo.
Por que?: Es el cerebro del sistema, todo el software será interpretado por el y
enviara la señales correspondientes a sus periféricos para completar las tareas
asignadas.
15
Nota: Se regresara a configurar este dispositivo
nuevamente
Descripción Nios - SoPC
Agregar – On-Chip Memory
Data width : 32
16
Descripción Nios - SoPC
Agregar – Interval Timer
17
Descripción Nios - SoPC
Agregar – Periférico PIO (Parallel I/O) para LEDs
Por que?: Este tipo de periférico permite la interacción del sistema con el
mundo exterior. Para nuestro sistema Nios nos permitirá encender | apagar
los LEDs conectados a la tarjeta.
Width : 8
18
Descripción Nios - SoPC
Hasta este momento nuestro sistema debe lucir como en la figura inferior, ya
hemos agregado todos los bloques IP del sistema, pero aun hace falta una
limpieza general del sistema. Esta eliminara los errores y warnings mostrados
por SoPC Builder.
Por que?: Nios II al igual que otros µC controla sus periféricos por medio de
operaciones de lectura/escritura de registros. Cada periférico debe tener
asignada un dirección de inicio que no se sobreponga a la de otro periférico.
Por que?: Al momento del inicio del sistema Nios II, este buscara una memoria
pre determinada para iniciar la ejecución de instrucciones (programa). Para el
sistema en desarrollo se utilizara la memoria on-Chip, pero puede
seleccionarse memorias externas.
Finish
21
Descripción Nios - SoPC
Generación del sistema Nios II
Por que?: Este proceso creara una descripción en lenguaje HDL de todos los IP
que se agregaron al sistema SoPC Builder. El resultado sera un concentrado de
las características del sistema que podrá ser utilizado por Quartus II y por Nios
EDS para continuar con el flujo de diseño.
23
Proyecto Quartus II
De regreso al proyecto de Quartus II agregaremos el sistema recién descrito
para continuar con la sección de hardware del flujo de diseño.
Proyecto Quartus II
como la de reset_n se utiliza la
herramienta:
Por que?: Cada terminal que agreguemos al sistema indicara a Quartus II que
debe asignar un pin físico para la conexión al exterior del FPGA.
25
Proyecto Quartus II
Asignación de pines Físicos del FPGA
Nombre de la Señal
Pin Asignado
26
Proyecto Quartus II
28
Proyecto Quartus II
Compilación y carga del diseño al FPGA
29
Proyecto Quartus II
31
Nota: Si se ejecuta el software Nios II
Para el desarrollo del software del sistema es necesario utilizar el IDE eclipse
con un plug-in de desarrollo Nios Embedded Design Suit.
Inicio -> Todos los Programas -> Altera -> Nios II EDS … -> Nios II …
32
Proyecto Nios EDS
Eclipse es una plataforma de desarrollo de software capaz de adaptarse a
diferentes lenguajes de programación, por lo que es importante asegurarnos
que se encuentra configurado para el desarrollo de aplicaciones para nios II.
Esta operación solo debe llevarse acabo si la perspectiva es diferente a Nios II,
otro forma de alternar de perspectivas es utilizando el acceso rápido colocado
en la esquina derecha superior.
33
Proyecto Nios EDS
Iniciar proyecto de software para Nios II.
File -> New -> Nios II Application and BSP from Template.
Finish
35
Proyecto Nios EDS
El proyecto se divide en la carpeta de software y hardware, la carpeta de
hardware solo proporciona archivos de soporte para el software a desarrollar
por lo que no se llevaran acabo modificaciones en esa sección.
Finish
36
Proyecto Nios EDS
El desarrollo de software se lleva acabo en la pantalla de edición, antes de
iniciar con la codificación de nuestra aplicación aclararemos algunos
conceptos.
for (;;){
if (led_val == 0x00){
led_val = 0x01;
}
else{
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led_val);
usleep(100000);
led_val = led_val << 1;
} 40
}
return 0;
Proyecto Nios EDS
Edición de archivo BSP
Seleccionar enable
reduced device drivers y
enable small c library
Sys_clk_timer : sys_timer 41
42
Proyecto Nios EDS
Descarga de código al FPGA