ROM Memory Demonstration Circuit
Interactive ROM memory demonstration circuit featuring sequential address generation with an 8-bit Program Counter, binary counting display (0-15), and control signal testing for Chip Select (CS) and Output Enable (OE). Ideal for learning memory addressing, tri-state logic, and active-LOW control signals.
Lo que aprenderás
- Recognize ROM as fixed-content addressable memory.
- Distinguish read-only from read-write memory by use case.
- Identify ROM types: mask, PROM, EPROM, EEPROM, Flash.
- Apply ROM for boot code, firmware, and lookup tables.
- Understand the decoder + transistor-matrix architecture of mask ROM.
Cómo funciona
ROM (Read-Only Memory) stores data permanently — you can read it but not change it. Unlike RAM, ROM contents are fixed at manufacturing or programming time and persist without power.
This ROM demo has an address input and a data output. Each address corresponds to a fixed data value, hardcoded in the circuit: - Address 0 → data 0xAB (or whatever pattern) - Address 1 → data 0x55 - Address 2 → data 0xFF - ...
The internal structure: a decoder + an OR-array (or a transistor matrix). The address decodes into one-hot row select; each row's transistors are connected to specific output bit lines according to the stored value. Reading address i activates row i, which drives its hardcoded pattern onto the output.
ROM types: - Mask ROM: Programmed at chip fabrication — cheapest in volume. - PROM: Programmed once by the user via fuse blowing. - EPROM: Erasable via UV light, then re-programmable. - EEPROM: Erasable electrically — flexible but slower to write. - Flash: Block-erasable EEPROM — modern, ubiquitous.
ROM is used wherever fixed data must survive power-off: boot code, firmware, lookup tables for calculators and oscillators, character generators in video chips. The 6502 NES game cartridges are essentially PROMs with the game code burned in.
Pruébalo paso a paso
Configura las entradas en la simulación de arriba, lee qué debería suceder y verifícalo.
- 1Address = 00Esperado:
Data = ROM[0]Lo que verás: Set address to 0 — ROM outputs whatever is stored at index 0. Try cycling addresses to see different values. - 2Address = 01Esperado:
Data = ROM[1]Lo que verás: Address 1 — different stored value emerges. Each address has its own hardcoded data pattern. - 3Address = 10Esperado:
Data = ROM[2]Lo que verás: Address 2 — yet another value. The ROM is essentially a fixed lookup table. - 4Address = 11Esperado:
Data = ROM[3]Lo que verás: Last address. Cycling through 0..3 reveals all stored values; no clock needed because ROM is purely combinational on read.
Componentes utilizados
Aplicaciones en el mundo real
Boot ROM. Every computer's BIOS or firmware boots from ROM — the first instructions executed after power-on are stored in non-volatile memory.
Microcontroller program memory. Firmware in a microcontroller is stored in on-chip Flash ROM, allowing code to persist across power cycles.
Character generators in displays. Bitmap fonts for console displays were classically stored in mask ROMs that mapped (character, row) addresses to row pixel patterns.
Game cartridges. Console game cartridges from the 1980s and 1990s contained ROM chips with game code, music data, and graphics tiles.
Lookup tables for trig functions. DSP and calculator ICs include ROM tables of sin, cos, log, etc., for fast evaluation without runtime computation.