To solve a particular application, one needs to define an algorithm and a hardware structure on which the algorithm will be implemented. This paper provides an overview of the difficult task of choosing of a hardware architecture suited to a specific algorithm and capable of solving our particular application.