Przy projektowaniu modeli takich jak częstościomierze, analizatory stanów logicznych itp można wybrać spośród wielu szkieletów konstrukcji, które można zaimplementować na wiele różnych sposobów. Spośród dostępnych wybrano te, które demonstrują jak ogólne zalecenia projektowe nie zawsze się sprawdzają. Należą do nich:
W przypadku kodowania maszyny stanów, problem zaprojektowania szybkiego rozwiązania sprowadza się m.in. do właściwego wybrania implementowanej maszyny stanów. Projektant może zdecydować się na jedną z wielu kombinacji możliwych do zaimplementowania w układach FPGA. W pierwszej kolejności należy zdecydować się automat Mealy’ego lub Moore’a, który to na ogół lepiej sprawdza się w układach FPGA [6]. Dokładniejszy opis automatów stanów, innych konstrukcji symulacyjnych jak i syntezowanych oraz ogólne zalecenia projektowe znaleźć można w pomocy programu WebPack oraz w „Language Templates” dostępnych w programie WebPack w miejscu:
Menu->Edit-> Language_Templates
Maszyny stanów przedstawiono w miejscu:
Menu->Edit-> Language_Templates-> Verilog-> Synthesis_Constructs-> Coding_Examples-> State_Machines
Jako przykładowy projekt wybrano częstościomierz którego automat stanów został przedstawiony na rysunku:
W przykładowym projekcie zdecydowano się na automat Moore’a, co nie jest najistotniejszym przedmiotem analizy w tym artykule. Dla analizy optymalizacji czasowej dużo bardziej interesującym zagadnieniem jest sposób zakodowania danej maszyny stanów który można zrealizować w następujący sposób:
W przypadku projektowanego modelu przykładowego częstościomierza wykazały, że najszybciej działającą maszyną stanów Moore’a jest konfiguracja nr 3 w tabeli:
Ze względu na niewielkie rozmiary maszyny stanów różnice są niewielkie. Można jednak stwierdzić, że wprawdzie kodowanie One-Hot jest szybsze od Binary, to jednak układ działa szybciej przy teoretycznie wolniejszym trybie Save.
Użycie w projekcie maszyny stanów znacznie ułatwia proces projektowania. Ważne jednak jest aby poprawnie wybrać maszynę stanów i jej konfigurację. Wybór właściwego rozwiązania z pewnością ułatwi przeprowadzenie kilu testów wybranych kombinacji.