W celu uzyskania licznika modulo 5 należy w przedstawionym układzie do bramki AND podać sygnały

A. \(x = Q_1,\ y = Q_2\)
B. \(x = Q_0,\ y = Q_2\)
C. \(x = Q_1,\ y = \overline{Q_2}\)
D. \(x = Q_0,\ y = \overline{Q_1}\)
Pytanie z egzaminu CKE, czerwiec 2017 (arkusz E.20-X-17.06).
W liczniku modulo 5 trzeba wykryć stan odpowiadający liczbie 5, czyli binarnie 101. Dla wyjść licznika oznaczonych jako Q₂, Q₁, Q₀ ten stan ma postać: Q₂ = 1, Q₁ = 0, Q₀ = 1. Jeżeli do bramki AND podamy Q₀ oraz Q₂, to jej wyjście przyjmie stan wysoki właśnie wtedy, gdy licznik dojdzie do 101. W typowym układzie taki sygnał podaje się na wejście zerujące, najczęściej RESET lub CLR, i licznik wraca do 000. Dzięki temu układ zlicza kolejno 0, 1, 2, 3, 4, a stan 5 pojawia się tylko na bardzo krótki czas potrzebny do wyzerowania. To jest właśnie licznik modulo 5, bo ma pięć użytecznych stanów. Moim zdaniem to jeden z najprostszych sposobów budowania liczników o nietypowym module z klasycznych przerzutników lub gotowych układów licznikowych. W praktyce trzeba jeszcze pamiętać o opóźnieniach propagacji bramek i przerzutników, bo przy zerowaniu asynchronicznym mogą pojawić się krótkie impulsy zakłócające. Dobra praktyka branżowa jest taka, żeby analizować tabelę stanów, sprawdzić, jaki stan ma zostać wykryty, i dopiero potem dobierać sygnały do bramki dekodującej. W tym przypadku wybór x = Q₀, y = Q₂ jest więc poprawny, bo wykrywa pierwszy niepożądany stan po 4, czyli 5 = 101₂.
W takim zadaniu najważniejsze jest nie samo dopasowanie dwóch sygnałów do bramki AND, tylko zrozumienie, jaki stan licznika ma zostać wykryty. Licznik modulo 5 powinien przechodzić przez pięć stanów: 000, 001, 010, 011 i 100, a następnie zostać wyzerowany przy próbie wejścia w stan 101. W zapisie binarnym liczba 5 to 101₂, więc aktywne są bity Q₂ oraz Q₀, a bit Q₁ ma wartość 0. Ponieważ w podanym układzie do bramki AND doprowadzane są tylko dwa sygnały, najprościej dekoduje się właśnie Q₀ i Q₂. Taki sygnał pojawi się przy stanie 101 i spowoduje skasowanie licznika. Wybieranie kombinacji z zanegowanym Q₁ prowadzi do zbyt wczesnego zadziałania, bo warunek Q₀ = 1 oraz Q₁ = 0 jest spełniony już dla stanu 001. Licznik zostałby więc skasowany niemal od razu, zamiast dojść do 4. Podanie Q₁ i Q₂ wykrywa stan 110, czyli liczbę 6, więc układ zachowywałby się bardziej jak licznik modulo 6, o ile zerowanie nastąpiłoby dopiero wtedy. Z kolei połączenie Q₁ z zanegowanym Q₂ reaguje już przy stanie 010, czyli przy liczbie 2, co całkiem psuje wymagany cykl zliczania. Typowy błąd myślowy polega na tym, że ktoś patrzy tylko na to, gdzie pojawiają się jedynki, ale nie sprawdza kolejności stanów licznika. Z mojego doświadczenia najlepiej rozpisać sobie małą tabelkę od 000 do 111 i zaznaczyć stan, który ma być pierwszym stanem niedozwolonym. Wtedy od razu widać, że dla modulo 5 trzeba wykryć 101, a więc użyć Q₀ oraz Q₂.