Skocz do zawartości

32-bitowy soft-processor RISC-V 3,5 raza szybszy od Intel 80386DX 16 MHz


Pomocna odpowiedź

(edytowany)

Cześć,

nie wiem dlaczego przy poście zniknęła opcja "Edit" dlatego dalszą część postu piszę przez "Odpowiedz".

Ta zamieszczona wersja projektu z benchmarkiem Dhrystone miała już możliwość wykonywania programów dłuższych niż 32 KB ladując je z zewnętrznego SPI Flasha. Abyuruchomić duży program należało zarówno zapisać jego wersję binarną do SPI Flash jak i wczytać bitstream projketu w VHDL do układu FPGA. Pojawił się zatem problem napisania bootloadera, który wczytany do pamięci BRAM FPGA będzie ładował dużą binarkę języka C do zewnętrznej kostki Flash. Jedynym interfejsem naszego SOC zdolnym do komunikacji ze światem zewnętrznym jest UART, dlateo postanowiłem, że wersja binarna programu C będzie poprzez bootloader wczytywana do SPI Flash za pomocą UART.  Pozostawała jeszcze wersja wyboru protokołu do transmisji firmware poprzez UART i aplikacji za pomoca której będzie można z komputera PC (połączonego z płytką FPGA za pomocą kabla USB) wysłać program binarny (po kompilacji - plik bin) do Flash. Wybór padł na prosty protokół "XMODEM" i darmową aplikację "Tera Term" pod OS Windows. 

Najpierw trzeba wczytać bitstream projektu VHDL do FPGA z bootloaderem, Potem uruchomić loadera na FPGA i następm nie połączyć się z odpowiednim portem serial do którego jest podłączony UART płytki z SOC. Gdypołączenie jest nawiązane należy z "Tera Term" wybrać opcje menu: File -> Transfer -> XMODEM następnie należy wybrać z systemu plik binarny .bin ze skompilowaneym firmware (program C na SOC) i zacznie się transfer binarki programu do SPI FLASH. Prędkość transmisji UART jest dla loadera ustawiona na 115200 bodów, tak, żę transfer wczytanie całej wersji firmware gry "Prince of Persia" trwa około 2 minut. poniżej ekran z parametrami UART bootloader.

Loader_param_UART.thumb.png.a8a1a6c271844397f3f7ca2104140b21.png

W wersji SOC do normalnej pracy (przeważnie wyniki testów lubcv logi) parametry UART są identyczne jak na screnie powyżej z tą różnicą, że prędkość transmisji jest ustawiona na 19200 bodów.

Po wczytaniu programu (firmware) do zewnętrznej kostki SPI Flash należy do układu FPGA wczytać bitstream projektu VDL SOC zamieniając nim loader uruchominony na płytce GPGA. Poniżej projekt FPGA loadera:

RISCV_SOC_V28_LOADER_115200.zip

Uwaga!: w każym projekcie jest plik README_PL.md w którym jest info jak uruchimić projekt.\

 

 

Edytowano przez FlyingDutch

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