One of the ways people use FPGAs is to have part of the FPGA fabric hold a CPU. That makes sense because CPUs are good at some jobs that are hard to do with an FPGA, and vice versa. Now that the RISC-V architecture is available it makes sense that it can be used as an FPGA-based CPU. [Clifford Wolf] created PicoSOC — a RISC-V CPU made to work as a SOC or System on Chip with a Lattice 8K evaluation board. [Mattvenn] ported that over to a TinyFPGA board that also contains a Lattice FPGA and shows an example of interfacing it with a WS2812 intelligent LED peripheral. You can see a video about the project, below.
True to the open source nature of the RISC-V, the project uses the open source Icestorm toolchain which we’ve talked about many times before. [Matt] thoughtfully provided the firmware precompiled so you don’t have to install gcc for the RISC-V unless you want to write you own software. Which, of course, you will.
Ok, we’ll admit it. We like FPGAs because it reminds us of wiring up a 100-in-1 kit when we were kids. But the truth is, many projects are just as well off to have a CPU. But there’s a real sweet spot when you have a CPU and an FPGA together. Intel (or Altera, if you prefer) has the NIOS II CPU core, but that’s hard to configure, right? Maybe not, thanks to a project by [jefflieu] over on GitHub. He’s assembled some basic definitions and libraries to easily — relatively speaking — use NIOS II on the MAX1000 as well as a few other boards. The MAX1000 is a pretty nice board for about $30, so this is a very inexpensive way to get into “System on Chip” (SOC) development.
[jeff] goes into more detail in a blog post, but the idea is pretty simple. We tried it, and it works very well, although we found a few things hard to follow so read on to see how we managed.
The idea behind SoC development is you define your CPU configuration and then your hardware devices. Then you write software to talk to those custom hardware devices and — of course — write your actual application code. So you don’t just write a program, you also define the CPU the program will run on and the hardware that it will talk to.
There are several ready-to-go I/O devices included in the project, but the real fun will be writing your own. The Intel tools have the C compiler and everything else you need. You could also do everything from scratch, but these tools make it much easier to get started.
Linux is in everything these days, and that means designers and engineers are crying out for a simple, easy-to-use module that simplifies the design of building a product to do something with Linux. The best example of this product category would probably be the Raspberry Pi Compute Module, followed by the C.H.I.P. Pro and its GR8 module. There are dozens of boards with Allwinner and Mali chips stuffed inside that can be used to build a Linux product, and the ‘BeagleBone on a Chip’ is a fantastic product if you need Linux and want to poke pins really, really fast.
Now Microchip is rolling out with their answer to the Linux System on Module. The SAMA5D2 is a single chip in a BGA package with a small footprint that runs Linux. It’s capable, it’s cheap, and if you want to put Linux in a project, this is your newest option.
The core product in this new Microchip lineup is the SAMA5D2 SIP, a system in package that puts an ARM Cortex-A5 CPU and DDR2 memory in a single BGA package that, with a cursory examination, looks easy enough to design a PCB around and reflow. There are four chips in this lineup, with 128 Mbit, 512 Mbit, and 1 Gbit of DDR2 memory. The 128 Mbit chip is meant for bare metal and RTOS applications, with the higher memory chips capable of running Linux at least as well as a repurposed router.
This chip is at the core of Microchip’s ATSAMA5D2 SOM, a system on module that adds power management (that only requires a single 3.3V supply), an Ethernet PHY, and boot memory into a single package that’s effectively as hand-solderable as a QFN package. It’s Linux on a Chip, or at least as close as we’ve gotten to such a concept.
Adding Linux to a project is hard, and while there are modules and systems that can do it, we’re always welcoming more options given to designers. While these modules and systems aren’t exactly cheap compared to a beefy ARM microcontroller — the SIP starts at around $9, the SOM is available for $39 in 100-unit quantities — this price is quite low compared to other Linux-on-Modules available.
Open source software has unquestionably gone from fringe idealism to mainstream, even if the average person doesn’t really know it. From their web browser to their smartphone operating system, more people are running open source software today than at any other time in the history of computing, and the numbers are only getting bigger. While we can debate how well some companies are handling their responsibilities to the open source community, overall this is probably a lot closer to an open source utopia that many of us ever believed we’d get.
For argument’s sake, let’s say the software is settled. What’s next? Well, if we’ve got all the open source software we could ever ask for, naturally we now need to run it on open source hardware. Just like our software, we want to see how it works, we want to modify it, and to fix it ourselves if we want. These goals are precisely what [Lukas Hartmann] had in mind when he started work on Reform, the latest entry in the world of fully open source laptops.
Like the Novena that came before it, the Reform leverages the four-core ARM Cortex-A9 NXP i.MX6 SoC to deliver tablet-level performance, though [Lukas] mentions the design may migrated to the upgraded six-core version of the chip in the future which should give it a little more punch. The SoC is paired with the Vivante GC2000 GPU which can be used under Linux without any binary blobs. Most hardware is connected to the system via the USB 2.0 bus, though networking is provided by a ThinkPenguin mini PCI-e wireless adapter, and on-board SATA handles the 128 GB SSD.
While the internals are relatively run-of-the-mill these days, the work that [Lukas] has done on the case and input devices is definitely very impressive. He partnered with industrial designer [Ana Dantas] to get the look and feel of the system down, and built almost everything out of 3D printed parts. Even the keyboard caps and the trackball were manufactured in house on a Formlabs Form 2. Rather than using an off-the-shelf USB HID solution, [Lukas] is using Teensy LC boards to interface the custom input hardware with the OS.
[Lukas] is still working on how and when the Reform will be made available to the public. After some refinements, the team hopes to make both kits and individual parts available, and of course put all the files up so you can build your own if you’ve got the equipment. A mockup Amazon listing for the Reform has been posted to get the public’s feedback on the look and features of the machine, and [Lukas] asks that anyone with comments and suggestions send him an email.
At the Linley Processor Conference today, SiFive, the semiconductor company building chips around the Open RISC-V instruction set has announced the availability of a quadcore processor that runs Linux. We’ve seen RISC-V implementations before, and SiFive has already released silicon-based on the RISC-V ISA. These implementations are rather small, though, and this is the first implementation designed for more than simple embedded devices.
This announcement introduces the SiFive U54-MC Coreplex, a true System on Chip that includes four 64-bit CPUs running at 1.5 GHz. This SoC is built with TSMC’s 28 nm process, and fits on a die about 30 mm². Availability will be on a development board sometime in early 2018, and if our expectations match the reality of SiFive’s previous offerings, you’ll be able to buy this Open SoC as a BGA package some months after that.
The last year has brought us CC3000 WiFi module from TI, and recently the improved CC3200 that includes an integrated microcontroller. The Chinese design houses have gotten the hint, putting out the exceptionally cheap ESP8266, a serial to WiFi bridge that also includes a microcontroller to handle the TCP/IP stack and the software side of an 802.11 connection. Now there’s another dedicated WiFi module. It’s called the MT7681, and it’s exactly what you would expect given the competition: a programmable module with the ability to connect to a WiFi network.
Like TI’s CC3200, and the ESP8266, the MT7681 can be connected to any microcontroller over a serial connection, making it a serial to WiFi bridge. This module also contains a user-programmable microcontroller, meaning you don’t need to connect an Arduino to blink a few pins; UART, SPI, and a few GPIO pins are right on the board. The module also includes an SDK and gnu compiler, so development of custom code running on this module should be easier than some of the other alternatives.
You can pick up one of the MT7681 modules through the usual channels, but there’s an Indiegogo campaign based in China that takes this module and builds a ‘dock’ around it. The dock has a relay, temperature/humidity sensor, a few GPIO pins, and a USB serial connection for use as an Internet of Things base station.
For anyone looking for a little more computational horsepower, there’s also a few mentions and press releases announcing another module, the MT7688, This is a very small (12mm by 12mm) module running Linux with 256 MB of RAM and 802.11n support. This module hasn’t even hit the market yet, but we’ll be on the lookout for when it will be released.