El documento describe un sistema BCI basado en FPGA que incluye los siguientes componentes: un procesador Nios II, memoria DDR2, DMA, filtro adaptativo, interfaz JTAG y GPIO. El sistema implementa un filtrado dinámico de señales EEG para controlar dispositivos mediante señales cerebrales.
1. vasanza 1
DISEÑO DE SISTEMAS DIGITALES
TALLER 1P (20 Puntos)
Fecha: 2019/11/14 II termino 2019-2020
Nombre: _________________________________________________ Paralelo: __________
1. (3.5%) Belwafi et Al., escribió el paper titulado “A Hardware/Software Prototype of EEG-based BCI
System for Home Device Control” en donde desarrolla un Brain Computer Interface (BCI) basado
en FPGA, como se muestra en la siguiente gráfica:
Fig. Arquitectura del sistema BCI
Fig. Flujo de diseño del sistema BCI
2. vasanza 2
La arquitectura se basa en la tecnología FPGA construida con el entorno Altera y herramientas integradas dedicadas
como: Qsys para los componentes de diseño de hardware y Eclipse para el desarrollo de software integrado. El
sistema integrado propuesto que incluye:
• La versión más rápida de Nios-II, caché de datos con un tamaño de 64 Kbytes y caché de instrucciones de 4
Kbytes.
• Un temporizador para medir el tiempo de ejecución, con contador de 32 bits y un tiempo de espera de 10
microsegundos.
• JTAG-UART para establecer comunicación entre Eclipse y la placa Stratix-IV.
• Memoria DDR2 con 1 GB de tamaño.
• DMA (Acceso directo a memoria) transfiere datos de la manera más eficiente posible, leyendo y escribiendo
datos en el espacio máximo asignado por la fuente o el destino.
• Memoria en chip con un tamaño de 4 KB para sincronizar la transferencia de datos entre el origen y el destino
a través de la interfaz DMA.
• PLL para la generación de reloj y el diseño del sistema de sincronización.
Referencia:
Belwafi, K., Ghaffari, F., Djemal, R., & Romain, O. (2017). A hardware/software prototype of EEG-based BCI system
for home device control. Journal of Signal Processing Systems, 89(2), 263-279.
Respuesta:
2. ¿Cuáles de las siguientes afirmaciones NO es la correcta correspondiente a las características
de softcore, firmcore, hardcore?
a) Descripción de comportamiento; típicamente en HDL o netlist y no depende de la tecnología.
b) Optimizados para una arquitectura; independiente de la tecnología y descripción estructural.
c) Descripción de comportamiento; dependiente de la tecnología y descripción física.
d) Todas las anteriores.
3. Indique el significado de MISD y MIMD.
a) Una instrucción, múltiples datos y múltiples instrucciones, un dato.
b) Múltiples instrucciones, un dato y una instrucción, un dato.
c) Múltiples instrucciones, un dato y múltiples instrucciones, múltiples datos.
d) Una instrucción, múltiples datos y múltiples instrucciones, múltiples datos.
3. vasanza 3
4. Indique cual es el resultado que se debe imprimir de: value of var variable, adress stored in
ip variable y value of *ip variable
a) Value of i: 5, Value of i reference: 5, Value of d: 11.7, Value of d reference: 11.7
b) Value of i: 11.7, Value of i reference: 5, Value of d: 11.7, Value of d reference: 5
c) Value of i: 5, Value of i reference: 11.7, Value of d: 5, Value of d reference: 11.7
d) Value of i: 11.7, Value of i reference: 11.7, Value of d: 5, Value of d reference: 5
5. Completar la tabla comparativa de parámetros de arquitectura RISC vs CISC.
Parámetro RISC CISC
Ejecución de
instrucción
Modos de
direccionamiento
Duración de una
instrucción
Respuesta:
Parámetro RISC CISC
Ejecución de
instrucción
En paralelo Secuencial
Modos de
direccionamiento
Simple Complejo
Duración de una
instrucción
Un ciclo Muchos
ciclos
4. vasanza 4
6. Dada el siguiente código que calcula el valor promedio de una señal, indicar que cambio debe
realizar para obtener el valor RMS y seleccionar el valor que deberá imprimir luego de esta
modificación:
a) rms = (double(sum) / size)*1.205; RMS value is: 6.105
b) rms = (double(sum) / size)*1.11; RMS value is: 6.105
c) rms = (double(sum) / size)*1.205; RMS value is: 5.5
d) rms = (double(sum) / size)*1.11; RMS value is: 5.5
7. Seleccione las descripciones que son incorrectas de los bits del registro de control status en el
procesador NIOSii.
a) RSIE es el bit de activación de interrupción del conjunto de registros y NMI es el bit de modo de
interrupción enmascarable.
b) IL es el campo de nivel de interrupción y NMI es el byte de modo de interrupción enmascarable.
c) IL es el campo de nivel de interrupción y NMI es el bit de modo de interrupción enmascarable.
d) RSIE es el bit de control de interrupción del conjunto de registros e IL controla el nivel en que se
da interrupciones no enmascarables se da servicio.
e) Todas las anteriores.
8. Seleccione las afirmaciones incorrectas con respecto a los registros de control ienablestatus y
bstatus en el procesador NIOSii:
a) Contrrola el manejo de las interrupciones internas de software
b) Contiene una copia guardada del registro de estado durante el procesamiento de la excepción de interrupción
c) Contiene una copia guardada del registro de estado durante el preprocesamiento de la excepción de
interrupción
d) Contrrola el manejo de las interrupciones externas de hardware (registro ienable)
5. vasanza 5
9. Complete utilizando las opciones el siguiente cuadro comparativo entre HPS y FPGA de la
DE10-Standard:
Opciones:
• One user button and one user LED
• LTC 2x7 expansion header
• 128x64 dots LCD Module with Backlight
• Intel Cyclone® V SE 5CSXFC6D6F31C6N
device
• Serial configuration device – EPCS128
• USB-Blaster II onboard for programming;
JTAG Mode
• 925MHz Dual-core ARM Cortex-A9
MPCore processor
• 1GB DDR3 SDRAM (32-bit data bus)
• 4 push-buttons
• 10 slide switches
• 10 red user LEDs
• 1 Gigabit Ethernet PHY with RJ45 connector
• TV decoder (NTSC/PAL/SECAM) and TV-
in connector
• PS/2 mouse/keyboard connector
• IR receiver and IR emitter · One HSMC with
Configurable I/O standard 1.5/1.8/2.5/3.3
• One 40-pin expansion header with diode
protection
• A/D converter, 4-pin SPI interface with
FPGA
• Micro SD card socket
• Accelerometer (I2C interface + interrupt)
• UART to USB, USB Mini-B connector
• Four 50MHz clock sources from the clock
generator
• 24-bit CD-quality audio CODEC with line-
in, line-out, and microphone-in jacks
• VGA DAC (8-bit high-speed triple DACs)
with VGA-out connector
• Warm reset button and cold reset button
• 2-port USB Host, normal Type-A USB
connector
• 64MB SDRAM (16-bit data bus)
• Six 7-segment displays
HPS - Hw FPGA - Sw
Respuesta:
HPS - Hw FPGA - Sw
• 925MHz Dual-core ARM Cortex-
A9 MPCore processor
• 1GB DDR3 SDRAM (32-bit data
bus)
• 1 Gigabit Ethernet PHY with RJ45
connector
• 2-port USB Host, normal Type-A
USB connector
• Micro SD card socket
• Accelerometer (I2C interface +
interrupt)
• UART to USB, USB Mini-B
connector
• Warm reset button and cold reset
button
• One user button and one user LED
• LTC 2x7 expansion header
• 128x64 dots LCD Module with
Backlight
• Intel Cyclone® V SE 5CSXFC6D6F31C6N device
• Serial configuration device – EPCS128
• USB-Blaster II onboard for programming; JTAG Mode
• 64MB SDRAM (16-bit data bus)
• 4 push-buttons
• 10 slide switches
• 10 red user LEDs
• Six 7-segment displays
• Four 50MHz clock sources from the clock generator
• 24-bit CD-quality audio CODEC with line-in, line-out, and
microphone-in jacks
• VGA DAC (8-bit high-speed triple DACs) with VGA-out
connector
• TV decoder (NTSC/PAL/SECAM) and TV-in connector
• PS/2 mouse/keyboard connector
• IR receiver and IR emitter · One HSMC with Configurable I/O
standard 1.5/1.8/2.5/3.3
• One 40-pin expansion header with diode protection
• A/D converter, 4-pin SPI interface with FPGA
6. vasanza 6
10. Seleccione las afirmaciones incorrectas con respecto al módulo de depuración JTAG en el
procesador NIOSII:
a) Puede incluirse y excluirse en el procesador
b) NO Puede incluirse o excluirse en el procesador
c) Usa el Puerto JTAG del FPGA para comunicarse con el módulo de depuración
d) Se conecta a las señales fuera del procesador y tomar el control del mismo
e) Todas las anteriores
11. Completar el siguiente cuadro:
Taxonomía de Flynn Múltiples instrucciones Una instrucción
Múltiples datos MIMD SIMD
Un Dato MISD SISD
12. Seleccione las opciones incorrectas con respecto a los registros de control pteaddr y tlbacc en el
procesador:
a) Es usado para acceder a las entradas TLB y está disponible en sistemas con una MMU.
b) Guarda valores que el software leerá en una entrada TLB.
c) Guarda la dirección real de la tabla de las páginas del Sistema operative.
d) Es usado para acceder a las entradas ACC y está disponible en sistemas con una MMU.
13. Indique, cuáles de las siguientes afirmaciones son correctas de los registros de control ipending, cpuid
y exception:
a) Ipending: indica el valor de las señales de interrupción habilitadas dirigidas al procesador.
b) Cpuid: contiene un valor constante que usted define en el editor de parámetros del Procesador Nios II para
identificar de manera única cada procesador en un sistema multiprocesador.
c) Exception: El procesador Nios II / f proporciona información útil para el software del sistema para el
procesamiento de excepciones en los registros de excepción y badaddr cuando se produce una excepción.
14. De acuerdo con la siguiente figura, colocar los nombres a los bloques que conforman la arquitectura
del bus AVALON:
• Opciones
o Avalon Switch Fabric
o UART
o LCD Display Driver
o Buttons, LEDs, etc.
o CompactFlash Interface
o Compact Flash
o Ethernet MAC/PHY
o SDRAM Controller
o JTAG Debug Module
o JTAG connection to software
debugger
o Flash Memory
o SRAM Memory
7. vasanza 7
15. (3.5%) Belwafi et Al., escribió el paper titulado “A novel embedded implementation based on adaptive
filter bank for brain-computer interface systems” en donde desarrolla un Brain Computer Interface
(BCI) basado en filtrado dinámico de señales EEG adquiridas desde un sistema OPENBCI basado en
FPGA, como se muestra en la siguiente gráfica:
Fig. Arquitectura del sistema BCI basado en filtro dinámico
Fig. Flujo de diseño del sistema BCI
8. vasanza 8
El sistema integra los siguientes componentes:
• La versión más rápida del caché de datos Nios-II, con un tamaño de 64 KB y un caché de instrucciones de 4 KB.
• Un temporizador para medir el tiempo de ejecución, con un contador de 32 bits, y el tiempo de espera es de 10
µs.
• JTAG UART para establecer comunicación entre Eclipse y la placa Stratix-IV.
• Memoria DDR2 con 1 GB de tamaño, conectada al diseño del sistema a través de un controlador DDR2.
• Acceso directo a memoria (DMA) para transferir datos de manera eficiente, leer y escribir datos en el espacio
máximo asignado por la fuente o el destino.
• Memoria en chip con un tamaño de 4 KB para sincronizar la transferencia de datos entre el origen y el destino a
través del Interfaz DMA.
• WOLA Windowing IP.
• GPIO (UART) para establecer la comunicación entre el FPGA y el sistema de adquisición (OpenBCI) para
validar el sistema EBCI de acuerdo con el enfoque en línea.
• El sistema utiliza un bloque PLL para poder generar diferentes rangos de frecuencias que necesitan los filtros.
Referencia:
Belwafi, K., Romain, O., Gannouni, S., Ghaffari, F., Djemal, R., & Ouni, B. (2018). An embedded implementation
based on adaptive filter bank for brain–computer interface systems. Journal of neuroscience methods, 305, 1-16.
RESPUESTA:
Diseño SoPC en las FPGAs