Skocz do zawartości

Pomocna odpowiedź

Napisano

Cześć wszystkim!

Chciałem się podzielić moim projektem, nad którym pracuję od jakiegoś czasu — 
autorskim systemem cyfrowym na FPGA Spartan-6 XC6SLX9.

Zacząłem od prostego kontrolera VGA, ale z czasem rozrosło się to do całkiem 
sporej platformy zbliżonej do retro komputera.

Co potrafi:
- VGA 640x480@60Hz, bufor ramki w SRAM (8 bpp, RGB332)
- tryb tekstowy 80x60 znaków z kursorem
- 8 sprite'ów 16x16 z przezroczystością i odbiciem X/Y
- klawiatura PS/2 z dekoderem scan code → ASCII
- UART (5 prędkości: 9600–115200)
- karta SD w trybie SPI (odczyt/zapis sektorów, CID/CSD/OCR)
- 8 źródeł przerwań, indywidualnie maskowalnych
- interfejs CPU↔FPGA przez magistralę równoległą

Całość napisana w Verilog HDL, syntezowana w Xilinx ISE 14.7.

Docelowo projekt miał pracować pod procesorem R6502 — czyli klasykiem 
z epoki retro komputerów. Niestety, na tym etapie nie udało mi się jeszcze 
uruchomić R6502, więc do czasu ostatecznego zakończenia prac steruję FPGA 
za pomocą ATmega2560, która pełni rolę tymczasowego CPU. Interfejs 
magistrali jest zaprojektowany tak, żeby można go było łatwo przepiąć 
na docelowy procesor.

Po stronie CPU użyłem ATmega2560, która przez magistralę równoległą steruje 
FPGA, a na niej demo pokazuje m.in. grę Pac-Man na sprite'ach.

Uwaga — żeby uniknąć nieporozumień: dołączone demo NIE jest napisane 
na platformie Arduino. To czysty C/AVR dla mikrokontrolera ATmega2560, 
kompilowany w Microchip Studio z avr-gcc. Płytka Arduino Mega 2560 jest 
u mnie używana wyłącznie jako kontroler — czyli sprzęt, który wystawia 
sygnały na magistralę i steruje FPGA. Programowanie odbywa się przez JTAG, 
a nie przez bootloader Arduino.

Opis projektu jest na tyle szeroki, że postanowiłem umieścić go na osobnej 
stronie — wraz z dokumentacją, mapą rejestrów, komendami, przykładami 
i zdjęciami. Link znajdziecie w mojej sygnaturce.

Kod jest jeszcze rozwijany — podobnie jak sama strona. Część rzeczy jest 
już gotowa i działa, część jest w planach. Będę wdzięczny za uwagi 
i sugestie.

Chętnie odpowiem na pytania — zarówno o Verilog, jak i o samą magistralę, 
konkretne moduły czy plany związane z R6502. Może ktoś z Was też bawi się 
FPGA albo retro komputerami i chciałby wymienić doświadczenia?

Pozdrawiam!

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