Skocz do zawartości

Kurs FPGA - #7 - symulacja działania układu


Komentator

Pomocna odpowiedź

html_mig_img
Za nami kilka ćwiczeń praktycznch, wiemy już, że FPGA działa poprawnie i możemy tworzyć na jego podstawie przeróżne układy cyfrowe.Podczas analizy bardziej złożonych projektów przydaje się możliwość symulowania tworzonego układu. Dzięki wykorzystaniu nowej funkcji ISE, otrzymamy wykresy (przebiegi czasowe), które pozwolą ocenić czy układ działa poprawnie.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Cześć,

kurs solidnie wykonany - podoba mi się. Sam jakiś czas temu uczyłem się podstaw FPGA na tym zestawie: Elbert v.2. Jeśli jednak zakończy się na dotychczas przedstawionym materiale, to jego wartość praktyczna nie będzie wielka. Aby miał znaczenie praktyczne dodałbym następujące zagadnienia:

1) Ze dwie lekcje dot. maszyn stanów i ich implementacji w FPGA, oraz zastosowań

2) Komunikacja poprzez SPI i IC2 pomiędzy FPGA a mikro-kontrolerem (np. Arduino)

3) komunikacja UART FPGA - mikrokontroler (łatwo można zagadnienie rozszerzyć o komunikację po RS485 za pomocą shields do Arduino UART-RS485 za kilkanaście PLN)

4) Podłączenie najprostszego wyświetlacza LCD (interfejs równoległy) do FPGA

5) Podłączanie peryferiów dodatkowych np. ADC po SPI/IC2

6) Jedna lekcja dot. soft-CPU np. PicoBlaze/Microblaze i IP Core ogólnie)

7) Podanie literatury/linków do nauki składni VHDL/Verilog i dalszych ćwiczeń oraz zasobów firmy Xilinx/intel, a także stron WWW z darmowymi IP cores

Pozdrawiam

[ Dodano: 25-11-2017, 14:35 ]

Cześć,

odnośnie tej części kursu wspomniałbym także o jednej z możliwych wersji instrukcji wait, mianowicie o postaci "wait on (sygnal)", która często może uprościć pisanie testów układu (a także skrócić czas symulacji w niektórych przypadkach).

Trzy postacie instrukcji wait:

1) wait for odcinek_czasu
2) wait on nazwa_sygnalu      (lub kilku sygnałów)
3) wait until warunek-logiczny

np.
wait on (R,C); -- czekaj na zmianę sygnałów R,C

Trzeba pamiętać, że instrukcję wait można używać tylko w procesach lub procedurach.

Do rozszerzenia wiedzy o składni VHDL polecam książkę nieżyjącego już profesora Józefa Kalisza (WAT) o tytule "Kurs języka VHDL" - mnie ta pozycja dała bardzo dużo na wstrepnym etapie nauki VHDL.

Pozdrawiam

Link do komentarza
Share on other sites

FlyingDutch, patrząc na spis treści kursu łatwo się domyślić, że obejmuje on tylko podstawy. Z drugiej strony jeśli masz jakieś doświadczenia z płytką Elbert, dlaczego nie podzielić się z innymi użytkownikami forum? Możesz niezależnie od kursu napisać kilka artykułów o nieco bardziej zaawansowanej tematyce - ja chętnie pocztam 🙂

Również mam pewien niedosyt po przerobieniu podstaw, więc może warto pociągnąć kurs dalej, nie czekając aż ktoś to zrobi za nas.

Link do komentarza
Share on other sites

FlyingDutch, patrząc na spis treści kursu łatwo się domyślić, że obejmuje on tylko podstawy. Z drugiej strony jeśli masz jakieś doświadczenia z płytką Elbert, dlaczego nie podzielić się z innymi użytkownikami forum? Możesz niezależnie od kursu napisać kilka artykułów o nieco bardziej zaawansowanej tematyce - ja chętnie pocztam 🙂

Również mam pewien niedosyt po przerobieniu podstaw, więc może warto pociągnąć kurs dalej, nie czekając aż ktoś to zrobi za nas.

