Dlaczego wyzwalanie zbocza jest lepsze niż wyzwalanie poziomu?

18

Próbuję zrozumieć, dlaczego wyzwalanie krawędzi jest lepsze niż wyzwalanie poziomu. W mojej książce nie jest to jasno wyjaśnione. Po przeszukaniu Internetu dowiedziałem się, że wyzwalanie krawędzi jest niewrażliwe na usterki, podczas gdy wyzwalanie poziomu jest wrażliwe. Co to znaczy?

Nie jestem również w stanie zrozumieć, co następuje: „Jeśli zegar jest wrażliwy na poziom, nowa może przepędzić sieć logiczną i zmienić wyjście. Aby tego uniknąć, potrzebujemy krótkiego impulsu, aby uchwycić wyjście i utrzymać go na stałym poziomie. Ale tak krótki impuls nie jest łatwy do wytworzenia, dlatego wybieramy wyzwalanie zbocza. Problem sprzężenia zwrotnego został rozwiązany, ponieważ nie ma wystarczającej ilości czasu, aby nowy sygnał wyjściowy powrócił do sygnału wejściowego w czasie trwania pojedynczego zbocza narastającego ”Qn

Nie rozumiałem, dlaczego wyjście nie przyspieszy wyzwalania poziomu i dlaczego potrzebujemy krótkiego impulsu, aby utrzymać wyjście.

Po drugie, problem sprzężenia zwrotnego, ponieważ czas wyzwalania poziomu jest długi w porównaniu z wyzwalaniem zbocza, w przypadku tego pierwszego wyjście będzie ponownie przesyłane z powrotem do wejścia i będzie to robić tak długo, jak długo zegar będzie aktywny . Na czym polega problem z opiniami?

Ale jak zostanie to rozwiązane w wyzwalaniu krawędzi? Jeśli czas opadania lub wznoszenia jest bardzo krótki, w jaki sposób wyjście będzie mogło rozprzestrzeniać się przez wszystkie bramy? Czy to jest tak, że po zastosowaniu wyzwalania zbocza wyjście będzie propagowane przez wszystkie bramki, a następne dane będą brane pod uwagę tylko na następnym zboczu zegara?

avi
źródło
1
„po zastosowaniu wyzwalania zbocza wyjście będzie propagowane przez wszystkie bramki, a następne dane będą brane pod uwagę tylko przy następnym zboczu zegara” - dziesiątka !!
Wouter van Ooijen

Odpowiedzi:

12

Chociaż krawędź jest dobrze określonym momentem w czasie, nie jest prawdą stwierdzenie, że wyzwalanie poziomu również nie ma dokładnie określonego momentu w czasie. To robi. Jest dobrze określony moment w czasie, gdy spada poziom zegara, próbkowane są wejścia do taktowanego obwodu, a dalsze zmiany na wejściach nie są już dopuszczane.

Problem z wyzwalaniem poziomu polega na tym, że gdy poziom zegara jest wysoki, wejścia zmieniają wyjścia. W obwodach, które mają sprzężenie zwrotne (wyjścia są ponownie podłączone do wejść), wyzwalanie poziomu powoduje chaos, ponieważ poziom jest wystarczająco szeroki (pół cyklu zegara), aby wyjście mogło wrócić do wejść w tym samym okresie.

tt+1 zegar i nie mieć sekwencyjnego przerwania obwodu. Przy wyzwalaniu poziomu spowolnienie zegara działa przeciwko nam. Im bardziej spowalniamy zegar, tym więcej czasu pozwalamy na nieograniczoną informację zwrotną.

