Magnetoresistive random access memory simulation

A computer model simulation for an MRAM cell. In one example, the MRAM cell includes a magnetic tunnel junctions (MTJ) with multiple free magnetic layers. In one embodiment, the simulation implements a state machine whose states variables transition based on indications of magnetic fields passing thresholds. In one embodiment, the conductance values utilized from the model are derived from measured data that is curve fitted to obtain first and second order polynomial coefficient parameters to be used in the model.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates in general to circuit simulations and more particularly to simulating magnetoresistive random access memories (MRAMs).

2. Description of the Related Art

Computer simulation models have been built for MRAM magnetic tunnel junctions (MTJ) of MRAM memories. One such example is given in a patent application entitled “Method and Apparatus for Simulating a Magnetorsistive Random Access Memory (MRAM), having an inventor Joseph J. Nahas, having a filing date of Nov. 22, 2002, having a U.S. patent application Ser. No. of 10/302,203, and having a common assignee, all of which is incorporated by reference in its entirety.

One type of MRAM MTJ is disclosed in U.S. Pat. No. 6,545,906, which is incorporated by reference in its entirety. The MTJ disclosed in this patent utilizes multiple free magnetic layers to achieve a cell that toggles between states when subjected to a sequence of magnetic pulses along two directions.

What is needed is a simulation model for MRAM cells with multiple free layers.

The use of the same reference symbols in different drawings indicates identical items unless otherwise noted.

DETAILED DESCRIPTION

One embodiment of the present invention relates to a computer simulation model for simulating an MRAM memory cell having an MTJ with multiple free magnetic layers (free layers). In one embodiment, the simulation model implements a state machine for simulation of the switching states of an MTJ.

FIG. 1illustrates a cross-sectional view of one embodiment of an MRAM memory cell103with an MTJ100having multiple free magnetic layers (e.g. free layers305and309ofFIG. 3). Memory cell103includes a metal line102and a metal line104, running parallel to first metal line102. As illustrated inFIG. 1, an insulator layer is present between metal line102and metal line104. In one embodiment, metal line102and metal line104may be of different materials. In alternate embodiments, metal line102and metal line104may be implemented as one line.

Memory cell103has an MTJ100connected to metal line104and a metal line106, located below MTJ100. Also below MTJ100, but electrically isolated from MTJ100, is a metal line114which runs substantially perpendicular to metal line102. In the embodiment shown, MTJ100is located between substantially orthogonal metal lines102and114.

In the embodiment shown, memory cell103includes a transistor130formed within substrate101. Transistor130includes a current electrode122and a current electrode124, both formed in substrate101, and a control electrode (gate123) overlying substrate101. Metal line106is coupled to first current electrode122of transistor130by interconnect118, interconnect108, interconnect110, and interconnect112. Current electrode124is coupled to an interconnect115, which, in the current embodiment, is coupled to Vss. In the embodiment shown, MTJ100, metal line106, interconnects118,108,110,112, and115, and metal line114are all formed within an interconnect region105located between substrate101and metal line104.

A current (e.g. I1, which is shown as going into the page inFIG. 1) applied to line114(Axis1) below MTJ100generates a magnetic field (H1) at MTJ100perpendicular to the direction of the current according to the “right hand rule”. Like wise, a current (I2) applied to line102above MTJ100generates a magnetic field (H2) at MTJ100(which at MTJ100is going into the page inFIG. 1). The strength of the magnetic fields at MTJ100are dependent on a number of factors including the spacing between metal lines102and114and MTJ100, the width of metal lines102and114, the materials in metal lines102and114, and the structure of MTJ100.

FIG. 2is a schematic representation of memory cell103. In the embodiment shown, metal line102is utilized as a write bit line102, metal line104is utilized as a read bit line104, metal line114is utilized as a write word line114, and gate123of transistor130is connected to read word line223. Transistor130is coupled between Vss and MTJ100. MTJ100is represented inFIG. 2as a resistor.

In one embodiment, cell103is located in an array of MRAM cells, where write bit line102, write word line114, read bit line104, and read word line223extend to other cells of the array.

FIG. 3is a cross sectional view of one embodiment of MTJ100. MTJ100is made up of a number of layers. Top electrode303is in electrical contact with metal line104and bottom electrode321is in electrical contact with metal line106. Free magnetic layers (free layers)305and309, fixed layer313, pinned layer317, and AF pinning layer319are made of magnetic materials. MTJ100includes a tunnel junction dielectric311(e.g. made of aluminum oxide) between fixed layer313and free layer309. Free layers305and309and coupling layer307(e.g. made of ruthium) form a first synthetic antiferromagnet. Fixed layer313, coupling layer315, and pinned layer317form a second synthetic antiferromagnet.

As shown by lines323and325, the magnetic field of free layers305and309can be polarized in a number of directions depending upon the current flowing through metal lines102and114. As shown by arrow329, the magnetic polarization of pinned layer317is fixed in one direction. Also shown by arrow327, the magnetic polarization of fixed layer313is fixed in another direction, opposite the direction of the magnetic polarization of pinned layer317. In other embodiments, MTJs may have other configurations and/or may be made of other materials.

Referring back toFIG. 2, the resistive value of MTJ100is indicative of the bit state stored in cell103. To read the bit state stored in cell103, a voltage is applied to read bit line104and read word line223. The resistive value of MTJ is then measured by a sense amplifier (not shown). The resistive value of MTJ100is dependent upon the direction of the magnetic polarization of free layers305and309of MTJ100.

FIG. 4shows a set of polarization diagrams illustrating how the polarization of the free layers305and309are affected by magnetic fields applied to MTJ100during a write cycle of MTJ100. Magnetic fields are applied to MTJ100by applying voltages to metal lines102and114which generate currents in those lines. The magnetic fields rotate the polarity of layers305and309to write a bit value in MTJ100. Metal lines114and102are in one embodiment, simple resistive metal lines with simple linear current-voltage characteristics as shown below:
I1=G1V1(1)
and
I2=G2V2(2)
where I1is the current through line114, G1is the conductance of line114in cell103, and V1is the voltage across line114in cell103. I2is the current through line102, G2is the conductance of line102in cell103, and V2is the voltage across line102in cell103.

In some embodiments, there is a linear relationship between the current in a write line (e.g.102and114) and the magnetic field generated at the MTJ by that current. The relationships can be written as:
H1=K1I1(3)
and
H2=K2I2(4)
where H1is the magnetic field at MTJ100generated by a current flowing through line114, K1is the relationship between the current in line114and the magnetic field the current generates, H2is the magnetic field at MTJ100generated by a current flowing through line102, and K2is the relationship between the current in line102and the magnetic field that current generates. In one embodiments, the write currents through lines102and114are on the order of 10 to 20 mA and the K's are on the order of 5 to 10 Oe/mA.

