Skocz do zawartości

Gra "Snake" na płytce FPGA "Mimas v.2" (Spartan6)


FlyingDutch

Pomocna odpowiedź

@FlyingDutch ciekawy projekt, wygląda na dość prosty jak się wie co robić 🙂 wrócę do niego jak zamknę obecny.

Nie pamiętam czy o to już pytałem - czy lepiej uczyć się VHDL czy Verilog, ale patrząc na dostępność przykładów i materiałów. Wydaje mi się, że kody w internecie są częściej w Verilogu i lepiej iść w tę stronę. Jak to jest z IPCore? Czy determinują one używane konkretnego z języków?

  • Lubię! 1
Link do komentarza
Share on other sites

23 minuty temu, Gieneq napisał:

Nie pamiętam czy o to już pytałem - czy lepiej uczyć się VHDL czy Verilog, ale patrząc na dostępność przykładów i materiałów. Wydaje mi się, że kody w internecie są częściej w Verilogu i lepiej iść w tę stronę. Jak to jest z IPCore? Czy determinują one używane konkretnego z języków?

Cześć @Gieneq,

masz rację - dostępnego w sieci kodu źródłowego jest zdecydowanie więcej w Verilogu 😉. Niektóre narzędzia do syntezy układów FPGA (czy symulatory) obsługują wyłącznie Verilog, także wybór ze względu na to kryterium jest oczywisty. Dla "IPCore's" przeważnie nie ma znaczenia jaki język projektu wybraliśmy (obsługują Verilog i VHDL). Można też mieć "mieszane" projekty - część źródeł w VHDL a część w Verilogu. Ja osobiście wolę VHDL (jak mam wybór), natomiast częściej mam do czynienia z kodem w Verilog'u.

Pozdrawiam

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

10 godzin temu, MR1979 napisał:

Jaki zestaw na początek proponowałbyś do nauki FPGA i Verilog?

Cześć,

to zależy, co chcesz robić i jak głęboko "wejść w temat". Z własnej praktyki wiem, że w "małych" zestawach szybko zaczyna brakować zasobów dla bardziej złożonych projektów. Na początek wybrałbym coś z Artix'em 7 - tak aby móc pracować w "Xilinx Vivado" które ma dużo większe możliwości niż "ISE". Co do zestawów z FPGA Intela to nie podpowiem, bo mam z nimi mało doświadczeń. Ogólnie to zły czas na kupowanie płytek FPGA, bo podrożały horrendalnie.

Na początek wybrałbym jeden z dwóch zestawów:

https://kamami.pl/zestawy-uruchomieniowe/562401-digilent-cmod-a7-35t-modul-uruchomieniowy-z-fpga-artix-7-410-328-35.html

https://kamami.pl/zestawy-uruchomieniowe/560134-artix-7-35t-arty-zestaw-ewaluacyjny-dla-fpga-artix-7.html

Jeśli koniecznie chciałbyś jednak układ Intela - to może ten zestaw:

https://kamami.pl/zestawy-uruchomieniowe/179815-terasic-de0-nano-zestaw-startowy-z-ukladem-fpga-z-rodziny-cyclone-iv-firmy-altera.html

Nie polecam zakupu płytki Maximator - powodem jest wyprowadzenie bardzo małej ilości pinów FPGA na złącza (chociaż sam projekt płytki jest bardzo fajny i ciekawie pomyślany).

Przeszukaj też starsze wątki w dziale "Układy programowalne" - tam był już dyskutowany taki temat i padło kilka propozycji (np. firmyQMtech).

Pozdrawiam

  • Pomogłeś! 1
Link do komentarza
Share on other sites

(edytowany)
2 godziny temu, Elvis napisał:

Przed wybraniem zestawu proponowałbym najpierw sprawdzić jaka dokumentacja jest do niego dostępna. Schemat, instrukcja, opis pinów to absolutne minimum. Warto jeszcze poszukać gotowych kursów, filmów lub tutoriali. Na początku FPGA bywają dość trudne, łatwiej zacząć mając odpowiednią pomoc. Inaczej płytka może skończyć w szufladzie z "rzeczami na później", co znam z doświadczenia 🙂

