✅ Problema #1: (20%)
Shen et Al., escribió el paper titulado “An FPGA-based Distributed Computing System with Power and Thermal Management Capabilities” en donde desarrolla una plataforma computacional distribuida compuesta de múltiples FPGAs conectadas via Ethernet y cada FPGA está configurada como un sistema multi-core. Los núcleos en el mismo FPGA se comunican a través de la memoria compartida, mientras que diferentes FPGA se comunican a través de enlaces Ethernet, como se muestra en la siguiente gráfica:
✅ Problema #2: (10%)
Mencione 4 razones para usar un Sistema Operativo de Tiempo Real
✅ Problema #3: (10%)
Explique los siguientes parámetros del archivo freeRTOSConfig.h
✅ Problema #4: (5%)
Para el siguiente código, en donde se le pasa la responsabilidad de ejecución de las tareas vTask1 y vTask2 al Scheduler. Dibuje el diagrama de ejecución.
✅ Problema #5: (15%)
Dibuje y explique la trama de un sistema SPI
✅ Problema #6: (5%)
Explique en qué consiste el análisis de Integridad de la Señal que realizan algunas herramientas AD para diseño electrónico.
✅ Problema #7: (5%)
¿Cuáles son los componentes principales del sistema mono núcleo mostrado, para poder usar el Analizador lógico Signal Tap II?, Justifique.
✅ Problema #9: (5%)
¿Es posible declarar y usar una instancia de la herramienta In-System Memory Content Editor?, Justifique.
✅ Problema #10: (5%)
Explique las características que debe tener el código VHDL de un CORE de lógica programable.
✅ Problema #11: (20%)
Dado la siguiente implementación de un sistema de procesador de cuatro núcleos en el SOPC Builder, realizar el diseño del sistema de procesador de cuatro núcleos:
1. vasanza 1
DISEÑO DE SISTEMAS DIGITALES
EXAMEN 3ra EVALUACIÓN
Fecha: 2019/09/13 1er. término 2019-2020
Nombre: _________________________________________________ Paralelo: __________
Problema #1: (20%)
Shen et Al., escribió el paper titulado “An FPGA-based Distributed Computing System with Power and Thermal
Management Capabilities” en donde desarrolla una plataforma computacional distribuida compuesta de múltiples
FPGAs conectadas via Ethernet y cada FPGA está configurada como un sistema multi-core. Los núcleos en el
mismo FPGA se comunican a través de la memoria compartida, mientras que diferentes FPGA se comunican a
través de enlaces Ethernet, como se muestra en la siguiente gráfica:
Fig. Arquitectura del sistema distribuido
Las FPGAs están en las tarjetas de desarrollo Altera Nios II Embedded Evaluation Kit (NEEK), la edición de
Altera NEEK Cyclone III tiene un Cyclone III EP3C25F324 FPGA con 25,000 elementos lógicos y 594 Kbits
Memoria incorporada, 32 MB DDR SDRAM, 1 MB SRAM, 16 MB Flash Intel P30 / P33, pantalla táctil de 800 X
480, Ethernet 10/100 Mbps, y conector PS2 y RS-232.
Desarrollar el diagrama de bloques basado en el NIOSii processor que considere debió utilizar Shen et Al. en cada
una de las FPGA, basado en las siguientes especificaciones:
• El JTAG UART proporciona la interfaz de puerto de depuración.
• Se incluye un temporizador de alta resolución para medir el tiempo de ejecución del programa.
• La E / S paralela (PIO) proporciona control y monitoreo al reloj.
• Una o varias memorias compartidas están conectadas a cada subsistema Nios II. Estas memorias
compartidas se configuran como Mailbox de hardware para las comunicaciones entre los procesadores en
el mismo FPGA.
• Entre todos los subsistemas Nios II en el mismo FPGA, hay uno que tiene un módulo de interfaz Ethernet.
• El módulo de interfaz Ethernet consta de un controlador Direct Memory Access (DMA), una memoria de
descriptor y el MAC de Ethernet.
• El subsistema Nios II que tiene la interfaz Ethernet que actúa como una puerta de enlace para las
comunicaciones entre FPGA en el sistema informático distribuido.
• Todos los periféricos están conectados al procesador Nios II a través de la interfaz mapeada en memoria de
Avalon.
• La interfaz de transmisión de Avalon se utiliza para conectar el DMA al controlador Ethernet.
Fuente: Shen, H., & Qiu, Q. (2011, July). An FPGA-based distributed computing system with power and thermal
management capabilities. In 2011 Proceedings of 20th International Conference on Computer Communications
and Networks (ICCCN) (pp. 1-6). IEEE.
2. vasanza 2
RESPUESTA:
Diseño SoPC en las FPGAs
Problema #2: (10%)
Mencione 4 razones para usar un Sistema Operativo de Tiempo Real
• Multitarea: Simplifica sobremanera la programación de sistemas con varias tareas.
• Escalabilidad: Al tener ejecución concurrente de tareas se pueden agregar las que haga falta, teniendo el
único cuidado de insertarlas correctamente en el esquema de ejecución del sistema.
• Mayor reusabilidad del código: Si las tareas se diseñan bien (con pocas o ninguna dependencia) es más
fácil incorporarlas a otras aplicaciones.
• Para cumplir con compromisos temporales estrictos: El RTOS ofrece funcionalidad para asegurar que,
una vez ocurrido un evento, la respuesta ocurra dentro de un tiempo acotado. Es importante aclarar que
esto no lo hace por sí solo, sino que brinda al programador herramientas para hacerlo de manera más
sencilla que si no hubiera un RTOS.
o Esto implica que una aplicación mal diseñada puede fallar en la atención de eventos aún cuando se
use un RTOS.
• Para no tener que manejar el tiempo “a mano”: El RTOS absorbe el manejo de temporizadores y
esperas, de modo que hace más fácil al programador el manejo del tiempo.
• Tarea Idle: Cuando ninguna de las tareas requiere del procesador, el sistema ejecuta una tarea llamada idle
u ociosa. Esto me permite fácilmente contabilizar el nivel de ocupación del CPU, poner al mismo en modo
de bajo consumo o correr cualquier tarea que pudiera ser de utilidad para el sistema cuando no debe atender
ninguno de sus eventos.
Problema #3: (10%)
Explique los siguientes parámetros del archivo freeRTOSConfig.h
• configUSE_PREEMPTION: Le indicamos al sistema si queremos que sea o no apropiativo.
• configMINIMAL_STACK_SIZE: Definimos el tamaño mínimo de la pila que nos servirá para guardar el
contexto cuando se realice una tarea.
• configUSE_USE_MUTEXES: Se define si se usara o no MUTEX.
3. vasanza 3
Problema #4: (5%)
Para el siguiente código, en donde se le pasa la responsabilidad de ejecución de las tareas vTask1 y vTask2 al
Scheduler. Dibuje el diagrama de ejecución.
int main( void )
{ // Creo las dos tareas
xTaskCreate( vTask1, "Task 1", 240, NULL, tskIDLE_PRIORITY+3, NULL );
xTaskCreate( vTask2, "Task 2", 240, NULL, 5, NULL );
// Inicio el scheduler
vTaskStartScheduler();
// No se llega a este punto si no hubo problemas al iniciar el scheduler
for( ;; );
return 0;
}
RESPUESTA: vTask2, vTask1, vtask2, vTask1….
Problema #5: (15%)
Dibuje y explique la trama de un sistema SPI
RESPUESTA:
4. vasanza 4
Problema #6: (5%)
Explique en qué consiste el análisis de Integridad de la Señal que realizan algunas herramientas AD para diseño
electrónico.
Consiste en el análisis de propagación de las señales a través de las pistas del PCB, considerando los
efectos producidos por longitud de pistas y capacitancias parasitas generadas por la distribución del cobre
de las pistas y los dieléctricos del material de la baquelita.
En función del siguiente grafico responda las preguntas 7 y 8.
Problema #7: (5%)
¿Cuáles son los componentes principales del sistema mono núcleo mostrado, para poder usar el Analizador lógico
Signal Tap II?, Justifique.
Clk, que es el sistema de reloj para el muestreo que hace el STPII y el jtag_uart_0 que permite a
analizador lógico comunicarse con la computadora.
Problema #9: (5%)
¿Es posible declarar y usar una instancia de la herramienta In-System Memory Content Editor?, Justifique.
No, porque solo está definido un espacio de memoria SRAM que es externa y la herramienta mencionada
se usa para ver el contenido de memoria dentro del FPGA.
Problema #10: (5%)
Explique las características que debe tener el código VHDL de un CORE de lógica programable.
• Parametrizable
• Organizado (código limpio)
• Texto plano
5. vasanza 5
Problema #11: (20%)
Dado la siguiente implementación de un sistema de procesador de cuatro núcleos en el SOPC Builder, realizar el
diseño del sistema de procesador de cuatro núcleos:
Referencia:
Wang, X. (2011, October). Multi-core system education through a hands-on project on fpgas. In 2011 Frontiers in
Education Conference (FIE) (pp. F2G-1). IEEE.
Respuesta: