Implementación del método gradiente conjugado en un FPGA arquitectura Spartan 6 - Sosa Cordova, Stefano André (2004)
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.