staram się odpowiedzieć również jeśli jest to trudne, ponieważ każdy kod osoba jak on lubi i w zależności od stanu, w którym sprzęt ma pracować (częstotliwość, ścieżki zewnętrzne, ...).
w maszynie państwowej masz jakieś elementy:
- wejść
- wyjść
- obecny stan
- następny stan
Następny stan zależy od aktualnego stanu i dane wejściowe. Aby nie mieć pętli kombinacyjnych, należy pobrać następny stan w momencie wystąpienia sygnału zegarowego, aby stał się on stanem bieżącym. Potrzebujesz więc procesu VHDL, aby utworzyć flip-flop dla stanu. W tym procesie można umieścić całą logikę potrzebną do obliczenia następnego stanu. Jeśli twoje wyniki zależą tylko od stanu, nie potrzebujesz innych procesów.
Nie lubię stosować tego samego procesu logicznego, gdy logika nie jest bardzo łatwa (lubię, ale nie jest to obowiązkowe!), Więc zwykle dzielę FSM na dwa procesy: pierwszy bardzo łatwy Przetwórz próbkę następnego stanu, aby mieć bieżący, i jeden proces kombinacyjny, w którym obliczę wszystkie wyjścia i następny stan jako funkcję wejść i bieżącego stanu.
W tych samych przypadkach należy próbkować wyjść: na przykład, gdy dla problemu częstotliwości należy oddzielić ścieżki wewnętrzne od zewnętrznych lub gdy wyjścia mają duże obciążenie. W takim przypadku możesz dodać wszystkie niezbędne flip-flopy w pierwszym procesie, w którym próbujesz następnego stanu lub utworzysz jeden lub więcej dedykowanych procesów.
Ale możesz mieć także wiele wariantów jako liczbę procesów: Pracowałem w kodzie, gdzie każdy sygnał jest obliczany w dedykowanym procesie, więc wynikowa maszyna stanowa miała proces 20/30.
XST PDF z Xilinx pokazuje przykłady 1,2 i 3 procesowych FSM (dziwnie wystarczy tylko jeden z dwóch wariantów 2 procesu). Jest to po części kwestia Mealy-Moore'a i w dużej mierze osobiste preferencje lub uczenie się na pamięć. Ci, którzy mają analityczne skłonności, mogą zwrócić uwagę na implikacje elementów obecnych na listach wrażliwości. – user1155120
@DavidKoontz Jaki byłby drugi wariant 2-procesowego FSM? Jeden proces dla rejestru państwowego i inny proces dla wszystkiego innego? – rick
XST pdf to miłe odniesienie, dziękuję. @DavidKoontz –