Pierwsze oczywiste rozwiązanie, które sugeruje skrócenie poziomu do tego stopnia, że ​​niemożliwe jest pojawienie się niechcianych informacji zwrotnych (i utrzymanie krótkiego poziomu „na”, nawet jeśli arbitralnie spowolnimy okres zegara). Załóżmy, że bardzo szybko pulsujemy zegar od 0 do 1 i wracamy do 0, aby taktowane urządzenia przyjmowały swoje wejścia, ale wyjścia nie mają wystarczająco dużo czasu, aby przejść przez pętlę sprzężenia zwrotnego, aby zmienić te wejścia. Problem polega na tym, że wąskie impulsy są niewiarygodne i zasadniczo wymagają odpowiedzi, która może być o kilka rzędów wielkości większa niż częstotliwość zegara. Może się okazać, że potrzebujemy impulsu o szerokości nanosekundy, nawet jeśli system działa tylko z częstotliwością 1 MHz. Mamy zatem problem z rozprowadzaniem czystych, ostrych, wystarczająco wysokich nanosekundowych impulsów w szynie zaprojektowanej dla 1 MHz.

Kolejnym logicznym krokiem jest więc wygenerowanie przez urządzenia wąskiego impulsu jako pochodnej czasowej zbocza zegara. Gdy zegar przechodzi z jednego poziomu na drugi, same urządzenia mogą wewnętrznie generować krótki impuls, który powoduje próbkowanie wejść. Nie musimy rozprowadzać tego impulsu przez magistralę zegarową.

Możesz więc zasadniczo uznać, że wszystko to zostało ostatecznie uruchomione na poziomie. Wyzwalanie zbocza jest sztuczką pozwalającą urządzeniom na tworzenie bardzo precyzyjnego wyzwalania poziomu, który jest szybszy niż wszystkie zewnętrzne pętle sprzężenia zwrotnego, pozwalając urządzeniom na szybkie przyjmowanie danych wejściowych, a następnie zamykanie wejścia na czas, zanim ich zmienne dane wyjściowe zmienią wartości sygnałów wejściowych .


Możemy również dokonać analogii między sygnałem „włączania” (zegar wyzwalany poziomem) a drzwiami statku, który utrzymuje ciśnienie powietrza. Wyzwalanie poziomu przypomina otwieranie drzwi, pozwalając na ucieczkę powietrza. Możemy jednak zbudować zamek powietrzny, który składa się z dwóch (lub więcej) drzwi, które nie są jednocześnie otwarte. Dzieje się tak, jeśli podzielimy zegar poziomu na wiele faz.

Najprostszym przykładem tego jest przerzutnik master-slave . Składa się on z dwóch kaskadowo uruchamianych klapek D. Ale sygnał zegarowy jest odwrócony, więc wejście jednego jest włączone, a drugie wyłączone, i odwrotnie. To jest jak drzwi z zamkiem pneumatycznym. Jako całość, flip-flop nigdy nie jest otwarty, więc sygnał może swobodnie przechodzić. Jeśli otrzymamy informację zwrotną z wyjścia przerzutnika z powrotem do wejścia, nie ma problemu, ponieważ przechodzi on do innej fazy zegara. Efektem końcowym jest to, że przerzutnik master-slave wykazuje zachowanie wyzwalane przez krawędź! Przydatne jest przestudiowanie przerzutnika master-slave, ponieważ ma on coś do powiedzenia na temat związku między wyzwalaniem poziomu a zboczem.

