Próbuję zrozumieć klapki japonki & zatrzaski. Czytam z książki Digital Logic autorstwa Morrisa Mano. Jedna rzecz, której nie jestem w stanie zrozumieć, to dlaczego zegarowe klapki?

Rozumiem, dlaczego potrzebujemy „włączonych” lub bramkowanych zamków. Ale jaki jest pożytek z zegara? Nie jestem w stanie tego zrozumieć. Dlaczego nie możemy po prostu włączyć wymaganych przerzutników &, aby dać im dane wejściowe? Gdy zmieniamy wejście, wyjście się zmienia. Dlaczego musimy zmieniać wyjście z rosnącym lub malejącym zegarem edge (w przypadku flipflopa wyzwalanego edge)?

Każda pomoc w tym zakresie jest mile widziana.

Odpowiedź

Jednym z powodów jest taktowanie klapek tak, aby nie było żadnego chaosu, gdy wyjścia przerzutników są zasilane przez niektóre funkcje logiczne i wracają do ich własnych wejść.

Jeśli wyjście przerzutnika jest używane do obliczania jego danych wejściowych, wypada nam zachować uporządkowane zachowanie: aby zapobiec zmianie stanu przerzutnika, dopóki wyjście (a tym samym wejście) nie będzie stabilne.

To taktowanie pozwala nam budować komputery, które są maszynami stanu: mają aktualny stan i obliczają swój następny stan na podstawie bieżącego stanu i niektórych danych wejściowych.

Na przykład, załóżmy, że chcemy zbudować maszynę, która „oblicza” przyrost 4-bitowa liczba od 0000 do 1111, a a następnie zawija do 0000 i kontynuuje. Możemy to zrobić używając 4-bitowego rejestru (który jest bankiem czterech przerzutników D). Wyjście rejestru przechodzi przez kombinatoryczną funkcję logiczną, która dodaje 1 (sumator czterobitowy) w celu uzyskania zwiększonej wartości. Ta wartość jest następnie po prostu zwracana do rejestru. Teraz, gdy nadejdzie zbocze zegara, rejestr przyjmie nową wartość, która jest równa jeden plus jego poprzednia wartość. Mamy uporządkowane, przewidywalne zachowanie, które przechodzi przez liczby binarne bez żadnych błędów.

Zachowania związane z zegarem są przydatne również w innych sytuacjach. Czasami obwód ma wiele wejść, które nie stabilizują się w tym samym czasie. Jeśli sygnał wyjściowy jest natychmiastowo wytwarzany z wejść, to będzie chaotyczny do momentu ustabilizowania się wejść. Jeśli nie chcemy, aby inne obwody, które zależą od wyjścia, widziały chaos, ustawiamy taktowanie obwodu. Dajemy dużo czasu na ustabilizowanie się danych wejściowych, a następnie wskazujemy układowi, aby zaakceptował wartości.

Taktowanie jest również nieodłączną częścią semantyki niektórych rodzajów przerzutników. Przerzutnika typu D nie można zdefiniować bez wejścia zegarowego. Bez wejścia zegarowego albo zignoruje swoje wejście D (bezużyteczne!), Albo po prostu skopiuje wejście przez cały czas (nie przerzutnik!) Przerzutnik RS nie ma zegara, ale używa dwóch wejść do sterowania stanem, który pozwala na „samoczynne taktowanie” wejść, tj. jako wejścia, jak również wyzwalacze zmiany stanu. Wszystkie przerzutniki wymagają pewnej kombinacji wejść, które programują ich stan, a pewna kombinacja wejść pozwala zachowują swój stan. Jeśli wszystkie kombinacje wejść wyzwalają programowanie, lub jeśli wszystkie kombinacje wejść są ignorowane (stan jest utrzymywany), nie jest to przydatne. Co to jest zegar? Zegar to specjalne, dedykowane wejście, które rozróżnia, czy inne wejścia są ignorowane lub czy programują urządzenie. Przydatne jest mieć to jako oddzielne wejście, zamiast zakodować je na wiele wejść.

