Magnetic Random Access Memory (MRAM) can be programmed and read as fast as
Static Random Access Memory (SRAM) and has the non-volatile
characteristics of electrically eraseable programmable read only memory
(EEPROM), FLASH EEPROM or one-time-programmable (OTP) EPROM. Due to the
randomness of manufacturing process, the magnetic tunnel junctions (MTJ)
in MRAM cells will require different row and column current combinations
to program and not to disturb the other cells. Based on adaptive current
sources for programming, this disclosure teaches methods, designs, test
algorithms and manufacturing flows for generating EEPROM, FLASH EEPROM or
OTP EPROM like memories from MRAM.