Hackerare un componente hardware per fargli svolgere una funzione diversa da quella prevista dal produttore è l'essenza del fai-da-te. Trasformare mini computer in console o proiettori e modificare le proprietà di un router sono gli esempi più comuni, ma ci sono appassionati là fuori con le conoscenze necessarie per far «far parlare» alcuni componenti, e questo include gli FPGA. Questo ci porta al blog personale dell'ingegnere Thanassis Tsiodras, che ha deciso di compilare una CPU open source dentro l'FPGA di un piccolo thin client. Perché? Perché può...
La storia di un thin client abbandonato
La storia inizia con un articolo di Tom Verbeure, ingegnere hardware presso Nvidia. In pratica, Verbeure ha costruito un ray tracer in tempo reale usando un FPGA molto economico, il che non è un'esagerazione perché oggi è possibile acquistare lotti interi su eBay per meno di 200 dollari. L'hardware in questione è il thin client Pano Logic, disponibile nelle versioni G1 e G2. Il piano dell'azienda era offrire una sostituzione per i computer tradizionali in ambienti aziendali con la flessibilità di un FPGA, ma i responsabili hanno gettato la spugna nel 2013, e il loro hardware è rimasto fluttuante nell'etere, senza supporto..
L'obiettivo: compilare una CPU
Tuttavia, da quel momento sono iniziati gli sforzi della comunità per piegare la volontà di questi thin client. Così arriviamo al blog dell'ingegnere e sviluppatore Thanassis Tsiodras, che ha ottenuto un Pano Logic G2 dotato del FPGA Spartan6 LX100. Il suo obiettivo? Compilare una CPU open source al suo interno, e sfruttando la dimensione naturale dell'FPGA, farlo funzionare come multi-core. Una volta smontato il thin client, ha proceduto a creare il cavo JTAG per collegare un programmatore Xilinx compatibile (che costa meno di 25 dollari su eBay).
Le difficoltà con il software
È qui che sono sorte le difficoltà. Per essere più precisi, l'assenza di supporto nelle versioni recenti del software ufficiale. Synthesis, il pacchetto di strumenti di Xilinx, non supporta lo Spartan6 LX100 nella sua edizione più recente (e gratuita) per Linux. L'unica build compatibile con LX100 funziona all'interno di Windows, ma c'è di più: Il lavoro di quel 'setup' è installare una macchina virtuale... con un'immagine Linux. Per un momento ha pensato di poter estrarre da quell'immagine tutti gli elementi necessari per la sua esecuzione nativa, ma ha trovato un limite nell'indirizzo MAC della scheda di rete virtuale, poiché il software si aspetta di vedere quell'indirizzo e nessun altro..
Il risultato
Il resto del post si concentra finalmente sul piano originale, cioè compilare una CPU all'interno dell'FPGA, e ammetto che il contenuto tecnico diventa un po' pesante. In altre parole, questo è tutto tranne che un progetto per principianti. L'accesso all'hardware può essere economico (un FPGA in un prodotto abbandonato combinato con un programmatore da 25 dollari non suona male), ma il codice continua a fare da filtro. Tuttavia, il risultato impressiona: un processore LEON3 dual-core a 50 MHz, «sintetizzato» in un FPGA destinato alla spazzatura. Il resto del progetto cercherà di accedere ad altri componenti dell'hardware, in particolare i 128 MB di memoria DDR2. Se vuoi saperne di più, non esitare a visitare il blog di Thanassis.
Sito ufficiale: Clicca qui