Komentarze

  • Ma to sens, gdy wyjaśniasz potrzebę taktowania licznika lub automatu stanu. Jeśli istnieje ' s w ogóle nie jest zegarem, a następnie licznik po prostu zmienia swoją wartość (& reset) & zacząć w nieskończoność? i to samo z maszyną stanową. (Z tego, co przeczytałem na wiki, liczą się tylko typy maszyn stanowych, ponieważ stany są zmieniane). Ale nawet z rejestrami również używamy zegara, w takim razie dlaczego? Chcę również wiedzieć, czy są jakieś przerzutniki (mogą być) używane w dowolnej aplikacji bez zegara?
  • Teraz dochodzę do punktu stabilności, jeśli wyjścia ciągle się zmieniają, wygrywają inne urządzenia, które potrzebują wyjścia flipflop ' nie będzie w stanie odebrać go poprawnie i może wystąpić błędne zachowanie. Czy jest to więc problem ze stabilnością? Teraz próbuję zrozumieć pojęcie stabilności. Szczególnie te dwa parametry, które wyjaśniłeś: „, aby zapobiec zmianie stanu ' flip-flopa aż do wyjścia (a tym samym wejścia) jest stabilny. ” ” Czasami obwód ma wiele wejść, które nie stabilizują się w tym samym czasie ”

Odpowiedź

Przerzutnik o narastającej krawędzi można sobie wyobrazić jako dwa zatrzaski w tył z których jeden jest włączany wkrótce po spadku sygnału zegara i pozostaje włączony aż do stanu wysokiego; druga jest włączana wkrótce po tym, jak zegar osiągnie stan wysoki i pozostaje włączona, aż zejdzie do niskiego poziomu.Krótki moment, w którym żaden z przerzutników nie jest włączony, oznacza, że wyjście przerzutnika może zostać bezpiecznie przekazane z powrotem na jego wejście za pomocą logiki kombinatorycznej. Zmiana na wyjściu w jednym cyklu zegara może spowodować zmianę wejścia, ale ta zmiana wejścia nie będzie miała żadnego wpływu aż do następnego cyklu zegara.

Historycznie było to dość powszechne w przypadku urządzeń cyfrowych użyć tak zwanego „zegara dwufazowego”, który miał dwa przewody zegarowe, które były wysokie dla nienakładających się interwałów podczas każdego cyklu. Wszystkie zatrzaski są podzielone na dwie grupy, z jednym zegarem sterującym pierwszą grupą zatrzasków i drugi zegar sterujący drugim zegarem; w większości przypadków wyjścia każdej grupy są używane tylko do obliczania wejść drugiej. Każdy cykl zegara składa się z jednego lub więcej impulsów na pierwszym zegarze, z których co najmniej jeden musi spełniać minimum -długość i jeden lub więcej impulsów na sekundę (to samo wymaganie) .Jedną zaletą takiego projektu jest to, że może być bardzo odporny na odchylenie zegara, pod warunkiem, że czas martwy między fazami zegara przekracza wartość odchylenia zegara. Dwie wady takie projekty są takie, że wymagają dwóch zegarów kable w każdym miejscu, i że aby uzyskać maksymalną prędkość, należy ogólnie podzielić logikę na dwie grupy i spróbować zrównoważyć opóźnienia propagacji między nimi.

Bardziej „nowoczesne” podejście polega na zastosowaniu każdego elementu zatrzaskowego (rejestr) odbiera pojedynczy przewód zegarowy i zasadniczo generuje własne, nie zachodzące na siebie zegary. Wymaga to, aby maksymalne odchylenie zegara nie przekraczało minimalnego czasu propagacji między rejestrami, ale nowoczesne narzędzia umożliwiają kontrolę odchylenia zegara dokładniej niż było to możliwe w poprzednich dekadach. Ponadto w wielu przypadkach taktowanie jednofazowe upraszcza projektowanie, eliminując potrzebę podziału logiki na dwie grupy.

Odpowiedź

Wszyscy wiemy, że rzeczywiste cyfrowe obwody będą zawierać DUŻO bramek. Sygnał może wymagać wielu ścieżek, aby dotrzeć do ostatniej bramki, która daje wyjście. „Rozchodzenie się” sygnału po różnych ścieżkach do ostatniej bramki zajmuje trochę czasu. Czas potrzebny do propagacji nie jest taki sam na różnych ścieżkach. Prowadzi to do tego, co nazywamy usterkami. Występują zakłócenia, ponieważ niektóre ścieżki są krótsze niż inne, a gdy sygnał dociera do ostatniej bramki wcześniej, wybierając krótszą ścieżkę, powoduje to natychmiast, zanim inne sygnały na dłuższej ścieżce dotrą do bramki. Wynik, który chwilowo to powoduje, jest błędny i może stać się niebezpieczny w obwodzie cyfrowym, prowadząc do propagacji błędów.

