Skocz do zawartości
FlyingDutch

LicheeTang Anlogic EG4S20 FPGA Board (RISC-V)

Pomocna odpowiedź

Cześć,

mam pytanie, może ktoś z Was potrafi na nie odpowiedzieć: otóż implementacja BrieySoC w Verilogu, ma wyprowadzone własne piny do interfejsu JTAG (do programowania). Patrz diagram:

Briey01.png

Zastanawiam, się jaka to wersja programatora JTAG powinna być. Przeważnie programatory/debuggery JTAG obsługują określone rodziny urządzeń - np. CPU STM32 lub układy FPGA (Xilinx'a czy Intela). Jaka to powinna być wersja programatora, aby tą wersję RISC-V (w układzie FPGA) zaprogramować. Nie mogę tego znaleźć w opisie projektu (nie wiem może coś przeoczyłem). Czy ktoś ma jakiś pomysł? Ten problem z implementacją RISC-V od dłuższego czasu nie daje mi spokoju.

Pozdrawiam

Udostępnij ten post


Link to post
Share on other sites
(edytowany)
51 minut temu, Elvis napisał:

Trzeba poczytać co wspiera openocd dla risc-v. A na szybko i bogato jest jeszcze segger: https://www.segger.com/risc-v/

Cześć Elvis,

tego zestawu narzędzi nie znałem, ostatnio zainstalowałem sobie "Freedom Studio" (Linux Mint). Dzięki za podpowiedź.

Zainstalowałem to "SEGGER Embedded Studio for RISC-V 4.12" będę miał jakieś porównanie do "Freedom Studio".

Pozdrawiam

No właśnie znalazłem ten  link:

https://gnu-mcu-eclipse.github.io/debug/openocd/riscv/

Niestety nie mam tego programatora (olimex-arm-usb-tiny). Trochę ten programator kosztuje (40 Euro)

https://www.olimex.com/Products/ARM/JTAG/ARM-USB-TINY/

Muszę porobić kilka prób, może uda się użyć jakiegoś innego programatora.

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cześć,

właśnie przyszedłem do pracy i przyszła przesyłka z Chin z "LicheeTang Anlogic". Tak ,że teraz będę mógł sprawdzić działanie architektury "RISC-V" na fizycznym sprzęcie. Na pewno opisze moje zmagania.

BTW: Próbuje poczytać dokumentację do płytki "LicheeTang Anlogic, ale słabo mi idzie - chyba już najwyższy czas aby się zapisać na jakiś kurs mandaryńskiego (tak mi się przynajmniej wydaje, że to jest mandaryński).

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Jak chodzi o programator, to prawdopodobnie zadziała każdy oparty o ftdi - podlinkowałem opis z modułem Olimex-a, bo akurat ten znalazłem. Co prawda na początek łatwiej zacząć od konfiguracji, która działała u kogoś innego - bo chociaż wiadomo że to "powinno działać".

Jeśli masz możliwość zakupu wersji edu, to polecam oryginalnego segger-a. Pozwala zaoszczędzić bardzo dużo czasu. https://kamami.pl/programatory-stm32/178667-j-link-edu-80890-programator-debugger-jtag-dla-mikrokontrolerow-arm-cortex-m-cortex-r-i-cortex-a.html

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Chyba największy problem nie jest w sprzęcie, ale oprogramowaniu. Programatory oparte o FTDI to w rzeczywistości proste io-expandery. Cała logika jest po stronie aplikacji.

ST ma pewnie swoje wersje i swoje tajemnice. Najbardziej otwarty jest OpenOCD, ale jego konfiguracja do łatwych nie należy. Natomiast Segger ma własne i już całkiem zamknięte rozwiązania, ale za to podłączasz i działa.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Cześć,

dzisiaj zapisałem się do forum dyskusyjnego dot. "RISC-V" oraz płytki "Lichee Tang Anlogic RISC-V FPGA" i otrzymałem link do bloga jak zacząć development z tym typem płytki.

Oto link do bloga:

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

Pozdrawiam

 

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

@FlyingDutch, super! Masz już jakieś praktyczne przykłady za sobą?

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cześć,

jest mały problem:

"The on board programmer only programs the FPGA, so with the RISC-V softcore an external programmer is needed. So when ordering this board, make sure to buy it with the programmer included. The programmer seems to be a normal FT2232 device, so a different, FT2232 based programmer should also work."

Ja na początek nie chcę "ruszać" IP-Core "wgranego" do układu FPGA (Dual-Core RISC-V CPU)., a po prostu wczytać program skompilowany kompilatorem dla tego CPU.

No i nareszcie wyjaśniło się jaki to mityczny model programatora jest konieczny (podejrzewam, że działałby też z Briey SoC o którym pisałem).. Oto link do niego na banggood.com:

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

Niestety kosztuje połowę ceny płytki "Lichee Tang FPGA RISC-V", ale właśnie go zamówiłem i wstrzymam się z próbami do jego przyjścia.

A tutaj płytka z programatorem:

https://www.banggood.com/Lichee-Tang-64Mbit-SDRAM-RISC-V-Development-Board-Mini-PC-FT2232D-JTAG-USB-RV-Debugger-p-1353273.html?rmmds=search&cur_warehouse=CN

Do tej płytki można też kupić wyświetlacz LCD 5 cali i kamerę:

https://www.banggood.com/es/Lichee-Pi-5-inch-LCD-Display-CTP-800480-Resolution-With-Capacitive-Touch-Screen-p-1339865.html?rmmds=detail-bottom-alsobought__1&cur_warehouse=CN

BTW: co ciekawe zauważyłem, że ludzie na tym forum piszą własne peryferia do IP-Core RISC-V w języku HDL i dzielą się swoimi pomysłami.

Chciałem się tym dzisiaj zająć, ale strasznie boli mnie gardło i kładę się do łóżka 😳

Pozdrawiam

Edytowano przez FlyingDutch
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Postanowiłem również spróbować sił z RISC-V. Na razie jeszcze do końca nie działa, ale opiszę co zrobiłem - bo później sam zapomnę.

Jestem mniej ambitny, więc zamiast budować procesor od podstaw, najpierw używam gotowca ze strony: https://drive.google.com/drive/folders/0B-CqLXDTaMbKZGdJZlZ5THAxRTQ

Przetestowałem czas syntezy na Nano-DE0, wyszło < 1minuty, na DE1, prawie dwie, więc lenistwa wybrałem pierwszą. Quartus robi co powinien, projekt wgrywa się pięknie.

Dalej jest trudniej - przydałby się programator. Miałem gdzieś JTAG od Olimex-a, ale nie używałem całe lata i nie mogę znaleźć. Na szczęście jest j-link, o którym wcześniej pisałem (https://kamami.pl/programatory-stm32/178667-j-link-edu-80890-programator-debugger-jtag-dla-mikrokontrolerow-arm-cortex-m-cortex-r-i-cortex-a.html)

Pozostaje podłączyć 6 kabelków i można próbować... Niestety soft od Seggera nie ma ochoty wykryć mojego procesora. Wypisuje Id, ale nie rozpoznaje. Czyli openocd wraca do gry.

Zgodnie z instrukcją pobieram i kompiluję dedykowaną wersję z: https://github.com/SpinalHDL/openocd_riscv

Teraz trzeba wymyślić jak to uruchomić - nie jest łatwo, ale tajne zaklęcie to:

sudo openocd -d -f tcl/interface/jlink.cfg -c 'set BRIEY_CPU0_YAML /home/elvis/riscv/VexRiscv/cpu0.yaml' -f tcl/target/briey.cfg

Odpalam i gdb-serwer wydaje się działać poprawnie:

2019-01-26-163313_1232x675_scrot.thumb.png.645cc49e1c21b9264cf3ad7d421b5e57.png

Teraz już tylko zdobyć toolchain i skompilować przykładowy program...

Edytowano przez Elvis
  • Lubię! 1
  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Cześć Elvis,

cieszę się, że zająłeś się tym tematem, bo pewnie szybko będą efekty 🙂 Może spróbujesz też z płytką FPGA "Lichee Tang Anlogic RISC-V FPGA" - jest do tego całe darmowe chińskie IDE do syntezy tego FPGA (i płytka ma JTAG programer dla FPGA wbudowany). Cena jest według mnie bardzo opłacalna jeśli wziąć pod uwagę rozmiar układu FPGA. No i sam IP-core z RISC-V też ciekawy, poza tym dedykowany display LCD i możliwość podłączenia kamery. Płytka jest nieźle wyposażona jak na swoją cenę. No i ludzie już piszą własne peryferia do Ip-Core RISC-V w Verilogu, czy VHDLu. Mam takie przeczucie, że ta architektura sporo zmieni w podejściu wielu ludzi (i firm) do sprzętu (procesorów i zestawów uruchomieniowych). Zresztą to już się dzieje także w wielkich firmach, dlatego według mnie warto być z tym na bieżąco 😉

Pozdrawiam

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

No i niestety nie udało się - jeszcze do walki z RISCV wrócę ale na razie muszę to odłożyć. Jest komunikacja z procesorem, ale chyba pamięć nie działa poprawnie. W każdym razie można odczytać zawartość rejestrów, a w pamięci same zera. W sumie to nie wiem jaka pamięć była użyta w tym projekcie, chyba trzeba zacząć od czegoś łatwiejszego - bo chyba Briley na DE0 używa SDRAM, ale coś poszło nie tak.

  • Lubię! 2

Udostępnij ten post


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

 W sumie to nie wiem jaka pamięć była użyta w tym projekcie, chyba trzeba zacząć od czegoś łatwiejszego - bo chyba Briley na DE0 używa SDRAM, ale coś poszło nie tak.

Cześć,

potwierdzam, powinien używać SDRAM. Miłej zabawy, to chyba temat na trochę dłużej 😉

Pozdrawiam

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Cześć,

właśnie kilka dni temu Chińczycy (ze skelpu Banggood.com) przysłali mi informację, że zamówiony przeze mnie jakiś miesiąc temu programator JTAG do "RISC-V" (płytka: LicheeTang Anlogic EG4S20 FPGA Board) nie jest już dostępny i oferują mi refundację kosztów. Niestety to znów opóźni moje próby z tym sprzętem. Spróbuję poszukać, czy ten programator można nabyć w innym miejscu.

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!

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...