FLASH RAM etc. Designing with ROM and PLA.

Comprehensive study notes, diagrams, and exam preparation for FLASH RAM etc. Designing with ROM and PLA..

FLASH RAM etc. Designing with ROM and PLA

Definition

ROM (Read Only Memory) is a non-volatile memory device used to store fixed data or logic tables that can be read repeatedly but are not normally changed during operation. PLA (Programmable Logic Array) is a programmable digital logic device that implements logic functions using a programmable AND array followed by a programmable OR array. Flash memory is a form of electrically erasable non-volatile memory that can be erased and reprogrammed in blocks, commonly used for storing firmware and configuration data.

In digital design, ROM and PLA are used to implement combinational logic by storing truth tables or minimized logic expressions. A ROM behaves like a table that maps inputs to outputs. A PLA behaves like a customizable gate network that can realize Boolean expressions efficiently. Flash memory is related because it provides reprogrammable storage for code and data in modern systems.


Main Content

1. ROM-Based Design

Concept and structure

  • A ROM is organized as a set of address lines and data output lines. The input variables act as address bits, and the output values stored at each address represent the desired logic result.
  • For an input of n variables, a ROM can represent all 2^n input combinations, making it suitable for implementing any combinational logic function.

How ROM implements logic

  • To implement a Boolean function, each possible input combination is assigned an output pattern.
  • If the input combination corresponds to a minterm for which the function is 1, the ROM stores a 1 at that address; otherwise it stores 0.
  • Multiple outputs can be stored simultaneously, so one ROM can implement several logic functions at once.

Example:
Suppose inputs are A, B and output is F = A + B. The truth table is:

A B F
0 0 0
0 1 1
1 0 1
1 1 1

A ROM can store 0, 1, 1, 1 for addresses 00, 01, 10, 11.

ASCII representation for ROM logic implementation:

Inputs (Address)
A, B ---> Decoder ---> Memory cells ---> Output F
00 -----------------> 0
01 -----------------> 1
10 -----------------> 1
11 -----------------> 1

ROM-based design is especially useful when the function is complex, when many outputs are needed, or when speed and simplicity matter more than minimizing gate count.


2. PLA-Based Design

Basic organization

  • A PLA contains a programmable AND plane and a programmable OR plane.
  • Input variables and their complements are fed into the AND plane, where product terms are generated.
  • These product terms are then selected and combined in the OR plane to produce the required outputs.

Why PLA is efficient

  • In many real logic functions, several outputs share common product terms.
  • A PLA allows such sharing, reducing redundancy compared to implementing each function separately.
  • It is more flexible than a fixed ROM when the number of required product terms is smaller than the total number of minterms.

Example:
Consider:

  • F1 = A'B + AC
  • F2 = A'B + BC

A PLA can generate the shared product term A'B once and use it in both outputs, reducing hardware.

ASCII representation for PLA structure:

Inputs -> AND plane -> Product terms -> OR plane -> Outputs
A, A'  -> [programmable] -> P1, P2, P3 -> [programmable] -> F1, F2
B, B'
C, C'

Importance in design:

  • PLA is widely used in combinational logic realization.
  • It is especially useful when logic expressions are already minimized in sum-of-products form.
  • It saves area when many outputs share common terms.

3. Flash Memory and Non-Volatile Programmable Storage

What flash memory is

  • Flash memory is a type of non-volatile memory that retains information without power.
  • It can be electrically erased and rewritten, unlike mask ROM which is fixed after fabrication.
  • Flash is usually erased in blocks or sectors rather than one bit at a time.

Role in hardware design

  • Flash stores firmware, boot code, lookup tables, and configuration data in embedded systems.
  • It is used in microcontrollers, USB drives, SSDs, routers, and consumer electronics.
  • In many systems, flash acts as the permanent storage for program code that is loaded at startup.

Example use case:
A microcontroller in a washing machine stores its control program in flash memory. When power returns after an outage, the machine can restart using the saved program without needing reprogramming.

Relationship to ROM and PLA design:

  • Flash can replace traditional ROM in systems that require reprogrammability.
  • While PLA is a logic-implementation device, flash is a data-storage device, but both are important in programmable digital systems.
  • Flash enables design updates, bug fixes, and feature upgrades after manufacturing.

Working / Process

1. Choose the required logic or data function

  • Identify whether the system needs fixed data storage, programmable logic, or reconfigurable firmware.
  • For combinational logic, write the truth table or Boolean expressions.
  • For embedded storage, determine the code or data patterns to be retained.

2. Map the function into ROM, PLA, or flash form

  • For ROM, convert the truth table directly into stored output words at each address.
  • For PLA, minimize the Boolean equations into sum-of-products and identify common product terms.
  • For flash, organize the firmware or configuration data into blocks/pages suitable for writing and erasing.

3. Program and verify the implementation

  • In ROM design, fill the memory contents according to the truth table and test all addresses.
  • In PLA design, program the AND and OR planes and verify output correctness for all input combinations.
  • In flash systems, write the data, erase if necessary, and verify integrity using readback and checksum methods.

Workflow illustration:

Specification
    ↓
Truth table / Boolean equations / Firmware image
    ↓
ROM / PLA / Flash mapping
    ↓
Programming
    ↓
Testing and verification
    ↓
Final hardware operation

Advantages / Applications

Simplifies digital design

  • Complex combinational circuits can be implemented without building many separate gates.
  • Reduces wiring complexity and design effort.

Improves flexibility and reuse

  • PLA and flash allow changes after manufacturing or during design refinement.
  • ROM can store multiple functions or lookup tables in one device.

Widely used in practical systems

  • ROM is used in address decoding, control units, and lookup tables.
  • PLA is used in custom logic controllers and compact logic realization.
  • Flash is used in BIOS/UEFI, microcontrollers, mobile devices, and embedded systems.

Summary

  • ROM stores fixed output patterns for input combinations.
  • PLA uses programmable AND and OR planes to realize logic functions.
  • Flash memory is reprogrammable non-volatile storage used in modern digital systems.
  • Important terms to remember
  • ROM
  • PLA
  • Flash memory
  • Non-volatile storage
  • Truth table
  • Sum-of-products