Napisałem po prostu, jakie podstawowe tematy były mi potrzebne, aby zacząć praktyczną pracę z układami programowalnymi. Niestety temat jest bardzo obszerny i trudno osiągnąć minimalny poziom wiedzy pozwalający zacząć pracę z układami FPGA. Z chęcią napiszę jakiś artykuł (myślę, że na temat komunikacji poprzez UART pomiędzy FPGA a mikro-kontrolerem), niestety obawiam się, że nie będzie on tak dobrze wykonany jak ten kurs (to wymaga sporego nakładu pracy - szczególnie opracowanie strony wizualnej).

Pozdrawiam

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

Nie traktuj mojego wpisu jako atak, czy krytykę. Chodziło mi o to, że może fajnie byłoby własnymi siłami założyć coś jak kącik fanów FPGA 🙂 Też bawiłem się Elbert-em napisałem kilka programów, ale jakoś straciłem zapał. Może takie dzielenie się "osiągnięciami" i dyskusja co można zrobić lepiej dałaby wszystkim okazję do rozwijania. Nie chodziło mi o pisanie artykułów w takiej formie jak artykuły na blogu - po prostu założyć wątek i opisać co nauczyliśmy się o FPGA i Elbercie.

Link do komentarza
Share on other sites

Nie traktuj mojego wpisu jako atak, czy krytykę. Chodziło mi o to, że może fajnie byłoby własnymi siłami założyć coś jak kącik fanów FPGA 🙂 Też bawiłem się Elbert-em napisałem kilka programów, ale jakoś straciłem zapał.

Hej Elvis, absolutnie nie potraktowałem twojego wpisu jako krytyki 😉

To o czym piszesz (utrata zapału), to właśnie przejaw problemu o którym mówię - aby zrobić coś ciekawego na FPGA/CPLD potrzebny jest bardzo szeroki zakres wiedzy, co po pierwszych prostych układach prowadzi do zniechęcenia tematem. Nie oszukujmy się - temat układów programowalnych jest bardzo trudny (to niestety nie są mikro-kontrolery), poza tym trzeba mieć 'background" w postaci znajomości układów cyfrowych. Elbert to bardzo fajny zestaw dla początkujących jednak nie nadaje się do trudniejszych tematów z powodu za małej ilości zasobów (ilość LUT na poziomie 1400 to za mało aby używać ciekawszych IP corów, czy soft CPU). Aktualnie przesiadłem się na "Digilent Cmod A7-35T Moduł uruchomieniowy z FPGA Artix-7" i ćwiczę "MicroBlaze" a docelowo przymierzam się do zestawu:

Digilent ZYBO Z7-10 z Voucherem Zynq SDSoC (471-014)

z (AP SoC) ZYNQ XC7Z020-1CLG400C

czyli połączenie dwu-rdzeniowgo ARM Cortex-A9 z dużym układem FPGA i 1 GB RAM DDR3

Jest to trochę połączenie 'wody z ogniem" czyli lepiej znanego świata mikro-kontrolerów z układem FPGA. Docelowo chciałbym wykonać "proof of concept" dla "koparki" kryptowaluty Etherum pobierającej dużo mniej energii niż koparki oparte na GPU (algorytm Ethash dla tej waluty wymaga dużo RAM dlatego jest trudny do zaimplementowania na układach FPGA czy ASIC).

Zakończenie kursu FPGA Forbot na planowanych lekcjach to jak: nauczyć kogoś czytać a nie dać mu dostępu do biblioteki. Oczywiście można napisać artykuły na kilka tematów, ale nie będą one na takim poziomie jak ten kurs (chociażby z powodu ograniczeń czasowych autora takich artykułów) 🙂

Pozdrawiam

Link do komentarza
Share on other sites

Bez przesady, nic nie jest trudne - tylko najpierw się trzeba tego nauczyć 🙂

Jak dla mnie Elbert jest właśnie fajny bo mały. Wygenerowanie programu zajmuje znośny czas i nie trzeba łączyć gotowych IP-corów żeby cokolwiek działało. Do nauki moim zdaniem idealny 🙂

Na zybo kilka rzeczy próbowałem zrobić, ale czas generowania projektu mnie zniechęcił. Fajny układ, szczególnie z linux-em na pokładzie, tylko zupełnie nie dla początkujących. Teraz FPGA + CortexA9 ma też Altera, ale to inna sprawa.