As shown inFIG. 4, polarization diagrams401405,407,409, and411each include 3 arrows to show the magnetic polarization of fixed layer313, the magnetic polarization of free layer305, and the magnetic polarization of free layer309during a write cycle.

FIG. 5shows the magnitude of magnetic fields applied to MTJ100in the X (represented by505) and & Y (represented by503) directions by applying current to lines102and114during a write cycle. Applying current through one of lines102and114generates a magnetic field (Hy) in the Y direction and applying current through the other of lines102and114generations a magnetic field (Hx) in the X direction. The X and Y directions are in the same plane as H1and H2inFIG. 2. The timing of Hyand Hxduring one example of a write cycle as illustrated in the polarization diagrams ofFIG. 4is shown inFIG. 5.

Referring back toFIG. 4, polarization diagram401shows the polarizations of fixed layer313, free layer305, and free layer309when MTJ100is in a low resistance state. At the start of a write cycle of cell103, the polarization of free layer309is parallel to the polarization of fixed layer313while the polarization of free layer305is in the opposite direction. When the Y direction magnetic field (Hy) is applied, the polarization of free layers305and309rotate so that their net magnetic field (as designated by arrow413) in polarization diagram405aligns with the polarization of the external field Hy(as designated by arrow415). When the X direction magnetic field (Hx) is applied at the same time as Hy(as shown in polarization diagram407), the polarization of free layers305and309again rotate so that their net field aligns with the net external field (see arrow417). When magnetic field Hyterminates, the polarization of free layers305and309again rotate so their net field aligns with the external field (as designated by arrow419in polarization diagram409). Finally when field Hxterminates, the polarization of free layers305and309again rotate to the nearest rest state, which is opposite of their initial rest state, i.e. free layer309is polarized opposite to that of the fixed layer305and free layer305is polarized in the same direction as the polarization of fixed layer313, as shown in polarization diagram411. In polarization diagram411, MTJ100is in a high resistance state.

While a particular write cycle pulse sequence with overlapping magnetic field pulses with the Y pulse first, is shown inFIGS. 4 and 5, the MTJ100will respond to other pulse sequences. For example, sequential overlapping magnetic field pulses with the X pulse first will also toggle the bit by rotating the free layers in the opposite direction to change the bit state of the memory cell. However, isolated X or Y magnetic pulses will not change the bit state of the memory cell. On the other hand, some pulse sequences such as simultaneous or almost simultaneous X and Y magnetic pulses can leave the bit in an unknown state. Embodiments of a simulation model are designed to take these various possible state transitions into account during a simulation of an MRAM cell.

In some embodiments, when the two magnetic layers (e.g. fixed layer313and free layer309) on either side of the tunnel junction dielectric (e.g.311) are polarized in the same direction, the electron spins states in the materials of both those magnetic layers match, and the MTJ is in a low resistance state. However, when those two magnetic layers are polarized in opposite directions, the electron spin states do not match and the MTJ is in a high resistance state.

FIG. 6shows plots of measured values of the resistance of an MTJ of one embodiment in both the low resistance state (Rlo), and the high resistance state (Rhi) as a function of bias voltage across the MTJ. Usually, the resistance characteristics of an MTJ are expressed in terms of its resistance in the low resistance state at zero bias voltage (Rlo0), its resistance in the high resistance state at zero bias voltage (Rhi0), and the Magnetoresistive Ratio (MR). The MR is the ratio of the resistance in the high resistance at zero bias voltage to the resistance at the low resistance state at zero bias voltage expressed as a percentage above unity. For the embodiment of an MTJ whose measured results are shown inFIG. 6, Rlo0is approximately 17 KOhms, Rhi0is approximately 22 KOhms, and the MR is approximately 29% as shown in Equation 5 below:

Since an MTJ includes two metal layers separated by a dielectric layer (e.g. tunnel junction dielectric311), it also has a capacitive component. The capacitance of the MTJ can be approximated by:

where εris the relative dielectric constant of the dielectric, (Al2O3in one embodiment), εois the permittivity of free space, AMTJis the area of the MTJ, and toxis the thickness of the tunnel junction dielectric in the MTJ.

FIG. 7shows a sequence of two magnetic pulses applied to an MTJ during a write cycle. These pulses are generated by applying current pulses through the write lines (e.g. lines114, and102). For one embodiment of a valid write cycle, the magnetic field of the first pulse703must reach a higher threshold (HSW1) than a threshold (HSW2) required from the magnetic field of the second pulse705. The higher threshold is indicative of the higher rotational force required to rotate the polarization of the free layers from their rest position (e.g. as shown in polarization diagram401) than when they are partially rotated (e.g. as shown in polarization diagrams405,407, and409). In some embodiments, the higher magnetic field threshold is required for the first pulse, regardless of whether the first pulse is generated by current through line102or line114.

In some embodiments, the polarizations of the free layers take time to stabilize while being rotated. Accordingly, minimum time requirements tau1, tau2, and tau3 are required in the model between pulse edges as shown inFIG. 7. Thus, in some embodiments, free layer polarization rotations with shorter times are not predictable and consequently cause errors in the model. Also in some embodiments, an additional minimum time (tau0) between write cycle pulse sequences is required to allow the polarizations of the free layers to stabilize in their rest state. In one embodiment, the minimum times are on the order of 1 to 2 ns.

In one example, first pulse703is generated by line114and second pulse705is generated by line102causing the polarizations of the free layers to be rotated one way. In another example, first pulse703is generated by line102and second pulse705is generated by line114causing the polarizations of the free layers to be rotated in an opposite way.

In some embodiments of a computer simulation model of an MRAM cell, a state machine can be implemented to model a write cycle of the MRAM cell. In some embodiments, the states of the state machine not only account for magnetic pulses during a write cycle of the MTJ, but also pulses acting on the MTJ generated during a write cycle of another MTJ located in the same row or column as the MTJ. In those instances, the MTJ being modeled may only be acted upon by a single magnetic pulse.

In one specific embodiment of a computer simulation model of an MRAM cell, a state machine includes four state variables. The first state variable is designated as “pulse 1.” In the embodiment ofFIG. 1, pulse1is set (to 1) when the magnetic field generated by the lower write line (e.g. line114) passes the higher threshold (e.g. HSW1) if it is the only magnetic pulse or the lower threshold (e.g. HSW2) if the other pulse (the pulse generated by the upper write line, e.g. line102) has already started. Pulse1is reset (to 0) when the pulse goes below the lower threshold (HSW2).

The second state variable is designated as “pulse2.” Pulse2is set (to 1) when the magnetic field generated by the upper write line (e.g. line102) passes the higher threshold (e.g. HSW1) if it is the only magnetic pulse or the lower threshold (e.g. HSW2) if the other pulse (the pulse generated by the lower write line, e.g. line114) has already started. Pulse2is reset (to 0) when the pulse goes below the lower threshold (HSW2).

