Implementación del método gradiente conjugado en un FPGA arquitectura Spartan 6
Abstract
Resolver un sistema de ecuaciones lineales simult´aneas es un problema fundamental en el
algebra lineal num´erica, y una de las etapas elementales en simulaciones cient´ıficas. Ejemplos
son los problemas de ciencias e ingenier´ıa modelados por ecuaciones diferenciales ordinarias
o parciales, cuya soluci´on num´erica est´a basada en m´etodos de discretizaci´on que conducen a
sistemas de ecuaciones lineales. Estos sistemas pueden ser resueltos de manera directa; sin embargo,
cuando el orden del sistema es demasiado grande el costo computacional se incrementa.
Ante esta situaci´on se emplean m´etodos iterativos, los cuales son m´as eficientes y tienen una
menor demanda computacional (p.e: Jacobi, Gauss-Seidel, Gradiente Conjugado, etc.).
En el presente trabajo se presenta un sistema digital basado en un procesador, un coprocesador
y una memoria externa que desarrolla el m´etodo del Gradiente Conjugado. El sistema
fue implementado en la arquitectura Spartan-6, la cual cuenta con un softprocessor de
32 bits llamado MicroBlaze y el FPGA propiamente dicho. MicroBlaze dirige el flujo del algoritmo,
adem´as de desempe˜nar las operaciones m´as sencillas (sumas vectoriales, productos
internos, divisiones, etc). En tanto, en el FPGA se implement´o un coprocesador, el cual fue
descrito en VHDL, que se encarga de la operaci´on de mayor costo computacional: el producto
Matriz - Vector. El procesador y el coprocesador se comunican mediante interfaces unidireccionales
basadas en unidades FIFO llamadas Fast Simplex Link (FSL). Se emple´o el entorno
EDK (Embedded Development Kit) de la empresa Xilinx, para configurar el procesador, los
perif´ericos y el coprocesador; y se emple´o la plataforma Atlys de la empresa Digilent para
implementar el sistema propuesto. La implementaci´on final es aproximadamente 2 veces m´as
r´apida y tiene una eficiencia de 0.25, respecto de la implementaci´on de referencia que se desarroll
´o empleando solo el procesador.
El orden que sigue la tesis es el siguiente: En el primer cap´ıtulo se presenta el contexto
de la tesis y se define puntualmente el problema que se desea resolver. En el segundo cap´ıtulo
se cubre la mayor´ıa de aspectos te´oricos necesarios. La arquitectura propuesta, y los detalles
de los componentes del sistema se especifican en el cap´ıtulo tres. Por ´ultimo, se presentan los
resultados en el cap´ıtulo cuatro, seguido de las conclusiones.
Temas
Algoritmos
Sistemas lineales
Dispositivos lógicos programables
Sistemas lineales
Dispositivos lógicos programables
Para optar el título de
Ingeniero Electrónico