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ć asynchroniczny licznik modulo 9 z tabelą przejść i JK?

szary123 11 Lis 2009 22:08 5573 8
REKLAMA
  • #1 7248047
    szary123
    Poziom 10  
    Posty: 12
    Mam do zaprojektowania licznik asynchroniczny modulo 9 za pomocą przerzutników JK, ale ma on powstać przez ustalenie tabeli przejść a nie przez proste łączenie dwójek liczących. Jak zrobić licznik synchroniczny za pomocą tabeli przejść wiem i jak asynchroniczny przez proste łączenie dwójek liczących też wiem.
    W "Układy Scalone TTL w systemach cyfrowych", J. Pienkos, J. Turczyński jest tylko o licznikach asynchronicznych budowanych przez łączenie dwójek liczących. Na googlach też tylko takie znalazłem.

    Stworzyłem tabelę przejść, wyznaczyłem funkcje i zbudowałem licznik dokładnie na tej samej zasadzie co synchroniczny tylko podłączyłem inaczej zegar. Efekt:
    Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK?
    Jednakże:
    Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK?
    Wydaje się, przerzutnik oznaczony jako inst3 zmienia stan z 0 na 1, po kolejnym takcie z 1 na 0, jednak inst2 "nie zdąży załapać się" na sygnał 1, tylko gdy zadziała trafia już na 0. Brakuje jakiegoś opóźnienia?
    Funkcje wyznaczone z tabeli przejść są prawidłowe, gdyż dla synchronicznego podłączenia zegara układ działa.
    Czy tak powinno budować się liczniki asynchroniczne za pomocą tabeli przejść?
  • REKLAMA
  • #2 7253542
    Adrian1995
    Poziom 14  
    Posty: 96
    Pomógł: 8
    Ocena: 5
    Ten układ nie ma prawa poprawnie działać. Powstają "hazardy" na skutek czasów propagacji a co najważniejsze po doliczeniu do 8 zatrzyma się i bez resetowania nie będzie dalej liczył. Poniżej schemat w którym są elementy opóźniające. Aby ich ilość zmniejszyć zastosowany jest układ szeregowy przeniesień. Robienie takich liczników mija się z celem. Albo skracamy tradycyjnie zakres liczenia albo stosujemy licznik synchroniczny który ma dwie podstawowe zalety. Nie doprowadza do "hazardów" z powodu opóźnień i co najważniejsze ma wyższą częstotliwość pracy. Poza tym przy niedużym zakresie jest bardzo prosty.:cry:
    Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK? Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK?
  • #3 7258934
    szary123
    Poziom 10  
    Posty: 12
    Dziękuję za odpowiedź.
    Wykonałem podany przez Ciebie układ w Quartusie jednak wciąż drugi przerzutnik nie reaguje.

    Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK? Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK?
  • REKLAMA
  • #4 7259099
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 692
    Przy drugim przerzutniku wejścia J i K muszą być ustawione na stałe na stan jeden a nie taktowane zegarem poprzedniego stopnia.
  • REKLAMA
  • #5 7259205
    szary123
    Poziom 10  
    Posty: 12
    Cytat:
    Przy drugim przerzutniku wejścia J i K muszą być ustawione na stałe na stan jeden a nie taktowane zegarem poprzedniego stopnia.

    Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK? Jak zaprojektować asynchroniczny licznik modulo 9 z tabelą przejść i JK?
    Zrobiłem tak, to z kolei 3 przerzutnik dobrze nie działa... Oczywiście J i K w 3-im mogę również dać na stałe na stan jeden, ale wtedy licznik będzie oparty już o dwójki liczące a nie o tabelę przejść...
  • #6 7259446
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 692
    Dodaj opóźnienia na wejściach zegarowych tak by zbocze taktujące pojawiało się PO ustaleniu się stanów wejść J i K, bo innaczej to nie będzie poprawnie działało. Na razie to masz sygnały do J i K opóźnione o jedną propagację bramki w stosunku do zegara a przecież przerzutniki wymagają odpowiedniego czasu wyprzedzenia ustalenia się sygnałów J i K przed zboczem zegara !!!! tylko pamiętaj o fazie zegara by nie dać inwersji (odpowiednia ilość inwerterów)
  • REKLAMA
  • #7 7261746
    Adrian1995
    Poziom 14  
    Posty: 96
    Pomógł: 8
    Ocena: 5
    Paweł Es. Tak czy inaczej to "hazard". A to co proponujesz to nie spełnia warunków asynchronizmu w założeniu autora postu. Asynchroniczny do końca albo ten "hazard" :D. Myslę, że autor postu nie do końca rozumie synchronizm i asynchronizm. Też tak robiłem jak mówisz i działa to, ale nie tak jak sobie to wyobrażamy. Po prostu tak też myślę jak Ty, ale chyba coś nie pasuje z tym wszystkim. :D. Po co takie kombinacje ? Synchroniczny to proste, asynchroniczny tak samo. Proponuję aby autor się zastanowił po co takie kombinacje skoro to w literaturze jest ślicznie opisane (Pieńkos, Turczyński). Zgodzisz się z tym ?:D:D
  • #8 7261816
    Quarz
    Poziom 43  
    Posty: 14357
    Pomógł: 1646
    Ocena: 627
    Witam,
    szary123 napisał:
    Mam do zaprojektowania licznik asynchroniczny modulo 9 za pomocą przerzutników JK, ale ma on powstać przez ustalenie tabeli przejść a nie przez proste łączenie dwójek liczących. Jak zrobić licznik synchroniczny za pomocą tabeli przejść wiem i jak asynchroniczny przez proste łączenie dwójek liczących też wiem.
    W "Układy Scalone TTL w systemach cyfrowych", J. Pienkos, J. Turczyński jest tylko o licznikach asynchronicznych budowanych przez łączenie dwójek liczących. Na googlach też tylko takie znalazłem.
    dotąd, kiedy nie zdefiniowałeś, lub też nie nazwałeś ogólnie znanego, kodu w jakim ten licznik ma liczyć do 9 - dziesiętnie - a tego tu jakoś nie widzę, to cała tu dyskusja upodabnia się do przysłowiowej 'dyskusji o rzyci Maryni' ... nie widzieli, nie wiedzą dokładnie o czym, ale dyskutują ... :idea: :D

    Pozdrawiam
  • #9 7262109
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 692
    Adrian1995 napisał:
    Paweł Es. Tak czy inaczej to "hazard". A to co proponujesz to nie spełnia warunków asynchronizmu w założeniu autora postu. Asynchroniczny do końca albo ten "hazard" :D. Myslę, że autor postu nie do końca rozumie synchronizm i asynchronizm. Też tak robiłem jak mówisz i działa to, ale nie tak jak sobie to wyobrażamy. Po prostu tak też myślę jak Ty, ale chyba coś nie pasuje z tym wszystkim. :D. Po co takie kombinacje ? Synchroniczny to proste, asynchroniczny tak samo. Proponuję aby autor się zastanowił po co takie kombinacje skoro to w literaturze jest ślicznie opisane (Pieńkos, Turczyński). Zgodzisz się z tym ?:D:D


    W układzie asynchronicznym kombinacje sygnałów wyjściowych poprzednich stopni taktują następne stopnie, więc nie bardzo rozumiem o jakie warunki asynchronizmu ci chodzi ? Wyrównywanie opóźnień nie powoduje, że układ przestaje być asynchroniczny a tylko zmienia zależności czasowe sygnałów wchodzących do następnego stopnia.

    W układzie synchronicznym wszystkie przerzutniki dostają ten sam sygnał zegarowy wyznaczający ewentualny moment zmiany ich stanu a tu tego nie ma.

    Poza tym autor tematu dostał polecenie użycia konkretnej metody projektowej co narzuca konkretne rozwiązanie zamiast zwykłego zerowania całego układu po wykryciu stanu 9.

    Prościej by było zrealizowaź ten układ jako dwa szeregowe bloki liczące każdy do 3, wtedy byłby mniejszy problem z opóźnieniami w układzie.

Podsumowanie tematu

✨ Użytkownik zaprojektował asynchroniczny licznik modulo 9 z wykorzystaniem przerzutników JK, jednak napotkał problemy z synchronizacją sygnałów. W odpowiedziach zwrócono uwagę na występowanie "hazardów" spowodowanych czasami propagacji oraz na konieczność dodania opóźnień na wejściach zegarowych, aby zapewnić poprawne działanie przerzutników. Zasugerowano również, że licznik asynchroniczny może być bardziej skomplikowany niż synchroniczny, który jest prostszy i bardziej efektywny. Wskazano na potrzebę zrozumienia różnicy między asynchronizmem a synchronizmem oraz na możliwość uproszczenia projektu poprzez zastosowanie dwóch szeregowych bloków liczących.
Wygenerowane przez model językowy.
REKLAMA