---
title: "One Time Programmable ROM operation"
subject: "Embedded System"
chapter: 4
key: "semester_6/embedded_system:otp-rom-storing"
source: https://www.bctengineer.com/q/semester_6/embedded_system/otp-rom-storing
site: BCT Engineering
---

# One Time Programmable ROM operation

Embedded System · Chapter 4: Memory

- Asked in: 2075 Baisakh, 2+2 marks; 2078 Chaitra (asked 2 times)
- Video: [One Time Programmable Memory](https://www.youtube.com/watch?v=PeoiZECN2sI) — Sai Vidya Institute of Technology - SVIT
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_6/embedded_system/otp-rom-storing
- Whole chapter: https://www.bctengineer.com/md/semester_6/embedded_system/chapter-4

## Question

Explain the operation of storing data in One Time Programmable ROM. Why can't it be reprogrammed?

## Short answer

An OTP ROM stores data by selectively blowing fuse links at crosspoints using high voltage pulses. A blown fuse creates a permanent open circuit, changing the stored logic value. Since the fuse is physically destroyed, the change is irreversible, so the memory cannot be reprogrammed.

## Answer

An **OTP ROM (One-Time Programmable ROM, or PROM)** is a ROM that the user can program once after manufacture, with a special device called a PROM programmer.

#### Operation of storing data
- The ROM is made with a transistor (or diode) at every crosspoint of a word line and bit line, each connected in series with a **fuse link** (typically nichrome or polysilicon). Blank, every fuse is intact, so every cell stores 1 (or 0 depending on design).
- To store data, the PROM programmer applies a high current/voltage pulse (about 12-21 V) to the selected word and bit lines of every cell that must hold the opposite value.
- The pulse blows (melts) the fuse, opening that connection permanently. A cell with a blown fuse reads one logic value, and an intact cell reads the other.
- The programmer repeats this for each location until the pattern is stored.

```text
 word line --+---------+
             |         |
          [fuse]   [fuse blown]
             |         X
         transistor  transistor --> bit line
   cell = 1 (intact)    cell = 0 (blown)
```
(In an anti-fuse OTP, a programming voltage creates a conducting link instead.)

#### Why it cannot be reprogrammed
Blowing a fuse is a physical, irreversible change: the metal link is destroyed and cannot be rebuilt. A cell can only change from the "unprogrammed" value to the "programmed" value, never back. Therefore the contents are permanent, and a mistake means discarding the chip. This permanence makes it suitable for stable, low-volume production code.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. In an OTP (PROM) ROM, what is placed in series with the transistor/diode at each crosspoint?
   A. A fuse link
   B. A floating gate
   C. A capacitor
   D. A flip-flop
   Answer: A. Each cell has a fuse link (nichrome or polysilicon) in series with its transistor or diode; a blank chip has every fuse intact. (Key point: Fuse link at each cell)

2. How does a PROM programmer store a value opposite to the blank value in a cell?
   A. Exposes the cell to UV light
   B. Applies a high current/voltage pulse that blows the fuse
   C. Charges a capacitor in the cell
   D. Applies a low-voltage pulse that reverses the fuse
   Answer: B. A high current/voltage pulse (about 12-21 V) melts the fuse, opening the connection so the cell reads the opposite logic value. (Key point: Programming by blowing fuses)

3. Why can an OTP ROM not be reprogrammed?
   A. The programmer lacks enough voltage
   B. The quartz window is missing
   C. Blowing a fuse is an irreversible physical change that cannot be rebuilt
   D. The data is held in volatile capacitors
   Answer: C. The metal link is destroyed when blown, so a cell can only go from unprogrammed to programmed value, never back. (Key point: Why OTP cannot be reprogrammed)

## Related in Embedded System

- [Count number of 1s in ROM data](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3A8051-count-ones-asm) — Embedded System, chapter 9, asked 2×
- [Count number of 0s in ROM data](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3A8051-count-zeros-asm) — Embedded System, chapter 9, asked 2×
- [UV-EPROM storing and erasing](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Auv-eprom-store-erase) — Embedded System, chapter 4
- [Datapath operation and instruction cycles](https://www.bctengineer.com/question.md?key=semester_6%2Fembedded_system%3Adatapath-operation-instruction-cycles) — Embedded System, chapter 2

## Related in other subjects

- [ROM and BJT memory cell storing 1 or 0](https://www.bctengineer.com/question.md?key=semester_3%2Fdigital_logic%3Arom-bjt-memory-cell) — Digital Logic, chapter 4
- [One-way vs two-way drainage time](https://www.bctengineer.com/question.md?key=semester_4%2Fsoil_mechanics%3Aone-way-two-way-drainage-time) — Soil Mechanics, chapter 9
- [Data logger block diagram and operation](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Adl-block) — Instrumentation II, chapter 5, asked 6×
- [TST time slots for non-blocking operation](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Atst-time-slots-numerical) — Telecommunications, chapter 4
