Reproducible Research – Studies in Open Source Hardware Design
By John Blyler
Dr. Gary Ray, associate technical fellow at the Boeing Corporation, sat down to discuss his personal views with System-Level Design. What follows are excerpts of that interview. Ray’s comments are his opinions, not those of Boeing.
SLD: Last year you wrote an article for Chip Design titled, “The Mysteries of Reproducible Design.” Would you summarize that article to serve as a starting point for this discussion.
Gary Ray: “Reproducible research” is a new topic in the areas of signal processing and computer science. The idea is that when a paper is published, any one who reads that paper can find all the information necessary to reproduce the results. “Reproducible design” is then the same idea applied to hardware.
SLD: Is that similar to intellectual property, or very different?
Ray: What it means in the research arena is that when I publish a paper, I make available all the software I used and every parameter so that anyone else could reproduce all the graphs and results contained in the paper. When this is applied to hardware (specifically chip design), it means that anyone should be able to reproduce your results if they went to the trouble of designing their own chip with all the information supplied by the researcher. “Reproducible design” is kind of like open source for hardware on steroids.
SLD: Do you follow the ESL process in creating this reproducible design?
Ray: My article was speculative because I don’t know of anyone that takes hardware research to this level. It’s still a very new concept.
SLD: Do you use EDA tools for your reproducible design?
Ray: Just like open source uses GNU, you would have to use open source EDA tools to achieve reproducible design. They are not as well developed as the GNU suite for software, but they are coming along nicely. One website is: http://geda.seul.org/ The promise is that just with open source multiplying the ability of people everywhere to collaborate, reproducible design would allow people to collaborate on hardware instead of having the designs all be proprietary. Great promise, but hard to change the culture.
SLD: What is the greatest challenge with coming up with a reproducible design?
Ray: For an employee, it is almost certainly the proprietary nature of HW within almost every company. For a student, it is easier. In the university setting, it would involve deciding on a standard set of open source hardware tools and creating designs together with all their attendant data and publishing it along with the research. This is hampered by the lack of a “GNU” standard. The main difficulty from the tools side is that they are not as robust and complete as GNU compilers and such. I think that we would need a Richard Stallman for EDA. Richard Stallman started the open source revolution at MIT. He started GNU/
SLD: Does virtual prototyping bring us closer to reproducible design? I don’t mean from a software side, but from the high-level simulation of hardware.
Ray: I guess it would help, if there was a standard suite of virtual prototyping software. Is there?
SLD: Not really. Not yet.
Ray: A problem with reproducible design is you need a single set of tools that everyone has. Otherwise it is too hard.
SLD: Each company has their own system. Synopsys has Virtio, then there is VaST, Virtutech, CoWare, ARM (Realview), etc. The common format would be like a standard IP format, or perhaps an IP interface format.
Ray: Yes, if you have a low-level file format that everyone accepts, that is a start. But in EDA there is often so much more that it required to reproduce some one’s actual results in HW. Yes, standard IP would be necessary.
SLD: Well, it won’t necessarily have to be timing accurate. You could keep the tools at a hardware-software architectural level, as in pre-partitioning tradeoff analysis.
Ray: It would have to be timing accurate if the claims were related to performance.
SLD: But then you start getting into very specific detail about the hardware (RTL). Perhaps you could benchmark a set of standard RTL libraries for common functions, like 32-bit processors, cache memory, buses, standard video encode/decode. Don’t those files already exist?
Ray: I don’t think there are complete open-source RTL libraries for all those things. There are some things on that web site I mentioned. An interesting fact is that a few months ago Sun open sourced its UltraSPARC CPU. It has 8 cores, I believe, with the next one being 64 cores. They use a “T” nomenclature: T1, T2, etc. Here’s the info: Sun provides the OpenSPARC T2 and OpenSPARC T1 register transfer level processor designs to the open source community via the GPL license.
SLD: Has anyone else done that? Intel with the 8051 microcontroller? or any of the older ARM processors?
Ray: Not that I know of. ARM is such a money maker, I can’t imagine.
John Blyler is consulting editor at SLD and editor in chief of Chip Design.













October 23rd, 2008 at 8:34 am
Interesting article. Additional information for the readers of your article
- Most EDA tools company have a generous University Program which provides easy access to EDA tools.
- The OpenSPARC T1 program was announced in Dec. 2005 and the RTL, test suites and tools were made available in March 2006. OpenSPARC T2 was announced in Aug. 2007 and made available in Dec. 2007.
More than 9500 downloads from 137 countries around the world.
Goal is to expand the eco-system around Chip multi-threading, multi-core designs.
October 24th, 2008 at 4:00 pm
ARM, at least a few years ago, was working actively to shut down open-source ARM compatible processors, for example Shengyu Shen’s nnARM project:
http://www.eetimes.com/story/OEG20011102S0121
October 25th, 2008 at 1:12 am
More related open source info:
- open source LEON2 and LEON3 SPARC V8 architecture processors with associated cores.
http://www.gaisler.com
- open source OpenRISC and cores
http://opencores.org
- S1, one core of the OpenSPARC T1
http://www.srisc.com
- open source virtual prototyping OVP
http://www.ovpworld.org
October 28th, 2008 at 8:06 am
I am not certain that open-source tools are necessary for open-source work. There are several open-source frameworks built for “proprietary” commercial systems. For example, the DotNetNuke framework that builds on MS .net, IIS, SQLserver (http://www.twit.tv/floss41).
The important aspect is rather that there is a common base platform that many people share and care to collaborate on some topic or code base of common interest. The core of open-source to me is lots of developers sharing the cost to develop common infrastructure, and sharing the source for all to see and modify. Which is independent of the tools used.
Also, lots of open-source code libraries run on any C compiler — gcc is often needed for the most complex stuff like the Linux kernel, but plenty of code also runs just fine with other compilers such as Sun Workstation or Microsoft Visual C++ or Intel C++. Look at the OSCI SystemC kernel, for example. It is open-source, for EDA, but does not require gcc to compile.
Finally, in reply to Jeremy Ralph, note that OVP is not open-source, really, just free as beer. Not free as in freedom, as Stallman would put it.
/jakob
October 28th, 2008 at 8:17 am
One more example of open-source based on closed tools: http://dutchroll.sourceforge.net/
December 19th, 2008 at 4:30 pm
The documents and approaches described in this book have been successfully implemented and tested at dozens of companies around the World. This book will help both beginners and experienced professionals develop and introduce effective documentation structures for their QMS or EMS, and develop a manual that meets the requirements of applicable standards.