Skocz do zawartości

Ciekawa biblioteka VHDL ogólnego przeznaczenia (Xilinx Spartan3 i Spartan6)


FlyingDutch

Pomocna odpowiedź

Cześć,

znalazłem na GitHub ciekawą (moim zdaniem) bibliotekę ogólnego przeznaczenia do wykorzystania w projektach dla FPGA Xilinx - rodziny Spartan3 i Spartan6.

Biblioteka zawiera moduły wspomagające np.:

1) Generację zegara o częstotliwościach zarówno wyższych jak i niższych niż zegar płytki FPGA

2) Przydatne funkcje matematyczne i logiczne

3) Generację dowolnych opóźnień

4) Debouncer i skaner dla przycisków

5) Komunikację JTAG z komputerem PC

6) Synchronizację sygnałów z zegarem z innej domeny zegarowej

7) Bufor FIFO

8) Obsługę kart SD

9) Obsługę kodeka audio

10) Kominikację I2C i SPI

11) Obsługę pamięci SDRAM (jest w płytce MimasV2, nie ma w ElbertV2)

12) Generację wzorców przebiegów z pamięci ROM

13) Prosty generator PWM

14) Wspomaga generację obrazu VGA (obsługa sprites)

15) generator liczb pseudo-losowycgh

16) Obsługę enkodera obrotów i czujnika odległości

16) Trochę dodatkowych przydatnych funkcji.

Podaję link do tej biblioteki:

https://github.com/xesscorp/VHDL_Lib

Biblioteka została napisana dla zestawów FPGA : Xula i Xula-2:

http://www.xess.com/shop/product/xula-200/

http://www.xess.com/shop/product/xula2-lx25/

i zaweira stałe i pliki UCF specyficzne dla tych zestawów, jednak wkładając trochę pracy można ją przystosować do zestawów firmy Numato (ElbertV2 i MimasV2):

https://botland.com.pl/kursy-forbot/8596-elbert-v2-spartan-3a-plytka-rozwojowa-fpga-do-kursu-forbot.html

https://botland.com.pl/moduly-i-zestawy-fpga/8603-mimas-v2-spartan-6-plytka-rozwojowa-fpga.html

Ta druga plytka zawiera pamięć SDRAM.

Postaram się (to zajmie trochę czasu) przystosować (na początek podzbiór funkcji) przystosować tą bibliotekę do użycia z tymi dwoma zestawami FPGA firmy Numato.

Jestem ciekaw co sądzicie o przydatności tej biblioteki?

Pozdrawiam

Link do komentarza
Share on other sites

Fajny zestaw przykładów - przenoszenie na płytki Numato mogłoby być ciekawym ćwiczeniem.

Chociaż przyznam, że ostatnio trochę znudziły mi się "czyste" FPGA i ciągle zbieram się za Zynq-a. Tylko jakoś czasu brakuje.

Link do komentarza
Share on other sites

Fajny zestaw przykładów - przenoszenie na płytki Numato mogłoby być ciekawym ćwiczeniem.

Chociaż przyznam, że ostatnio trochę znudziły mi się "czyste" FPGA i ciągle zbieram się za Zynq-a. Tylko jakoś czasu brakuje.

Cześć Elvis,

miło Cię usłyszeć 🙂 Chciałbym to przenieść jako bibliotekę VHDL (na razie podzbiór modułów) dla Mimasa i Elberta (bez obsługi SDRAM).

Mogę Cię pocieszyć, że ja ostatnio też mam duże obciążenie w pracy w związku z nową ustawą RODO - szyfruje bazy biznesowe firmy AES'em (niestety nie jest to "SQL server, więc serwer DB nie obsługuje szyfrowania). Wbrew pozorom zaszyfrować bazy danych, tak, żeby były nadal "używalne" (z poziomu SQL) nie jest tak łatwo 😉

Widziałem, że w Kamami.pl pojawiły się dwu-rdzeniowe zestawy MYIR MYS-7Z010-L-C :

https://kamami.pl/komputery-sbc/569427-myir-mys-7z010-l-c-kit-z-ukladem-xilinx-xc7z010-1clg400c.html