Teraz dochodzę do tego, dlaczego potrzebujemy zegara. Zegar zasadniczo „synchronizuje” obwód z pojedynczym sygnałem zewnętrznym. Potraktujcie to jako rytm, do którego obwód jest dostrojony do muzyki. Wszystko dzieje się w zgodzie z tym zegarem, żaden zegar = obwód jest wyłączony. Korzystając z zegara, upewniamy się, że różne części obwodu działają w harmonii w tym samym czasie . W ten sposób zachowanie obwodu jest bardziej przewidywalne. W mniejszym stopniu wpływają na to również zmiany opóźnienia propagacji spowodowane zmianami temperatury i produkcji. Dotyczy to zegara.

Przerzutniki są takimi elementami obwodu cyfrowego, które podejmują akcję (zmieniając wyjście w odpowiedzi na sygnał wejściowy na ich porcie wejściowym), gdy pojawia się „KRAWĘDŹ ZEGARA”. Zbocze zegara występuje, gdy sygnał zegara zmienia się z 0 na 1 lub z 1 na 0. Po prostu narysuj falę zegara i będziesz wiedział, o co mi chodzi. Istnieje inna grupa elementów zwanych zatrzaskami, wyjście zatrzasków zmienia się, aby odzwierciedlić wejście, gdy pewien sygnał sterujący jest na określonym POZIOMIE logicznym i nie czekaj na żadne zbocza, ten sygnał sterujący nazywa się ENABLE w zatrzaskach. Zatrzaski mogą działać gdy enable ma wartość 1 i zmienia ich wyjście lub gdy enable ma wartość 0. Zależy to od typu zatrzasku. W przeciwieństwie do klapek klapki faktycznie robią coś tylko wtedy, gdy są zasilane przez zegar KRAWĘDŹ. Zwróć uwagę na tę różnicę między zatrzaskami i przerzutnikami i pamiętaj, że zatrzaski są połączone ze sobą, aby utworzyć przerzutnik w taki sposób, że włączenie powoduje, że przerzutnik robi coś tylko wtedy, gdy pojawia się zbocze zegara. W tym przypadku nazywamy sygnał Enable do Zegara, i to też ma więcej sensu. Zegar dla ludzi idzie tik tik tik, przerzutnik robi coś tylko przy taktach i NIC pomiędzy taktami.

Jeśli nadal nie jest jasne, to ty skorzysta na obejrzeniu wykładu nptelhrd na youtube z Indian Institute of Tec hnology w obwodach cyfrowych.

Komentarze

  • ” Używając zegara, upewniamy się, że różne części obwodu pracują w harmonii w tym samym czasie. ” – jak to robimy? Obejrzę filmy.
  • Należy pamiętać, że przerzutniki to urządzenia, które zmieniają swoje wyjście, aby odzwierciedlić wejście na zboczu narastającym (lub zboczu opadającym, jeśli jest to przerzutnik wyzwalany zboczem ujemnym) sygnał sterujący dla przerzutnika wyzwalanego zboczem dodatnim.Ten sygnał sterujący nazywany jest zegarem ze względu na jego okresowy charakter, bardziej podobny do tykania naszych zegarów ściennych. Jeśli obecny jest sygnał zegara, przerzutnik coś zrobi, w przeciwnym razie wejście nie spowoduje, że nic się stanie z wyjściem. Prosimy o zapoznanie się z różnicą i podobieństwem między zatrzaskami i klapkami od wczesnego etapu, aby się nie pomylić.

Odpowiedź

Istnieją takie rzeczy, jak liczniki asynchroniczne. Oto jeden: – tutaj wprowadź opis obrazu

