„Mój własny CPU”: Jak skompilować procesor w FPGA
Jak skompilować procesor w FPGA

Hakowanie sprzętu, aby wykonywał inną funkcję niż ta przewidziana przez producenta, to esencja DIY. Przerabianie mini komputerów na konsole lub projektory oraz modyfikowanie właściwości routera to najczęstsze przykłady, ale są entuzjaści, którzy mają wiedzę potrzebną do „przemówienia” niektórym komponentom, a to obejmuje także FPGA. To prowadzi nas do osobistego bloga inżyniera Thanassisa Tsiodrasa, który postanowił skompilować procesor open source wewnątrz FPGA małego cienkiego klienta. Dlaczego? Bo może…

Historia projektu

Historia zaczyna się od artykułu Toma Verbeure, inżyniera sprzętu w Nvidii. Zasadniczo Verbeure zbudował ray tracer w czasie rzeczywistym, używając bardzo taniego FPGA, co nie jest przesadą, ponieważ dziś można kupić całe partie na eBayu za mniej niż 200 dolarów. Sprzętem tym jest cienki klient Pano Logic, dostępny w wersjach G1 i G2. Planem firmy było zaoferowanie zamiennika dla tradycyjnych komputerów w środowiskach biznesowych z elastycznością FPGA, ale jej kierownictwo poddało się w 2013 roku, a sprzęt pozostał w eterze, bez wsparcia.

Społeczność i Thanassis

Jednak od tego momentu rozpoczęły się wysiłki społeczności, aby nagiąć wolę tych cienkich klientów. W ten sposób docieramy do bloga inżyniera i programisty Thanassisa Tsiodrasa, który zdobył Pano Logic G2 wyposażony w FPGA Spartan6 LX100. Jego cel? Skompilować procesor open source w środku, a wykorzystując naturalny rozmiar FPGA, sprawić, by działał jako wielordzeniowy. Po rozmontowaniu cienkiego klienta przystąpił do stworzenia kabla JTAG do podłączenia kompatybilnego programatora Xilinx (który kosztuje mniej niż 25 dolarów na eBayu).

„Mój własny CPU”: Jak skompilować procesor w FPGA
Przygotowanie JTAG...
„Mój własny CPU”: Jak skompilować procesor w FPGA
Pewne przeszkody techniczne, nawet z oficjalnym oprogramowaniem

Problemy z oprogramowaniem

W tym miejscu pojawiły się trudności. Mówiąc dokładniej, brak wsparcia w najnowszych wersjach oficjalnego oprogramowania. Synthesis, pakiet narzędzi Xilinx, nie obsługuje Spartan6 LX100 w najnowszej (i darmowej) edycji dla Linuksa. Jedyna kompatybilna kompilacja z LX100 działa w systemie Windows, ale jest coś jeszcze: działanie tego „setupu” polega na zainstalowaniu maszyny wirtualnej... z obrazem Linuksa. Przez chwilę myślał, że może wyciągnąć z tego obrazu wszystkie elementy niezbędne do natywnego uruchomienia, ale natknął się na ograniczenie adresu MAC wirtualnej karty sieciowej, ponieważ oprogramowanie oczekuje właśnie tego adresu i żadnego innego.

Rezultat

Reszta wpisu skupia się wreszcie na pierwotnym planie, czyli skompilowaniu procesora wewnątrz FPGA, i przyznaję, że treść techniczna robi się nieco ciężka. Innymi słowy, to wszystko, tylko nie projekt dla początkujących. Dostęp do sprzętu może być tani (FPGA w porzuconym produkcie w połączeniu z programatorem za 25 dolarów nie brzmi tak źle), ale kod działa jak filtr. Mimo to wynik robi wrażenie: dwurdzeniowy procesor LEON3 o taktowaniu 50 MHz, „zsyntetyzowany” w FPGA przeznaczonym na złom. Reszta projektu będzie polegać na dostępie do innych komponentów sprzętu, zwłaszcza 128 MB pamięci DDR2. Jeśli chcesz wiedzieć więcej, odwiedź blog Thanassisa.

Oficjalna strona: Kliknij tutaj