Dlaczego taktujemy klapki?

19

Próbuję zrozumieć klapki i zatrzaski. Czytam z książki Digital Logic Morrisa Mano. Jednej rzeczy, której nie jestem w stanie zrozumieć, to dlaczego taktujemy 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 i przekazać im informacji? Gdy zmieniamy wejście, wyjście się zmienia. Dlaczego musimy zmieniać wyjście wraz ze wzrostem lub obniżeniem zbocza zegara (w przypadku przerzutu wyzwalanego zboczem)?

Każda pomoc w tym zakresie jest mile widziana.

avi
źródło

Odpowiedzi:

18

Jednym z powodów, dla których taktujemy klapki, aby nie było chaosu, gdy wyjścia klap są zasilane przez niektóre funkcje logiczne i wracają do własnych wejść.

Jeśli dane wyjściowe przerzutnika zostaną użyte do obliczenia jego danych wejściowych, powinniśmy 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ą stan bieżący i obliczają swój następny stan na podstawie stanu bieżącego i niektórych danych wejściowych.

Załóżmy na przykład, że chcemy zbudować maszynę, która „oblicza” 4-bitową inkrementację od 0000 do 1111, a następnie zawija do 0000 i kontynuuje pracę. Możemy to zrobić za pomocą 4-bitowego rejestru (który jest zbiorem czterech przerzutników D). Dane wyjściowe rejestru są przekazywane przez kombinatoryczną funkcję logiczną, która dodaje 1 (czterobitowy sumator) w celu uzyskania wartości przyrostowej. Ta wartość jest następnie po prostu zwracana do rejestru. Teraz, gdy tylko pojawi się krawędź zegara, rejestr zaakceptuje 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 taktowaniem są przydatne również w innych sytuacjach. Czasami obwód ma wiele wejść, które nie stabilizują się jednocześnie. Jeśli wyjście jest natychmiast wytwarzane z wejść, będzie chaotyczne, dopóki wejścia się nie ustabilizują. Jeśli nie chcemy, aby inne obwody zależne od mocy wyjściowej widziały chaos, sprawiamy, że obwód jest taktowany. Dajemy dużo czasu na ustabilizowanie się danych wejściowych, a następnie wskazujemy obwódowi na zaakceptowanie wartości.

Zegarowanie jest również nieodłączną częścią semantyki niektórych rodzajów klapek. Przerzutnika AD nie można zdefiniować bez wejścia zegara. Bez wejścia zegara albo zignoruje swoje wejście D (bezużyteczne!), Albo po prostu skopiuje je przez cały czas (nie przerzutnik!) Przerzutnik RS nie ma zegara, ale wykorzystuje dwa wejścia do sterowania stanem, który pozwala, aby wejścia były „samokierujące”: tj. być wejściami, a także wyzwalaczami zmiany stanu. Wszystkie klapki potrzebują pewnej kombinacji danych wejściowych, która programuje ich stan, a pewna kombinacja danych wejściowych pozwala im zachować swój stan. Jeśli wszystkie kombinacje wejść wyzwalają programowanie lub wszystkie kombinacje wejść są ignorowane (stan jest utrzymywany), to nie jest użyteczne. Co to jest zegar? Zegar jest wyjątkowy, dedykowane wejście, które odróżnia, czy inne wejścia są ignorowane, czy programują urządzenie. Przydatne jest, aby mieć to jako osobne wejście, a nie zakodowane w wielu wejściach.

