One of the great joys about today’s electronics industry is the way in which the same words are used by different people to mean different things. Take, for example, the phrase “embedded software.” For a long time it has meant the software that has run on an embedded system (although exactly how to define an embedded system is open to debate). Suddenly it also means the software running within a System on Chip (SoC). A perfectly valid use, and much of what is involved in developing and testing the software is similar, but it does open the door to potential misunderstandings.
Another phrase that is open to a variety of interpretations is “open source hardware.” Since “open source software” became a commonplace concept, people have tried to find a route to developing a hardware parallel. So let us first look at what people mean by open source software. And be aware that here we are moving into an area that can, at times, be as much about ideology or faith as it is about technology.
We start with “free” software. Richard Stallman and other leaders in the free software movement are at pains to point out that free here is not the same as “free beer” but free as in “free speech” – software that you are free to use, modify and pass on, with or without the modifications. There are constraints, which are covered by copyleft, a form of copyright that effectively allows you to do whatever you want to the code except sell it as proprietary software without the freedoms. The constraints are spelled out in the GNU GPL – General Public License. (GNU? Ah, this is one of the signature foibles of the free software movement; recursive acronyms. In this case GNU’s Not Linux. Don’t worry – it’s not important.)
For many involved, the free software movement, which was founded in the early 1980s, is a form of faith, and they talk about right and wrong in relation to the ownership of software. And, as with all faiths, there was a schism, or split, over fundamental matters. In this case, the new sub-faith is the open source movement. This was created, in the late 1980s,
“to dump the moralizing and confrontational attitude that had been associated with “free software” in the past and sell the idea strictly on … pragmatic, business-case grounds.”
For some, open source is a development methodology: if the community contributes to the development of software, then the resultant product should be “better” than that created by a single person or small team. For others it is a way to make money out of free stuff. Linux is an example of both of these. There are a vast number of people and companies contributing to Linux, and their effort is freely given and the result freely available. Equally, some companies make money out of Linux, for example by providing a Linux distribution, a package of Linux plus drivers, accessories etc, that allows the user to simply load and run. Users are prepared to pay for the convenience of not researching, downloading and installing all the other elements, and also are happy to have someone else provide a maintenance and up-dating service. Red Hat, for example, has built a very large company from this model. Other companies will give away software, making an income by providing additional products and services around the free software. Google is an example, providing a free search engine to the world, while also acting as an advertising medium. And in the EDA area, Imperas has created the Open Virtual Platform, for simulating processors for SoCs and ASICs.
In the EDA environment, open source software operates in a number of ways. Linux is gaining popularity as the OS platform for tools, and System C is an open source initiative. While there are attempts at open source design tools, and Googling open source EDA reveals a substantial list, they are really making an impact only in PCB design; not in IC design, and you can browse for hours in the discussions as to why this is so. (Of course there is always SPICE to be the exception.)
But back to open source hardware. This is a wonderful phrase with multiple meanings. At one end of the spectrum you have the Open Moko FreeRunner open phone. This is (possibly was – reports are around that the project has closed) a cell phone that runs any software you choose to load. Then there are a number of board designs that are free to download and implement. And finally, what we are looking for, IP for integration in an SoC or ASIC.
There is one example of a kind of open source hardware that has seen success: the SPARC (Scaleable Processor ARChitecture) instruction set, originally developed by SUN but donated to the community, has been implemented by a number of people. But it is still a step or so away from the kind of IP that you can just drop into your design. Over the last twenty years there have been a number of attempts to develop open source hardware IP, but so far none of these have really taken off. Now we have a new attempt, being thought through by Dr. Jeremy Bennett.
Bennett has a track record of success in the EDA industry. He was CEO and CTO of Tenison Design, the company acquired by ARC in 2007 that developed VTOC, which synthesized Verilog or VHDL into C++ and SystemC models. Now he is CEO of Embecosm, a company that, to quote the Embecosm website, “brings together the open source GNU tool chain and EDA modelling to boost embedded software productivity.” (Embedded software in the sense of software for SoCs.)
He has recently started looking at the issues surrounding open source hardware. His approach is that the business model should be that of giving away IP and software and selling support services. He has even identified some activity already taking place, such as work from ORSoC in Sweden. But the big issue he sees is the licensing. Software can be protected within the rules of copyright, and the GNU GPL is now mature, widely used and generally accepted.
Hardware may be described in an artificial language in the same way as a programme uses a programming language. But while the programme is the final form that is distributed, hardware is distributed in its manufactured form. With the existing laws, then, hardware has to be protected today by patents. Patents, while intended to carry out the simple task of allowing an inventor to benefit from an invention, have become complex and expensive. Patent law varies from country to country and complete world-wide patent protection, even if it is achievable (which is debatable), is mind- and wallet-bendingly expensive.
Bennett is working with companies and organisations on developing a community to create an appropriate license for open source hardware. To demonstrate that this is not an impossible task, he cites the Tucson Amateur Packet Radio (TAPR) Open Hardware License, developed by John Ackermann. A full description of what it covers, written for lawyers, not engineers, is at http://www.tapr.org/Ackermann_Open_Source_Hardware_Article_2009.pdf. Reading this, it seems that the license is more targeted at boards than ICs. Also two of the organisations that Bennett is working with: the Cambridge University Computer Lab and CERN, the European Nuclear Research Centre, are both offering open source board designs rather than IP. Still, I suppose boards are a starting point for open source hardware, and they are certainly easier and cheaper to manufacture than an SoC.
Perhaps a significant issue is the question of support. As my colleague Jim Turley pointed out over seven years ago in another journal (I said that this was a long-term issue), one of the factors in choosing IP is the support that is available, and the more complex the IP, the greater the quality of support that is needed. Bennett’s perspective that companies will give away IP and related software and make money from servicing the software requires an infrastructure of slightly more than one man and a dog. But the up-side is that revenue stream will come from selling service soon after the IP has been delivered, unlike normal IP where the revenue stream of royalties doesn’t really flow for several years, five or more, from the original design in. (The cycle goes, design in to SoC, SoC development cycle, SoC is sold to end-product manufacturer, end-product design and sales cycle, volume sales and then royalty revenues start.) And support service revenue is disconnected from the vagaries of the market: where a really high volume sale will produce a strong revenue stream, not many products achieve those volumes.
It would be good to see open source IP, and it is likely to come at some stage. Just don’t hold your breath.