Kaz
źródło
1
Wrażliwe na poziom zegary wielofazowe unikają problemu „chaosu”, jeśli żadne wyjście zatrzasku nie wraca do swojego wejścia bez przechodzenia przez zatrzask próbkowany na innej fazie zegara. Takie konstrukcje mogą mieć pewne zalety w przypadku łączenia procesorów z takimi rzeczami, jak pamięć asynchroniczna, ponieważ czas między zboczem wiodącym jednej fazy zegarowej a zboczem zbocznym następnego może być arbitralnie podzielony między czas wymagany do trasowania i wysyłania adresu, dostępu czas pamięci RAM i czas konfiguracji danych wejściowych procesora.
supercat
2
@ superupat Jako znany przykład przerzutnika master-slave można uznać za przykład taktowania wielofazowego. Master i slave znajdują się na przeciwnych fazach, a więc ten sam warunek obowiązuje, jeśli występuje sprzężenie zwrotne: przechodzi do innej fazy. Powinienem dodać to do odpowiedzi, aby ją zaokrąglić.
Kaz
2
Analogia blokady powietrznej +1. Nigdy nie słyszałem, żeby ktoś tłumaczył to w ten sposób, ale ma to doskonały sens.
ajs410
@ ajs410: Inną analogią, którą lubię, jest ucieczka w zegarku. Wahadło jest połączone z dwoma ramionami, z których każde może pozwolić swobodnie poruszać się mechanizmowi ewakuacyjnemu lub zablokować go, gdy osiągnie pewną „fazę”. Aby zapewnić prawidłowe działanie, ramiona należy wyregulować, aby nie było czasu, aby oba ramiona pozwoliły na obracanie się koła zębatego. Bez tego ograniczenia mechanizm wymknąłby się spod kontroli.
supercat
2

Wyzwalanie zbocza jest dobre dla zegarów, ponieważ pozwala na wykorzystanie wartości wyjściowej przez zatrzask w odpowiedzi na jeden (np. Rosnący) zbocze zegara do wykorzystania w obliczeniach tego, co powinien zrobić na następnym zboczu narastającym zegara. Jeśli ktoś konstruuje obwód sekwencyjny, taki jak licznik, używając wielu zatrzasków wyzwalanych zboczem, można dowolnie miksować szybkie i wolne elementy logiczne, pod warunkiem, że dla każdej możliwej ścieżki czas propagacji pomniejszony o wielkość opóźnienia zegara zatrzasku odbiorczego gwarantuje się, że nadawca jest dłuższy niż czas wstrzymania odbiornika, a czas cyklu plus kwota, o którą zegar zatrzasku odbiorczego opóźnia nadawcy, minus czas propagacji, jest dłuższy niż czas ustawienia odbiornika.

Natomiast zbudowanie obwodu do zliczania impulsów na pojedynczym wejściu bez użycia zatrzasków wyzwalanych zboczem wymagałoby pewnych gwarancji dotyczących względnych prędkości niektórych części obwodu. Powszechnym podejściem było przekształcanie przychodzącego sygnału zegarowego (ClkIn) w nie nakładające się sygnały zegarowe pary (Phi1 i Phi2). Phi1 jest prawdą, gdy ClkIn jest wysokie i było wysokie przez pewien gwarantowany minimalny czas . Phi2 jest wysoki, gdy ClkIn jest niski i jest niski przez pewien gwarantowany minimalny czas. Kiedy ClkIn przełącza się z niskiego na wysoki, Phi2 obniży się, zanim Phi1 osiągnie wysoki; podobnie gdy zmienia się z wysokiego na niski. Można zbudować licznik, mając dwa zestawy zatrzasków (które nazywam Count1 i Count2). Ilekroć Phi1 jest wysokie, Count1 blokuje Count2. Ilekroć Phi2 jest wysokie, Count2 zatrzaskuje się (Count1 + 1). Gdyby oba Phi1 i Phi2 osiągnęły wysokie wartości jednocześnie, lub ze zbyt małą ilością czasu między nimi, wartość licznika stałaby się nieokreślona, ​​ale pod warunkiem zachowania właściwego rozdziału, licznik będzie działał bardzo ładnie. Układy z taktowaniem dwufazowym często mają dość obszerną konstrukcję; pod warunkiem, że wszystko jest wystarczająco szybkie, taka separacja może uniknąć problemów z przesunięciem zegara.