Co do zniechęcenia to u mnie nie wynikało ono z poziomu trudności, lubię wyzwania. To raczej tak - robimy pierwszy, drugi trzeci przykład, a później zaczyna się nudzić... Dlatego podzielenie się wiedzą z innymi i uczenie niejako razem to moim zdaniem fajny pomysł. Na szybko wkleiłem jeden z pierwszych programików: https://www.forbot.pl/forum/topics51/kurs-fpga-wlasne-programy-vt14886.htm#121369

Mam jeszcze trochę liczników wykorzystujących wyświetacz segmentowy Elbert-a, komunikację po SPI i generowanie obrazu na VGA. Później niestety straciłem zapał 🙁

Link do komentarza
Share on other sites

Bez przesady, nic nie jest trudne - tylko najpierw się trzeba tego nauczyć 🙂

Co do zniechęcenia to u mnie nie wynikało ono z poziomu trudności, lubię wyzwania. To raczej tak - robimy pierwszy, drugi trzeci przykład, a później zaczyna się nudzić... Dlatego podzielenie się wiedzą z innymi i uczenie niejako razem to moim zdaniem fajny pomysł. Na szybko wkleiłem jeden z pierwszych programików: https://www.forbot.pl/forum/topics51/kurs-fpga-wlasne-programy-vt14886.htm#121369

Mam jeszcze trochę liczników wykorzystujących wyświetacz segmentowy Elbert-a, k

komunikację po SPI i generowanie obrazu na VGA. Później niestety straciłem zapał 🙁

Elvis, zajrzyj na grupę HDL na Goldenline.pl - wiem Goldenline jest w większości martwe ale na tej grupie jest aktywny bardzo fajny człowiek Jakub Tyburski (doktorant WAT z wydziału elektroniki). Ma bardzo dużą wiedzę dot. układów programowalnych i chętnie się nią dzieli (ja bardzo dużo się od niego nauczyłem).

Tu jest link:

https://www.goldenline.pl/grupy/Pozostale/hdl/

niestety trzeba założyć profil na goldenline.pl

Co do tematów do realizacji trzeba wymyślić sobie jakiś praktyczny układ/problem i starać się go zrealizować na FPGA. Ja np. wymyśliłem sobie sterownik rolet na drzwiach balkonowych (z silnikiem DC 12v sterowanym przez PWM) i zrealizowałem go na FPGA.

Pozdrawiam

Link do komentarza
Share on other sites

To może opiszesz swój projekt na forum? Fajnie byłoby poczytać 🙂 Może to racja że trzeba na projekcie się skoncentrować.

Praktycznie większość kodu jest w postach na tym forum HDL na Goldenline.pl

Musiałbym tylko lepiej opisać założenia i mostek MOSFET użyty w układzie.

Zajrzyj pod ten link na to forum (bo warto):

https://www.goldenline.pl/grupy/Pozostale/hdl/

Czytać posty można bez profilu na goldenLine, ale są "przeszkadzajki" (BTW: Jakub zwykle odpowiada tego samego dnia, a ma naprawdę dużą wiedzę i jest bardzo sympatyczny)

Pozdrawiam

Link do komentarza
Share on other sites

FlyingDutch, dziękuję za miłe słowa, ciesze się, że kurs "się podoba" 🙂

Tak jak od początku zakładaliśmy kurs dotyczy podstaw FPGA, ponieważ wiele osób nie wie, czy ta droga jest dla nich odpowiednia. Do tej pory nie układy programowalne nie były zbyt często wybierane przez hobbystów. W dalszych częściach kursu pojawi się jeszcze maszyna stanu, zrobimy też bardziej zawiłe projekty 🙂 Dodatkowych rzeczy do płytki nie podłączamy celowo, aby zbytnio nie komplikować nauki VHDL (dodatkowa elektronika, to miejsce na potencjalne nowe błędy). Będzie to jednak dobre zadanie do ewentualnej kontynuacji kursu 🙂

Inicjatywie Elvisa mocno kibicuję, mam nadzieję, że wyjdzie z tego coś ciekawego! Zachęcam, aby inni też dzielili się swoimi przykładowymi projektami. Link do tematu, o którym mowa: https://www.forbot.pl/forum/topics51/kurs-fpga-wlasne-programy-vt14886.htm

Link do komentarza
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...

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.