Jak chodzi o wybór samej płytki, to jak napisał kolega @FlyingDutch warto zastanowić się, jaki jest cel używania FPGA. Jeśli chcemy poznać podstawy, coś jak kurs Forbota (https://forbot.pl/blog/kurs-fpga-podstawy-vhdl-w-praktyce-spis-tresci-id22265) - najlepiej wybrać płytkę, do której jest kurs, więc Elbert V2 to chyba dobry wybór. Mogę też polecić Maximatora, chociaż nie każdy go lubi, ale moim zdaniem na początek to bardzo fajna opcja.

Natomiast odradzałbym Artix-7 i cokolwiek pracujące z Vivado do nauki podstaw. To środowisko jest tak koszmarnie powolne. W przypadku nieco większych projektów, każde oprogramowanie wymaga czasu, ale dla prostych układów używanych do nauki różnica jest ogromna.

Natomiast Vivado, płytki z Artix-7 i podobne świetnie się sprawdza jeśli chcemy przygotowywać układy oparte o gotowe bloki IP. Dodajemy soft-procesor, moduły peryferyjne. Następnie całość syntetyzujemy, a na koniec piszemy program jak na każdy inny mikrokontroler. Wtedy czas syntezy Vivado jest bardzo porównywalny np. z Quartusem, a samo środowisko chyba stabilniejsze (Quartus bardzo ucierpiał po przejęciu Altery przez Intela).

Warto też poczytać o innych układach niż para Xilix/Altera. LatticeSemi oferuje bardzo ciekawe układy np. ICE40, można również poczytać o "chińskich" modułach, są dostępne nawet z wbudowanym rdzeniem RISC-V.

Cześć @Elvis,

kolega zadający pytanie jest dość zaawansowany (wnoszę tak po projekcie konsoli do gier) i może być tak, że szybko znudzi mu się miganie diodą i projekty prostych liczników, czy rejestrów przesuwnych.  Z mojego doświadczenia wynika, że jest kilka istotnych czynników, które rzutują, czy można na danym zestawie FPGAj ćwiczyć ciekawe projekty - wymienię je według ważności:

1) odpowiednia liczba podstawowych zasobów FPGA (LUT i FF) = co najmniej 15000 (LUT i FF)

2) ilość pinów układu FPGA wyprowadzona na złącza

3) jakość narzędzi do syntezy

4) dobra dokumentacja i przykładowy kod dla płytki FPGA

4) dodatkowa pamięć RAM na płytce FPGA (SRAM,SDRAM, DDR)

5) liczba i rodzaj dostępnych w układzie FPGA bloków DSP

5) złącza wyjściowe/wejściowe wideo (VGA,HDMI)

5) złącze do kamery (najlepiej MIPI)

Aby próbować jakieś ciekawsze projekty, bardzo szybko zaczyna brakować zasobów np. BRAM na FPGA( nie mówię już o LUT i FF). Ciekawsze projekty bardzo szybko wymagają użycia soft-procesora (nie mówię już o układach SoC) no bo jaki może być stopień skomplikowania maszyn stanów skończonych używanych w projekcie. Ostatni rok poświeciłem na bardziej dogłębne poznanie Vivado i magistrali AXI (bo bez niej nie można zaprojektować nic sensownego w technologii Xilinx'a, dla Intela jest to magistrala Avalon) i nie spodziewałem się jak potężnym środowiskiem jest Vivado i nie chodzi o soft-CPU i SoC ale o samo korzystanie z IP Cores i tworzenie własnych układów pakowanych do IP Core, wykorzystanie np. ILA do debugowania skomplikowanych układów. Osobnym tematem są SoC - ja bardzo intensywnie uczyłem się korzystania z Zynq-7000 - zarówno w Vivado jak i SDK Xilinx'a.

Z czasami syntezy układów oczywiście masz rację, ale ja teraz potrafię "wybaczyć" Vivado dłuższe czasy syntezy projektów, wiedząc jak skomplikowane i potężne jest to narzędzie (niestety za złożoność płaci się dłuższymi czasami syntezy układu) . Co do płytki Maximator to też masz rację - została ona bardzo fajnie zaprojektowana, ale ma jedną zasadniczą wadę - jest nią liczba pinów układu FPGA wyprowadzona na złącza (która jest za mała, aby wypróbować jakieś większe projekty)

Osobiście uważam, że któryś z układów uruchomieniowych z FPGA z rodziny Artix-7 to najlepszy wybór na zestaw do nauki FPGA (najlepszy stosunek możliwości do ceny). Do zestawów FPGA Digilent'a opartych na Artix-7 jest bardzo dużo przykładowego kodu na ich stronie WWW (jest też bardzo dużo fajnych projektów na Github'ie) . Odnośnie nauki Vivado to polecam serię tutoriali dra. Sadri:

