Co w FPGA siedzi

Środowisko Quartus pozwala na sprawdzenie w jaki sposób nasz projekt został zrealizowany w układzie FPGA. W tym krótkim wpisie pokażę jak to można sprawdzić.

Materiał jest dostępny w wersji video oraz tekstowej.

Jako przykład posłuży nam projekt FFT, który można pobrać z repozytorium. Po uruchomieniu zobaczymy główne okno programu Quartus (rys 1). Uruchamiamy budowę projektu klikając Compile Design (1).

Główny ekran programu Quartus

Rysunek 1. Główny ekran programu Quartus

Następnie z znajdującego się po prawej stronie okna Task, rozwijamy: Analysis&Synthesis (1) -> Netlist Viewer (2) i wybieramy RTL Viewer (3), tak jak pokazano na Rysunku 2.

Menu task

Rysunek 2. Menu Task

Otworzy się nowe okno, w którym zobaczymy nasz projekt rozrysowany na poziomie RTL (Register-transfer level). Jest to wysokopoziomowy sposób pokazywania logiki. Nie jest on związany ze strukturą układu FPGA (Rysunek 3).

RTL viewer

Rysunek 3. Fragment widoku RTL

Następnie przejdziemy do kolejnego widoku: Technology Map Viewer (Post Fitting). Prezentuje go Rysunek 4.

Technology Map viewer

Rysunek 4. Technology Map Viewer (Post Fitting)

Tutaj już widzimy tylko elementy, które są dostępne w układzie FPGA. Mamy jeszcze drugi, pokrewny widok Technology Map Viewer (Post-Mapping). Jest on podobny, ale tym razem poszczególne bloki są przyporządkowane do konkretnych miejsc w strukturze układu. My jednak przejdziemy do kolejnego widoku. W zakładce Task rozwijamy Fitter i wybieramy Chip Planner (Rysunek 5).

Menu Task

Rysunek 5. Menu Task

Gdy go wybierzemy zobaczymy okno podobne do tego z Rysunku 6.

Chip Planner

Rysunek 6. Chip Planner

Widzimy tutaj strukturę układu FPGA. Kolorem niebieskim zaznaczone są bloki CLB, zielonym RAM, a brązowym DSP. Gdy przybliżymy, zobaczymy wewnętrzną budowę poszczególnych bloków, oraz które ich części są użyte. Możemy także włączyć widok połączeń. W lewym menu wybieramy zakładkę Layers (1) i zaznaczamy Routing Details (2). Uzyskany wynik prezentuje Rysunek 7.

Chip Planner

Rysunek 6. Widok połączeń pomiędzy blokami

Mam nadzieję, że ten krótki opis zachęci Was do samodzielnego sprawdzania jak Wasze projekty są implementowane. Pozwala nam to lepiej zrozumieć układ i wykorzystać jego możliwości.