Introducció al sistema NIOS SISTEMES ELECTRONICS DIGITALS Enric Pastor y Juan López Dept. Arquitectura de Computadores Universidad Politécnica de Cataluña
Indice Arquitectura de un sistema Nios Arquitectura del procesador Nios Bus de comunicación Avalon Herramientas de desarrollo Sistemas operativos
1
Arquitectura de un sistema Nios
Arquitectura de un sistema Nios Sistema de desarrollo basado en un procesador “soft core” implementado sobre FPGAs Compuesto de: z z z
Procesador Nios reconfigurable (en la FPGA) Bus Avalon reconfigurable (en la FPGA) Amplio conjunto de periféricos (en la FPGA y externos)
Sistema de desarrollo integrado: z z
Hardware: gestor de la configuración de la arquitectura Software: herramientas C/C++ del sistema GNU Pro
Disponibles múltiples prototipos de desarrollo
2
Arquitectura de un sistema Nios Nios Flash Tri-State Bridge
UART 0 Arbiter
Interrupt Controler
Arbiter
@ decoder
Timer 0
Arbiter Arbiter
FPGA
Dynamic Bus Sizing
Port Interface
Data In Multiplexer
Arbiter
Wait State Generation
User Tri_State Device
Nios SRAM
UART n Timer n
SPI 0 GPIO 0 DMA 0
SPI n GPIO n DMA n
Memory Interface User-Defined Interface
AVALON (Bus Peripheral Module)
Arquitectura del procesador Nios
3
Arquitectura del procesador Nios Nios: Núcleo de Procesador Reconfigurable Arquitectura RISC segmentada de 16/32-Bits z Instrucciones de 16-bits z Una instrucción completada en cada ciclo del reloj Banco de registros interno con mecanismo de ventana Data-path configurable z 16-bits (1100 LEs) z 32-bits (1700 LEs) z
z
Bit shifter: 3,5,7,15 o 31 bit por ciclo
Multiplicación: soft, 1 bit por ciclo, 16x16Æ32 en 2 ciclos
Dimensionado dinámico del bus Rendimiento entre 30 y 80 MIPS (e.g. 33/50 MHz)
Componente RISC estándar
4
Banco de Registros en Ventana Técnica usada por CPUs de alto rendimiento z
Permite llamadas a subrutinas muy rápidas y eficientes
Dispone de un máximo de 512 registros de propósito general Acceso a 32 registros en cada momento: z z
Ventana móvil de 24 registros 8 registros globales fijos
Mecanismo usado por el compilador de C/C++
Bit Shift Speed Desplazamiento de múltiples bits en un solo ciclo z
Desplazamientos de 3, 5, 7, 15, o 31 bits por ciclo
Ejemplo: z
z
Bit Shift hasta 7 bits: i 32
None (Software)
Clock Cycles 32x32>32
0
80
250
MSTEP
+200
18
80
MUL
+400
2
16
Instrucciones / UAL configurable Juego de instrucciones extensible z
Optional FIFO, Memory, Other Logic
Hasta 5 instrucciones
NIOS System Builder: z
Añade un bloque en la UAL
z
Asigna un Op-Code
z
Genera macros para C y ensamblador
6
Interrupciones / Excepciones Interrupciones Hardware Externas z
Lógica para producir el número de interrupción (6-bits) y generar el pin IRQ se incluye en el Peripheral Bus Module (PBM).
Fuentes de Excepciones Internas z
2 fuentes de excepciones internas 9 Register window-overflow 9 Register window-underflow
Excepciones Software z
El software puede pedir transferir el control a un exception handler generando una instrucción TRAP.
Bus de comunicación Avalon
7
Bus de comunicación Avalon Bus basado en multiplexores para entornos on-chip Transferencias de 8/16/32 bits puntuales o en stream Conexión de componentes reconfigurable. Inserción automática de los mecanismos de arbitraje Reconfiguración disponible: z
Tipo de Bus: 9 Separate, Dedicated Input and Output Data Busses 9 Tri-State Data Bus
z z z z
Anchura del Bus de Datos Anchura del Bus de Direcciones Tiempo de setup / hold Dirección base y generación de IRQs
Bus de comunicación Avalon Dirección base y prioridad de todos los dispositivos
8
Bus de comunicación Avalon Setup/Hold Time z
Número de Setup/Hold Clocks
Bus de comunicación Avalon Gran número de periféricos disponibles: z z z z z z z z z z
UART Timer DMA Serial Peripheral I/F (SPI) Parallel I/O (PIO) Memory I/F Generic Port I/F On-Chip Bus Port IDE …
9
Herramientas de Desarrollo
Herramientas de desarrollo
Hardware Environment
Software Environment
Simulation Environment
10
Herramientas de desarrollo GNUPro C Development Kit z z z z z
Compiler Assembler Linker Debugger Nios Software Libraries
Nios Development Utilities z z z z
Compile, Assemble, Link Download to SRAM and Flash Disassemble Executable Code Prepare Executable for Boot ROM
Herramientas de desarrollo Configure Processor Peripheral Library
Select Peripherals
Hardware
Processor Design
Simulation Test Bench
Software Generate
(Verilog / VHDL)
Synthesis Place & Route
User Design
Purchased IP
Hardware Configuration File
JTAG Serial Ethernet
Download & Debug
Altera PLD
C Header files
Custom Library
Boot monitor
Executable Code
Cygnus/Red Hat GNUPro
User Code
S/W Libraries
RTOS
11
Herramientas de desarrollo The CPU core
Peripherals Available Options
Herramientas de desarrollo Fuentes
Variables
Registros
Consola Memoria
12
Sistemas Operativos
Sistemas Operativos Tres sistemas operativos disponibles: z
uC/OS-II
z
Kros
z
uCLinux
uC/OS-II [www.ucos-ii.com] z
Kernel en tiempo real
z
Portable, escalable, determinista y multi-tarea
z
Máximo de 63 tareas
z
Ofrece: semáforos, eventos, exclusión mutua, mensajes, gestión de tareas y gestión de memoria.
z
Sistema de ficheros, red y GUI para LCDs disponibles.
13
Sistemas Operativos Kros [kros.shugyodesign.com] z
Kernel en tiempo real basado en threads
z
Ofrece: gestión de threads, interrupciones, exclusión mutua, semáforos, pila TCP/IP, sistema FAT32
z
Configuración directamente adaptada al entorno Nios
uCLinux [www.uclinux.org][www.microtronix.com] z
Derivación de Linux sin soporte para MMU
z
Ofrece: todas las funciones de los kernels de linux, e.g. TCP/IP, NFS, ext2, FAT16, FAT32, etc.
z
Requiere una ampliación RAM/FLASH y un “disco” compactFlash
Laboratorio
14
Experiencia La EPSC dispone de un laboratorio equipado con 10 kits APEX20K200E Placa adicional con soporte para uCLinux Utilizada para diversas asignaturas
Nios Development Board
15
Diagrama de Bloques del Sistema
Mapa de Memoria del Sistema
16
Experiencia Estructura de computadores z z
Arquitectura von Newman Segmentación
Conceptos básicos de gestión de E/S z z z
Polling Interrupciones DMA
Diseño a nivel de sistema z
Selección del conjunto de periféricos
Sistemas operativos z z
Procesos Desarrollo de drivers
Experiencia Algoritmos hardware/software para el filtrado de imágenes (SOBEL) z z z
Codiseño hardware/software Adición de nuevas instrucciones al ISA de NIOS UART (Comunicación serie con el PC)
Control de un radar z
Generación de formas de onda
Sistema de detección por ultrasonidos Sistema fly-by-wire para aviones radiocontrol z
Interacción con acelerómetros, inclinómetros, etc.
Casa domótica z z
Sensores/actuadores Integración en red
17
Conclusiones
Conclusiones Sistema altamente flexible. Permite plantear al estudiante el diseño global del sistema y no solo su programación Interesante disponer drivers no propietarios para memoria (RAM, FLASH, compactFlash), LCDs gráficos, IDE, PCI y otros dispositivos Prototipo de desarrollo no dispone de interfaz A/D D/A integrada, limitando su aplicabilidad Rendimiento aceptable para la mayor parte de las aplicaciones, aunque la frecuencia máxima de Nios limita el resto de la FPGA
18