Perhaps the easiest way to define it is by looking at what it is not - by looking at current commercial design practice.
- Designs are owned by the company which creates them. Ownership is protected by 3 sets of laws: copyright, trade secret, and patent. It is often not even possible to see a design without signing a non-disclosure agreement.
- Designers cannot legally build on older designs unless their company owns the right to use these designs. Larger companies hold 'patent pools', which they use as bargaining counters with one another, and which block new entrants from the market. This is particularly important for developing countries.
- Where the design is for a basic building block (eg an FPGA, or a cell library), design software can only be written by those entitled to know the secret information. EDA software is either written in-house (eg for FPGAs) or by software companies that have agreements with the manufacturers. Even where EDA software is generic, end users often have to purchase the right to use specific libraries. The result is that EDA software is ridiculously expensive; all except the largest companies (or universities) are barred from using them by cost.
- Designs are driven by marketing departments. The two main goals are minimizing time to market (estimated to reduce by 30% per year for VLSI designs) and minimizing manufacturing costs.
- Users of the final product have no rights to know how they work.
The combined effect is to create a closed caste of designers producing unintelligible products for a passive population of consumers...
So what would free designs look like by comparison?
- Designs are owned by the people who create them. Ownership is protected by copyright law only. The intention is to make designs as widely available as possible.
- There is every incentive to build on older designs, to collaborate with as wide a spread of people as possible, and to make the designs widely known. NGOs in developing countries are not locked out, but encouraged to reuse designs.
- Design software is free software, so that anyone who wishes to can participate.
- Designs are driven by the wishes of their creators. The end goal can be whatever they wish.
- Users of the end product can not only know how it works, but are encouraged to create improvements or modify it for their own purposes.
If this list were fully realized, knowledge of hardware design would become more diffused through society, destroying absolute barriers between `creater' and `consumer'. Designs that people wanted could be produced, rather than designs planned for people to buy.
In practice, some of the features of this list are already realities, and some are becoming so. Its often assumed that `free hardware design' is beginning only now, as a side effect of the free software movement; in fact, many of these ideas are anything but new, and free hardware design was born with free software.
Like much of the earliest `free software' culture, free hardware designs first emerged from the wreckage of the 60s counterculture in the USA.
The 60s student movement in the US, based around the SDS (Students for a Democratic Society) had tried to work for a participatory democracy based on community activism. By the early 1970s it was becoming evident that networked computers could be the basis for a new type of communication that could reinforce and extend communities, an alternative to the centralized broadcast medium of the press (even the underground press): a medium for active participants. But the existing computer technology could not easily be used for this purpose: the first community bulletin boards depended on donated mainframes, a rare and almost unintelligible resource brought in from outside the community, where the skills to run, maintain, repair, and develop them were likely to be almost nonexistent.
At the same time, small, medium and eventually large scale integration TTL devices were becoming easily available. They were ideal for the hobbyist: simple, cheap building blocks which could be put together easily with the simplest of tools (veroboard, wirewrap, or home-made PCBs). Frequencies were low, and most analogue effects could be ignored: the most horrible looking rats nest of tangled wires had some chance of working. A large pool of individual hobbyist designers began to emerge.
One person with a foot in both camps -- working as an electronic designer, involved in the Berkely Free Speech movement and now maintaining the first community bulletin board system -- was Lee Felsenstein. He had recently read Ivan Illich's `Tools for a Convivial Society':
An individual relates himself in action to his society through the use of tools that he actively masters, or by which he is passively acted upon. To the degree that he masters his tools, he can invest the world with his meaning; to the degree that he is mastered by his tools, the shape of the tool determines his own self-image. Convivial tools are those which give each person who uses them the greatest opportunity to enrich the environment with the fruits of his or her vision.
Lee's stroke of genius was to see how to apply these rather abstract ideas to the concrete problems of the community bulletin board systems: the new computers (initially, just the terminals) should be designed and built collectively, tapping into the energy of the individual hobbyists scattered across the country, and creating pools of people in each community who knew and understood every detail of the systems they were running. The maintenance and repair problems would disappear. To take on a use as `tools for conviviality' the whole design process for computers needed to be inverted, to become a convivial process in itself.
Lee's first attempt to realise this goal was to design the `Tom Swift Computer Terminal', for which he distributed the schematics as widely as he could 1.
The second was not a design at all, but an organization: the [jump="http://www.opencollector.org/history/homebrew/index.html"Homebrew Computer Club, started by a group of 5 activists and engineers. Growing from 30 people in its first meeting to 600 within a year, the club encouraged the flourishing of cooperative homebrew computer design. Designs, even those which became commercial products such as the first Apple, were shared, discussed, and fed into one another. The direct and indirect influence of the club spread far outside the US.
The initial home computer `industry' was thus a loose collection of small manufacturing companies and hobbyist groups (often the same people), built on a culture of openness. By the time the old computer companies realised that there was a potential market for them here, they were too late to impose their desired closed systems. In spite of the corporate spin that IBM put on developments 2, the participants of the Homebrew Club were quite clear that they had managed to impose their way of doing things:
In 1978 IBM put its foot over the line and said `that's mine' with the 5100, a bread-box size wonder of incompatibility that epitomized the IBM way. They don't like to talk about what happened to them. In 1981 they returned with the 5150 (the PC), and with it they followed the rules we had laid out. Anyone can play, these rules read, but you must make your architecture and executive code as public as possible, and you must encourage individuals to write programs and create add-ons. You can play games, but you must help others to play as well. [Lee Felsenstein, 1984]
The first wave had been almost entirely outside the universities. The second wave was entirely based on the universities, involving an almost completely orthogonal set of people.
The first wave had worked with sharing of designs based round commodity ICs. The internals of these ICs were well documented, so this had not been a problem. The designs themselves were largely drawn by hand, as were the commercial ones of the time. Chip designs were not hugely complex logically, but creating them did need a deep knowledge of semiconductor physics - a knowledge restricted to the engineers of the relatively small number of companies that produced them (which at that time usually implied owning their own fabrication equipment).
By the late 1970s this transparency was beginning to disappear: the size and complexity of chips was becoming enormous. Chip designers creating custom designs needed a knowledge of all levels of the device, which was becoming increasingly unmanageable. There were two requirements: to separate the physical design of the chip from logical design and architecture, and to start automating the process of deriving one from the other.
This was not just a technical problem, but a social one: it required the creation of a pool of engineers who could work in the new way. The impulse for its solution came from two people who saw this very clearly: Carver Mead and Lynne Conway. The method they invented correspondingly had two parts: a technical part, involving the reduction of logical designs to simple diagrammatic representations with a direct, physically viable, semiconductor implementation; and a social part, which was the invention of what Eric Raymond would years later call `the bazaar'. Lynne Conway's paper `The MPC Adventures' is a textbook description of how to create a bazaar-style community:
- Involve large numbers of people.
- Debug in parallel.
- System designers must also be system users.
- Rapid response to user feedback - release continuous bug fixes and improvements.
- Let standards evolve from common usage.
Prerequisites for this were the existence of a network (initially the ARPANET) and complete transparency. Co-operation between large numbers in turn made it economically possible to manufacture chips at low cost by incorporating many designs on a single wafer.
From an initial base in Xerox Parc, Caltech, and MIT, the method rapidly spread across the US and then across Europe. Initially, the main software used was simply for layout; but the software needed to be free to encourage the spread of the method. This was before the creation of the FSF and GPL, but Chipmunk, the descendant of Mead & Conway's original software is still used for teaching and research, and is now under GPL. As the method spread so the pool of people able to design ICs grew at a tremendous rate, creating a great flowering of university-developed design automation software, most notably in Berkeley and Stanford, but also in European universities such as Delft. Magic for layout, SIS for logic synthesis, Espresso for logic minimization, Ocean for sea-of-gates design, Olympus for synthesis: all were naturally created under free licenses. For a period the state-of-the-art in design software was free software, and even now nearly all of todays closed-source design tools contain some elements from these programs.
By the early 90s the second wave was grinding to a halt. Rather than creating free software which could be used commercially, universities began to develop software under contract to the EDA companies, or sought to set up their own companies to commercialize their products. EDA software became closed source and either unavailable to the general public or tied to particular companies' products.
The survivors of the first wave had seen technology change from under them: increased miniaturization, higher clock rates, multilayer PCBs, circuits dependant on custom ICs: all made it increasingly difficult to produce designs not hopelessly outdated. A period of nostalgia settled in, with many content to update the designs of the early 80s.
In spite of this, many individuals carried on with their own designs or work on EDA software. And from the mid 90s technological and social changes once again drove a new flowering of free hardware design, which could also build on the experience of the past.
Over the last 2 or 3 years free hardware design has grown at an amazing rate.
Among the new elements driving free hardware design now are:
- The increased scale of ICs allowing SOCs (Systems-on-chip), and the resulting need for (and potential market in) libraries of designs at least in part independent of their physical realization. As FPGAs have grown in size, they two have created a need for design libraries. Attempts to create commercial libraries of such designs in the 90s were largely failures; free designs have little competition. The first established free site for these designs was Free-IP; now, the group with the largest number of participants is [jump="http://www.opencores.org"OpenCores. OpenCores is pulling in designers from round the world, from students to highly experienced professionals. The nominal goal of OpenCores is to produce a full library of SOC components, and to have this manufactured. There is no single standard for bus interconnections for SOCs; Silicore Corporation have now made their `Wishbone' bus design public domain and OpenCores have begun to enhance it; it may well emerge as the standard. Flextronics have now announced they may finance production of the first ASIC basic on OpenCores designs.
- The widespread use of FPGAs, giving the possibility of implementing complex designs even without access to factories. FPGAs appear to solve nearly all the problems run into by the board designers of the 80s. A complete circuit can fit into one chip (and the rapid growth in size of FPGAs means that a 'complete circuit' is not necessarily just a processor, but may be a complete system). The FPGA can be loaded with different designs at will - no need to make a new board for each use, making design test and debug much closer to software development. Virtually all free design groups are making some use of FPGAs. As a fairly random example, the CPC-NG group, who are designing an updated version of the Amstrad CPC computers of the 80s, are using an FPGA to re-implement the original Amstrad ASIC, something that would not have been possible before.
The initial challenge for a hobbyist is no longer 'design a computer', but 'design a processor': for the first time since the bit-slice processors of the 70s, hobbyists can actually design meaningful processors.
- The expansion of the market for embedded systems: once again, systems on a scale that hobbyists can build. The computer is no longer only a large, overheated, box, but a multitude of small, handheld systems. An interesting system does not need to be one which outruns a multiprocessor board or is clocked at gigaherz, but can be a small, cheap device with a novel application. There are quite a number of embedded boards such as the Lart, which runs Debian Linux on a StrongArm CPU and was originally designed for radio applications. Maybe more in the spirit of free design is MorphyOne, a Japanese palmtop which includes an uncomitted CPLD so that users can design in their own additional interfaces. OpenH.org have started rewriting the Sourceforge software to provide a Sourceforge equivalent aimed at embedded systems hardware designers.
- The expansion of the internet to cover the world, not just the US and Europe. Free hardware design is not just based on English speakers, but Japanese (eg Morphy), Indonesian (eg. many OpenCores participants), Indian (eg Simputer), South African (OpenH).
The range of experience and also the range of needs for different applications is wider than ever before. At the same time, the imposition of IP laws on developing countries has been done in such a way as to push them into developing convivial technologies as an alternative strategy, as shown by the Bangalore Declaration on Information Technology for Developing Countries.
The first of these to be mass-produced will be the Indian Simputer, which will also be used in Africa.
The Simputer is not a Personal Computer in the conventional `PC' sense. The `Wintel' architecture of the de facto standard PC is quite unsuitable for deployment in the low-cost mass-market of any developing country... [the Simputer] is targeted as a shared computing device for a local community of users. A local community such as the village panchayat or the village school, or a kiosk, should be able to give this device out to individuals for a specific period of time and then pass it on to others in the community.
Designed with this application in mind, the Simputer is heavily based on personalization through the use of smart cards.
Other related designs are the MIT Pengachu (designed for minimal power consumption, perhaps even wind-up). The Brazilian equivalent, LUAR, unfortunately seems to have been designed in a closed-source style (though the software is free).
- The presence of an established free software movement, not just as a resource but as an example of what is possible. Given the persistence of free software, it is possible that this time free hardware designs may not just fade away and be absorbed by commercial interests, but may also become a permanent gain.
What happens in the future depends partly on how the outstanding problems in free hardware design are resolved; among others these are: the lack of free EDA software; an uncertain relationship to manufacturing, and the lack of legally defensible licenses.
The first free hardware design site to make a major impact was Open Design Circuits, started by Reinoud Lambert of the University of Delft. The site proposed
Open Design Circuits are the chip design counterparts of Open Source Software with designs (sources) openly shared among developers and users. The open-design circuit approach outlined here captures the true advantages of open-source software, and aplies them to hardware. It avoids the large initial investments usually needed for hardware development, and it allows for the rapid design sharing, testing, and user feedback which are key to open-source software success.
The initial idea was thus strongly based on the success of open source software, and it foundered for exactly this reason. The assumption among most of the participants was that open-source hardware had to be based on open-source software. There is no open-source software for FPGA design; manufacturer's secrecy over FPGA internals means that there cannot be. Designers have to either use donated commercial software, or commercial freeware.
Even where open-source software is possible (HDL compilation to netlists, and simulation, in particular) it is generally considerably behind commercial software. This even applies to PCB design. Given the additional effort needed to make use of the open-source EDA software that does exist, and the need to switch to commercial software for the back-end, almost all those involved in free hardware design have practically abandoned open-source design tools. This leaves those working on such tools without the pool of feedback that would otherwise be available, and weakens the free hardware design movement by decreasing its links with free software.
In time, open-source EDA will grow to the point where it is once again competitive with commercial software, at least for the front end. The gEDA group has in practice become the focal point for this development: not only the gEDA developers, but developers of other software such as Icarus Verilog, Spice-Next Generation, Al's Circuit Simulator, and the Savant VHDL tools make regular use of the gEDA mailing lists.
The real problem is the back-end: the hardware targeted, whether IC cell libraries or FPGAs, are both fast-changing and often protected by commercial secrecy. One possibility is that free hardware designers will be able to bootstrap from their own hardware substrata. The OpenCores group is already working on designing a new (and hopefully patent-free) FPGA as part of their SOC.
The initial reaction of many free software supporters to the idea of free hardware designs is `all very well, but you can't manufacture your own chips'. What initially seemed to be the largest problem of all is starting to seem less of a problem. The first chips based on GPL-ed designs already exist: the ESA's SPARC designs have been implemented both for the ESA themselves and as part of commercial products (Metaflow and IROC). OpenCores have said that they hope to have their own processor manufactured soon. Similarly, at the board level, the Simputer is now being manufactured in Mauritius by a company which hopes to target both Indian and African markets. So manufacture is possible, provided that the design appears to be one with commercial possibilities.
For designs which do not offer an immediate profit, and during testing and development, the problem is harder. One possibility is to leverage university programs which have access to chip foundries using Mead & Conways strategy of multiple chips on a single wafer in order to reduce costs. Boards are simpler, and many groups can afford to have their own manufactured. In the long run, the answer has got to come through co-operation between multiple groups, perhaps centralized through organizations souch as OpenCores and OpenH.
Commercial designs are protected above all by patents. Free designers cannot afford patents, and in any case have no incentive to use them. Protection must be achieved under some mix of copyright law, contract law, and the Semiconductor Chip Protection acts.
The `traditional' license which emerged during the 80s says something like: `anyone can use this design, except for commercial purposes'. This is both contrary to the spirit of free software, and is shooting yourself in the foot if the only way to manufacture a design is to have it made for commercial purposes.
The ideal license would be one like the GPL, which can be used commercially, but which forces improvements to be fed back into the free design pool. Yet no-one has yet created a license which is generally accepted as doing this for all aspects of hardware design. The FSF accepts that designs written in an HDL are software, and so can be covered by the GPL. For schematics, IC layouts, etc, it seems that the law may not make this possible. The best that can be done may be something like the BSD license, which cannot prevent firms from making radical improvements to a base free design while keeping them secret, effectively privatizing the design.
But it is still possible that GPL-style licenses may work. The Simputer license is a hybrid GPL-style license (copyright based) combined with a creative use of trade-mark and contract laws. And it is the first such license to have been vetted by a lawyer.
Even if none of the problems listed above are solved, free hardware design has been a major success: hundreds, if not thousands, have been involved, have enjoyed themselves, have learnt. The knowledge of one area of technology has spread a little further than it would have done otherwise, giving people back a little part of control over their lives. Some achievements which now seem unstoppable whatever happens are:
- the creation of available free platforms for Linux.
- free processor designs that outperform commercial ones.
- designs that implement features commercial designers don't care about (maybe open FPGAs, or an Ogg Vorbis implementation?).
- designs for markets commercial designers don't care about - free designs for the developing world.
In the long run, as solutions emerge through time, we may look back on this point as the time when control over our lives as passive consumers began to be replaced by creation of our lives as active participants. In a society that seems determined to force unwanted pay-per-view tv, ridiculous encryption systems, and privatized knowledge on us in order to maintain profits, there is a chance to build an alternative technology which is truly convivial.
- The Bangalore Declaration on Information Technology for Developing Countries, Nov. 4th 1998
- Lynn Conway, The MPC Adventures, 2nd Caltech Conference on Very Large Scale Integration, Jan. 19th 1981
- Peter Clarke, Momentum builds for open-source processors, EETimes, Feb.1 2001
- Lee Felsenstein, How we fought the dinosaurs, Creative Computing, Vol 10 No. 11, November 1984
- Lee Felsenstein, interviewed in The Analytical Engine, Vol 3, No. 1, November 1995
- Ivan Illich, Tools for a Convivial Society, Marion Boyars Publishers, Dec. 1990
Diskussion auf der Oekonux-Liste
1 "Hardware reliability was an obvious problem ... My way out of this future problem was to design an all-purpose `convivial cybernetic device' as a terminal/concentrator/processor in such a way that amateurs would be encouraged to get their hands on it. In theory, each place where one of the `Tom Swift terminals' was installed would develop a computer club. Then, when a terminal broke down, relief would be a local matter, and people would not have to place their faith in a remote maintenance system."
2 "It is choice that is the underpinning of IBMs commitment to open architecture: providing information and specifications which encourage others to develop options and programs that run on our systems. This approach has enabled hundreds of companies and individuals to develop hundreds of hardware peripherals which people can choose for their IBM Personal Computers." [P.D. Estridge, then president, IBM Entry Systems Division]