i zacząłem się ponownie zastanawiać czy nie kupić tego zestawu 😉

Czekam, aż będziesz miał czas, aby opisać swoje dalsze próby z zestawem tej firmy.

Pozdrawiam.

Link do komentarza
Share on other sites

Ja na szczęście mam sprzętową realizację AES w moim SAMA5D2, chociaż czasem zostaje tylko AES128, ale zawsze. Co prawda to nie baza danych, ale też z tym trochę zabawy było 🙂

Jak chodzi o zestawy MYIR to na pewno nie polecam https://kamami.pl/komputery-sbc/569427-myir-mys-7z010-l-c-kit-z-ukladem-xilinx-xc7z010-1clg400c.html, lepiej już kupić tańszą wersję: https://kamami.pl/komputery-sbc/569428-myir-mys-7z010-l-c-s-z-ukladem-xilinx-xc7z010-1clg400c.html?search_query=MYIR+MYS-7Z010&results=6

Różnica jest 90zł, więc niby niewiele, ale za to dostajesz raptem:

* Przewód Ethernetowy (1,5 m, skrosowany)

* Przewód microUSB <>USB (1,2 m)

* Konwerter UART <> USB (MY-UART012U USB-to-UART)

* Zasilacz sieciowy 5V/2A

Przewód ethernet w dzisiejszych czasach nie musi być krosowany, więc można użyć dowolny, konwerter USB-serial to chyba nic specjalnego, a zasilacz który dostałem nie miał nawet wtyczki pasującej do gniazdek w Polsce... Więc moim zdaniem lepiej te 90 zł rozdać lub przebalować niż wyrzucać na taki zestaw 🙂

Natomiast tak jak pisałem wcześniej, sama płytka nie udostępnia właściwie ani jednego pinu... więc zestawem obowiązkowym jest: https://kamami.pl/akcesoria-myir/569429-myir-z-turn-lite-io-cape-plytka-rozszerzajaca-dla-z-turn-lite.html?search_query=MYIR+MYS-7Z010&results=6

Czyli wychodzi razem jakieś 545zł.

Wydaje mi się, że to dość sporo za zestaw, który właściwie nic nie oferuje - wszystko trzeba dopiero podłączać. Moja ulubiona jak na razie płytka to Zybo: https://kamami.pl/zestawy-uruchomieniowe/233795-zybo-410-279p-kit-edu.html?search_query=zybo&results=27 - wersja studencka kosztuje 599 zł, a dostajemy chociaż kilka diodek, przełączników wyprowadzeń itd. Najważniejsze że są do tego przykłady i dokumentacja.

Więc jak chodzi o moje doświadczenia z MYIR - podłączyłem zasilanie, wystartowałem minimalną wersję linuxa z dołączonej płytki, popatrzyłem że działa i tyle...

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

Wydaje mi się, że to dość sporo za zestaw, który właściwie nic nie oferuje - wszystko trzeba dopiero podłączać. Moja ulubiona jak na razie płytka to Zybo: https://kamami.pl/zestawy-uruchomieniowe/233795-zybo-410-279p-kit-edu.html?search_query=zybo&results=27 - wersja studencka kosztuje 599 zł, a dostajemy chociaż kilka diodek, przełączników wyprowadzeń itd. Najważniejsze że są do tego przykłady i dokumentacja.

Więc jak chodzi o moje doświadczenia z MYIR - podłączyłem zasilanie, wystartowałem minimalną wersję linuxa z dołączonej płytki, popatrzyłem że działa i tyle...

Mnie najbardziej martwi w przypadku zestawu firmy MYIR ten brak dobrej dokumentacji i wsparcia. Do zaoszczędzenia na ZYBO zostały mi jeszcze 2 miesiące oszczędzania, ale chyba rzeczywiście trzeba zostać przy ZYBO 😉

Mnie właściwie najbardziej by interesował akcelerator FPGA z PCI-Expres co najmniej 4-8 razy i dużym chipem FPGA, oraz ze 2 GB RAM (DDR3), ale ceny takich zestawów są poza moim zasięgiem finansowym 🙂

Pozdrawiam

Link do komentarza
Share on other sites