The third state variable is designated as “1-2 pulse train.” The 1-2 pulse train state variable is used to indicate when a pulse generated by the lower write line (e.g. line114) is the first pulse (e.g. pulse703inFIG. 7) and a pulse generated by the upper write line (e.g. line102) is the second pulse (e.g. pulse705inFIG. 7) in a write cycle pulse sequence. The 1-2 pulse train is set (to 1) when a write cycle pulse sequence starts with a pulse generated by the lower write line (e.g. line114) (when its the first pulse in a write cycle pulse sequence) and a subsequent pulse generated by the upper write line (e.g. line102) (the second pulse in the write cycle pulse sequence) passes the lower threshold (e.g. HSW2). The 1-2 pulse train is reset (to zero) when the pulse generated by the upper write line (e.g. line102) (the second pulse in the write cycle pulse sequence) goes below the lower threshold (HSW2), indicating the end of a write cycle pulse sequence.

The fourth state variable is designated as “2-1 pulse train.” The 2-1 pulse train state variable is used to indicate when a pulse generated by the upper write line (e.g. line102) is the first pulse (e.g. pulse703inFIG. 7) and a pulse generated by the lower write line (e.g. line114) is the second pulse (e.g. pulse705inFIG. 7) in a write cycle pulse sequence. The 2-1 pulse train is set (to 1) when a write cycle pulse sequence starts with a pulse generated by the upper write line (e.g. line102) (when its the first pulse in a write cycle pulse sequence) and a subsequent pulse generated by the lower write line (e.g. line114) (the second pulse in the write cycle pulse sequence) passes the lower threshold (e.g. HSW2). The 2-1 pulse train is reset (to zero) when the pulse generated by the lower write line (e.g. line114) (the second pulse in the write cycle pulse sequence) goes below the lower threshold (HSW2), indicating the end of a write cycle pulse sequence.

For the specific embodiment described herein, the states of the state variables are changed in response to the magnetic pulses generated by the lower write line (e.g. line114), and the upper write line (e.g. line102).

When a magnetic pulse generated by the lower write line (e.g. line114) is detected as passing the lower threshold (HSW2) while increasing in magnitude, the results of the action are dependent on the states of the pulse1, pulse2,1-2pulse train, and2-1pulse train state variables. The Karnaugh Map in Table 1 indicates the results of the detection of this action.

Most of the cells in the Karnaugh map of Table 1 contain “E” (for error) for states that should not be logically reachable. For example, any state where 1-2 pulse train and 2-1 pulse train are both logical 1s is not reachable. The “I” (for ignore) indicates that although the transition is valid, there is no state change. The “S” indicates a state transition with the changes in the state variables provided in Table 1.

When a magnetic pulse generated by the lower write line (e.g. line114) passes the lower threshold (HSW2) with none of the state variables set (state 0, 0, 0, 0), the pulse transition is ignored since this might be a “first pulse” of a write cycle pulse sequence. In such case, the first pulse must therefore pass the higher threshold (HSW1) to be a valid first pulse of a write cycle pulse sequence.

When pulse1is not set, pulse2is set, and neither pulse train is active (state 0, 1, 0, 0), the transition of a pulse generated by the lower write line (e.g. line114) through the lower threshold (HSW2) indicates the start of a 2-1 pulse train so both pulse1and2-1pulse train variables are set after checking that the tau1 time requirement in the first phase of the pulse train is met. Also, the tau2 timer is started. In one embodiment, the tau1 time requirement is determined to be met if the occurrence of a pulse generated by the lower write line (e.g. line114) passing through the lower threshold (HSW2) occurs at least tau1 time after the pulse generated by the upper write line (e.g. line102) passes through the higher threshold (HSW1). SeeFIG. 7for an illustration of the tau1, tau2, tau3, and tau0 times during a write cycle pulse sequence.

When pulse1is not set, pulse2is set, and1-2pulse train is set (state 0, 1, 1, 0), the transition of a pulse generated by the lower write line (e.g. line114) through the lower threshold (HSW2) indicates that there was “ringing” in the lower write line (e.g. line114) current near the lower threshold (HSW2) as the pulse generated by the lower write line (e.g. line114) is turning off. Thus, the pulse1variable is set.

All other states of Table 1 are not logically reachable and therefore are errors.

Table 2 is the Karnaugh Map for a pulse generated by the lower write line (e.g. line114) passing through the higher threshold (HSW1) while increasing in magnitude. When all the state variable are not set (state 0,0,0,0) a pulse generated by the lower write line (e.g. line114) passing through the higher threshold (HSW1) indicates the start of a first pulse of a write cycle pulse sequence or single pulse, so pulse1is set after the tau0 timer is checked. The tau1 timer is started.

In Table 2, all other states where pulse1is not set are erroneous (indicated by E). If in Table 2, pulse1is set, then the states are either erroneous or can be ignored since they are due to a pulse “ringing” near the upper threshold and do not change the state. Table 2 is set forth below.

Table 3 is similar to Table 1 and Table 4 is similar to Table 3 except that Tables 3 and 4 apply to a pulse generated by the upper write line (e.g. line102), the pulse1and pulse2variables are interchanged, and the 1-2 pulse train and 2-1 pulse train variable are interchanged.

Table 5 is the Karnaugh Map for a magnetic pulse generated by the lower write line (e.g. line114) passing the lower threshold (HSW2) while decreasing in magnitude. If all the state variable are not set (state 0,0,0,0), the pulse transition is ignored. This would normally be indicative of a stand alone, lower magnitude pulse that did not have a high enough magnitude to set the pulse1variable.

If pulse1is set and the other state variable are not set (state 1,0,0,0), a magnetic pulse generated by the lower write line (e.g. line114) passing the lower threshold (HSW2) while decreasing in magnitude indicates the end of a stand alone pulse. In this state, pulse1is reset and the tau0 timer is reset.

If both pulse1and pulse2are set and2-1pulse train is set (state 1,1,0,1), a magnetic pulse generated by the lower write line (e.g. line114) passing the lower threshold (HSW2) while decreasing in magnitude is due to “ringing” at the start of the second pulse in a write cycle pulse sequence. To maintain the state variables, both pulse1and2-1pulse train are reset.

If both pulse1and pulse2are set and1-2pulse train is set (state 1,1,1,0), a magnetic pulse generated by the lower write line (e.g. line114) passing the lower threshold (HSW2) while decreasing in magnitude is due to the end of the first pulse in the write cycle pulse sequence. After the tau2 timer is checked, pulse1is reset and the tau3 time is reset.

