Rozważmy przerzutnik D z dodatnim zboczem z sygnałem wejściowym X z czasem ustawiania 20 ns i czasem podtrzymania 0 ns. Jaka będzie produkcja?
C jest sygnałem zegarowym o okresie 40 ns.
Podczas szóstego zbocza dodatniego widzimy, że dane (lub X) nie są stabilne przez 20 ns (czas ustawiania), zanim osiągną wartość od 1 do 0. Więc wynik nie jest przewidywalny, prawda?
Kiedy zapytałem o to mojego profesora, powiedział, że wyjście flip-flopa będzie wartością wejścia (X) przed 20 ns, czyli tutaj 1.
Czy on ma rację?
Twój profesor musi ograniczyć zioła.
Ponieważ dane zmieniają się w czasie ustawiania, a ponieważ czas ustawiania to minimalna ilość czasu, zanim dane muszą być stabilne, nie jest możliwe określenie, czy wynik będzie zerowy, czy jeden. W rzeczywistości może nawet wejść w stan metastabilny i oscylować.
źródło
Jeśli dane są stabilne między czasem ustawiania i utrzymywania, to producent zatrzasku D gwarantuje, że wyjście zatrzasku D będzie przewidywalne, co będzie znajdować się w karcie danych.
Jeśli dane zmienią się podczas instalacji, aby utrzymać okno, prawdopodobnie jest to wynik równy 0 lub 1, ale producent nie stwierdza, który z nich.
Prawdopodobnie będzie to tylko 0 lub 1, nie jest to gwarantowane. Dane wyjściowe mogą przejść do metastabilności. Oznacza to, że może istnieć skończony i nieprzewidywalny dodatkowy czas poza normalnym opóźnieniem propagacji podanym w arkuszu danych, dla którego dwie bramki napędzane tym wyjściem mogą podejmować różne decyzje dotyczące tego, czy jest to 0, czy 1. To jest zła rzecz.
źródło
Jeśli dane wejściowe spełniają wymagania dotyczące konfiguracji i utrzymania, wówczas dane wyjściowe są zasadniczo „gwarantowane”, aby odzwierciedlić dane wejściowe; jeśli narusza czas konfiguracji, zachowanie nie jest już gwarantowane ani w pełni przewidywalne, jak mówisz.
Twój profesor może być „pewnie” w tym sensie, że może wyrażać, czym prawdopodobnie będzie sygnał wyjściowy, zwłaszcza jeśli interpretuje czas konfiguracji jako deterministyczny opis zachowania flip-flopa, zamiast minimalnego wymogu z możliwym zróżnicowaniem jednego zestawu warunków do następnego. Ale twoja interpretacja i instynkty są naprawdę celowe. Czasy konfiguracji i utrzymywania są zwykle stosowane do wyrażenia wartości min / maks, dla których można wiarygodnie przewidzieć zachowanie na podstawie zmian procesu / napięcia / temperatury, a ilekroć dane wejściowe naruszają te wartości, nie można wiarygodnie przewidzieć wyniku.
Jeśli przerzutnik ma zwykle do 20ns opóźnienia od wejścia do miejsca, w którym działa krawędź zegara, wówczas najprawdopodobniej wyjście będzie takie, jak na wejściu było „około” (do) 20ns przed krawędzią zegara, jak sugeruje profesor. Ale jedyne, co jest określone dla urządzenia, to to, że jeśli zostaną spełnione czasy konfiguracji i wstrzymania, wówczas dane wyjściowe będą podążać za danymi wejściowymi.
Innymi słowy, obaj możecie mieć rację do pewnego stopnia, ale twoja interpretacja jest w 100% słuszna, podczas gdy odpowiedź twojego profesora jest tylko „prawdopodobnie” słuszna, a stopień, w jakim jego odpowiedź będzie prawidłowa, - jak mówisz - nieobliczalny.
(I oczywiście w sensie praktycznym - a nie akademickim - użyłbyś tej odpowiedzi tylko w projekcie, w którym akceptowalne było, aby wynik w tym cyklu zegarowym wynosił „prawdopodobnie 1” bez jakiejkolwiek specyfikacji tego prawdopodobieństwa lub gdzie nie było żadnych rzeczywistych konsekwencji, że potencjalne przerzucenie flip-flopa do stanu metastabilnego „na jakiś czas”. Aplikacje te są rzadsze).
źródło
Dane wyjściowe będą nieznane, a symulator to odzwierciedli, ustawiając wartość wyjściową na „X”.
źródło