  Field Programmable Gate Arrays generate algorithmic specific architectures
that improve the code's FLOP per watt ratio. Such devices are re-gaining
interest due to the rise of new tools that facilitate their programming, such
as OmpSs. The computational fluid dynamics community is always investigating
new architectures that can improve its algorithm's performance. Commonly, those
algorithms have a low arithmetic intensity and only reach a small percentage of
the peak performance. The sparse matrix-vector multiplication is one of the
most time-consuming operations on unstructured simulations. The matrix's
sparsity pattern determines the indirect memory accesses of the multiplying
vector. This data path is hard to predict, making traditional implementations
fail. In this work, we present an FPGA architecture that maximizes the vector's
re-usability by introducing a cache-like architecture. The cache is implemented
as a circular list that maintains the BRAM vector components while needed.
Following this strategy, up to 16 times of acceleration is obtained compared to
a naive implementation of the algorithm.