Wewnętrznie wiele zatrzasków wyzwalanych zboczem może być uważanych za parę zatrzasków master / slave, które są okablowane tak, że master zatrzaskuje wejście za każdym razem, gdy zegar znajduje się w stanie przed zboczem, a slave zatrzaskuje master, gdy zegar jest ustawiony w stanie po. Sygnały zasilające dwa zatrzaski muszą mieć odpowiednią relację, ale jeśli są wytwarzane w tym samym sąsiedztwie, co zatrzaski, nie trzeba nadmiernie ustalać poziomu separacji prawie tak bardzo, jak byłoby to konieczne, gdyby dwie fazy zegara były wysłane na szerszy obszar.

Pamiętaj, że chociaż wyzwalanie zboczem jest dobre dla zegarów, istnieją inne cele, dla których jest ono mniej dobre. Czasami korzystne jest, aby okresowe zdarzenia przerwały się pod warunkiem, że żadne dwa zdarzenia nie mają tego samego sygnału wyzwalanego zboczem. Wyzwalanie zbocza jest kiepskie w przypadku wspólnych przerwań, aw niektórych przypadkach może być problematyczne nawet w przypadku współdzielenia przerwań, chyba że istnieje sposób na sprawdzenie stanu przewodu przerwania. Wyzwalanie poziomu może być również korzystne w przypadkach, w których sygnał stroboskopowy będzie aktywny w tym samym cyklu, co niektóre informacje, które powinny zostać zatrzaśnięte, ale gdy informacja ma dłuższą ścieżkę obliczeniową niż stroboskop. Jeśli informacja jest czymś w rodzaju adresu dla asynchronicznego układu pamięci, lepiej jest mieć ją dostępną w trakcie cyklu zegarowego, niż czekać do początku następnego cyklu zegarowego.

supercat
źródło
2

Aby zrozumieć, dlaczego preferowane jest wyzwalanie zbocza, wyobraź sobie 8-bitowy sumator podłączony do rejestru, stale dodający 1 do wartości rejestru, z przyciskiem podłączonym do pinu aktywującego rejestru.

Jeśli pin aktywacyjny rejestru jest wrażliwy na poziom, zawartość rejestru będzie stale zwiększana przez czas trwania naciśnięcia przycisku. Kolejny stan rejestru nie będzie deterministyczny dla danego naciśnięcia przycisku. Wynika to z faktu, że adder może wielokrotnie zwiększać rejestr, zanim będzie można usunąć palec - innymi słowy, informacja zwrotna opuszcza rejestr i zbyt szybko wraca do addera.

Jeśli pin włączający byłby wrażliwy na krawędzie, zawartość rejestru zwiększałaby się dokładnie raz za każdym naciśnięciem przycisku, bez względu na to, jak długo przycisk był wciśnięty (przy założeniu, że dane wejściowe są odpowiednio usuwane). Wyjście rejestru nie byłoby w stanie wrócić do sumatora na czas w celu zachowania niedeterministycznego.

ajs410
źródło
1

Jak inni powiedzieli, krawędź jest bardzo specyficznym momentem w czasie. Wszyscy wiemy, że obwody cyfrowe mogą przechodzić przez usterki, w których wyjście bramki jest nieprawidłowe, ponieważ dotarło do niej tylko kilka wejść, inne sygnały są w drodze i trwają dłużej z powodu dłuższej ścieżki (elektryczność płynie dość szybko ale nadal 3x10 ^ 8 m / s zajmuje trochę czasu, aby ominąć przewody). Jeśli mamy poziomową jednostkę wyzwalającą, jej wydajność będzie miała wpływ na usterki. Po wywołaniu zbocza rzeczy mamy bardzo wąskie okno w czasie, w którym „rzeczy mogą się zdarzyć”, innymi słowy, obwód zmieni swój stan (wartości na różnych przewodach wewnątrz obwodu, w tym na wyjściu) w pewnych ściśle określonych momentach w czas. Zwróć uwagę na wyrażenie „moment w czasie”

