Stan on Standards

Archive for June 22nd, 2010

Open Source, Open Standards And UVM

Tuesday, June 22nd, 2010

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.

Calypto:Empowering the Next Level of Design



Click here for Internet Business Systems © 2012 Internet Business Systems, Inc.
+1 (408) 850-9246 — Contact Us, or visit our other sites:
TechJobsCafe - Technical Jobs and ResumesEDACafe - Electronic Design AutomationGISCafe - Geographical Information Services	MCADCafe - Mechanical Design and EngineeringNanotechCafe - Nanotechnology ResourcesShareCG  - Share Computer Graphic (CG) Animation, 3D Art and 3D Models
  Privacy Policy