UVM dissection – All class hiearchy
UVM code reuse is predominantly a framework reuse model. It’s effective application requires certain level of source code exposure as discussed in the “UVM dissection –…
UVM code reuse is predominantly a framework reuse model. It’s effective application requires certain level of source code exposure as discussed in the “UVM dissection – Why it’s needed?“
In order to dissect the UVM source code certain aids were thought to be useful. First one was the number of files and classes present in UVM. It was discussed in the UVM deep dive – statistics.
There are 311 System Verilog classes in UVM 1.2 implementation. Not all of them are user-exposed classes. Now to make any sense of these many classes a complete class hierarchy would be useful. This would serve as navigation map for browsing the code.
UVM class reference does provide the individual class hierarchy but all the class hierarchy in a single picture is missing. This is important to understand the bigger picture.
Although there have been some pictures of class hierarchy beyond single class as part of UVM presentations but most of them are focused on certain classes under discussion. For instance one of the popular class, which has more complete hierarchy available is uvm_object. Have you wondered why is the uvm_object a popular one? Because its second highest fertile class with 39 children and its parent to some important classes.
What is benefit of bigger picture? Just see one for yourself. UVM phasing is one of tricky concepts. Which phases are bottom up? Which phases are top down? What are the total phases? Following picture shows that. The string in the parenthesis is the directory in which the class is located in the source code.
Mind map is a great tool for viewing and analyzing the hierarchical information. A UVM class hierarchy mind map showing all UVM class relations in single snapshot is shown below. On the left side of this mind map are UVM classes that are not derived from any other classes. Right side of the mind map is classes that are derived from different base classes. Following one is snapshot of mind map(save the image and zoom in). Interactive mind map can be accessed online here. It has limited capabilities supported by vendor mindmup.
Best mind map browsing experience is with the mind map tool on your machine with all capabilities. Searching and filtering can make it easy to find the information you are looking for. Freemind is one of the freeware for browsing mind maps. Email me , I can send you the Freemind mind map(uvm_head_on.mm) file.
Please comment or email if you think any other way of viewing UVM class information can aid your dissection better.
Happy deep dive, see you on other side !
Second figure is not clear
That’s highest resolution supported by export option of Freemind tool. Best is to view it in Mind Map tool. I have sent you mind map file. Check it out.
Hi
Can you please share the Freemind mind map(uvm_head_on.mm) file to my mail ID.
Thanks
Santosh
Santosh: Emailed.
can you please send free mind map(uvm_head_on.mm) file
Tamilarasan: Emailed.
Hi Anand,
Is doxygen tool can be used to see this UVM dissection better ?
Thanks,
Vikas Billa
Hi Anand,
Unable to see the images properly.
Thanks,
Vikas Billa
Vikas: Image is exported from Freemind mind map. That’s highest resolution. Best is view it in the tool itself.
For other question, yes Doxygen may also be an option.
Hi
Can you please share the Freemind mind map(uvm_head_on.mm) file to my mail ID.
Thanks
Bhaskar