Stan on Standards
Stan Krolikoski, Group Director of Standards, Cadence
Stan Krolikoski is Group Director, Standards at Cadence Design Systems. Stan has been involved in EDA standards for over 25 years and served as a leader in Standards groups such as the IEEE, Accellera, OSCI, SPIRIT and Si2. He is currently Chair of the IEEE Design Automation Standards Committee, … More »
Open Source, Open Standards And UVM
June 22nd, 2010 by Stan Krolikoski, Group Director of Standards, Cadence
In a previous article, I mentioned the Accellera DAC Breakfast panel on UVM. The moderator of the panel, Gabe Moretti, posed the following dilemma: UVM is to be released as open source, but it is also going to be a standard. How, Gabe asked, can a standard, which implies a fixed definition, be able to be modified and redistributed by anyone under an open source license? This was a very perceptive question– not surprisingly given Gabe’s long history of contributing to and supporting standards activities. Unfortunately, the panelists did not really address Gabe’s question.
One problem is that the term “UVM” is being overloaded. On the one hand, there will the “UVM Standard”, a reference manual that precisely sets forth the details of UVM. If the standard is done correctly, anyone wishing to implement UVM will be able to do so solely by using the description found in this manual. This UVM Standard will be issued under a standard Accellera license, and will not be able to be modified and redistributed. In other words, the Accellera UVM manual will not be licensed under an open source license, Apache 2.0 or otherwise.
On the other hand, there will be a “UVM Reference Implementation” that will be issued under an open source license (very likely under the Apache 2.0 license). This Reference Implementation will not be the UVM Standard, but will be an example, albeit an officially released example, of UVM. Anyone may take this Reference Implementation, modify it and redistribute it as long as they follow the fairly lightweight requirements imposed by the Apache 2.0 license. Of course, when the UVM Reference Implementation is modified, it will likely no longer be an accurate implementation of the UVM Standard, although one can imagine that someone might modify the official UVM Reference Implementation to make it a better implementation of the Standard if it corrects issues found in the official release. That aside, in no case will a change to the UVM Reference Implementation constitute a change to the UVM Standard.
The source of the confusion is there are “open standards” and “open source”, but “open source standards” is something of an oxymoron. Open standards are “open” due to the way they are developed—in an open collaborative manner– not because of the manner in which they may be modified once issued. Indeed, once approved, even the most open standard is closed to further modification, until the group that issued the standard decides to modify it. On the other hand, a piece of IP issued under an open source license may be modified and redistributed under that license with very few restrictions.
Thus, to Gabe’s dilemma: how can the forthcoming Accellera UVM Standard be open source? The simple answer is that it will not be. It will be a standard developed in a very open manner, but one that will be as “locked down” as any other Accellera Standard. The UVM Reference Implementation will be available under an open source license, but it will not be the Standard.
Note that this there is substantial precedence for this Standard/open source Reference Implementation split: for over 10 years OSCI has been developing LRMs and open source Reference Implementations (OSCI calls them “proof of concept” implementations). Some users may find the source code more interesting, since it can be compiled, run, experimented upon and so forth. Moreover, LRMs generally make poor textbooks, and are of interest mainly to tool developers. Nonetheless, all OSCI Standards make it very clear what is the Standard and what is the example of the Standard. Accellera will do the same with regard to the UVM Standard and its Reference Implementation.
4 Responses to “Open Source, Open Standards And UVM”