Siksha Sarovar

Siksha Sarovar (sikshasarovar.com) is a free educational web application that helps students in India learn programming and prepare for academic and competitive exams. The platform offers structured coding courses (C, C++, Python, Java, HTML, CSS, PHP, Power BI, AI, Machine Learning, Data Science), complete university curriculum notes for BCA/MCA students with previous year question papers, Class 10 and Class 12 CBSE/HBSE school notes, and dedicated preparation material for SSC, UPSC, Banking, Railway and other government exams. Browsing the site is completely free and requires no account. Users may optionally sign in with Google solely to save their learning progress, quiz scores and personal preferences across devices.

Privacy Policy | Terms of Service | Contact Siksha Sarovar | About Siksha Sarovar

v4.0.9 · PWA
Siksha Sarovar logo
Siksha Sarovar
Your Learning Universe

Siksha Sarovar is a free e-learning platform for coding courses, BCA university notes and competitive exam preparation. Optional Google sign-in saves your learning progress across devices.

Initializing knowledge base…
Compiling modules 0%

Unit 1 — Canonical Forms: Minterms, Maxterms, SOP and POS

Lesson 7 of 49 in the free Computer Organization and Architecture notes on Siksha Sarovar, written by Rohit Jangra.

Standard Forms of a Boolean Function

Every Boolean function can be written in exactly two canonical (standard) ways. Both are derived directly from the truth table with zero cleverness required.

1. Minterms and Maxterms

For n variables there are 2^n minterms and 2^n maxterms.

RowABCMinterm m(i)Maxterm M(i)
0000A'B'C' = m0A + B + C = M0
1001A'B'C = m1A + B + C' = M1
2010A'BC' = m2A + B' + C = M2
3011A'BC = m3A + B' + C' = M3
4100AB'C' = m4A' + B + C = M4
5101AB'C = m5A' + B + C' = M5
6110ABC' = m6A' + B' + C = M6
7111ABC = m7A' + B' + C' = M7

The two rules that generate the table:

   MINTERM (product term):  variable = 1  ->  write it plain (A)
                            variable = 0  ->  write it complemented (A')
                            m(i) equals 1 for EXACTLY ONE input combination.

   MAXTERM (sum term):      variable = 0  ->  write it plain (A)
                            variable = 1  ->  write it complemented (A')
                            M(i) equals 0 for EXACTLY ONE input combination.

   Relationship:   M(i) = m(i)'      and     m(i) = M(i)'

2. Building Both Forms from a Truth Table

Given function:

ABCF
0000
0011
0100
0111
1001
1010
1101
1111

Canonical SOP — collect the rows where F = 1

   Rows 1, 3, 4, 6, 7

   F = A'B'C + A'BC + AB'C' + ABC' + ABC
   F = Σm(1, 3, 4, 6, 7)

Canonical POS — collect the rows where F = 0

   Rows 0, 2, 5

   F = (A + B + C)(A + B' + C)(A' + B + C')
   F = ΠM(0, 2, 5)
The complement relationship: the minterm numbers and the maxterm numbers together always cover 0…2^n − 1 with no overlap. Here {1,3,4,6,7} ∪ {0,2,5} = {0…7}. ✓ Therefore: F = Σm(1,3,4,6,7) = ΠM(0,2,5) and F' = Σm(0,2,5) = ΠM(1,3,4,6,7).

3. Converting Between the Forms

   Given  F = Σm(0, 2, 4, 5)  for 3 variables:

   Missing indices are 1, 3, 6, 7
   Therefore  F  = ΠM(1, 3, 6, 7)
   And        F' = Σm(1, 3, 6, 7) = ΠM(0, 2, 4, 5)

4. Standard (Non-Canonical) Forms

TermMeaningExample
Canonical SOPEvery product term contains all n variablesAB'C + ABC
Standard SOPProduct terms may have fewer literalsAC + B
Canonical POSEvery sum term contains all n variables(A+B+C)(A+B'+C)
Standard POSSum terms may have fewer literals(A+C)(B)

Expanding a standard form into canonical form

   F = A + B'C          (3 variables A, B, C)

   Term A       : multiply by (B + B') and (C + C')
                = A(B + B')(C + C')
                = ABC + ABC' + AB'C + AB'C'
                = m7 + m6 + m5 + m4

   Term B'C     : multiply by (A + A')
                = (A + A')B'C = AB'C + A'B'C
                = m5 + m1

   F = Σm(1, 4, 5, 6, 7)      (m5 appears twice; A + A = A, so list it once)

Expanding a POS term

   F = A(B' + C)          (3 variables)

   Term A     : A + B.B'  ... use  X = X + Y.Y'
              = (A + B + C)(A + B + C')(A + B' + C)(A + B' + C')
              = M0.M1.M2.M3

   Term B'+C  : B' + C + A.A' = (A + B' + C)(A' + B' + C) = M2.M6

   F = ΠM(0, 1, 2, 3, 6)

5. Circuit Realisation

FormGate structureLevels
SOPAND gates feeding one OR gate2 (+1 for inverters)
POSOR gates feeding one AND gate2 (+1 for inverters)
SOP → NAND-NANDAll NAND2
POS → NOR-NORAll NOR2
   F = AB + C'D     ->   NAND-NAND:  F = ((AB)' . (C'D)')'
   F = (A+B)(C'+D)  ->   NOR-NOR:    F = ((A+B)' + (C'+D)')'

6. Which Form Should You Choose?

   Count the 1s and the 0s in the truth table.

   Few 1s   ->  SOP is shorter  (fewer minterms to write)
   Few 0s   ->  POS is shorter  (fewer maxterms to write)

For the function in section 2 there are five 1s and three 0s, so the POS form is more compact here — three sum terms versus five product terms.

7. Practice

   1. F(A,B,C) = Σm(0,1,2,4)  ->  write POS.
      Missing: 3, 5, 6, 7   ->   F = ΠM(3,5,6,7)

   2. F(A,B,C,D) = ΠM(0,3,5,9,12)  ->  write SOP.
      Missing indices from 0..15: 1,2,4,6,7,8,10,11,13,14,15
      F = Σm(1,2,4,6,7,8,10,11,13,14,15)

   3. Expand F = AB + A'C to canonical SOP (3 variables).
      AB(C + C')  = ABC + ABC'      = m7 + m6
      A'C(B + B') = A'BC + A'B'C    = m3 + m1
      F = Σm(1, 3, 6, 7)

Canonical forms are always correct but almost never minimal. The K-map, next, turns any Σm list into the minimum expression by inspection.