Memristor-based Spiking Neural Networks