Aby "zasymulować funkcję z tabeli prawdy" przy użyciu jednego typu bramek, wybrany typ musi być funkcjonalnie zupełny (tzw. bramka uniwersalna). Oznacza to, że z tego jednego typu da się zbudować zestaw operacji pozwalający skonstruować dowolną funkcję boolowską, czyli w praktyce: potrafimy uzyskać negację oraz złożyć ją z innymi operacjami.
NAND spełnia ten warunek. Kluczowa własność: da się z niego zrobić NOT, łącząc wejścia: NAND(A,A) = ¬A. Skoro mamy negację, możemy budować dalej inne operacje. Przykładowo:
- AND: A AND B = ¬(A NAND B) = (A NAND B) NAND (A NAND B)
- OR (z praw de Morgana): A OR B = ¬(¬A AND ¬B). Negacje ¬A i ¬B uzyskujemy z NAND(A,A) oraz NAND(B,B), a następnie składamy je NAND-ami.
Skoro z NAND potrafimy uzyskać NOT, AND i OR, to możemy zbudować dowolny układ kombinacyjny odpowiadający zadanej tabeli prawdy (w tym funkcję F(A,B,C)). Dlatego odpowiedź o realizacji wyłącznie bramkami NAND jest poprawna.
Dlaczego pozostałe odpowiedzi są błędne?
- Tylko OR: same OR nie pozwalają w ogólności otrzymać negacji sygnału ani funkcji, które wymagają inwersji; zestaw {OR} nie jest funkcjonalnie zupełny.
- Tylko AND: analogicznie, {AND} bez negacji nie jest funkcjonalnie zupełny, więc nie zrealizuje dowolnej funkcji z tabeli prawdy.
- "Nie jest możliwe": jest możliwe, bo istnieją bramki uniwersalne (np. NAND), z których da się złożyć dowolną funkcję.
Wskazówka egzaminacyjna: jeśli w odpowiedziach pojawia się NAND lub NOR, a pytanie dotyczy realizacji logiki jednym typem bramki, to zwykle sprawdzana jest właśnie zupełność funkcjonalna.