Kaz
źródło
Ma to sens, gdy wyjaśnisz potrzebę taktowania licznika lub automatu stanów. Jeśli w ogóle nie ma zegara, to licznik ciągle zmienia jego wartość (i resetuje) i zaczyna się nieskończenie? i to samo z maszyną stanu. (Z tego, co czytałem z wiki, liczą się tylko maszyny stanu, ponieważ stany są zmieniane). Ale nawet z rejestrami używamy zegara, w takim razie dlaczego? Chcę również wiedzieć, czy są jakieś flipflopy (mogą być) używane w dowolnej aplikacji bez zegara?
avi
Teraz dochodzi do punktu stabilności, jeśli wyjścia ciągle się zmieniają, inne urządzenia, które potrzebują wyjścia flipflops, nie będą w stanie poprawnie go odebrać i może wystąpić nieprawidłowe działanie. Czy to problem stabilności? Teraz staram się zrozumieć pojęcie stabilności. Zwłaszcza te dwa parasole, które wyjaśniłeś: „aby zapobiec zmianie stanu przerzutnika, dopóki wyjście (a więc i wejście) nie będzie stabilne”. „Czasami obwód ma wiele wejść, które nie stabilizują się jednocześnie”
avi
7

Flip-flop z rosnącą krawędzią może być przewidziany jako dwa zatrzaski z powrotem do tyłu, z których jeden jest włączony wkrótce po zaniku sygnału zegara i pozostaje włączony, dopóki nie osiągnie wysokiego poziomu; drugi włącza się wkrótce po osiągnięciu przez zegar wysokiego poziomu i pozostaje włączony aż do niskiego poziomu. Krótki moment, w którym żadna klapka nie jest włączona, oznacza, że ​​wyjście klapki może być bezpiecznie przywrócone do jego wejścia za pomocą logiki kombinatorycznej. Zmiana sygnału wyjściowego w jednym cyklu zegarowym może spowodować zmianę sygnału wejściowego, ale ta zmiana danych wejściowych nie przyniesie żadnego efektu aż do następnego cyklu zegarowego.

Historycznie było dość powszechne, że urządzenia cyfrowe używały tak zwanego „zegara dwufazowego”, który miał dwa przewody zegarowe, które były wysokie dla nie nakładających się interwałów podczas każdego cyklu. Wszystkie zatrzaski są podzielone na dwie grupy, przy czym jeden zegar kontroluje pierwszą grupę zatrzasków, a drugi zegar steruje drugą; w większości przypadków dane wyjściowe z każdej grupy są wykorzystywane wyłącznie do obliczania danych wejściowych drugiej grupy. 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ć specyfikacje o minimalnej długości, i jednego lub więcej impulsów na drugim (to samo wymaganie). Jedną z zalet takiego projektu jest to, że może on być bardzo tolerancyjny dla skosu zegara, pod warunkiem, że czas martwy między fazami zegara przekracza wartość skosu zegara.

Bardziej „nowoczesnym” podejściem jest to, że każdy element zatrzaskowy (rejestr) odbiera pojedynczy drut zegarowy i zasadniczo generuje własne wewnętrzne nie nakładające się zegary. Wymaga to, aby maksymalne pochylenie zegara nie przekraczało minimalnego czasu propagacji między rejestrami, ale nowoczesne narzędzia pozwalają kontrolować pochylenie zegara bardziej precyzyjnie niż było to możliwe w poprzednich dekadach. Ponadto w wielu przypadkach taktowanie jednofazowe upraszcza projekty, eliminując potrzebę podziału logiki na dwie grupy.

supercat
źródło
2

Wszyscy wiemy, że cyfrowe obwody rzeczywiste będą zawierać wiele bram. Sygnał może wymagać wielu ścieżek, aby dostać się do ostatniej bramki, która daje wyjście. Sygnał potrzebuje trochę czasu na „propagację” na różnych ścieżkach dochodzących do ostatniej bramki. Czas potrzebny do propagacji nie jest taki sam na różnych ścieżkach. Prowadzi to do tego, co nazywamy usterkami. Występują usterki, 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ę, działa to bezpośrednio przed tym, jak inne sygnały na dłuższej ścieżce docierają do bramki. Wynik, którego to skutkuje chwilowo, jest nieprawidłowy i może stać się niebezpieczny w obwodzie cyfrowym, co prowadzi do rozprzestrzeniania się błędów.

