Co to jest ograniczenie taktowania fałszywej ścieżki?

10

W świecie FPGA jakie dokładnie są ograniczenia fałszywej ścieżki dla kompilatora HDL? Dlaczego są przydatne?

Randomblue
źródło
1
To koncepcja cyfrowa, a nie tylko koncepcja FPGA.
W5VO,

Odpowiedzi:

14

Fałszywe ścieżki to ścieżki pomiaru czasu, które tak naprawdę nigdy nie zostaną wykorzystane w ostatecznym projekcie. Załóżmy, że projektujesz 4-bitowy licznik i okazuje się, że istnieje bardzo wolna ścieżka opóźnienia przy zwiększaniu z 12 do 13. Jeśli twój projekt zawsze resetuje licznik, ilekroć liczba wynosi 9, wtedy ta wolna ścieżka nigdy nie będzie widoczna w rzeczywisty projekt. Wolną ścieżkę oznaczysz jako ścieżkę fałszywą, aby kompilator nie tracił czasu ani nie dodawał żadnej dodatkowej logiki, aby przyspieszyć działanie fałszywej ścieżki.

Joe Hass
źródło
5
Huh i myślałem, że fałszywa ścieżka ma związek z używaniem Atmels zamiast PIC lub czegoś takiego.
Olin Lathrop,
Wydaje mi się, że bardziej znaczącym rodzajem fałszywej ścieżki jest sygnał, który zmienia się na brzegu jednego zegara i jest próbkowany na brzegu innego zegara, ale albo sygnał tak naprawdę nigdy się nie zmieni w pobliżu czasu drugiego zegara lub jeśli nic się nie zmienia, nic nie obchodzi jego wartości. Narzędzia analizy synchronizacji prawdopodobnie zawiodą, chyba że doda się podwójny synchronizator, który był kontrolowany przez drugi zegar, ale dodanie takiego synchronizatora może całkowicie zepsuć projekt. Na przykład pierwszy zegar może działać z częstotliwością 1
MHz,
... urządzenie generujące sygnał może zmienić go o trzy cykle 1 MHz po tym, jak zobaczy rosnącą krawędź zegara 32KHz. W związku z tym można zagwarantować, że sygnał zatrzaśnięty przez zegar 32 kHz spełnia wymagania próbkowania / blokady zatrzasku 32 kHz bez dodatkowej synchronizacji. Jeśli logika po stronie 1MHz wygenerowała swoje dane w oparciu o to, co robiła strona 32KHz, taki projekt mógłby pozwolić, aby informacje wygenerowane w jednym cyklu po stronie 32 kHz przenikały w obie strony do następnego cyklu. Dodanie podwójnej synchronizacji po stronie 32 Khz by to zepsuło.
supercat
8

Fałszywa ścieżka to ścieżka, która istnieje w projekcie, ale nie odgrywa roli w operacji, więc nie jest konieczne uwzględnianie jej w analizie synchronizacji.
Przyczyny mogą być różne, ale ponieważ narzędzie do analizy czasu zwykle nie wie (chociaż istnieją narzędzia, które mogą je wykryć), które ścieżki mogą być użyte, czy nie, musisz to powiedzieć. Jest podobny do ścieżki wielocyklowej, w której można powiedzieć, że do ukończenia określonej ścieżki można użyć więcej niż jednego cyklu.

Przykładem (fałszywej ścieżki) jest rejestr, który można zapisać raz po włączeniu, ale potem pozostaje w tym samym stanie.

Oli Glaser
źródło
1

Po prostu, fałszywa ścieżka jest ścieżką logiczną, którą chcesz wykluczyć z kontroli, aby sprawdzić, czy spełnia ona harmonogram podczas analizy synchronizacji. Istnieją dwa powody, aby wykluczyć ścieżki, po pierwsze dlatego, że fałszywa ścieżka sprawi, że narzędzia będą ciężej pracować, aby osiągnąć synchronizację dla tego sygnału, co z kolei wpłynie na uzasadnione ścieżki sygnału, prawdopodobnie powodując dodatkowe błędy synchronizacji i ponieważ spowoduje, że kontrola synchronizacji zgłosi awarie ewentualnie odwracając uwagę projektanta od uzasadnionych błędów synchronizacji.

Fałszywe ścieżki są spowodowane ścieżkami logicznymi między niezwiązanymi zegarami asynchronicznymi lub zegarami o tej samej częstotliwości, ale o nieznanej zależności fazowej lub ścieżką, która nigdy nie zostałaby aktywowana podczas normalnej pracy obwodu. Powiedzenie narzędziu, aby zignorowało ścieżkę, nie powoduje, że czas działa, tylko że nie jest sprawdzany. Do projektanta należy ręczne upewnienie się, że dla tych ignorowanych ścieżek sygnału stosowana jest poprawna logika synchronizacji.

Ray Haynes
źródło