Awards and Certificates

An introduction to open-source hardware development

An introduction to open-source hardware development

 

Most read Article on EETimes in July 2004
Mohamed A. Salem and Jamil I. Khatib
7/1/2004 10:00 PM EDT

This paper introduces a new trend in hardware design and development — open-source hardware. It defines open-source hardware design terms, features and requirements. It presents FPGA-based platforms as the most suitable for open-source design implementation. It also discusses open-source hardware business models.

Open-source hardware is proposed as a bridge for the technological, educational and cultural gaps between developing and developed countries. Open-source hardware organizations are introduced with statistics of activities. The role of the Internet with respect to hardware openness is introduced.

Open source hardware’s challenges, problems and suggested solutions are described. The paper aims to introduce open-source hardware to the electronic engineering community as an interesting topic of practice, study and research.

1 Introduction and motivation
Open-source software has become an important part of the software development process [1]. A hardware-software analogy allows consideration of open-source hardware. HDLs resemble conventional software programming languages, and programmable implementation platforms resemble general-purpose processors.

An open source phenomenon has several properties that make it interesting for study, and relevant for the discipline of engineering design. Open source eschews traditional engineering concepts such as planning and prototyping in favor of a more organic approach [2]. For instance, the open-source Linux kernel [3] is one engineering feat that reaches high quality.

The economics of open source defies conventional economic principles, because participants are on volunteer basis. A COCOMO [4] analysis of widely distributed open-source programs concluded these programs would be valued at one billion U.S. dollars if they were created by conventional means. Open source is a product of the Internet, which enables open-source products to produce tangible results.

The application of open source to hardware brings new benefits to the hardware development process. Open source hardware would reduce development time and design cost. Open source IP cores could be reused, in black box or white box modes. The white box model allows designers to customize a particular core to their own requirements [5].

2 Open-source hardware definition
Open source hardware is based on publishing all necessary data about the hardware. The design specification, HDL files, simulation test benches, synthesis results, utilization instructions and interfaces to other systems should be documented [6]. The openness of necessary design documentation and its disclosure to the public should be governed by the terms of GPL like licenses [7].

All information is disclosed for free, according to the terms of GPL-like licenses. The EDA tools used to develop open hardware should also be open. Openness of resources is a must to allow the community to reuse, develop and improve open designs.

3 Open-source hardware implementation
Conventional hardware implementation platforms have various choices. Designs can fit in ASICs, custom silicon, FPGAs [8], and CPLDs. The question is, what suits open-source hardware design?

The hardware-software analogy points to programmable implementation platforms; hence the answer is programmable logic devices such as PLDs, FPGAs, CPLDs and FPAAs. The analogy between software and hardware implementations applies to different aspects in the development process. Software programs run on general purpose processors, but open hardware designs fit on programmable logic devices.

Software assemblers generate assembly code based on a processor’s instruction set. Hardware synthesis tools generate a netlist of a particular device, using a digital or analog library. Software compilers generate binary code format from an assembly of set of processor’s instruction set. The programming elements of an FPGA generate a bit-stream format from a netlist of device’s component library.

The dynamic reconfigurability [9] of FPGAs optimizes the performance of hardware designs using real-time dynamic loading and unloading of hardware components on the programmable logic array. This analogy between software and hardware execution and implementation phases helps prove the feasibility of adopting an open-source hardware strategy.
Table 1 — Hardware/software implementation analogy
4 Business models
Open source hardware has a set of business models [10] that include the following:

Design distribution — Companies can pack sets of designs and sell the distribution just like Linux distributions. The OpenTech CD-ROM [11] is an example of this method.
Design technical support — Experts can give support for Open designs. Asics.ws [12] is a company that follows this model by releasing IP cores and charging customers for technical support.
Design implementation — Companies can implement the designs, sell them and pay royalties to original designers, according to their release license.
Releasing — The release of open designs under the control of GPL-compatible licenses can occur whenever a silicon implementation is considered commercially.
5 Open-source hardware roadmap
The open source hardware roadmap [13] can be divided into three main stages as follows:

Phase I (Primary)
The primary stage objective is to start the development of a set of simple and generic FPGA-based prototyping boards that can be used to test and implement simple open-source IP cores. Open EDA development tools would be used, such that designers can provide feedback to open-source tools developers. The communication between FPGA-based board designers, open IP core designers, and open EDA developers will improve the whole development process of open source- hardware and lead to the next phase.

Phase II (Advanced)
This advanced stage assumes that open-source hardware publicity has taken place. Designers will release advanced open-source designs, including FPGA prototyping boards. The market demand for prototyping boards will boom, which encourages vendors to produce volumes at low prices. The low price exists because the board designs are originally open source, and there is large market demand.

The vendors could produce open-source device programming tools in order to enlarge their market base. The objective of this stage is to allow an open-source hardware user to download open designs from Internet, and implement designs on prototyping boards, just as computer users download open-source software and run it on general-purpose processors in personal computers.

Phase III (Run time configuration)
At this stage, the complexity and density of designs would reach the limitations of conventional programmable logic devices. The dynamic reconfigurability of certain programmable devices is characterized by their ability to reconfigure subsets of their logic and routing resources at runtime, while continuing to operate normally. This intrinsic dynamic reconfiguration results in accommodation of complex and dense designs while maintaining high performance.

The objective of this phase is open-source complex systems design and implementation. This assumes a seamless architecture of system models in which boundaries between software and hardware vanish. For instance, there is an effort to run a Linux kernel as a pure hardware platform that depends mainly on dynamic reconfigurability [14].

6 High-tech promotion in developing countries
Open-source hardware can contribute to bridging the technological, educational and cultural gaps between developing and developed countries. Open source can help build a high-tech base in these regions due to the following considerations:

