Skocz do zawartości
FlyingDutch

LicheeTang Anlogic EG4S20 FPGA Board (RISC-V)

Pomocna odpowiedź

Jak chodzi o risc-v to najłatwiej zacząć używając K210. Z fpga jest chyba znacznie trudniej.

  • Lubię! 1

Udostępnij ten post


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

Jak chodzi o risc-v to najłatwiej zacząć używając K210. Z fpga jest chyba znacznie trudniej.

Cześć Elvis,

ja chciałbym jednak zacząć z tą płytką "LicheeTang Anlogic". Może natknąłeś się na miejsce w sieci  gdzie można kupić te dedykowane programator JTAG dla "RISC-V". A może wiesz jaki typ programatora JTAG można użyć zastępczo (ktoś napisał w komentarzu, że ten dedykowany programator nie jest oparty na FTDI FT232, ale nie wiem, czy to prawda).

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Używałem seggera do programowania K210, więc mogę potwierdzić że to działa 🙂 niestety jak na razie nie udało mi się dogadać z żadną implementacją RISC-V w FPGA. Dlatego napisałem, że łatwiej zacząć od K210.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cześć,

właśnie na dniach pojawił się nowy artykuły dotyczące "RISC-V" na stronie www.eejournal.com (ten artykuł przytacza drugi starszy). Tytuły tych artykułów są bardzo patetyczne i uważam je za trochę przedwczesne:

1) RISC-V Evolves from Academic Teaching Platform into a Major Microprocessor Player (tłumaczenie: RISC-V ewoluje z akademickiej platformy do nauki w ważnego gracza rynku mikroprocesorów)

2) RISC-V Aims for World Domination (tłumaczenie: RISC-V zmierza do dominacji na Świecie)

Oto linki do tych artykułów:

RISC-V Evolves from Academic Teaching Platform into a Major Microprocessor Player

RISC-V Aims for World Domination

Niestety artykuły są napisane w języku angielskim i aby z nich coś wynieść trzeba je przeczytać w całości (chociaż radzę sobie z j, angielskim nie najgorzej nie podejmuje się tłumaczenia, bo są one po prostu za długie). Uważam, że te tytułowe wnioski są na razie przedwczesne, niemniej mam przeczucie, że o tej architekturze jeszcze przez dłuższy czas będzie dość głośno i ma ona szanse stać się przełomową w świecie hardware'u.

Pozdrawiam

 

Edytowano przez FlyingDutch
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
Dnia 7.03.2019 o 19:40, FlyingDutch napisał:

Uważam, że te tytułowe wnioski są na razie przedwczesne, niemniej mam przeczucie, że o tej architekturze jeszcze przez dłuższy czas będzie dość głośno i ma ona szanse stać się przełomową w świecie hardware'u.

To pewne, obserwuję ogólnie wszelkie elektroniczne newsy (chociażby po to, aby wybrać coś ciekawego na Forbota) i od jakiegoś czasu jest prawdziwy wysyp informacji na temat tej architektury. Kiedyś pojawiała się sporadycznie, a teraz gości wszędzie bardzo często 🙂

Udostępnij ten post


Link to post
Share on other sites
Dnia 26.12.2018 o 12:04, FlyingDutch napisał:

Cześć,

"RiscV" - tematu ciąg dalszy.

Wygenerowałem "Briey SoC" (Oparty na Riscv) jest on praktycznie bardzo podobny do opisanego tutaj "Pinsec":

https://spinalhdl.github.io/SpinalDoc/spinal/lib/pinsec/hardware/#introduction

Trzeba jeszcze było dokonać zmian w module: Apb3Gpio z(skrócić magistrale) i układ poprawnie się zsyntetyzował dla Spartana 6 z płytki FPGA "Mimas V2" (w ISE 14.7). Jak widać na schemacie (po syntezie) - w opisie portów procesora nie ma w ogóle "GPIO B" , a dla "GPIO A" trzy magistrale są skrócone z 32 do 4 bitów:

Briey01.thumb.png.6e91b3ce568797c79958ba2f9c83c4f2.png

W załączniku projekt dla Xilinx ISE 14.7 (Webpack) z SoC Briey (ze skróconymi magistralami GPIO - buduje się poprawnie dla Spartan6 - XC6SLX9😞

BrieySoC01.zip

Teraz wypadałoby utworzyć "User constraint file" dla płytki FPGA Mimas V2, oraz zbudować/pobrać kompilator dla RiscV (co pewnie zajmie trochę czasu).

Cześć,

dzisiaj po bardzo długim czasie powróciłem do projektu "BrieySoC", chciałbym utworzyć plik "user constraints file" mam jednak pewne wątpliwości dotyczące sygnałów zegarowych dla modułu Briey: są tam dwie linie zegarowe:

    input   io_axiClk,
    input   io_vgaClk,

zastanawiam si ę, czy te linie zegarowe są jakoś powiązane, jedynym punktem zaczepienia jest plik:

https://github.com/SpinalHDL/VexRiscv/blob/master/src/main/scala/vexriscv/demo/Briey.scala

i obiekt BrieyConfig - wynika z niego według mnie, iż są to całkiem niezależne od siebie linie zegarowe. Czy ktoś mógłby zweryfikować czy nie popełniłem błędu z tym założeniem?

Dla AXI_clock przyjmuje te 50 MHz, natomiast nie jestem pewien jaki powinien być zegar dla VGA, czy typowe dla rozdzielczości 640x480 - 25.175 MHz czy może 31.5 MHz ?

Chciałbym w końcu dokończyć ten projekt na układzie FPGA, niestety problemem dla mnie jest brak dobrej dokumentacji do tego projektu.

Pozdrawiam

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

A może łatwiej zacząć od czegoś łatwiejszego? Z tego co widziałem w tym samym katalogu jest Murax.scala - planowałem się nim pobawić, ale jakoś czasu zabrakło.

  • Lubię! 1

Udostępnij ten post


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

A może łatwiej zacząć od czegoś łatwiejszego? Z tego co widziałem w tym samym katalogu jest Murax.scala - planowałem się nim pobawić, ale jakoś czasu zabrakło.

Cześć Elvis,

pewnie byłoby łatwiej 😉 , ale postawiłem sobie za cel uruchomienie jakiejkolwiek wersji RISC-V na FPGA. Z czysto praktycznego punktu widzenia, posiadanie działającego projektu RISC-V na układzie FPGA byłoby bardzo dobrym punktem wyjścia do doświadczeń z tą architekturą. Niestety moje obciążenie w pracy przez ostatnie 6 miesięcy trochę się kłóciło z realizacją tego celu, ale mam nadzieję iż teraz będę w stanie wygospodarować więcej czasu na te eksperymenty.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites

Wydaje mi się, że Murax to też RISC-V, tylko ma mniej peryferiów. Nie ma wyświetlacza, ani pamięci DDR. Ale można to później dodać - do pierwszego uruchomienia migającej diody na RISC-V Murax powinien wystarczyć.

  • Lubię! 2

Udostępnij ten post


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

Wydaje mi się, że Murax to też RISC-V, tylko ma mniej peryferiów. Nie ma wyświetlacza, ani pamięci DDR. Ale można to później dodać - do pierwszego uruchomienia migającej diody na RISC-V Murax powinien wystarczyć.

Cześć,

ale właśnie pamięć DDR,  UART i wyświetlacz VGA  chciałbym mieć działające w tym projekcie.Jeśli nie uda mi się z Briey SoC to może spróbuję z Murax, rzeczywiście byłoby prościej.

Pozdrawiam

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Ja próbowałem uruchomić gotowego Briey-a zsyntetyzowanego na płytki Terasic-a, ale nic mi z tego nie wyszło. Stad była moja propozycja zaczęcia od czegoś łatwiejszego 🙂

A swoją drogą, udało Ci się uruchomić tytułowe Anlogic EG4S20? Ja właśnie dostałem do nich programator, tylko nie mam czasu nawet sprawdzić czy to działa 😕

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, Elvis napisał:

A swoją drogą, udało Ci się uruchomić tytułowe Anlogic EG4S20? Ja właśnie dostałem do nich programator, tylko nie mam czasu nawet sprawdzić czy to działa 😕

Jeszcze nie (dopiero niedawno otrzymałem przesyłkę z programatorem JTAG), ale w najbliższym czasie planuję spróbować go uruchomić.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cześć,

właśnie dzisiaj udało mi się uruchomić bardzo proste demo (UART) na płytce "Lichee Tang Anlogic FPGA":

https://www.banggood.com/Lichee-Tang-64Mbit-SDRAM-Onboard-FPGA-Downloader-Dual-Flash-RISC-V-Development-Board-p-1352386.html?rmmds=myorder&cur_warehouse=CN

z użyciem tego programatora JTAG firmy Sipeed (dedykowany dla RISCV):

https://www.banggood.com/FT2232D-JTAG-USB-RV-Debugger-For-Lichee-Tang-RISC-V-Development-Board-p-1352457.html?rmmds=search&cur_warehouse=CN

Postępowałem według tego tutoriala:

Hello World on the Lichee Tang RISC-V/FPGA board

Mój OS to Linux Mint 18.1 Serena z desktopem Mate i nie miałem problemu z żadnym z punktów tutoriala. Końcowy efekt widać na zrzucie ekranu:

RISXCV_Work.thumb.png.52f6dd2497a574ad3bd0da97bc20b6b5.png

Teraz mam zamiar wypróbować bardziej złożone programy oraz IDE "Freedom Studio RiscV" oraz "SEGGER Embedded Studio for RISC-V 4.12" , a także chcę się zapoznać z programem do syntezy FPGA firmy Anlogic. Aby zrobić jakieś bardziej spektakularne próby musiałbym kupić ekran LCD dedykowany do tej płytki:

https://www.banggood.com/Lichee-Pi-5-inch-LCD-Display-RTP-800480-Resolution-With-4-wire-Resistive-Touch-Screen-p-1340806.html?rmmds=search&cur_warehouse=CN

i moduł kamery. Jak dotychczas nie udało mi się zweryfikować, czy ta płytka ma sterownik VGA, czy nie (jest to niejasno napisane w opcjach), to byłaby najlepsza opcja.

To na tyle jeśli chodzi o tą płytkę Anlogic FPGA (z pewnością będę jeszcze do niej wracał z bardziej złożonymi programami - na razie wykonałem pierwszy krok). Największą trudnością dotyczącą tej płytki jest dokumentacja w większości dostępna tylko w języku chińskim.

BTW: W Banggood.com pojawiła się tania wersja modułu RISC-V (dual-core) z modułem akceleratora dla AI firmy Sipeed, o której wcześniej pisał Elvis. Jest to właściwie sam procesor a nie cała þłytka uruchomieniowa, ale cena wynosi tylko 54 PLN (na dzień dzisiejszy). Tutaj jest link:

https://www.banggood.com/Sipeed-Maix-1-RISC-V-Dual-Core-64bit-With-FPU-AI-Module-Development-Board-Mini-PC-p-1409994.html?rmmds=detail-left-hotproducts__4&cur_warehouse=CN

Pozdrawiam

Cześć,

teraz, gdy mam działający programator JTAG dla RISC-V to może uda mi się uruchomić "Briey SoC" na FPGA ze Spartan6 (MIMAS V2), a przynajmniej będę próbował.

A tutaj znalazłem kod w Verilogu z implementacją wyjścia VGA dla "Lichee Tang Anlogic" board:

https://github.com/piotr-go/Lichee-Tang/blob/master/VGA/src/vga.v

A tutaj dużo przydatnych linków:

https://github.com/Lichee-Pi

Pozdrawiam

 

 

Edytowano przez FlyingDutch
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Skoro ten wątek dotyczy różnych płytek związanych z RISC-V, to może podam link do interesującego projektu lowRISC: https://www.lowrisc.org/

Autorzy postanowili być nieco ambitniejsi, niż projektanci K210 i lowRISC ma za cel przygotowanie SoC-a zdolnego do uruchomienia Linux-a.

Prototypową wersję lowRISC możemy uruchomić sami, jeśli mamy pod ręką płytkę NEXYS 4 DDR https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/start

Pełny opis instalacji jest tutaj: https://www.lowrisc.org/docs/getting-started/

Przetestowałem i wygląda na to, że faktycznie na RISC-V może działać linux 🙂

2019-04-14-215637_2560x1389_scrot.thumb.png.a43e7e98616309b7254f1d7be9749797.png

Prędkość działania nie powala, ale użycie RISC-V może być interesującą alternatywą dla Microblaze.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cześć Elvis,

to bardzo dobra wiadomość. Dzięki za linki i podzielenie się informacją 🙂

Pozdrawiam

BTW: właśnie pracuje nad BrieySoC tak, aby można go uruchomić na płytce Mimas V.2 (ze Spartanem6 i pamięcią DDR).

Właśnie skończyłem przeróbkę BrieySoC - dodałem dwa zegary (PLL) dla magistrali AXI (%0MHz) i VGA(25.175MHz). projekt dla Spartana6 syntetyzuje się poprawnie.

Teraz wystarczy stworzyć plik ucf (user constraints file) dla płytki MIMAS V.2 - wgrać projekt do FPGA i zobaczyć, czy będzie działał (spróbować załadować przykładowy program do procesora za pomocą programatora JTAG).

Tutaj spakowany projekt (Xilinx ISE):

BrieySoCNext.zip

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1

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!

Gość
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...