Eventos destacados

« 04 2024 »
LunMarMiéJueVieSábDom
1234567
891011121314
15161718192021
22232425262728
2930

Implementación en FPGA de un acelerador numérico con arquitectura basada en procesador de tipo soft-core, coprocesador y memoria compartida.

Grupos de investigación: 
Nivel del proyecto: 
Grado
Autor: 
Juan Carlos Castro Ferrero
Tutor: 
Angel Fernández Herrero
Fecha de lectura: 
Jue, 03/11/2011
Año: 
2011
Calificación: 
Sobresaliente
Resumen: 

Tradicionalmente existen dos alternativaS a la hora de implementar un cierto algoritmo: su ejecución en un procesador de propósito general o su realización en hardware a medida. La primera es muy barata y flexible, pero generalmente lenta, la segunda es de muy alto rendimiento, pero por su costo sólo se justifica en aplicaciones de uso masivo y generalmente no pennite flexibilidad. La lógica reconfigurable permite combinar estas dos soluciones y obtener velocidades hardware con flexibilidad software. La posibilidad de reutilización del hardware reconfigurable abarata su costo ya que puede utilizarse exactamente el mismo hardware para varias aplicaciones cambiando exclusivamente su programación interna.

Este proyecto describe la implementación de un acelerador numérico en una FPGA. Dicho acelerador está basado en arquitectura compuesta por un procesador soft­core, un coprocesador en el que se corre un determinado algoritmo o función matemática y una memoria compartida.

El objetivo del proyecto es implementar el acelerador en la FPGA de una placa de desarrollo como fonna de aumentar la velocidad de ejecución de un algoritmo. Para ello, se utiliza como procesador con núcleo soft core el NlOS Il de Altera y como coprocesador se implementa un filtro Prewitt detector de bordes de una imagen.

La arquitectura hardware utilizada consta de una placa reconfigurable basada en FPGA y memoria dinámica. Además se desarrolla un programa software capaz de ser cargado en el procesador soft-core y se ejecutará de tal forma que una imagen cargada en la memoria dinámica sea procesada por el filtro y mostrada.

La idea básica es que un detenninado algoritmo, en este caso una detección de bordes de una imagen, sea realizado por la FPGA y el resultado almacenado en la memoria compartida Se utiliza el coprocesador para descargar al procesador soft-core de cualquier cálculo matemático. Se utiliza una arquitectura maestro/esclavo, en la que el procesador soft-core envía el trabajo al coprocesador. Esta arquitectura es idónea para aplicaciones de procesamiento masivo de datos como es el caso de las imágenes, donde el coprocesador ejecuta exactamente el mismo código y el procesador maestro es el encargado de repartir la tarea.

Por último, se intenta dar al acelerador numérico una cierta conectividad a través de un bus PCT Express.

Palabras clave

Acelerador numérico, procesador soft-core Nios TI, coprocesador matemático, memoria compartida, lógica programable, bus PCl Express.