logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Minimalizacja funkcji metodą Karnaugha krok po kroku.

Snoffy 01 Maj 2009 14:38 24689 14
REKLAMA
  • #1 6478196
    Snoffy
    Poziom 10  
    Posty: 10
    Ocena: 1
    Muszę zaprojektować na bramkach wyświetlacz siedmiosegmentowy. Sprowadziłem tablice prawdy do tablic Karnaugha, ale nie wiem co dalej. Prosiłbym o zminimalizowanie podanych tablic metodą sum i iloczynów i opis krok po kroku co skąd się bierze, gdyż nie mam zielonego pojęcia jak się do tego zabrać. Skleiłem kratki sąsiadujące, wydaje mi się że najbardziej optymalnie. Jeśli nie to proszę mnie poprawić.

    Minimalizacja funkcji metodą Karnaugha krok po kroku.
  • REKLAMA
  • Pomocny post
    #2 6480130
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Minimalizacja funkcji metodą Karnaugha krok po kroku.


    00|01|03|02
    ----------------
    04|05|07|06
    ----------------
    12|13|15|14
    ----------------
    08|09|11|10


    $$SGA=(\overline{C}+\overline{D})*(\overline{B}+\overline{D})*(A+B+\overline{C})$$

    $$SGE=\overline{A}*(\overline{C}+A)*(\overline{B}+\overline{D})$$

    W ostatnim, grupa {3,2} sąsiaduje przez krawędź z grupą {11,10}

    $$SGG=D+C*\overline{B}+B*\overline{A}+\overline{C}*B$$

    Minimalizacja funkcji metodą Karnaugha krok po kroku.
  • REKLAMA
  • #3 6481072
    Snoffy
    Poziom 10  
    Posty: 10
    Ocena: 1
    Dziękuje, ale niestety dalej tego nie rozumiem. Proszę o wyznaczenie jeszcze siatek z tego obrazka. Co robi się z tym zerem które zostaje samo w segmencie D? Wypisuje się dla niego wszystkie 4 zmienne czy po prostu się je omija?

    Rozumiem że dla każdej jedynki/zera wypisuje się wszystkie 4 zmienne a później eliminuje się przeciwne i zostaje skrócony wzór, mam rację?

    Cytat:
    00|01|03|02
    ----------------
    04|05|07|06
    ----------------
    12|13|15|14
    ----------------
    08|09|11|10


    Te numerki oznaczają numeracje dziesiętną pól z kodu BCD?
    Czy może służą do czegoś innego jeszcze?

    Minimalizacja funkcji metodą Karnaugha krok po kroku.

    Bardziej optymalne jest rozwiązanie 1 czy 2? Rozumiem że w 2 przypadku użyte będzie mniej bramek, ale czy nie przeszkadza w czymś to że jedno pole jest w 3 zakreśleniach? Jest to jakoś powiązane z możliwością wystąpienia hazardu?

    Minimalizacja funkcji metodą Karnaugha krok po kroku.
  • REKLAMA
  • Pomocny post
    #4 6481887
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Cytat:
    Co robi się z tym zerem które zostaje samo w segmencie D? Wypisuje się dla niego wszystkie 4 zmienne czy po prostu się je omija?


    Jeżeli masz jedną kratkę, której nie możesz powiązać z innymi, to znaczy, że musisz ją opisać wszystkimi 4 zmiennymi (pełne dekodowanie danego stanu)

    Jeżeli jest pojedyńcza kratka -> 4 zmienne we wzorze
    Jeżeli jest kratka 2 na 1 lub 1 na 2 -> 3 zmienne we wzorze
    Jeżeli jest kratka 1 na 4, 4 na 1 lub 2 na 2 -> 2 zmienne we wzorze
    Jeżeli jest kratka 2 na 4 lub 4 na 2 -> 1 zmienna we wzorze



    Jeżeli tworzysz sumę iloczynów (to masz gdy zaznaczasz grupy jedynkowe w tabelce), to każdy iloczyn odpowiada za jedną lub więcej jedynek w funcji końcowej co oznacza, że dany iloczyn musi dać w wyniku jeden. W tym przypadku używasz negacji zmiennej jeżeli ona wynosi 0.

    Jeżeli tworzysz iloczyn sum, to każda suma odpowiada za jedno lub więcej zer w funcji końcowej co oznacza, że dana suma musi dać w wyniku 0. W tym przypadku używasz negacji zmiennej jeżeli ona wynosi 1.



    Cytat:

    00|01|03|02
    ----------------
    04|05|07|06
    ----------------
    12|13|15|14
    ----------------
    08|09|11|10


    To jest numeracja dziesiętna pól w tabelce Karnaugha 4x4, liczbom tym odpowiadają odpowiednie kombinacje zerojedynkowe zmiennych A,B,C i D.


    Minimalizacja funkcji metodą Karnaugha krok po kroku.

    Przykładowe zaznaczenia dla grup jedynek i odpowiednio zer

    Pole 0 -> kombinacja $$\overline{D}\overline{C}\overline{B}\overline{A}\ \ \$$ <====>$$\ \ \ D+C+B+A$$

    Pola {0, 2} -> kombinacja $$\overline{D}\overline{C}\overline{A}\ \ \ $$<====>$$\ \ \ D+C+A$$

    Pola {0,2,8,10} -> kombinacja $$\overline{C}\overline{A}\ \ \ $$<====>$$\ \ \ C+A$$

    Pola {0,1,3,2,8,9,11,10} -> kombinacja $$\overline{C}\ \ \ $$<====>$$\ \ \ C$$

    Pola {0,4,12,8,2,6,14,10} -> kombinacja $$\overline{A}\ \ \ $$<====>$$\ \ \ A$$



    Bardziej optymalne jest rozwiązanie 1 czy 2?

    Minimalizacja funkcji metodą Karnaugha krok po kroku.

    Rozwiązanie najlepsze to takie, które wykorzystuje do realizacji najmniej bramek czyli mamy najlepszą minimalizację.
    Zasada zakreślania jest taka, że:

    ZAKREŚLASZ ZAWSZE NAJWIĘKSZY MOŻLIWY OBSZAR JEDYNEK LUB ZER, BO DAJE TO W WYNIKU NAJMNIEJSZĄ ILOŚC ZMIENNYCH KONIECZNYCH DO OPISANIA TEGO OBSZARU.

    Zaczynasz zaznaczanie od największych grup a potem co raz mniejsze

    Cytat:
    Rozumiem że w 2 przypadku użyte będzie mniej bramek, ale czy nie przeszkadza w czymś to że jedno pole jest w 3 zakreśleniach?


    Ne przeszkadza, dane pole może być objęte dowolną ilością grup.

    Cytat:
    Jest to jakoś powiązane z możliwością wystąpienia hazardu?


    Hazard może wystąpić gdy zaznaczysz za małe grupy. Jeżeli dwie grupy przylegają do siebie w tabelce, to hazard może wystąpić, gdy będą się zmieniać dwie zmienne jednocześnie. Ze względu na nieidealność elementów rzeczywistych ta "jednoczesna" zmiana jest lekko rozjechana w czasie co przy szybkich elementach dekodujących poszczególne zmienne może powodować generowanie szpilek na wyjściu. Akurat w przypadku dekodera 7 segmentowego to nie gra roli, bo oko i tak nie zauważy impulsów szerokości rzędu dziesiątek nanosekund, ale jeżeli dany układ logiczny pracuje jako układ asynchroniczny to mogą wystąpić błędne zadziałania układu.


    A teraz wg powyższych wskazówek opracuj tabelki i funkcje dla pozostałych segmentów i wrzuć tu swoje rozwiązanie do dyskusji i sprawdzenia. W segmencie F masz nieoptymalne zaznaczenie jednej grupy czwórkowej.
  • #5 6482338
    Snoffy
    Poziom 10  
    Posty: 10
    Ocena: 1
    Zrobiłem w ten sposób, wykonałem symulacje w multisimie. Wszystko oprócz segmentu D chodzi. Co tu jest nie tak?

    Minimalizacja funkcji metodą Karnaugha krok po kroku.

    W segmencie F nie widzę bardziej optymalnego rozwiązania (3 pętle po 4 pola i jedna pętla z 2 polami). Możesz mi je pokazać?
  • Pomocny post
    #6 6483384
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Przepraszam, F jest dobrze, źle spojrzałem :oops: :)

    SEG_D=(/C+B+A)*(D+C+B+/A)*(/D+/C)*(/D+/B)*(/C+/B+/A)
  • #7 6483766
    Snoffy
    Poziom 10  
    Posty: 10
    Ocena: 1
    Dziękuje. Bardzo mi pomogłeś. Zrobiłem symulacje - wszystko działa. Projekt zaliczony i wiedzy trochę więcej, jeszcze raz dziękuje.

    Tylko w segmencie A jest chyba błąd. Jedno zero zostało bez opisu. Ja to zrobiłem w ten sposób:
    /C*/B*/A + D*/C*/B + /D*C*A + /D*B
  • Pomocny post
    #8 6486141
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    [quote="Snoffy"]Dziękuje. Bardzo mi pomogłeś. Zrobiłem symulacje - wszystko działa. Projekt zaliczony i wiedzy trochę więcej, jeszcze raz dziękuje.

    Tylko w segmencie A jest chyba błąd. Jedno zero zostało bez opisu.

    Faktycznie, nie zauważyłem

    SGA=(/D+/C)*(/C+B+A)*(/D+/B)*(D+C+B+/A)

    lub (tak jak zrobiłeś)

    SGA=/D*B + /D*C*A + D*/C*/B + /C*/B*/A
  • REKLAMA
  • #9 6492574
    Snoffy
    Poziom 10  
    Posty: 10
    Ocena: 1
    Poprawna jest taka minimalizacja? Czy za te nieoznaczone pola mogę sobie przyjąć dowolnie 0 lub 1? Istotny tutaj jest hazard?

    Minimalizacja funkcji metodą Karnaugha krok po kroku.
  • #10 13569913
    matty07
    Poziom 10  
    Posty: 18
    Ocena: 1
    Minimalizacja funkcji metodą Karnaugha krok po kroku.

    Witam! mam taką tabelkę, zakreśliłem już implikanty (myślę że poprawnie) ale nie wiem jak wyprowadzić do nich funkcję wyjściową F=(A+B+C+D), ma to być funkcja minimalizacji. Czytałem o tym na kilku stronach ale dalej nie potrafię sobie tego zrobić. Niech mi to ktoś wytłumaczy łopatologicznie i prosiłbym o rozwiązanie tego zadania. Pozdrawiam.

    Czy potrzebna jest do tego tablica prawdy?
  • #11 13570756
    Aleksander_01
    Poziom 43  
    Posty: 12664
    Pomógł: 1155
    Ocena: 3368
    matty07 napisał:
    Minimalizacja funkcji metodą Karnaugha krok po kroku.


    A co tymi dwoma jedynkami w drugim rzędzie w kolumnie 01 i 10.
    I dwie jedynki w kolumnie 11
    I jeszcze dwie w kolumnie 00 wiersz 00 i 11
    ?
  • #12 13570775
    matty07
    Poziom 10  
    Posty: 18
    Ocena: 1
    no wydaje mi się że tak ma być, nie jest nic pominięte. Nie można zaznaczyć chyba trzech jedynek.?
  • #13 13570871
    Aleksander_01
    Poziom 43  
    Posty: 12664
    Pomógł: 1155
    Ocena: 3368
    A nie powinno być tak

    Minimalizacja funkcji metodą Karnaugha krok po kroku.
  • #14 13570994
    matty07
    Poziom 10  
    Posty: 18
    Ocena: 1
    ale wtedy bede miał 7 wejsc, a mi wystarczy zeby było 4;) nie wiem jak wyprowadzić tą funkcję...
  • #15 13572810
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Wejść będzie dalej 4, zwiększy się tylko ilość składowych funkcji po minimalizacji.

    Tu jest jednak taki problem, że funkcja minimalna może nie być optymalna ze względu na działanie układu.

    W układach rzeczywistych sygnały wejściowe mogą zmieniać się niedokładnie w tych samych momentach (mogą wystąpić opóźnienia), elementy układu wnoszą swoje opóźnienia, a sygnały z tego samego wejścia mogą dochodzić do wyjścia przez różną ilość "warstw" i wtedy na wyjściu mogą się pojawić krótkie nieplanowane impulsy (jedynki lub zera) w momentach gdy zmieniają się stany wejść. W stanach ustalonych wejść wszystko się zgadza ale w stanach przejściowych mogą pojawiać się nieplanowane zmiany sygnałów.

    Możliwe, że dla pewnego działania układu trzeba będzie jeszcze dodać składniki dla dwóch środkowych jedynek w drugim rzędzie i dwóch środkowych jedynek w czwartej kolumnie by nie wystąpił hazard statyczny.

    (Poczytaj o zjawisku hazardu statycznego.)

    Przy wypisywaniu składników funkcji bierzesz te sygnały (proste lub zanegowane, które się nie zmieniają w danej grupie.

    Przykładowo, idąc od góry i od lewej masz pierwszą grupę (dwie jedynki) gdzie:

    A=0
    B=0
    C=0
    a D może być 1 lub 0 czyli pierwszy składnik, to iloczyn:

    $$\bar{A}\bar{B}\bar{C}$$

    itd.

Podsumowanie tematu

✨ Dyskusja dotyczy minimalizacji funkcji logicznych metodą tablic Karnaugha w celu zaprojektowania sterownika wyświetlacza siedmiosegmentowego na bramkach logicznych. Użytkownik przedstawił tablice Karnaugha dla poszczególnych segmentów (A-G) i poprosił o pomoc w ich minimalizacji krok po kroku, wyjaśniając proces tworzenia grup (pętli) oraz wyprowadzania zminimalizowanych funkcji w postaci sumy iloczynów lub iloczynu sum. Poruszono kwestię grupowania sąsiadujących pól, w tym przez krawędzie tablicy, oraz wpływu rozmiaru grupy na liczbę zmiennych w wynikowym członie logicznym. Wyjaśniono, jak postępować z pojedynczymi polami (jedynkami lub zerami) oraz jak interpretować numerację pól w tablicy 4x4 (odpowiadającą kodowi BCD wejść). Omówiono wyprowadzanie funkcji minimalnej dla segmentów A, D i F, korygując błędy w początkowych próbach. Zwrócono uwagę na znaczenie testowania rozwiązania w symulacji (np. w Multisim). W dalszej części dyskusji, po dołączeniu nowego użytkownika z innym przykładem tablicy Karnaugha, poruszono dodatkowo zagadnienie hazardu statycznego i możliwości dodawania redundantnych grup (implikantów) w celu jego eliminacji w rzeczywistych układach, nawet jeśli nie są one konieczne do minimalnego pokrycia tablicy. Podkreślono, że wyprowadzanie funkcji ze sklejonych pól polega na identyfikacji zmiennych logicznych, które nie zmieniają wartości w obrębie danej grupy.
Wygenerowane przez model językowy.
REKLAMA