wersja mobilna | kontakt z nami

Pierwsze kroki z FPGA (3)

Numer: Czerwiec/2016

Szkoła MAXimatora - testowanie funkcjonalne i weryfikacja działania projektu w środowisku Quartus Prime z wykorzystaniem symulatora ModelSIM. W tej części artykułu przedstawimy krok-po-kroku symulację projektu licznika, którego przygotowanie opisaliśmy miesiąc temu. Do symulacji użyjemy bezpłatnego symulatora ModelSIM oraz wbudowanego w Quartus Prime graficznego edytora przebiegów.

Pobierz PDF

Środowisko projektowe Quartus Prime zostało wyposażone przez producenta w kilka narzędzi umożliwiających symulowanie funkcjonalne projektów implementowanych w FPGA. W artykule pokażemy najprostszy z nich, wykorzystujący symulator wbudowany w środowisko.

Jego właściwości użytkowe są wystarczające do symulowania projektów implementowanych w bezpłatnej wersji programu Quartus Prime, bazuje on na specjalnej, bezpłatnej wersji zewnętrznego symulatora ModelSIM firmy Mentor Graphics. Za edycję i prezentację przebiegów będących wynikiem symulacji odpowiada wygodny w użyciu Waveform Editor.

Rysunek 1. Symulacja projektu wymaga przygotowania dla aktualnie otwartego projektu pliku o rozszerzeniu vwf

Rysunek 2. Okno edytora przebiegów Waveform Editor

Rysunek 3. Wyświetlenie menu kontekstowego

Symulacja projektu wymaga przygotowania dla aktualnie otwartego projektu pliku o rozszerzeniu vwf, co wymaga wybrania w oknie File → New, w sekcji Verification/Debugging Files, opcji University Program VWF (rysunek 1). Spowoduje to otwarcie okna edytora przebiegów Waveform Editor, które pokazano na rysunku 2.

Rysunek 4. Okno Insert Node or Bus

Rysunek 5. Okno Node Finder

Jak widać jest ono puste, musimy wprowadzić do opisu symulacji wszystkie linie wejściowe i wyjściowe oraz sygnały (węzły) wewnętrzne, których działanie chcemy uwzględnić w testach. W tym celu stajemy myszką w lewej części okna edytora i klikamy prawym przyciskiem myszy, co spowoduje wyświetlenie menu kontekstowego (rysunek 3), z którego wybieramy opcję Insert Node or Bus..., co spowoduje wyświetlenie okna pokazanego na rysunku 4.

Rysunek 6. Okno filtru (preselektora)

Rysunek 7. Schemat projektu

Żeby wyświetlić wszystkie interesujące nas sygnały, linie wejściowe i wyjściowe, należy przycisnąć przycisk Node Finder..., w wyniku czego zostanie wyświetlone okno jak na rysunku 5. W zależności od tego, jakiego rodzaju sygnały nas interesują, warto użyć preselektora (filtru), który znajduje się w górnej prawej części wyświetlonego okna (rysunek 6), przy czym trzeba pamiętać, że po ustaleniu trybu filtrowania trzeba każdorazowo nacisnąć przycisk List, który odświeża listę wyświetlonych sygnałów.

Rysunek 8. Przeniesienie sygnałów do Selected Nodes

Rysunek 9. Wyświetlenie wybranych sygnałów w edytorze przebiegów

W naszym przypadku skupimy się na analizie zmian stanów na liniach wyjściowych w zależności do zmian stanów na liniach wejściowych, więc filtr powinien być ustawiony na Pins: all. Listę znalezionych przez symulator linii wejściowych i wyjściowych widać na rys. 5, warto ją porównać z naszym projektem (rysunek 7) - jak widać, w obydwu przypadkach nazwy linii wejściowych i wyjściowych są identyczne.

Rysunek 10. Wybór opcji Value → Count Value z menu kontekstowego

Rysunek 11. Okno edycji przebiegu zegarowego

Po wybraniu linii i/lub sygnałów, które będą uwzględniane podczas symulacji (w naszym przypadku będą to wszystkie linie) przenosimy je do listy Selected Nodes (rysunek 8). Wybór zatwierdzamy przyciskiem OK, po zatwierdzeniu w kolejnym oknie także za pomocą OK, wybrane sygnały zostaną wyświetlone w edytorze przebiegów jak pokazano na rysunku 9. Liniom wejściowym domyślnie są przypisane stany logicznego "0", a wyjściom stany nieustalone.

Rysunek 12. Wyświetlenie symulowanego przebiegu

Rysunek 13. Przykładowe defi nicje przebiegów

Teraz musimy przypisać stany linii wejściowych, na które będziemy badać reakcje wyjść zaprojektowanego układu. Zaczniemy od utworzenia na wejściu CLKin sygnału zegarowego, co wymaga ustawienia kursora myszki w dowolnym miejscu edytowanego przebiegu i naciśnięcia prawego przycisku myszki.

