Open-source software has many advantages. In short: you can see it (the code), you can inspect it (check out what Coverity revealed in the Android kernel), and you can change it. But the fact that open-source software is not commercial also raises concerns: Is it “polished” enough? Is it thoroughly tested? How hard should I work to make it part of my product? What is the level of support? Etc. Yes, life is always a compromise…
Cadence has been providing its multi-language solution (UVM-ML OA), which was developed with AMD as an open source, since 2013. It is available on the Accellera site. There were several reasons to make it an open source. First, we think this is the best multi-language solution available and we want to make it a standard (it is currently the only candidate in the Accellera multi-language working group). Secondly, this open architecture solution is vendor independent, making it almost natural to be open source. In practice, most of our customers take the code as is; however, we do have a large customer in the EDA industry that has enhanced the library code to its special needs. Cool!
Over the years, it seemed that most of our customers liked the idea of using an open-source library or at least were not held back because of it; after all, Linux, Apache and FireFox (for example) power much of the Internet. However, there are customers who prefer the old-fashioned way: vendor-provided software instead of open source.
The open-source nature of the library even personally impacted us, the R&D team! While developing the library over the years, we enjoyed the fact that it would be open source. We knew our code would be inspected, and it brought the best of us. However, we also really wanted to “help” Incisive users. We knew we could make their life better if we ship it within the Incisive verification platform, sparing them the download and installation, and making the integration smoother.
As already stated, life is always a compromise, but in 15.2 it seems we were able to provide a solution, which is the best of both worlds. In 15.2, the Incisive platform ships UVM-ML OA within it: The library is already compiled, requiring no download or installation.
This raises a few questions….
What about the open-source library?
From 15.2, Cadence will provide UVM-ML OA in two flavors: as open source, and also within the Incisive solution. If you are currently using the open-source UVM-ML OA, you are welcome to continue using it this way. Cadence will keep updating the library as was done previously.
I am an open-source user and want to move to the Incisive version. Should I?
It is advised to move to the Incisive version, which provides a number of advantages: you do not need to download or compile the sources, and some configuration and setup is no longer needed. At the same time, however, you should take into account several limitations: While you can still see the code for inspection, you cannot change it. Also, the UVM-ML OA library provided with the Incisive platform supports UVM-SV 1.2 only, whereas the open-source version supports also UVM-SV 1.1d. In addition, only Incisive simulator is supported in 15.2, while the open source supports also VCS, Questa, and OSCI. We hope to eliminate this limitation in one of the upcoming versions. Anyway, all this information is available in cdnshelp.
How hard it is to move from the open-source version to the Incisive version?
Pretty easy. You can find a migration guide with the exact instructions in cdnshelp.
I am using the legacy multi-language solution of the Incisive platform (UVM-ML), should I move to UVM-ML OA?
Yes! The OA version is actually an extension and enhancements of the legacy solution. The legacy solution is only in support mode right now. All new features and enhancements are performed on UVM-ML OA.
Anyway, whether you are an open-source user or an Incisive user, UVM-ML OA support is always available for you (support_uvm_ml@cadence.com).
Orit Kirshenberg, UVM-ML team