Kurs FPGA – #10 – edytor graficzny, bramki logiczne

Kurs FPGA – #10 – edytor graficzny, bramki logiczne

Tym razem coś zupełnie innego. Okazuje się, że z FPGA można korzystać całkiem swobodnie bez znajomości VHDL.

Edytor graficzny to narzędzie, które pozwala na rysowanie schematów składających z bramek logicznych, które następnie są automatycznie implementowane wewnątrz FPGA.

Pierwsza aplikacja w edytorze graficznym

Zacznijmy od stworzenia nowego projektu w Xilinx ISE. Ustawienia dla projektu są takie same, jak w przypadku tworzenia aplikacji w VHDL. W hierarchii projektu wybieramy New source. Pojawi się kreator dodawania nowych plików. Tym razem wybieramy opcję Schematic.

Dodawanie pliku typu schematic do projektu.

W tym momencie Xilinx ISE powinien się przełączyć na widok edytora graficznego:

kurs_fpga_6_2

Widok pustego pliku "Schematic".

Warto zwrócić uwagę na nowe zakładki w menu po lewej stronie, takie jak Symbols oraz Options. Są to jedne z najważniejszych miejsc podczas korzystania z edytora graficznego.

Zakładka Symbols

Na zakładce Symbols znajdziemy dwie listy: Categories oraz Symbols. Są tam elementy logiczne, z których będziemy za chwilę korzystać. Dla nas najważniejsze będą funktory, które umieszczono w kategorii Logic. Po kliknięciu w tę nazwę w sekcji Symbols pojawi się lista bramek, które możemy wykorzystać.

Przykładowa dokumentacja dla elementu logicznego.

Zakładka Options

Zawartość zakładki Options jest zależna od wybranego narzędzia. Omawianiem potrzebnych funkcji zajmiemy się podczas ich wykorzystywania w dalszej części kursu.

Zestaw elementów do kursu

Gwarancja pomocy na forum Błyskawiczna wysyłka

Zestaw uruchomieniowy Elbert v2 - Spartan 3A z wszystkimi niezbędnymi peryferiami do wykonania ćwiczeń z kursu FPGA!

Kup w Botland.com.pl

Pasek narzędzi

Kolejne ważnym elementem interfejsu jest przybornik, który zawiera narzędzia używane do rysowania połączeń. Wszystkie narzędzia będziemy poznawać stopniowo, gdy będą potrzebne.

Przybornik zawierający narzędzia do rysowania schematów.

Edytor graficzny w praktyce - implementacja NOT

Czas stworzyć pierwszą aplikację w edytorze graficznym. Dzięki temu szybko zapoznamy się z nowym środowiskiem oraz jego opcjami. Stworzymy prostą bramkę NOT, do jej wejścia podłączymy przycisk SW1, a to wyjścia diodę D8.

Implementacja bramki NOT na FPGA - edytor graficzny.

Wybieramy narzędzie, które pozwoli umieszczać symbole na schemacie:

Narzędzie dodawania elementów - Add Symbol.

Po kliknięciu ikonki aktywowana zostanie od razu zakładka Symbols (po lewej stronie). W sekcji categories wybieramy pozycję logic, a z listy dostępnych funktorów wybieramy pozycję inv. Obok niej zobaczymy również bliźniacze opcje np. inv4 oraz inv8. Wszystkie te elementy są bramkami NOT - wartość stojąca za "inv" określa liczbę wejść bramki.

Po wskazaniu odpowiedniego funktora pod nasz kursor z automatu "podczepi się" symbol bramki. Aby go umieścić na schemacie wystarczy kliknąć w wybranym miejscu. Podczas pracy z edytorem schematów wygodne jest korzystanie z kombinacji CTRL+kółko myszy (przybliżanie i oddalanie obrazu).

Po odpowiednim ustawieniu bramki NOT wystarczy nacisnąć klawisz Esc, dzięki temu wrócimy do narzędzia zaznaczania. Alternatywnie można je aktywować klikając w odpowiednią ikonkę:

Narzędzie zaznaczania - Select.

Błędnie narysowaną bramkę można usunąć bardzo łatwo. Wystarczy wybrać narzędzie Select, zaznaczyć odpowiednią bramkę i nacisnąć klawisz Delete. W celu zaznaczenia kilku bramek można posłużyć się klawiszem Ctrl.

Poprawnie umieszczona bramka NOT powinna wyglądać następująco:

kurs_fpga_6_18

Schemat po umieszczeniu bramki NOT.

Kolejnym krokiem będzie przypisanie właściwych nazw do wyprowadzeń umieszczonej bramki. Do tego będziemy potrzebować narzędzie Add I/O Marker.

Narzędzie do etykietowania przewodów - Add I/O Marker.

Po wybraniu wskazanego narzędzia należy kliknąć na lewe (wejściowe) wyprowadzenie bramki NOT oraz na prawe (wyjściowe). Pojawią się tam domyślne nazwy:

Wygenerowane nazwy wejść/wyjść bramki.

Pora odpowiednio nazwać wyprowadzenia, aby były łatwiejsze w identyfikacji. W tym celu należy wybrać narzędzie Select i kliknąć dwukrotnie na utworzonej etykiecie.

Zaczynamy od lewej strony: po podwójnym kliknięciu na wejście pojawi się okno Object Properties. W polu Category klikamy na Nets i nadajemy nazwę Switch0. Powinno to wyglądać zgodnie z poniższym zrzutem ekranu:

Okno "Object Properties".

Okno "Object Properties".

Zapisujemy zmiany przyciskiem OK i postępujemy analogicznie dla wyjścia bramki NOT nadając jej nazwę LED0. Gotowy schemat powinien wyglądać następująco:

Schemat po poprawnym opisaniu etykietami.

W tym momencie schemat naszej prostej aplikacji jest już gotowy!

Dodawanie pliku UCF

Teraz do projektu oczywiście należy dodać plik UCF. W pliku tym posługujemy się wcześniej zdefniowanymi nazwami sygnałów. Poprawna zawartość pliku powinna wyglądać tak:

Gdy plik UCF będzie podpięty od projektu w Xilinx ISE można będzie przeprowadzić już proces syntezy. Tutaj sprawa ma się podobnie jak w poprzednich częściach kursu. Przełączamy się na zakładkę Design, na której widzimy hierarchię projektu. Zaznaczamy plik ze schematem i klikamy dwa razy lewym przyciskiem myszy w Generate Programming File.

Teraz można wgrać program na płytkę - identycznie jak robiliśmy to poprzednio. Bramka NOT powinna działać tak samo jak taka, którą napisalibyśmy "ręcznie" w VHDL.

Podsumowanie

Pierwszy projekt korzystający z edytora graficznego za nami. Jest to dobry moment na wykonanie kilku podobnych ćwiczeń we własnym zakresie. W kolejnej części kursu zajmiemy się bardziej rozbudowanymi bramkami oraz ich łączeniem. Dajcie znać w komentarzu jak podoba się Wam taki sposób "programowania" FPGA!

Nawigacja kursu

Autor kursu: Adam Bemski
Redakcja: Damian Szymański
Ilustracje, testy: Piotr Adamczyk

O autorze: Adam Bemski

Adam Bemski
Autorem kursu jest Adam Bemski, specjalista od systemow wbudowanych. Pracuje w obszarze automatycznego testowania urządzeń z funkcjonalnością IoT. Adam dodatkowo prowadzi zajęcia z techniki mikroprocesorowej na wyższej uczelni DHBW Stuttgart. Więcej szczegółów o Adamie na blogu adambemski.com.

bramki, fpga, kurs, kursFPGA, Schemat, vhdl

Komentarze

Komentarze do tego wpisu są dostępne na forum: