A memristor-based circuit is described in which a voltage generator 10 is arranged to apply a series of voltage pulses, which may be controlled by a clock input 12, to a memristor MD to progressively change the resistance of the memristor. A comparator 14 is arranged to receive an input electrical value 16 and an electrical value based on the resistance of the memristor, e.g. from a connection between the memristor MD and a resistor RDL. Based on the comparison, the comparator enables the application of the voltage pulses to the memristor by the voltage generator until a defined condition is satisfied. This circuit can be used to enable the memristor to be programmed to a desired resistance value, such as for use as a non-volatile memory. It can also enable the resistance of one memristor (MS, fig.3) to be replicated in another memristor (MD, fig.3). By counting the number of applied voltage pulses (e.g. by means of counter 20, fig.4), the circuit can be used as an encoder or analogue-to-digital converter. The circuit can also be used in a decoder or digital-to-analogue converter (fig.5), and in an authentication circuit, and in applications providing security and preventing physical cloning.
展开▼