Z wyświetlonego menu kontekstowego wybieramy opcje Value → Count Value (rysunek 10), co spowoduje wyświetlenie okna edycji przebiegu zegarowego, które pokazano na rysunku 11. W pozycji Transitions Occur można zdefiniować odstępy czasowe pomiędzy zboczami sygnału zegarowego (dla wartości 10 ns okres przebiegu wynosi 20 ns).

W wyniku opisanego ciągu operacji uzyskaliśmy przebieg jak pokazano na rysunku 12. W podobny sposób postępujemy z pozostałymi sygnałami wejściowymi, na rysunku 13 pokazano przykładowe definicje przebiegów.

Rysunek 14. Wynik symulacji funkcjonalnej weryfi kowanego układu

Rysunek 15. Grupowanie wybranych linii w magistrale

Symulator wbudowany w Quartus Prime umożliwia wykonanie dwóch rodzajów symulacji:

  • Funkcjonalnej, podczas której brane są pod uwagę wyłącznie zależności logiczne pomiędzy sygnałami, bez uwzględnienia wpływu czasów ich propagacji na działanie układu.
  • Czasowej, która jest bliższa realnym układom, bowiem oprócz zależności logicznych brane są pod uwagę także zależności czasowe pomiędzy sygnałami. Na rysunku 14 pokazano wynik symulacji funkcjonalnej weryfikowanego układu.

Edytor przebiegów wyposażono w kilka mechanizmów, które ułatwiają przygotowanie symulacji projektów o większej niż w przykładzie liczbie analizowanych wejść i wyjść. Można na przykład grupować wybrane linie w magistrale (rysunki 15 i 16), można także zmieniać format wyświetlanych wartości w zależności od indywidualnych potrzeb (rysunek 17).

Rysunek 16. Wyświetlenie przebiegu na zgrupowanych liniach

Rysunek 17. Zmiana formatu wyświetlanych wartości

W ten sposób przeszliśmy kompletną ścieżkę implementacji prostego projektu w FPGA. W kolejnym wydaniu EP skupimy się na pokazaniu zaawansowanych mechanizmów weryfi kacji projektów implementowanych w FPGA, koncepcyjnie zbliżonych do debugowania programów uruchamianych na mikrokontrolerach.

Piotr Zbysiński, EP

Pozostałe artykuły

System sterowania DMX512 dla każdego (3) Adresowanie urządzeń

Numer: Sierpień/2016

W kolejnej części kursu obsługi urządzeń z interfejsem DMX512 wykonamy próbne sterowanie oświetleniem w postaci diod LED RGB. Zainstalujemy też program pomocniczy, ułatwiający adresowanie urządzeń DMX i chroniący przed popełnianiem błędów.

Zastosowanie modułu Wi-Fi ESP-12 (2). Wirtualny interfejs szeregowy

Numer: Sierpień/2016

UART jest jednym z interfejsów używanych do komunikacji. Jest on łatwy w obsłudze programowej i użyciu, szczególnie w wypadku komunikacji z komputerem PC. Dla uzyskania podstawowej funkcjonalności jest przyłączenie jedynie 3 linii: RxD, TxD oraz masy. Ileż prościej by było, gdyby można zastosować taki interfejs bez używania żadnych kabli. Pozwoliłoby to na bezproblemową komunikację komputera z systemem wbudowanym, bez konieczności ...

Programowanie paneli HMI (4)

Numer: Lipiec/2016

Praca z nowym urządzeniem zawsze zaczyna się od prostego przykładu. Takim przykładem zazwyczaj jest Hello world, czyli tak naprawdę sprawdzenie poprawności działania urządzenia. W tym odcinku kursu HMI wykonamy nieskomplikowany ekran wizualizacji z napisem "Hello world!".

System sterowania DMX512 dla każdego (2). Konfigurowanie urządzeń oraz okablowanie sieci

Numer: Lipiec/2016

W kolejnej części kursu obsługi urządzeń z interfejsem DMX512 zajmiemy się skonfigurowaniem urządzeń w sieci DMX512. Podamy też uwagi, które pozwolą na wykonanie poprawnego okablowania oraz uzyskanie wymaganego zasięgu transmisji danych. Jest to szczególnie ważne przy tworzeniu rozległych instalacji scenicznych.

Podstawy programowania STM32F746G-DISCO (3). Jak zbudować oscyloskop z FFT z użyciem STM32F746G-DISCO

Numer: Lipiec/2016

W ostatniej części artykułu poświęconego aplikacji próbkującej i wyświetlającej sygnał z wejścia liniowego zostaną omówione pakiet BSP, biblioteki graficzna STemWin, matematyczna ARM CMSIS DSP oraz moduł do wykrywania podstawowych gestów wykonanych przez użytkownika na panelu dotykowym.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Sierpień 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym