Actualmente, cada vez es más común ver algoritmos implementados para arquitecturas heterogéneas, en las que se distinguen más de un tipo de elemento procesador. En esta tesis se quieren presentar las increíbles ventajas que pueden aportar las FPGA a este tipo de computación, ya que permiten la posibilidad de actuar como aceleradores de algoritmos.
La principal ventaja de las FPGA es su capacidad de reprogramación, es decir, su diseño lógico no es estático y fijo como ocurre con la mayor parte de los circuitos integrados (ASIC). Esta característica es dada en las FPGAs gracias a que se componente esencial es una matriz de bloques lógicos programables interconectados a través de rutas también programables. Una vez se describe la funcionalidad deseada en un lenguaje de descripción Hardware, el software de programación se encarga de habilitar las conexiones y rutas necesarias para su implementación. Las ventajas son múltiples, ya que permiten construir diseños hardware sin el coste de desarrollo que conlleva una implementación ASIC.
En esta tesis se presentan varias implementaciones en FPGA para dos tipos de algoritmos bastante bien diferenciados: la factorización de matrices QR a través del método de rotaciones de Givens y la resolución de los problemas de planificación Job Shop Scheduling (JSSP) a través de un algoritmo genético. En cada uno de los casos se muestran varios aspectos que ayudan a crear arquitecturas en FPGA que permiten optimizar su implementación a nivel de productividad y/o utilización de recursos.