Want to run Linux on open hardware? This talk will explore Open Source Hardware projects capable of that task, and explore how RISC-V and free software FPGA projects can be leveraged to create libre systems.
FPGAs have been the talk of the town at many of this year’s hacker conferences. At CrowdSupply’s Teardown there were workshops on two different FPGA boards, the IceBreaker and the Fomu, and Hackaday’s SuperCon based their conference badge on an FPGA. But what exactly is an FPGA, and why are they so hot right now?
And finally, receiving the biggest applause was Linux-on-Badge: this team used all the badge hacking tricks in the book. The hardware component was a 32 MiB SDRAM cartridge by [Jacob Creedon]. The default badge SOC FPGA bitstream was entirely replaced in order to support a minimalist Linux. Much of the development was done on [Michael Welling]’s computer, guided by the precedence of a LiteX project putting Linux on the Radiona ULX3S. This is a true success story of Supercon collaboration as the team (including [Drew Fustini], [Tim Ansell], [Sean Cross], and many others) came together and worked late into nights, drawing from the massive body of collective expertise of the community.
If you hadn’t noticed, we had a bit of an FPGA theme running at this year’s Superconference. Why? Because the open-source FPGA toolchain is ripening, and because many of the problems that hackers (and academics) are tackling these days have become complex enough to warrant using them. A case in point: David Williams is a university professor who just wanted to build a quadruped robotics project. Each leg has a complex set of motors, motor drivers, sensors, and other feedback mechanisms. Centralizing all of this data put real strains on the robot’s network, and with so many devices the microcontrollers were running out of GPIOs. This lead him to become, in his words, “FPGA-curious”.
If you’re looking for a gentle introduction to the state of the art in open-source FPGAs, this is your talk. David covers everything, from a bird’s eye view of hardware description languages, through the entire Yosys-based open-source toolchain, and even through to embedding soft-CPUs into the FPGA fabric. And that’s just the first 18 minutes. (Slides for your enjoyment, and you can watch the talk embedded below the break.)
The second half of the talk is more about his personal experience and advice based on the last year or so of his experience going from FPGA newbie to master of his own robot. He highlights the versatility of a soft-CPU in an FPGA versus a pre-baked microcontroller solution. With the microcontroller you get all of the peripherals built into the silicon, but with the FPGA you get to write your own peripherals. Want a 10-wire SPI-like bus? Just code it up. Your peripherals are as simple or complex as you need them to be.
On the hardware side, David touts the PMOD standard (a man after our own heart!) and points out the large ecology of PMOD-compatible devices out there. Going for a plug-in solution also means that your engineering job is reduced to building a carrier board that can seat the FPGA brainboard of your choosing and interface it with a bunch of PMODs. It’s hard to get much simpler than that.
David Shah looks at where we have come from with the IceStorm tool chain, and looks at how this has developed recently and expanded Ice40 Lattice support to include new lower power, lower cost, reduced pincount FPGAs to include their Ultra & Ultra Plus range.
Open Source FPGA Hardware past to present
Alan Wood talks about the journey through the early history of OpenSource FPGA open hardware from IcoBoard through myStorm too recent UltraPlus offerings recently made available.
Open Source FPGA Tooling present to future
Icestorm was aimed at a narrow family of Ice40 FPGAS, the new Symbiflow family of tools expands the opensource tooling exponentially. David Shah takes a look at NextPNR which lies at the heart of the toolset and deals with specific FPGA family functionality, in particular he concentrates on the Lattice ECP5 family support he has developed with Project Trellis as part of NextPNR and the recent 1.0 version supporting this new family and high end FPGA features.
Open Source FPGA Hardware present to future
What comes next for opensource FPGA hardware, after the success of tinyFPGA and myStorm we are beginning to see ECP5 opensource hardware emerging first with Radiona’s ULX3S and being followed up by offerings from both tinyFPGA and myStorm dev board stables, with new hardware comes new features building on NextPNRs tooling like DSP, SerDES IO Gearing and DDR memory etc, Alanplots the course for these new powerful open source development boards…
Some might think: what can you do with an FPGA where it’s kind of hard to connect external circuits? You could practice adding peripherals to RISC-V and other cores, but maybe what you should be thinking is: what could I do with my laptop if I had some dedicated parallel processing available? The board carries a Lattice iCE40UP5K, 1 MB of flash, 128 kB of RAM, runs at 48 MHz, and is compatible with the open source IceStorm toolchain.