Mówię tu o całej serii (13 części) - jest to kilkanaście godzin intensywnego kursu Vivado, magistrali AXI, IP cores i SoC Zynq-70xx. Jak dotychczas nie znalazłem lepszych materiałów szkoleniowych dot. układów FPGA. Dla mnie ta seria szkoleniowa dra. Sadri była wielkim przełomem w nauce wykorzystania FPGA i środowiska Xilinx Vivado.

Co do układów FPGA innych producentów to staram się zamieszczać na forum materiały dotyczące układów FPGA chińskiej firmy "Gowin Semiconductors" (i samego RISC-V), lecz nie polecał bym ich początkującym użytkownikom, bo trudniej z nich korzystać. Czasami jedynym materiałem referencyjnym jest tu schemat zestawu FPGA i trzeba umieć się nim posłużyć. Mam nadzieję, że tym wpisem trochę wyjaśniłem dlaczego uważam zestawy uruchomieniowe z FPGA z Artix-7 za dobry wybór do nauki układów FPGA. Niestety w czasie tego 2021 roku ceny wszystkich zestawów FPGA (także tych dostępnych na AliExpress.com) poszybowały niebotycznie w górę.

Pozdrawiam wszystkich.

Edytowano przez FlyingDutch
  • Lubię! 1
Link do komentarza
Share on other sites

@FlyingDutch Masz oczywiście rację, dlatego napisałem że wszystko zależy od celu takiej płytki - jeśli interesuje nas poziom bloków IP, soft/hard- procesory itd. wtedy vivado jest ok. Kolega @MR1979 zapytał "co na początek", stąd moje obawy, czy Artix oraz Vivado to dobry wybór. Dla mnie początek to poziom kursu z ElbertV2, ew. bardzo podstawowe soft-procesory, takie miganie diodą ale na procesorze.

Jak chodzi o filmy to ja korzystałem ze starszych, chociaż tego samego autora:

Warto wiedzieć, że zmienił konto, ale nadal publikuje materiały 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

5 minut temu, Elvis napisał:

@FlyingDutch Masz oczywiście rację, dlatego napisałem że wszystko zależy od celu takiej płytki - jeśli interesuje nas poziom bloków IP, soft/hard- procesory itd. wtedy vivado jest ok. Kolega @MR1979 zapytał "co na początek", stąd moje obawy, czy Artix oraz Vivado to dobry wybór. Dla mnie początek to poziom kursu z ElbertV2, ew. bardzo podstawowe soft-procesory, takie miganie diodą ale na procesorze.

Warto wiedzieć, że zmienił konto, ale nadal publikuje materiały 🙂

@Elvis

doskonale wiesz, że moje początki to także Elbert v.2 i bardzo proste projekty. Dlatego bez sprecyzowania co kolega wątkotwórca oczekuje od pierwszego zestawu FPGA, trudno coś doradzić.

odnośnie dra. Sadri to ewidentnie "wymiata" i stworzył niesamowite zasoby szkoleniowe. IMHO: godne polecenia są także wykłady Prof. Nitina Chandrachoodan'a - tutaj przykład dwóch części dot. implementacji (Z Vivado HLS) algorytmu FFT i jego testów w rzeczywistym układzie:

 

Pozdrawiam

Link do komentarza
Share on other sites

@FlyingDutch Wspomniałeś o MIPI, używałeś może kamerki z FPGA? Szczególnie mnie interesuje jak działa odczyt obrazu po linuksem. Wiem że Xilinx ma sporo gotowych driverów dla swoich modułów IP, ale nie testowałem czy v4l2 działa bez problemu.

Link do komentarza
Share on other sites

4 minuty temu, Elvis napisał:

@FlyingDutch Wspomniałeś o MIPI, używałeś może kamerki z FPGA? Szczególnie mnie interesuje jak działa odczyt obrazu po linuksem. Wiem że Xilinx ma sporo gotowych driverów dla swoich modułów IP, ale nie testowałem czy v4l2 działa bez problemu.

@Elvis,

używałem wyłącznie bardzo prostych kamer CMOS z interfejsem równoległym (nawet bez Soft-CPU i buforem obrazu zaimplementowanym w pamięci BRAM układu FPGA) - próby są opisane na Forbocie.  Niestety nie mam żadnego zestawu FPGA z nowszym interfejsem do kamery. Planowałem zakup takiej płytki (bridge video) firmy Lattice:

https://www.latticesemi.com/usb3

, ale na razie nie mam na nią kasy.  Chciałem użyć tej płytki Lattice do podłączenia sensowniejszej kamerki do płyki "Zybo"z SoC Zynq-7000 z W styczniu planuję zakup "Sipeed lichee tang nano 4k" z FPGA firmy Gowin i małą kamerką ze złączem MIPI.

https://pt.aliexpress.com/item/1005003152104886.html?spm=a2g0s.9042311.0.0.38c2b90aOCx3I2

Niestety nie mam na razie doświadczenia z użyciem kamery w Linux'ie na układach SoC, chociaż planuję to zmienić w nowym roku 😄.

Życzę wszystkim dużo udanych projektów z użyciem układów FPGA w nowym 2022 roku.

Link do komentarza
Share on other sites

Jak chodzi o latticesemi to moim zdaniem trzeba bardzo uważać z dostępnością materiałów... niektóre są świetnie udokumentowane i opisane, a do innych nie ma nic, właściwie tylko gotowe demo, nawet bez kodów źródłowych.

Myślałem, że do Zybo można podłączyć kamerkę po MIPI, chyba w Zybo Z7 jest już taka opcja (https://kamami.pl/zestawy-uruchomieniowe/567064-digilent-zybo-z7-10-410-351-10.html). Ostatnio bawiłem się wyjściem i wejściem HDMI na Zybo Z7, ale nie używałem jeszcze kamery. No i wejście HDMI testowałem tylko na gołych rejestrach, a ciekaw jestem czy są gotowe drivery pod linuksa.

  • Lubię! 1
Link do komentarza
Share on other sites

Jak chodzi o nowe płytki z obsługą kamery, to ciekawie zapowiada się KV260: https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit.html

Xilinx sporo ostatnio inwestuje w AI (przy okazji psując poprzednie kody i projekty), a cena płytki wydaje się wręcz dumpingowa.

@FlyingDutch Dziękuję za życzenia, Tobie również samych udanych projektów i ogólnie wszystkiego dobrego w 2022 roku.

  • Lubię! 1
Link do komentarza
Share on other sites

1 minutę temu, Elvis napisał:

Myślałem, że do Zybo można podłączyć kamerkę po MIPI, chyba w Zybo Z7 jest już taka opcja (https://kamami.pl/zestawy-uruchomieniowe/567064-digilent-zybo-z7-10-410-351-10.html). Ostatnio bawiłem się wyjściem i wejściem HDMI na Zybo Z7, ale nie używałem jeszcze kamery. No i wejście HDMI testowałem tylko na gołych rejestrach, a ciekaw jestem czy są gotowe drivery pod linuksa.

Niestety pierwsza wersja "Zybo", którą posiadam nie miała jeszcze wejścia do kamery - czego bardzo żałuję.

Pozdrawiam

Link do komentarza
Share on other sites

(edytowany)
1 godzinę temu, Elvis napisał:

Jak chodzi o nowe płytki z obsługą kamery, to ciekawie zapowiada się KV260: https://www.xilinx.com/products/som/kria/kv260-vision-starter-kit.html

Xilinx sporo ostatnio inwestuje w AI (przy okazji psując poprzednie kody i projekty), a cena płytki wydaje się wręcz dumpingowa.

@FlyingDutch Dziękuję za życzenia, Tobie również samych udanych projektów i ogólnie wszystkiego dobrego w 2022 roku.

Dzięki za życzenia 😀.

Czytałem jakiś czas temu opis tej płytki i też uważam, że ma bardzo dobrą cenę. To czego żałuję to fakt, że w mojej pracy nie są wykorzystywane układy FPGA i na pewno nie będę w stanie uzasadnić zakupu płytki KV260. W tym roku namówiłem szefa na spróbowania AI (Keras+TensforFlow). Docelowym układem był RPI-Compute Module4"  z podłączoną kamerą.Była to lampa do sterylizacji wind i RPI (poza innymi czujnikami) był dodatkowym zabezpieczeniem, przed włączeniem lampy UV, gdy w windzie będzie człowiek. Nawet udało mi się osiągnąć dużą pewność wykrywania  ciał ludzi (i psów, na koty zabrakło czasu), ale szkolenie modelu i utworzenie zbiorów treningowych kosztowało sporo pracy.

Dużo szczęścia w 2022 roku 😃

Edytowano przez FlyingDutch
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.