I was looking on open cores which has tonnes of IPs under its basket. Wondering about the differences between commerical IPs offered by lead companies such as Mentor, Cadence versus the free ones. Is it similar to windows vs linux?
You’re not going to get much support for freeware. if you buy some IP and it’s got a problem, you have recourse with the vendor; with freeware you’re pretty much on your own. And I would assume commercial IP has been subjected to much more rigorous validation.
The vast majority of the IP on Opencores are student projects, some of them are from IP vendors that are using Opencores as a way to show their expertise in IP (free advertising) those are easy to spot as they may be a useful IP but lack features that you would actually need in most projects.
I just told you: lack of support, lack of accountability and lack of rigorous testing. They make money through advertising (in case you haven't noticed.)
Ok. I get it. What is the currently accepted verification framework. Should we use UVM for even simple designs such as SPI or UART? WHat are alternate frameworks which we can apply based on the complexity of the designs
Note that GitHub projects are much much better than OpenCores. You can try out cores from there.
Also you can do a simple comparison.
Take an IP from OpenCores, take the same IP from Synopsys/Cadence/etc and use it in your design. You will be able to spot the differences immediately.
I successfully used the opencores I2C as an add-on for a customer. Worked, although I had to mod it a bit. I'd say that the lack of support is the real difference. If it's a complex thing you probbly won't find it in opencores anyway.
"Should we use UVM for even simple designs such as SPI or UART"
You should probably do these yourself as 1) they are simple enough, and 2) you will probably spend time modding IP you get from somewhere else anyway.