Introducing the Cubic Board -- A Completely Open Source FPGA Project

Cubic Board

Max Maxfield, Richard Price

EETimes

One of the main design considerations for the FPGA-based Cubic Board was to make it easily accessible to both software and hardware developers

I first met Bo Zhou in September 2013. We both worked at Altera Corporation, but in different parts of the R&D organization. I worked on silicon design and Bo worked on IP development, although – in our professional roles – our paths had never crossed. Earlier that year, I had attended the Bay Area Maker Faire in San Mateo to check out the latest in open source electronics, which is a particular passion of mine. I came away from that event firmly believing that FPGA and programmable logic would fit nicely into the hobbyist and open source hardware community and thinking «So, where are the FPGA guys?»

Back in the office, I decided to see if there was any interest across the company in having an Altera booth promoting FPGAs at the next Maker Faire. It turns out that there was quite a bit of interest, which culminated in our having a company-sponsored booth at the May 2014 Maker Faire. In this booth were several demos designed and constructed by Altera employees.

In the run up to this event, we held a Friday afternoon beer bash in the cafeteria for all of us fellow Altera Makers to meet and share ideas. One idea I proposed was a «pocket-change» FPGA board with a sticker price of $9.99. That particular idea never went any further, although one unassuming guy in the group later pulled me to one side to describe how he was building an FPGA board based on a very similar concept. This person turned out to be Bo Zhou.

The original revision of Bo's board used a Cyclone IV E FPGA and was named "Cubic Board" (Compact Cyclone Core, C3). The motivation was to build an FPGA module that would be usable across many types of project. This was based on the observation that traditional FPGA development boards were built for educational or lab-evaluation purposes, and so would not necessarily be optimized for production use. Also, there were only a few FPGA modules on the market similar to the Cubic board concept; all of them seemed rather expensive; and none of them were open sourced.

Thus, Bo decided to design and build his own cost-optimized, yet industrial-strength FPGA module. Initially, the project was largely motivated by the unique requirements of his «killer app» (he's keeping quiet about that for the time being), which requires a lot of heavy duty signal processing and tremendous bandwidth that only an FPGA can provide. His application also requires scalability, meaning the ability to connect more boards in parallel to do more work. The killer app also has strict physical dimension requirements, which eventually lead to a 2-inch square FPGA module form factor containing only the bare bones sub-system components (e.g., DDR memory). All extraneous push button switches, ports, LEDs, etc. were removed. The board becomes a ready-to-use GPIO cluster once powered up, thereby enabling users to focus on their own proprietary logic development instead of having to deal with less value added – and often complex – sub-system design work.

This concept soon became popular among Altera makers. One of the other team members for this project, Chris Rauer, used his embedded software expertise to quickly port Linux onto the board utilizing Altera's soft-core NIOS processor and created a Python library to control the GPIO. During the 2014 Maker Faire event, we actually handed out a bunch of these boards. Amongst the feedback we collected, there was clearly a strong demand for a version of this board with a hardened ARM processor, and we believed this would be an enabler for better adoption.

This feedback resulted in Rev 2 of the board, which instantiated the Cyclone V SoC FPGA device and was imaginatively dubbed the Cubic SoC Board. This Altera FPGA is a 28 nm device (compared to the 45 nm Cyclone IV device) and contains dual ARM Cortex-A9 hard processor cores as well as a hardened DDR memory controller and multi-gigabit transceiver channels. The form factor of the board was also changed to a 70 mm by 33 mm rectangular size with a single edge connector, as opposed to the fine-pitch connectors on three sides of the board sported by the original version. In order to fully utilize the dual-core 800 MHz ARM processor, the team grew and devoted substantial amounts of their personal time to work on different aspects of the board. This resulted in the Rev 2 Cubic Board having a full software stack, including embedded Linux support, various drivers, and multiple demo programs.

Introducing the Cubic Board -- A Completely Open Source FPGA Project
Figure 1. Cubic Board.

One of the other main design considerations for this board was to make it easily accessible to both software and hardware developers. We believe we have achieved this goal in several ways. First, the Cubic board is positioned to be an open-source project and we believe this is the first ever open source FPGA board ever made. Even though the board started life as a hobbyist project, the Cubic team aimed to build a professional grade board. In fact, among all FPGA system-on-module (SoM) boards out there, we believe the Cubic board is the most-capable board for its size. With the open-source design files, both software and hardware developers should, with little effort, be able to build complex yet powerful embedded systems from the ground-up.

Second, having "hard-to-design" hardware features integrated into the Cubic SoC's compact SoM form-factor – for example, designed and proven LPDDR2 memory and USB interfaces – enables the developer to focus on more value added design work. Due to strict timing requirements, those components are often troublesome and time-consuming to design and debug.

Third, the SoM has a Linux image ready to boot, so the software developer could quite easily get I/O pins toggling within minutes. And, finally, we believe this board eases the hardware developer into the world of embedded software development by having Linux drivers already available, all of which leads me nicely to the tool chain...

Altera provides free versions of all the tools necessary to program the hardware and software for the Cyclone V SoC FPGA – namely, Quartus II for programming the FPGA fabric, and EDS for software development. Now, while this suite of tools is really nice, it is still pretty complex to use, and it takes a lot of effort to get a system like this up and running, so we developed a virtual machine to largely remove this complexity for the user.

Along with the Cubic SoC SoM board, we developed two base-boards. The Cubic SoM board plugs in to each of them using that edge connector. The first baseboard is designed to demonstrate the capability of the Cubic SoM board, and looks much the same as any other eval board with lots of switches, connectors, LEDs etc.

Introducing the Cubic Board -- A Completely Open Source FPGA Project
Figure 2. Full Base Board.

The second base-board is much smaller and aims to provide the user a with a single USB wire hookup experience, thereby enabling immediate re-configuration of the FPGA (full feature lists for each of these board are available on our CubicBoard.org website).

Introducing the Cubic Board -- A Completely Open Source FPGA Project
Figure 3. Mini Base Board.

We believe the Cubic SoC board has a lot more performance and capability than other similar products out there (e.g., Arduino or Raspberry Pi) and – using the Cyclone FPGA's pin migration capability – adding additional hardware resources by building the same board with a larger capacity FPGA is possible. All that processing power does, however, come at a price premium, probably retailing for sub-$200, which we believe is still very accessible for many hobbyists and commercial product developers.

Introducing the Cubic Board -- A Completely Open Source FPGA Project
Figure 4. The team (from left to right): Duy Pham, technical contributor;
Richard Price, project lead & coordinator; Evan Custodio,
technical contributor; Chris Rauer, embedded software guru;
Bo Zhou, original inventor; Lichao Li, Web developer.

So, having built this thing, we are now faced with a decision on what to do with it. Even though we all work (or worked) for Altera at some point, this was not a project sponsored by the company. After much consideration, we decided to position the Cubic SoM board as an open-source project and to serve as a design reference for all. Of course, the Cubic team continues to invest their time in making improvements and updates. In the meantime, we welcome any business entity with interest in manufacturing and selling Cubic boards to check out our CubicBoard.org website.

eetimes.com