If pulse1is set, pulse2is not set, and2-1pulse train is set (state 1,0,0,1), then a magnetic pulse generated by the lower write line (e.g. line114) passing the lower threshold (HSW2) while decreasing in magnitude is due the end of a 2-1 write cycle pulse sequence. After a check of the tau3 timer, pulse1and 2-1 pulse train are reset, the tau0 timer is reset, and the bit state is toggled. All other states of Table 5 are not logically reachable and therefore are errors.

Table 6 is similar to Table 5 except that Table 6 applies to a pulse generated by the upper write line (e.g. line102) and the pulse1and pulse2variables are interchanged and the 1-2 pulse train and 2-1 pulse train variables are interchanged.

In one embodiment, a model for simulating an MRAM cell includes a model for MTJ (e.g. 100) conductance characteristics that is dependent upon a voltage across the MTJ (bias voltage) and MTJ operating temperature. In one embodiment, parameter values for the model are calculated using an empirical model from measured data.

FIG. 12sets forth a flow chart for a process for determining coefficients of equations that provide for a conductance value of an MTJ as a function of bias voltage and operating temperature for both a low resistance state and a high resistance. These equations and coefficients may be used in a computer simulation model of an MRAM cell including e.g. a model implementing a state machine (e.g. the state machine described above with respect to Tables 1-6).

In1201, physical measurements of conductance values are obtained from a number MTJ (e.g. 16) over a range of bias voltage increments and operating temperature increments for both the high resistive state and the low resistive state. In one example, measurements are made for both positive bias voltages and negative bias voltages.

FIG. 8shows an example of average conductance values (in mmhos) of physical measurements from 16 MTJs as a function of bias voltage for both a high resistive state (GRhiupand GRhidn) and a low resistance state (GRlo) at a temperature of 30 C. Regarding the high resistance state conductance, the subscript “up” is used for a negative bias voltage indicating that the current in the MTJ is “up” through the device and the subscript “dn” is used for the positive bias voltage indicating that the current in the MTJ is “down” through the device. Also shown inFIG. 8are curve fits (803,805, and807) for the averaged measured data. For the embodiment, shown, the conductance measurements were made at bias voltage increments of approximately 0.10 Volts.

As shown inFIG. 8, a single second order polynomial (as shown by line807) provides a very good fit to the data (GRlo) of the low resistance state while two second order polynomials, one for positive bias (line805) and one for negative bias (line803), are utilized for the high resistance state to have a similar level of fit. In one embodiment, the curve for the low resistance state is given below in equation 7:
G=17.99V2+3.28V+59.25  (7)
where V is the bias voltage in volts and G is the conductance of the MTJ in mmhos. The curve for the high resistance state positive bias voltage and the curve for the high resistance state negative bias voltage are given below in equations 8 and 9, respectively:
G=14.68V2+13.84V+45.83  (8)
G=14.69V2−8.29V+45.66  (9)

In1203, the conductance measurements for the low resistive state, the high resistive state positive bias voltages, and the high resistive state negative bias voltages for various operating temperatures are fit into second order polynomial curves. In some embodiments, the fittings are performed using the least squares error measure or weighted least squares error measure.

FIG. 9shows the average conductance values (in millimhos) of physical measurements from the same 16 MTJs as a function of bias voltage and temperature for the low resistance state (high conductance state). Each curve (913,911,909,907,905, and903) represents a fit of a second order polynomials for each operating temperature at which measurements were made. In the embodiment shown, the measurements were made for operating temperatures of 30 degrees, 40 degrees, 60 degrees, 80 degrees, 100 degrees, and 120 degrees Celsius. The curve fits for the measurements at each temperature are given below:
30°C: G=18.0V2+3.3V+59.3  (10)
40°C: G=18.3V2+3.4V+59.3  (11)
60°C: G=18.8V2+3.4V+60.2  (12)
80°C: G=19.4V2+3.6V+60.9  (13)
100°C: G=19.6V2+3.6V+61.2  (14)
120°C: G=21.2V2+3.7V+62.4  (15)

FIG. 10shows the average conductance values (in millimhos) of physical measurements from the same 16 MTJs as a function of bias voltage and temperature for the high resistance state (low conductance state). Second order polynomials curves are fitted to the average measurements at each operating temperature for a positive bias voltage (curves1029,1027,1025,1023,1021, and1019) and foranegative bias voltage (curves1013,1011,1009,1007,1005, and1003). The curve fits for the measurements at each temperature for the positive bias voltage are given by the equations below:
30°C: G=12.6V2+15.9V+45.5  (16)
40°C: G=13.0V2+15.6V+46.0  (17)
60°C: G=13.7V2+15.3V+46.9  (18)
80°C: G=14.7V2+14.8V+47.9  (19)
100°C: G=15.0V2+14.8V+48.4  (20)
120°C: G=16.9V2+13.8V+50.5  (21)

Referring back toFIG. 12, in1205, the individual polynomial coefficients for the low resistance state conductance curves, the individual polynomial coefficients from the high resistance state positive bias voltage conductance curves, and the individual polynomial coefficients from the high resistance state negative bias voltage conductance curves are each fit to a first order temperature polynomial curve. The conductance curves for each temperature are of the form:
G=A+BV+CV2(28)

In1205, the polynomial coefficient parameters (A, B, and C) for the low resistance state, the high resistance state positive bias voltage, and the high resistance state negative bias voltage are each made into a function of temperature to reduce the number of parameters of a model.

FIG. 11is a plot of polynomial coefficient parameters (A, B, C) for the curves shown inFIG. 9(equations 16-21) as a function of temperature. As shown inFIG. 11for the case of the low resistance state, a liner temperature function provides a reasonable fit for the polynomial coefficient parameters. The curves for A (1103), B (1107), and C (1105) for the data plotted inFIG. 9are given below:
A=.032T+58.3  (29)
B=0.004T+3.2  (30)
C=0.032T+16.9  (31)

where T is temperature.

A linear fit also applies to polynomial coefficient parameters of the curves of the conductance of the MTJ in the high resistance state for both for positive bias voltage (curves1019,1021,1023,1025,1027, and1029) and for the negative bias voltage (curves1003,1005,1007,1009,1011, and1013).

Thus, the three temperature dependent second order polynomials in voltage can each have the form of:
G=Go[(1+CTΔT)+(CV1+CTV1ΔT)V+(CV2+CTV2ΔT)V2 ](33)
where G0is the zero bias conductance at the reference temperature, CTis a temperature coefficient parameter of the 0thorder voltage coefficient (A), CV1is the 0thorder temperature coefficient parameter for the 1storder voltage coefficient (B), ΔT is the change in temperature from a reference temperature, CTV1is a 1storder temperature coefficient parameter of the 1storder voltage coefficient (B), CV2is the 0thorder temperature coefficient parameter for the 2ndorder voltage coefficient (C), CTV2is a 1storder temperature coefficient of the 2ndorder voltage coefficient (C). Using the format in Equation 33, the conductance function for the low resistance state can then be written as:

GRlo=GRlo0⁡[(1+CTGr1o⁢Δ⁢⁢T)+(CV1Grlo+GTV1Grlo⁢Δ⁢⁢T)⁢V+(CV2Grlo+GTV2Grlo⁢Δ⁢⁢T)⁢V2]⁢⁢where⁢⁢GRlo0=1Rlo(34)
where Rlo0is the resistance for the zero bias voltage, reference (e.g. room) temperature, low resistance state resistance. For equation 34, the subscript “GRlo” is added to the coefficient named above with respect to equation 33 to indicate that the coefficients are for the low resistive state.

The two parts (the negative bias voltage part and the positive bias voltage part) of the conductance in the high resistance state must be continuous at zero bias voltage, restricting the two polynomials to the same value of G0. The two high resistance state conductance functions can be written as follows:

For equation 35, the subscript “Grhiup” is added to the coefficients named above with respect to equation 33 to indicate that the coefficients are for the high resistive state negative bias voltage. For equation 36, the subscript “Grhidn” is added to the coefficients named above with respect to equation 33 to indicate that the coefficients are for the high resistive state positive bias voltage.

The values for the coefficients for equations 34, 35, and 36 for the data plotted inFIGS. 8,9, and10are set forth in the column entitled “Values from Individual Curves” in Table 7 below. Also listed in the column are values for Rlo0and MR. The values in this column are utilized as coefficient parameter values in a model of an MRAM. The parameter values given in this column are fitted curve by curve.

The last entry of this column, 105 ohms, is obtained, in one embodiment, by taking the root mean square error for the fit of the set of curves to the measured data.

Referring back toFIG. 12, in1207, all of the parameters are combined to generate a global error measure for all of the curves. In one embodiment, the error measure is generated by the root mean square error, i.e. the square root of the average of the squares of the difference between the global model values and the individually measured actual conductance values. In another embodiment, the values at the different temperatures are given different weights before averaging. In one embodiment, the values nearer room temperature are given a higher weight than those farther away from room temperature.

In1209, the parameter values are adjusted to generate a least squares fit of the parameters to the combined data. The column entitled “Globally Optimized Values” of Table 7 sets forth the values of the parameters after then have been adjusted in1209. This column shows that the root mean square error is reduced to 95 ohms

In1211, coefficient parameters which have a minimal affect on the global error are eliminated. In one embodiment, the parameters are eliminated if by setting them to zero and re-optimizing the other parameter values (e.g. performing operation1209again with the values shown in the column entitled “Reduced Parameters” in Table 7). In one embodiment, a parameter is eliminated (e.g. set to 0 in some embodiments) if the increase in global error is less than a particular threshold (e.g. % 1) due to that parameter being eliminated. In some embodiments, re-optimization may be performed with a number of parameters set to zero. In other embodiments, the least effective parameters are set to zero until the cumulative effect exceeds a particular threshold.

In some embodiments parameter candidates for re-optimization may be manually selected (e.g. by trial and error) from an evaluation of the data. In other embodiments, re-optimization is performed for with each parameter set to zero. In other embodiments, re-optimization is performed for each combination of parameters set to zero, wherein the case that eliminates the most parameters and yet provides an error below a threshold is selected.

The column entitled “reduced parameters” of Table 7 shows a case where three of the parameters have been set to zero (CTV1Grlo, CTV1Grhiup, and CTV1Grhidn) with the other parameters re-optimized. For this case, the total global error only increased by 1 ohm to 96 ohms from 95 ohms for the globally optimized values prior to elimination.

Providing a system for elimination of the parameters may provide for an MRAM cell model of increased efficiency in that less parameters are needed for calculation during a simulation of an MRAM memory.

FIGS. 13-19set forth one embodiment of a portion of a MTJ computer simulation model. The simulation model runs as a part of a simulation program for an MRAM memory which calls the model at each iteration (e.g. time step in some embodiments) of a simulation of an MRAM memory. In the embodiment shown, the flows set forth inFIG. 13-19are run for each time step (e.g. 100 picoseconds) of the simulation.

In the embodiment shown, the model implements the state machine of the Karnough Maps of Tables 1-6. The Karnough Map of Table 1 is implemented in the operations ofFIG. 13from diamond1309on down, the Karnough Map of Table 2 is implemented in the operations ofFIG. 14, the Karnough Map of Table 3 is implemented in the operations ofFIG. 15, the Karnough Map of Table 4 is implemented in the operations ofFIG. 16, the Karnough Map of Table 5 is implemented in the operations ofFIG. 17, and the Karnough Map of Table 6 is implemented in the operations ofFIG. 18.

Referring toFIG. 13, there are two entry points for the model, initial entry1301and other entry1307. Initial entry1301is used when the model is called for the first time in a simulation in a simulation of a memory. Other entry1307is used on subsequent calls to the model including during subsequent time steps of the simulation. After initial entry1301, various model parameters are initialized in1303including parameters for conductance as a function of the specific operating temperature and the initial bit state of the MTJ being modeled. In one embodiment, the model parameters are initialized (e.g. as set forth in Table 7) by utilizing the globally optimized parameters or reduced parameters (if some parameters were able to be eliminated) (e.g. as set forth in Table 7) as derived by a process similar to that set forth inFIG. 12.

Once the initial conductance model parameters are set, the three conductance equations (low resistance state, high resistance state negative bias voltage, and high resistive state positive bias voltage) of an MTJ for simulation at a particular temperature looks like:
G=Go[CV0+CV1V+CV2V2]  (37)

In one embodiment, the coefficient parameters CV0, CV1, and CV2for each of the three conductance equations are calculated in1303using equations 34, 35, and 36, respectively, with the values derived by the method ofFIG. 12as the coefficients for those equations and at the initial operating temperature. For example, CV0(in equation 37 above) for the low resistance state case is calculated as (from equation 34) as being equal to 1+CTGrlo*(the difference between the reference temperature and the initialized temperature).

In1305, the model calculates the Axis1and Axis2currents (I1and I2) and the magnetic fields (H1and H2) for those fields from those currents. In the embodiment shown, Axis1is the write conductor located beneath the MTJ (e.g. metal line114in the embodiment ofFIG. 1) and Axis2is the write conductor located above the MTJ (e.g. metal line102in the embodiment ofFIG. 1).

