Ph.D. Contributions
Topics and Skills
- Design of Spin-Transfer Torque Magnetic Random Access Memories (STT-MRAM)
- Analyzed use of different genres of magnetic tunnel junctions (MTJ) with different transistor technologies for STT-MRAM bit-cells
- MTJ
- Single barrier
- Tilted anisotropy
- Dual pillar
- Access transistor
- 45nm ST Microelectronics bulk CMOS
- 45nm IBM SOI CMOS
- 16nm PTM CMOS
- MTJ
- Developed simulation framework for full bit-cell simulation of STT-MRAM (KNACK)
- Developed model for electronics transport in MTJ (Non-Equilibrium Green’s Function, NEGF)
- Handcrafted least-squares fitting tool for fitting NEGF calculations of MTJ conductance
- Developed model for magnetization dynamics in free layer of MTJ (Landau-Lifshitz-Gilbert equation, LLG, and Landau-Lifshitz-Gilbert-Slonczewski equation, LLGS)
- Spin-transfer torque entered using Slonczewski’s method
- Spin-transfer torque calculated using NEGF method
- Developed model for STT-MRAM bit-cell
- Included bit-line, source-line and word-line drivers, as well as parasitic capacitances and resistances
- Enabled transient simulation of full bit-cell using time-varying signals
- Access device characteristics input as compact model or look up table
- MTJ characteristics input as compact model or look up table
- Implemented simulation framework in MATLAB
- Able to perform transient simulation with time-varying MTJ current density or time-varying MTJ voltage
- Able to perform transient simulation with time-varying bit, word and source-line voltages
- Implemented Runge-Kutta numerical methods of Fehlberg, Cash-Karp, and Dormand-Prince to solve coupled LLGS and Kirchoff’s circuit equations
- Developed model for electronics transport in MTJ (Non-Equilibrium Green’s Function, NEGF)
- Contribute to development of micromagnetic simulation software (feel free to try the source codes)
- Object-Oriented MicroMagnetics Framework (OOMMF)
- Open-source finite difference micromagnetics software written in C++
- Added Xf_ThermSpinXferEvolve class
- Solves stochastic Landau-Lifshitz-Gilbert (sLLG) equation with thermal fluctuation field, and spin-transfer torque from interfaces with collinear pinned layers, same polarization factors, and same Lambda factors
- Added Xf_STT class
- Implements the Slonczewski spin-transfer torque, which was originally included in SpinXferEvolve evolver classes, as an effective magnetic field
- Allows simulation of multiple interfaces to free layer, each with non-collinear pinned layers as well as different parameters
- Added Xf_ThermHeunEvolve class
- Solves stochastic Landau-Lifshitz-Gilbert (sLLG) equation with thermal fluctuation field using Heun’s method
- MuMax2: http://code.google.com/p/mumax2
- Open-source multi-GPU finite difference micromagnetics software written in GO and CUDA
- Added rk32, rk54ck, rk54f, rkf54, rkf54m and rkf54s solver modules
- Provide higher order adaptive time step Runge-Kutta numerical methods
- Added oommf/slonczewski/intX modules
- Compute spin-transfer torque using equation used in OOMMF
- Slonczewski module uses the same equations as in OOMMF except it assumes equal polarizations and equal Lambda factors for pinned and free layers
- Object-Oriented MicroMagnetics Framework (OOMMF)
- Analyzed impact of process variations on design space of 1T-1R STT-MRAM bit-cell
- Compared Standard and Reverse Connected bit-cell structures with standard single barrier MTJ
- Developed SPICE compatible MTJ models that capture magnetization dynamics in the MTJ using the LLG equation
- Migrated to Verilog-A model under the NEEDS project to better support different circuit simulators
- Studied impact of variations in tMgO, AreaMTJand in access transistor on read (decision and disturb) and write failures of 1T-1R STT-MRAM bit-cells
- Performed using HSPICE Monte Carlo simulations
- Proposed design methodology for optimizing read/write failures in 1T-1R STT-MRAM bit-cells
- Analyzed the use of write assists to maintain critical write current while reducing read disturb failures
- Magnetic field based write assists
- Impact of external magnetic field on:
- Write delay
- Access device sizing
- Thermal stability margin
- Propose layout alterations to accommodate structures for generating magnetic field
- Impact of external magnetic field on:
- Other write assists
- Multiferroics (magnetoelectric effect)
- Magnetic field based write assists
- Analyzed use of different genres of magnetic tunnel junctions (MTJ) with different transistor technologies for STT-MRAM bit-cells
- Design methodology for nano-magnet based logic
- Analyzed Magnetic Quantum Cellular Automata (MQCA) as basis for ultra-low power computation
- Developed cell-library based design methodology for synthesizing MQCA logic
- Created layout for MQCA majority gate
- Created layout for MQCA interconnects
- Created layout for simple MQCA gates (NAND, NOR) from majority gate
- Proposed optimized clocking schemes (three and four phase) and technology for ultra-low power (~aJ) MQCA systems
- Developed simulation framework for systolic architecture based MQCA macro (16 point Discrete Cosine Transform, DCT)
- Implemented simulation framework in MATLAB
- Simulator handles time-varying magnetic clocks
- Benchmarked MQCA based systems against equivalent systems implemented in ultimate CMOS technology (15nm) and identified application space using appropriate metrics
- Compared 16 point DCT implemented in MQCA with 16 point DCT implemented in 15nm CMOS technology
- Developed cell-library based design methodology for synthesizing MQCA logic
- Analyzed Magnetic Quantum Cellular Automata (MQCA) as basis for ultra-low power computation
- Design of ferroelectric capacitor random access memories
- Analyzed dual ferroelectric capacitor bit-cell architectures for logic-in-memory applications (TAG RAM)
- Developed circuit model for dual ferroelectric capacitor bit-cell
- Benchmarked scaled (65nm) bit-cell design against equivalent designs based on 130nm CMOS technology
- Design of ultra-low power digital CMOS logic circuits using super cut-off transistors
- Implemented SPICE-style circuit solver for CMOS inverter in MATLAB
- Carbon nanotube (CNT) characteristics input as look up table
- Analyzed performance of ring-oscillators (RO) implemented with CNT based CMOS inverters
- Inverter static noise margin
- Inverter fanout
- Oscillator frequency
- Power consumption
Dr. Fong,
I am looking for the module for simulating the thermal STT and very glad to find this web site. I have just found the source code in OOMMF (xf_thermspinxferevolve), but I don’t know how to write in mif. Could you kindly help me or send me a mif example?
Best Regards,
Leo Huang
Hi Leo,
Please download the source archive that is linked here and recompile OOMMF. For some reason, the files I emailed to Dr. Michael Donahue at NIST was the buggy one and there were some issues with running simulations that had non-zero temperature. These issues are fixed in the archive linked here. There are two example MIF files in the archive as well.
Best,
Xuanyao (Kelvin) Fong
dear Dr Fong
I’m looking for code that can simulate hysteresis loop for magnetic nano composites which contains magnetic nano particles.
please guide me.
It really depends on what phenomenon and effects you want to capture. How familiar are you with micromagnetic modeling? If you want to use OOMMF, you can check out the userguide at http://math.nist.gov/oommf to find out what energies it can model. Also checkout the Contrib Area to see if others have created modules for modeling what you want. You can also checkout MuMax2 (http://ode.google.com/p/mumax2) if you have larger simulation problems.
Dear Dr Xuanyao (Kelvin) Fong
We are looking for oommf code with Single barrier MTJ cell on which we can see STT effects.Can you help us?
Regards,
yuvaneet
You can check out the Oxs_SpinXferEvolve module in OOMMF 1.2a5 for what you want.
Dr. Fong
I’m using your Xf_ThermSpinXferEvolve class but when I compile the example with OOMMF returns this message error:
Error thrown from inside “Oxs_Run” — Oxs_Ext error inside Run() function of driver Oxs_TimeDriver: — Oxs_Ext ERROR in object Xf_ThermSpinXferEvolve:evolve: Xf_ThermSpinXferEvolve::NegotiateTimeStep: cached timestep_lower_bound value not positive.
(Loop)
How can I solve that?
Thanks
Check that you have set both the min timestep and max timestep to the same value. The syntax is the same as in Oxs_SpinXferEvolve or Oxs_RungeKuttaEvolve.
Dr. Fong
Do you have a simple example for simple MTJ in OOMMF ???
Hi Majdi,
If you download the 12a4 version of OOMMF, you can find the example in app/oxs/examples or app/oxs/local. I recall finding the files spinxfer-*.mif in app/oxs/local of the 12a4 archive.
Rgds,
XY
Dr. Fong
I’ m Sorry to bother you again but the error I wrote to you last time still persists even if I compile your mif file “xf_thermspinxferevolve_test”.
Can you help me?
Tanks
Dr. Fong
I’ m Sorry to bother you again but the error I wrote to you last time still persists even if I compile your mif file xf_thermspinxferevolve_test.
Can you help me?
Tanks
Please send me an email directly at xfong@ecn.purdue.edu?
Thanks,
Xuanyao (Kelvin) Fong
Dr.Fong,
Iam writing a matlab based code for spice style cmos inverter,but i am facing problem with stamping and in generation of newton raphson based next point solution.
I request you to help me on this
Dr. Fong
Can you please give an example mif file for the Xf_STT class as you did for thermal one?
Thanks
Hi Kshitij,
I have updated the web page and the archive. The new archive has an example MIF file showing how to use the Xf_STT class. There is also a web page showing the details of each parameter going into Xf_STT.
Regards,
Xuanyao (Kelvin) Fong
dear Dr Fong
I’m looking for source code that can simulate voltage driven magnetic hysteresis loop for trilayer GMR structure on Ferroelectric material
regards
Eswary
Hi Easwary,
I don’t know if there’s an extension to do that at the moment. If you can send me a description of how the module should work, and the physics behind the math, I can spend some time to craft the module for you.
Thanks,
Xuanyao (Kelvin) Fong
Dear xfong
I have downloaded your extension package, but after some simulations I started to get this error as Mouriziou indicated above.
##
Dr. Fong
I’m using your Xf_ThermSpinXferEvolve class but when I compile the example with OOMMF returns this message error:
Error thrown from inside “Oxs_Run” — Oxs_Ext error inside Run() function of driver Oxs_TimeDriver: — Oxs_Ext ERROR in object Xf_ThermSpinXferEvolve:evolve: Xf_ThermSpinXferEvolve::NegotiateTimeStep: cached timestep_lower_bound value not positive.
(Loop)
##
I almost didn’t change any parameter in your .mif file. But I am still getting error.
regards
For those of you who are getting the error:
Error thrown from inside “Oxs_Run” — Oxs_Ext error inside Run() function of driver Oxs_TimeDriver: — Oxs_Ext ERROR in object Xf_ThermSpinXferEvolve:evolve: Xf_ThermSpinXferEvolve::NegotiateTimeStep: cached timestep_lower_bound value not positive.
(Loop)
I only got this error when I compiled the source code downloaded directly from NIST. I have not been able to reproduce the error with the source codes available on my personal web site. Note that I run OOMMF on 64-bit Ubuntu 14.04 but I have been using the same set up since Ubuntu 12.04. The only suggestion I can offer is to do a clean compile of OOMMF with the source codes downloaded here:
1) In a clean directory, download and extract the OOMMF source code from NIST.
2) Download the source codes here, extract the files and copy the *.cc and *.h files to app/oxs/local/ in the OOMMF area created in Step 1).
3) Install Tcl/Tk 8.6 (My set up uses Tcl/Tk 8.6 but 8.5.12 upwards should work too) if you haven’t already done so.
4) cd into the OOMMF directory in Step 1) and run “tclsh ./oommf.tcl pimake upgrade” followed by “tclsh ./oommf.tcl pimake distclean”. This should clean up any pre-compiled binaries.
5) Run “tclsh ./oommf.tcl pimake +platform” to make sure your set up is compile-able.
6) If all is good up to Step 5), run “tclsh ./oommf.tcl pimake”. This will perform a clean compilation of OOMMF with the source codes downloaded in Step 2).
7) If Step 6) completes clean, you may run “tclsh ./oommf.tcl pimake objclean” to reduce the disk space occupied by OOMMF. This step is completely optional.
8) Run the MIF files supplied with the archives.
Note that currently, there are bugs in Xf_ThermHeunEvolve which I am trying to resolve. All other extensions provided here should work with the MIF files provided.
Best,
XY