Teraz dochodzę do wniosku, dlaczego potrzebujemy zegara. Zegar zasadniczo „synchronizuje” obwód z pojedynczym sygnałem zewnętrznym. Potraktuj to jako rytm, w którym obwód jest dostrojony do muzyki. Wszystko dzieje się z tym zegarem, brak zegara = obwód jest wyłączony. Za pomocą zegara mamy pewność, że w różnych częściach pracy obwodu w harmonii w tym samym czasie . W ten sposób zachowanie obwodu jest bardziej przewidywalne. Ma to również mniejszy wpływ na zmiany opóźnienia propagacji w zależności od temperatury i zmienności produkcji. Obejmuje to całą dobę.

Przerzutniki to takie cyfrowe elementy obwodów, które podejmują działanie (zmieniając swoją moc wyjściową w odpowiedzi na wejście na ich porcie wejściowym), gdy wystąpi „ZEGAR ZEGARA”. Krawędź zegara ma miejsce, gdy sygnał zegarowy przechodzi od 0 do 1 lub od 1 do 0. Po prostu narysuj falę zegarową, a będziesz wiedział, co mam na myśli. Istnieje inna grupa elementów zwanych zatrzaskami, wyjście zatrzasków zmienia się w celu odzwierciedlenia wejścia, gdy określony sygnał sterujący znajduje się na określonym POZIOMIE logicznym i nie czekaj na żadne zbocza, ten sygnał sterujący nazywa się WŁĄCZONY w zatrzaskach. Zatrzaski mogą działać, gdy enable ma wartość 1 i zmieniają wyjście lub gdy enable ma wartość 0. Zależy to od typu zatrzasku. Natomiast klapki Flips faktycznie robią tylko cośkiedy są zasilane przez EDGE zegara. Zwróć uwagę na tę różnicę między zatrzaskami i klapkami oraz pamiętaj, że zatrzaski są połączone razem, aby utworzyć klapkę, tak że włączenie powoduje, że klapka robi coś, gdy pojawia się krawędź zegara. W tym przypadku nazywamy sygnał Włącz zegar, i ma to również większy sens. Zegar dla ludzi zaczyna kleszcza kleszcza, flip-flop robi coś tylko przy kleszczach i NIC pomiędzy kleszczami.

Jeśli nadal nie jest jasne, skorzystasz, oglądając wykład nptelhrd na youtube z Indian Institute of Technology on Digital Circuits.

quantum231
źródło
„Korzystając z zegara, upewniamy się, że różne części obwodu działają jednocześnie w harmonii.” - jak to zrobić? Sprawdzę filmy.
avi
Należy pamiętać, że przerzutniki są urządzeniami, które zmieniają swoją moc wyjściową w celu odzwierciedlenia sygnału wejściowego na zboczu narastającym (lub zboczu opadającym, jeśli jest to przerzutnik wyzwalany przez zbocze ujemne) sygnału sterującego dla przerzutnika wyzwalanego przez zbocze dodatnie. Ten sygnał sterujący nazywany jest zegarem ze względu na jego okresowość, bardziej jak tykanie naszych zegarów ściennych. Jeśli obecny jest sygnał zegara, przerzutnik coś zrobi, w przeciwnym razie wejście nie sprawi, że coś stanie się z wyjściem. Proszę znać różnicę i podobieństwo między zatrzaskami i klapkami od wczesnego etapu, aby nie pomylić.
quantum231 20.04.2013
1

Istnieją takie rzeczy, jak liczniki asynchroniczne. Tu jest jeden: - wprowadź opis zdjęcia tutaj

Jest również znany jako licznik tętnień, ponieważ gdy na wejściu pojawia się impuls wejściowy (zmiana stanu pierwszego przerzutnika), zmiana stanu zajmuje skończony okres czasu, aby tętnić przez pozostałe przerzutniki. W tym krótkim, ale skończonym czasie, wyjścia ABCD będą miały nieprzewidywalną wartość przejściową, dopóki ostateczny przerzut nie ustabilizuje się.

