Układ jest połączeniem kaskadowym dwóch bramek: najpierw NOR z wejściami a i b, a następnie NAND, do której wchodzi wyjście NOR oraz sygnał sterujący s. Kluczem jest poprawne uwzględnienie negacji na wyjściu obu bramek.
Najpierw opiszmy pierwszy stopień. Bramka NOR realizuje negację alternatywy, więc na jej wyjściu otrzymujemy:
x = NOT(a+b)
Drugi stopień to bramka NAND, czyli negacja koniunkcji. Jej wyjście (czyli wyjście całego układu) wynosi:
y = NOT(x·s) = NOT(NOT(a+b)·s)
Następnie analizujemy dwa stany sterowania:
- Gdy s=0, wtedy NOT(a+b)·0 = 0 (bo cokolwiek AND 0 daje 0). NAND neguje tę wartość, więc y = NOT(0) = 1. To oznacza, że sterowanie w stanie 0 wymusza stałą jedynkę na wyjściu, niezależnie od a i b.
- Gdy s=1, wtedy NOT(a+b)·1 = NOT(a+b). Po zanegowaniu przez NAND dostajemy y = NOT(NOT(a+b)), czyli podwójną negację. Podwójna negacja usuwa się, więc y = a+b.
Dlatego poprawna odpowiedź musi zawierać warunek: dla s=0: y=1 oraz dla s=1: y=a+b.
Dlaczego pozostałe propozycje są błędne? Warianty z y=0 dla s=0 wynikają z pominięcia negacji w NAND (błędne myślenie "AND z zerem daje zero, więc na wyjściu też zero"). Z kolei warianty z a·b mylą alternatywę z koniunkcją i ignorują fakt, że pierwszy stopień to NOR, a nie OR. W praktyce to typowy błąd rozpoznania funkcji bramki po symbolu.