21. Controlled Buffer/Inverter Synthesis

Loading simulator…

Solution Explanation

From the behavioral table:

  • When Config = 0, Data Out must be the same as Data In.
  • When Config = 1, Data Out must be the inverse of Data In.
ConfigData InData Out
000
011
101
110

AND, OR, NAND, NOR, XOR, and NOT gates are prohibited. Only XNOR gates can be used.

First use XNOR with logic LOW to invert Config:

X = Config ⊙ 0

Since XNOR with 0 gives the complement:

X = Config'

Now use X with Data In in another XNOR gate:

Data Out = Data In ⊙ X

Check both Config conditions:

ConfigX = Config ⊙ 0Data Out
01Data In ⊙ 1 = Data In
10Data In ⊙ 0 = Data In'

Therefore:

Data Out = Data In ⊙ (Config ⊙ 0)

The first XNOR gate generates Config', and the second XNOR gate produces either the buffered or inverted Data In according to Config.