Abstract
In this paper, a CMOS emulator circuit that can reproduce nanoscale memristive behavior is proposed. The proposed emulator circuit can mimic the pinched hysteresis loops of nanoscale memristor memory's currentvoltage relationship without using any resistor array, complicated circuit blocks, etc. that may occupy very large layout area. Instead of using a resistor array, other complicated circuit blocks, etc., the proposed emulator circuit can describe the nanoscale memristor's currentvoltage relationship using a simple voltagecontrolled resistor, where its resistance can be programmed by the stored voltage at the state variable capacitor. Comparing the layout area between the previous emulator circuit and the proposed one, the layout area of the proposed emulator circuit is estimated to be 32 times smaller than the previous emulator circuit. The proposed CMOS emulator circuit of nanoscale memristor memory will be very useful in developing hybrid circuits of CMOS/nanoscale memristor memory.
Background
Memristors are being intensively explored as possible candidate for future memories because of simplicity in fabrication, possibility in threedimensional integration, compatibility with (complementary metaloxidesemiconductor) CMOS technology in the fabrication process, and so on. However, real integration of memristors and CMOS circuits is very rarely available to most engineers and scholars who want to be involved in designing various kinds of CMOS circuits using memristors. To help those engineers and scholars who cannot access memristor fabrication technology but want to design memristor circuits, a CMOS emulator circuit that can reproduce the physical hysteresis loop of memristor's voltagecurrent relationship is needed.
Methods
Before we develop a CMOS emulator circuit for memristor, memristive behavior should be explained first. The following simple equation (Equation 1) can describe the memristor's currentvoltage relationship [1,2]:
Here v(t) and i(t) represent the voltage and current of memristor, respectively. R_{X}(t) is the memristance that changes with respect to time. R_{SET} and R_{RESET} are SET and RESET resistance, respectively. w(t) is the effective width of the memristor. D is the total drift length of w(t). q(t) is an accumulated charge flow through the memristor. Q_{CRIT} means an amount of critical charge to RESETtoSET transition. When q(t) becomes equal to Q_{CRIT}, R_{X}(t) is changed to R_{SET} from R_{RESET}. Here μ_{v} is the mobility of dopant in Equation 1 [1,2].
To describe the memristive behavior that follows the relationship of current and voltage in Equation 1, a few emulator circuits have already been proposed [35]. Pershin and Ventra proposed an emulator circuit that is composed of an analogtodigital converter and microcontroller that are implemented by discrete offchip devices. Thus, they can be considered too much complicated and too large to be integrated in a single chip [3]. Jung et al. proposed an emulator circuit that is based on CMOS technology [4], where a memristor that should change its resistance in response to the applied current and voltage is implemented by an array of resistors. In the emulator circuit with resistor array, the analogtodigital converter and the decoder circuit select a proper resistor among many resistors that are placed in the resistor array according to the applied voltage or current [4]. One problem in the emulator circuit [4] is that the voltagecurrent relationship seems sawtooth. This is because the resolution of memristance change is decided by the resolution of the analogtodigital converter, as you see in [4]. If we have 4bit analogtodigital converter in the emulator circuit, it means that only 16 values of memristance are available. As a result, when we apply a voltage that is a sinusoidal function to the memristor, we can know that its current is increased or decreased like sawtooth. To improve the resolution of memristance change, the resolution of the analogtodigital converter should be increased too. If the resolution of the analogtodigital converter is improved from 4 to 5 bit, the voltagecurrent relationship of the emulator circuit with 5 bit seems to be much finer than the emulator circuit with a 4bit analogtodigital converter, as shown in [4]. To improve the resolution twice, however, the number of resistors in the resistor array should be double too. It can cause a large area overhead in realizing this emulator circuit in a single chip. Especially, in implementing memristor array with this emulator circuit, this large area overhead of each memristor emulator cell can be a serious problem because each cell in the memristor array should be realized by this largearea single memristor emulator.
To mitigate the large area overhead of the previous emulator circuit, we propose a new emulator circuit of memristors that is more compact and simpler than the previous emulator circuits [6]. The new emulator circuit does not use a resistor array, an analogtodigital converter, and so on that usually occupy very large area. Instead of using the complicated circuit blocks that were mentioned just earlier, the new circuit can change its memristance value by a simple voltagecontrolled resistor that can be realized by a single ntype metaloxidesemiconductor fieldeffect transistor (NMOSFET) device.
Newly proposed emulator circuit for describing memristive behavior
A schematic of the proposed emulator circuit for describing memristive behavior is shown in Figure 1. The CMOS circuit for emulating memristive behavior is composed of transmission gates, comparators, current mirrors, voltagecontrolled resistor, etc. as shown in Figure 1. V_{IN} is an input voltage source and V_{IN+} and V_{IN}represent the anode and cathode of the input voltage source, respectively. In Figure 1, V_{IN+} is connected to TG_{1} and TG_{2} that are controlled by T_{B} and T, respectively. Similarly, V_{IN} is connected to TG_{3} and TG_{4} that are controlled by T and T_{B}, respectively. When V_{IN+} is greater than V_{IN}, T becomes high and T_{B} becomes low, by the comparator G_{1}. On the contrary, when V_{IN+} is smaller than V_{IN}, T becomes low and T_{B} becomes high. Thus, we can know that V_{IN+} is connected to V_{A} through TG_{2} when V_{IN+} is larger than V_{IN}. At the same moment, V_{IN} is connected to the ground potential (GND) by TG_{3}. When V_{IN} is larger than V_{IN+}, V_{IN} is connected to V_{A} through TG_{4}, and V_{IN+} is biased by GND through TG_{1}. One thing to note here is that we can deliver the input voltage V_{IN} to V_{A} without any sacrificial voltage loss, using the transmission gate.
Figure 1. The proposed CMOS emulator circuit for describing memristive behavior.
The V_{IN} delivering block that is composed of four transmission gates, TG_{1}, TG_{2}, TG_{3}, and TG_{4}, can deliver V_{IN+} and V_{IN} that are plus and minus polarity of V_{IN}, respectively, to V_{A} that has only plus polarity, not minus. The delivered voltage V_{A} is copied exactly to V_{B} by the negative feedback circuit that is composed of the OP amp, G_{2}, M_{3}, and M_{4}. Using this circuit block, V_{B} can be the same as V_{A} by the feedback amplifier with unity gain. V_{B} is connected to the voltagecontrolled resistor M_{2} that is controlled by V_{C}. One more thing to note here is that V_{C} controls both voltagecontrolled resistors M_{1} and M_{2} that are electrically isolated from each other. By doing so, we can separate the memristor's current from the programming current to change the state variable that is stored at the capacitor C_{1}. If the memristor's current is not separated from the programming current, the state variable that decides memristance value can be maintained only at the moment when the programming voltage or current is applied to the memristor. If so, the emulator circuit cannot keep its programmed state variable when the applied voltage or current is removed.
V_{C} that controls two voltagecontrolled resistors M_{1} and M_{2} acts as a state variable in the emulator circuit that is calculated by an amount of stored charge at C_{1}. When V_{IN+} is greater than V_{IN}, TG_{7} is on and both TG_{5} and TG_{6} are off. At this time, the current mirror that is composed of M_{5} and M_{6} delivers the programming current to C_{1} to increase an amount of stored charge; thereby the state variable becomes larger. On the other hand, when V_{IN} is greater than V_{IN+}, TG_{7} is off and both TG_{5} and TG_{6} are on. By doing so, we can decrease the amount of charge that is stored at the state variable capacitorC_{1}. The discharging current path is composed of M_{7}, M_{8}, M_{9}, and M_{10} in Figure 1. Here V_{BN} and V_{BP} are the biasing voltages for NMOSFETs and PMOSFETs, respectively. V_{BN} and V_{BP} are made from the biasing circuit that is shown in Figure 1. D_{1}, D_{2}, and D_{3} are the diodes that are used in the proposed emulator circuit to limit the minimum value of V_{C}. This minimum value of V_{C} is needed to avoid the dead zone which may be caused by the subthreshold region of the voltagecontrolled resistors M_{1} and M_{2}. V_{D} means the diode voltage of D_{1}, D_{2}, and D_{3}. V_{DD} is the power supply voltage of the CMOS emulator circuit in Figure 1.
One more thing to consider here is that the nonlinearity of memristive behaviors can be found when the effective width of memristor, w(t), in Equation 1 becomes much closer to the boundary constraints [1,7]. This nonlinearity near the boundary values of w(t) was introduced in the HP model [1] and mathematically modeled by Corinto and Ascoli [7] to describe various nonlinear behaviors of memristors. In terms of implementation, the diode bridge circuit with LCR filter was proposed to reproduce memristive nature with nonlinearity by using a very simple electronic circuit [8]. In this paper, the window function that is used to define two boundary values of the state variable in the HP model [1] is realized in the CMOS emulator circuit that is shown in Figure 1. The emulator circuit in Figure 1 has two boundary values of the state variable that is defined by V_{C}. Here we can know that the maximum value of V_{C} cannot exceed V_{DD}. And also, V_{C} cannot be lower than V_{DD}3V_{D}. Thus, the state variable of V_{C} in Figure 1 can exist only between V_{DD} and V_{DD}3V_{D}, not being higher than V_{DD} and lower than V_{DD}3V_{D}, respectively.
Results and discussion
Figure 2a shows the applied input voltage, V_{IN}, to the proposed circuit for emulation of memristive behavior. The voltage waveform is sinusoidal and its frequency and magnitude are 10 kHz and 1.8 V, respectively. The memristor's current I_{IN} that is emulated by the proposed circuit in Figure 1 is shown in Figure 2b. As the sinusoidal voltage is applied to the emulator circuit in Figure 1, I_{IN} changes with respect to time according to the state variable that is represented by V_{C}, the amount of stored charge at C_{1}. When V_{C} has the lowest value, it means that the state variable is in RESET state, where the emulator circuit acts like a memristor with RESET resistance. After the half cycle of sinusoidal function, V_{C} is charged more and more; thereby V_{C} can reach the highest value. With the highest value of V_{C}, the state variable can be in SET state, where the emulator circuit can be considered a SET resistance. Figure 2c shows the voltage waveform of V_{C} with respect to time. At the starting point of sinusoidal function of V_{IN}, V_{C} is 1.2 V that is decided by D_{1} in Figure 1. After the half cycle of sinusoidal function, V_{C} reaches 2.8 V. When one cycle of sinusoidal function is completed, the V_{C} value returns to the value at the starting point of sinusoidal function. Figure 2d shows a typical pinched hysteresis loop of a memristor's voltage and current which are emulated by the proposed circuit in Figure 1. In the simulation, V_{DD} is 3.3 V and the frequency of sinusoidal function is 10 kHz.
Figure 2. Simulated voltage waveforms. The simulated voltage waveforms of (a)V_{IN}, (b)I_{IN}, (c)V_{C}, and (d) the pinched hysteresis loop of the voltagecurrent relationship of the proposed emulator circuit when the sinusoidal frequency is 10 kHz. The simulated voltage waveforms of (e)V_{IN}, (f)I_{IN}, (g)V_{C}, and (h) the pinched hysteresis loop of the voltagecurrent relationship of the proposed emulator circuit when the sinusoidal frequency is 40 kHz.
Figure 2e, f, g, h shows the simulation results of the proposed emulator circuit with four times higher frequency of 40 kHz than that of Figure 2a, b, c, d, V_{IN}, I_{IN}, V_{C}, and the pinched hysteresis loop, respectively, with 10 kHz. A sinusoidal voltage with 40 kHz that is applied to the emulator circuit is shown in Figure 2e. Here the first three peaks are for increasing V_{C} in Figure 1; thereby, the emulator circuit changes from RESET to SET. The next three peaks are for decreasing the state variable; thus, the emulator circuit can return to RESET. I_{IN} and V_{C} with the sinusoidal function that is indicated in Figure 2e are shown in Figure 2f, g, respectively. Figure 2h shows the voltagecurrent relationship of the emulator circuit. In Figure 2h we can see three voltagecurrent loops at the right and another three voltagecurrent loops at the left which correspond to the three high peaks and three low peaks in Figure 2e, respectively.
Figure 3a shows SET pulses with different amplitude values. Here the amplitude values are increasing monotonically from 0.5 to 3 V. Each SET pulse is followed by a RESET pulse with the fixed amplitude as high as 3 V that is shown in Figure 3b. The state variable that is changed by SET and RESET pulses are shown in Figure 3c. Here V_{C} represents the amount of stored charge at C_{1} that controls the voltagecontrolled resistor in Figure 1 that acts as memristor. Figure 4a shows the read and write circuits for the proposed emulator circuit of memristors [9,10]. The read circuit is simply composed of a current mirror and comparator. The comparator G_{1} compares the sensing voltage V_{SEN} with the reference voltage V_{REF}. The sensing voltage V_{SEN} can change according to the programmed memristance value of the emulator circuit. If the state variable is closer to RESET, the sensing voltage V_{SEN} becomes larger due to a large value of memristance. On the contrary, the state variable is in SET, and V_{SEN} is smaller than V_{REF}. Here D_{OUT} is the output voltage of the read circuit. G_{2} is the inverter for RD that is the 'read’ command signal. TG_{1} and TG_{2} are the transmission gates for the read operation. When RD is high, TG_{1} and TG_{2} are on. On the contrary, TG_{3} and TG_{4} are on for the 'write’ operation that is activated by the write command signal WR. The input data D_{IN} drives the inverter G_{3}. And G_{3} drives the next inverter G_{4}. The anode and cathode of the proposed emulator circuit are driven by the two inverters, G_{3} and G_{4}, respectively. Figure 4b shows the voltage waveforms of D_{IN}, WR, RD, and D_{OUT}.
Figure 3. The simulation results of partial states between 'SET’ state and 'RESET’ state. (a) The voltage waveform of the SET pulse, (b) the voltage waveform of the RESET pulse, and (c) the voltage waveform of the state variable that is represented by V_{C} in Figure 1.
Figure 4. The read and write circuits for the proposed emulator circuit of memristors and the simulated voltage waveforms. (a) The read and write circuits for the proposed emulator circuit of memristors. (b)The simulated voltage waveforms of D_{IN}, WR, RD, and D_{OUT} that are the input data of the write driver, write command signal, read command signal, and output data of the read circuit, respectively.
Figure 5 compares the layout area of the previous emulator circuit [4] and the proposed emulator circuit. Because the resistor array is not used in the proposed circuit and the analogtodigital converter and decoder are eliminated in this paper, the layout area of the previous emulator circuit is estimated to be 32 times larger than the emulator circuit proposed in this paper. The design rule used in this layout is MagnaChip 0.35μm technology.
Conclusions
In this paper, a CMOS circuit that could emulate memristive behavior was proposed. The proposed emulator circuit could mimic the pinched hysteresis loops of a memristor's currentvoltage relationship without using a resistor array and complicated circuit blocks that may occupy very large layout area. Instead of using a resistor array, other complicated circuit blocks, etc., the proposed emulator circuit could mimic memristive behavior using simple voltagecontrolled resistors, where the resistance can be programmed by the stored voltage at the state variable capacitor. Comparing the layout area between the previous emulator circuit and the proposed one, the layout area of the emulator circuit proposed in this paper was estimated to be 32 times smaller than the previous emulator circuit.
Competing interests
The authors declare that they have no competing interests.
Authors’ contributions
All authors have contributed to the submitted manuscript of the present work. KSM defined the research topic. SHS and JMC did the simulation and layout. SC provided critical comments on the draft manuscript. KSM wrote the paper. All authors read and approved the final manuscript.
Authors’ information
SHS and JMC are M.S. students who are studying at the School of Electrical Engineering, Kookmin University, Seoul, Korea. SC is a professor at the Division of Electronics and Information Engineering, Chonbuk National University, Jeonju, Korea. KSM is a professor at the School of Electrical Engineering, Kookmin University, Seoul, Korea.
Acknowledgements
This work was financially supported by the SRC/ERC program (R112005048000000), the Basic Science Research Program (2010–0023469), the Global Research Network Program (NRF2011220D00089), the NanoMaterial Technology Development Program (2011–0030228), and NRF2013K1A3A1A25038533 through the National Research Foundation of Korea (NRF) funded by the Ministry of Science, ICT & Future Planning, and the Industrial Strategic Technology Development Program funded by the Ministry of Trade, Industry and Energy (MOTIE, Korea) (10039239). The CAD tools were supported by the IC Design Education Center (IDEC), Korea.
A part of this work was presented at the Collaborative Conference on 3D & Materials Research (CC3DMR), Jeju, Korea, in June 2013.
References

