Skocz do zawartości
FlyingDutch

Microblaze (soft-CPU) "HelloWorld" przykład

Pomocna odpowiedź

Cześć,

gdyby ktoś chciał "wyklikać" prosty projekt dla soft-CPU (Xilinx) "Microblaze" to dołączam cały projekt (Xilinx Vivado+ Xilinx SDK). Taki projekt to dobry punkt wyjścia dla bardziej złożonych eksperymentów. Projekt jest ogólnie na FPGA Artix7 (a dokładnie dla FPGA "CmodA7" Digilenta), Jednak dla innego FPGA wystarczy zmienić typ FPGA w projekcie Vivado i dokonać zmiany w pliku "User constraints" xdc projektu. Tutaj link do układu FPGA "CmodA7":

https://reference.digilentinc.com/reference/programmable-logic/cmod-a7/start?redirect=1id=cmod_a7/cm

Miałem kilka miejsc w których utknąłem, więc zamieszczam cały projekt - łącznie z projektem dla SDK. Projekt był wyklikany na podstawie tego tutoriala na Youtube:

Projekt syntetyzuje się i kompiluje poprawnie (układ FPGA można zaprogramować bezpośrednio z SDK - patrz tutorial). Niesttey spakowany projekt jest dość duży - około 40 MB. Do mikroblaze jest podłączony UART wiec możemy sobie przy jego użyciu wyświetlać pewne dane z programu.

Może ktoś doda coś "od siebie" do projektu - z chęcią bym obejrzał. Microblaze jest dobrym punktem wyjścia do podłączania dodatkowych modułów do FPGA (np. komunikacyjnych: Ethernet lub CAN). Patrz linki:

https://kamami.pl/pmod-digilent/569688-digilent-pmod-can-410-353-kontroler-magistrali-can-20b.html

https://botland.com.pl/moduly-i-zestawy-fpga/12183-numato-lab-100base-t-rozszerzenie-ethernet-dla-fpga.html

Pozdrawiam

microblaze_design.zip

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Próbowałem uruchomić przykład na Basys3, ale pojawiły się jakieś problemy z nazwami GPIO - chyba jednak ja nie lubię Xilinx-a, a on mnie. Jednak zostanę na razie przy Alterze, może kiedyś do Xilinxa wrócę... Ale bardzo fajnie że wstawiłeś przykład. Co prawda >40MB to trochę sporo. Może udałoby się wyodrębnić tylko pliki źródłowe? Wtedy projekt powinien być dużo mniejszy.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Cześć Elvis,

ja też miałem "po drodze" kilka przystanków, gdzie utknąłem na dłużej. Cały proces tworzenia Microblaze z użyciem kilku IP core Xilinxa (darmowych)  w Vivado nie jest bardzo przejrzysty (szczególnie konfigurowanie ich wzajemnych połączeń). Byłem trochę zdziwiony, bo "wyklikanie" podstawowego Microblaze w "ISE"  dla Spartana 6 było dużo przyjemniejsze i bardziej intuicyjne (o czasach generacji nie wspomnę). Ja też się chyba bliżej przyjrzę Intel'owi, bo ich zestawy są teraz korzystniejsze cenowo (szczególnie te większe).

Projekt jest taki duży, bo w tym projekcie Vivado jest też projekt z niego wygenerowany dla SDK (nie generowałem go do osobnego Workspace Eclipse (SDK) tylko do katalogu projektu Vivado. Ja też miałem problemy z fazą implementacji projektu w Vivado.

Pozdrawiam i dziękuję za komentarz.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Mnie właśnie najbardziej zniechęca czas syntezy projektu - to pewnie nie problem dla kogoś z doświadczeniem w FPGA. Ale jak się robi głupie błędy to strasznie zniechęca. Dzisiaj miałem problem z Basys3 i definicją pinów. Wszystko robiłem jak w tutorialu z youtube-a, ale okazało się że XDC dostarczane przez digilentinc "nie pasuje" do domyślnie tworzonego komponentu GPIO. XDC wygląda poprawnie, piny dla LED-ów są po prostu wyjściami. Natomiast wybierając AXI GPIO i leds_16bit, dostaję linie trójstanowe... Niestety każda próba poprawienia projektu to co najmniej 3min czekania żeby się dowiedzieć, że jednak coś jest źle. To pewnie banalny błąd, ale mnie zniechęcił. Faktycznie ISE potrafiło w kilka, może kilkadziesiąt sekund wyświetlić błąd, a w vivado to minuty czekania. Podobno dla większych projektów nie ma różnicy, niestety do nauki najlepiej sprawdzają się te małe 😞

A co do Altery to moim zdaniem bardzo dobry pomysł - no i będzie raźniej poznawać tą samą platformę. Masz jakiś pomysł na płytkę ewaluacyjną?

Udostępnij ten post


Link to post
Share on other sites
27 minut temu, Elvis napisał:

Mnie właśnie najbardziej zniechęca czas syntezy projektu - to pewnie nie problem dla kogoś z doświadczeniem w FPGA. Ale jak się robi głupie błędy to strasznie zniechęca. Dzisiaj miałem problem z Basys3 i definicją pinów. Wszystko robiłem jak w tutorialu z youtube-a, ale okazało się że XDC dostarczane przez digilentinc "nie pasuje" do domyślnie tworzonego komponentu GPIO. XDC wygląda poprawnie, piny dla LED-ów są po prostu wyjściami.

A co do Altery to moim zdaniem bardzo dobry pomysł - no i będzie raźniej poznawać tą samą platformę. Masz jakiś pomysł na płytkę ewaluacyjną?

Cześć,

miałem dokładnie prawie te same problemy co Ty z tym projektem 😉

Ja też się przymierzam do zakupu płytki z SoC Intela, a w najbliższej przyszłości mam zamiar poeksperymentować z NIOSII na Maximatorze, którego posiadam. Co do błędów w FPGA to podejrzewam, że robię ich tyle samo co Ty (lub więcej) i mnie czasy syntezy w Vivado też denerwują.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Ja trochę bawiłem się maximatorem i uważam że to świetna płytka na początek. Niestety MAX10, który jest na pokładzie to jedna z mniejszych wersji, więc po pewnym czasie okazuje się trochę "ciasny". Jak chodzi o SoC, to najtańszy jest chyba DE0-Nano-SoC (https://kamami.pl/zestawy-uruchomieniowe/558403-terasic-de0-nano-soc-kit-p0286-zestaw-startowy-z-ukladem-altera-cyclone-v-soc.html). Duża zaleta to chociaż trochę więcej dokumentacji niż w przypadku innych modeli. Niestety synteza dla SoC działa już wolniej niż w przypadku maximatora - nadal dużo szybciej niż vivado, ale do początkowych projektów chyba lepiej sprawdza się maximator.

A może warto byłoby opisać i udostępnić projekty przygotowane dla maximatora? Może innym użytkownikom to by pomogło? A jeśli nie to chociaż byłoby łatwiej samemu odszukać to co się już zrobiło i zapomniało.. 🙂

Udostępnij ten post


Link to post
Share on other sites

Cześć,

ja chciałbym uruchomić ten moduł dodatkowy z "Numato Lab.":

https://botland.com.pl/moduly-i-zestawy-fpga/12183-numato-lab-100base-t-rozszerzenie-ethernet-dla-fpga.html

dlatego będę musiał jeszcze jakiś czas pozostać przy Microblaze (przykładowy kod z Numato jest właśnie dla Microblaze). Ale jak to skończę, to jestem otwarty na próby z NIOS i Maximatorem (niestety będę musiał lepiej poznać narzędzia Intela do syntezy).

Pozdrawiam

 

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...