The model then sequentially checks whether the magnetic field H1generated by the current of Axis1(the Axis1magnetic field) has passed the lower threshold (HTL) while increasing (decision diamond1309ofFIG. 13) since the last iteration of the model, whether the Axis1magnetic field has passed the higher threshold (HTH) while increasing (decision diamond1403ofFIG. 14) since the last iteration of the model, whether the magnetic field H2generated by the current of Axis2(the Axis2magnetic field) has passed the lower threshold (HTL) while increasing (decision diamond1503ofFIG. 15) since the last iteration of the model, whether the Axis2magnetic field has passed the higher threshold (HTH) while increasing (decision diamond1603ofFIG. 16) since the last iteration of the model, whether the Axis1magnetic field has passed the lower threshold (HTL) while decreasing (decision diamond1703ofFIG. 17) since the last iteration of the model, and whether the Axis2magnetic field has passed the lower threshold (HTL) while decreasing (decision diamond1803ofFIG. 18) since the last iteration of the model.

If any of the checks is set forth in the preceding paragraph is positive, the model parses the state of the model according to the one Karnough Map in Tables 1-6 associated with the decision diamond that generated the positive check (e.g. the map of Table 1 is associated with diamond1309, the map of Table 2 is associated with diamond1403, the map of Table 3 is associated with diamond1503, the map of Table 4 is associated with diamond1603, the map of Table 5 is associated with diamond1703, and the map of Table 6 is associated with diamond1803).

Referring toFIG. 13, if in diamond1309, the model determines that the Axis1magnetic field (H1) has crossed the low threshold (HTL) while increasing, the model then determines in diamond1311whether a 2-1 pulse train has already started. The model determines whether the 2-1 pulse train has already started by determining whether the 2-1 pulse train signal has been set (e.g. at a logical 1). If the 2-1 pulse train has been set, the model returns an error in operation1313in that such a condition is not logically reachable (e.g. it represents the state 0,0,1,0 of Table 1 which has an E). For the flows ofFIGS. 13-19, the “error exit” operations (e.g. 1313, 1317) represent states that should not be logically reachable.

If no in diamond1311(e.g. the 2-1 pulse train signal is a logical zero), the model then determines in diamond1315whether pulse1has already started. The model determines whether pulse1has started by determining whether the pulse1signal has been set (e.g. is at a logical 1). If yes in diamond1315, the model returns an error in operation1317indicating an unreachable state.

If no in diamond1315, the model determines whether the 1-2 pulse train has already started in diamond1327. The model determines whether the 1-2 pulse train has already started by determining whether the 1-2 pulse train signal has been set. If yes in diamond1327, the model determines whether pulse2has already started in diamond1323. The model determines whether pulse2has already started by determining whether the pulse2signal has been set. If yes in diamond1323, then the model sets the pulse1signal (to 1) in1321. If no in diamond1323, the model returns an error in operation1325.

If no in diamond1327, the model determines whether pulse2has already started in diamond1333. If yes in1333, the model determines whether the tau1pulse delay has been met in diamond1331. If yes in diamond1331, then the model sets the pulse1signal (to 1), sets the 2-1 pulse train signal (to 1), and resets the tau2timer in operation1335. If no in diamond1333, then the model in diamond1337determines whether the tau 0 pulse delay has been met. If no in diamond1337, then the model returns an error in operation1339. If no in diamond1331, the model returns an error in operation1329.

If no in diamond1309, after operation1321, after operation1335, or if yes in diamond1337, the model then goes to diamond1403ofFIG. 14to determine whether the axis1magnetic field (H1) has crossed the high threshold (HTH) while the magnitude has been increasing.

If yes in diamond1403, then the model determines in diamond1405whether the 1-2 pulse train has already started and the 2-1 pulse train has already started. If yes in diamond1405, then the model returns an error in operation1407. If no in1405, then the model determines in diamond1409whether pulse1has already started. If no in1409, then in diamond1411, the model determines whether the 1-2 pulse train has already started or the 2-1 pulse train has already started in diamond1411. If yes in diamond1411, then the model returns an error in1413. If no in1411, then the model determines in diamond1417whether pulse2has already started. If yes in1417, then the model returns an error in1419. If no in1417, then the model determines whether the tau0pulse delay has been met in diamond1425. If no in diamond1425, the model returns an error in operation1427. If yes in diamond1425, the model sets the pulse1signal (to 1) and resets the tau 1 timer in operation1431.

If yes in diamond1409, then the model in diamond1415determines whether pulse2has already started. If yes in diamond1415, then the model determines in1433whether the 1-2 pulse train has already started or the 2-1 pulse train has already started. If no in diamond1433, then the model returns an error in operation1435. If no in diamond1415, then the model in diamond1421determines whether the 1-2 pulse train has already started. If yes in diamond1421, then the model returns an error in operation1429. If no in diamond1403, if no in diamond1421, if no in diamond1433, or after operation1431, the model then goes to diamond1503ofFIG. 15.

Referring toFIG. 15, in diamond1503, the model determines whether the axis2magnetic field (H2) has crossed the low threshold (HTL) while increasing. If yes in1503, the model determines in diamond1505whether the 1-2 pulse train has already started. If yes in diamond1505, the model returns an error in1507. If no in diamond1505, the model determines in diamond1509whether pulse2has already started. If yes in diamond1509, then the model returns an error in operation1511. If no in diamond1509, the model determines in diamond1517whether the 2-1 pulse train has already started. If yes in diamond1517, the model determines in diamond1515whether pulse1has already started. If no in diamond1515, the model returns an exit in operation1519. If yes in diamond1515, the model sets the pulse2signal (to 1) in operation1513.

If no in diamond1517, the model in diamond1525determines whether pulse1has already started. If yes in diamond1525, the model determines whether the tau 1 pulse delay has been met in diamond1523. If no in diamond1523, the model returns an error in operation1521. If yes in diamond1523, the model sets the pulse2signal (to 1), sets the2-1pulse train signal (to 1), and resets the tau2timer in operation1527. If no in diamond1525, the model in diamond1529determines whether the tau 0 pulse delay has been met. If no in diamond1529, the model returns an error in operation1531.

If no in diamond1503, after the pulse2signal has been set in1513, after operation1527, or if yes in diamond1529, the model then proceeds to diamond1603ofFIG. 16.

Referring toFIG. 16, in diamond1603the model determines whether the axis2magnetic field (H2) has crossed the high threshold (HTH) while increasing. If yes in diamond1603, then the model in diamond1605determines whether the 1-2 pulse train has already started and the 2-1 pulse train has already started. If yes in diamond1605, then the model returns an error in diamond1607. If no in diamond1605, then model determines in diamond1609whether pulse2has already started. If no in diamond1609, then the model determines whether the 1-2 pulse train has started or whether the 2-1 pulse train has started in diamond1611. If yes in diamond1611, then the model returns an error in operation1613. If no in diamond1611, the model in diamond1617determines whether pulse1has started. If yes in diamond1617, then the model returns an error in operation1619. If no in diamond1617, then the model in diamond1625determines whether the tau0pulse delay has been met. If no in diamond1625, the model returns an error in operation1627. If yes in diamond1625, the model sets the pulse2signal (to 1) and resets the tau 1 timer in operation1631.

