Oparty na stanie przepływ wyzwalania umożliwia zdefiniowanie niestandardowego przepływu wyzwalania, aby uporządkować warunki wyzwalania. Te przykłady pokazują szablony dla typowych scenariuszy przepływu wyzwalania i ilustrują różne scenariusze, w których przepływ wyzwalania oparty na stanie jest przydatny. We wszystkich tych przykładach opis przepływu można wkleić bezpośrednio do zakładki Przepływu wyzwalania opartego na stanie SignalTap II za pomocą trybu wyświetlania Wszystkie stany w jednym oknie i zmodyfikować opis, aby pasował do Twojego scenariusza debugowania.
Uruchamianie w przypadku obiegów zdarzeń o większej lub równej 5 cyklach zegara
Konfiguracja stanu wyzwalania
Jeden podstawowy warunek wyzwalania jest zdefiniowany w zakładce konfiguracji do pożądanej wartości. TrigCond1 na poniższym wykresie to alias wartości konfiguracji AA przy użyciu konfiguracji tabeli Mnemonic.
Opis przepływu wyzwalania opartego na stanie
upewnij się, że warunek zawierający działanie wyzwalające jest pierwszy,
ponieważ oświadczenia warunkowe są oparte na priorytetach.
jeśli ( c1 > = 5)
uruchomić;
inaczej jeśli ( ! condition1)
przyrost c1;
inaczej jeśli ( condition1 && c1 < 5)
resetowanie c1;
Wynik analizy danych
Uruchamianie w przypadku obiegów zdarzeń dla mniej niż 5 cykli zegara
Konfiguracja stanu wyzwalania
Jeden podstawowy warunek wyzwalania jest zdefiniowany w zakładce konfiguracji do pożądanej wartości. TrigCond1 na poniższym wykresie to alias wartości konfiguracji AA przy użyciu konfiguracji tabeli Mnemonic.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1 && c1 > 0 && c1 < 5)
uruchomić;
inaczej jeśli ( ! condition1 && c1 < 6)
przyrost c1;
inaczej jeśli ( condition1 && c1 > 5)
resetowanie c1;
W przypadku długiej sekwencji, w której Warunek 1 nie występuje, warunek Przesłankę sekwencyjny (c1 <6) dodano w drugiej, jeśli oświadczenie warunkowe nie pozwala licznikowi na odkszładanie.
Wynik analizy danych
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( c1 > = 5)
uruchomić;
inaczej jeśli ( warunek1)
przyrost c1;
Wynik analizy danych
Uruchomione po piątej zmianie wartości grupowej
Metoda nr 1: użycie wyzwalacza czułego na brzegu
Konfiguracja stanu wyzwalania
W tym przypadku możemy zdefiniować warunek wyzwalania wrażliwego na brzeg, aby wykryć wszystkie przejścia magistrali do pożądanej wartości grupowej. Wymagamy wykrywania krawędzi w każdym bitie na naszej magistrali danych logicznie ANDed przy porównaniu z naszą pożądaną wartością grupową. W tym przypadku konieczny jest zaawansowany warunek uruchomienia. Konfiguracja z edytora zaawansowanych warunków wyzwalania pokazano poniżej.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli (c1 > = 5)
uruchomić;
inaczej jeśli (warunek1)
przyrost c1;
Wynik analizy danych
Metoda 2: użycie prostego wyzwalacza i przepływu wyzwalania opartego na stanie
Konfiguracja stanu wyzwalania
Ponieważ konfiguracja zaawansowanego stanu wyzwalania dla dużej wartości magistrali może być cumbernika, ta alternatywna metoda wykorzystuje podstawowy wyzwalacz i wykorzystuje oparty na stanie przepływ wyzwalający w celu wykrywania przejścia magistrali do pożądanej wartości grupowej.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli (warunek1)
Rozpocząć
przyrost c1;
goto ST2;
Końcu
stan ST2:
jeśli (c1 > = 5)
uruchomić;
warunku oczekiwania; pozostań w tym stanie, dopóki warunek 1 nie jest fałszywy do zignorowania
wszystkie warunki warunki1, które nie są zmianami w magistrali
inaczej, jeśli (! warunek1)
Rozpocząć
goto ST1;
Końcu
Wynik analizy danych
Należy pamiętać, że istnieje niewielka różnica w zachowaniu sposobu przechwytywania danych w porównaniu z pierwszą metodą. W tym przypadku w warunku wyzwalania używany jest wyzwalacz wrażliwy na poziom. Jeśli wartość magistrali jest parkowana na żądanej wartości grupowej na początku analizy danych, ta metoda uwzględnia wartość grupy w liczbie. Ponieważ pierwsza metoda zlicza jedynie przejście magistrali do pożądanej wartości grupowej, pierwsza metoda zignoruje pierwszą wartość grupową, jeśli wartość grupowa jest już za parkowana w magistrali na początku przejęcia.
Po warunku 1, następuje warunek2.
Konfiguracja stanu wyzwalania
Trzy podstawowe warunki wyzwalania są zdefiniowane w zakładce konfiguracji do pożądanych wartości. Pierwsze dwa warunki wyzwalania są ustawione na pożądane wartości grupowe. Trzeci warunek wyzwalania oznacza przechwytywanie pewnego rodzaju bezczynności transakcji na magistrali między pierwszym a drugim warunkiem. Ten warunek wyzwalania można określić jako "nie przejmuje się", jeśli jest on bardziej odpowiedni. Zanotuj użycie Mnemonics dla TrigCond1, TrigCond2 i IDLE.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli ( warunek 1 || warunki3)
goto ST2;
inaczej jeśli (warunki2)
goto ST3;
inaczej jeśli ( ! condition2)
goto ST1;
stan ST3:
uruchomić;
Wynik analizy danych
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli ( warunek 1)
goto ST2;
inaczej jeśli (warunki2)
uruchomić;
Innego
goto ST1;
Wynik analizy danych
Wyzwalanie stanu 2 nie występujące pomiędzy warunkiem1 a warunkiem3
Konfiguracja stanu wyzwalania
Trzy podstawowe warunki wyzwalania są zdefiniowane dla pożądanych wartości grupowych. Zanotuj ponownie korzystanie z Mnemonics.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli ( warunek3)
goto ST4;
inaczej jeśli ( ! condition2)
goto ST3;
Innego
goto ST1;
stan ST3:
jeśli ( warunek3)
goto ST4;
stan ST4:
uruchomić;
Wynik analizy danych
Wyzwalanie stanu 5. warunku dotyczącego warunku.
Konfiguracja stanu wyzwalania
Jeden podstawowy warunek wyzwalania jest zdefiniowany w zakładce konfiguracji do pożądanej wartości. TrigCond1 na poniższym wykresie to alias wartości konfiguracji AA przy użyciu konfiguracji tabeli Mnemonic.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( c1 > = 5)
uruchomić;
inaczej jeśli ( warunek1)
przyrost c1;
inaczej jeśli ( ! condition1)
resetowanie c1;
Wynik analizy danych
Wyzwalaj po naruszeniem sekwencji: warunek1-> condition2-> Condition3-> Condition4
Konfiguracja stanu wyzwalania
Cztery podstawowe warunki wyzwalania są skonfigurowane do żądanych wartości sekwencji. Mnemonics są używane we wszystkich czterech pokazanych warunkach wyzwalania.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST3;
inaczej jeśli ( warunek2)
goto ST4;
inaczej jeśli ( warunek3)
goto ST5;
inaczej jeśli ( warunek 4)
goto ST2;
Innego
uruchomić;
stan ST2:
jeśli ( warunek 4)
goto ST2;
inaczej jeśli (warunek1)
goto ST3;
Innego
uruchomić;
stan ST3:
jeśli (warunek1)
goto ST3;
inaczej jeśli (warunki2)
goto ST4 ;
Innego
uruchomić;
stan ST4:
jeśli (warunek2)
goto ST4;
inaczej jeśli (warunki3)
goto ST5;
Innego
uruchomić;
stan ST5:
jeśli (warunek3)
goto ST5;
inaczej jeśli ( warunek 4)
goto ST2;
Innego
uruchomić;
Wynik analizy danych
Uruchamianie w sekwencji brzegów sieci
Konfiguracja stanu wyzwalania
Trzy podstawowe warunki wyzwalania wrażliwe na brzeg są skonfigurowane dla pożądanej sekwencji. W tym przykładzie wyszukuje się wznoszącą się krawędź kanału 1, opadającą krawędź kanału 2, a następnie wznoszącą się krawędź kanału 3.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli (warunek1)
goto ST2;
stan ST2:
jeśli (warunek2)
goto ST3;
stan ST3:
jeśli (warunek3)
uruchomić;
Innego
goto ST1;
Wynik analizy danych
Włącz stan1, po którym następuje warunek2 po 5 cyklach zegara
Konfiguracja stanu wyzwalania
Dwa podstawowe warunki wyzwalania są zdefiniowane dla pożądanych wartości grupowych. Uwaga: wykorzystanie Mnemonics do TrigCond1 i TrigCond2.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli ( warunek1)
goto ST2;
inaczej jeśli ( ! condition2)
przyrost c1;
inaczej jeśli (warunek 2 && c1 >= 5)
uruchomić;
inaczej jeśli (warunki2 && c1 < 5)
goto ST1;
Wynik analizy danych
Uruchamianie w stanie 1, po którym następuje warunek2 w ciągu 5 próbek
Konfiguracja stanu wyzwalania
Dwa podstawowe warunki wyzwalania są zdefiniowane dla pożądanych wartości grupowych. Uwaga: wykorzystanie Mnemonics do TrigCond1 i TrigCond2.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli ( warunek1)
goto ST2;
inaczej jeśli ( ! condition2)
przyrost c1;
inaczej jeśli (warunki2 && < c1 = 5)
uruchomić;
inaczej jeśli (warunek2 && c1 > 5)
goto ST1;
Wynik analizy danych
Wyzwalanie przy stanie 1, po którym nie następuje warunek2 w ciągu 5 próbek
Konfiguracja stanu wyzwalania
Dwa podstawowe warunki wyzwalania są zdefiniowane dla pożądanych wartości grupowych. Uwaga: wykorzystanie Mnemonics do TrigCond1 i TrigCond2.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek 1)
goto ST2;
stan ST2:
jeśli (c1 == 5)
uruchomić;
inaczej jeśli ( warunek1)
goto ST2;
inaczej jeśli ( ! condition2)
przyrost c1;
Wynik analizy danych
Uruchamiaj po 5 przejściach w procesie przejściowym dla osób przechodzących na emeryturę
Konfiguracja stanu wyzwalania
W tym przykładzie potrzebny jest warunek wyzwalania, aby uchwycić wszelkie działania związane z przejściem na monitorowanej magistrali. Ponieważ wymagany jest warunek OR, potrzebny jest zaawansowany stan wyzwalania.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( c1 == 5 )
uruchomić;
inaczej jeśli ( ! condition1)
resetowanie c1;
inaczej jeśli ( warunek1)
przyrost c1;
Wynik analizy danych
Wyzwalaj, gdy warunek 1 występuje mniej niż 5 razy między warunkiem2 a warunkiem3
Konfiguracja stanu wyzwalania
W tym przykładzie wymagane są trzy warunki wyzwalania wrażliwe na brzeg, przy których każdy warunek wyzwalania zawiera porównanie z żądaną wartością grupową. Można to zrobić przy użyciu zaawansowanego edytora warunków wyzwalania. Na poniższym rysunku pokazano przykład z jednego z trzech warunków wyzwalania czułych na brzegu.
Opis przepływu wyzwalania opartego na stanie
stan ST1:
jeśli ( warunek2)
Rozpocząć
resetowanie c1;
goto ST2;
Końcu
stan ST2:
jeśli (warunek3)
goto ST3;
inaczej jeśli ( warunki2)
goto ST1;
inaczej jeśli ( warunek1)
przyrost c1;
inaczej jeśli ( condition3 && (c1 >= 5 ))
goto ST1;
stan ST3:
uruchomić;