The RTL should be open source from the get go. I have five observations that make this case. Taken together I want to show that development of open source RTL will promote community involvement and open standards while creating profitable markets.
Licensing hardware IP cores is a bad business. HDL code like Verilog and VHDL require enormous support, well beyond what C++, for example, would require. The behaviors of modules are too complex and not abstract enough to simply offer users RTL and a manual. Paying customers will expect support. In addition RTL optimized for one technology is often very poorly suited for another. This is true of FPGA to ASIC conversions. A good FPGA design should use almost exclusively synchronous resets because timing is hard to control and synchronous resets cost you nothing. However in an ASIC timing is much easier to control and synchronous resets cost you transistors. A good design may use exclusively asynchronous resets. This would require potentially extensive changes to RTL level code. There's a long list of companies that have gone out of business trying to sell hardware IP. Of the companies that still do virtually all sell hardware IP targeted only for their ASIC or FPGA technology.
Companies that develop cards based on OGP hardware IP could, as a stipulation of the license, be required to give back any enhancements they make to our code. The license could be flexible enough to let them develop their own private modules but any user of an OGP based graphics card should have the option of loading pure open source hardware into their system if it is FPGA based. Thus we take advantage of our own success. If OGP becomes the standard graphics platform we can be guaranteed a rich and diverse set of developers.
Further if the OGP reference design becomes the standard it opens the market to smaller companies that will be able to produce a high end graphics card without having to do the work of designing its algorithms and driver. This will allow hardware vendors to compete on what hardware vendors should compete on; time to market, performance, quality and price. Having exclusive access to the knowledge of how to build a 3D engine will no longer be a barrier to entry into the graphics card arena. (Imagine what PCs would be like if every motherboard vendor had to make their own processor, BIOS and operating system) Today this barrier is what keeps two players on top and everybody else (including the open source community) fighting over scraps.
It is unlikely that the OGP will be able to deliver a traditional 3D renderer that is more powerful than one of the big vendor's versions. The scale of the ASICS that go into the high end cards (300M transistors, 130nm process's) is simply not attainable to anyone but a large company. It would require an enormous FPGA (>1B transistors) to rival the computing power with a traditional 3D design. Such an FPGA alone could cost two times more than the super-high-end graphics card. Also what is the benefit of going after middle of the road cards? Most middle of the road cards are adequately supported in free operating systems. The complaint that existing drivers, both open source and proprietary, for high end graphics cards have poor performance brings us right back to developing for the high end. The potential of open hardware lies in a user's ability to tailor graphics hardware to their application. (Imagine upgrading the graphics algorithms on your card as you upgraded to the new MESA GL which takes advantage of them; all with a software installer!) Open source is a strength not a weakness. A programmable open source graphics card could take advantage of innovation that today cannot exist.
Finally if you intend to sell the hardware IP for profit you should hire engineers and pay them a salary. My interest in volunteering is to provide the community, not your investors, with the benefit of my labor. I know that you have to live, work and eat just like me. My intention is not to offend you. I want to point out that it is not realistic to expect that people will volunteer for someone else's for-profit enterprise. My day job pays me to make investors money.
The OGP has tremendous potential not only to inspire innovation but to make people a lot of money. I truly believe that having open and free hardware IP enhances such potential. I agree that we are wandering into uncharted territory as far as hardware is concerned. If you are in it for the money –we may be talking about a lot of money-- you have a chance to be on the ground floor of a revolution in hardware. If you are in it for the tech you have the chance to be the architect of a totally new way of interacting with computer hardware. Take your pick (all of the above is allowed).
Cheers ./m
Timothy Miller wrote:
Release early, release often, they say. Same goes for documents, sometimes. I'm working on an open letter to publish on the topic of open-sourcing the RTL. I've borrowed heavily from everyone who has contributed to the conversation, usually without attribution (I hope you don't mind). I would like to invite editorial comments. It's an early draft, so it's poorly written and poorly structured. Feel free to suggest rearrangements, edits, rewrites, additions, deletions, citations, etc.
Open Source Hardware? How do you do it?
I've been a user of Free Software since 1995. Compared to the alternatives, it can sometimes be challenging, but it's also incredibly liberating to not be tied down to a single faceless, impenetrable vendor. Over the time that I have used Free Software, I have felt an ever-increasing desire to give something back, something that others can benefit from, the same way that I have benefited from their work.
I've been developing software a lot longer than hardware, but my heart has always been in chip design. It's what I enjoy the most. It is this interest that I felt would be the best thing to use to give back to the community. Unfortunately, developing and sharing hardware is not the same as for software. Hardware often requires expensive proprietary tools to synthesize ("compile"), and it can cost $millions to manufacture an ASIC. If you release the source code to a piece of software, anyone with a PC and a compiler can use it. Releasing the logic diagrams (RTL) for a piece of hardware is hardly useful to anyone, and getting someone to manufacture it can be an uphill battle.
It has been my desire for a very long time to have readily-available hardware that "just works" with Free Software. So far, it has been challenging to find that sort of hardware. In my area of expertise, graphics, the vendors have been reluctantly willing, in the past, to release limited specifications so that hackers could support their products. But more recently, those vendors have started to close their doors. At the same time that they have started to pay more attention to Linux, they have also pulled their support for Free Software in general by releasing proprietary drivers that are often buggy and work with limited versions of the Linux kernel, never mind BSD or anything else. And good luck trying to get one of those chips to work with a PowerPC-based system.
My primary goal with the Open Graphics Project (OGP) is not, as you might think, to "share." My goal is to ENABLE sharing. Consider the sorts of "open hardware" that are available right now. Opencores.org has a lot of really cool designs available for download, which you can incorporate into your own chip designs. But have you noticed ready adoption of those designs? I'm sure they've ended up in plenty of commercial products, although it's impossible to say for sure. But you can't just download, compile, and use any of those designs without a significant monetary expenditure. If I were to take the same approach to the OGP, then our design would end up just like all the rest: A neat design that you can download from a web site. But that's not what I want. I want a real piece of hardware that I can buy, put into my computer, and USE.
My "do what it takes to get it done" attitude has generated a lot of controversy with Free Software purists. In order to function in this business environment, certain traditional approaches must, unfortunately, be followed. In order to get it done, I have to develop a business model that is both sustainable and attractive to investors. There are very difficult challenges to overcome. Up to this point, the situation with hardware is that hackers have had to beg vendors for documentation; what I find ironic is that my offer to freely give away documentation, plus a lot more, has been met with complaints that it's not good enough. Go figure.
But before I go on, I want to make something perfectly clear: I WANT to share. The concepts behind Free Software don't all apply well to hardware, but in my mind, the ideal situation is one where every last bit of this design can be developed, completely out in the open. The benefits include faster development time and a better quality product, due to the involvement of "many eyes." This kind of development model works. The problem I'm faced with is an issue of PRODUCTION.
Already, most of this project is freely published, much more than for
any other product I've encountered. Naturally, all software drivers,
including firmware, will be released under FOSS licenses. For these,
we'll use mostly BSD and MIT license so that there is no restriction
on how those drivers can be ported. Even the VGA BIOS and firmware
for other platforms are open source. In order for hackers to develop
these drivers, they'll have to know the hardware in intimate detail,
and we are providing them with all the tools we need. English-language specs have been published and are continuing to be
published. In addition, a complete, functional C-language model of
the 3D rendering engine has been published, and it describes the math
and logic in exact detail. And as the hardware is developed and
decisions are made, the model is being updated to reflect those design
decisions. Software developers who want to use our hardware are
wanting for nothing.
Regardless of the practicality of releasing or not releasing the RTL,
this has generated a lot of controversy. Many seem to not understand
what they think we're not giving them, and many that do understand are
unfamiliar with the challenges of the business world. There is a
recent case where someone thought they could get away with combining
free and non-free software, and it's been a big deal in the news. But
it's not fair to compare us to then, because there is a clear barrier
between hardware and software. At the same time, I can understand the
confusion, and for that matter, as I say, I really want to have the
hardware open source, just for idealogical reasons. Do not be
confused. I want to release the RTL under an open source license. But sound business judgment tells me that I cannot.
Sound business judgment aside, I am making a call out to everyone who has useful ideas to help make everyone happy: Help me solve the problems with open sourcing the hardware so that I CAN open source the hardware without making it impossible to manufacture.
There are numerous benefits to developing the design under a GPL license, and here are just a few: Faster development. Many more eyes to find and fix problems. Students and hobbyists can learn from it and use it in their own designs. Software developers can identify discrepancies between the English spec and the RTL and use that to write better drivers, work around hardware bug, etc. A new business model will be spawned that benefits everyone.
Sounds great, but let's now consider the challenges with doing this.
As you know, hardware development costs a lot of money. This will involve a significant up-front cost to myself, my family, my partners, their families, and many skeptical investors. This is a huge risk, and anyone getting involved is going to want to ensure that they recoup their investment. And investors, not being charities, are also going to want to make significant gains as well. Production of this design cannot be distributed; a lot of money has to be put into a very small place, and it must be organized, which means we need to have a business, and that business, like all others, must be profitable in order to survive and live on to develop more products that Free Software users want to have.
Many of us expect that the OGP will be a popular product line. It solves a lot of problems with hardware availability for users of Free Software. We believe this, and it's important for our investors to believe it too. Going on that assumption, there is an absolute guarantee that some other company is going to want to copy our design. Releasing the RTL under GPL makes it perfectly legal for them to do this. Moreover, anyone who DOES copy the design is likely to be someone who can do it more economically than we can. Otherwise, they wouldn't bother. It's more economical for them to do it, because the development was done for them, for free, and they're a big company with lots of money and pre-existing relationships with fab houses that will give them a better deal. I'm not worried about another start-up competing with us—I'm worried about "evil big company" cutting us off at the knees. And more important than my fears are those of my investors who will have already seen this sort of thing happen many times. Notice how Tivo is struggling compared to those who came after.
(A corollary to the above argument is that if the design is NOT popular, then it's junk and you have no interest in seeing the RTL anyway.)
Most people are highly cost-conscious, so if they can get our board for $120 or the other guy's board for $50, whom do you think the buyer is going to choose? The result: I can't make any sales, I can't recoup the investments, and I go out of business.
To quote Mr_Z, who commented on an earlier KernelTrap article, "If two or more guys build essentially the same ASIC, the one with the lower manufacturing overhead and better distribution channels wins. The startup that wrote the VHDL is unlikely to be that candidate, by virtue of being a startup."
Having the design copied is a short-term advantage to the community. But if I'm put out of business by it, and I cost my investors
$millions in losses, my ability to continue future development is
destroyed. I'm not trying to get rich here; my goal is to survive and
sustain my ability to develop hardware for this growing industry. I'm
looking into the far future and trying to make sure that I am around
to perpetually develop new hardware that meets the needs of those who
value Free Software.
In a free market, competition is a good thing. Monopolies get complacent, and the quality of their products declines. I love capitalism, and I love to see AMD and Intel fight tooth-and-nail for the same business, because the result is that they both produce increasingly better products. A business with a big market and a sustainable product line needs competition. But we, those who are developing hardware for the OGP, are not an existing business. We are a start-up. We need absolutely every competitive advantage we can get, so that we don't go out of business in the first year, like so many other start-ups. It's one thing for us to compete with another company who has to develop their own IP. It's entirely another to compete against another company that can drastically cut costs by using our own IP against us. Most importantly, our investors know all this, and they'll require that we insulate against it. A start-up has to be rock solid, otherwise, VCs and angel investors won't give you a second look.
This is pure psychology. It's POSSIBLE that no one will copy the
design and under-cut us. But hope doesn't sustain a business. Regardless of the likelihood, investors are terribly afraid of
anything that could hurt their investment. They require that problems
of this sort of completely prevented. Keep in mind that, regardless
of what protections patents, copyrights, and trademarks can provide,
when investors see that you're "giving away" something, even protected
by a strong license, they completely discount it as having any value. The RTL is the core of our business, so if we "give it away," the core
of our business has no value. You can argue all you want about how
little of a risk this is, but you won't change the minds of any
investors.
Here are some things we need to be able to do with our IP as a business: Sell chips for embedded systems Sell boards in the retail market License IP to those who want to combine our design with theirs Have a competitive advantage against other companies Get enough income to make it our "day job" Get enough income to be able to develop future products Ensure wide-spread adoption of our products so that the business can grow Encourage the development of open source drivers
Note that something we're not necessarily trying to ensure is indefinite revenue from old products. If someone wants it supported for 20 years, they'll buy a support contract separately from any hardware they purchase. Companies that don't need to release new products get stale. We have to continue to innovate anyway, so losing revenue potential from a 1-year-old product, by GPL'ing the RTL, only means that we can safely EOL a product without orphaning customers who want to continue using it. This just gives us one more reason to continue to grow, improve, and innovate.
Since this is an open call for ideas, this is obviously not a complete list, but here are some solutions that I and others have come up with to that might solve our problem or inspire you to come up with better solutions: Develop a non-GPL license that allows everyone access to the RTL, but prohibits anyone but my company from profiting from it without a license. Have the community "buy out" the RTL up front. This way, the design can be developed in the open from the beginning, and we completely eliminate all financial risk. Require individuals who want to see the RTL to pay a fee and sign non-disclosure agreements. Be patient. We intend to release the RTL under GPL at some future point ANYWAY. That point will be a function of production schedule and profitability, and we also need to ensure a cashflow that allows us to develop future products. The RTL can be held in escrow to ensure that we uphold our part of the bargain.
Something important to note: Once something's made into a chip, it's incredibly difficult and expensive to distinguish between the case where someone simply made their own compatible design and the case where someone illegally misappropriated our IP. This problem also must be insulated against. Being ripped of, while being unable to afford the technical and legal expenses to prove it could be deadly.
The bottom line is this: On the one hand, I am dedicated to making a sustainable business model that can meet people's needs. On the other hand, I have people pushing me to do things that will dilute any sort of "value-add" I can provide. Obviously, there's a conflict, so I am putting forth a challenge to those who are demanding open source RTL: Find me a solution that allows me to make a sustainable business model AND meets your need to see this RTL that you so desperately desire.
You, as a consumer, want what is best for the community. What would be the best thing to do here? Consider, just for a moment, the idea that making the RTL available under an open source license (right away) may not be the best thing for the community in the long term.
And for those of you who would try to tell me that I am wrong in my assumptions about business, please show me your business credentials first. And to those who offer complaints but no solutions, please just keep them to yourselves. I'm dedicated to making something WORK here, so either help or get out of the way. And make sure that what you suggest is not something that will sacrifice my ability to sustain a business, because if it does, this RTL that you so desperately want won't even come to exist.
To add to this, I would like to quote one of our list members, Patrick
McNamara, who said, "Not opening the RTL immediately will piss off
some people, and they will complain loudly. It doesn't matter a bit
to them or their families' livelihood whether this venture succeeds. When that changes, they are allowed to complain."
So, now, it's time to exhaust all possible avenues to open source this design and find an solution agreeable to all, so that I can stop wasting my time dealing with political issues and get back to work.
_______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
_______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