W tym momencie nie będziesz świadomy czegoś, co nazywa się „analizą czasową”, ale trochę wyjaśnię. Kiedy tworzymy obwody cyfrowe, chcemy je zasymulować, aby zobaczyć, jak będą się zachowywać i czy takie zachowanie będzie pasować do tego, co chcemy. W analizie czasowej sprawdzamy, czy sygnały są w stanie dotrzeć do określonego punktu w obwodzie w wymaganym czasie. Jeśli są zbyt opóźnione, obwód nie będzie działał poprawnie. Dzięki zastosowaniu bloków obwodu wyzwalanych zboczem zamiast poziomu wyzwalanego, analiza taktowania staje się bardzo łatwa, ponieważ wiemy dokładnie, kiedy w obwodzie mogą się zdarzyć rzeczy. Oznacza to, że projektowanie obwodu staje się również łatwiejsze. Pamiętaj, że w prawdziwym świecie bardzo rzadko spotykasz zatrzaski wywołane poziomem.

quantum231
źródło
1

Chociaż inne odpowiedzi obejmowały prawie wszystko, co można powiedzieć o twoim pytaniu, dla wyjaśnienia dodałem kilka diagramów i krótkie wyjaśnienie.

Wyobraź sobie, że chcesz zaprojektować obwód, który będzie zawierał sprzężenie zwrotne. Powiedz A = A.B(w zasadzie bramka AND z informacją zwrotną). Jeśli zaimplementujesz go za pomocą prostej zapadki wrażliwej na poziom, która przechowuje wartość A, twój obwód będzie wyglądał mniej więcej tak wprowadź opis zdjęcia tutaj

To może stworzyć problem. Gdy zegar jest wysoki, zatrzask staje się przezroczysty, a bramka AND oblicza nową wartość A and B. Ale wartość jest przekazywana z powrotem do zatrzasku, a ponieważ zatrzask jest nadal przezroczysty (CLK jest nadal wysoki), A AND Bobliczana jest nowa wartość parametru . Jest to tak zwane Warunek Wyścigu , który powoduje usterki (nieoczekiwane wzloty i upadki na wyjściu), o których wspominałeś.

Jednym z rozwiązań tego problemu byłoby utrzymanie impulsu CLK bardzo krótkiego, wystarczająco krótkiego, aby po wygenerowaniu wyjścia bramki AND zatrzask został dezaktywowany przed ponownym przeprogramowaniem wartości na wejście. Intuicyjne powinno być zrozumienie, dlaczego może to być trudne do osiągnięcia. Zależy to od prędkości przełączania zatrzasku (wreszcie zatrzask jest również wykonany z bram kombinacyjnych), długości drutu i setek innych parametrów.

Drugą bardziej wykonalną opcją jest użycie elementu wrażliwego na krawędź (w tym przypadku flip-flop), który jest w zasadzie parą zatrzasków połączonych w bardzo sprytny sposób.

wprowadź opis zdjęcia tutaj

Zasadniczo, gdy CLKsygnał jest wysoki, zatrzask U1 jest przezroczysty, co przenosi wartość logiczną na wejściu A na wyjście zatrzasku U1, gdy CLKsygnał jest NISKI, zatrzask U2 staje się przezroczysty i A AND Bobliczana jest nowa wartość . Ale ta wartość propaguje się do wejścia bramki AND tylko wtedy, gdy zatrzask U1 staje się przezroczysty (CLK jest WYSOKI), a w konsekwencji zatrzask U1 staje się przezroczysty (CLK jest NISKI). Co w zasadzie jest równoznaczne ze stwierdzeniem, że obwód jest teraz wrażliwy na zbocze (wartość wyjściowa zmienia się tylko na ujemnym zboczu zegara).

Pozwala to uniknąć problemu Wyjaśnionego wcześniej Wyścigu i dlatego wyzwalanie poziomu jest lepsze niż wyzwalanie zbocza.

Ironstein
źródło