Programming ROM: Methods, Device Classes, and Practical Workflows
Read-only memory (ROM) can be “programmed” in multiple ways depending on the underlying memory technology and manufacturing workflow. At a high level, ROM programming typically means configuring the stored bit pattern by creating or removing conductive paths or changing charge states inside non-volatile semiconductor structures. Common ROM/programming families include mask ROM , PROM , EPROM , EEPROM , and Flash.
Below, you’ll learn the major ways ROM is programmed:
- Fixed at fabrication (mask ROM)
- One-time user programming (PROM, fuse/antifuse)
- UV erase then reprogram (EPROM)
- Electrical erase and reprogram (EEPROM)
- Block/page erase for efficiency (Flash)
A useful mental model is: mask ROM has no user programming step; PROM is “write once”; EPROM adds an erase step that requires UV; EEPROM/Flash support repeated erase/write while installed in the system.
Note: terminology varies across courses and datasheets (e.g., “ROM” vs “non-volatile memory”), but the programming/erase mechanisms are consistent with the categories above.
ROM Types (Mask ROM, PROM, EPROM, EEPROM, Flash) — Overview
Visual taxonomy of ROM programming methods
The table and diagram below connect memory type to programming/erase method and typical workflow.
Key keywords you’ll see later:
- mask ROM
- PROM
- EPROM
- EEPROM
- Flash
Major ways ROM can be programmed
1) Mask ROM: programmed at manufacturing (no field reprogramming)
mask ROM is “programmed” during chip fabrication: the designer’s bit pattern is translated into physical structures on the silicon (e.g., which connections exist). After fabrication, the contents are fixed—there is no erase and no user programming.
Practical implication
- Best for high-volume products where the bit pattern will not change.
- If you need updates after deployment, mask ROM is usually unsuitable.
2) PROM: one-time programming by the user (fuse/anti-fuse concept)
PROM devices are designed so that the user can create a desired bit pattern exactly once. A common conceptual model is:
- Fuse-type PROM: programming “blows” fuses to turn bits off/on.
- Anti-fuse-type PROM: programming creates conductive links to enable bits.
Practical implication
- Useful for prototypes or small runs when the final content is known before production.
- Once written, the PROM typically cannot be reverted (i.e., no erase).
3) EPROM: electrical programming + UV erase
EPROM supports repeated cycles by separating two actions:
- Program: performed electrically (typically by applying higher-voltage pulses to write charge states).
- Erase: performed by exposing the chip through a UV-transparent window, which clears stored charge.
Practical implication
- Great for early development and debugging when you need to revise firmware, but you can tolerate an “off-system” erase workflow.
- You cannot erase “in place” while the chip is installed.
4) EEPROM: electrical erase + electrical programming (in-system)
EEPROM improves on EPROM by making erase and program both electrical. This enables:
- Updating contents while the memory is installed (depending on system design and device support).
- Multiple program/erase cycles (within endurance limits).
Key supporting idea EEPROM stores bits using an electrical charge mechanism in non-volatile cells; programming changes charge, while erase removes/reduces it.
Practical implication
- More flexible for calibration tables, configuration, and small firmware update needs.
- Still subject to wear: frequent erase/write reduces usable lifetime.
5) Flash: EEPROM-style non-volatile memory with block/page organization
Flash is effectively the dominant approach for non-volatile storage in many embedded systems. It builds on EEPROM ideas but organizes memory so that:
- Reads are fast and direct.
- Programming is done at page granularity (small units written at a time).
- Erase is done at block (larger region) granularity.
Practical implication
- Efficient updates: you erase only the affected blocks, not the entire device.
- Requires firmware update workflows that understand page programming and block erase constraints.
Choosing a ROM programming method (decision workflow)
- 1Step 1
If it must never change, mask ROM is conceptually sufficient. If updates are needed, move toward PROM/EPROM/EEPROM/Flash.
- 2Step 2
If “write once” is acceptable and you don’t need erase/rewrite, choose PROM.
- 3Step 3
If you can remove the chip and erase it under UV, EPROM is possible. If not, prefer EEPROM or Flash.
- 4Step 4
If you need in-system updates, EEPROM/Flash are required (subject to your board design and bootloader approach).
- 5Step 5
For Flash, plan around block erase and page programming. For EEPROM, plan around its erase/write endurance limits.
- 6Step 6
Use mask ROM for high volume; use programmable variants for lower volume and iteration.
Programming constraints: endurance, granularity, and workflow coupling
Even when ROM can be reprogrammed, the how matters.
Endurance
Flash and EEPROM have limited write/erase cycles. Update strategies should minimize unnecessary erase operations.
Erase granularity
Flash typically erases by block, while programming is by page. Therefore, a “small update” may still require erasing a full block.
In-system programming (ISP)
EEPROM/Flash are often used with ISP workflows supported by bootloaders or external programmers.
Pro Tip: updates often mean ‘erase work,’ not just ‘write work’
When using Flash-like memory, a firmware change usually requires erasing an entire block (larger unit) even if you only changed a few bytes. Architect your update mechanism around block/page behavior.
Warning: “ROM” vs “non-volatile memory” behavior differs across families
Some courses call all these devices “ROM,” but reprogrammability varies drastically: mask ROM cannot be changed post-fabrication; PROM is write-once; EPROM needs UV; EEPROM/Flash can be updated electrically with wear constraints.
ROM programmability vs flexibility (qualitative)
Higher indicates more flexibility for iterative programming/reprogramming.
Evolution of ROM programming capability
Mask ROM
Factory-setBit pattern fixed during fabrication; no user programming after manufacturing."
PROM
One-time user writeUser can program once via fuse/anti-fuse mechanisms; no erase cycle."
EPROM
Erase by UVElectrical programming, then UV erase through a window for repeated cycles."
EEPROM
Electrical erase in systemElectrical programming and electrical erase; supports in-system updates."
Flash
Block/page optimized EEPROMIn-circuit erase/program with block/page granularity; common for firmware storage."
Common questions about programming ROM
ROM Programming Methods — Quick Recall
Knowledge Check
Which ROM type typically requires ultraviolet light exposure to erase its contents?