In this presentation I will talk about possible hardware implementations of Neural Networks. Neural Networks are simple processing elements that are able to do complex computations as pattern recognition, system identification and control, data mining, decision making or time series prediction. Neural Networks are traditionally implemented using software tools while some specific programs such as MATLAB provide special toolboxes for Neural Network training and execution. Nevertheless hardware implementations take the advantage of the inherent parallelism of NNs and also are much faster and reliable if compared to software solutions. In this talk I will show some hardware alternatives to implement Neural Networks. I will also introduce the concept of stochastic computing that is an essential tool to implement compact networks. Special attention would be given to Spiking Neural Networks that mimic the behavior or real biological neurons. A simple implementation of Spiking Neural Networks will be presented along with an efficient learning methodology based on the use of Genetic Algorithms.