Ja po prostu nie wiedziałbym jak mogę taki zestaw wykorzystać 🙂 Jak na razie ElbertV2 jest idealnie na moim poziomie, tylko trochę brakuje mikrokontrolera. PicoBlaze to super sprawa do poznania zasad działania procesora, ale w praktyce jednak ciężko na tym cokolwiek zrobić. A do MicroBlaze jednak trzeba trochę mocniejszego układu - co niestety spowalnia syntezę.

W tej chwili bardzo ciekawie wyglądają płytki Maximator produkowane przez Kamami. To niestety Altera/Intel, ale relacja ceny do możliwości jest bardzo interesująca.

Link do komentarza
Share on other sites

Ja po prostu nie wiedziałbym jak mogę taki zestaw wykorzystać 🙂 Jak na razie ElbertV2 jest idealnie na moim poziomie, tylko trochę brakuje mikrokontrolera. PicoBlaze to super sprawa do poznania zasad działania procesora, ale w praktyce jednak ciężko na tym cokolwiek zrobić. A do MicroBlaze jednak trzeba trochę mocniejszego układu - co niestety spowalnia syntezę.

W tej chwili bardzo ciekawie wyglądają płytki Maximator produkowane przez Kamami. To niestety Altera/Intel, ale relacja ceny do możliwości jest bardzo interesująca.

Elvis,

Microblaze (w trochę okrojonej wersji bez FPU) można uruchomić na Spartanie6 (płytka MimasV2 z Numato). IP core z Microblaze na Mimasie mi się poprawnie syntezował (tylko pinów I/O było za mało na magistrale). Na większym Spartanie6 z "ISE IDE" można rozwijać projekty oparte na "IP Core Microblaze" (dla Spartana6).

Co do akceleratora FPGA na PCI chciałbym go użyć do projektu "koparki Etherum" oraz prób z pewnymi algorytmami matematycznymi. Do tych zastosowań potrzeba dużych ilości pamięeci RAM (kilka GB) oraz szybkiego interfejsu do zapisu danych na dysku (niestety taniej tu wychodzą GPU z CUDA czy OpenCL niż FPGA) 😥

Ostatnio używałem "Maximatora" (bo ma największy układ FPGA z tych, które posiadam) jednak praca z Quartusem to był dla mnie koszmar 🤯

Pozdrawiam

Link do komentarza
Share on other sites

Czesc,

wiem ze to moze glupie pytanie ale chcialam sie zapytac czy tych bibliotek mozna tez uzyc na Digilent Nexys4 ?

Jest to moja pierwsza plytka i nie mam doswiadczenia.

pozdrawiam

Cześć,

to nie jest głupie pytanie. Obawiam, się że może to być niemożliwe. Dlaczego: otóż ta biblioteka jest napisana dla dwóch specyficznych zestawów FPGA (Xula i Xula2). Kod w katalogu "Board_packages" zawiera stałe VHDL i pliki UCF (User constraint files) dla tych dwóch zestawów (oparte o FPGA Xilinx Spartan3 i Spartan6). Sa tam zawarte szczegóły dotyczące pinów zegarowych (i ich częstotliwości), mapowania pinów I/O parametrów pamięci SDRAM itp. O ile dla innych zestawów FPGA opartych na Spartan3 i Spartan6 można próbować wpisać tam parametry tych zestawów (np. zestaw MimasV2 firmy Numato) i powinno się to udać. Problemem jest, że niektóre moduły biblioteki np moduł: "ClkGen.vhd" wykorzystuje do generacji zegara o dowolnej częstotliwości "IP Core " Xilinxa do pętli synchronizacji fazowej PLL. Bibiloteka jest dla IDE do syntezy "ISE" Xilinxa i nie będzie prawdopodobnie działać z Vivado. Także wewnętrzne parametry budowy FPGA Artix-7 użytej w zestawie "Nexys4" są odmienne.

To co powinno się udać to wykorzystanie kodu VHDL części z modułów - możesz bazując na kodzie modułów z tej biblioteki (Xess VDL Library) napisać własny kod, który wykorzystasz w projektach z twoim zestawem FPGA "Nexys4".

Pozdrawiam

  • Lubię! 1
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.