Open-source hardware is an open resource for industrial and academic fields.
Lack of high-tech activities and firms.
Lack of expertise in the high-tech field.
Open-source allows interaction with a wide spectrum of experts in high-tech fields all over the world.
HDL designs that address programmable logic devices based implementation platforms can be affordable, as chip manufacturing is beyond economic capabilities.
Open source might help focus the spotlight on high-tech talents and qualifications in developing countries that are hidden due to market constraints.
7 Open-source hardware organizations
This section introduces organizations that adopted the open source hardware model. It provides statistics of activities that run under the Handasa Arabia [15], OpenCores [16], and Opencollector [17] organizations.

The organizational work is a result of volunteer engineers’ efforts to manage the operations and projects under development. An open hardware design of a RISC architecture processor, open RISC1K [18], is used by some commercial companies that embed the design in their platforms.

The following table (Table 2) could be considered as a performance indicator for open-source hardware. The statistics provide a sample of Handasa Arabia, OpenCores and Opencollector activities.
Table 2 — Open-source organization statistics
8 New computational engines and the Internet
Open-source hardware could produce a new generation of computers and the Internet. Computational engines might change from traditional architectures that are based on software instructions that execute on hardware resources, into algorithms that process hardware functions that load and unload dynamically onto a programmable logic platform.

Future personal computers might be built from FPGA-based boards that contain connectors to the external world. Hardware designers will be able to code modules or cores for specific FPGA computing machines or future computers. The Internet, the fundamental framework for open source designers, might be affected by the concept of dynamic reconfiguration and open-source hardware design. FPGA prototyping boards can be connected to the Internet to act as free computing and debugging machines.

The future might give rise to a new Internet service called “Hardware Computing Resource Protocol” or HCRP. This may enable developers to design their algorithms, which are based on hardware cores, and upload them to these machines to run and implement them. The open source designs, open source computational resources, and global networking introduce a new era of innovative technologies and applications.

9 Challenges and suggested solutions
There are problems that face designers and prevent them from developing open-source hardware.

Cost of EDA tools
Designers can’t afford the cost of EDA tools. The suggested solution is to pursue development of open-source EDA tools and improve them with feedback from the design community. Alliance [19]and gEDA [20] are good models for open EDA tools.

Manufacturing cost
Hardware manufacturing is relatively expensive. The suggested solution is implementation on FPGA-based prototyping boards or simulation of designs using formal verification techniques.

Design protection
The suggested solution is the protection of the open designs using GPL-like licenses that reserve rights for original designers, according to particular terms and rules.

Market
Market competition is mainly based on patents and intellectual property that maintain all rights for the originator firm. Companies may oppose aspects of open source that generate alternatives for commercially protected products.

The suggested solution is that companies might take advantage of open source as a way of bridging the gap for time and cost absorbed in R&D. The researchers might find they don’t have to reinvent already existing wheels. Companies may find adoption of an open-source design with large base of customers as a win-win deal. Companies can refine the open-source design with affordable prices and make use of bug fixing provided from the community. The end result is cutting-edge reliable products with affordable prices.

Credibility
Open source has to build confidence. The suggested solution is that designers produce high quality and completely documented designs. It will be only a matter of time to convince the user community of the credibility of open designs. For instance, the Linux operating system has become reliable and competitive due to efforts exerted to enhance quality and performance from the developing community.

Conclusion
The paper has presented an introduction to open-source hardware as a new trend in the hardware development process. It has defined the requirements for a hardware design to be considered as open. The business models and the phases of an open source hardware roadmap have been presented. The challenges, problems and suggested solutions have been discussed. The paper has introduced the open source hardware to the engineering community as a relevant field of practice, study and future research.

References
1 Audris Mockus, Roy T. Fielding and James Herbsleb; “A Case Study of Open Source Software Development: The Apache Server.” ACM proceedings of ICSE 2000.
2 Gregor J. Rothfuss; “A Framework for Open Source Projects.” Master’s Thesis in computer science, Department of Information technology, University of Zurich. November 12, 2002, Supervisor, Prof. K. Bauknecht.
3 Linux Operating System.
4 More than a GigaBuck: Estimating GNU/Linux size.
5 Scott A. Hissam, Charles B. Weinstock; “Open Source Software: The Other Commercial Software.” Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA, USA.
6 Jamil I. Khatib; “Open Hardware Designs for Configurable Computing.”
7 GNU General Public License.
8 Scott Hauck; “The Roles of FPGAs in Reprogrammable Systems.” To appear in Proceedings of the IEEE, Department of Electrical and Computer Engineering, Northwestern University, IL, USA. 9 Michael J. Wirthlin and Brad L. Hutchings; “A Dynamic Instruction Set Computer.” Department of Electrical and Computer Engineering, Brigham Young University, Provo, UT, USA. 10 Opencores Project
11 OpenTech CD ROM
12 Asic.ws Technical Consulting Company
13 Opencores road map
14 Gnu Xilinx Project, Whiphy Computer Systems, UK.
15 Handasa Arabia Organization
16 Opencores Project
17 Opencollector Project
18 Opencores OpenRISC1000
19 Alliance, a free VLSI design system
20 gEDA Project
Mohamed A. Salem is currently a teaching assistant at the School of Engineering at German University of Cairo, Egypt. He was previously a hardware design engineer at Ellipsis Digital Systems.

Jamil I. Khatib is pursuing a master’s degree in technology and innovation management at Brandenburg University in Germany. He was previously a senior FPGA design engineer at Exalt-Technologies (formerly Siemens ICT) in Ramallah, West Bank.

The original version of this article is located at the Handasa Arabia web site. Salem and Khatib are co-founders of that site.