Ein Stück Hardware zu hacken, um es eine andere Funktion ausführen zu lassen als vom Hersteller vorgesehen, ist die Essenz des DIY. Mini-PCs in Konsolen zu verwandeln oder in Projektoren zu verwandeln und die Eigenschaften eines Routers zu verändern sind die häufigsten Beispiele, aber es gibt Enthusiasten da draußen mit dem nötigen Wissen, um bestimmte Komponenten zum „Sprechen“ zu bringen, und das schließt FPGAs ein. Das führt uns zum persönlichen Blog des Ingenieurs Thanassis Tsiodras, der beschloss, eine Open-Source-CPU im FPGA eines kleinen Thin Clients zu kompilieren. Warum? Weil er es kann…
Der FPGA-Thin-Client
Die Geschichte beginnt mit einem Artikel von Tom Verbeure, Hardware-Ingenieur bei Nvidia. Im Grunde hat Verbeure einen Raytracer in Echtzeit mit einem sehr günstigen FPGA gebaut, was keine Übertreibung ist, denn heute kann man komplette Sortimente auf eBay für unter 200 Dollar kaufen. Die Hardware ist der Thin Client Pano Logic, erhältlich in den Versionen G1 und G2. Der Plan des Unternehmens war es, einen Ersatz für herkömmliche Computer in Unternehmensumgebungen mit der Flexibilität eines FPGAs anzubieten, aber die Verantwortlichen gaben 2013 auf, und die Hardware blieb ohne Support in der Schwebe.
Von diesem Punkt an begannen jedoch die Bemühungen der Community, diesen Thin Clients den Willen zu beugen. So gelangen wir zum Blog des Ingenieurs und Entwicklers Thanassis Tsiodras, der einen Pano Logic G2 mit dem FPGA Spartan6 LX100 erwarb. Sein Ziel? Eine Open-Source-CPU darin zu kompilieren und, die natürliche Größe des FPGAs nutzend, sie als Multi-Core arbeiten zu lassen. Nachdem er den Thin Client zerlegt hatte, machte er sich daran, das JTAG-Kabel zu erstellen, um einen kompatiblen Xilinx-Programmer anzuschließen (der auf eBay weniger als 25 Dollar kostet).
Schwierigkeiten mit der Software
Hier traten Schwierigkeiten auf. Genauer gesagt: fehlender Support in neueren Versionen der offiziellen Software. Synthesis, das Werkzeugpaket von Xilinx, unterstützt den Spartan6 LX100 in seiner neuesten (und kostenlosen) Ausgabe für Linux nicht. Der einzige mit LX100 kompatible Build läuft unter Windows, aber es gibt noch etwas: Die Aufgabe dieses „Setups“ ist es, eine virtuelle Maschine ... mit einem Linux-Image zu installieren. Einen Moment lang dachte er, er könnte aus diesem Image alle Elemente extrahieren, die für die native Ausführung nötig sind, aber er stieß an eine Grenze bei der MAC-Adresse der virtuellen Netzwerkkarte, da die Software genau diese Adresse und keine andere erwartet.
Das Ergebnis
Der Rest des Beitrags konzentriert sich schließlich auf den ursprünglichen Plan, eine CPU im FPGA zu kompilieren, und ich gebe zu, dass der technische Inhalt etwas schwer wird. Mit anderen Worten, das ist alles andere als ein Projekt für Anfänger. Der Zugang zur Hardware mag günstig sein (ein FPGA in einem aufgegebenen Produkt kombiniert mit einem 25-Dollar-Programmer klingt nicht so schlecht), aber der Code wirkt weiterhin als Filter. Trotzdem ist das Ergebnis beeindruckend: Ein Dual-Core-LEON3-Prozessor mit 50 MHz, „synthetisiert“ in einem FPGA, das für den Müll bestimmt war. Der Rest des Projekts wird sich darum kümmern, auf andere Komponenten der Hardware zuzugreifen, insbesondere auf die 128 MB DDR2-Speicher. Wenn du mehr wissen willst, zögere nicht, Thanassis' Blog zu besuchen.
Offizielle Website: Hier klicken