Strukov DB, Snider GS, Stewart DR, Williams RS: The missing memristor found.
Nature 2008, 453:8083. PubMed Abstract  Publisher Full Text

Jo KH, Jung CM, Min KS, Kang SM: Memristor models and circuits for controlling ProcessVDDTemperature variations.

Pershin YV, Ventra MD: Practical approach to programmable analog circuits with memristors.

Jung CM, Jo KH, Min KS: SPICE macromodel and CMOS emulator for memristors.
J Nanosci Nanotechnol 2012, 12(2):14871491. PubMed Abstract  Publisher Full Text

Kim H, Sah MP, Yang C, Cho S: Memristor emulator for memristor circuit applications.

Choi JM, Shin SH, Cho SI, Min KS: CMOS circuit with small area and low complexity for emulating memristive behavior. In Collaborative Conference on 3D & Materials Research (CC3DMR). Jeju in Korea: ; 2013.

Corinto F, Ascoli A: A boundary conditionbased approach to the modeling of memristor nanostructures.

Corinto F, Ascoli A: Memristive diode bridge with LCR filter.
Electronics Letters 2012, 48(14):824825. Publisher Full Text

Lee KJ, Cho BK, Cho WY, Kang S, Choi BG, Oh HR, Lee CS, Kim HJ, Park JM, Wang Q, Park MH, Ro YH, Choi JY, Kim KS, Kim YR, Shin IC, Lim KW, Cho HK, Choi CH, Chung WR, Kim DE, Yoon YJ, Yu KS, Jeong GT, Jeong HS, Kwak CK, Kim CH: A 90 nm 1.8 V 512 Mb diodeswitch PRAM with 266 MB/s read throughput.

Qureshi MS, Pickett M, Miao F, Strachan JP: CMOS interface circuits for reading and writing memristor crossbar array. In IEEE International Symposium on Circuits and Systems (ISCAS): 15–18 May 2011; Rio de Janeiro. Piscataway: IEEE; 2011:29542957.