Jest on również znany jako licznik tętnień, ponieważ gdy impuls wejściowy dociera do wejścia (zmiana stan pierwszego przerzutnika), ta zmiana stanu wymaga skończonej długości czasu, aby wpłynąć na pozostałe przerzutniki. Podczas tego małego, ale skończonego czasu wyjścia ABCD będą miały nieprzewidywalną wartość przejściową, aż do ostatecznego ustalenia przerzutnika.

Jeśli wyjścia ABCD były wtedy wszystkie zasilane przez przerzutniki typu D i taktowane razem jakiś czas po okresie rozliczeniowym ta ” lepsza ” wersja ABCD nigdy nie będzie ” wyświetl ” to przejściowe zachowanie.

Aby tego uniknąć, inżynierowie czasami używają synchronicznych obwodów zegara. Przykro nam, że dane wejściowe są z lewej strony, a od Q0 do Q3 odwzorowują ABC i D na poprzednim schemacie: –

tutaj wprowadź opis obrazu

Jest to trochę bardziej skomplikowane, ale jest szybsze i ma mniej części niż w porównaniu do licznika asynchronicznego z kilkoma typami D na wyjściach.

Komentarze

  • Cóż, w przypadku liczników ma to sens. Ale czy jest jakaś aplikacja, w której klapki są używane bez zegarów? czy flipflops nie mogą być używane bez zegarów?
  • @avi Pierwszy przykład (licznik asynchroniczny) czy nie ' nie musi być traktowany jako pobierający dane wejściowe z ” zegar „. Mogą to być impulsy pochodzące z czujnika magnetycznego, który ma sprawdzić, jak szybko obraca się wał. W systemie byłby ” główny ” zegar, który ” bramy ” licznik co sekundę, ale ” sygnał ” nie trafia do licznika ' t koniecznie zegar. Dane wyjściowe z analogowego komparatora mogłyby ” zegar ” a ” 1 do wyjścia typu D, a wyjście z innego komparatora analogowego może zresetować typ D – można to wykorzystać do wytworzenia sygnału pochodzącego z przebiegu analogowego – bez zegarów jako takich
  • Uważam, że zachowanie licznika tętnień różni się raczej ilościowo niż jakościowo od zachowania licznika synchronicznego. Wyjścia obu liczników staną się nieważne po pewnym okresie czasu po nadejściu impulsu zegarowego i staną się ponownie ważne jakiś czas po tym. Licznik synchroniczny będzie miał mniejsze okno, w którym jego wyjścia są nieważne, ale w każdym przypadku okno będzie niezerowe. Warto również ' zauważyć, że maksymalna prędkość zliczania przy rysowanym liczniku będzie ograniczona przez długość licznika. Można by uniknąć tego ograniczenia …
  • … mając łańcuch przenoszenia zaczynający się np. czwarty bit, generujący ” i ” z pierwszych trzech bitów, a następnie posiadający każdy bit tylko wtedy, gdy dane wejściowe z przeniesienia łańcuch był wysoki, bit 2 był wysoki, bit 1 był wysoki, a bit 0 był wysoki. Nawet jeśli siedem impulsów zliczających dotarło w czasie wymaganym do propagacji sygnału w łańcuchu przenoszenia, nie byłoby problemu, ponieważ łańcuch przenoszenia zacząłby propagować przenoszenie po osiągnięciu liczby xxx111 … 111000, ale jego wyjście nie byłoby ' nie ma znaczenia, dopóki nie zostanie osiągnięty impuls zegara po xxx111 … 111111.
  • Ich liczniki tętnień są proste, ale znienawidzone w prawdziwym świecie układów cyfrowych, w których pracuję. dobrze wiedzieć, że istnieją, ale jest mało prawdopodobne, że będziesz mógł ich używać w prawdziwych projektach. Zawsze można go używać w trywialnych ćwiczeniach, w których ich ” asynchroniczne ” nie stanowią problemu.

Odpowiedź

Ponieważ jest łatwiejszy do zaprojektowania systemów synchronicznych (system synchroniczny oznacza dowolny zbiór logiki kombinatorycznej i taktowanych przerzutników) niż systemy asynchroniczne i synchroniczne systemy są bardziej niezawodne. Jednak asynchroniczna maszyna stanów jest warta przestudiowania, ponieważ może obliczyć dane wyjściowe znacznie szybciej i przy niższej mocy niż system synchroniczny.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *