Skip to main content

ROM types and 4x3 ROM design

Short answer

ROM is non-volatile memory that retains data without power. Types include mask ROM (factory-programmed, permanent), PROM (fuse-based, one-time programmable), EPROM (UV-erasable), EEPROM (electrically byte-erasable), and Flash (block-erasable). A 4×3 ROM uses a 2-to-4 decoder to select a word line; three OR gates form the output bits, with connections at crosspoints defining stored words.

Describe ROM and introduce its types in detail. Sketch the internal design of a 4 × 3 ROM.

ROM (Read-Only Memory) is a non-volatile memory that keeps its stored data without power. In the system it is normally only read, and written rarely or never; it holds fixed programs such as firmware and boot code.

Types of ROM

TypeProgrammingErasableNotes
Mask-programmed ROMAt the factory using a maskNoCheapest for large volumes; high NRE cost, contents permanent
PROM / OTP ROMBy the user, once, with a programmer (blowing fuses)NoGood for small volumes and prototypes
EPROMBy the user with a programmerYes, by UV light (whole chip, ~20 min)Floating-gate transistor, quartz window
EEPROMIn-system, electricallyYes, per byte, electricallySlower writes, limited cycles; used for settings
FlashIn-system, electricallyYes, block-wiseHigh density, cheap, fast reads; used for firmware, USB drives

Internal design of a 4 x 3 ROM

A 4 x 3 ROM stores 4 words of 3 bits. It needs 2 address lines (A1, A0), a 2-to-4 decoder, 4 word lines and one OR gate per output bit (3 OR gates). A 1 is stored wherever a word line is connected to an OR gate input.

Example contents: w0 = 101, w1 = 011, w2 = 110, w3 = 001.

                         D2 col  D1 col  D0 col
          +---------+      |       |       |
 A1 ----->|         |--w0--X-------+-------X----   w0 = 101
          | 2-to-4  |--w1--+-------X-------X----   w1 = 011
 A0 ----->| decoder |--w2--X-------X-------+----   w2 = 110
          |         |--w3--+-------+-------X----   w3 = 001
          +---------+      |       |       |
                         [OR]    [OR]    [OR]
                           |       |       |
                           D2      D1      D0

 X = connection (bit 1);  + = crossing with no connection (bit 0)

So D2 = w0 + w2, D1 = w1 + w2 and D0 = w0 + w1 + w3. Each connection is made by a transistor or fuse at the crosspoint. When address A1A0 is applied, the decoder activates one word line and the three OR outputs give the stored word.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Embedded System chapter 4 questions →