Kurs FPGA Lattice (23). Kombinacyjny algorytm Double Dabble
Niedziela, 01 Wrzesień 2024
W poprzednim odcinku kursu nauczyliśmy się, w jaki sposób użyć algorytmu Double Dabble, aby pokazać na wyświetlaczu liczbę w formacie dziesiętnym. W tym odcinku zrobimy to samo, lecz w sposób kombinacyjny, a nie sekwencyjny. Zastanowimy się też, jakie są wady i zalety obu sposobów.
Przed lekturą niniejszego artykułu koniecznie przeczytaj odcinek 22, ponieważ dokładnie wytłumaczono w nim sposób działania algorytmu. A skoro nie musimy ponownie wyjaśniać tego zagadnienia, od razu przystąpimy do omawiania implementacji algorytmu sposobem kombinacyjnym.
Zasadnicza różnica między implementacją sekwencyjną i kombinacyjną jest taka, że układ kombinacyjny nie ma elementów pamięciowych tzn. przerzutników. Nie potrzebuje także sygnału zegarowego ani resetującego. Składa się tylko z bramek logicznych, multiplekserów, sumatorów i innych elementów kombinacyjnych, a stan jego wyjść zależy wyłącznie od obecnego stanu wejść. Po zmianie stanu wejść stan wyjść ustala się natychmiast po upływie pewnego czasu, zwanego czasem propagacji (więcej na ten temat pisaliśmy w odcinku 11, poświęconym statycznej analizie czasowej i maksymalnej częstotliwości zegara).
Moduł DoubleDabble w wersji kombinacyjnej
Przejdźmy do analizy kodu, pokazanego na listingu 1. Wejścia, wyjścia i parametry działają tak samo jak w poprzednim odcinku, z tą różnicą, że usunięte...
Aby kontynuować czytanie wykup
Prenumeratę
Kup teraz
Zobacz więcej w kategorii Notatnik konstruktora