작성일: 2004.09.27
Free chips for all
Jamil Khatib (khatib@opencores.org)
Hardware designer, Siemens-ICT
1 August 2000
Jamil Khatib reviews the open hardware model for chip design. After a brief look at early open hardware projects, he discusses why hardware designs should follow the model of open source software, what the current open hardware groups are working on, and what problems are involved in translating the open model from software to hardware.
Open hardware is gaining speed. As a result of the popularity and success of open source software, engineers have begun to take the same approach to designing hardware. Along with the international community of engineers, students from universities like as Delft and companies like Sun Microsystems have already joined the race. The open hardware designs range from simple IP cores and prototyping boards all the way up to CPUs and motherboards.
OpenIPCore and OpenCores, two of the most influential groups in the community (see Resources), are defining general design concepts and licensing protocols for engineers to work with in developing open hardware. The future of open hardware design depends primarily upon legal design protection (similar to the GNU license) and the availability of EDA (Electronics Design Automation) tools. The open hardware community hopes to eventually compete on the market with commercial hardware technology, basing its strategy on the success of the open source model for software development and support.
Now that software design and code is being slowly freed from its commercial fetters, the open ethic is shifting to hardware designs as well. In early 1998, a group of students, teachers, and engineers hosted by Delft University of Technology started the Open Design Circuits group over the Internet with the goal of developing open circuits and publishing them on the Web. Although Open Design Circuits is no longer active, engineers and students inspired by the group continued to form their own open hardware communities to promote the cause. The most active groups now are the OpenCores and Free-IP organizations, which devote themselves to designing cores targeted to FPGAs (Field Programmable Gate Arrays).
Many of the hardware design students from universities such as Delft and Birzeit increasingly choose to publish their projects on the Internet and work in open cooperation with one another in the hopes of achieving more versatile and functional designs. Current open hardware projects begun by students on the net range from the LART project and OpenRisc1000 CPU to many of the cores in the OpenCores organization. Cooperation over the Internet and student participation in publishing and working on open hardware designs have continued to be integral establishing a stable open hardware community.
Open hardware produces versatile and more universally usable hardware designs because the conceptual models used to implement the design are not dictated by a single person or by a corporation's needs. Cooperation among hardware designers allows for stability, innovation, and versatility in the same way that cooperation among software designers has fostered these ethics in the open source arena. Hardware design stability comes from multi-party innovation and an extensive debugging network of developers from different backgrounds. Commercial hardware designs, in contrast, are tested only by the producer and its commercial partners. In such a limited development scope, hardware designs often suffer at the hands of commercial interests, and result in unstable systems.
Students of hardware design appreciate the open arena because it gives them a forum for discussion and improvement, which later proves integral to their professional development. The open trend in hardware development also opens up the world of professional engineers to novices who can then learn from the developers (who otherwise work behind the closed doors of commercial innovation teams).
In the hardware design world, chips are getting larger every day. This increase in chip size means that designs get more complicated because they must manipulate and hold larger systems (called SOC, or "System-On-Chip", designs). In order to work efficiently, the SOC model requires engineers to recycle many of the older design models. The problem with this method is that closed source hardware design has produced mayhem in the documentation of privately owned designs. Hardware was never intended to be "shared," and so incompatible and poorly documented systems have become the norm. This state of chaos in the current archive of hardware design demonstrates how commercial ownership of hardware design is retarding the technological development of larger and faster designs under the new SOC model.
Open hardware designs, on the other hand, assure that core design files and documentation are available for public scrutiny and professional modification on the basis of open peer reviews. This makes the open hardware design model the best source for reusable cores, and facilitates an easy process of customization and adaptation for individual hardware needs. Support is also more readily available for these cores, because members of the design team are available for help rather than having to succumb to corporate codes of secrecy and putting their product in the hands of mediocre (at best!) support departments.
Besides all the technical advantages we have just seen, the open hardware model is beginning to adapt to the needs of the commercial world. Sun Microsystems has published the design files of its PicoJava and microSparc processors on the Web for free. The licensing for the open hardware cores Sun has put out conforms to the main ideas of the open hardware definition, but requires a fee for implementing the core on commercial hardware. Other companies, mainly programmable logic device manufacturers, offer free software for their devices to reduce the cost of hardware design and individual configuration, and in turn encourage the use of their devices (which are open hardware compliant). Such examples show some of the ways in which the open hardware model can help a company increase the use of their device systems and improve performance (through cooperation with, and feedback from, the community of open hardware designers).
Conferences such as DAC2000 and FDL2000 have already arranged to feature presentations from the open hardware community, which typically cover design, organization, and open source EDA tools. The effort on the part of these conferences shows the increasing demand and importance of open hardware designs and tools in the computing industry.
The OpenIPCore organization bases the definition of open hardware on these rules:
In short, all information needed to modify, use, and implement the hardware design should be available for free in order to designate a project as complying with the open hardware specifications.
Many projects and organizations are currently working on open hardware designs. OpenCores and Free-IP organizations are developing several cores targeted mainly to FPGAs. Among the designs for these cores are CPUs, filters, and arithmetic and memory cores. Some of them already have very good working performance (OpenCores' OR1K CPU is a good example of this).
The Free Model Foundation is another organization that makes free HDL models (memories from Intel, IDT, and AMD) for different ICs. These models can help designers simulate any system that uses the component, at minimum cost. Using the models helps designers primarily in component selection. As a result, these open source HDL models help companies increase the popularity of their devices by reducing the cost of component and design innovation.
F-CPU is a freedom CPU that is being designed from scratch by a group of voluntary engineers. Their primary aim is to develop a full, powerful, free CPU design. Discussions among the engineers cover issues of CPU implementation and design, from instruction set design to testing and prototyping issues.
The European Space Agency (ESA) has published all the design files of its Leon CPU under the terms of LGPL. The architecture of the CPU is Sparc compatible and can be implemented on FPGA.
Board and system designers are also beginning to find their way to open hardware development. The Linux Advanced Radio Terminal (LART) project, for example, and the Open Power PC motherboard projects are trying to develop full open system boards. The LART boards are implemented on real hardware and can already be bought over the Internet. The design for OpenCores' OCRP-1 FPGA prototyping board is also available on the Web, and can be ordered from the site (see Resources).
But most of the current open hardware designs have not yet found their way to real life applications. These design projects are still being conducted as research applications or in order to prove concepts and algorithms. (Some of the latter are actually implemented on real hardware.) The OpenCores organization's OR1K CPU has been tested on a single FPGA and has executed some programs at around 100MHz. (A few other free-IP cores are also tested on real hardware boards.) Unfortunately, even many of the implemented designs are not yet going into mass production purely because of a lack of financial and consumer support.
There are, in fact, companies interested in using open hardware design as a product solution, primarily because it reduces the time needed to market a product. The open hardware designs are already debugged by many engineers and are easily modified because of the clarity in documentation and the universal bent of their design. This means launching new hardware and testing it is much less expensive with open designs than with closed ones. But no concrete commercial initiative has so far been sparked, due to a lack of information on and publicity for the open hardware model.
EDA vendors have used open hardware designs in the past to check and demonstrate the power of their tools. Synplisity, for example, demonstrated its new ASIC prototyping "Certify" tools using Sun's open source cores. The main motivation for Synplisity was the fact that they could avoid developing new real designs to test their tools. Instead, they used the already tested design as a model for further innovation. Ideally as commercial testing on open hardware increases, and companies like Sun open their hardware designs up to public professional review, the open hardware model will begin to gain more commercial ground.
The OpenIPCore organization has taken its own approach to promoting the open hardware model. The organization works to form the basis for open hardware designs and to solve preliminary design problems. They try, for example, to provide a venue for communications between designers and developers of open source EDA tools. OpenIPCore then specifies the design flow for a certain project using open source EDA tools.
OpenIPCores also defines protection schemes and licenses for the open hardware model, which (as in the open source software model) is one of the most important factors affecting the expansion of open hardware design into the commercial arena. Designers and companies often avoid publishing their design files because they are afraid of losing copyright and profits. At the moment, there are some suggested licenses and protection schemes -- based on copyright, patents, and NDA -- that OpenIPCores is working on to resolve licensing and patent issues.
OpenIPCore has also introduced a new business model for its operations, to encourage financial and technical support from commercial vendors, without which it cannot function efficiently. Design support, one of the open hardware business models, creates partnerships in which a corporation contributes engineering teams and in turn receives technical support from OpenIPCores for all its open hardware design efforts. But of course, the most important advance in promoting open hardware comes from the implementation of open hardware designs.
Because most of the current designs are based on programmable logic devices, any company that markets and manufactures the designs will gain popularity and revenues from selling devices to the new open hardware market, which is monitored by many of the community's designers. These designers will opt to go with devices in their commercial products that support open hardware, primarily because they have already tested their designs on the open hardware.
OpenIPCore is involved with several projects related to open hardware design in general (as opposed to specific open hardware projects), which deal with issues such as coding styles, cores interfacing, and the compilation of open hardware designs and open source EDA tools on distribution CD-ROM. By addressing these general open hardware issues, OpenIPCore hopes to help the designers find the tools and pre-formatted designs they need more easily and efficiently.
Although there are many advantages to using open hardware, and many designers are attracted to the idea, the implementation of the model on a wide-range, practical level still faces problems. Lack of support from the standards communities and from commercial companies tops the list. These groups do not provide enough documentation to designers who hope to turn around open hardware projects, or include previously commercial designs in open projects or in design archives for open hardware use. As the designs and architecture coming out of the open hardware community get better and more practical, corporate initiative to collaborate with the community will rise. And as this initiative rises, hopefully, the commercial communities will feel a push to provide more design information and better documentation for the use of open hardware design.
The cost of hardware implementation is another factor that affects the spread of open hardware designs. High implementation costs has pushed open hardware engineers to move to the IP core design on programmable logic devices, because designs for the devices are more malleable, and the devices themselves are more easily modified. For these reasons, most of the current projects at OpenCores are based on this approach. A set of cores and programmable logic boards is available through OpenCores for open hardware innovation.
The cost of EDA tools also plays a role in inhibiting open hardware development and design. The open source community is trying very hard to collaborate with the open hardware community by building new EDA tools that produce better results than those sold commercially. Open source EDA tools covering almost all fields of hardware design are either already available or in development. For more information check the open collector site. (One of the OpenIPCore projects, the OpenTech CD-ROM, includes many free EDA tools and open hardware designs.)
Open hardware design will inevitably have its effect on hardware technology in much the same manner that open source is revolutionizing software development. The remaining questions are when and how this will happen. With more publicity and support from the commercial tech companies, the integration can be relatively painless and profitable for all involved. This approach will also open new communication channels between designers, students, and users.
Jamil Khatib is a hardware design engineer who has also worked as a software design engineer. He contributed to many open hardware projects such as F-CPU and many OpenCores.org projects. He was the main force behind the establishment of OpenIPCore organization, and he contributed to the establishment of OpenCores.org. He is currently working as a hardware designer at Siemens-ICT. You can reach Jamil at khatib@opencores.org.