If yes in diamond1609, the model determines whether pulse1has started in diamond1615. If no in diamond1615, the model determines whether the 2-1 pulse train has started in diamond1621. If yes in diamond1621, the model returns an error in operation1629. If yes in diamond1615, the model in diamond1633determines whether the 1-2 pulse train has already started or the 2-1 pulse train has already started. If no in diamond1633, then the model returns an error in operation1635. If no in diamond1603, if no in diamond1621, after operation1631, or if yes in diamond1633, the model proceeds to diamond1703ofFIG. 17.

Referring toFIG. 17, in diamond1703, the model determines whether the axis1magnetic field (HI) has crossed the low threshold (HTL) while decreasing. If yes in diamond1703, the model determines whether the 1-2 pulse train has already started and the 2-1 pulse train has already started in diamond1705. If yes in diamond1705, the model returns an error in operation1709. If no in diamond1705, the model in diamond1707determines whether pulse1has already started. If no in diamond1707, the model in diamond1713determines whether the 1-2 pulse train has started or the 2-1 pulse train has started. If no in diamond1713, then in diamond1711the model determines whether pulse2has started. If yes in diamond1711, the model returns an error in operation1715. If yes in diamond1713, the model returns an error in operation1717.

If yes in diamond1707, the model determines in diamond1719whether pulse2has started. If no in diamond1719, the model in diamond1721determines whether the 1-2 pulse train has started. If yes in diamond1721, the model returns an error in operation1723. If no in diamond1721, the model sets the pulse1signal and resets the tau 0 timer in operation1731. After operation1731, the model in diamond1735determines whether the 2-1 pulse train has started. If yes in diamond1735, the model in diamond1733determines whether the tau3pulse delay has been met. If no in diamond1733, the model returns an error in operation1725. If yes in diamond1733, the model resets the 2-1 pulse train signal in operation1737.

After operation1737, the model in diamond1759determines whether the MTJ bit value has been set (whether the bit value is 1). If yes in diamond1759, the model then resets the bit value (to 0) and sets the conductance parameters to the low resistive state values (e.g. using the coefficients for the low resistance state) in operation1743. In one embodiment, the model sets the conductance parameters to low resistance state values to implement equation 34 for determining the conductance provided by the MTJ in the circuit.

If no in diamond1759, the model sets the bit value of the MTJ cell (to 1) in operation1747. After operation1747, in diamond1749, the model determines whether the bias voltage is positive. If in diamond1749, the bias voltage is determined not to be positive (e.g. has a negative bias voltage) the model resets the down current flag and sets the conductance parameters to the high resistance state up values in operation1755. In one embodiment, the model sets the conductance parameters to the high resistance state values such that it will use equation 35 in providing the conductance for the MTJ.

If yes in diamond1749, the model sets the down current flag (to 1) to indicate that the bias voltage is positive in operation1757. Also in operation1757, in one embodiment, the model sets the conductance parameters to the high resistance state down values. Accordingly, in this embodiment, the model will use equation 36 when providing the conductance of the MTJ.

If yes in diamond1719, the model determines in diamond1727whether the 1-2 pulse train has not started and the 2-1 pulse train has not started. If yes in diamond1727, the model returns an error in operation1729. If no in diamond1727, the model in diamond1739determines if the 1-2 pulse train has already started. If no in diamond1739, the model in1741resets the pulse1signal and resets the2-1pulse train signal. If yes in1739, the model in1745determines whether the tau2pulsed delay time has been met. If no in diamond1745, the model returns an error in operation1751. If yes in diamond1745, the model sets the pulse1signal and resets the tau 3 timer in operation1753.

If no in diamond1703, if no in diamond1711, if no in diamond1735, after operation1741, after operation1743, after operation1753, after operation1755, or after operation1757, the model goes to diamond1803ofFIG. 18.

Referring toFIG. 18, in diamond1803, the model determines whether the axis2magnetic field (H2) has crossed the low threshold (HTL) while decreasing. If yes in diamond1803, the model in diamond1805determines whether the 1-2 pulse train has already started and the 2-1 pulse train has already started. If yes in diamond1805, the model returns an error in operation1809. If no in diamond1805, the model determines in diamond1807whether pulse2has started. If no in diamond1807, the model determines in diamond1813if the1-2pulse train has started or the 2-1 pulse train has started. If yes in diamond1813, the model returns an error in operation1817. If no in diamond1813, the model determines in diamond1811whether the pulse1has started. If yes in diamond1811, the model returns an error in operation1815.

If yes in diamond1807, the model determines in diamond1819if pulse1has started. If no in diamond1819, the model determines in diamond1821if the 2-1 pulse train has started. If yes in diamond1819, the model returns an error in operation1823. If no in diamond1821, the model sets the pulse2signal (to 1) and resets the tau 0 timer in operation1831. After operation1831, the model in diamond1835determines whether the 1-2 pulse train has already started. If yes is1835, then the model determines whether the tau3pulse delay has been met in diamond1833. If no in diamond1833, the model returns an error in operation1825.

If yes in diamond1833, the model resets the 1-2 pulse train signal in operation1837. After operation1837, the model in diamond1859determines whether the MTJ bit value is set (to 1). If yes in diamond1859, the model resets the MTJ bit value (to 0) in operation1843. Also in operation1843, in one embodiment, the model sets the conductance parameters to the low resistive state values. Accordingly, in one embodiment, the model will use equation 34 for providing the conductance of the MTJ.

If in1859, the MTJ bit value is not set, then the model will set the MTJ bit value (to 1) in operation1847. After operation1847, the model determines in1849whether the bias voltage is positive. If the biased voltage is not positive in diamond1849, the model resets the down current flag in operation1855. Also in operation1855, in one embodiment, the model sets the conductance parameters to the high resistive state up values. Accordingly in determining the conductance of the MTJ, the model will use equation 35.

If the bias voltage is determined to be positive in diamond1849, the model will set the down current flag (to 1) in operation1857. Also in operation1857, in one embodiment, the model will set the conductance parameters to the high resistive state down values. Accordingly, the model would provide the conductance of the MTJ as set forth in equation 36.

If yes in1819, the model then determines in1827if the 1-2 pulse train has not started and the 2-1 pulse train has not started. If yes in diamond1827, the model returns an error in operation1829. If no in diamond1827, the model determines in1839if the 2-1 pulse train has already started. If no in diamond1839, the model then resets the pulse2signal (to 0) and resets the 2-1 pulse train signal (to 0) in operation1841. If yes in diamond1839, the model determines in diamond1845whether the tau2pulse delay has been met. If no in diamond1845, the model returns an error in operation1851. If yes in diamond1845, the model sets the pulse2timer signal (to 1) and resets the tau 3 timer in operation1853.

