FPGA w środowisku MATLAB: rozwiązania oparte na modelach

Weryfikacja układu logicznego FPGA w środowisku MATLAB

Narzędzie System in the Loop Narzędzie System in the Loop umożliwia uruchamianie projektu układu FPGA w czasie rzeczywistym ze środowiska MATLAB. Zdolność do wykonywania operacji w czasie rzeczywistym może mieć kluczowe znaczenie dla algorytmów o dużej szybkości przetwarzania danych. Tradycyjne symulacje MATLAB dla takich algorytmów mogą skutkować opóźnieniami z powodu wydłużenia czasu obliczeń. Narzędzie System in the Loop, które jest dostarczane razem z narzędziami DSP Builder dla układów Intel® FPGA, umożliwia przyspieszenie złożonego, wysokoprzepustowego stało- lub zmiennoprzecinkowego przetwarzania sygnału cyfrowego (DSP) w sprzęcie FPGA. To narzędzie umożliwia również kontrolowanie, debugowanie, wizualizację i weryfikację projektów FPGA - to wszystko w środowisku MATLAB.

Interfejs programowania aplikacji (API), za pomocą którego oprogramowanie MATLAB uruchomione na Twoim komputerze komunikuje się z płytą FPGA, umożliwia przetwarzanie danych w czasie rzeczywistym na sprzęcie FPGA zamiast symulacji w oprogramowaniu MATLAB. Parametry i dane dotyczące bodźców są przekazywane z obszaru roboczego MATLAB do FPGA, a wyniki obliczeń sprzętu FPGA są odczytywane i wyświetlane przez oprogramowanie MATLAB w celu dalszej analizy.

Rysunek 1 przedstawia przykład wizualizacji procesu przetwarzania sygnału radarowego i kształtowania wiązki w środowisku MATLAB.

Rysunek 1. Wizualizacja procesu przetwarzania sygnału radarowego i kształtowania wiązki w programie MATLAB.

Weryfikacja projektu układu FPGA w programie MATLAB przy użyciu narzędzi do debugowania na poziomie systemu firmy Intel

System in the Loop jest częścią portfolio narzędzi do debugowania na poziomie systemu firmy Intel, które także obejmuje Transceiver Toolkit (zestaw narzędzi do nadajników-odbiorników), External Memory Interface Toolkit (zestaw narzędzi interfejsu pamięci zewnętrznej), a także bardziej ogólne narzędzia, takie jak konsola systemowa oraz Platform Designer (dawniej Qsys). Platform Designer (dawniej Qsys) wykorzystuje interfejsy mapowania pamięci (Avalon®-MM) lub streamingu (Avalon®-ST) do budowania sieci o różnych topologiach i hierarchiach.

Konsola systemowa to narzędzie, które może być wykorzystane do monitorowania i oprzyrządowania pomiarowego projektu układu FPGA. Można jej użyć do sprawdzenia taktowania lub resetowania sieci. Konsola może również wykonywać bardziej zaawansowane zadania, takie jak sterowanie określonymi wzorcami dostępu mapowanymi w pamięci oraz sprawdzanie odpowiedzi. Przydaje się zarówno do uruchomienia płyty, jak i automatyzacji testów produkcyjnych. Za jej pomocą możesz tworzyć interaktywne pulpity nawigacyjne do określonych zadań, jak pokazano na rysunku 2.

Rysunek 2. Pulpit nawigacyjny konsoli systemowej

Konsola systemowa może również wykonywać niskopoziomowe debugowanie sprzętowe dla dowolnego oprogramowania typu Platform Designer (dawniej Qsys). API programu MATLAB umożliwia dostęp do wywołań funkcji za pomocą konsoli systemowej, co z kolei zapewnia dostęp do sprzętu FPGA. Pięć prostych poleceń MATLAB służy do odświeżania, otwierania, odczytu, zapisu i zamykania kanału komunikacyjnego między projektem w programie MATLAB a sprzętem FPGA.

Połączenie sprzętowe do FPGA można zrealizować za pomocą starszego interfejsu JTAG lub interfejsu USB 2.0, jak pokazano na rysunku 3. USB Debug Master zapewnia prędkość do 480 Mb/s, pozwalając na przyspieszone, wysokowydajne przetwarzanie w układach FPGA. Rysunek 4 pokazuje, że sygnały JTAG lub USB można łatwo przekierować do testowanego urządzenia (ang. DUT - device under test) za pomocą narzędzia Platform Designer (dawniej Qsys).

Rysunek 3. Stos protokołów sprzętowych do połączenia MATLAB i FPGA

Rysunek 4. Dostęp do JTAG i USB Debug Master

Na rysunku 5 DSP Builder dla układów Intel® FPGA (Advanced Blockset) jest używany do tworzenia projektu FPGA. To narzędzie tworzy wysokiej jakości stało- i zmiennoprzecinkowe kody poziomu transferu rejestru (RTL) z wykorzystaniem funkcji fMAX i zasobów na równi z wysoce zoptymalizowanym ręcznie kodowanym językiem opisu sprzętu (HDL). Możesz również projektować w tradycyjnym języku Verilog lub VHDL, a następnie dodać porty Avalon® do interfejsów, aby podłączyć swój projekt za pomocą narzędzia Platform Designer (dawniej Qsys).

Rysunek 5. Podłączenie projektu FPGA do JTAG lub USB Debug Master

Wszystkie zasoby FPGA można podłączyć za pomocą narzędzia Platform Designer (dawniej Qsys), a projekt układu FPGA jest dodawany jako komponent Platform Designer (dawniej Qsys). Zobacz rysunek 6.

Rysunek 6. Schemat platformy projektowej

Zarówno dane wejściowe, jak i wyjściowe są buforowane na chipie, dzięki czemu sprzęt FPGA może działać z pełną prędkością systemu na buforowanych danych. Interfejsy pokazane na rysunku 7 to interfejsy Avalon®-ST.

Rysunek 7. DUT FPGA najwyższego poziomu

System buforu wejściowego pokazano na rysunku 8. Zwróć uwagę, że rejestr używa wyzwalaczy do zapisu adresów, gdy dane są ładowane za pomocą polecenia zapisu MATLAB. System bufora wyjściowego jest podobny do systemu buforu wejściowego.

Rysunek 8. Bufor danych wejściowych w symulacji typu system in the loop

Następnie szablon platformy projektowej jest dodawany do projektu w oprogramowaniu Intel® Quartus® Prime, a projekt jest kompilowany, jak pokazano na rysunku 9.

Rysunek 9. Dodawanie szablonu Platform Designer do projektu w Quartus® Prime

Wreszcie, skompilowany projekt jest ładowany do FPGA. Teraz możesz sterować całym systemem za pomocą poleceń MATLAB, jak pokazano na rysunku 10:

Rysunek 10. System sterowania FPGA za pomocą środowiska MATLAB

Dostępne są gotowe szablony projektów typu system in the loop, ułatwiające weryfikację projektów układów dla różnych płyt projektowych Intel® FPGA, takich jak układy FPGA Stratix® IV, Stratix® V i Cyclone® V.