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

Jak zaprojektować 5-bitowy licznik synchroniczny zliczający w dół?

zeus02 25 Maj 2005 02:21 3232 8
REKLAMA
  • #1 1522844
    zeus02
    Poziom 11  
    Posty: 18
    Pomógł: 1
    Witam
    Mam mały problem. Mam zadanie którego nie potrafie rozwiązać :(. Oto treść:
    Zaprojektować 5 bitowy licznik synchroniczny zliczający w dół w kodzie określonym przez kolejne liczby nieparzyste. Dodatkowo licznik powinien uwzlględniać stan 0 i stan 24.

    Podaje punkty według których należy wykonać zadanie:
    1. Określić liczbę stanów projektowanego układu
    2. Określić minimalną liczbę potrzebnych przeżutników i kodujemy stan licznika stanami tych przeżutników
    3. Dokonać wyboru typu przeżutników z których zbudowany jest licznik
    4a. Określić tabele wzbudzeń dla wszystkich zastosowanych przeżutników
    4b. Na podst. tabeli przejść i tab określić tabelę wzbudzeń licznika
    5. Zminimalizować funkcje wzbudzeń przeżutników
    6. Narysować schemat logiczny licznika.
    7. Narysować przebiegi czasowe w charakterystycznych punktach układu.

    Wszystkie te punkty muszą się znaleźć w zadaniu :(. Niestety nie wiem jak je zrobić. Jeżeli ktoś wie to prosze o pomoc.
  • REKLAMA
  • Pomocny post
    #2 1523534
    jiwaniuk
    Poziom 31  
    Posty: 1393
    Pomógł: 142
    Ocena: 145
    W poście
    https://www.elektroda.pl/rtvforum/topic292173.html
    jest opisany podobny problem. Uruchom trochę "szarych komórek" i zaadaptuj opisany problem do swoich potrzeb.
    A tak w ogóle to częściej korzystaj z opcji Szukaj.

    Pozdrawiam wszystkich

    jjanek
  • REKLAMA
  • Pomocny post
    #3 1524142
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Twój licznik zlicza w dół, kolejno:

    31
    29
    27
    25
    24
    23
    21
    19
    17
    15
    13
    11
    9
    7
    5
    3
    1
    0
    i znów 31,29 ...

    Czyli teoretycznie ma 18 stanów roboczych

    Potrzeba 5 przerzutników - częściowo to wynika z polecenia w zadaniu, że licznik ma być 5 bitowy a częściowo z faktu, że 18 stanów nie da się zapisać na 4 bitach (maks 2^4=16 stanów).

    Dobrze jest uwzględnić także stany niedozwolone, ponieważ zakłócenie (np. zasilania) pomiędzy impulsami zegarowymi może zmienić dowolnie stan przerzutników i nawet w takim przypadku licznik powinien samoistnie wrócić na dobrą drogę w minimalnej liczbie impulsów zegarowych.
    Mamy wynikające z tego następstwa stanów

    
    Stan akt. Q4 ... Q0    Stan nast   Q4...Q0
    *	 0		00000		->	31		11111
    *	 1		00001		->	 0		00000
     	 2		00010		->	 1		00001
    *	 3		00011		->	 1		00001
     	 4		00100		->	 3		00011
    *	 5		00101		->	 3		00011
     	 6		00110		->	 5		00101
    *	 7		00111		->	 5		00101
     	 8		01000		->	 7		00111
    *	 9		01001		->	 7		00111
     	10		01010		->	 9		01001
    *	11		01011		->	 9		01001
     	12		01100		->	11		01011
    *	13		01101		->	11		01011
     	14		01110		->	13		01101
    *	15		01111		->	13		01101
     	16		10000		->	15		01111
    *	17		10001		->	15		01111
     	18		10010		->	17		10001
    *	19		10011		->	17		10001
     	20		10100		->	19		10011
    *	21		10101		->	19		10011
     	22		10110		->	21		10101
    *	23		10111		->	21		10101
    *	24		11000		->	23		10111
    *	25		11001		->	24		10111
     	26		11010		->	25		11001
    *	27		11011		->	25		11001
     	28		11100		->	27		11011
    *	29		11101		->	27		11011
     	30		11110		->	29		11101
    *	31		11111		->	29		11101
    
    


    * - oznacza poprawne stany licznika

    Proponuję byś wybrał przerzutniki D, ponieważ masz wtedy tylko 5 funcji wzbudzeń do minimalizacji,

    Rozpisujesz poszczególne bity stanu docelowego w 5 tabelkach, oddzielnie dla każdego bitu i minimalizujesz funkcje w myśl zasad opracowanych w 1953 roku przez Maurycego Karnaugh'a

    De - najstarszy bit (waga 16)
    Da - najmłodszy bit (waga1)

    Liczby w kącikach komórek tabelki wskazują numer dziesiętną wartość bitów EDCBA.

    Po minimalizacji rysujesz otrzymane funkcje.

    A swoją drogą jakie zadanie mają ci co mają nieparzysty numer w dzienniku ? Liczą po parzystych ? :)
    Załączniki:
    • Jak zaprojektować 5-bitowy licznik synchroniczny zliczający w dół? karnaugh5.jpg (68.8 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #4 1535745
    zeus02
    Poziom 11  
    Posty: 18
    Pomógł: 1
    dzięki to jest duża pomoc tylko teraz utknołem w punktach
    4b. Na podst. tabeli przejść i tab określić tabelę wzbudzeń licznika
    5. Zminimalizować funkcje wzbudzeń przeżutników

    Niestety nie potrafie tego zrobić :/ jeżeli mógłbyś to prosze :] o pomoc


    osoby które mają nieparzysty numer w dzienniku mają takie same zadanie tylko ...w dół w kodzie określonym przez kolejne liczby parzyste... :]
  • REKLAMA
  • Pomocny post
    #5 1536507
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Wypełnij tabelki:

    Bierzesz kolejne stany DOCELOWE, np. dla stanu aktualnego 3 następnym stanem jest stan 1 (00001),

    * 3 00011 -> 1 00001

    bity 00001 odpowiadają kolejno wymaganym wartościom funkcji wzbudzeń: De Dd Dc Db Da, czyli do odpowiedniej tabelki (jakie podałem)
    na pozycji odpowiadającej stanowi AKTUALNEMU (tu trzeciemu) wpisujesz:
    W tabelce dla

    De(3)=0
    Dd(3)=0
    Dc(3)=0
    Db(3)=0
    Da(3)=1

    i tak dla wszystkich 32 stanów.

    Jak masz tabelki to przystępujesz do wypisywania funkcji

    Zaznaczasz grupy jedynek wg zasad:

    1. grupa musi mieć rozmiary będące potęgami liczby 2
    2. grupa może mieć kształt prostokąta (poziomego lub pionowego) z zastrzeżeniem punktu 1, tj, nie można zaznaczyć grupy 2x3, 3*4 czy 5*1
    Dopuszczone są grupy: 1x2, 1x4, 1x8, 2*1,4*1,8*1,2*2, ....

    3. próbujemy zaznaczać od największych wymiarowo grup (np. 4x8, 4x4)
    4. po zaznaczeniu grupy wypisujemy kombinację zmiennych (ich iloczyn) odpowiadającą danej grupie.
    Bierzemy tylko te bity, które się NIE ZMIENIAJĄ dla danej grupy.
    Jeżeli dany bit ma stan 0 to do iloczynu bierzemy negację danej zmiennej

    Przykład

    W pierwszej linii (000) (pola 0,1,3,2) są 4 jedynki, to znaczy, że dany składnik nie zależy od Q0 i Q1 a więc składnik ma postać:

    /Qe*/Qd*/Qc

    linia (001) -> /Qe*/Qd* Qc

    jeżeli jedynki są w dwóch pierwszych liniach (000) i (001) to składnik ma postać

    /Qe*/Qd, bo Qc się zmienia a o Qe i Qd pozostają stałe.

    jeżeli jedynki zajmują pola 0,1,4,5 to składnik ma postać

    /Qe*/Qd*/Qb - bo jedynki są tylko dla Qb=0;

    Grupy zewnętrzne przylegają do siebie, tj jeżeli jedynki są w polach (0,1,3,2,16,17,19,18) to grupę opisuje składnik:

    /Qd*/Qc


    pola 4,12,6,14,28,20,30,32 pokrywa składnik: /Qe*Qc*/Qa

    itd.

    Grupy mogą się nakładać !


    Popracuj, przedstaw wyniki !
  • #6 1538967
    zeus02
    Poziom 11  
    Posty: 18
    Pomógł: 1
    Doszedłem do czegoś takiego co jest w załączniku. Dalej ani rusz :/. Tak sie zastanawiam czy dobrze robie bo to jest to samo zadanie co to:
    https://www.elektroda.pl/rtvforum/topic292173.html

    Wielkie dzięki za pomoc !!!!
    Załączniki:
    • Jak zaprojektować 5-bitowy licznik synchroniczny zliczający w dół? wypełnione.jpg (78.91 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #7 1540751
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 691
    Niestety narobił Pan błędów przy grupowaniu.

    Np.w Da

    zaznaczył Pan grupę 4x6 a 6 nie jest potęgą liczby 2. Pisałem przecież o tym.
    Te 24 jedynki obejmujemy dwoma grupami 4x4.

    zaznaczamy zawsze największą możliwą grupę jedynek a tego Pan nie zrobił w kolumnach oznaczonych 11 i 10.

    kolumna 00 i 10 też stanową jedną grupę 2x8

    wiersze 001 i 011 obejmujemy jedną grupą 4x4 ale rozdzieloną (to są uroki 5 zmiennych - grupy są trudnowidoczne)
    grupa ta obejmuje wiersze 001, 011, 111 i 101. Wynika to z zasady maksymalizacji grup (maksymalizacja grupy zmniejsza ilość zmiennych implikantu).

    Tę grupę opisuje implikant Qc

    Da=/Qa+Qb+Qc+Qd+Qe

    /Qa - grupa obejmująca kolumny 00 i 10

    Qb - grupa obejmująca kolumny 11 i 10
    Qc - grupa 4x4 rozdzielona (na niebiesko)
    Qd - środkowa grupa 4X4
    Qe - dolna grupa 4x4

    Grupy należy łączyć ze sobą (nie powinny być styczne, bo może wystąpić hazard, gdy zmieniają się dwie zmienne jednocześnie-niejednocześnie.

    W Db kolumnę 00 obejmuje jedna grupa 1x8 (/Qa*/Qb)

    Grupę jedynek 2x6 obejmujemy dwoma grupami 2x4.

    W Dc jest wszytko dobrze

    W Dd wiersze 011 i 111 stanowią jedną grupę 4x4.

    W De też trzeba zaznaczać jak największe grupy.
    Załączniki:
    • Jak zaprojektować 5-bitowy licznik synchroniczny zliczający w dół? wype_nione_116.jpg (75.33 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #8 1542078
    jiwaniuk
    Poziom 31  
    Posty: 1393
    Pomógł: 142
    Ocena: 145
    Jeszcze mozna uprościc
    - funkcję Da:
    do grupy
    00100
    00101
    00111
    00110
    01100
    01101
    01111
    01110
    dołożyć grupę
    10100
    10101
    10111
    10110
    11100
    11101
    11111
    11110
    - funkcję Db
    do grupy
    00100
    00101
    01100
    01101
    dołożyc grupę
    10100
    10101
    11100
    11101
    co w każdym przypadku spowoduje wyeliminowanie z zapisu funkcji po jednej zmiennej.

    Pozdrawiam wszystkich

    jjanek
  • #9 1562882
    zeus02
    Poziom 11  
    Posty: 18
    Pomógł: 1
    w załączniku jest moja praca
    Załączniki:
    • ELEMENTY TECHNIKI CYFROWEJ.doc (184 KB) Musisz być zalogowany, aby pobrać ten załącznik.

Podsumowanie tematu

✨ Dyskusja dotyczy projektowania 5-bitowego licznika synchronicznego zliczającego w dół według kolejnych liczb nieparzystych, uwzględniającego stany 0 i 24. Licznik ma 18 stanów roboczych, co wymaga zastosowania 5 przerzutników, gdyż 4 bity nie wystarczą do zakodowania wszystkich stanów. Wskazano konieczność uwzględnienia stanów niedozwolonych, aby licznik mógł samoczynnie powrócić do poprawnego stanu po zakłóceniach. Przedstawiono przykładową tabelę przejść stanów licznika oraz omówiono sposób tworzenia tabel wzbudzeń dla przerzutników na podstawie tabeli przejść. Podkreślono, że funkcje wzbudzeń należy zminimalizować za pomocą grupowania jedynek w mapach Karnaugha, z zachowaniem reguł dotyczących rozmiarów grup (potęgi liczby 2) i unikania hazardu. Omówiono szczegółowo przykłady grupowania i minimalizacji funkcji wzbudzeń dla poszczególnych przerzutników, wskazując na konieczność łączenia grup i eliminacji zmiennych w funkcjach. Wskazano również na potrzebę rysowania schematu logicznego licznika oraz przebiegów czasowych, choć szczegóły tych etapów nie zostały omówione w dyskusji. Autor otrzymał pomoc w zakresie tworzenia tabel wzbudzeń i minimalizacji funkcji, a także wskazówki dotyczące dalszych kroków projektowych.
Wygenerowane przez model językowy.
REKLAMA