If no in diamond1803, if no in diamond1811, if no in diamond1835, after operation1841, after operation1853, after operation1843, after operation1855, or after operation1857, the model then proceeds to diamond1903ofFIG. 19.

Referring toFIG. 19, once the switching threshold checks are completed (diamonds1309,1403,1503,1603,1703, and1803), the MTJ bit state is checked in diamond1903. This check is redundant if the bit has just been toggled (in operations1843or1743) but is required if it has not been toggled. If the bit state is set (at 1) as determined in1903, then the status of down current flag is checked in1905and if yes in1905, the bias voltage is checked in1907to see if the bias voltage across the bit has changed to negative, necessitating a change in the bit conductance parameters to the high resistance state up values in operation1909. Also in operation1909, the down current flag is set (to 1).

If the down current flag is not set in1905, then the model determines whether the bias voltage is positive in diamond1911, and if yes in1911, resets the down current flag (to zero) and sets the conductance parameters to the high resistive state down values in operation1913.

If no in diamond1903, if no in1907, if no in diamond1911, after operation1909, or after operation1913, the model performs operation1915. In operation1915, if there has been a change in conductance parameter values during the present iteration or previous iterations for a preset simulation time period (e.g. a 100 picoseconds of simulation time) the model does a transition between parameter values over time to prevent sudden changes in the conductance values for the simulation.

Finally, the current through the MTJ is calculated from the voltage using the conductance parameter values and capacitance models (not shown in the FIGS.) in operation 1917. The conductance parameter values utilized depends upon the most recent conductance values set and the transition simulation performed in 1915 if the parameters were changed during recent iterations. After the MTJ current is calculated, control is returned in 1919 to other portions of the simulation.

In one embodiment, the flow set forth inFIGS. 13-19may be implemented in VERILOG-A. In other embodiments, the model may have other configurations and/or other implementations.

Although the Tables and flow charts described herein describe a model that checks for magnetic pulses crossing thresholds, a model made be based upon calculated current through the write lines crossing equivalent thresholds in other embodiments. With some of these parameters, the conductance coefficients would be scaled accordingly.

FIG. 20is a block diagram of a computer2020in accordance with one embodiment of the present invention which may be used to execute the methods discussed herein. Computer2020includes a computer processor2022and memory2024operably coupled by a bus2026. Memory2024may include relatively high speed machine readable media such as DRAM, SRAM, ROM, FLASH, EEPROM, bubble memory, etc. Also operably coupled to bus2026are secondary storage2030, external storage2032, output devices such as a monitor2034, input devices such as a keyboard (with mouse)2036, and printers2038. Secondary storage2030may include machine readable media such as hard disk drives, magnetic drum, bubble memory, etc. External storage2032may include machine readable media such as floppy disks, removable hard drives, magnetic tap, CD-ROM, and even other computers, possibly coupled via a communications line. It should be appreciated that there may be overlap between some elements, such as between secondary storage2030and external storage2032. Executable versions of computer software2033, such as, for example, software for performing the MRAM simulation described herein, can be written to, and later read from external storage2032, loaded for execution into memory2024, or stored on secondary storage2030prior to loading into memory2024and execution. Also, the MRAM cell simulation model may be stored in secondary storage2030or external storage2032.

In the foregoing specification, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. For example, any software taught herein may be embodied on one or more of computer hard disks, floppy disks, 3.5″ disks, computer storage tapes, magnetic drums, static random access memory (SRAM) cells, dynamic random access memory (DRAM) cells, electrically erasable (EEPROM, EPROM, flash) cells, nonvolatile cells, ferroelectric or ferromagnetic memory, compact disks (CDs), laser disks, optical disks, and any like computer readable media. Also, the flow diagrams may also be arranged differently, include more or less operations, be arranged differently, or may have operations that can be separated into multiple operations that can be performed simultaneously with one another. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present invention.

In one embodiment, the invention includes a method for simulating a magnetoresistive memory device of a magnetoresistive random access memory (MRAM) having a first conductor, a second conductor, and a magnetic tunnel junction (MTJ). The first conductor is disposed substantially orthogonal to the second conductor. The MTJ is disposed between the first conductor and the second conductor. The method includes calculating a first current in the first conductor, calculating a second current in the second conductor, and detecting an indication of a transition of one of the first current and the second current across a threshold. The method also includes modifying a status of an operating condition of a plurality of operating conditions in response to the detecting the indication of the transition and outputting a bit state that is dependent upon a status of the plurality of operating conditions.

In another embodiment, the invention includes a method of simulating a memory device of a magnetoresistive random access memory (MRAM). The memory device has a magnetic tunnel junction (MTJ) with multiple free magnetic layers. The method includes calculating an indication of a first magnetic field applied to the MTJ, calculating an indication of a second magnetic field applied to the MTJ, and detecting an indication of a transition of one of the first magnetic field and the second magnetic field across a threshold. The method also includes modifying a status of an operating condition of a plurality of operating conditions in response to the detecting the indication of a transition and providing an output bit state for the memory device. The output bit state is dependent upon a status of the plurality of operating conditions.

In another embodiment, the invention includes a method for simulating a magnetoresistive memory device in an integrated circuit magnetoresistive random access memory (MRAM) having a first conductor, a second conductor, and a magnetic tunnel junction (MTJ). The first conductor is disposed substantially orthogonal to the second conductor. The MTJ is disposed between the first conductor and the second conductor. The method includes calculating an indication of a first magnetic field applied to the MTJ. The first magnetic field is generated by current in the first conductor. The method also includes calculating an indication of a second magnetic field applied to the MTJ. The second magnetic field is generated by current in the second conductor. The method further includes detecting indications of transitions of the first magnetic field and the second magnetic field across one or more thresholds and providing a state machine having one or more state variables with transitions in the state machine being dependent upon detected indications of transitions of the first magnetic field and the second magnetic field and a state of the one or more state variables.

In another embodiment, the invention includes a computer readable medium having stored instructions for simulating a magnetoresistive memory device of a magnetoresistive random access memory (MRAM) including a first conductor, a second conductor, and a magnetic tunnel junction (MTJ). The first conductor is disposed substantially orthogonal to the second conductor. The MTJ is disposed between the first conductor and the second conductor. The MTJ has multiple free magnetic layers. The computer readable medium includes instructions for calculating an indication of a first magnetic field applied to the MTJ. The first magnetic field being generated by current in the first conductor. The computer readable medium includes instructions for calculating an indication of a second magnetic field applied to the MTJ. The second magnetic field is generated by current in the second conductor. The computer readable medium includes instructions for detecting indications of transitions of the first magnetic field and the second magnetic field across one or more thresholds and instructions for modifying a status of operating conditions in response to detecting the indications of transitions of one of the first magnetic field and the second magnetic field across one or more thresholds. The computer readable medium also includes instructions for outputting a bit state that is dependent upon the status of the operating conditions.