|
Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie
|
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
Bramka sterowana realizuje różne funkcje logiczne na sygnałach wejściowych a i b w zależności od stanu wejść sterujących s1 i s2. Tego typu układy występują w procesorach w tzw. jednostce arytmetyczno-logicznej, która, w zależności od odczytanego z pamięci rozkazu, wykonuje różne operacje arytmetyczne lub logiczne.
Na początek zdefiniujmy zachowanie się naszej bramki. Będzie ona posiadała dwa wejścia danych a i b, dwa wejścia wyboru funkcji s1 i s2 oraz jedno wyjście danych y:

Na wyjściu y bramki pojawia się stan logiczny będący funkcją stanów na wejściach a i b. Rodzaj funkcji określają wejścia sterujące s1 i s2 zgodnie z poniższą tabelką (dla funkcji logicznych będziemy używać notacji stosowanej w elektronice, ponieważ jest bardziej czytelna):
| s1 | s2 | Realizowana funkcja |
Nazwa funkcji |
| 0 | 0 | y = a+b | Alternatywa – OR |
| 0 | 1 | y = ab | Koniunkcja – AND |
| 1 | 0 | y = a ⊕ b | Suma modulo 2 – EXOR |
| 1 | 1 | y = ab | Zanegowana koniunkcja – NAND |
Zadanie rozwiążemy wykorzystując do minimalizacji funkcji logicznej mapy Karnaugha. W tym celu rozpiszmy wszystkie argumenty i wyniku funkcji. Dane zbierzemy w poniższej tabelce:
| a | b | y | s1 | s2 | Funkcja |
| 0 | 0 | 0 | 0 | 0 | OR |
| 0 | 1 | 1 | 0 | 0 | |
| 1 | 0 | 1 | 0 | 0 | |
| 1 | 1 | 1 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 1 | AND |
| 0 | 1 | 0 | 0 | 1 | |
| 1 | 0 | 0 | 0 | 1 | |
| 1 | 1 | 1 | 0 | 1 | |
| 0 | 0 | 0 | 1 | 0 | EX-OR |
| 0 | 1 | 1 | 1 | 0 | |
| 1 | 0 | 1 | 1 | 0 | |
| 1 | 1 | 0 | 1 | 0 | |
| 0 | 0 | 1 | 1 | 1 | NAND |
| 0 | 1 | 1 | 1 | 1 | |
| 1 | 0 | 1 | 1 | 1 | |
| 1 | 1 | 0 | 1 | 1 |
Na podstawie tych danych tworzymy mapę Karnaugha. Z sygnałów wejściowych tworzymy dwie grupy współrzędnych mapy: ab oraz s1s2. Pierwsze współrzędne zapisujemy w kodzie Graya po lewej stronie mapy, drugie współrzędne zapisujemy również w kodzie Graya u góry mapy:

Współrzędne wyznaczają pola na mapie Karnaugha. W polach wpisujemy wartości funkcji y odczytane z tabelki:

Pola zawierające 1 łączymy w prostokątne obszary - pamiętamy, iż wymiary tych obszarów muszą być potęgami liczby 2 (1,2,4,8...):

Otrzymaliśmy 6 obszarów zawierających po dwa pola mapy. Rozpiszmy funkcje logiczne dla poszczególnych obszarów.
Otrzymana funkcja nie jest jeszcze dla nas wygodna. Funkcje przekształcimy, tak aby można było w niej zastosować tylko bramki uniwersalne NAND. Najpierw, stosując zasady Algebry Boole'a, dokonamy kilku uproszczeń:
Wyrażenia w nawiasach negujemy podwójnie (nie zmienia to wartości logicznej). Zgodnie z prawami DeMorgana otrzymamy w nawiasach funkcję NAND:
Całość funkcji ponownie poddajemy podwójnej negacji, aby pozbyć się alternatyw:
Wynikowa funkcja zawiera jedynie negacje koniunkcji - zatem da się przedstawić w postaci sieci zbudowanej tylko z bramek NAND. Teraz krok po kroku pokażemy, jak na podstawie wzoru funkcji otrzymać jej sieć logiczną z bramek NAND.
Rozpoczynamy od sygnałów wejściowych: a, b, s1 i s2:
We wzorze funkcji sygnały wejściowe występują w postaci normalnej i zanegowanej. Negacji dokonamy za pomocą bramek NAND w konfiguracji bramki NOT:
Dołączenie wejścia bramki poprzez opornik 1k do napięcia zasilania Vcc jest równoważne podaniu stanu 1 na to wejście. W takiej konfiguracji na wyjściu bramki panuje stan przeciwny do stanu drugiego jej wejścia, czyli otrzymujemy negator NOT.
Teraz realizujemy funkcje występujące wewnątrz wzoru:
Sieci logiczne możemy w prosty sposób testować za pomocą programu w języku C++ (lub dowolnym innym). Symulacja polega na podaniu na wejścia sieci kolejnych stanów logicznych, a następnie badaniu stanów na wyjściu. Jeśli będą zgodne z założeniami, to sieć jest poprawna logicznie. Pokażemy teraz, jak dokonać takiej symulacji dla naszej sieci.
Numerujemy bramki w sieci. Numerację wykonuje się w kolejności przetwarzania sygnałów przez poszczególne bramki.
W następnym kroku określamy sieć połączeń, tzn. z czym łączą się wejścia poszczególnych bramek oraz skąd będzie pobierany sygnał wyjściowy. Wyjścia bramek oznaczymy jako Yn, gdzie n jest numerem bramki. Wszystkie bramki wykonują funkcję NAND:
Na wejście sieci podajemy sygnały zgodnie z tabelką:
Na wyjściu powinniśmy otrzymać stany y, jeśli zaprojektowana przez nas sieć działa prawidłowo. Sprawdźmy, program jest następujący
Wartości generowane przez program zgadzają się z tabelką, zatem możemy na podstawie wyprowadzonej funkcji zbudować sieć z bramek NAND. Poniżej znajduje się symulacja tej sieci. Stany wejść zmieniasz klikając w kwadratowe pola. Stan wyjścia obrazuje pole okrągłe.
| Symulator |
Obciążenia wnoszone przez poszczególne wejścia sieci:
| a = 2 b = 2 s1 = 3 s2 = 2 |
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.