Hacking a piece of hardware to perform a different function than the one established by the manufacturer is the essence of DIY. Converting mini computers into consoles or projectors, and modify a router's properties are the most common examples, but there are enthusiasts out there with the necessary knowledge to make certain components 'speak', and that includes FPGAs. That leads us to the personal blog of engineer Thanassis Tsiodras, who decided to compile an open-source CPU inside the FPGA of a small thin client. Why? Because he can...
The story begins with an article by Tom Verbeure, hardware engineer at Nvidia. Basically, what Verbeure did was build a ray tracer in real time using a very economical FPGA, which is not an exaggeration because today it is possible to buy entire lots on eBay for less than $200. The hardware in question is the Pano Logic thin client, available in G1 and G2 versions. The company's plan was to offer a replacement for traditional computers in enterprise environments with the flexibility of an FPGA, but its leaders gave up in 2013, and its hardware was left floating in the ether, without support.
However, from that point on, community efforts began to bend the will of those thin clients. That brings us to the blog of engineer and developer Thanassis Tsiodras, who obtained a Pano Logic G2 equipped with the Spartan6 LX100 FPGA. His goal? Compile an open-source CPU inside it, and taking advantage of the FPGA's natural size, make it work as multi-core. Once the thin client was disassembled, he proceeded to create the JTAG cable to link a compatible Xilinx programmer (which costs less than $25 on eBay).
Here is where difficulties arose. To be more specific, the lack of support in recent versions of the official software. Synthesis, the pack of Xilinx tools, does not support the Spartan6 LX100 in its most recent (and free) edition for Linux. The only build compatible with LX100 works inside Windows, but there is something else: The job of that 'setup' is to install a virtual machine... with a Linux image. For a moment he thought he could extract from that image all the necessary elements for its native execution, but he found a limit in the MAC address of the virtual network card, since the software expects to see that address and no other.
The rest of the entry finally focuses on the original plan, which is to compile a CPU inside the FPGA, and I admit the technical content becomes a bit heavy. In other words, this is anything but a project for beginners. Access to hardware may be economical (an FPGA in an abandoned product combined with a $25 programmer doesn't sound too bad), but the code still acts as a filter. Still, the result is impressive: A dual-core LEON3 processor at 50 MHz, 'synthesized' into an FPGA destined for the trash. The rest of the project will try to access other components in the hardware, especially the 128 MB of DDR2 memory. If you want to know more, feel free to visit Thanassis's blog.
Official site: Click here