Jeżeli wszystkie wyjścia ABCD byłyby następnie zasilane przez przerzutniki typu D i taktowane razem, jakiś czas po okresie rozliczeniowym, ta „lepsza” wersja ABCD nigdy nie „pokaże” tego przejściowego zachowania.

Aby tego uniknąć, inżynierowie czasami używają synchronicznych obwodów zegarowych. Przepraszam, że dane wejściowe znajdują się po lewej stronie, a mapa Q0 do Q3 do ABC i D na poprzednim schemacie: -

wprowadź opis zdjęcia tutaj

Jest to trochę bardziej złożone, ale szybsze i ma mniej części niż w porównaniu do licznika asynch z wieloma typami D na wyjściach.

Andy aka
źródło
Cóż, w przypadku liczników ma to sens. Ale czy jest jakaś aplikacja, w której klapki są używane bez zegarów? czy klapki nigdy nie mogą być używane bez zegarów?
avi
@avi Pierwszy przykład (licznik asynchroniczny) nie musi być traktowany jako pobieranie danych z „zegara”. Mogą to być impulsy pochodzące z czujnika magnetycznego, który sprawdza, jak szybko obraca się wał. W systemie byłby zegar „główny”, który „bramkuje” liczbę co sekundę, ale „sygnał” trafiający do licznika niekoniecznie jest zegarem. Wyjście z komparatora analogowego może „taktować” „1” do wyjścia typu D, a wyjście z innego komparatora analogowego może zresetować typ D - może to być wykorzystane do wytworzenia sygnału pochodzącego z fali analogowej - bez zegarów jako taki
Andy alias
Uznałbym, że zachowanie licznika tętnień jest ilościowe, a nie jakościowo różne od zachowania licznika synchronicznego. Wyjścia obu liczników staną się nieaktualne po pewnym czasie po nadejściu impulsu zegarowego, a po pewnym czasie staną się ponownie ważne. Licznik synchroniczny będzie miał mniejsze okno, w którym jego dane wyjściowe są nieprawidłowe, ale okno będzie w każdym razie niezerowe. Warto również zauważyć, że maksymalna prędkość zliczania przy wyciągniętym liczniku będzie ograniczona długością licznika. Można było uniknąć tego ograniczenia ...
supercat
... rozpoczynając łańcuch przenoszenia na przykład od czwartego bitu, generując „i” pierwszych trzech bitów, a następnie mając każdy bit tylko w odwrotnej kolejności, jeśli sygnał wejściowy z łańcucha przenoszenia był wysoki, bit 2 był wysoki, bit 1 był wysoki, a bit 0 był wysoki. Nawet gdyby siedem impulsów zliczających przybyło w czasie wymaganym do rozchodzenia się sygnału przez łańcuch przenoszenia, nie stanowiłoby to problemu, ponieważ łańcuch przenoszenia zacząłby propagować przenoszenie po osiągnięciu liczby xxx111 ... 111000, ale jego moc wyjściowa nie miałaby znaczenia, dopóki puls zegara po osiągnięciu xxx111 ... 111111 został osiągnięty.
supercat
Liczniki tętnienia są proste, ale nienawidzą prawdziwego świata układów cyfrowych, w których pracuję. Dobrze wiedzieć, że istnieją, ale jest bardzo mało prawdopodobne, że będzie można ich używać do prawdziwych projektów. Zawsze można go stosować w trywialnych ćwiczeniach, w których ich „asynchroniczna” natura nie stanowi problemu.
quantum231
0

Ponieważ łatwiej jest zaprojektować systemy synchroniczne (system synchroniczny oznacza dowolny zbiór logiki kombinatorycznej i taktowanych przerzutników) niż systemy asynchroniczne, a systemy synchroniczne są bardziej niezawodne. Jednak asynchroniczna konstrukcja maszyny stanów jest warta zbadania, ponieważ może obliczyć dane wyjściowe znacznie szybciej i przy niższej mocy niż system synchroniczny.

użytkownik39588
źródło