In reply to dave_59:
For me the UVM has 4 key benefits:
(1) increasing the verification productivity
(2) Plug-and-play reuse
(3) improving the simulation speed
(4) one verification methodology for all companies
In my opinion this describes the “WHY”.
A few more detailed explanations:
(1) when introducing the UVM in a company it requires more effort as continuing with the old approach. The additional effort is between 1.3 to 1.5 of the old methodology. In the 2nd project it is around 0.8 -0.7. in the 3rd project it goes down to around 0.5 of the effort using the traditional approach. These are numbers from my personal experience in introducing the UVM in companies.
The minimal prerequisites to the verification engineers is SV and UVM training. Even after the UVM training the engineers will not be able to start aproject on their own. Best is to engange a UVM coach who is helping to startt this new methodology. This coaching effort is not very high but it pays-out in teh 1st project because it helps to follow the basic rules/guidelines of the UVM.
A good starting point is to use a UVM Framework Generator to create a UVM environment. This has the benfit you can focus on your application specific problems and you do not have to spend a lot of effort to implement all the TLM-related contructs.
(2) The reuse aspect is the most important means to increase the productivity. And it is a plug-and-play reuse. You do not have to modify anything in your code with the exception of parameter settings.
(3) The UVM uses heavily TLM approaches. TLM reduces the number of events and improves the simulation speed heavily.
(4) because it is not a company-specific approach you can ask the UVM community to solve issues you are facing. This is a big difference compared to the traditional apporaches.
The practice I see is in some way different. Only a few companies are following this strict approach. A lot other companies implementing an approach which is not strict resulting in serious problems.