Skip to main content

ROM and implementing two functions

Short answer

ROM is non-volatile memory with a fixed AND (decoder) and programmable OR array. For F1 and F2, use an 8×2 ROM: the 3-to-8 decoder generates minterms; connect m2,m3,m5,m6 to F1 and m0,m1,m5 to F2.

What is ROM? Implement given functions F1(A,B,C) = Σ(2,3,5,6) and F2(A,B,C) = Σ(0,1,5) using ROM.

ROM (Read Only Memory) is a non-volatile memory whose contents are fixed once programmed and can only be read in normal operation. As a logic device it is a fixed AND array (decoder) that generates all minterms of the address inputs, followed by a programmable OR array.

F1 = Σ(2,3,5,6), F2 = Σ(0,1,5) using ROM

Three inputs and two outputs, so an 8 × 2 ROM (3-to-8 decoder + 2 OR gates).

Address ABCABCMintermF1F_1F2F_2
000m0m_001
001m1m_101
010m2m_210
011m3m_310
100m4m_400
101m5m_511
110m6m_610
111m7m_700
F1=m2+m3+m5+m6,F2=m0+m1+m5F_1 = m_2 + m_3 + m_5 + m_6, \qquad F_2 = m_0 + m_1 + m_5
 A B C
 | | |
[3-to-8 decoder]
 m0 m1 m2 m3 m4 m5 m6 m7
  .  .  x  x  .  x  x  .  --> OR1 --> F1
  x  x  .  .  .  x  .  .  --> OR2 --> F2
 (x = connection kept, . = removed)

When an address is applied, the decoder makes one minterm line high; each output is 1 if that line is connected to its OR gate. Example: ABC=101ABC = 101 activates m5m_5, which is connected to both OR gates, so F1=F2=1F_1 = F_2 = 1.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 4 questions →